/* =========================================================================
   ZONING · Konstruktiv auf den Bestandsseiten
   Wird NACH css/styles.css und NACH css/konstruktiv-base.css geladen.

   Warum so und nicht als Neubau: styles.css ist durchgehend token-getrieben,
   die Marken-Hexes stehen dort jeweils genau einmal, nämlich in :root. Ein
   Umbelegen dieser Token kippt Farbe, Schrift, Radius und Schatten auf allen
   Seiten auf einmal, ohne eine einzige Zeile Markup anzufassen. Alles, was
   Token nicht können (Knopfbau, Kartenmaterial, Rhythmus), steht darunter.

   Reihenfolge im Blatt:
     1  Token umbelegen
     2  Schrift und Überschriften
     3  Flächen und Kanten (Radius raus, Schatten raus)
     4  Kopfzeile
     5  Knopf "Kippung" (Markup baut js/konstruktiv-upgrade.js)
     6  Karten, Kacheln, Listen
     7  Seitenköpfe und Bänder
     8  Formular, FAQ, Modal
     9  Fusszeile
    10  Bewegung und Umbruch
   ========================================================================= */

/* ---------- 1 · Token umbelegen ---------------------------------------- */
:root{
  --white:      #F0EFE9;   /* Grundfläche, war Weiss */
  --bg-soft:    #DEDCD3;   /* zweite Fläche */
  --blue:       #111111;   /* Masse, war Navy */
  --blue-dark:  #111111;
  --blue-light: #DEDCD3;
  --red:        #C4000F;
  --red-dark:   #A2000C;
  --ink:        #111111;
  --muted:      #58585B;
  --border:     #C9C7BE;
  --font-sans:  'Manrope',system-ui,-apple-system,sans-serif;
  --font-serif: 'Unbounded',system-ui,-apple-system,sans-serif;
  --radius:     0px;
  --radius-sm:  0px;
  --shadow-sm:  none;
  --shadow-md:  none;
  --shadow-lg:  none;
  --ease:       cubic-bezier(.23,1,.32,1);
}

/* ---------- 2 · Schrift und Überschriften ------------------------------ */
body{font-family:var(--body);font-size:16.5px;line-height:1.62;background:var(--bone)}
h1,h2,h3,h4,h5{font-family:var(--disp);font-weight:800;letter-spacing:-.036em;line-height:.98;color:var(--black)}
h4,h5{letter-spacing:-.028em}
/* Unbounded läuft breiter als die alte Serife: Display-Grade eine Stufe zurück */
h1{font-size:clamp(2.1rem,1rem + 3.1vw,3.4rem)}
h2{font-size:clamp(1.8rem,1.2rem + 2.4vw,3rem)}
h3{font-size:clamp(1.25rem,1rem + 1.1vw,1.85rem)}
h4{font-size:clamp(1.05rem,.98rem + .55vw,1.35rem)}
p,li,dd,dt,figcaption{font-family:var(--body)}
strong,b{font-weight:800}
.section-title,.page-hero h1,.hero h1{font-family:var(--disp)}
/* Die alte Serifen-Kursive gibt es in Unbounded nicht; aufrecht und schwerer */
em,i,.section-title em{font-style:normal;font-weight:800;color:var(--red-t)}
.eyebrow,.kicker{font-family:var(--body);font-weight:800;letter-spacing:.22em;
  text-transform:uppercase;color:var(--red-t);font-size:.78rem}
/* Der rote Strich über zentrierten Überschriften war die alte Grammatik */
.section-title::before,.faq2-title::before{display:none!important}
/* Sektionsköpfe stehen links, nicht zentriert */
.section-title,.section-intro,.faq2-head,.faq2-title,.faq2-sub{text-align:left}
.section-intro,.faq2-sub{color:var(--grey);max-width:56ch;margin-left:0;margin-right:0}

/* ---------- 3 · Flächen und Kanten ------------------------------------- */
*,*::before,*::after{box-shadow:none}
.card,.wd-card,.sw-card,.mk-card,.its-card,.ka-card,.lp-card,.uu-card,
.ref-card,.ev-card,.pt-card,.ins-card,.svc-row,.price-card,.stat,.box{
  border-radius:0!important;box-shadow:none!important}
img,svg{border-radius:0}
[style*="border-radius"]{border-radius:0}
/* Runde Formen, die zur Welt gehören, bleiben rund */
.brand-o,.foot-social,.ts-btn,.kb-dot,.faq2-ic,.uu-dot,.ka-step-pop,
circle,.to-top,[class*="round"],[class*="circle"]{border-radius:50%}
.faq2-ic{border-radius:50%!important}

/* ---------- 4 · Kopfzeile ---------------------------------------------- */
.site-header{background:var(--bone);border-bottom:4px solid var(--black);box-shadow:none}
.site-header .container{height:var(--hdrh)}
.brand{font-family:var(--body);font-weight:800;letter-spacing:.2em;color:var(--black)}
.nav a:not(.btn){font-family:var(--body);font-size:.88rem;font-weight:700;letter-spacing:.03em;
  color:var(--black-2);position:relative}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-2px;width:7px;height:7px;
  border-radius:50%;background:var(--red);transform:scale(0);transition:transform .24s var(--ease)}
@media (hover:hover) and (pointer:fine){.nav a:not(.btn):hover::after{transform:scale(1)}}
.nav a.active::after,.nav a[aria-current=page]::after{transform:scale(1)}
.nav a.active{color:var(--black);border-bottom:0}
.nav-toggle .nt-bar{background:var(--black);height:3px;border-radius:0}

/* ---------- 5 · Knopf "Kippung" -----------------------------------------
   Das Markup baut js/konstruktiv-upgrade.js: aus <a class="btn">Text</a>
   wird eine Kachel mit zwei Seiten. Fällt das Skript aus, greift der
   Rückfall ganz unten: flache schwarze Fläche, weiterhin bedienbar. */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;
  height:var(--kh,56px);padding:0 var(--kp,30px);border:0;border-radius:0;cursor:pointer;
  text-decoration:none;background:transparent;perspective:620px;overflow:visible;
  font-family:var(--body);font-weight:800;font-size:var(--kf,.94rem);letter-spacing:.03em;
  box-shadow:none;transform:none;-webkit-tap-highlight-color:transparent}
.btn .kb-tile{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .42s var(--ease-tile)}
.btn .kb-face{position:absolute;inset:0;display:grid;place-items:center;
  backface-visibility:hidden;white-space:nowrap;font-size:inherit;letter-spacing:inherit}
.btn .kb-face.f{background:var(--black);color:var(--bone);transform:translateZ(calc(var(--kh,56px) / 2))}
.btn .kb-face.b{background:var(--red);color:#fff;transform:rotateX(90deg) translateZ(calc(var(--kh,56px) / 2))}
.btn .kb-lbl{visibility:hidden;white-space:nowrap;position:relative}
@media (hover:hover) and (pointer:fine){
  .btn:hover .kb-tile{transform:rotateX(-90deg)}
  .btn:hover{background:transparent;transform:none;box-shadow:none}
}
.btn:active .kb-tile{transform:rotateX(-90deg) scale(.975)}
.btn:focus-visible{outline:3px solid var(--red);outline-offset:5px}
.btn:focus-visible .kb-tile{transform:rotateX(-90deg)}
/* Zweitrang: Vorderseite als Kontur */
.btn-ghost .kb-face.f,.btn-outline .kb-face.f{background:transparent;color:var(--black);
  box-shadow:inset 0 0 0 3px var(--black)}
/* Auf schwarzer oder roter Fläche dreht sich der Wert um */
.contact .btn .kb-face.f,.site-footer .btn .kb-face.f,
.band .btn .kb-face.f,[class*="--dark"] .btn .kb-face.f{background:var(--bone);color:var(--black)}
.contact .btn .kb-face.b,.site-footer .btn .kb-face.b,
.band .btn .kb-face.b,[class*="--dark"] .btn .kb-face.b{background:var(--red);color:#fff}
@supports (-moz-appearance:none){
  .btn{overflow:hidden;perspective-origin:center center;isolation:isolate;--moz-btn-label:var(--bone)}
  .btn .kb-tile{width:100%;height:100%;will-change:transform;z-index:0}
  .btn .kb-face{width:100%;height:100%;color:transparent!important;text-shadow:none!important;-moz-backface-visibility:hidden}
  .btn .kb-lbl{visibility:visible;position:relative;z-index:1;color:var(--moz-btn-label);pointer-events:none}
  .btn-ghost,.btn-outline,.contact .btn,.site-footer .btn,.band .btn,[class*="--dark"] .btn{--moz-btn-label:var(--black)}
  .btn:hover,.btn:focus-visible,.btn:active,.btn[data-state=ok]{--moz-btn-label:#fff}
}
/* Zustände */
.btn[data-state=busy]{opacity:.6;pointer-events:none}
.btn[data-state=ok] .kb-tile{transform:rotateX(-90deg)}
.btn[data-state=ok] .kb-face.b{background:var(--green)}
/* Kopfzeile und enge Stellen kleiner */
.nav .btn,.nav-cta{--kh:46px;--kp:20px;--kf:.85rem}
.faq2 .btn,.card .btn,.svc-row .btn{--kh:50px;--kp:24px}
/* Pfeil-Textlink: Scheibe kippt von Rot auf Schwarz */
.btn-link{display:inline-flex;align-items:center;gap:.7em;font-family:var(--body);font-weight:800;
  font-size:.92rem;letter-spacing:.03em;color:var(--black);text-decoration:none;perspective:400px}
.btn-link .ic-arrow{width:18px;height:18px;position:relative;transform-style:preserve-3d;flex:0 0 auto;
  transition:transform .38s var(--ease-tile)}
.btn-link .ic-arrow path{display:none}
.btn-link .ic-arrow::before,.btn-link .ic-arrow::after{content:"";position:absolute;inset:0;
  border-radius:50%;backface-visibility:hidden}
.btn-link .ic-arrow::before{background:var(--red);transform:translateZ(9px)}
.btn-link .ic-arrow::after{background:var(--black);transform:rotateX(90deg) translateZ(9px)}
@media (hover:hover) and (pointer:fine){.btn-link:hover .ic-arrow{transform:rotateX(-90deg)}}
.btn .ic-arrow,.btn svg{display:none}

/* ---------- 6 · Karten, Kacheln, Listen -------------------------------- */
.card,.wd-card,.sw-card,.mk-card,.its-card,.lp-card,.ins-card,.pt-card,.ev-card{
  background:var(--bone-2);border:0;padding:clamp(22px,2.6vw,34px);transition:transform .24s var(--ease)}
@media (hover:hover) and (pointer:fine){
  .card:hover,.wd-card:hover,.sw-card:hover,.mk-card:hover,.its-card:hover,
  .lp-card:hover,.ins-card:hover,.pt-card:hover,.ev-card:hover{transform:translateY(-5px)}
}
/* Jede zweite Kachel als schwarze Masse: aus dem Raster wird eine Komposition */
.wd-card:nth-child(2n),.sw-card:nth-child(2n),.mk-card:nth-child(2n),.its-card:nth-child(2n),
.card:nth-child(3n+2){background:var(--black);color:var(--bone)}
.wd-card:nth-child(2n) h3,.sw-card:nth-child(2n) h3,.mk-card:nth-child(2n) h3,
.its-card:nth-child(2n) h3,.card:nth-child(3n+2) h3{color:var(--bone)}
.wd-card:nth-child(2n) p,.sw-card:nth-child(2n) p,.mk-card:nth-child(2n) p,
.its-card:nth-child(2n) p,.card:nth-child(3n+2) p{color:#C9C8C2}
/* Icon-Plättchen: Kreis in Signalfarbe statt getönter Kasten */
.wd-card__ico,.sw-card__ico,.mk-card__ico,.its-card__ico,.lsg-card-ico,.faq2-ic,.lp-channel-ic{
  background:var(--red);color:#fff;border-radius:50%;display:grid;place-items:center}
.wd-card:nth-child(2n) [class$="__ico"],.sw-card:nth-child(2n) [class$="__ico"],
.mk-card:nth-child(2n) [class$="__ico"],.its-card:nth-child(2n) [class$="__ico"]{background:var(--bone);color:var(--black)}
/* Grosse Ordnungszahlen bleiben, aber in der Werkschrift */
[class*="num"],[class*="__no"],[class*="-no"],.step-n{font-family:var(--disp);font-weight:800;letter-spacing:-.03em}

/* ---------- 7 · Seitenköpfe und Bänder --------------------------------- */
.page-hero,.hero{background:var(--bone);position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;right:-8%;top:-14%;width:52%;height:128%;
  background:var(--bone-2);transform:rotate(9deg);z-index:0;pointer-events:none}
.page-hero>*{position:relative;z-index:1}
.band,.section--dark,.strategy,.reviews{background:var(--black);color:var(--bone)}
.band h2,.section--dark h2,.strategy h2,.reviews h2{color:var(--bone)}
.band p,.section--dark p,.strategy p,.reviews p{color:var(--grey-d)}
.sep{background:var(--black);height:4px;border:0}

/* ---------- 8 · Formular, FAQ, Modal ------------------------------------ */
input,select,textarea{border-radius:0!important;font-family:var(--body)}
.cmodal-input,.cmodal-select,.cmodal-textarea,.ck-field,.ck-area{
  background:var(--bone);border:3px solid transparent;color:var(--black)}
.cmodal-input:focus,.cmodal-select:focus,.cmodal-textarea:focus,.ck-field:focus{
  outline:0;border-color:var(--red);box-shadow:none}
.cmodal-field label,.f label{font-family:var(--body);font-size:.72rem;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;color:var(--black-2)}
.cmodal__dialog,.cmodal__panel{border-radius:0;background:var(--bone)}
.cmodal__panel--info,.contact .cmodal__panel--info{background:var(--red);color:#fff}
.faq-q{font-family:var(--disp);font-weight:600;letter-spacing:-.034em;color:var(--black)}
.faq-q .icon{color:var(--red);font-family:var(--body);font-weight:800}
.faq-item{border-color:var(--bone-3)}
.faq-a p{color:var(--grey)}

/* ---------- 9 · Fusszeile ---------------------------------------------- */
.site-footer{background:var(--black);color:var(--bone)}
.site-footer h4{font-family:var(--body);font-size:.74rem;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--grey-d)}
.site-footer a{color:#C2C2BE}
@media (hover:hover) and (pointer:fine){.site-footer a:hover{color:var(--red)}}
.footer-brand{font-family:var(--body);font-weight:800;letter-spacing:.2em;color:var(--bone)}
.footer-about,.footer-bottom{color:var(--grey-d)}
.footer-social{background:var(--red);color:var(--bone);border-radius:50%}
.footer-cta{background:var(--bone);color:var(--black)}
.footer-cta h2{color:var(--black)}
.footer-cta p{color:var(--black-2)}
.footer-cta .accent,.accent{color:var(--red)}

/* ---------- 10 · Bewegung und Umbruch ---------------------------------- */
.reveal{transition:opacity .62s var(--ease),transform .62s var(--ease)}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
  .btn .kb-tile{transition:none}
}
@media (max-width:720px){
  .nav{background:var(--bone);border-bottom:4px solid var(--black)}
  .nav .btn{width:100%}
}
@media (max-width:420px){.btn{--kp:20px;--kf:.88rem}}

/* ---------- Rückfall ohne JavaScript ------------------------------------
   Ohne das Upgrade-Skript gibt es keine Kachel. Dann ist der Knopf eine
   flache schwarze Fläche mit Knochenweiss darauf, weiterhin voll bedienbar. */
.no-kb .btn{background:var(--black);color:var(--bone);perspective:none}
.no-kb .btn .kb-lbl{visibility:visible}
.no-kb .btn-ghost{background:transparent;color:var(--black);box-shadow:inset 0 0 0 3px var(--black)}

/* ---------- Nachtrag aus der Sichtprüfung ------------------------------ */
/* Der Bestand markierte die aktive Seite mit einem roten Strich, die neue
   Welt mit einem Punkt. Beides zusammen liest sich als Fehler. */
.nav a.active:not(.btn)::after{width:7px;height:7px;left:0;right:auto;border-radius:50%;
  background:var(--red);transform:scale(1);bottom:-2px}

/* Gezeichneter Knopf im Abschluss-Band: scharfe Ecke statt Radius */
.fcta-btn{rx:0}
.footer-cta-media:has(.footer-cta-hit:hover) .fcta-btn{fill:#A2000C}
.footer-cta-img text{font-family:var(--body)!important;font-weight:800}

/* Umschalter auf der Referenzen-Seite: Kachel statt Pille */
.sw-toggle{background:var(--bone-2);border-radius:0;box-shadow:inset 0 0 0 3px var(--black);padding:4px}
.sw-toggle__thumb{background:var(--black);border-radius:0}
.sw-toggle button,.sw-toggle [role=tab]{font-family:var(--body);font-weight:800;border-radius:0}

/* Zustandsmarke an Referenzen: eckig, in der Signalfarbe */
.ref-badge{border-radius:0;font-family:var(--body);font-weight:800;letter-spacing:.14em}
.ref-badge--live{background:var(--red);color:#fff}
/* Coming-Soon-Teaser: schwarze Marke, stiller Hinweis statt Live-Link */
.ref-badge--soon{background:var(--black);color:var(--bone)}
.btn-live--soon,.btn-live--soon:hover{color:var(--grey);cursor:default}

/* Das Abschluss-Band steckt im <footer>, ist dort aber die einzige helle
   Fläche. Ohne diese Zeile erbt sein Knopf die Umkehrung und wird unsichtbar. */
.footer-cta .btn .kb-face.f{background:var(--black);color:var(--bone)}
.footer-cta .btn .kb-face.b{background:var(--red);color:#fff}
.footer-cta .btn-ghost .kb-face.f{background:transparent;color:var(--black);box-shadow:inset 0 0 0 3px var(--black)}

/* ---------- Hero-Komposition auf leistungen.html ------------------------
   Zwei Fassungen wie auf der Startseite: quer und hoch. Der Bestand blendete
   die Grafik unter 520 px ganz aus, weil die Beschriftung unlesbar wurde.
   Die Hochformat-Fassung löst genau das, also darf sie dort stehen bleiben. */
.lp-comp,.lp-comp-m{width:100%;height:auto;display:block;overflow:visible}
.lp-comp-m{display:none;max-width:400px;margin-inline:auto}
@media (max-width:860px){
  .lp-comp{display:none}
  .lp-comp-m{display:block}
}
@media (max-width:520px){
  .lp-hero-media{display:block}
  .lp-hero-media{max-width:400px;margin:8px auto 0}
}

/* Die Komposition trägt jetzt Schrift in der Werkgrösse. Damit sie neben der
   Display-Zeile nicht schrumpft, bekommt ihre Spalte mehr Anteil. */
.lp-hero-inner{grid-template-columns:minmax(0,1.05fr) minmax(0,1.15fr);
  gap:clamp(40px,5vw,88px);align-items:center}
.lp-hero-media{justify-self:end;width:100%}
/* "Verkaufsprozess." ist das laengste Wort der Seite. Bei der allgemeinen
   h1-Stufe laeuft es aus seiner Spalte heraus und stoesst an die Grafik.
   Diese Stufe haelt es innerhalb der Spalte, an jeder gepruefen Breite. */
.lp-hero h1{font-size:clamp(1.85rem,1rem + 2.4vw,2.9rem)}
@media (max-width:1000px){.lp-hero-inner{grid-template-columns:1fr}
  .lp-hero-media{justify-self:center}}

/* =========================================================================
   BAUTEIL-EBENE
   Karten, Icon-Teller und Kontaktformular in der Grammatik der Welt.
   Leitform bleibt Kreis, Balken, Diagonale. Keine Rundung ausser am Kreis,
   kein Schatten, keine Kontur ausser als bewusster Zweitrang.
   ========================================================================= */

/* ---------- Karten: flache Masse statt Kasten mit Rahmen ---------------- */
.wd-card,.sw-card,.mk-card,.its-card,.ka-card,.pt-card,.evt-card,.ins-card,
.insights .card,.card,.fbq-card,.lp-card{
  position:relative;overflow:hidden;border:0;border-radius:0;
  background:var(--bone-2);color:var(--black);
  padding:clamp(24px,2.8vw,38px);
  transition:transform .24s var(--ease)}
/* Der Ring der Welt sitzt in der Ecke jeder Karte */
.wd-card::after,.sw-card::after,.mk-card::after,.its-card::after,.ka-card::after,
.pt-card::after,.ins-card::after,.insights .card::after{
  content:"";position:absolute;right:-72px;top:-72px;width:196px;height:196px;
  border-radius:50%;border:22px solid rgba(17,17,17,.07);pointer-events:none;
  transition:transform .5s var(--ease)}
/* Jede zweite Karte ist eine schwarze Masse. Aus dem Raster wird Komposition. */
.wd-card:nth-child(2n),.sw-card:nth-child(2n),.mk-card:nth-child(2n),
.its-card:nth-child(2n),.ka-card:nth-child(2n),.ins-card:nth-child(2n),
.insights .card:nth-child(3n+2){background:var(--black);color:var(--bone)}
.wd-card:nth-child(2n) h3,.sw-card:nth-child(2n) h3,.mk-card:nth-child(2n) h3,
.its-card:nth-child(2n) h3,.ka-card:nth-child(2n) h3,.ins-card:nth-child(2n) h3,
.insights .card:nth-child(3n+2) h3{color:var(--bone)}
.wd-card:nth-child(2n) p,.sw-card:nth-child(2n) p,.mk-card:nth-child(2n) p,
.its-card:nth-child(2n) p,.ka-card:nth-child(2n) p,.ins-card:nth-child(2n) p,
.insights .card:nth-child(3n+2) p{color:#C9C8C2}
.wd-card:nth-child(2n)::after,.sw-card:nth-child(2n)::after,.mk-card:nth-child(2n)::after,
.its-card:nth-child(2n)::after,.ka-card:nth-child(2n)::after,.ins-card:nth-child(2n)::after,
.insights .card:nth-child(3n+2)::after{border-color:rgba(255,255,255,.08)}
@media (hover:hover) and (pointer:fine){
  .wd-card:hover,.sw-card:hover,.mk-card:hover,.its-card:hover,.ka-card:hover,
  .pt-card:hover,.ins-card:hover,.insights .card:hover{transform:translateY(-5px)}
  .wd-card:hover::after,.sw-card:hover::after,.mk-card:hover::after,
  .its-card:hover::after,.ka-card:hover::after,.ins-card:hover::after,
  .insights .card:hover::after{transform:scale(1.16) rotate(20deg)}
}
.wd-card h3,.sw-card h3,.mk-card h3,.its-card h3,.ka-card h3,.pt-card h3,
.ins-card h3,.insights .card h3{font-family:var(--disp);font-weight:800;
  letter-spacing:-.034em;font-size:clamp(1.2rem,1rem + .95vw,1.65rem);margin-bottom:10px}
.wd-card p,.sw-card p,.mk-card p,.its-card p,.ka-card p,.pt-card p,
.ins-card p,.insights .card p{font-size:.98rem;max-width:40ch}
/* Die Umhüllung der Karriere-Karten trug die alte Kontur */
.ka-cardwrap{background:none;border:0;border-radius:0;padding:0}

/* ---------- Icon-Teller: eine Scheibe, die kippt ------------------------
   Dasselbe Bauteil-Prinzip wie der Knopf. Beim Zeigen dreht die Scheibe
   um ihre Waagerechte und zeigt ihre rote Rückseite. */
.wd-card__ico,.sw-card__ico,.mk-card__ico,.its-card__ico,.ka-card__ico,
.pt-mini__ico,.lp-channel-ic,.lsg-card-ico,.faq2-ic,.ins-card__ico{
  position:relative;display:grid;place-items:center;flex:0 0 auto;
  width:56px;height:56px;border-radius:50%;background:var(--black);color:var(--bone);
  margin-bottom:20px;overflow:visible;
  transition:transform .42s var(--ease-tile),background .24s ease}
.wd-card__ico svg,.sw-card__ico svg,.mk-card__ico svg,.its-card__ico svg,
.ka-card__ico svg,.pt-mini__ico svg,.lp-channel-ic svg,.lsg-card-ico svg,
.faq2-ic svg,.ins-card__ico svg{width:25px;height:25px;stroke-width:1.7}
@media (hover:hover) and (pointer:fine){
  .wd-card:hover [class$="__ico"],.sw-card:hover [class$="__ico"],
  .mk-card:hover [class$="__ico"],.its-card:hover [class$="__ico"],
  .ka-card:hover [class$="__ico"],.ins-card:hover [class$="__ico"]{
    transform:rotate(-90deg);background:var(--red)}
  .lp-channel-link:hover .lp-channel-ic{transform:rotate(-90deg);background:var(--red)}
}
/* Auf schwarzer Masse dreht sich der Wert um */
.wd-card:nth-child(2n) [class$="__ico"],.sw-card:nth-child(2n) [class$="__ico"],
.mk-card:nth-child(2n) [class$="__ico"],.its-card:nth-child(2n) [class$="__ico"],
.ka-card:nth-child(2n) [class$="__ico"],.ins-card:nth-child(2n) [class$="__ico"]{
  background:var(--red);color:#fff}
.faq2-ic{width:44px;height:44px;margin:0}
.faq2-ic svg{width:20px;height:20px}

/* ---------- Kontaktformular --------------------------------------------
   Linke Fläche: rote Masse wie auf der Startseite, nicht mehr die dunkle
   Diagonale des Bestands. Felder ohne Rahmen bis zum Fokus. */
.cmodal__panel--info,.contact .cmodal__panel--info,.ck-card{
  background:var(--red)!important;color:#fff;clip-path:none!important}
.cmodal__panel--info *,.ck-card *{color:inherit}
.cmodal__panel--info .cmodal__eyebrow,.ck-card .ck-title{color:#fff}
.cmodal__panel--form,.cmodal__panel:not(.cmodal__panel--info){
  background:var(--bone-2);clip-path:none!important;padding-left:clamp(26px,3.2vw,46px)}
.cmodal__panel-head h2,.cmodal__panel-head h3{font-family:var(--disp);font-weight:800;letter-spacing:-.036em}
/* Pillen: eckig, in der Sprache der Welt */
.cmodal__meta li,.cmodal__badge,.ck-consent,.contact .pill,.cmodal__tag{
  border-radius:0!important;background:rgba(0,0,0,.18);border:0;
  font-family:var(--body);font-weight:800;font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;padding:8px 13px}
.cmodal__panel--form .cmodal__meta li,.cmodal__panel--form .cmodal__badge{
  background:var(--bone);color:var(--black-2)}
/* Kontaktzeilen: die Scheibe ersetzt den runden Icon-Kasten */
.cmodal__contact-ic,.ck-ico{width:44px;height:44px;border-radius:50%;
  background:rgba(0,0,0,.22);color:#fff;display:grid;place-items:center;flex:0 0 auto;
  transition:transform .42s var(--ease-tile)}
.cmodal__contact-ic svg,.ck-ico svg{width:19px;height:19px}
@media (hover:hover) and (pointer:fine){
  a.cmodal__contact:hover .cmodal__contact-ic{transform:rotate(-90deg);background:var(--black)}
}
.cmodal__contact-label{font-family:var(--body);font-size:.7rem;font-weight:800;
  letter-spacing:.18em;text-transform:uppercase;opacity:.9}
.cmodal__contact-val{font-weight:700}
/* Der Formularbogen steht in konstruktiv-base.css, weil ihn ALLE Seiten
   brauchen: die Unterseiten ueber dieses Blatt und die Startseite ueber
   konstruktiv.css. Hier stehen nur noch die Bindungen an die Klassen, die
   js/main.js vergibt. */
.cf .cmodal-datebtn__txt{color:var(--grey)}
.cf .cmodal-datebtn.has-value .cmodal-datebtn__txt{color:var(--black)}
.cmodal-datewrap.is-open .cf-caret{transform:translateY(-50%) rotate(180deg)}
.cf .cmodal-submit{width:auto;--kh:60px;padding:0 34px}
.cf-fuss .cmodal-note{margin:0;max-width:42ch}
@media (max-width:860px){ .cf-fuss .cmodal-submit{width:100%} }
/* Absenden: die Kachel muss auf heller Fläche schwarz bleiben */
.cmodal__panel--form .btn .kb-face.f,.contact .cmodal__panel--form .btn .kb-face.f{
  background:var(--black);color:var(--bone)}
.cmodal__panel--form .btn .kb-face.b,.contact .cmodal__panel--form .btn .kb-face.b{
  background:var(--red);color:#fff}
.cmodal-submit{width:100%;--kh:58px}
.cmodal-note{margin-top:14px;font-family:var(--body);font-weight:400;font-size:.86rem;
  color:var(--grey);display:flex;gap:10px;align-items:flex-start}
.cmodal-note svg{width:16px;height:16px;flex:0 0 auto;margin-top:3px;color:var(--grey)}
/* Erfolgszustand */
.cmodal__success{background:var(--bone);padding:clamp(22px,3vw,34px)}
.cmodal__success-ic{width:52px;height:52px;border-radius:50%;background:var(--green);color:#fff;
  display:grid;place-items:center;margin-bottom:18px}
.cmodal__success-title{font-family:var(--disp);font-weight:800;letter-spacing:-.034em}
.cmodal__success-text{color:var(--black-2);max-width:52ch}

/* ---------- Kontakt: die linke Spalte heisst im Bestand cmodal__brand ---
   Rote Masse wie auf der Startseite. Der Rahmen cmodal__body traegt dieselbe
   Farbe, damit an der Kante nichts durchscheint. */
.cmodal__body{background:var(--red)}
.cmodal__brand{background:var(--red);color:#fff;clip-path:none}
.cmodal__brand *{border-radius:0}
.cmodal__brand .cmodal__contact-ic,.cmodal__brand [class*="-ic"]{border-radius:50%}
.cmodal__brand li,.cmodal__brand [class*="badge"],.cmodal__brand [class*="chip"],
.cmodal__brand [class*="tag"],.cmodal__brand [class*="pill"]{
  background:rgba(0,0,0,.2);border:0;color:#fff;
  font-family:var(--body);font-weight:800;font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;padding:9px 14px}
.cmodal__brand .cmodal__contact-ic{background:rgba(0,0,0,.26);color:#fff}
.cmodal__brand h2,.cmodal__brand h3{font-family:var(--disp);font-weight:800;letter-spacing:-.036em;color:#fff}
.cmodal__brand p{color:#FBEFEC}
/* Absenden traegt auf heller Fläche die schwarze Vorderseite */
.cmodal-submit .kb-face.f{background:var(--black);color:var(--bone)}
.cmodal-submit .kb-face.b{background:var(--red);color:#fff}
.contact .cmodal-submit .kb-face.f,.cmodal__panel .cmodal-submit .kb-face.f{background:var(--black);color:var(--bone)}
.contact .cmodal-submit .kb-face.b,.cmodal__panel .cmodal-submit .kb-face.b{background:var(--red);color:#fff}

/* Korrektur aus der Sichtpruefung: die Pillenregel hatte auch die Kontaktzeilen
   erwischt. Kontaktzeilen sind Links, keine Marken. */
.cmodal__brand .cmodal__contacts li{background:none;padding:0;text-transform:none;
  letter-spacing:normal;font-size:inherit;font-weight:inherit}
.cmodal__brand .cmodal__contact{padding:10px 0;text-transform:none;letter-spacing:normal}
.cmodal__brand .cmodal__contact-val{font-size:1rem;font-weight:700;text-transform:none;letter-spacing:normal}
.cmodal__brand .cmodal__contact-label{font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.cmodal__brand .cmodal__eyebrow,.cmodal__brand .eyebrow{color:#fff}

/* ---------- Vorrang vor den seiteneigenen <style>-Bloecken --------------
   Die Leistungsseiten definieren ihre Karten im Kopf der Seite. Die
   Bauteil-Ebene muss dort gewinnen, sonst bleibt weisses Material stehen. */
body .wd-card,body .sw-card,body .mk-card,body .its-card,body .ka-card,
body .ins-card,body .pt-card,body .insights .card{
  background:var(--bone-2)!important;border:0!important;border-radius:0!important}
body .wd-card:nth-child(2n),body .sw-card:nth-child(2n),body .mk-card:nth-child(2n),
body .its-card:nth-child(2n),body .ka-card:nth-child(2n),body .ins-card:nth-child(2n){
  background:var(--black)!important}
body .wd-card__ico,body .sw-card__ico,body .mk-card__ico,body .its-card__ico,
body .ka-card__ico,body .lsg-card-ico,body .ins-card__ico{
  width:56px!important;height:56px!important;border-radius:50%!important;
  background:var(--black)!important;color:var(--bone)!important}
body .wd-card:nth-child(2n) [class$="__ico"],body .sw-card:nth-child(2n) [class$="__ico"],
body .mk-card:nth-child(2n) [class$="__ico"],body .its-card:nth-child(2n) [class$="__ico"],
body .ka-card:nth-child(2n) [class$="__ico"],body .ins-card:nth-child(2n) [class$="__ico"]{
  background:var(--red)!important;color:#fff!important}
body .wd-card__ico svg,body .sw-card__ico svg,body .mk-card__ico svg,
body .its-card__ico svg,body .ka-card__ico svg,body .ins-card__ico svg{
  width:25px!important;height:25px!important}
body .wd-card h3,body .sw-card h3,body .mk-card h3,body .its-card h3,
body .ka-card h3,body .ins-card h3,body .insights .card h3{
  font-family:var(--disp)!important;font-weight:800!important;letter-spacing:-.034em!important;
  font-size:clamp(1.15rem,1rem + .85vw,1.6rem)!important}
/* Helle Karte auf heller Sektion: die Flaeche allein traegt nicht. Der
   Zweitrang der Welt ist die 3-px-Kontur, wie beim Knopf. */
body .wd-card:not(:nth-child(2n)),body .sw-card:not(:nth-child(2n)),
body .mk-card:not(:nth-child(2n)),body .its-card:not(:nth-child(2n)),
body .ka-card:not(:nth-child(2n)),body .ins-card:not(:nth-child(2n)),
body .insights .card:not(:nth-child(3n+2)){
  background:transparent!important;box-shadow:inset 0 0 0 3px var(--black)!important}

/* =========================================================================
   ICON OHNE TELLER
   Der Kreis um jedes Icon ist die verbreitetste Signatur generierter Seiten:
   austauschbares Symbol, getönte Scheibe, fertig. Weg damit. Das Icon wird
   gross gezeichnet, sitzt direkt auf der Fläche und wird von einem Balken
   gehalten, der Leitform dieser Welt. Beim Zeigen wächst der Balken.
   ========================================================================= */
body .wd-card__ico,body .sw-card__ico,body .mk-card__ico,body .its-card__ico,
body .ka-card__ico,body .lsg-card-ico,body .ins-card__ico,body .pt-mini__ico,
body .evt-step__ico,body .faq2-ic{
  position:relative;display:block;width:auto!important;height:auto!important;
  background:none!important;border:0!important;border-radius:0!important;
  color:var(--red)!important;padding:0 0 16px;margin:0 0 18px;overflow:visible;
  transform:none!important;transition:none}
body .wd-card__ico svg,body .sw-card__ico svg,body .mk-card__ico svg,
body .its-card__ico svg,body .ka-card__ico svg,body .lsg-card-ico svg,
body .ins-card__ico svg,body .pt-mini__ico svg,body .evt-step__ico svg,
body .faq2-ic svg{width:38px!important;height:38px!important;stroke-width:1.6}
/* Der haltende Balken */
body .wd-card__ico::after,body .sw-card__ico::after,body .mk-card__ico::after,
body .its-card__ico::after,body .ka-card__ico::after,body .ins-card__ico::after,
body .evt-step__ico::after{
  content:"";position:absolute;left:0;bottom:0;width:38px;height:4px;
  background:var(--black);transition:width .3s var(--ease)}
@media (hover:hover) and (pointer:fine){
  .wd-card:hover [class$="__ico"]::after,.sw-card:hover [class$="__ico"]::after,
  .mk-card:hover [class$="__ico"]::after,.its-card:hover [class$="__ico"]::after,
  .ka-card:hover [class$="__ico"]::after,.ins-card:hover [class$="__ico"]::after{width:64px}
}
/* Auf schwarzer Masse kehrt sich der Balken um */
body .wd-card:nth-child(2n) [class$="__ico"]::after,
body .sw-card:nth-child(2n) [class$="__ico"]::after,
body .mk-card:nth-child(2n) [class$="__ico"]::after,
body .its-card:nth-child(2n) [class$="__ico"]::after,
body .ka-card:nth-child(2n) [class$="__ico"]::after,
body .ins-card:nth-child(2n) [class$="__ico"]::after{background:var(--bone)}
body .faq2-ic{padding:0;margin:0}
body .faq2-ic svg{width:24px!important;height:24px!important}
/* Das Kanalband der Leistungsseite: Icon ohne Scheibe, Text daneben */
body .lp-channel-ic{background:none!important;border-radius:0!important;
  width:auto!important;height:auto!important;color:var(--red)!important;transform:none!important}
body .lp-channel-ic svg{width:26px!important;height:26px!important}

/* =========================================================================
   PROZESSREIHE "So entsteht ein Event"
   War: vier gleiche weisse Kreise an einer gestrichelten Linie, Text
   zentriert. Jetzt: ein durchgehender schwarzer Balken als Zeitachse, die
   Ordnungszahl gross in der Display-Schrift, alles linksbündig.
   ========================================================================= */
.evt-flow__track::before{border:0!important;height:4px!important;background:var(--black)!important;
  top:0!important;left:0!important;right:0!important;bottom:auto!important}
.evt-step{position:relative;padding-top:30px;text-align:left}
.evt-step::before{content:"";position:absolute;left:0;top:-6px;width:16px;height:16px;
  background:var(--red);transition:transform .3s var(--ease)}
@media (hover:hover) and (pointer:fine){.evt-step:hover::before{transform:scale(1.5)}}
.evt-step__body{text-align:left}
.evt-step__num{display:block;font-family:var(--disp);font-weight:800;letter-spacing:-.04em;
  font-size:clamp(2rem,1.4rem + 1.6vw,3rem);line-height:1;color:var(--black);margin-bottom:6px}
.evt-step h3{font-family:var(--disp);font-weight:800;letter-spacing:-.034em;
  font-size:clamp(1.1rem,1rem + .6vw,1.4rem);margin-bottom:8px;text-align:left}
.evt-step p{color:var(--grey);text-align:left;max-width:34ch}
@media (max-width:760px){
  .evt-flow__track::before{top:0!important;bottom:0!important;left:0!important;right:auto!important;
    width:4px!important;height:auto!important}
  .evt-step{padding-top:0;padding-left:30px}
  .evt-step::before{left:-6px;top:6px}
}

/* =========================================================================
   KARRIERE: die Checkliste im Hero
   War: weisse Karte mit Radius, Schlagschatten und gestricheltem Kästchen.
   Jetzt: schwarze Masse, weisse Reisslinien, rote Haken, ohne Rundung.
   ========================================================================= */
.ka-hero__media{justify-content:flex-end}
.ka-checklist{background:var(--black);padding:clamp(22px,2.6vw,34px)}
.ka-checklist rect,.ka-checklist path[fill="#fff"],.ka-checklist path[fill="#ffffff"]{rx:0;ry:0}
.ka-check-head{fill:#F0EFE9!important;font-family:var(--body)!important;font-weight:800!important;letter-spacing:.18em!important}
.ka-checklist text{font-family:var(--body)!important}
.ka-checklist [fill="#ffffff"],.ka-checklist [fill="#fff"]{fill:#111111}
.ka-checklist line,.ka-checklist [stroke="#C9C7BE"]{stroke:rgba(240,239,233,.28)!important}

/* =========================================================================
   KONTAKT: die Marken sind Marken, keine Pillen
   ========================================================================= */
.cmodal__brand li,.cmodal__brand [class*="badge"],.cmodal__brand [class*="chip"],
.cmodal__brand [class*="tag"],.cmodal__brand [class*="pill"],
.cmodal__meta li,.cmodal__badge{border-radius:0!important}
.cmodal__brand .cmodal__meta li,.cmodal__brand ul:not(.cmodal__contacts) li{
  background:none!important;padding:0 0 0 26px!important;position:relative;
  border-bottom:1px solid rgba(0,0,0,.22);padding-bottom:11px!important;margin-bottom:11px!important}
.cmodal__brand ul:not(.cmodal__contacts) li::before{content:"";position:absolute;left:0;top:.42em;
  width:12px;height:4px;background:#fff}
.cmodal__brand ul:not(.cmodal__contacts) li svg{display:none}
/* Korrektur: der alte Icon-Slot war zentriert und trug noch eine Fläche. */
body .evt-step__ico{display:inline-block!important;position:relative!important;
  left:auto!important;right:auto!important;top:auto!important;transform:none!important;
  margin:0 0 18px!important;padding:0 0 16px!important;background:none!important;
  box-shadow:none!important;width:38px!important}
body .evt-step__ico::before{display:none!important}
body .evt-step__ico::after{left:0;width:38px}
body .evt-step{padding-top:34px}
/* Sektionsköpfe der Bestandsseiten stehen links, auch wo sie eigene Klassen tragen */
.evt-flow header,.evt-flow header h2,.evt-flow header p,
.lp-eyebrow.center,section > .container > header{text-align:left!important}
.lp-eyebrow.center{text-align:left!important}
/* Ohne Teller darf auch die dunkle Karte keine Icon-Fläche mehr haben. */
body .wd-card:nth-child(2n) [class$="__ico"],body .sw-card:nth-child(2n) [class$="__ico"],
body .mk-card:nth-child(2n) [class$="__ico"],body .its-card:nth-child(2n) [class$="__ico"],
body .ka-card:nth-child(2n) [class$="__ico"],body .ins-card:nth-child(2n) [class$="__ico"]{
  background:none!important;color:var(--red)!important;width:38px!important}
/* Auch die Kontaktzeilen tragen kein Tellerchen mehr: Symbol direkt auf der
   Fläche, Balken darunter als Halt. Eine Regel für die ganze Website.

   ⚠ Hier stand place-items:start. Bei 34 px Fläche und 26 px Symbol klebte
   das Symbol dadurch in der oberen linken Ecke, 3 px aus der Mitte in beide
   Richtungen, und zwar in jedem Kasten gleich. Gemeldet am 07.08.2026,
   nachgemessen, korrigiert: center. Wer diese Zeile wieder auf start setzt,
   holt den Fehler zurück. */
.cmodal__brand .cmodal__contact-ic,.ck-ico{
  background:none!important;border-radius:0!important;width:34px!important;height:34px!important;
  color:#fff!important;place-items:center!important;transform:none!important}
.cmodal__brand .cmodal__contact-ic svg,.ck-ico svg{width:26px!important;height:26px!important;stroke-width:1.6}
.cmodal__brand .cmodal__contact{align-items:center;gap:16px;border-bottom:1px solid rgba(0,0,0,.18)}
/* Die Checkliste ist neu gezeichnet: sie steht direkt auf der schwarzen
   Masse, ohne Karte, ohne Rotation, ohne Papierversatz. */
.ka-hero__media{justify-content:flex-end}
.ka-checklist{background:var(--black);padding:clamp(26px,3vw,40px);width:min(100%,440px)}
.ka-tick{stroke-dasharray:100;stroke-dashoffset:100}
[data-seq].run .ka-tick{animation:kdr .45s var(--d,.5s) cubic-bezier(.5,0,.2,1) forwards}
.rm .ka-tick{animation:none;stroke-dashoffset:0}

/* =========================================================================
   FAQ: Zeilen statt Karten
   War: gerundete weisse Kacheln mit Schatten und Abstand dazwischen, jede
   mit Icon links und Plus rechts. Das ist das Karten-Raster ohne Anlass.
   Jetzt: eine Liste. Ein Balken oben, Haarlinien dazwischen, die Frage in
   der Display-Schrift, der Zustand als roter Kreis, der sich dreht.
   ========================================================================= */
.faq2-list,.faq-list{gap:0!important;max-width:1000px;margin-left:0;
  border-top:4px solid var(--black)}
.faq2 .faq-item,.faq-item{
  background:none!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;overflow:visible;
  border-bottom:1px solid rgba(17,17,17,.2)!important}
.faq2 .faq-item:hover,.faq-item:hover{border-color:rgba(17,17,17,.2)!important;box-shadow:none!important}
.faq2 .faq-item.open,.faq-item.open{box-shadow:none!important}
.faq2 .faq-q,.faq-q{
  gap:18px;align-items:center;padding:clamp(20px,2.2vw,26px) 0;
  font-family:var(--disp);font-weight:600;letter-spacing:-.034em;
  font-size:clamp(1.05rem,.98rem + .55vw,1.4rem);color:var(--black);
  position:relative;width:100%}
.faq2 .faq-q:hover,.faq-q:hover{color:var(--red)}
/* Das Symbol steht ohne Teller, gehalten von nichts als seiner Farbe */
.faq2 .faq2-ic{background:none!important;border-radius:0!important;
  width:26px!important;height:26px!important;color:var(--red)!important;
  display:grid;place-items:center;flex:0 0 auto;transform:none!important}
.faq2 .faq-q:hover .faq2-ic{background:none!important}
.faq2 .faq2-ic svg{width:24px!important;height:24px!important;stroke-width:1.7}
/* Zustandsmarke: roter Kreis, der sich beim Oeffnen zum Minus dreht */
.faq-q .icon{width:26px;height:26px;border-radius:50%;background:var(--red);
  flex:0 0 auto;position:relative;font-size:0;color:transparent;margin-left:auto;
  transition:transform .3s var(--ease)}
.faq-q .icon::before,.faq-q .icon::after{content:"";position:absolute;background:var(--bone)}
.faq-q .icon::before{left:7px;right:7px;top:50%;height:3px;margin-top:-1.5px}
.faq-q .icon::after{top:7px;bottom:7px;left:50%;width:3px;margin-left:-1.5px;
  transition:transform .26s var(--ease)}
.faq-item.open .faq-q .icon,.faq-q[aria-expanded=true] .icon{transform:rotate(90deg)}
.faq-item.open .faq-q .icon::after,.faq-q[aria-expanded=true] .icon::after{transform:scaleY(0)}
.faq-a p{padding-left:44px;color:var(--grey);max-width:76ch}
/* Kopf der FAQ steht links wie die Liste darunter, nicht zentriert. */
.faq2-head,.faq2-head *,.faq2 header,.faq2 header *{text-align:left!important;margin-left:0!important}
.faq2-list,.faq-list{margin-left:0!important}
/* Zustandsmarke: das alte Pluszeichen ausblenden, Balken sauber zentrieren */
.faq-q .icon{font-size:0!important;line-height:0;text-indent:-9999px;overflow:hidden;
  width:28px;height:28px}
.faq-q .icon::before{left:8px;right:8px;height:3px}
.faq-q .icon::after{top:8px;bottom:8px;width:3px}
/* Das alte Pluszeichen ist Text im Element. font-size:0 reicht bei manchen
   Schriften nicht, sichtbar bleibt ein Rest. visibility versteckt zuverlaessig,
   die Pseudo-Elemente holen sich die Sichtbarkeit zurueck. */
.faq-q .icon{visibility:hidden}
.faq-q .icon::before,.faq-q .icon::after{visibility:visible}

/* =========================================================================
   HERO-KOMPOSITIONEN DER UNTERSEITEN
   Fuenf eigene Geometrien aus einem Baukasten. Die alten Attrappen (Browser-
   fenster, Laptop, getoente Kacheln) sind ersetzt.
   ========================================================================= */
.k-comp{width:100%;height:auto;display:block;overflow:visible;max-width:520px}
.wd-hero__media,.sw-hero__media,.its-hero__media,.mk-hero__media{justify-content:flex-end}
.wd-hero__media>svg:not(.k-comp),.sw-hero__media>svg:not(.k-comp),
.its-hero__media>svg:not(.k-comp),.mk-hero__media>svg:not(.k-comp){display:none}
/* ueber-uns: der Hero ist jetzt zweispaltig, die rechte Haelfte traegt die Zeitachse */
.uu-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(30px,5vw,72px);align-items:center}
.uu-hero__media{justify-self:end;width:100%}
.uu-hero__media .k-comp{max-width:620px}
@media (max-width:1000px){
  .uu-hero__grid{grid-template-columns:1fr}
  .uu-hero__media{justify-self:start;margin-top:26px}
  .wd-hero__media,.sw-hero__media,.its-hero__media,.mk-hero__media{justify-content:flex-start}
}

/* =========================================================================
   SCHLUSSKEHRE nach dem Audit
   Einzelne Regeln nachzuziehen hat nicht gereicht: der Bestand setzt Radius
   und Schatten an ueber 70 Stellen mit eigener Spezifitaet. Deshalb einmal
   flaechendeckend loeschen und danach genau die Formen zurueckholen, die zur
   Welt gehoeren: der Kreis und die eingesetzte Kontur.
   ========================================================================= */
*,*::before,*::after{box-shadow:none!important;border-radius:0!important;
  text-shadow:none!important;filter:none!important}

/* --- zurueckgeholt: der Kreis --- */
.brand-o,.foot-social,.footer-social,.to-top,.top,.faq-q .icon,.faq-q .sig,
.crew-r .idx,.steps li::before,.mq-i::before,.nav a::after,.nav a:not(.nav-cta)::after,
.uu-dot,.uu-ms__dot,.uu-pcol__dot,.ka-step-pop,.cmodal__success-ic,.ts-btn,
[class*="__dot"],[class*="-dot"]{border-radius:50%!important}
/* --- zurueckgeholt: die eingesetzte Kontur als Zweitrang --- */
.btn-ghost .kb-face.f,.btn-outline .kb-face.f,.kb--alt .face.f,
.footer-cta .btn-ghost .kb-face.f{box-shadow:inset 0 0 0 3px var(--black)!important}
body .wd-card:not(:nth-child(2n)),body .sw-card:not(:nth-child(2n)),
body .mk-card:not(:nth-child(2n)),body .its-card:not(:nth-child(2n)),
body .ka-card:not(:nth-child(2n)),body .ins-card:not(:nth-child(2n)),
body .insights .card:not(:nth-child(3n+2)){box-shadow:inset 0 0 0 3px var(--black)!important}
.sw-toggle{box-shadow:inset 0 0 0 3px var(--black)!important}
/* Bilder in Referenz-Attrappen behalten ihre Form, aber ohne Rundung */
.ka-open,.ka-intern__card,.pt-mini,
.contact-embed,.footer-cta-hit,.lp-channel-link,.cb5-msg{border-radius:0!important}

/* --- Fremdfarben: kaltes Blaugrau raus, Palette rein --- */
.pr,.lp-eyebrow,.cb5-msg,[class*="__meta"],[class*="-meta"]{color:var(--grey)!important}
*{border-top-color:currentColor}
.pr,.lp-eyebrow{border-top-color:var(--bone-3)!important}

/* =========================================================================
   AUSNAHME: die Geraete-Attrappe im Leistungs-Detail
   Die flaechendeckende Kehre hat auch diese Szene flachgelegt. Ein Laptop
   ohne gerundetes Gehaeuse und ohne Abhebung ist kein Laptop mehr, sondern
   ein Rechteck. Hier ist die Rundung Abbildung eines echten Gegenstands,
   nicht Dekoration, deshalb bekommt genau dieser Block sie zurueck.
   ========================================================================= */
/* revert faellt auf den Browser-Standard zurueck, nicht auf den vorherigen
   Autorenwert. Die Werte stehen deshalb explizit hier, uebernommen aus der
   Sicherung .bak-rollout/styles.css. Ein Token dafuer, damit sie an einer
   Stelle stehen: --r-geraet ist die Rundung echter Gegenstaende. */
:root{--r-geraet:10px;--r-handy:17px;
  --sh-geraet:0 16px 38px rgba(17,17,17,.24),0 2px 6px rgba(17,17,17,.12)}
/* Leistungs-Detail: dieselben Originalwerte, ebenfalls explizit statt revert. */
.svc-lap-screen{border-radius:18px!important;overflow:hidden}
.svc-lap-deck{border-radius:3px 3px 20px 20px!important}
.svc-lap-deck::before,.svc-lap-deck::after{border-radius:6px!important}
.svc-phone-screen,.svc-phone-screen--m{border-radius:20px!important;overflow:hidden;
  box-shadow:0 18px 34px rgba(17,17,17,.3)!important}
.svc-pm-burger i,.svc-pm-body span{border-radius:2px!important}
.svc-pm-icons i{border-radius:6px!important}
.svc-scene--icon{border-radius:28px!important}
.svc-laptop,.svc-lap3d,.svc-mock,.svc-obj,.svc-fly{box-shadow:var(--sh-geraet)!important}
.svc-live,[class*="svc-live"],[class*="svc-badge"]{border-radius:var(--r-geraet)!important;
  box-shadow:var(--sh-geraet)!important}
.mk-print__item,.mk-print__item *{
  border-radius:revert!important;box-shadow:revert!important;filter:revert!important}
/* Referenzen: Bildkarte, Telefon und Punkt bekommen ihre Form zurueck */
.ref-media a{border-radius:var(--r-geraet)!important;overflow:hidden;
  box-shadow:var(--sh-geraet)!important}
.ref-media a img{border-radius:0!important}
.ref-phone{border-radius:var(--r-handy)!important;box-shadow:var(--sh-geraet)!important}
.ref-phone img,.ref-phone>*{border-radius:calc(var(--r-handy) - 5px)!important}
.ref-node{border-radius:50%!important}
/* Die Geraete im Leistungs-Detail heissen im Markup wd-*, nicht svc-*.
   Originalwerte aus .bak-rollout/leistungen.html, explizit gesetzt. */
.wd-screen{border-radius:16px 16px 0 0!important;overflow:hidden}
.wd-base{border-radius:0 0 13px 13px!important}
.wd-base::after,.wd-base::before{border-radius:0 0 6px 6px!important}
.wd-phone{border-radius:18px!important;overflow:hidden;
  box-shadow:0 18px 30px rgba(17,17,17,.3)!important}
.wd-phone img{border-radius:14px!important}
.wd-viewers{border-radius:999px!important;
  box-shadow:0 14px 30px -10px rgba(17,17,17,.28)!important}
.wd-eye{border-radius:50%!important}
.wd-laptop,.wd-mock{box-shadow:none!important}

/* =========================================================================
   Abschluss-CTA im Fuss: echter Kipp-Knopf am Ursprung der Bahnen.

   Vorher war der Knopf ein <rect> mit <text> IN der Grafik, darueber ein
   unsichtbares Klickfeld. Beschriftung liess sich nicht markieren, nicht
   vergroessern, nicht vorlesen. Jetzt steht dort ein echter Knopf, der
   dieselbe Stelle einnimmt: seine rechte Kante sitzt auf x=281 der viewBox,
   genau dort, wo die Bahnen entspringen.

   Farbrichtung ist hier umgekehrt zu den uebrigen Knoepfen: vorne Rot,
   gekippt Schwarz. Grund ist die Grafik daneben – die roten Bahnen fliessen
   aus dem roten Knopf, und beim Kippen wandert Schwarz von vorne nach hinten
   durch sie hindurch. Waere die Vorderseite schwarz, gaebe es nichts zu
   faerben.
   ========================================================================= */
.footer-cta-media{pointer-events:none}
.footer-cta-media .footer-cta-btn{
  display:inline-flex;position:absolute;z-index:3;pointer-events:auto;
  right:63.6%;                    /* = 100% - 281/773 : rechte Kante am Ursprung */
  top:62.1%;                      /* = 326/525 : Mitte des Bahnenbuendels */
  transform:translateY(-50%);
  --kh:56px;height:56px;padding:0 26px;font-size:1.02rem;white-space:nowrap}
.footer-cta-media .footer-cta-btn .kb-face.f{background:var(--red);color:#fff}
.footer-cta-media .footer-cta-btn .kb-face.b{background:var(--black);color:var(--bone)}
.footer-cta-media .footer-cta-btn:focus-visible{outline:3px solid var(--black);outline-offset:5px}

/* Die schwarze Zweitfassung der Bahnen liegt deckungsgleich darueber und wird
   per stroke-dashoffset von vorne nach hinten aufgedeckt. Der kleine Versatz
   je Bahn laesst es als Welle laufen statt als Schalter. */
.cf-black path{stroke-dasharray:100;stroke-dashoffset:100;
  transition:stroke-dashoffset .85s cubic-bezier(.4,0,.2,1) calc(var(--i,0) * .045s)}
.footer-cta-media:has(.footer-cta-btn:hover) .cf-black path,
.footer-cta-media:has(.footer-cta-btn:focus-visible) .cf-black path{stroke-dashoffset:0}
.cf-core .cf-dot{transition:stroke .5s cubic-bezier(.4,0,.2,1) .2s}
.footer-cta-media:has(.footer-cta-btn:hover) .cf-dot,
.footer-cta-media:has(.footer-cta-btn:focus-visible) .cf-dot{stroke:#4A4A48}

@media (prefers-reduced-motion:reduce){
  .cf-black path{transition:none}
}

/* Schmale Fenster: die Grafik entfaellt, der Knopf bleibt – derselbe Knopf,
   nur wieder im Textfluss und gross genug zum Tippen. */
@media (max-width:640px){
  .footer-cta-media{display:block;position:static;transform:none;height:auto;margin:22px 0 0;text-align:center}
  .footer-cta-img{display:none}
  .footer-cta-media .footer-cta-btn{position:static;transform:none;
    --kh:60px;height:60px;padding:0 32px;font-size:1.06rem}
}

/* ---------- 20 · Kopfzeile an die Startseite angleichen ------------------
   Die Startseite baut ihren Kopf aus konstruktiv.css (.hdr/.hdr-in), die
   Unterseiten aus dem aelteren styles.css (.site-header/.container). Drei
   Werte liefen dadurch auseinander (gemessen 24.08.2026, Playwright,
   1366x900, Chromium + Firefox):

     Merkmal        Startseite    Unterseiten (vorher)
     Wortmarke      1.3rem        1.18rem   (styles.css .brand)
     CTA-Schrift    13.6px        15.68px   (styles.css .nav a, 0,1,1 schlaegt
                                             .btn font-size:var(--kf), 0,1,0)
     CTA-Polster    0 20px        10px 20px (styles.css .nav .nav-cta, 0,2,0)
     Nav-Abstand    20px          30px      (styles.css .nav)

   Die Selektoren hier sind bewusst spezifisch genug (.site-header ...), um
   die styles.css-Regeln zu schlagen, ohne !important zu brauchen. */
.site-header .brand{font-size:1.3rem}
.site-header .nav{gap:clamp(9px,1.5vw,20px)}
.site-header .nav a.btn.nav-cta{font-size:var(--kf,.85rem);font-weight:800;
  padding:0 var(--kp,20px);height:var(--kh,46px)}
/* font-weight ebenfalls aus styles.css .nav a (500) - der Knopftext stand auf den
   Unterseiten duenner als auf der Startseite (Knopf 184.8 statt 190.8 px breit). */

/* ---------- 21 · Satzspiegel der Unterseiten auf das Startseiten-Raster ---
   Die Startseite legt ihren Inhalt in --max (1400px) mit --gut (bis 66px)
   Seitenabstand; die Unterseiten erbten aus styles.css --maxw (1140px) mit
   festen 24px. Beim Wechsel Startseite -> Unterseite sprang der Kopf dadurch
   um 71px nach innen (gemessen 24.08.2026: Wortmarke x=66 vs x=137).

   Nicht nur .site-header .container wird angeglichen, sondern --maxw selbst:
   sonst behielten .container (styles.css:90) und .lsg-grid (styles.css:3209)
   unterschiedliche Breiten und der Kopf staende weiter aussen als der Inhalt
   darunter. .pillars .container (max-width:none) bleibt unberuehrt, weil
   dessen Selektor spezifischer ist. */
:root{--maxw:var(--max)}
.container{padding-left:var(--gut);padding-right:var(--gut)}

/* ---------- 22 · Lange Woerter in den Seitenkoepfen umbrechen ------------
   Auf dem Handy (390px) verlor karriere.html das Wortende: "Verstaerkun"
   statt "Verstaerkung.". Das Wort braucht bei 52px Schrift 412.6px, die
   Spalte hat 350px - der Hero-Block wuchs auf 413px und wurde rechts
   abgeschnitten (gemessen 24.08.2026; auf der Live-Seite identisch, also
   ein Bestandsfehler, nicht Folge der Raster-Angleichung oben).

   Gleiche Ursache und gleiche Behebung wie Karte #356 fuer .page-head h1
   (Rechtstexte) und #355 auf sauber-glanz.de. Dort blieb ausdruecklich
   offen, ob es weitere Faelle gibt - dieser hier ist einer. Die Regel gilt
   deshalb gleich fuer alle sieben Seitenkopf-Ueberschriften, damit auch
   kuenftige lange Woerter nicht wieder abreissen. */
@media (max-width:900px){
  .wd-h1,.sw-h1,.mk-h1,.its-h1,.ka-h1,.uu-h1,.pt-h1{
    overflow-wrap:break-word;hyphens:auto}
  /* Damit der Umbruch ueberhaupt greifen kann: Rasterfelder duerfen unter ihre
     Inhaltsbreite schrumpfen. Ein Grid-Feld hat von sich aus min-width:auto und
     wird sonst vom laengsten Wort aufgezogen - genau das geschah hier (Feld 350px,
     Spur 412.6px). Die Spuren selbst stehen in den <style>-Bloecken der Seiten und
     wurden dort auf minmax(0, 1fr) gesetzt; hier die zugehoerigen Felder. */
  .wd-hero__grid>*,.sw-hero__grid>*,.mk-hero__grid>*,
  .its-hero__grid>*,.ka-hero__grid>*,.uu-hero__grid>*{min-width:0}
}

/* ---------- 23 · Fusszeile an die Startseite angleichen ------------------
   Die Fusszeile ist auf jeder Seite dieselbe Komponente - gebaut ist sie es
   nicht: Startseite statisch aus konstruktiv.css (.foot), Unterseiten per
   buildFooter() aus main.js mit styles.css darunter (.site-footer). Vier
   Werte liefen dadurch auseinander (gemessen 24.08.2026, 1366x900):

     Merkmal          Startseite              Unterseiten (vorher)
     Raster           1.5fr repeat(4,1fr)     1.7fr 1fr 1fr 1fr 1fr
     Spaltenabstand   clamp(22px,3vw,44px)    clamp(18px,2.4vw,36px)
                      -> Spalten begannen bei x=427.7 statt 398.8
     Spaltentitel     Zeilenhoehe 1.62        0.98 - der Titel ist ein <h4>
                      (von body geerbt)       und fiel unter die Regel
                                              h1,h2,h3,h4,h5{line-height:.98}
     Link             .94rem (15.04px)        .88rem (14.08px), styles.css
                                              .footer-col li a
     Wortmarke        1.16rem (18.56px)       1.2rem (19.2px), .footer-brand

   Nicht angeglichen, bewusst: die Zeilenhoehe der grossen Knoepfe (24.36 vs
   18.05px). Der Knopf ist flex mit fester Hoehe und zentriert - gemessen sind
   beide 227.6x56px, sichtbar aendert die Zeilenhoehe dort nichts. */
/* Nur ab 1025px: styles.css staffelt .footer-grid darunter auf 3, 2 und 1 Spalte
   (Umbruchpunkte 1024/640/420px). Ohne diese Klammer schlaegt der Selektor hier
   (0,2,0) jene Media-Query-Regeln (0,1,0) - die Fusszeile blieb dann auch auf dem
   Handy fuenfspaltig und ragte ueber den Rand. Beim ersten Versuch genau so
   passiert und beim Gegenmessen aufgefallen. */
@media (min-width:1081px){
  .site-footer .footer-grid{grid-template-columns:1.5fr repeat(4,1fr);gap:clamp(22px,3vw,44px)}
}
/* Auch die Staffelung selbst uebernehmen, sonst stimmt nur die breiteste Ansicht:
   Startseite bricht bei 1080px auf zwei und bei 860px auf eine Spalte, styles.css
   dagegen bei 1024 auf drei, 640 auf zwei und 420 auf eine. Zwischen 1025 und 1080px
   stand die Unterseite deshalb fuenfspaltig, waehrend die Startseite schon zwei zeigte. */
@media (max-width:1080px){
  .site-footer .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .site-footer .footer-grid{grid-template-columns:1fr}
}
.site-footer h4{line-height:1.62}
.site-footer .footer-col li a{font-size:.94rem}
.site-footer .footer-brand{font-size:1.16rem}
/* Der Abschluss der Fusszeile lief ebenso auseinander:
     Beschreibungstext  .92rem/1.62  <-  .86rem/1.5  (styles.css .footer-about)
     Rechtszeile        .86rem       <-  .8rem       (styles.css .footer-bottom)
     Rechtslinks        .94rem       <-  .8rem geerbt (Startseite: .foot a)
   Der Rechtslink war mit 15.04 gegen 12.8px der auffaelligste Einzelwert. */
.site-footer .footer-about{font-size:.92rem;line-height:1.62}
.site-footer .footer-bottom{font-size:.86rem}
.site-footer .footer-legal a{font-size:.94rem}
/* Abstand der Rechtslinks: Startseite .foot-b nav{gap:18px}, hier waren es 20px
   - die Gruppe begann dadurch 4px weiter links. */
.site-footer .footer-legal{gap:18px}

/* ---------- 24 · Klappmenue der Unterseiten schon ab 999px ---------------
   Gleiche Ursache wie auf der Startseite, nur anders sichtbar: styles.css
   schaltet den Drawer erst ab 720px. Zwischen 721 und 999px lief die
   Navigation ueber den Kopfrand hinaus und wurde abgeschnitten - bei 900px
   endete der Knopf "Erstgespraech buchen" bei 943px statt bei 857 (gemessen
   24.08.2026, auf der Live-Seite identisch). Die Seite scrollte dabei nicht
   waagerecht, der Knopf war schlicht halb weg.

   Die Regeln wiederholen den Drawer-Block aus styles.css (Zeile 1796 ff.)
   fuer den Bereich bis 999px. Bewusst wiederholt statt dort die 720 auf 999
   geaendert: in jenem Block stehen auch .grid-3/-4/-5, .founders .two-col und
   der Zickzack-Umbruch, die erst ab 720px greifen sollen.
   Rueckbau: diesen Block loeschen. */
@media (max-width:999px){
  .nav-toggle{display:inline-flex;flex-direction:column;align-items:center;justify-content:center}
  .site-header{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}
  .nav-scrim{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:40;
    background:rgba(17,17,17,.45);opacity:0;visibility:hidden;pointer-events:none;touch-action:none;
    transition:opacity .3s var(--ease),visibility 0s linear .3s}
  body.nav-open .nav-scrim{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s var(--ease)}
  .nav{position:fixed;top:0;right:0;height:100vh;height:100dvh;z-index:2;
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    width:min(320px,86vw);background:#fff;padding:84px 24px 24px;box-shadow:var(--shadow-lg);
    overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    transform:translateX(100%);visibility:hidden;
    transition:transform .34s var(--ease),visibility 0s linear .34s}
  body.nav-open .nav{transform:translateX(0);visibility:visible;transition:transform .34s var(--ease)}
  .nav a{padding:14px 0;border-bottom:1px solid var(--border)}
  .nav a.active:not(.btn)::after{display:none}
  .nav .btn,.nav .nav-cta{width:100%;text-align:center;justify-content:center;margin-top:16px;border-bottom:none}
  body.nav-open{overflow:hidden;overscroll-behavior:none}
  @media (prefers-reduced-motion:reduce){
    .nav,.nav-scrim{transition:none}
  }
}
