/* =====================================================================
   proQtech · V3 · Startseite DE
   Nur Clarity City. Nur Original-Blautöne. Hell, hochwertig, seriös.
   ===================================================================== */
@font-face{font-family:"Clarity City";src:url(../fonts/ClarityCity-Light.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Clarity City";src:url(../fonts/ClarityCity-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Clarity City";src:url(../fonts/ClarityCity-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Clarity City";src:url(../fonts/ClarityCity-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Clarity City";src:url(../fonts/ClarityCity-Bold.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  /* Originalfarben der proQtech-Seite */
  --midnight:#0f2d4b; --midnight-2:#143352; --slate:#184e8b; --royal:#195ea0; --hover:#12497e;
  --dodger:#0c95e3; --sky:#05acff; --gradient:#56a5ff; --brand:#184e8b;
  --smoke:#f8fafd; --tint:#e9f1fa; --bluesmoke:#dbe4ee; --text:#556577; --white:#fff;
  --hair:#e1e8f0; --hair-dark:rgba(255,255,255,.14);
  --font:"Clarity City",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:clamp(20px,4.5vw,72px); --max:1440px;
  --edge:max(var(--pad),calc((100vw - var(--max))/2 + var(--pad)));
  --r:4px; --r-lg:6px;
  --ease:cubic-bezier(.22,1,.36,1);
  --blue-filter:brightness(0) saturate(100%) invert(16%) sepia(35%) saturate(1400%) hue-rotate(185deg) brightness(90%);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--text);background:var(--white);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  /* clip statt hidden: hidden macht den Body zum Scroll-Container, was auf
     iOS das Seiten-Scrolling und sticky-Elemente stoert. */
  overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
::selection{background:var(--royal);color:#fff}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.sec{padding-block:clamp(56px,6.5vw,96px)}
.sec.smoke{background:var(--smoke)}
.tint{background:var(--tint)}
.sec.navy{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  color:#fff;position:relative;isolation:isolate}
@media (min-width:1100px){.sec.navy{background-image:url(../img/bg-field-3000.webp)}}
/* Kein Tonwechsel zwischen den blauen Abschnitten: jede Abstufung erzeugt an der
   Abschnittsgrenze eine harte Kante. Der Rhythmus kommt ueber den Bildwechsel links/rechts. */
/* Zweite Blauflaeche: das Verlaufsbild der Live-Seite, gleiche Textregeln wie .navy */
.sec.navy.tone-b{background:var(--brand) url(../img/bg-field-1600.webp) center/cover fixed no-repeat}
@media (min-width:1100px){.sec.navy.tone-b{background-image:url(../img/bg-field-3000.webp)}}
.sec.navy.tone-b .raster-navy{opacity:.55}
.sec.navy.tone-b .ben,.sec.navy.tone-b .col{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
.sec.navy.tone-b .ben:hover,.sec.navy.tone-b .col:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.34)}
.sec.navy.tone-b .head{border-color:rgba(255,255,255,.22)}
.sec.navy.tone-b .eyebrow{color:#9fd4ff}

/* Typografie */
h1,h2,h3,h4{font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--midnight)}
/* Umbruch: kein einzelnes Wort allein in der letzten Zeile - Ueberschriften
   werden ausgeglichen, Fliesstext, Listen und Bildunterschriften mit "pretty"
   umbrochen. Gilt fuer die ganze Seite. */
h1,h2,h3,h4,blockquote{text-wrap:balance}
/* Lange Komposita duerfen auf schmalen Schirmen trennen, sonst laufen sie aus
   dem Satzspiegel (Obsoleszenzmanagement, Geschaeftsbedingungen ...). */
h1,h2,h3,h4{overflow-wrap:break-word}
/* Trennung nur in Ueberschriften (auf allen Breiten, sonst bricht z. B.
   "Obsoleszenzmanagement" ohne Trennstrich um) - im Fliesstext wirken Trennstriche unruhig */
h1,h2,h3,h4{hyphens:auto;-webkit-hyphens:auto}
@media (max-width:620px){
  p,li,.sub,.lead,figcaption{overflow-wrap:break-word}
}
p,li,dd,figcaption,.sub,.lead,.eyebrow,label,summary{text-wrap:pretty}
.h1{font-size:clamp(1.95rem,3.4vw,2.85rem);letter-spacing:-.025em;line-height:1.06}
.h2{font-size:clamp(1.5rem,2.3vw,2rem)}
.h3{font-size:clamp(1.05rem,1.3vw,1.22rem);font-weight:600}
.lead{font-size:clamp(1rem,1.1vw,1.08rem);line-height:1.6;color:var(--text)}
.sub{font-size:.98rem;color:var(--text);max-width:62ch}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--royal)}
.eyebrow::before{content:"";width:22px;height:2px;background:currentColor}
.navy h1,.navy h2,.navy h3,.navy h4{color:#fff}
.navy .lead,.navy .sub,.navy p{color:rgba(255,255,255,.82)}
.navy .eyebrow{color:var(--sky)}
.hl{color:var(--royal)}

.head{padding-top:22px;border-top:1px solid var(--hair);margin-bottom:clamp(32px,4vw,52px)}
.head h2{margin-top:14px;max-width:24ch}
.head .sub{margin-top:18px;max-width:56ch}
.navy .head{border-top:0;padding-top:0}

/* Raster */
.raster-navy{position:absolute;inset:0;pointer-events:none;background:url(../img/wafer3.svg) no-repeat;background-size:900px;opacity:.85}
/* Das dichte Wafer-Muster ist aus den Blauflaechen raus, darueberliegender Text
   wurde damit schwer lesbar. Stattdessen ein weites, sehr feines Gitter. */
.sec.navy .raster-navy,footer .raster-navy,.phero.brand .raster-blue{display:none}
/* Alle Raster sind abgeschaltet: das Muster stoerte ueber Text und Flaechen.
   Die Bausteine bleiben im CSS, damit sie sich einzeln wieder zuschalten lassen. */
.raster-navy,.raster-blue,.figrast{display:none !important}
.figwrap{position:relative}
.sec.navy>.wrap{position:relative;z-index:1}
.raster-blue{position:absolute;pointer-events:none;background:url(../img/wafer-blue.svg) no-repeat;background-size:100% 100%}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 22px;border-radius:var(--r);font-weight:600;font-size:.95rem;white-space:nowrap;transition:background .3s,color .3s,border-color .3s}
.btn svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
/* Ein Hover fuer alle Buttons: Anheben um 2px, weicher Schatten, Pfeil rueckt
   nach rechts. Nur die Farbstufe ist je Variante anders. */
.btn{transition:background .28s,color .28s,border-color .28s,box-shadow .28s var(--ease),transform .28s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 18px 36px -20px rgba(15,45,75,.45)}
.btn-primary{background:var(--royal);color:#fff}
.btn-primary:hover{background:var(--hover)}
.btn-navy{background:var(--midnight);color:#fff}
.btn-navy:hover{background:var(--royal)}
.btn-white{background:#fff;color:var(--midnight)}
/* Auf der blauen Flaeche selbst waere ein blauer Button kaum zu erkennen -
   dort steht der Primaerbutton in Weiss. In den weissen Karten bleibt er blau. */
.sec.navy .btn-primary:not(.contact .btn-primary):not(.card .btn-primary){
  background:#fff;color:var(--midnight)}
.sec.navy .btn-primary:not(.contact .btn-primary):hover{background:#fff;color:var(--midnight);
  box-shadow:0 0 0 5px rgba(255,255,255,.22),0 18px 36px -20px rgba(0,0,0,.5)}
.sec.navy .contact .btn-primary{background:var(--royal);color:#fff}
.sec.navy .contact .btn-primary:hover{background:var(--hover);color:#fff}
/* Der weisse Button steht auf blauem Grund. Beim Hover bleibt er weiss - jeder
   Farbwechsel liefe hier ins Blau des Untergrunds. Stattdessen hebt er sich und
   bekommt einen weissen Ring, der auf der blauen Flaeche deutlich zu sehen ist. */
.btn-white:hover{background:#fff;color:var(--midnight);
  box-shadow:0 0 0 5px rgba(255,255,255,.22),0 18px 36px -20px rgba(0,0,0,.5)}
.btn-line{border:1px solid var(--bluesmoke);color:var(--midnight);background:#fff}
/* Linienbutton: beim Hover nicht dunkler rahmen (wirkt eingedrueckt) - er bleibt
   weiss und tritt nur ueber Hebung und Schatten hervor. */
.btn-line:hover{border-color:var(--bluesmoke);background:#fff}
.navy .btn-line{background:transparent;border-color:var(--hair-dark);color:#fff}
.navy .btn-line:hover{border-color:#fff;background:rgba(255,255,255,.14)}
.tlink{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--royal);font-size:.95rem}
.tlink svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.tlink:hover svg{transform:translateX(4px)}
.navy .tlink{color:var(--sky)}

/* Header */
.hdr{position:fixed;inset:0 0 auto 0;z-index:80;height:78px;display:flex;align-items:center;
  background:linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.9) 100%);
  -webkit-backdrop-filter:blur(26px) saturate(170%);
          backdrop-filter:blur(26px) saturate(170%);
  border-bottom:1px solid var(--hair);
  box-shadow:none;
  transition:background .4s var(--ease),box-shadow .4s,height .35s,border-color .4s}
/* Lichtkante an der Unterkante der Glasleiste */
.hdr::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;pointer-events:none;
  opacity:0;transition:opacity .4s;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.95) 20%,rgba(255,255,255,.8) 80%,transparent)}
.hdr.solid::after{opacity:1}
/* Beim Scrollen wird die Leiste zu Glas: transparenter, mit Lichtkante und Schatten */
.hdr.solid{height:68px;
  background:linear-gradient(180deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.78) 100%);
  -webkit-backdrop-filter:blur(30px) saturate(185%) brightness(1.06);
          backdrop-filter:blur(30px) saturate(185%) brightness(1.06);
  border-bottom-color:rgba(255,255,255,.55);
  box-shadow:0 14px 40px -26px rgba(8,26,46,.55),inset 0 1px 0 rgba(255,255,255,.95)}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .hdr{background:rgba(255,255,255,.96)}
}
.hdr .wrap{width:100%;max-width:none;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo img{height:32px;width:auto}
.logo .w{display:none}
.nav{display:flex;gap:2px}
.nav-item{position:relative}
.nav-link{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border-radius:var(--r);font-weight:500;font-size:.95rem;color:var(--midnight);transition:background .3s,color .3s}
.nav-link:hover,.nav-item.open>.nav-link{background:transparent;color:var(--midnight);opacity:.65}
.nav-link svg{width:14px;height:14px;transition:transform .3s}
.nav-item.open>.nav-link svg{transform:rotate(180deg)}
/* ---- Menue-Flyout -------------------------------------------------------
   Glasplatte wie die Kopfzeile. Keine gefuellten Icon-Kacheln mehr: nur die
   Linienzeichnung, eine duenne Schiene links und ein Pfeil, der beim Hover
   einfaehrt. Die Zeilen laufen beim Oeffnen nacheinander ein (--i). */
.dd{position:absolute;top:calc(100% + 12px);left:-6px;min-width:306px;
  background:rgba(255,255,255,.985);
  -webkit-backdrop-filter:blur(26px) saturate(180%);backdrop-filter:blur(26px) saturate(180%);
  border:1px solid rgba(15,45,75,.1);border-radius:8px;padding:7px;
  box-shadow:0 30px 66px -28px rgba(15,45,75,.5),
             0 2px 12px -8px rgba(15,45,75,.26);
  opacity:0;visibility:hidden;transform:translateY(8px) scale(.988);transform-origin:top left;
  transition:opacity .34s var(--ease),transform .34s var(--ease),visibility .34s}
.nav-item.open .dd{opacity:1;visibility:visible;transform:none}

.dd-a{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) 14px;
  gap:13px;align-items:center;padding:10px 12px;border-radius:5px;
  opacity:0;transform:translateY(7px);
  transition:background .24s var(--ease),
             opacity .42s var(--ease),transform .42s var(--ease)}
.dd-group{padding:13px 12px 6px;font-size:.625rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(15,45,75,.42);
  opacity:0;transform:translateY(7px);
  transition:opacity .42s var(--ease),transform .42s var(--ease)}
.dd>.dd-group:first-child{padding-top:5px}
.nav-item.open .dd-a,.nav-item.open .dd-group{opacity:1;transform:none;
  transition-delay:calc(var(--i,0) * 28ms + 40ms)}

/* Schiene links statt farbigem Kasten */
.dd-a::before{content:"";position:absolute;left:3px;top:50%;width:2px;height:15px;
  border-radius:2px;background:var(--royal);
  transform:translateY(-50%) scaleY(0);transform-origin:center;
  transition:transform .3s var(--ease)}
.dd-a:hover,.dd-a:focus-visible{background:rgba(24,78,139,.07)}
.dd-a:hover::before,.dd-a:focus-visible::before{transform:translateY(-50%) scaleY(1)}

.dd-a .ico{width:22px;height:22px;flex:none;display:grid;place-items:center;
  background:none;border:0;border-radius:0;color:rgba(15,45,75,.46);
  transition:color .24s var(--ease)}
.dd-a:hover .ico,.dd-a:focus-visible .ico{color:var(--royal)}
.dd-a .ico svg{width:19px;height:19px}
.dd-a .ico.mark svg{width:16px;height:16px}
.dd-a b{display:block;font-weight:500;color:var(--midnight);font-size:.905rem;
  letter-spacing:-.01em;white-space:nowrap;transition:color .24s var(--ease)}
.dd-a:hover b,.dd-a:focus-visible b{color:var(--royal)}
.dd-arr{width:14px;height:14px;color:var(--royal);opacity:0;transform:translateX(-5px);
  transition:opacity .28s var(--ease),transform .28s var(--ease)}
.dd-arr svg{width:100%;height:100%;display:block}
.dd-a:hover .dd-arr,.dd-a:focus-visible .dd-arr{opacity:1;transform:none}

/* Hervorgehobene Zeile am Fuss des Menues */
/* Die drei "... bei proQtech" bilden eine Gruppe, die offenen Stellen
   setzen sich davon ab: eigener Grund, feine Linie, etwas Luft. */
.dd-a.feat{position:relative;margin-top:11px;background:rgba(24,78,139,.065);border-radius:5px}
.dd-a.feat::after{content:"";position:absolute;left:0;right:0;top:-6px;height:1px;
  background:var(--hair)}
.dd-a.feat:hover{background:rgba(24,78,139,.115)}
.dd-a.feat b{color:var(--royal);font-weight:600}
.dd-a.feat .ico{color:var(--royal)}

@media (prefers-reduced-motion:reduce){
  .dd,.dd-a,.dd-group,.dd-arr,.dd-a::before{transition-duration:.01ms !important}
  .qsteps-v.js-flow .qstep{opacity:1;transform:none}
}
.hdr-right{display:flex;align-items:center;gap:10px}
.lang{display:inline-flex;align-items:center;gap:2px}
.lang a{padding:7px 9px;border-radius:var(--r);font-size:.82rem;font-weight:600;letter-spacing:.03em;color:var(--text);opacity:.55;transition:opacity .25s,background .25s,color .25s}
.lang a.on{opacity:1;color:var(--midnight)}
.lang a:not(.on):hover{opacity:1;background:var(--smoke)}
.lang .sep{width:1px;height:13px;background:var(--bluesmoke);flex:none}
.hdr .btn{height:44px;padding:0 18px;font-size:.9rem}
.burger{display:none;width:44px;height:44px;border:1px solid var(--bluesmoke);border-radius:var(--r);place-items:center;background:#fff}
.burger span{display:block;width:18px;height:2px;background:var(--midnight);margin:2.5px 0;transition:.3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-4.5px) rotate(-45deg)}
/* Header über dunklem Hero */

.mobile{position:fixed;inset:0;z-index:79;background:#fff;padding:96px var(--pad) 40px;overflow:auto;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .3s,transform .3s,visibility .3s;-webkit-overflow-scrolling:touch}
.mobile.open{opacity:1;visibility:visible;transform:none}
/* Mobiles Menue: Hauptpunkte mit Untermenue zum Aufklappen. Die Unterseiten
   stehen nicht mehr alle flach untereinander. */
.mnav{display:block}
.mgrp{border-bottom:1px solid var(--hair)}
.mtop{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  padding:16px 0;font-size:1.12rem;font-weight:600;color:var(--midnight);text-align:left;
  background:none;border:0;border-bottom:1px solid var(--hair);cursor:pointer}
.mgrp .mtop{border-bottom:0}
.mchev{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;
  background:var(--smoke);color:var(--royal);flex:none;transition:transform .3s var(--ease),background .3s}
.mchev svg{width:17px;height:17px}
.mtop[aria-expanded="true"] .mchev{transform:rotate(180deg);background:var(--royal);color:#fff}
.msub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s var(--ease)}
.mtop[aria-expanded="true"] + .msub{grid-template-rows:1fr}
.msub > *{overflow:hidden}
.msub a{display:flex;align-items:center;gap:12px;padding:12px 0 12px 14px;border-left:2px solid var(--bluesmoke);
  margin-left:2px;font-size:.98rem;font-weight:500;color:var(--text)}
.msub > div{overflow:hidden}
.msub a .ico{flex:none;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;
  background:var(--smoke);border:1px solid var(--hair);color:var(--royal)}
.msub a .ico svg{width:17px;height:17px}
.msub a .ico.mark svg{width:15px;height:15px}
.msub a:first-child{padding-top:2px}
.msub a:last-child{padding-bottom:16px}
.msub a:hover,.msub a:active{color:var(--royal);border-left-color:var(--royal)}
.mcta{margin-top:26px;width:100%;justify-content:center;height:54px;font-size:1rem}
.mlang{display:flex;align-items:center;gap:12px;margin-top:22px;font-size:.88rem;font-weight:600}
.mlang a{color:var(--muted,#8a97a6);padding:6px 2px}
.mlang a.on{color:var(--midnight)}
.mlang .sep{width:1px;height:12px;background:var(--bluesmoke)}

/* ===================== HERO + VARIANTEN ===================== */
.hero{position:relative;overflow:hidden;padding:0;
  --hero-bg:var(--smoke);--hero-fg:var(--midnight);--hero-muted:var(--text);
  --hero-hair:var(--bluesmoke);--hero-line:rgba(25,94,160,.16);--hero-eyebrow:var(--royal);
  --iso-filter:var(--blue-filter);--cogd-filter:none;
  background:var(--hero-bg)}
.hero .raster-blue{right:-120px;top:-90px;width:min(880px,74vw);height:min(860px,74vw);opacity:.65}

.hero-grid{display:grid;position:relative;z-index:2}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.trust{display:flex;gap:28px;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--hero-muted)}
.trust-item img{height:32px;width:auto;filter:var(--iso-filter)}
.trust-item img.cogd{height:17px;filter:var(--cogd-filter)}
.trust-item b{display:block;color:var(--hero-fg);font-weight:600}

.hero-visual{position:relative}
.slider{position:relative;overflow:hidden;background:var(--midnight)}
.slider .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s var(--ease)}
.slider .slide.on{opacity:1}
.slider .slide img{width:100%;height:100%;object-fit:cover;object-position:center 38%;transform:scale(1.02);transition:transform 8s linear}
.slider .slide.on img{transform:scale(1.07)}
.slider::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,45,75,0) 42%,rgba(15,45,75,.7))}
.slide-ui{position:absolute;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;color:#fff}
.slide-ui b{display:block;font-weight:600;font-size:1.05rem}
.slide-ui span{font-size:.85rem;color:rgba(255,255,255,.75)}
.dots{display:flex;gap:6px;flex:none}
.dots button{width:36px;height:2px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.dots button i{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
.dots button.on i{animation:fill 7s linear forwards}
@keyframes fill{to{transform:scaleX(1)}}

/* ---- Hero: Bildfläche mit Textkarte ---- */
.hero{min-height:clamp(560px,66vh,720px);display:flex;align-items:center;padding-top:76px}
.hero-visual{position:absolute;inset:0;z-index:0}
.hero .slider{position:absolute;inset:0;border-radius:0;box-shadow:none}
.hero .slider::after{background:linear-gradient(100deg,rgba(8,26,46,.58) 0%,rgba(8,26,46,.42) 38%,rgba(8,26,46,.22) 64%,rgba(8,26,46,.38) 100%)}
.hero .raster-blue{display:none}
.hero-grid{display:block;width:100%;max-width:var(--max);margin-inline:auto;padding:clamp(40px,5vw,72px) var(--pad);position:relative;z-index:2}
.hero-card{position:relative;isolation:isolate;overflow:hidden;border-radius:14px;padding:clamp(26px,2.9vw,40px);max-width:min(530px,48vw);
  background:linear-gradient(140deg,rgba(255,255,255,.86) 0%,rgba(255,255,255,.72) 46%,rgba(255,255,255,.80) 100%);
  -webkit-backdrop-filter:blur(40px) saturate(190%) brightness(1.12);
          backdrop-filter:blur(40px) saturate(190%) brightness(1.12);
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 44px 96px -44px rgba(8,26,46,.72),
             0 2px 10px -4px rgba(8,26,46,.25),
             inset 0 1px 0 rgba(255,255,255,.95),
             inset 0 -26px 48px -34px rgba(255,255,255,.75)}
/* Lichtreflex oben links */
.hero-card::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(130% 85% at 10% -6%,rgba(255,255,255,.62) 0%,rgba(255,255,255,.18) 38%,transparent 66%)}
/* Lichtkante an der Oberkante */
.hero-card::after{content:"";position:absolute;left:8%;right:8%;top:0;height:1px;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.98) 28%,rgba(255,255,255,.7) 72%,transparent)}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .hero-card{background:rgba(255,255,255,.95)}
}
.hero-card .trust{border-top-color:rgba(15,45,75,.16)}
.hero-card .trust-item{color:rgba(15,45,75,.78);font-size:.8rem}
.hero-card .btn-line{background:rgba(255,255,255,.55);border-color:rgba(255,255,255,.8);color:var(--midnight);
  -webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.hero-card .btn-line:hover{background:#fff;border-color:var(--bluesmoke)}
.hero-card .btn-primary{box-shadow:0 12px 28px -14px rgba(25,94,160,.85)}
.hero-card .h1{font-size:clamp(1.65rem,2.45vw,2.1rem);letter-spacing:-.028em;line-height:1.12;margin-top:14px;color:var(--midnight)}
.hero-card .lead{margin-top:14px;color:rgba(15,45,75,.82);font-size:.94rem}
.hero-card .lead strong{color:var(--midnight);font-weight:600}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.hero-card .trust{display:flex;gap:26px;flex-wrap:wrap;margin-top:26px;padding-top:22px;border-top:1px solid var(--hair)}
.trust-item{display:flex;align-items:center;gap:11px;font-size:.82rem;color:var(--text)}
.trust-item img{height:30px;width:auto;filter:var(--blue-filter)}
.trust-item img.cogd{height:16px;filter:none}
.trust-item b{display:block;color:var(--midnight);font-weight:600}
.slider{position:relative;overflow:hidden;background:var(--midnight)}
.slider .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.1s var(--ease)}
.slider .slide.on{opacity:1}
.slider .slide img{width:100%;height:100%;object-fit:cover;object-position:center 34%;transform:scale(1.02);transition:transform 8s linear}
.slider .slide.on img{transform:scale(1.07)}
.slide-ui{position:absolute;z-index:3;right:max(var(--pad),calc((100vw - var(--max))/2 + var(--pad)));bottom:26px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;text-align:right;color:#fff;max-width:340px}
.slide-ui b{display:block;font-weight:600;font-size:1rem}
.slide-ui span{font-size:.84rem;color:rgba(255,255,255,.75)}
.dots{display:flex;gap:6px;flex:none}
.dots button{width:34px;height:2px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.dots button i{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
.dots button.on i{animation:fill 7s linear forwards}
@keyframes fill{to{transform:scaleX(1)}}
.hero-services{background:var(--midnight);color:#fff;position:relative;z-index:2}
.hero-services .wrap{min-height:0}
.hero-services .wrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(18px,3vw,44px);align-items:center;padding-block:14px}
.hero-services .lbl{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);white-space:nowrap}
.hs-list{display:flex;flex-wrap:wrap;gap:2px}
.hs-list a{display:inline-flex;align-items:center;gap:9px;padding:12px 14px;border-radius:var(--r);font-size:.88rem;font-weight:600;color:rgba(255,255,255,.86);white-space:nowrap;transition:background .3s,color .3s}
.hs-list a:hover{background:rgba(255,255,255,.12);color:#fff}
.hs-list img{width:20px;height:20px;flex:none;filter:brightness(0) invert(1);opacity:.85}
.hs-list .sic svg{width:20px;height:20px}
.hs-list a .sic{opacity:.85}
.hs-list a:hover .sic{opacity:1}
/* Altlast: versteckte frueher die Pfeil-SVGs. Nur direkte Kinder treffen,
   sonst verschwinden die Icons in .sic mit. */
.hs-list a > svg{display:none}

/* Laufband */
.marquee{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:#fff;overflow:hidden;padding:18px 0}
.marquee-track{display:flex;gap:0;width:max-content;animation:marq 74s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{display:flex;align-items:center;gap:20px;padding-right:20px;font-size:.82rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--midnight);white-space:nowrap}
.marquee-item i{width:6px;height:6px;background:var(--royal)}
@keyframes marq{to{transform:translateX(-50%)}}

/* Statement */
.statement{padding-block:clamp(72px,9vw,124px)}
.statement-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:clamp(24px,4vw,64px)}
.statement .big{font-size:clamp(1.35rem,2.2vw,1.95rem);line-height:1.25;letter-spacing:-.022em;color:var(--midnight);font-weight:600;max-width:20ch}
.statement .big .w{display:inline-block;opacity:.14;transition:opacity .5s var(--ease)}
.statement .big .w.on{opacity:1}
.statement .body{margin-top:26px;display:grid;gap:16px;max-width:62ch}
.statement .body p{color:var(--text);font-size:1.05rem}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--bluesmoke);border-bottom:1px solid var(--bluesmoke);margin-top:clamp(40px,5vw,60px)}
.kpi{padding:clamp(22px,2.5vw,32px) 0;display:grid;gap:8px}
.kpi+.kpi{padding-left:clamp(18px,2.5vw,32px);border-left:1px solid var(--bluesmoke)}
.kpi .n{font-size:clamp(2rem,3vw,2.8rem);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--midnight)}
.kpi .n small{font-size:.5em;color:var(--royal);margin-left:3px;font-weight:600}
.kpi .l{font-size:.88rem;color:var(--text);max-width:24ch}

/* Leistungen */
.tabs{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,3vw,40px);align-items:start}
/* Nicht klebend: die Liste soll mit der Seite weglaufen, nicht mitwandern. */
.tab-list{display:grid;gap:6px;align-self:start}
.tab{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:16px;align-items:center;padding:18px 20px;border-radius:var(--r-lg);text-align:left;border:1px solid transparent;position:relative;transition:background .3s,border-color .3s}
.tab::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;background:var(--royal);transform:scaleY(0);transition:transform .35s var(--ease)}
.tab .ico{width:44px;height:44px;border-radius:var(--r);background:#fff;border:1px solid var(--hair);display:grid;place-items:center}
.tab .ico img{width:24px;height:24px}
.tab .ico svg{width:22px;height:22px;color:var(--royal)}
.tab.on .ico{background:var(--royal)}
.tab.on .ico img{filter:brightness(0) invert(1)}
.tab.on .ico svg{color:#fff}
.tab b{display:block;font-weight:600;color:var(--midnight);font-size:1rem}
.tab span{display:block;font-size:.85rem;color:var(--text);line-height:1.45;margin-top:2px}
.tab .arr{width:18px;height:18px;color:var(--royal);opacity:0;transform:translateX(-6px);transition:.35s var(--ease)}
.tab:hover{background:#fff;border-color:var(--hair)}
.tab.on{background:#fff;border-color:var(--hair)}
.tab.on::before{transform:scaleY(1)}
.tab.on .arr{opacity:1;transform:none}
.panels{position:relative;min-height:520px}
.panel{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .5s var(--ease),transform .5s var(--ease),visibility .5s;background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);overflow:hidden}
.panel.on{opacity:1;visibility:visible;transform:none;position:relative}
.panel .img{aspect-ratio:16/9;overflow:hidden;position:relative}
/* Die Technikgrafiken sind 21:9, das Panel 16:9 - der Ausschnitt muss tiefer
   liegen, damit das Motiv mittig sitzt. */
.panel .img img{width:100%;height:100%;object-fit:cover;object-position:center 58%}
.panel .img .lbl{position:absolute;left:20px;top:20px;background:rgba(255,255,255,.94);color:var(--midnight);border-radius:var(--r);padding:8px 12px;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.panel .body{padding:clamp(24px,3vw,36px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(20px,2.5vw,32px);align-items:start}
.panel .body p{margin-top:12px}
.checks{display:grid;align-content:start;border-top:1px solid var(--hair)}
.checks li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:10px;align-items:start;font-size:.88rem;line-height:1.45;padding:11px 0;border-bottom:1px solid var(--hair)}
.checks li svg{width:14px;height:14px;color:var(--royal);margin-top:4px}
.panel .tlink{margin-top:20px}
.tabs-hint{display:none}

/* Herausforderungen */
.problems{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
/* Hover: die Kachel hebt sich, an der Oberkante zeichnet sich eine Linie ein
   und der Strich vor der Merkzeile faehrt aus. Der Grundton bleibt gleich -
   ein Farbsprung im Blau wirkt an dieser Stelle unruhig. */
/* Hover: die Kachel hebt sich, an der Oberkante zeichnet sich eine Linie ein
   und der Strich vor der Merkzeile faehrt aus. Der Grundton bleibt gleich -
   ein Farbsprung im Blau wirkt an dieser Stelle unruhig.
   Ruecklauf: die Linie zieht sich nach RECHTS zurueck, also in ihre Laufrichtung
   weiter. Mit transform-origin:left lief sie rueckwaerts dorthin zurueck, wo sie
   hergekommen war - beim Wechsel auf die Nachbarkachel sah das aus, als wuerde
   sich die Bewegung zurueckspulen. Der Ruecklauf ist ausserdem kuerzer als das
   Aufziehen, damit die verlassene Kachel schnell zur Ruhe kommt. */
.problem{position:relative;overflow:hidden;background:rgba(255,255,255,.045);
  border:1px solid var(--hair-dark);border-radius:var(--r-lg);padding:30px;
  display:grid;grid-template-rows:auto auto 1fr auto;gap:16px;
  transition:transform .3s var(--ease),border-color .26s var(--ease),
             box-shadow .3s var(--ease)}
.problem::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:var(--sky);transform:scaleX(0);transform-origin:right;
  transition:transform .38s var(--ease)}
.problem:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.3);
  box-shadow:0 28px 56px -32px rgba(3,14,28,.62);
  transition:transform .46s var(--ease),border-color .36s var(--ease),
             box-shadow .46s var(--ease)}
.problem:hover::before{transform:scaleX(1);transform-origin:left;
  transition:transform .58s var(--ease)}
.problem .ico{width:52px;height:52px;border-radius:var(--r);background:#fff;display:grid;place-items:center;justify-self:start;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease)}
.problem:hover .ico{transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(3,14,28,.75);
  transition:transform .42s var(--ease),box-shadow .42s var(--ease)}
.problem .ico img{width:28px;height:28px}
.problem h3{font-size:1.08rem;font-weight:600;line-height:1.35}
.problem p{font-size:.95rem}
.problem .ins{display:flex;gap:12px;align-items:center;color:var(--sky);font-weight:600;font-size:.9rem;padding-top:14px;border-top:1px solid var(--hair-dark);align-self:end}
.problem .ins::before{content:"";width:16px;height:2px;background:var(--sky);flex:none;
  transition:width .3s var(--ease)}
.problem:hover .ins::before{width:36px;transition:width .48s var(--ease)}
@media (prefers-reduced-motion:reduce){
  .problem,.problem::before,.problem .ico,.problem .ins::before{transition-duration:.01ms}
}
.solution{margin-top:16px;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;padding:clamp(24px,3vw,40px);border-radius:var(--r-lg);background:var(--royal);color:#fff;position:relative;overflow:hidden}
.solution>*{position:relative}
.solution h3{font-size:clamp(1.2rem,1.8vw,1.55rem);font-weight:600;color:#fff}
.solution p{color:rgba(255,255,255,.82);margin-top:8px;max-width:60ch}
.solution .eyebrow{color:#fff}

/* Qualitätssicherung */
.qcert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(16px,2.4vw,30px);align-items:center;margin-top:16px;padding:clamp(18px,2vw,24px) clamp(20px,2.4vw,30px);border:1px solid var(--hair);border-radius:var(--r-lg);background:var(--tint)}
.qcert .seal{height:46px;width:auto;filter:var(--blue-filter);flex:none}
.qcert b{display:block;color:var(--midnight);font-weight:600;font-size:1rem}
.qcert span{font-size:.88rem;color:var(--text)}
.qcert p{font-size:.9rem;max-width:46ch}

/* Qualitätssicherung – Zeitstrahl mit Icons */
.qflow{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,72px);align-items:start}
/* Pruefschritte laufen beim Scrollen nacheinander auf: die Linie fuellt sich
   von 01 bis 05 (--p kommt aus site.js), jeder Schritt schaltet auf .on, sobald
   sein Punkt die Lesehoehe erreicht. Ohne JS greift .js-flow nicht und alles
   steht sofort sichtbar da. */
.qsteps-v{display:grid;position:relative}
/* Schiene und Fuellung laufen exakt von der Mitte des ersten bis zur Mitte des
   letzten Punktes. site.js misst diese beiden Werte und die Fuelllaenge in
   Pixeln (--rail-top, --rail-len, --fill). Vorher war die Fuellung ein Anteil
   der Gesamthoehe - weil die Schritte unterschiedlich hohe Texte haben, endete
   die Linie dadurch irgendwo zwischen den Punkten statt an einem Punkt. */
/* z-index 0: ohne ihn zeichnet das Pseudoelement ueber die Punkte, weil die
   halbtransparenten Schritte einen eigenen Stapelkontext aufmachen. Die Linie
   lief dann quer durch die Kreise. */
.qsteps-v::before{content:"";position:absolute;left:27px;width:2px;background:var(--bluesmoke);
  top:var(--rail-top,40px);height:var(--rail-len,calc(100% - 80px));z-index:0}
.qsteps-v::after{content:"";position:absolute;left:27px;width:2px;background:var(--royal);
  top:var(--rail-top,40px);height:var(--fill,0px);z-index:0;
  transition:height .18s linear}
.qstep{display:grid;grid-template-columns:56px minmax(0,1fr);gap:clamp(16px,2vw,26px);align-items:start;padding:16px 0;position:relative;z-index:1}
.qsteps-v.js-flow .qstep{opacity:.5;transform:translateY(8px);
  transition:opacity .55s var(--ease),transform .55s var(--ease)}
.qsteps-v.js-flow .qstep.on{opacity:1;transform:none}
.qstep .badge{width:56px;height:56px;border-radius:50%;background:#fff;border:2px solid var(--bluesmoke);color:var(--royal);display:grid;place-items:center;position:relative;z-index:2;transition:border-color .4s var(--ease),background .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease)}
.qsteps-v.js-flow .qstep.on .badge{background:var(--royal);border-color:var(--royal);color:#fff;
  box-shadow:0 12px 26px -14px rgba(24,78,139,.8)}
.qstep .badge svg{width:25px;height:25px}
.qsteps-v:not(.js-flow) .qstep:hover .badge{background:var(--royal);border-color:var(--royal);color:#fff}
.qstep .txt{padding-top:5px}
.qstep .n{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--royal);display:block}
.qstep b{display:block;font-weight:600;color:var(--midnight);font-size:1.05rem;letter-spacing:-.015em;margin-top:3px}
.qstep p{font-size:.93rem;line-height:1.55;margin-top:5px;max-width:46ch}
.qaside{position:sticky;top:100px;display:grid;gap:14px}
/* Flacher als die Quelle (3:4), damit die Spalte nicht zu lang wird - dabei oben
   ausrichten, sonst wird der Kopf angeschnitten. */
.qaside .figure{aspect-ratio:1/1}
.qaside .figure img{object-position:center 6%}
.qcert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:18px 20px;border:1px solid var(--hair);border-radius:var(--r-lg);background:var(--tint)}
.qcert .seal{height:44px;width:auto;filter:var(--blue-filter);flex:none}
.qcert b{display:block;color:var(--midnight);font-weight:600;font-size:.98rem}
.qcert span{font-size:.85rem;color:var(--text)}
.qtags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.qtags span{border:1px solid var(--hair);border-radius:var(--r);padding:8px 12px;font-size:.85rem;color:var(--midnight);background:#fff}
.tags-label{font-size:.76rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--text)}

/* Vorteile */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.col{background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);padding:30px;display:grid;gap:16px;align-content:start;transition:box-shadow .35s,transform .35s var(--ease)}
.col{transition:box-shadow .35s,transform .35s var(--ease),border-color .35s}
.col:hover{box-shadow:0 34px 64px -30px rgba(15,45,75,.42);transform:translateY(-6px);border-color:var(--royal)}
.col .ico{transition:background .3s,border-color .3s}
.col:hover .ico{background:var(--royal);border-color:var(--royal);color:#fff}
.col:hover .ico img{filter:brightness(0) invert(1)}
.col .ico{width:52px;height:52px;border-radius:var(--r);background:var(--tint);display:grid;place-items:center}
.col .ico img{width:28px;height:28px}
.col .ico{color:var(--royal);border:1px solid var(--hair)}
.navy .col{background:rgba(255,255,255,.05);border-color:var(--hair-dark)}
.navy .col h3{color:#fff}
.navy .col p{color:rgba(255,255,255,.72)}
.navy .col .ico{background:rgba(255,255,255,.1);border-color:var(--hair-dark);color:var(--sky)}
.navy .col:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.075)}
.navy .col:hover .ico{background:var(--royal);border-color:var(--royal);color:#fff}
.col .ico svg{width:25px;height:25px}
.col:hover .ico{color:#fff}
.col h3{font-size:1.08rem;font-weight:600;line-height:1.35}
.col p{font-size:.95rem}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.tile{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/10;background:var(--midnight)}
.tile img{width:100%;height:100%;object-fit:cover;object-position:center 22%;transition:transform 1.3s var(--ease)}
.tile:hover img{transform:scale(1.06)}
.tile{transition:box-shadow .35s}
.tile:hover{box-shadow:0 34px 64px -30px rgba(15,45,75,.5)}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(15,45,75,.82))}
.tile figcaption{position:absolute;left:24px;right:24px;bottom:22px;z-index:2;color:#fff}
.tile figcaption b{display:block;font-weight:600;font-size:1.05rem}
.tile figcaption span{font-size:.88rem;color:rgba(255,255,255,.78)}

/* Film */
.film-frame{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/9;cursor:pointer;background:#000}
.film-frame img{width:100%;height:100%;object-fit:cover;object-position:center 26%;opacity:.78;transition:transform 1.4s var(--ease),opacity .5s}
.film-frame:hover img{transform:scale(1.03);opacity:.62}
.film-frame .play{position:absolute;inset:0;display:grid;place-items:center}
.film-frame .play span{width:84px;height:84px;border-radius:50%;background:#fff;color:var(--midnight);display:grid;place-items:center;box-shadow:0 20px 50px -10px rgba(0,0,0,.5);transition:transform .4s var(--ease)}
.film-frame:hover .play span{transform:scale(1.06)}
.film-frame .play svg{width:26px;height:26px;margin-left:4px}
.film-frame .meta{position:absolute;left:24px;bottom:22px;color:#fff;display:flex;align-items:center;gap:14px}
.film-frame .meta .dur{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:var(--r);padding:6px 10px;font-size:.8rem;font-weight:600}
.film-frame .meta b{font-weight:600}
.modal{position:fixed;inset:0;z-index:200;background:rgba(15,45,75,.92);backdrop-filter:blur(8px);display:grid;place-items:center;padding:var(--pad);opacity:0;visibility:hidden;transition:.3s}
.modal.open{opacity:1;visibility:visible}
.modal-box{width:min(1100px,100%);aspect-ratio:16/9;background:#000;border-radius:var(--r-lg);overflow:hidden;position:relative}
.modal-box iframe{width:100%;height:100%;border:0}
.modal-x{position:absolute;top:-50px;right:0;color:#fff;display:flex;gap:8px;align-items:center;font-size:.9rem;font-weight:600}
.modal-x svg{width:18px;height:18px}

/* Team */
.mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.mosaic figure{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--smoke)}
.mosaic figure img{width:100%;height:100%;object-fit:cover;object-position:center 28%;transition:transform 1.3s var(--ease)}
.mosaic figure:hover img{transform:scale(1.03)}
.mosaic figcaption{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.94);color:var(--midnight);border-radius:var(--r);padding:7px 11px;font-size:.78rem;font-weight:600;z-index:2}
.m-main{grid-column:span 2;aspect-ratio:16/10}
.mosaic>figure:not(.m-main){aspect-ratio:4/3}
.m-quote{background:var(--midnight);color:#fff;border-radius:var(--r-lg);padding:clamp(24px,2.4vw,32px);display:flex;flex-direction:column;justify-content:space-between;gap:clamp(18px,2vw,26px);position:relative;overflow:hidden}
.m-quote>*{position:relative}
.m-quote p{font-size:clamp(1.02rem,1.3vw,1.28rem);line-height:1.38;font-weight:600;letter-spacing:-.016em;color:#fff}
.m-quote .hl{color:var(--gradient)}
.m-quote footer{display:flex;align-items:center;gap:14px;padding-top:18px;border-top:1px solid var(--hair-dark);min-width:0}
.m-quote footer>div{min-width:0}
.m-quote .face{width:76px;height:92px;object-fit:cover;object-position:center 15%;border-radius:var(--r);flex:none}
.m-quote footer b{display:block;font-weight:600;color:#fff;font-size:.95rem}
.m-quote footer span{font-size:.8rem;color:rgba(255,255,255,.6)}
.m-quote .sig{height:24px;width:auto;margin-left:auto;filter:brightness(0) invert(1);opacity:.55;flex:none;max-width:38%;object-fit:contain;object-position:right}
.team-foot{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:clamp(28px,3.4vw,44px);flex-wrap:wrap}
.team-foot p{max-width:58ch}

/* Branchen */
.branchen{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:#fff;padding:26px 0;overflow:hidden}
.branchen .wrap{display:flex;align-items:center;gap:32px}
.branchen .lbl{flex:none;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text);padding-right:32px;border-right:1px solid var(--hair)}
.branchen .track-wrap{overflow:hidden;flex:1;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.branchen .track{display:flex;width:max-content;animation:marq 62s linear infinite}
.branchen:hover .track{animation-play-state:paused}
.branchen .item{display:flex;align-items:center;gap:22px;padding-right:22px;font-size:clamp(1.05rem,1.4vw,1.3rem);font-weight:600;color:var(--midnight);white-space:nowrap}
.branchen .item i{width:6px;height:6px;background:var(--royal)}

/* Zusammenarbeit */
.process{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(20px,3vw,40px);align-items:start}
.navy .step{background:rgba(255,255,255,.05);border-color:var(--hair-dark)}
.navy .step b{color:#fff}
.navy .step p{color:rgba(255,255,255,.72)}
.navy .step:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.32)}
.steps{display:grid;gap:10px;align-content:start}
.step{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;align-items:center;padding:15px 18px;background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);transition:border-color .3s}
.step:hover{border-color:var(--royal);transform:translateX(5px);box-shadow:0 20px 40px -28px rgba(15,45,75,.4)}
.step{transition:border-color .3s,transform .3s var(--ease),box-shadow .3s}
.step .n{width:42px;height:42px;border-radius:7px;background:var(--tint);color:var(--royal);
  display:grid;place-items:center;flex:none;transition:background .3s,color .3s}
.step .n svg{width:20px;height:20px}
.step:hover .n{background:var(--royal);color:#fff}
.step .sn{display:block;font-size:.64rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--royal);margin-bottom:3px}
.step b{font-size:.96rem;letter-spacing:-.01em}
.step p{font-size:.88rem;line-height:1.5;margin-top:3px}
.navy .step .n{background:rgba(255,255,255,.1);color:#fff}
.navy .step:hover .n{background:#fff;color:var(--midnight)}
.navy .step .sn{color:var(--sky)}
.step b{display:block;font-weight:600;color:var(--midnight);font-size:1rem}
.step p{font-size:.93rem;margin-top:4px}
.contact{background:#fff;color:var(--text);border:1px solid var(--hair);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
/* Kante an Kante: die linke Spalte bleibt oben, nur die Kontaktkarte wird nach
   unten gesetzt. Damit endet sie auf derselben Linie wie der letzte Schritt.
   `align-items:end` auf der ganzen Zeile wuerde stattdessen eine Luecke unter der
   Headline erzeugen. */
.berat .process{align-items:start}
.berat .contact{align-self:end}
.contact p,.contact blockquote,.contact span,.contact small{color:var(--text)}
.contact .person b,.contact .lines b,.contact blockquote strong{color:var(--midnight)}
.contact .top{padding:24px;display:grid;gap:15px;align-content:start}
.contact .person{display:flex;gap:14px;align-items:center}
.contact .person img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.contact .person b{display:block;font-weight:600;color:var(--midnight)}
.contact .person span{font-size:.85rem}
.contact blockquote{font-size:.9rem;line-height:1.55}
.contact blockquote strong{color:var(--midnight);font-weight:600}
.contact .btn{justify-content:center}
.contact .note{font-size:.8rem;color:var(--text)}
.contact .lines{border-top:1px solid var(--hair);display:grid;grid-template-columns:1fr}
.contact .lines a{padding:14px 24px;display:grid;gap:3px;transition:background .3s}
.contact .lines a:hover{background:var(--smoke)}
.contact .lines a+a{border-top:1px solid var(--hair)}
.contact .lines small{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.contact .lines b{font-weight:600;color:var(--midnight);font-size:.92rem}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,80px);align-items:start}
.faq-side{position:sticky;top:110px;display:grid;gap:16px;justify-items:start}
.acc{border-top:1px solid var(--hair)}
.acc-item{border-bottom:1px solid var(--hair)}
.acc-btn{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:20px;align-items:center;padding:22px 0;text-align:left}
.acc-btn b{font-weight:600;color:var(--midnight);font-size:1rem}
.acc-btn .pm{width:36px;height:36px;border-radius:var(--r);border:1px solid var(--hair);display:grid;place-items:center;transition:.3s}
.acc-btn .pm svg{width:14px;height:14px;transition:transform .3s}
.acc-item.open .acc-btn .pm{background:var(--midnight);border-color:var(--midnight);color:#fff}
.acc-item.open .acc-btn .pm svg{transform:rotate(45deg)}
.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.acc-item.open .acc-body{grid-template-rows:1fr}
.acc-body>div{overflow:hidden}
.acc-body p{padding-bottom:24px;max-width:62ch}

/* Karriere */
.career{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:center}
.career .img{aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;position:relative}
.career .img img{width:100%;height:100%;object-fit:cover}
.career .img .lbl{position:absolute;left:20px;bottom:20px;background:rgba(255,255,255,.94);color:var(--midnight);border-radius:var(--r);padding:8px 12px;font-size:.8rem;font-weight:600}
.career .txt{display:grid;gap:18px;justify-items:start}

/* CTA + Footer */
/* Nur der Seitenfuss, nicht jedes <footer> im Dokument: die Zitatkachel auf der
   Startseite enthaelt selbst ein <footer> und hat sonst diese Grafik geerbt. */
body>footer{background:var(--midnight) url(../img/bg-deep-1600.webp) center/cover fixed no-repeat;color:rgba(255,255,255,.7);position:relative;overflow:hidden}
@media (min-width:1100px){body>footer{background-image:url(../img/bg-deep-3000.webp)}}
body>footer .raster-navy{opacity:.5}
.foot-top{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,4vw,64px);align-items:start;padding-block:clamp(48px,6vw,88px) clamp(32px,4vw,52px)}
.foot-top>div{padding-top:22px;border-top:1px solid var(--hair-dark)}
.foot-top h2{font-size:clamp(1.3rem,1.95vw,1.72rem);letter-spacing:-.025em;line-height:1.18;color:#fff;margin-top:12px;max-width:22ch}
.foot-cta{display:grid}
.foot-cta a{display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:16px;align-items:center;padding:13px 0;border-bottom:1px solid var(--hair-dark);transition:padding-left .3s var(--ease),color .3s}
.foot-cta a:last-child{border-bottom:0}
.foot-cta a:hover{padding-left:10px;color:#fff}
.foot-cta small{display:block;font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:3px}
.foot-cta b{font-weight:600;color:#fff;font-size:.98rem;letter-spacing:-.008em}
.foot-cta svg{width:18px;height:18px;color:var(--sky);transition:transform .3s var(--ease)}
.foot-cta a:hover svg{transform:translateX(4px)}
.foot-grid{position:relative;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;padding:clamp(40px,5vw,56px) 0 40px;border-top:1px solid var(--hair-dark)}
.foot-grid h5{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:16px}
.foot-grid a{display:block;padding:4px 0;font-size:.89rem;transition:color .3s,padding-left .3s var(--ease)}
.foot-grid a:hover{color:#fff;padding-left:5px}
.foot-brand img.logo{height:30px;width:auto;margin-bottom:20px}
.foot-brand p{font-size:.88rem;max-width:36ch}
.foot-badges{display:flex;gap:18px;align-items:center;margin-top:22px}
.foot-badges img{height:42px;width:auto}.foot-badges img.cogd{height:20px;width:auto;filter:brightness(0) invert(1);opacity:.8}
.foot-bottom{position:relative;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px 0 30px;border-top:1px solid var(--hair-dark);font-size:.8rem;color:rgba(255,255,255,.5)}
.foot-bottom a{color:rgba(255,255,255,.8)}.foot-bottom a:hover{color:#fff}

/* Reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}.rv{opacity:1;transform:none}.statement .big .w{opacity:1}}

/* Responsive */
@media (max-width:1200px){
}
@media (max-width:1100px){
  .nav{display:none}
  .tabs{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
  .process{grid-template-columns:1fr}
  .contact{position:static}
}
@media (max-width:900px){
  .burger{display:grid}
  .hero{min-height:0;display:block}
  .hero-visual{position:relative;inset:auto;height:clamp(220px,52vw,340px)}
  .hero-grid{padding-block:clamp(28px,5vw,44px) clamp(36px,5vw,56px)}
  .hero-card{max-width:none;padding:clamp(24px,5vw,34px);box-shadow:none;border:1px solid var(--hair);background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
    .slide-ui{right:auto;left:var(--pad);bottom:16px;align-items:flex-start;text-align:left;max-width:none}
  .qflow{grid-template-columns:1fr}
  .qaside{position:static}
  .qstep{grid-template-columns:46px minmax(0,1fr);gap:16px}
  .qstep .badge{width:46px;height:46px}.qstep .badge svg{width:21px;height:21px}
  .qsteps-v::before,.qsteps-v::after{left:22px}
  .foot-top{grid-template-columns:1fr;gap:26px;align-items:start}
  .foot-top h2{max-width:none}
  .hdr .btn,.hdr .lang{display:none}
  .hero-grid,.statement-grid,.faq-grid,.career,.cta-grid{grid-template-columns:1fr}
  .qcert{grid-template-columns:1fr;gap:14px}
  .trust{gap:18px}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn{justify-content:center}
  .mosaic{grid-template-columns:1fr 1fr}
  .m-main{grid-column:span 2}
  .m-quote{grid-column:span 2}
  /* Die Leistungsleisten unter dem Hero entfallen auf dem Handy - die Punkte
     stehen kurz darunter ohnehin. Auf dem Desktop bleiben sie unveraendert. */
  .hero-services,.svc-strip{display:none}
  .head{grid-template-columns:1fr;gap:14px}
  .head h2{max-width:none}
  .hero-visual{max-width:560px}
    .slider{aspect-ratio:4/4.2}
  .statement .big{max-width:none}
  .kpis{grid-template-columns:1fr 1fr}
  .kpi:nth-child(odd){padding-left:0;border-left:0}
  .kpi:nth-child(-n+2){border-bottom:1px solid var(--bluesmoke)}
  .tabs{grid-template-columns:1fr}
  .tab-list{position:static;display:flex;overflow-x:auto;gap:8px;padding-bottom:8px;scrollbar-width:none}
  .tab-list::-webkit-scrollbar{display:none}
  .tab{grid-template-columns:36px minmax(0,1fr);min-width:284px;padding:14px 16px}
  .tab b{font-size:.95rem}
  .tab span,.tab .arr{display:none}
  .tab .ico{width:36px;height:36px}.tab .ico img{width:20px;height:20px}
  .tab::before{display:none}
  .tab.on{border-color:var(--royal)}
  .tabs-hint{display:block;font-size:.82rem;margin-bottom:12px}
  .panels{min-height:0}
  .panel .body{grid-template-columns:1fr}
  .checks{grid-auto-rows:auto}
  .problems{grid-template-columns:1fr}
  .solution{grid-template-columns:1fr}
  .cols3,.tiles{grid-template-columns:1fr}
  .faq-side{position:static}
  .branchen .lbl{display:none}
  .foot-grid{grid-template-columns:1fr}
  .dp{left:14px;right:14px;bottom:14px;align-items:stretch}
  .dp-card{width:auto}
  .dp-tab{justify-content:center}
}
@media (max-width:560px){
  .h1{font-size:2.2rem}
  .kpis{grid-template-columns:1fr}
  .kpi+.kpi{padding-left:0;border-left:0;border-top:1px solid var(--bluesmoke)}
  .kpi:nth-child(-n+2){border-bottom:0}
  .contact .lines{grid-template-columns:1fr}
  .contact .lines a+a{border-left:0;border-top:1px solid var(--hair)}
  .mosaic{grid-template-columns:1fr}
  .m-main,.m-quote{grid-column:auto}
  .slide-ui{flex-direction:column;align-items:flex-start}
  .trust{gap:16px}
}

/* =====================================================================
   Unterseiten
   ===================================================================== */
.phero{position:relative;overflow:hidden;background:var(--smoke);padding-top:calc(76px + clamp(36px,4.5vw,66px));padding-bottom:clamp(34px,4vw,58px)}
.phero .raster-blue{right:-110px;top:-110px;width:min(960px,76vw);height:min(940px,76vw);opacity:.75}
/* Nur EIN Raster pro Flaeche: hier traegt .raster-blue das Wafer-Muster. */
.phero .wrap{position:relative;z-index:2}
.phero h1{font-size:clamp(1.8rem,3.1vw,2.6rem);letter-spacing:-.03em;line-height:1.08;max-width:20ch;margin-top:14px}
.phero .lead{margin-top:20px;max-width:56ch}
.phero .pactions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.phero.navy{background:var(--midnight)}
.phero.navy h1{color:#fff}.phero.navy .lead{color:rgba(255,255,255,.75)}
.phero.navy .eyebrow{color:var(--sky)}
.phero.navy .raster-blue{background-image:url(../img/wafer3.svg);opacity:.5}

/* ---- Leistungsseiten: Seitenkopf mit Technikgrafik ---- */
.phero.svc{background:var(--midnight);min-height:clamp(480px,47vw,620px);display:flex;align-items:center;
  padding-top:calc(76px + clamp(44px,5vw,78px));padding-bottom:clamp(44px,5vw,78px)}
.svc-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.svc-bg img{width:100%;height:100%;object-fit:cover;object-position:center 46%;display:block;
  transform:scale(1.04);transition:transform 12s linear}
.phero.svc:hover .svc-bg img{transform:scale(1.09)}
/* Verlauf: links dunkel fuer die Typo, rechts bleibt die Grafik sichtbar */
.svc-bg::after{content:"";position:absolute;inset:0;
  /* Reihenfolge wichtig: der Ausblender nach unten liegt OBEN und deckt die
     seitliche Abdunklung ab, sonst bleibt die linke Kante dunkel und es entsteht ein Absatz. */
  background:linear-gradient(0deg,#11375a 0%,rgba(17,55,90,.94) 6%,rgba(17,55,90,.5) 20%,transparent 42%),
             linear-gradient(97deg,rgba(8,26,46,.97) 0%,rgba(8,26,46,.93) 30%,rgba(8,26,46,.7) 56%,rgba(8,26,46,.42) 78%,rgba(8,26,46,.5) 100%)}
/* Kein Wafer-Raster im Leistungskopf: die Technikgrafik traegt hier die Struktur. */
.phero.svc .raster-blue{display:none}
.phero.svc .wrap{z-index:2;width:100%}
.phero.svc .crumb,.phero.svc .crumb a{color:rgba(255,255,255,.6)}
.phero.svc .crumb a:hover{color:#fff}
.phero.svc .crumb i{background:rgba(255,255,255,.35)}
.phero.svc .eyebrow{color:var(--sky)}
.phero.svc .eyebrow::before{background:var(--sky)}
/* Alle fuenf Leistungskoepfe muessen gleich hoch sein, sonst springt die Seite
   beim Wechsel ueber das Menue. Ueberschrift und Fliesstext bekommen darum die
   Hoehe ihrer laengsten Fassung (2 bzw. 4 Zeilen) fest zugewiesen - kuerzere
   Texte lassen den Rest einfach leer. */
/* Feste Hoehe liegt auf dem Textblock, nicht auf den einzelnen Zeilen: der
   Text steht unten an, die Luecke zwischen Headline und Fliesstext bleibt
   immer gleich klein - egal ob die Headline eine oder zwei Zeilen hat. */
.phero.svc .wrap{display:flex;flex-direction:column;justify-content:flex-end;
  min-height:clamp(300px,25vw,380px)}
.phero.svc h1{color:#fff;max-width:17ch;font-size:clamp(1.95rem,3.4vw,2.85rem)}
.phero.svc .lead{color:rgba(255,255,255,.82);max-width:52ch;margin-top:clamp(14px,1.6vw,22px)}
.phero.svc .btn-line{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.34);color:#fff;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.phero.svc .btn-line:hover{background:rgba(255,255,255,.14);border-color:#fff}

/* ---- Seitenkopf mit Bild daneben (Kontakt) ---- */
.phero-split .wrap{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(28px,4.4vw,72px);align-items:center}
.ps-media{border-radius:12px;overflow:hidden;aspect-ratio:4/3;
  box-shadow:0 34px 76px -44px rgba(15,45,75,.5)}
.ps-media img{width:100%;height:100%;object-fit:cover;object-position:center 32%;display:block}

/* ---- Leistungsuebersicht: fuenf ganzflaechige Baender ----
   Ruhezustand: Nummer und Titel auf der Grafik. Beim Ansteuern faehrt das Band auf.
   Ohne Zeiger (Touch, Tastatur) ist unten alles dauerhaft offen. */

.bands{background:var(--midnight)}
/* Geoeffnet wird ueber .band.on, nicht ueber :hover. Der Grund ist der Wechsel
   von einem Band zum naechsten: schliesst das obere Band schon, waehrend das
   untere noch wartet, rutscht alles darunter nach oben und der Zeiger landet
   auf dem uebernaechsten Band. site.js setzt .on deshalb erst nach einer kurzen
   Absichtspause - und setzt es im selben Frame beim alten Band ab und beim
   neuen auf. Beide Bewegungen laufen dadurch gleichzeitig und gleich lang:
   was oben wegfaellt, kommt unten dazu, der Zeiger bleibt, wo er ist. */
.band{position:relative;display:block;overflow:hidden;isolation:isolate;
  border-top:1px solid rgba(255,255,255,.2);
  transition:background .52s var(--ease)}
.band:first-child{border-top:0}
.bd-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  object-position:center 42%;opacity:.7;transform:scale(1.03);
  will-change:transform,opacity;backface-visibility:hidden;
  transition:opacity .35s var(--ease),transform .5s var(--ease)}
.band::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,rgba(8,26,46,.96) 0%,rgba(8,26,46,.9) 34%,rgba(8,26,46,.58) 62%,rgba(8,26,46,.42) 100%)}
.band.on .bd-bg{opacity:.92;transform:none;
  transition:opacity .6s var(--ease),transform 1.2s var(--ease)}
/* Ein gemeinsames Raster fuer Kopfzeile und aufgeklappten Text: dadurch beginnt
   der Text exakt unter dem Titel und nicht irgendwo darunter. */
.bd-inner{display:grid;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad);
  padding-block:clamp(26px,3vw,40px);
  grid-template-columns:auto auto minmax(0,1fr) auto;
  column-gap:clamp(14px,2vw,26px);align-items:center}
.bd-no{grid-column:1;font-size:.74rem;font-weight:700;letter-spacing:.1em;
  color:rgba(255,255,255,.42)}
.bd-ic{grid-column:2;display:grid;place-items:center;width:40px;height:40px;border-radius:9px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#fff;
  transition:background .3s var(--ease),border-color .3s,color .3s}
.band.on .bd-ic{background:var(--royal);border-color:var(--royal);
  transition:background .46s var(--ease),border-color .46s,color .46s}
.bd-ic svg{width:20px;height:20px}
.bd-title{grid-column:3;color:#fff;font-weight:600;
  font-size:clamp(1.14rem,1.8vw,1.56rem);letter-spacing:-.024em}
.bd-arr{grid-column:4;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,255,255,.32);color:#fff;
  transition:background .3s var(--ease),border-color .3s,transform .3s var(--ease),color .3s}
.bd-arr svg{width:17px;height:17px}
.band.on .bd-arr{background:var(--royal);border-color:var(--royal);transform:translateX(4px);
  transition:background .46s var(--ease),border-color .46s,
             transform .48s var(--ease),color .46s}

/* Aufklappen ueber grid-template-rows 0fr -> 1fr.
   Mit max-height lief die Kurve gegen einen festen Wert, der ueber der echten
   Texthoehe lag: das Band stand nach gut der Haelfte der Zeit still und der
   Rest der Animation lief ins Leere - genau das Haken. 0fr->1fr zielt auf die
   tatsaechliche Hoehe, die Bewegung ist ueber die volle Dauer gleichmaessig.
   Wichtig: das geclippte Kind braucht min-height:0 und darf kein eigenes
   padding-top haben - Innenabstand wird von overflow nicht mitgeschnitten und
   bliebe im geschlossenen Zustand als Luecke stehen. */
/* Auf- und Zuklappen dauern exakt gleich lang und starten ohne Verzug. Nur so
   heben sich die beiden Hoehenaenderungen beim Wechsel gegenseitig auf. */
.bd-more{grid-column:3/-1;grid-row:2;display:grid;grid-template-rows:0fr;opacity:0;
  transition:grid-template-rows .8s var(--ease),opacity .4s ease}
.band.on .bd-more{grid-template-rows:1fr;opacity:1;
  transition:grid-template-rows .8s var(--ease),opacity .55s ease .1s}
.bd-body{display:block;min-height:0;overflow:hidden}
.bd-sub{display:block;margin-top:18px;color:var(--sky);font-size:.9rem;letter-spacing:-.006em}
.bd-lead{display:block;color:rgba(255,255,255,.82);font-size:.95rem;line-height:1.62;
  margin-top:10px;max-width:62ch}
.bd-tags{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:18px}
.bd-tags li{display:flex;align-items:center;gap:9px;font-size:.84rem;
  color:rgba(255,255,255,.8)}
.bd-tags svg{width:15px;height:15px;color:var(--sky);flex:none}

/* Kennzeile unter dem Kopf: greift die Grafik-Kante auf */
.svc-strip{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  color:#fff;position:relative;z-index:2}
/* Feine Linie unter dem Band, auf Rasterbreite */
.svc-strip::after{content:"";position:absolute;left:var(--edge);right:var(--edge);bottom:0;height:1px;
  background:rgba(255,255,255,.16);pointer-events:none}
@media (min-width:1100px){.svc-strip{background-image:url(../img/bg-field-3000.webp)}}
.svc-strip .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(14px,2vw,30px);
  padding-block:clamp(14px,1.6vw,20px)}
.svc-strip nav{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(16px,2.4vw,34px);flex:1}
.svc-strip .lbl{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.svc-strip a{display:inline-flex;align-items:center;gap:9px;font-size:.88rem;color:rgba(255,255,255,.78);transition:color .25s}
.svc-strip a:hover{color:#fff}
.sic{display:grid;place-items:center;flex:none;color:currentColor;opacity:.8;transition:opacity .25s}
.sic svg{width:19px;height:19px}
.svc-strip a.on{color:#fff;font-weight:600}
.svc-strip a.on .sic{opacity:1}
.svc-strip a:hover .sic{opacity:1}

/* ---- Ihre Vorteile: Kachel-Slider, funktioniert mit jeder Anzahl ---- */
.vhead{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.vnav{display:flex;gap:8px;flex:none;transition:opacity .3s}
.vnav[hidden]{display:none}
.vbtn{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;cursor:pointer;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#fff;
  transition:background .25s,border-color .25s,opacity .25s}
.vbtn svg{width:19px;height:19px}
.vbtn:hover{background:var(--royal);border-color:var(--royal)}
.vbtn[disabled]{opacity:.3;cursor:default}
.vbtn[disabled]:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}

/* Der Slider liegt im Raster und laeuft nicht ueber die Kante hinaus.
   Die Spaltenbreite ist so gerechnet, dass immer genau drei Kacheln hineinpassen. */
.vslider{--vgap:14px;--vper:4;margin-top:clamp(26px,3vw,38px);
  overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none}
.vslider::-webkit-scrollbar{display:none}
.vtrack{display:grid;grid-auto-flow:column;gap:var(--vgap);align-items:stretch;
  grid-auto-columns:calc((100% - (var(--vper) - 1) * var(--vgap)) / var(--vper))}
.vcard{scroll-snap-align:start;display:grid;gap:12px;align-content:start;
  position:relative;padding:clamp(20px,1.9vw,24px);border-radius:10px;
  background:rgba(255,255,255,.085);border:1px solid rgba(255,255,255,.22);
  transition:background .3s,border-color .3s}
/* Kein Anheben beim Hover: der Slider klippt vertikal (overflow-x:auto setzt
   overflow-y implizit), dadurch wurde die Kachel oben abgeschnitten. */
.vcard:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.6);
  transform:translateY(-3px);box-shadow:0 20px 40px -24px rgba(0,0,0,.65)}
.vcard .vt-ic{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);transition:background .3s,border-color .3s}
.vcard:hover .vt-ic{background:var(--royal);border-color:var(--royal)}
.vcard .vt-ic img{width:23px;height:23px;filter:brightness(0) invert(1)}
.vcard .vno{position:absolute;top:clamp(20px,1.9vw,24px);right:clamp(20px,1.9vw,24px);
  font-size:.72rem;font-weight:600;letter-spacing:.1em;color:rgba(255,255,255,.34)}
@media (max-width:1180px){.vslider{--vper:3}}
.vcard h3{color:#fff;font-size:1rem;font-weight:600;letter-spacing:-.014em;line-height:1.35;margin-top:4px}
.vcard p{color:rgba(255,255,255,.78);font-size:.9rem;line-height:1.55}

/* ---- Erfahrung: Raster ohne Kaesten, nur Haarlinien ---- */
.xp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:clamp(26px,3vw,40px);border-top:1px solid rgba(255,255,255,.2)}
.xp{position:relative;padding:clamp(24px,2.6vw,34px) clamp(18px,2vw,30px) clamp(26px,3vw,38px) 0;
  border-bottom:1px solid rgba(255,255,255,.2);border-right:1px solid rgba(255,255,255,.2)}
/* Die Hover-Flaeche liegt eingerueckt in der Zelle, damit sie die Haarlinien nicht beruehrt. */
.xp::before{content:"";position:absolute;inset:8px 10px 10px -6px;border-radius:8px;z-index:0;
  background:rgba(255,255,255,.05);opacity:0;transition:opacity .28s var(--ease);pointer-events:none}
.xp:nth-child(3n+1)::before{inset:8px 10px 10px -6px}
.xp:nth-child(3n+2)::before,.xp:nth-child(3n)::before{inset:8px 10px 10px 8px}
.xp:hover::before{opacity:1}
.xp-ic,.xp h3,.xp p{position:relative;z-index:1}
.xp:nth-child(3n){border-right:0;padding-right:0}
.xp:nth-child(3n+1){padding-left:0}
.xp:nth-child(3n+2),.xp:nth-child(3n){padding-left:clamp(18px,2vw,30px)}
.xp-ic{width:46px;height:46px;border-radius:8px;display:grid;place-items:center;
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.24);color:var(--sky);
  transition:background .3s,border-color .3s,color .3s}
.xp:hover .xp-ic{background:var(--royal);border-color:var(--royal);color:#fff}
.xp-ic svg{width:23px;height:23px}
.xp h3{color:#fff;font-size:1rem;font-weight:600;letter-spacing:-.012em;line-height:1.35;margin-top:18px}
.xp p{color:rgba(255,255,255,.78);font-size:.93rem;line-height:1.6;margin-top:9px}

/* ---- Leistungsseiten: Dossier mit stehender Bildspalte ---- */
.dossier{padding-block:clamp(48px,5.5vw,86px)}
.dos{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(30px,5vw,84px);align-items:start}
.dos-media{position:sticky;top:calc(78px + clamp(20px,2.6vw,40px))}
.dos-stack{position:relative;aspect-ratio:4/5;border-radius:12px;overflow:hidden;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);
  box-shadow:0 36px 80px -46px rgba(4,18,34,.8)}
.dos-img{position:absolute;inset:0;opacity:0;transition:opacity .75s var(--ease)}
.dos-img.on{opacity:1}
.dos-img img{width:100%;height:100%;object-fit:cover;display:block}
.dos-meta{display:flex;align-items:center;gap:14px;margin-top:16px;min-width:0}
.dos-no{font-size:.76rem;font-weight:600;letter-spacing:.08em;color:rgba(255,255,255,.5);flex:none}
.dos-no b{color:#fff;font-weight:700}
.dos-no i{font-style:normal;margin-left:3px}
.dos-cap{flex:1;min-width:0;font-size:.82rem;color:rgba(255,255,255,.66);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dos-dots{display:flex;gap:6px;flex:none}
.dos-dots button{width:22px;height:3px;border-radius:2px;background:rgba(255,255,255,.26);
  cursor:pointer;transition:background .3s,width .3s var(--ease)}
.dos-dots button:hover{background:rgba(255,255,255,.5)}
.dos-dots button[aria-current="true"]{background:var(--sky);width:34px}

.dos-chapters{display:grid}
.dos-ch{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,2.2vw,32px);
  padding-block:clamp(44px,6vw,96px);position:relative}
.dos-ch:first-child{padding-top:0}
.dos-ch:last-child{padding-bottom:0}
.dos-ch + .dos-ch::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:rgba(255,255,255,.16)}
.dos-idx{font-size:.74rem;font-weight:700;letter-spacing:.1em;color:rgba(255,255,255,.34);
  padding-top:5px}
.dos-body{max-width:58ch}
.dos-body .h2{color:#fff;font-size:clamp(1.28rem,1.95vw,1.72rem);letter-spacing:-.024em;
  line-height:1.2;margin-top:12px}
.dos-body p{color:rgba(255,255,255,.82);font-size:.98rem;line-height:1.66;margin-top:16px}
.dos-body p + p{margin-top:12px}

/* Kennzahlen in der linken Spalte von »Wer wir sind« - die Spalte war leer */
.st-side{display:grid;align-content:start;gap:clamp(26px,3.4vw,44px)}
.st-kpi{display:grid;gap:clamp(18px,2.2vw,28px)}
.st-kpi li{padding-top:16px;border-top:1px solid var(--hair)}
.st-kpi b{display:flex;align-items:baseline;color:var(--midnight);font-weight:700;
  font-size:clamp(2rem,3.4vw,2.9rem);letter-spacing:-.04em;line-height:1}
.st-kpi i{font-style:normal;font-size:.5em;margin-left:1px}
/* Nur das direkte <span> ist die Beschriftung - der Zaehler steckt in <b>
   und muss dessen Groesse behalten. */
.st-kpi li > span{display:block;color:var(--text);font-size:.9rem;line-height:1.45;margin-top:8px;
  max-width:24ch}
.st-kpi b span{font:inherit;color:inherit;letter-spacing:inherit}

/* Die fuenf Pruefschritte als waagerechte Strecke mit verbindender Haarlinie */
.qp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(14px,1.8vw,26px);
  margin-top:clamp(28px,3.4vw,46px);position:relative}
.qp-grid::before{content:"";position:absolute;left:0;right:0;top:19px;height:1px;
  background:rgba(255,255,255,.2)}
.qp{position:relative;padding-top:0}
.qp-no{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;
  border-radius:50%;background:var(--midnight);border:1px solid rgba(255,255,255,.3);
  color:#fff;font-size:.76rem;font-weight:700;letter-spacing:.04em;transition:background .3s,border-color .3s}
.qp:hover .qp-no{background:#fff;border-color:#fff;color:var(--midnight)}
.qp-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;margin-top:20px;
  background:rgba(255,255,255,.1);color:var(--sky);transition:background .3s,color .3s}
.qp:hover .qp-ic{background:var(--royal);color:#fff}
.qp-ic svg{width:18px;height:18px}
.qp b{display:block;color:#fff;font-weight:600;font-size:1rem;letter-spacing:-.014em;margin-top:14px}
.qp p{color:rgba(255,255,255,.76);font-size:.9rem;line-height:1.55;margin-top:7px}

/* Weitere Pruefmassnahmen */
.qx-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
  margin-top:clamp(24px,3vw,38px)}
/* Kompakte Zeilen: die Labels sind kurz, hochkant stehende Kacheln
   erzeugten viel Flaeche fuer wenig Text. */
.qx{display:grid;grid-template-columns:34px minmax(0,1fr);gap:13px;align-items:center;
  padding:13px 16px;border-radius:9px;
  background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.18);
  transition:background .3s,border-color .3s}
.qx:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.34)}
.qx-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;
  background:rgba(255,255,255,.12);color:var(--sky);transition:background .3s,color .3s}
.qx:hover .qx-ic{background:var(--royal);color:#fff}
.qx-ic svg{width:17px;height:17px}
.qx b{color:#fff;font-weight:500;font-size:.9rem;line-height:1.4;letter-spacing:-.008em}

/* Laufband auf der Qualitaetsseite - fein, nicht so wuchtig wie auf der Startseite.
   Es braucht einen eigenen dunklen Grund: als Glasband ueber dem weissen Body
   stand helle Schrift auf Weiss und war nicht zu lesen. */
.qmarquee{position:relative;overflow:hidden;padding-block:clamp(8px,.85vw,11px);
  background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
@media (min-width:1100px){.qmarquee{background-image:url(../img/bg-field-3000.webp)}}
.qm-track{display:flex;align-items:center;width:max-content;animation:marq 166s linear infinite}
.qmarquee:hover .qm-track{animation-play-state:paused}
.qm-track span{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.86);white-space:nowrap}
.qm-track i{font-style:normal;color:var(--sky);padding-inline:clamp(16px,2vw,28px)}

/* ---- ISO: Zitat und Prueflisten ----
   Dreispaltig: Portraet, die Aussage gross, der Wortlaut daneben. Vorher stand
   der Text in einer schmalen Spalte und die halbe Flaeche blieb leer. */
.iso-quote{display:grid;
  grid-template-columns:clamp(168px,15.5vw,224px) minmax(0,.88fr) minmax(0,1.2fr);
  gap:clamp(24px,3.2vw,50px);align-items:start}
.iso-port{border-radius:12px;overflow:hidden;aspect-ratio:4/5;
  border:1px solid rgba(255,255,255,.2)}
.iso-port img{width:100%;height:100%;object-fit:cover;object-position:center 10%;display:block}
.iso-claim blockquote{color:#fff;font-weight:300;letter-spacing:-.026em;
  font-size:clamp(1.3rem,2.15vw,1.86rem);line-height:1.24;text-wrap:balance}
.iso-said{padding-top:5px;display:grid;gap:clamp(12px,1.3vw,17px)}
.iso-said p{color:rgba(255,255,255,.76);font-size:clamp(.95rem,1.06vw,1.02rem);
  line-height:1.72;text-wrap:pretty}
.iso-quote figcaption{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  margin-top:clamp(20px,2.2vw,30px);padding-top:14px;border-top:1px solid rgba(255,255,255,.18)}
.iso-quote figcaption b{color:#fff;font-weight:500;font-size:.9rem}
.iso-quote figcaption i{font-style:normal;color:rgba(255,255,255,.52);font-size:.83rem}
.isolist{display:grid;gap:12px;margin-top:16px}
.isolist li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:11px;align-items:start;
  font-size:.92rem;line-height:1.5;color:var(--text)}
.isolist svg{width:16px;height:16px;color:var(--royal);margin-top:3px}
.isolist.light li{color:rgba(255,255,255,.8)}
.isolist.light svg{color:var(--sky)}

/* ---- Karriere ---- */
.kar-claim{padding-block:clamp(44px,5vw,80px)}
.kar-claim>.wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr);
  gap:clamp(28px,4.4vw,72px);align-items:start}
.kar-claim p:first-child{font-size:clamp(1.24rem,2.1vw,1.86rem);line-height:1.34;
  letter-spacing:-.026em;font-weight:300;color:var(--text);max-width:22ch}
.kar-claim p:first-child em{font-style:italic}
.kar-claim p:first-child strong{color:var(--midnight);font-weight:600}
.kar-claim-body{display:grid;gap:14px;padding-top:6px}
.kar-claim-body p{color:var(--text);font-size:.98rem;line-height:1.66}

.kb-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;
  margin-top:clamp(24px,3vw,38px)}
.kb{padding:clamp(20px,2.2vw,26px);border-radius:10px;
  background:rgba(255,255,255,.085);border:1px solid rgba(255,255,255,.2);
  transition:background .3s,border-color .3s}
.kb:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.38)}
.kb-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;
  background:rgba(255,255,255,.12);color:#fff;transition:background .3s}
.kb:hover .kb-ic{background:var(--royal)}
.kb-ic svg{width:21px;height:21px}
.kb h3{color:#fff;font-size:1rem;font-weight:600;letter-spacing:-.014em;margin-top:16px}
.kb p{color:rgba(255,255,255,.78);font-size:.9rem;line-height:1.55;margin-top:8px}
.kb-note{display:block;color:rgba(255,255,255,.5);font-size:.82rem;line-height:1.5;
  margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.16)}
/* Bildmosaik auf der Ueber-uns-Seite: ungleiche Kacheln, feste Plaetze.
   (Die Karriereseite nutzt stattdessen die Bildwand .kw weiter unten.) */
.vbtn.dark{background:var(--tint);border-color:var(--hair);color:var(--midnight)}
.vbtn.dark:hover{background:var(--royal);border-color:var(--royal);color:#fff}

/* ---- Bilderslider (Über uns) ---- nutzt dieselbe Mechanik wie der Kachel-Slider */
.gslider{--vper:3}
.gcard{padding:0;background:none;border:0;display:block;position:relative;
  border-radius:10px;overflow:hidden}
.gcard img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.2s var(--ease)}
.gcard:hover img{transform:scale(1.07)}
.gcard figcaption{position:absolute;left:14px;bottom:12px;z-index:1;
  background:rgba(255,255,255,.94);color:var(--midnight);border-radius:var(--r);
  padding:6px 11px;font-size:.78rem;font-weight:600}
.gcard::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 52%,rgba(8,26,46,.3) 100%)}

/* ---- Weitere Leistungen: flache Kacheln mit Grafik im Grund ---- */
.nx-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;
  margin-top:clamp(22px,2.6vw,32px)}
/* Inhalt oben ausrichten und den Pfeil unten rechts verankern: bei bottom-Ausrichtung
   rutschten die Icons je nach Textlaenge auf unterschiedliche Hoehen. */
.nx{position:relative;overflow:hidden;border-radius:10px;min-height:168px;isolation:isolate;
  display:block;padding:clamp(20px,2.2vw,26px);
  padding-right:clamp(62px,6vw,76px);background:var(--midnight);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.nx-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;display:block;
  opacity:.34;transform:scale(1.02);transition:opacity .45s,transform 1.2s var(--ease)}
/* Verlauf plus ein weicher Lichtschein oben links */
.nx::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,rgba(8,26,46,.94) 0%,rgba(8,26,46,.72) 46%,rgba(8,26,46,.36) 100%),
             radial-gradient(90% 120% at 6% -14%,rgba(255,255,255,.14) 0%,transparent 60%)}
/* Feine Linie an der Unterkante, die beim Hover durchlaeuft */
.nx::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--sky);
  transition:width .5s var(--ease)}
.nx:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.3);
  box-shadow:0 26px 52px -30px rgba(15,45,75,.6),inset 0 1px 0 rgba(255,255,255,.2)}
.nx:hover::after{width:100%}
.nx:hover .nx-bg{opacity:.52;transform:scale(1.07)}
.nx-body{display:grid;gap:0;min-width:0}
.nx-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);color:#fff;
  margin-bottom:14px;transition:background .3s,border-color .3s}
.nx:hover .nx-ic{background:var(--royal);border-color:var(--royal)}
.nx-ic svg{width:18px;height:18px}
.nx-eb{font-size:.64rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--sky);margin-bottom:5px}
.nx b{color:#fff;font-weight:600;font-size:1.04rem;letter-spacing:-.016em}
.nx-sub{color:rgba(255,255,255,.7);font-size:.85rem;line-height:1.45;margin-top:4px;
  display:block;max-width:34ch}
.nx-arr{position:absolute;right:clamp(18px,2vw,24px);bottom:clamp(18px,2vw,24px);
  display:grid;place-items:center;width:38px;height:38px;
  border-radius:50%;border:1px solid rgba(255,255,255,.3);color:#fff;
  transition:background .3s,border-color .3s,transform .3s var(--ease)}
.nx-arr svg{width:17px;height:17px}
.nx:hover .nx-arr{background:#fff;border-color:#fff;color:var(--midnight);transform:translateX(3px)}

/* ---- Beratungsstrecke: kompakter, Technikgrafik im Grund ---- */
.berat-art{position:relative;overflow:hidden;padding-block:clamp(40px,4.2vw,62px)}
.berat-art .h2{font-size:clamp(1.25rem,1.9vw,1.7rem)}
.berat-art .sub{font-size:.95rem}
.berat-art .head{margin-bottom:clamp(20px,2.4vw,30px)}
.berat-bg{position:absolute;inset:0;z-index:0;opacity:.3}
.berat-bg img{width:100%;height:100%;object-fit:cover;object-position:center 60%;display:block}
.berat-art .wrap{z-index:1}
.berat-art::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(15,45,75,.95) 0%,rgba(15,45,75,.8) 46%,rgba(15,45,75,.66) 100%)}
.berat-art .wrap{position:relative;z-index:2}

/* ---- Über uns: Kopf im Markenblau, eigenes Bildmosaik ---- */
.phero.brand{background:var(--brand) url(../img/bg-hero-1600.webp) center/cover fixed no-repeat;color:#fff;
  padding-top:calc(78px + clamp(34px,4vw,60px));padding-bottom:0}
@media (min-width:1100px){.phero.brand,.ov-hero{background-image:url(../img/bg-hero-3000.webp)}}
@media (max-width:900px){.ov-hero{background-attachment:scroll}}
.phero.brand .raster-blue{background-image:url(../img/wafer3.svg);right:-180px;top:-150px;
  width:min(880px,62vw);height:min(860px,62vw);opacity:.3}
.phero.brand .crumb,.phero.brand .crumb a{color:rgba(255,255,255,.6)}
.phero.brand .crumb a:hover{color:#fff}
.phero.brand .crumb i{background:rgba(255,255,255,.35)}
.about-hero .eyebrow{color:#fff;opacity:.9}
.about-hero .eyebrow::before{background:rgba(255,255,255,.75)}
.about-hero h1{color:#fff;font-weight:400;font-size:clamp(1.85rem,3.1vw,2.62rem);
  letter-spacing:-.028em;line-height:1.16;margin-top:16px;max-width:18ch;text-wrap:balance}
.about-hero h1 strong{font-weight:700}
.about-hero .lead{color:rgba(255,255,255,.84);margin-top:22px;max-width:46ch}
.about-hero .pactions{margin-top:32px}
.about-hero .btn-line{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.42);color:#fff;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.about-hero .btn-line:hover{background:rgba(255,255,255,.14);border-color:#fff}

.ab-top{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(30px,4.2vw,62px);align-items:center;margin-top:clamp(18px,2.2vw,30px)}

/* Mosaik: hohes Hauptbild, daneben zwei quadratische, versetzt nach unten */
.ab-mosaic{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);
  grid-template-rows:auto auto;gap:clamp(10px,1.3vw,18px);align-items:start}
.ab-m{overflow:hidden;border-radius:12px;position:relative;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);box-shadow:0 34px 76px -40px rgba(4,18,34,.75)}
.ab-m img{width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.4s var(--ease)}
.ab-m:hover img{transform:scale(1.08)}
.ab-m.a{grid-row:1/3;aspect-ratio:3/4}
.ab-m.b{aspect-ratio:1/1;margin-top:clamp(22px,3vw,46px)}
.ab-m.c{aspect-ratio:1/1}

/* Faktenzeile schliesst den Kopf ab */
.ab-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:clamp(34px,4.2vw,62px);border-top:1px solid rgba(255,255,255,.2)}
.ab-facts li{padding:clamp(18px,2vw,26px) clamp(14px,1.6vw,26px) clamp(20px,2.4vw,32px) 0;
  border-right:1px solid rgba(255,255,255,.2)}
.ab-facts li:last-child{border-right:0}
.ab-facts li+li{padding-left:clamp(14px,1.6vw,26px)}
.ab-facts b{display:block;color:#fff;font-weight:600;font-size:1.02rem;letter-spacing:-.012em}
.ab-facts span{display:block;color:rgba(255,255,255,.66);font-size:.84rem;line-height:1.45;margin-top:5px}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;color:var(--text)}
.crumb a:hover{color:var(--midnight)}
.crumb i{width:4px;height:4px;background:var(--bluesmoke);flex:none}
.navy .crumb{color:rgba(255,255,255,.6)}.navy .crumb a:hover{color:#fff}.navy .crumb i{background:rgba(255,255,255,.3)}
.phero-media{margin-top:clamp(32px,4vw,52px);border-radius:var(--r-lg);overflow:hidden;aspect-ratio:21/8;position:relative;z-index:2}
.phero-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%}

/* Zwei-Spalten-Textblock */
.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4.5vw,72px);align-items:start}
.duo.wide-left{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.duo.wide-right{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.pair .figure:last-child{margin-top:34px}
.n-sq{width:30px;height:30px;display:grid;place-items:center;background:var(--royal);color:#fff;font-size:.82rem;font-weight:600;border-radius:4px}
.col p{color:var(--text);font-size:.97rem;line-height:1.6}
.col strong{color:var(--midnight);font-weight:600}
.prose{display:grid;gap:16px;max-width:62ch}
.prose p{color:var(--text);font-size:1.02rem;line-height:1.65}
.prose h3{font-size:clamp(1.15rem,1.6vw,1.4rem);font-weight:600;color:var(--midnight);margin-top:14px}
.prose strong{color:var(--midnight);font-weight:600}
.prose ul{display:grid;gap:10px;margin-top:4px}
.prose li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;align-items:start;font-size:.98rem;color:var(--text);line-height:1.55}
.prose li::before{content:"";width:7px;height:7px;background:var(--royal);margin-top:9px}
.navy .prose p,.navy .prose li{color:rgba(255,255,255,.75)}
.navy .prose strong,.navy .prose h3{color:#fff}
.figure{border-radius:var(--r-lg);overflow:hidden;position:relative;background:var(--smoke)}
.figure img{width:100%;height:100%;object-fit:cover;display:block}
.figure figcaption{position:absolute;left:16px;bottom:16px;background:rgba(255,255,255,.94);color:var(--midnight);border-radius:var(--r);padding:7px 11px;font-size:.78rem;font-weight:600}
.figure.sticky{position:sticky;top:100px}

/* Leistungs-Kacheln (Übersicht) */
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.svc-card{display:grid;grid-template-columns:1fr;background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);overflow:hidden;transition:box-shadow .35s,transform .35s var(--ease)}
.svc-card:hover{box-shadow:0 34px 64px -30px rgba(15,45,75,.42);transform:translateY(-6px);border-color:var(--royal)}
.svc-card .ico{transition:background .3s}
.svc-card:hover .ico{background:var(--royal)}
/* Ohne diese Zeile bleibt das Linien-Icon blau und verschwindet auf dem blauen Grund. */
.svc-card:hover .ico svg{color:#fff}
.svc-card:hover .ico img{filter:brightness(0) invert(1)}
.svc-card:hover .ico img{filter:brightness(0) invert(1)}
.svc-card .im{aspect-ratio:2.3/1;overflow:hidden}
.svc-card .im img{width:100%;height:100%;object-fit:cover;object-position:center 32%;transition:transform 1.3s var(--ease)}
.svc-card:hover .im img{transform:scale(1.04)}
.svc-card .bd{padding:clamp(22px,2.4vw,30px);display:grid;gap:12px;align-content:start}
.svc-card .ico{width:46px;height:46px;border-radius:var(--r);background:var(--tint);display:grid;place-items:center}
.svc-card .ico img{width:25px;height:25px}
.svc-card .ico svg{width:23px;height:23px;color:var(--royal)}
.svc-card h3{font-size:1.08rem;font-weight:600;letter-spacing:-.015em}
.svc-card p{font-size:.95rem}
.svc-card .tlink{margin-top:4px}

/* Vorteilsliste */
.ben-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ben{background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);padding:24px;display:grid;gap:9px;align-content:start;transition:border-color .3s,box-shadow .3s,transform .35s var(--ease)}
.ben:hover{border-color:var(--royal);box-shadow:0 28px 56px -32px rgba(15,45,75,.4);transform:translateY(-4px)}
.ben .ck{width:36px;height:36px;border-radius:var(--r);background:var(--tint);color:var(--royal);display:grid;place-items:center;transition:background .3s,color .3s}
.ben:hover .ck{background:var(--royal);color:#fff}
.ben .ck svg{width:18px;height:18px}
.ben b{font-weight:600;color:var(--midnight);font-size:1.02rem;letter-spacing:-.012em}
.ben p{font-size:.92rem;line-height:1.5}
.navy .ben{background:rgba(255,255,255,.05);border-color:var(--hair-dark)}
.navy .ben b{color:#fff}.navy .ben p{color:rgba(255,255,255,.72)}
.navy .ben .ck{background:rgba(255,255,255,.1);color:var(--sky)}

/* Nummerierte Blöcke */
.numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,28px)}
.numbers li{padding-top:20px;border-top:1px solid var(--hair);display:grid;gap:8px;align-content:start;position:relative}
.numbers li::before{content:"";position:absolute;top:-3.5px;left:0;width:7px;height:7px;background:var(--royal)}
.numbers .n{font-size:.74rem;font-weight:700;letter-spacing:.12em;color:var(--royal)}
.numbers b{font-weight:600;color:var(--midnight);font-size:1.08rem;letter-spacing:-.015em}
.numbers p{font-size:.9rem;line-height:1.5}
.navy .numbers li{border-color:var(--hair-dark)}
.navy .numbers b{color:#fff}.navy .numbers .n{color:var(--sky)}.navy .numbers li::before{background:var(--sky)}

/* Team */

/* ---- Leitbild: Brief mit Portraet ---- */
.letter{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);gap:clamp(28px,4vw,60px);align-items:start;margin-top:clamp(28px,3.4vw,44px)}
.letter-port{position:relative;border-radius:var(--r-lg);overflow:hidden;background:rgba(255,255,255,.05);border:1px solid var(--hair-dark)}
.letter-port .im{position:relative;aspect-ratio:4/5;overflow:hidden}
.letter-port .im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 14%}
.letter-port figcaption{padding:18px 20px;border-top:1px solid var(--hair-dark)}
.letter-port figcaption b{display:block;color:#fff;font-weight:600;font-size:1rem;letter-spacing:-.01em}
.letter-port figcaption span{display:block;color:rgba(255,255,255,.62);font-size:.84rem;margin-top:3px}
.letter-body{display:grid;gap:20px;max-width:68ch}
.letter-body p{color:rgba(255,255,255,.76);font-size:1.02rem;line-height:1.68}
.letter-body blockquote{position:relative;padding-left:22px;border-left:2px solid var(--sky);color:#fff;font-size:clamp(1.12rem,1.55vw,1.4rem);font-weight:500;line-height:1.42;letter-spacing:-.018em}
/* Die Unterschrift steht bei Name und Rolle in der Portraetkarte, nicht mehr
   allein am Ende des Textes. Im Brief bleibt nur die Ortszeile. */
.letter-sign{padding-top:18px;border-top:1px solid rgba(255,255,255,.18)}
.letter-sign span{color:rgba(255,255,255,.55);font-size:.82rem}
.letter-port figcaption .sig{display:block;height:28px;width:auto;margin-top:14px;
  filter:brightness(0) invert(1);opacity:.6}

/* ---- Werte als nummerierte Liste ---- */
/* Die Werte sind Teil des Briefes, keine eigene Sektion: sie stehen unter der
   Unterschrift und fuellen die Flaeche neben dem Portraet. */
/* Direkt unter dem Brieftext, nicht in einer eigenen Zeile unter dem Portraet -
   dort blieb sonst eine grosse Leerflaeche neben dem Text stehen. */
.letter-values{margin-top:clamp(24px,2.8vw,36px);
  padding-top:clamp(18px,2vw,26px);border-top:1px solid rgba(255,255,255,.18)}
.lv-label{display:block;font-size:.66rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.5)}
/* Zehn gleichwertige Begriffe - also keine Nummern (die wuerden eine Rangfolge
   behaupten) und keine Zeilenlinien (die wuerden Inhalt ankuendigen, der nicht
   kommt). Nur das Wort, davor sein Zeichen, dazwischen Luft. */
/* Festes Raster statt freiem Umbruch - sonst bleibt ein einzelnes Wort in der
   letzten Zeile stehen. 10 geht glatt durch 2 und durch 5 auf. Fuenf Spalten erst,
   wenn die Briefspalte breit genug fuer »Weiterentwicklung« ist. */
.values-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(12px,1.4vw,18px) clamp(16px,1.8vw,26px);
  margin-top:clamp(14px,1.6vw,20px)}
@media (min-width:1280px){.values-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.val{display:flex;align-items:center;gap:12px}
.vic{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;flex:none;
  border:1px solid rgba(255,255,255,.26);color:var(--sky);
  transition:background .28s,color .28s,border-color .28s}
.vic svg{width:14px;height:14px}
.val:hover .vic{background:#fff;border-color:#fff;color:var(--midnight)}
.val b{color:#fff;font-weight:300;font-size:clamp(.9rem,1.04vw,1rem);
  letter-spacing:-.014em;overflow-wrap:anywhere}

/* Die Werte sind Teil des Briefes, keine eigene Sektion: sie stehen unter der
   Unterschrift und fuellen die Flaeche neben dem Portraet. */
/* Direkt unter dem Brieftext, nicht in einer eigenen Zeile unter dem Portraet -
   dort blieb sonst eine grosse Leerflaeche neben dem Text stehen. */
.letter-values{margin-top:clamp(24px,2.8vw,36px);
  padding-top:clamp(18px,2vw,26px);border-top:1px solid rgba(255,255,255,.18)}
.lv-label{display:block;font-size:.66rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.5)}
.values{display:flex;flex-wrap:wrap;gap:8px}
.values span{border:1px solid var(--hair);border-radius:var(--r);padding:9px 14px;font-size:.92rem;font-weight:600;color:var(--midnight);background:#fff}
.navy .values span{border-color:var(--hair-dark);background:rgba(255,255,255,.05);color:#fff}

/* Downloads */
.dl-list{border-top:1px solid var(--hair)}
.dl-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:clamp(16px,2.4vw,28px);align-items:center;padding:20px 16px;margin-inline:-16px;border-bottom:1px solid var(--hair);transition:background .3s}
.dl-row:hover{background:var(--smoke)}
.dl-row .ft{transition:background .3s,color .3s}
.dl-row:hover .ft{background:var(--royal);color:#fff}
.dl-row .ft{width:48px;height:48px;border-radius:var(--r);background:var(--tint);color:var(--royal);display:grid;place-items:center;font-size:.66rem;font-weight:700;letter-spacing:.06em}
.dl-row b{display:block;font-weight:600;color:var(--midnight);font-size:1.05rem;letter-spacing:-.012em}
.dl-row p{font-size:.9rem;margin-top:3px}
.dl-row .btn{height:44px;padding:0 18px;font-size:.9rem}

/* Formular */
.form{display:grid;gap:16px}
.field{display:grid;gap:7px}
.field label{font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--midnight)}
.field input,.field select,.field textarea{font:inherit;font-size:.95rem;color:var(--ink);background:#fff;border:1px solid var(--bluesmoke);border-radius:var(--r);padding:13px 14px;width:100%;transition:border-color .25s,box-shadow .25s}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--royal);box-shadow:0 0 0 3px rgba(25,94,160,.12)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:.88rem;color:var(--text);line-height:1.5}
.consent input{width:17px;height:17px;margin-top:2px;accent-color:var(--royal);flex:none}
.consent a{color:var(--royal);font-weight:600}
.form .btn{justify-self:start;margin-top:4px}
.form-note{font-size:.82rem;color:var(--text);padding:13px 15px;background:var(--smoke);border:1px solid var(--hair);border-radius:var(--r)}
.contact-cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,80px);align-items:start}
.info-list{display:grid;gap:2px;border-top:1px solid var(--hair)}
.info-list a,.info-list div{display:grid;gap:4px;padding:18px 0;border-bottom:1px solid var(--hair)}
.info-list small{font-size:.7rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--text)}
.info-list b{font-weight:600;color:var(--midnight);font-size:1rem}
.info-list a:hover b{color:var(--royal)}

/* Zertifikat */
.cert{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);border:1px solid var(--hair);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.cert .im{background:var(--smoke);border-right:1px solid var(--hair);padding:clamp(22px,3vw,40px);display:grid;place-items:center}
.cert .im img{max-height:440px;width:auto;border:1px solid var(--hair);background:#fff}
.cert .bd{padding:clamp(24px,3vw,40px);display:grid;gap:18px;align-content:center}

/* Rechtstexte */
.legal{display:grid;gap:22px;max-width:74ch}
.legal h2{font-size:clamp(1.25rem,1.8vw,1.5rem);font-weight:600;margin-top:18px}
.legal h3{font-size:1.05rem;font-weight:600;color:var(--midnight);margin-top:10px}
.legal p,.legal li{font-size:.98rem;line-height:1.65;color:var(--text)}
.legal ul{display:grid;gap:8px;padding-left:18px;list-style:disc}
.legal a{color:var(--royal);font-weight:600}

/* Leerer Zustand */
.empty{border:1px dashed var(--bluesmoke);border-radius:var(--r-lg);padding:clamp(30px,4vw,52px);text-align:center;display:grid;gap:12px;justify-items:center;background:var(--smoke)}
.empty b{font-weight:600;color:var(--midnight);font-size:1.15rem}
.empty p{max-width:52ch}

@media (max-width:1100px){
  .team-grid,.ben-grid,.kb-grid,.qx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qp-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}
  .qp-grid::before{display:none}
        .vslider{--vper:2}
  .kar-claim>.wrap{grid-template-columns:minmax(0,1fr);gap:22px}
  .gslider{--vper:2}
  .letter{grid-template-columns:1fr}
  .nx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* minmax(0,1fr) statt 1fr: sonst zieht der min-content der Bildspalte die
     Spalte ueber die Fensterbreite hinaus. */
  .dos{grid-template-columns:minmax(0,1fr);gap:24px}
  /* Das Bild bleibt beim Durchscrollen der Kapitel stehen. Damit der Text
     nicht im Spalt zwischen Header und Bildkante durchlaeuft, deckt der
     klebende Kasten diesen Streifen mit ab (Polster oben plus Hintergrund),
     und er liegt ueber dem Text. */
  .dos-media{position:sticky;top:68px;z-index:3;margin-top:-16px;
    padding:16px 0 12px;background:var(--midnight)}
  .dos-stack{aspect-ratio:3/2}
  .dos-ch{grid-template-columns:minmax(0,1fr);gap:6px}
  .dos-ch:first-child{padding-top:26px}
  .phero-split .wrap{grid-template-columns:minmax(0,1fr);gap:26px}
  .ps-media{aspect-ratio:16/10}
  /* Ohne Zeiger bleibt alles offen */
  .bd-inner{grid-template-columns:auto auto minmax(0,1fr)}
  .bd-more{grid-column:1/-1}
  .bd-arr{display:none}
  .vslider{--vper:1}
  .gslider{--vper:1}
  .xp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .xp:nth-child(3n){border-right:1px solid rgba(255,255,255,.16);padding-right:clamp(18px,2vw,30px)}
  .xp:nth-child(2n){border-right:0;padding-right:0}
  .xp:nth-child(odd){padding-left:0}
  .xp:nth-child(even){padding-left:clamp(18px,2vw,30px)}
  .ab-top{grid-template-columns:1fr}
  .ab-mosaic{grid-template-columns:1fr 1fr}
  /* Das Hochformat wird auf dem Handy quer beschnitten - der Ausschnitt
     muss nach oben, sonst sind die Koepfe ab. */
  .ab-m.a{grid-row:auto;grid-column:1/3;aspect-ratio:16/10}
  .ab-m.a img{object-position:50% 28%}
  .ab-m.b{margin-top:0}
  .ab-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ab-facts li:nth-child(2n){border-right:0}
  .ab-facts li:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.2)}
  .ab-facts li:nth-child(odd){padding-left:0}
  .letter-port .im{aspect-ratio:16/9}
  .letter-port .im img{object-position:center 12%}
  .values-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
  .numbers{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:26px}
}
@media (max-width:900px){
  .duo,.duo.wide-left,.duo.wide-right,.contact-cols,.cert,.svc-grid{grid-template-columns:1fr}
  .duo.wide-right .figure,.duo.wide-right .figwrap{order:2}
  .pair .figure:last-child{margin-top:0}
  .cert .im{border-right:0;border-bottom:1px solid var(--hair)}
  .figure.sticky{position:static}
  .phero h1{max-width:none}
  .phero-media{aspect-ratio:16/9}
  .dl-row{grid-template-columns:40px minmax(0,1fr);row-gap:14px}
  .dl-row .btn{grid-column:2}
  .dl-row .ft{width:40px;height:40px}
}
@media (max-width:560px){
  .team-grid,.numbers,.field-row,.ben-grid,.kb-grid,.qx-grid,.qp-grid{grid-template-columns:1fr}
  .nx-grid{grid-template-columns:1fr}
  .vslider{--vper:1}
  .gslider{--vper:1}
  .xp-grid{grid-template-columns:1fr}
  .xp,.xp:nth-child(3n),.xp:nth-child(2n){border-right:0;padding-left:0;padding-right:0}
  .val b{font-size:1rem}
}

/* Zitatkarte mit Portrait (Unterseiten) */
.quote{display:grid;grid-template-columns:clamp(190px,21vw,280px) minmax(0,1fr);border:1px solid var(--hair);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.quote .portrait{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}
.quote .q-body{padding:clamp(26px,3.2vw,44px);display:flex;flex-direction:column;justify-content:center}
.quote blockquote{font-size:clamp(1rem,1.45vw,1.3rem);line-height:1.4;letter-spacing:-.018em;color:var(--midnight);font-weight:600}
.q-meta{display:flex;align-items:center;gap:20px;margin-top:24px;padding-top:19px;border-top:1px solid var(--hair)}
.q-meta b{display:block;font-weight:600;color:var(--midnight)}
.q-meta span{font-size:.85rem;color:var(--text)}
.q-meta .sig{height:30px;width:auto;margin-left:auto;filter:var(--blue-filter);opacity:.65}
@media (max-width:900px){
  .quote{grid-template-columns:1fr}
  .quote .portrait{aspect-ratio:16/10;height:auto}
}

/* iOS und Android behandeln background-attachment:fixed unzuverlaessig.
   Auf schmalen Schirmen deshalb flache Toene, dort fallen die Uebergaenge nicht auf. */
@media (max-width:900px){
  .sec.navy,.sec.navy.tone-b,.phero.brand,body>footer,.svc-strip{background-image:none;background-attachment:scroll}
  /* Ein einziger Ton fuer alle blauen Abschnitte, sonst entstehen hier die Kanten wieder */
  .sec.navy,.sec.navy.tone-b{background-color:var(--midnight)}
  .phero.brand{background-color:var(--brand)}
  body>footer,.svc-strip{background-color:var(--midnight)}
}


/* ================= Bildwand (Karriere) =================================
   Zwei Baender, die gegenlaeufig durchlaufen: das obere nach links, das untere
   nach rechts. Jedes Band steht im Markup doppelt und wird um genau die Haelfte
   geschoben, dadurch schliesst der Umlauf ohne Sprung. Bewusst ohne
   Bildunterschriften. */
.kw{display:grid;gap:8px;margin-top:clamp(24px,3vw,38px)}
.kwr{overflow:hidden}
.kwr-t{display:flex;gap:8px;width:max-content;animation:marq 130s linear infinite}
.kwr.rev .kwr-t{animation-name:marqrev}
@keyframes marqrev{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.kw:hover .kwr-t{animation-play-state:paused}
.kw-t{margin:0;flex:none;height:clamp(140px,14.5vw,215px);position:relative;
  overflow:hidden;border-radius:12px;background:var(--tint)}
.kw-t img{height:100%;width:auto;display:block;object-fit:cover;
  transform:scale(1.02);transition:transform 1.1s var(--ease),filter .5s var(--ease)}
.kw-t:hover img{transform:scale(1.07)}
@media (hover:hover){
  .kw:hover .kw-t img{filter:saturate(.72) brightness(.94)}
  .kw .kw-t:hover img{filter:none}
}
@media (prefers-reduced-motion:reduce){
  .kwr-t{animation:none}
  .kwr{overflow-x:auto;scrollbar-width:none}
  .kwr::-webkit-scrollbar{display:none}
}

/* ================= Leben bei proQtech ================================== */
.lb-split{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(30px,4.6vw,76px);align-items:center}
.lb-split.alt{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}
.lb-txt .eyebrow{display:block}
.lb-txt .h2{margin-top:14px;max-width:24ch}
.lb-txt p{margin-top:18px;color:var(--text);font-size:1rem;line-height:1.7;max-width:56ch}
.lb-txt .btn{margin-top:26px}

/* Zwei versetzte Aufnahmen: das zweite Bild ueberlappt das erste */
.lb-stack{position:relative;padding-bottom:clamp(38px,5vw,74px);
  padding-left:clamp(28px,4vw,66px)}
.lb-fig{margin:0;border-radius:12px;overflow:hidden;background:var(--tint)}
.lb-fig img{width:100%;height:100%;object-fit:cover;display:block}
.lb-fig-1{aspect-ratio:4/3;box-shadow:0 34px 76px -44px rgba(15,45,75,.5)}
.lb-fig-2{position:absolute;left:0;bottom:0;width:clamp(120px,38%,220px);aspect-ratio:4/5;
  border:5px solid var(--paper);box-shadow:0 26px 54px -30px rgba(15,45,75,.5)}

/* Zwei Textspalten fuer laengere Passagen */
.lb-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(20px,3vw,48px);margin-top:clamp(22px,2.6vw,34px)}
.lb-cols p{color:var(--text);font-size:1rem;line-height:1.72}
.sec.navy .lb-cols p{color:rgba(255,255,255,.78)}
.lb-cols-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.4vw,34px)}

/* Miszkas Weg: Portraet, Zitat, aufklappbare Geschichte */
.lb-story{display:grid;grid-template-columns:clamp(170px,17vw,240px) minmax(0,1fr);
  gap:clamp(24px,3.6vw,56px);align-items:start}
.lb-portrait{margin:0;border-radius:12px;overflow:hidden;aspect-ratio:4/5;
  border:1px solid rgba(255,255,255,.2)}
.lb-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 12%;display:block}
.lb-story-body blockquote{color:#fff;font-weight:300;letter-spacing:-.026em;
  font-size:clamp(1.26rem,2.05vw,1.76rem);line-height:1.28;max-width:30ch;text-wrap:balance}
.lb-story-meta{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:18px}
.lb-story-meta b{color:#fff;font-weight:500;font-size:.9rem}
.lb-story-meta span{color:rgba(255,255,255,.52);font-size:.83rem}
.lb-acc{margin-top:clamp(22px,2.6vw,34px);border-top:1px solid rgba(255,255,255,.18)}
.lb-acc .acc-item{border-bottom:1px solid rgba(255,255,255,.18)}
.lb-acc .acc-btn{padding:20px 0}
.lb-acc .acc-btn b{color:#fff;font-size:.98rem;font-weight:500;letter-spacing:-.012em}
.lb-acc .acc-btn .pm{border-color:rgba(255,255,255,.28);color:#fff}
.lb-acc .acc-item.open .acc-btn .pm{background:#fff;border-color:#fff;color:var(--midnight)}
.lb-acc .acc-body p{color:rgba(255,255,255,.76);font-size:.95rem;line-height:1.7;max-width:70ch}
.lb-acc .acc-body p + p{padding-top:14px}

/* Gesichter aus dem Team */
.lb-faces{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(12px,1.6vw,20px);margin-top:clamp(26px,3.2vw,44px);max-width:800px}
.lb-face{margin:0}
.lb-face img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 14%;
  display:block;border-radius:9px;background:var(--tint)}
.lb-face figcaption{margin-top:9px;font-size:.81rem;color:var(--muted);letter-spacing:-.004em}

/* Teamevents */
.lb-ev-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(20px,3.4vw,56px);align-items:end}
.lb-ev-head .h2{margin-top:14px;max-width:22ch}
.lb-ev-head .sub{max-width:58ch}
.lb-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:clamp(24px,3vw,40px) var(--edge) 6px;scroll-padding-inline:var(--edge);
  -ms-overflow-style:none;scrollbar-width:none}
.lb-strip::-webkit-scrollbar{display:none}
.lb-shot{margin:0;flex:0 0 clamp(240px,29vw,400px);scroll-snap-align:start;
  border-radius:11px;overflow:hidden;background:var(--tint);position:relative}
.lb-shot img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.1s var(--ease)}
.lb-shot:hover img{transform:scale(1.07)}
.lb-shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;
  color:#fff;font-size:.8rem;letter-spacing:.01em;
  background:linear-gradient(to top,rgba(10,26,45,.72),rgba(10,26,45,0))}

/* Vorteile als Zeilen */
.lv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;margin-top:clamp(26px,3.2vw,42px)}
.lv{display:grid;grid-template-columns:38px minmax(0,1fr);gap:16px;align-items:start;
  padding:clamp(16px,1.8vw,22px) clamp(18px,2vw,24px);border-radius:10px;
  background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.18);
  transition:background .3s,border-color .3s}
.lv:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.34)}
.lv-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;
  background:rgba(255,255,255,.12);color:var(--sky);transition:background .3s,color .3s}
.lv:hover .lv-ic{background:var(--royal);color:#fff}
.lv-ic svg{width:19px;height:19px}
.lv b{display:block;color:#fff;font-weight:500;font-size:.98rem;letter-spacing:-.012em}
.lv p{color:rgba(255,255,255,.78);font-size:.9rem;line-height:1.58;margin-top:6px}
.lv-note{display:block;color:rgba(255,255,255,.5);font-size:.82rem;line-height:1.5;margin-top:8px}
/* Schlusssatz der Werte - eigener Klassenname, weil .lv-note bereits fuer ein
   anderes Bauteil belegt ist und der Satz sonst dessen Stil erbt. */
.letter-body .values-note{margin-top:clamp(32px,3.4vw,48px);padding-top:clamp(18px,2vw,24px);
  position:relative;color:#fff;font-weight:500;
  font-size:clamp(1.02rem,1.2vw,1.14rem);line-height:1.55;letter-spacing:-.012em;
  max-width:56ch}
.letter-body .values-note::before{content:"";position:absolute;top:0;left:0;width:30px;height:2px;
  background:var(--sky)}
.lb-equal{margin-top:clamp(26px,3vw,40px);padding-top:18px;
  border-top:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.58);font-size:.87rem;line-height:1.66;max-width:96ch}

@media (max-width:1100px){
  .iso-quote{grid-template-columns:clamp(150px,19vw,200px) minmax(0,1fr)}
  .iso-said{grid-column:2}
}
@media (max-width:900px){
  .lb-split,.lb-split.alt{grid-template-columns:minmax(0,1fr);gap:30px}
  .lb-stack{padding-left:clamp(20px,8vw,48px)}
  .lb-cols,.lb-cols-2,.lb-ev-head{grid-template-columns:minmax(0,1fr);gap:18px}
  .lb-ev-head{align-items:start}
  .lv-grid{grid-template-columns:minmax(0,1fr)}
  .lb-story{grid-template-columns:minmax(0,1fr)}
  .lb-portrait{width:clamp(150px,44vw,220px)}
  .iso-quote{grid-template-columns:minmax(0,1fr)}
  .iso-port{width:clamp(150px,44vw,220px)}
  .iso-said{grid-column:auto}
}
@media (max-width:760px){
  .lb-faces{gap:10px}
  .lb-face:nth-child(2),.lb-face:nth-child(4){transform:none}
}

/* ================= ISO: das Zertifikat ================================= */
.isocert{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1fr);
  gap:clamp(26px,4vw,64px);align-items:center;margin-top:clamp(24px,3vw,38px)}
.isocert-doc{position:relative;display:block;border-radius:6px;overflow:hidden;
  background:#fff;border:1px solid var(--hair);
  box-shadow:0 30px 68px -40px rgba(15,45,75,.46);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.isocert-doc img{width:100%;height:auto;display:block}
.isocert-doc:hover{transform:translateY(-4px);box-shadow:0 40px 82px -40px rgba(15,45,75,.54)}
.isocert-open{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:8px;
  padding:34px 16px 14px;color:#fff;font-size:.86rem;font-weight:500;letter-spacing:-.006em;
  background:linear-gradient(to top,rgba(10,26,45,.82),rgba(10,26,45,0))}
.isocert-open svg{width:15px;height:15px;transition:transform .34s var(--ease)}
.isocert-doc:hover .isocert-open svg{transform:translateX(4px)}
.isocert-side{display:grid;gap:clamp(18px,2.2vw,28px);justify-items:start}
.isocert-seal{width:clamp(130px,15vw,188px);height:auto;display:block;border-radius:4px}
.isocert-facts{display:grid;gap:0;width:100%;border-top:1px solid var(--hair)}
.isocert-facts>div{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);
  gap:16px;padding:11px 0;border-bottom:1px solid var(--hair)}
.isocert-facts dt{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);align-self:center}
.isocert-facts dd{margin:0;font-size:.93rem;color:var(--midnight);line-height:1.5}
@media (max-width:900px){
  .isocert{grid-template-columns:minmax(0,1fr);gap:26px}
  .isocert-doc{max-width:320px}
  .isocert-facts>div{grid-template-columns:minmax(0,1fr);gap:3px}
}

/* ================= Siegel im Seitenkopf ================================= */
.phero.svc.has-seal .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(24px,4vw,64px);align-items:end}
.phero-txt{min-width:0}
.phero-seal{margin:0 0 6px;display:grid;justify-items:center;gap:12px;text-align:center}
.phero-seal img{width:clamp(76px,7.6vw,108px);height:auto;display:block;opacity:.96}
.phero-seal figcaption{font-size:.74rem;line-height:1.45;letter-spacing:.09em;
  text-transform:uppercase;color:rgba(255,255,255,.62)}
@media (max-width:900px){
  .phero.svc.has-seal .wrap{grid-template-columns:minmax(0,1fr);gap:26px}
  .phero-seal{justify-items:start;text-align:left;grid-auto-flow:column;
    align-items:center;justify-content:start;gap:14px}
}

/* ---- Partnerschaften: drei Aufnahmen statt einer ---- */
.qtrio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(10px,1.2vw,16px)}
.qtrio figure{margin:0;border-radius:11px;overflow:hidden;background:var(--tint)}
.qtrio img{width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.1s var(--ease)}
.qtrio figure:hover img{transform:scale(1.07)}
.qtrio-a{grid-column:1/-1;aspect-ratio:4/3;
  box-shadow:0 30px 68px -44px rgba(15,45,75,.5)}
.qtrio-b,.qtrio-c{aspect-ratio:1/1}

/* ================= Laufende Bildstrecke (Qualitaetslabor) ===============
   Der Streifen steht im Markup doppelt; die Animation schiebt ihn um genau
   die Haelfte, dadurch schliesst der Umlauf ohne Sprung. */
.qlab .wrap{margin-bottom:clamp(22px,2.8vw,36px)}
.qstrip{position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.qs-track{display:flex;align-items:stretch;gap:10px;width:max-content;
  animation:marq 145s linear infinite}
.qstrip:hover .qs-track{animation-play-state:paused}
.qs-t{margin:0;flex:none;height:clamp(150px,16vw,222px);
  border-radius:9px;overflow:hidden;background:var(--tint)}
.qs-t img{height:100%;width:auto;display:block;object-fit:cover}
@media (prefers-reduced-motion:reduce){
  .qs-track{animation:none}
  .qstrip{overflow-x:auto;scrollbar-width:none}
  .qstrip::-webkit-scrollbar{display:none}
}

/* ================= Siegel im Seitenkopf ================================= */
.phero.svc.has-seal .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(24px,4vw,64px);align-items:end}
.phero-txt{min-width:0}
.phero-seal{margin:0 0 6px;display:grid;justify-items:center;gap:12px;text-align:center}
.phero-seal img{width:clamp(76px,7.6vw,108px);height:auto;display:block;opacity:.96}
.phero-seal figcaption{font-size:.74rem;line-height:1.45;letter-spacing:.09em;
  text-transform:uppercase;color:rgba(255,255,255,.62)}
@media (max-width:900px){
  .phero.svc.has-seal .wrap{grid-template-columns:minmax(0,1fr);gap:26px}
  .phero-seal{justify-items:start;text-align:left;grid-auto-flow:column;
    align-items:center;justify-content:start;gap:14px}
}

/* ---- Partnerschaften: drei Aufnahmen statt einer ---- */
.qtrio{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(10px,1.2vw,16px)}
.qtrio figure{margin:0;border-radius:11px;overflow:hidden;background:var(--tint)}
.qtrio img{width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.1s var(--ease)}
.qtrio figure:hover img{transform:scale(1.07)}
.qtrio-a{grid-column:1/-1;aspect-ratio:4/3;
  box-shadow:0 30px 68px -44px rgba(15,45,75,.5)}
.qtrio-b,.qtrio-c{aspect-ratio:1/1}

/* ================= Laufende Bildstrecke (Qualitaetslabor) ===============
   Der Streifen steht im Markup doppelt; die Animation schiebt ihn um genau
   die Haelfte, dadurch schliesst der Umlauf ohne Sprung. */
.qlab .wrap{margin-bottom:clamp(22px,2.8vw,36px)}
.qstrip{position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.qs-track{display:flex;align-items:stretch;gap:10px;width:max-content;
  animation:marq 145s linear infinite}
.qstrip:hover .qs-track{animation-play-state:paused}
.qs-t{margin:0;flex:none;height:clamp(150px,16vw,222px);
  border-radius:9px;overflow:hidden;background:var(--tint)}
.qs-t img{height:100%;width:auto;display:block;object-fit:cover}
@media (prefers-reduced-motion:reduce){
  .qs-track{animation:none}
  .qstrip{overflow-x:auto;scrollbar-width:none}
  .qstrip::-webkit-scrollbar{display:none}
}

/* ================= Downloads: Karten mit Deckblatt ======================
   Fuenf Unterlagen aus der CMS-Sammlung. Deckblatt links, Text rechts.
   Unterlagen ohne hinterlegte Datei zeigen eine Markenflaeche und werden
   angefordert statt verlinkt. */
.dlc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(14px,1.8vw,22px)}
.dlc{display:grid;grid-template-columns:minmax(0,.46fr) minmax(0,1fr);
  gap:clamp(16px,2vw,26px);align-items:stretch;
  padding:clamp(16px,1.8vw,22px);border-radius:12px;
  background:#fff;border:1px solid var(--hair);
  transition:border-color .3s var(--ease),box-shadow .4s var(--ease),transform .4s var(--ease)}
.dlc:hover{border-color:var(--bluesmoke);transform:translateY(-3px);
  box-shadow:0 26px 58px -36px rgba(15,45,75,.4)}
.dlc-cover{border-radius:7px;overflow:hidden;background:var(--smoke);
  border:1px solid var(--hair);aspect-ratio:1/1.414;
  box-shadow:0 14px 30px -20px rgba(15,45,75,.44)}
.dlc-cover img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.dlc-cover.ph{background:var(--midnight);border-color:transparent}
.dlc-ph{height:100%;display:grid;align-content:center;justify-items:center;gap:12px;
  padding:14px;text-align:center}
.dlc-ph-mark{display:block;width:34px;color:rgba(255,255,255,.8)}
.dlc-ph-mark svg{width:100%;height:auto;display:block}
.dlc-ph-t{font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;
  color:rgba(255,255,255,.62);line-height:1.5;overflow-wrap:anywhere}
.dlc-bd{display:grid;align-content:start;gap:0;min-width:0}
.dlc-kat{font-size:.66rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;
  color:var(--royal)}
.dlc-bd b{display:block;margin-top:9px;color:var(--midnight);font-weight:600;
  font-size:1.04rem;letter-spacing:-.016em}
.dlc-bd p{margin-top:9px;color:var(--text);font-size:.92rem;line-height:1.6}
.dlc-meta{display:block;margin-top:14px;padding-top:12px;border-top:1px solid var(--hair);
  font-size:.79rem;color:var(--muted);letter-spacing:.02em}
.dlc-bd .btn{margin-top:16px;justify-self:start}
/* Ungerade Anzahl: die letzte Karte fuellt die Zeile, statt allein zu stehen. */
.dlc-grid>.dlc:last-child:nth-child(odd){grid-column:1/-1;
  grid-template-columns:clamp(120px,12vw,158px) minmax(0,1fr)}
@media (max-width:900px){
  .dlc-grid{grid-template-columns:minmax(0,1fr)}
  .dlc-grid>.dlc:last-child:nth-child(odd){grid-template-columns:minmax(0,.46fr) minmax(0,1fr)}
}
@media (max-width:520px){
  .dlc{grid-template-columns:minmax(0,1fr)}
  .dlc-cover{max-width:180px}
}

/* ================= Leistungsuebersicht: Kopf ohne Foto ==================
   Die fuenf Baender darunter tragen schon die Technikgrafiken. Ein weiteres
   Bild im Kopf war zu viel - hier steht nur die Markenflaeche und rechts ein
   Register der fuenf Leistungen. */
/* Uebersichtskopf ohne Technikgrafik: dieselbe blaue Flaeche wie die anderen
   Seitenkoepfe (bg-hero, fixed). Die Grafiken bleiben den Detailseiten. */
.ov-hero{background:var(--brand) url(../img/bg-hero-1600.webp) center/cover fixed no-repeat;color:#fff;position:relative;isolation:isolate;overflow:hidden;
  padding-top:calc(76px + clamp(40px,4.8vw,74px));padding-bottom:clamp(40px,4.8vw,74px)}
/* Anderer Bildausschnitt als im Band 01 darunter, und deutlich staerker
   abgedunkelt: die Grafik traegt hier nur die Tiefe, nicht die Aufmerksamkeit. */
.ov-hero .svc-bg img{object-position:center 18%;transform:scale(1.06);opacity:.85}
.ov-hero .svc-bg::after{background:
  linear-gradient(0deg,#0b2743 0%,rgba(11,39,67,.9) 10%,rgba(11,39,67,.42) 30%,transparent 58%),
  linear-gradient(97deg,rgba(8,26,46,.97) 0%,rgba(8,26,46,.94) 34%,rgba(8,26,46,.8) 62%,rgba(8,26,46,.62) 100%)}
.ov-hero .wrap{position:relative;z-index:2}

.ov-hero .crumb,.ov-hero .crumb a{color:rgba(255,255,255,.6)}
.ov-hero .crumb a:hover{color:#fff}
.ov-hero .crumb i{background:rgba(255,255,255,.35)}
.ov-hero .eyebrow{color:var(--sky)}
.ov-hero .eyebrow::before{background:var(--sky)}
.ov-hero h1{color:#fff;max-width:24ch;margin-top:15px;
  font-size:clamp(1.85rem,3.05vw,2.6rem);line-height:1.08;letter-spacing:-.03em}
/* Haarlinie unter der Schlagzeile, darunter Text links und Schaltflaechen
   rechts: der Kopf fuellt so die volle Breite, ohne Bild und ohne die
   Leistungsliste ein zweites Mal zu zeigen. */
.ov-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(24px,4vw,64px);align-items:end;
  margin-top:clamp(30px,3.6vw,52px);padding-top:clamp(22px,2.6vw,34px);
  border-top:1px solid rgba(255,255,255,.2)}
.ov-hero .lead{color:rgba(255,255,255,.92);max-width:54ch;margin-top:0}
.ov-hero .pactions{margin-top:0;justify-content:flex-end}
.ov-hero .btn-line{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.34);color:#fff}
.ov-hero .btn-line:hover{background:rgba(255,255,255,.14);border-color:#fff}

@media (max-width:900px){
  .ov-foot{grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
  .ov-hero .pactions{justify-content:flex-start}
}

/* ================= Downloads ============================================
   Kopf wie die Leistungsuebersicht (Schlagzeile, Haarlinie, Fuss), darunter
   ein Regal: jede Unterlage eine volle Zeile mit Deckblatt, Nummer, Kategorie,
   Titel, Beschreibung und Merkmalen. Unterlagen ohne hinterlegte Datei zeigen
   eine Markenflaeche und werden angefordert. */
/* Kopf und Regal teilen sich eine durchgehende Markenflaeche. Das Blau haelt
   den oberen Teil der Seite zusammen, die Deckblaetter stehen darauf deutlich
   besser als auf Weiss. Erst danach wird die Seite hell. */
.dl-hero,.dl-shelf{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  color:#fff;position:relative;isolation:isolate}
@media (min-width:1100px){
  .dl-hero,.dl-shelf{background-image:url(../img/bg-field-3000.webp)}
}
@media (max-width:900px){
  .dl-hero,.dl-shelf{background-attachment:scroll}
}
.dl-hero{padding-top:calc(76px + clamp(40px,4.8vw,74px));padding-bottom:clamp(34px,4vw,56px)}
.dl-shelf{padding-top:0;padding-bottom:clamp(52px,6vw,90px)}
.dl-hero .crumb,.dl-hero .crumb a{color:rgba(255,255,255,.6)}
.dl-hero .crumb a:hover{color:#fff}
.dl-hero .crumb i{background:rgba(255,255,255,.35)}
.dl-hero .eyebrow{color:var(--sky)}
.dl-hero .eyebrow::before{background:var(--sky)}
/* Bewusst kleiner als der Masthead der Leistungsuebersicht: dort traegt die
   Schlagzeile die ganze Flaeche, hier folgt direkt darunter das Regal. */
.dl-hero h1{color:#fff;max-width:24ch;margin-top:15px;
  font-size:clamp(1.85rem,3.05vw,2.6rem);line-height:1.08;letter-spacing:-.03em}
.dl-hero .lead{color:rgba(255,255,255,.82);max-width:56ch;margin-top:clamp(18px,2vw,26px)}

.dl-shelf>.wrap{display:grid}
.dlr{display:grid;
  grid-template-columns:auto clamp(150px,19vw,252px) minmax(0,1fr) auto;
  gap:clamp(20px,3vw,46px);align-items:center;
  padding:clamp(26px,3.2vw,44px) clamp(14px,1.6vw,22px);
  border-top:1px solid rgba(255,255,255,.18);position:relative;
  transition:background .45s var(--ease)}
.dlr:last-child{border-bottom:1px solid rgba(255,255,255,.18)}
.dlr:hover{background:rgba(255,255,255,.055)}
/* Helle Linie zieht beim Ansteuern ueber die Zeilenkante */
.dlr::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;
  background:var(--sky);transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--ease)}
.dlr:hover::before{transform:scaleX(1);transform-origin:left;transition:transform .6s var(--ease)}
.dlr-no{font-size:.74rem;font-weight:700;letter-spacing:.1em;color:rgba(255,255,255,.42);
  align-self:start;padding-top:6px}
/* Die Mockups sind querformatige Kompositionen auf blauem Grund - der Rahmen
   folgt ihrem Seitenverhaeltnis, sonst wuerde quer beschnitten. */
.dlr-cover{border-radius:7px;overflow:hidden;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);aspect-ratio:4/3;
  box-shadow:0 26px 52px -26px rgba(3,14,28,.75);
  transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.dlr:hover .dlr-cover{transform:translateY(-5px);
  box-shadow:0 38px 70px -28px rgba(3,14,28,.85)}
.dlr-cover img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.dlr-ph{height:100%;display:grid;align-content:center;justify-items:center;gap:11px;
  padding:14px;text-align:center;background:rgba(255,255,255,.07)}
.dlr-ph-mark{display:block;width:32px;color:rgba(255,255,255,.7)}
.dlr-ph-mark svg{width:100%;height:auto;display:block}
.dlr-ph-t{font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;
  color:rgba(255,255,255,.52);overflow-wrap:anywhere}
.dlr-bd{min-width:0}
.dlr-kat{display:block;font-size:.66rem;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--sky)}
.dlr-bd h3{margin-top:10px;color:#fff;font-weight:600;
  font-size:clamp(1.18rem,1.9vw,1.6rem);letter-spacing:-.024em;line-height:1.16}
.dlr-bd p{margin-top:12px;color:rgba(255,255,255,.78);font-size:.97rem;line-height:1.62;max-width:60ch}
.dlr-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.dlr-chips li{font-size:.76rem;letter-spacing:.02em;color:rgba(255,255,255,.72);
  padding:5px 11px;border:1px solid rgba(255,255,255,.22);border-radius:100px;
  background:rgba(255,255,255,.06)}
.dlr-act{justify-self:end}
@media (max-width:980px){
  .dlr{grid-template-columns:auto clamp(130px,26vw,200px) minmax(0,1fr);
    row-gap:20px;align-items:start}
  .dlr-act{grid-column:2/-1;justify-self:start}
}
@media (max-width:560px){
  .dlr{grid-template-columns:auto minmax(0,1fr)}
  .dlr-cover{grid-row:2;grid-column:1/-1;max-width:230px}
  .dlr-bd{grid-column:1/-1}
  .dlr-act{grid-column:1/-1}
}

/* ================= Karriere: eigener Ton ================================
   Die Leistungs- und Unternehmensseiten sind bewusst streng: weisser Grund,
   enge Radien, sachliche Groessen. Auf den Karriereseiten darf es lockerer
   sein - ohne die Marke zu verlassen. Gleiche Schrift, gleiche Farben, nur
   weicher gesetzt: heller Grund statt Weiss, groessere Ueberschriften, mehr
   Luft, deutlich weichere Bildkanten. */
.area-karriere{background:var(--smoke)}
.area-karriere .sec{background:transparent}
.area-karriere .sec.smoke{background:#fff}
.area-karriere .sec.navy{color:#fff}

/* Ueberschriften eine Stufe groesser und mit ausgeglichenem Umbruch */
.area-karriere .h2{font-size:clamp(1.4rem,2.25vw,1.95rem);letter-spacing:-.028em;
  line-height:1.14;text-wrap:balance}
.area-karriere .head .sub{font-size:1.02rem;max-width:58ch}
.area-karriere .sec{padding-block:clamp(44px,5.2vw,84px)}

/* Weichere Bildkanten - der auffaelligste Unterschied zu den strengen Seiten */
.area-karriere .kw-t{border-radius:14px}
.area-karriere .lb-fig,.area-karriere .lb-fig-1{border-radius:14px}
.area-karriere .lb-fig-2{border-radius:14px}
.area-karriere .lb-face img,.area-karriere .lb-shot,
.area-karriere .ps-media,.area-karriere .lb-portrait{border-radius:14px}
.area-karriere .area-karriere .nx,.area-karriere .kb,.area-karriere .lv{border-radius:14px}

/* Die grosse Aussage darf hier wirklich gross sein */
.area-karriere .kar-claim p:first-child{font-size:clamp(1.24rem,2.1vw,1.8rem);
  max-width:24ch;line-height:1.28}

/* ================= Glaskarten (Kontakt) =================================
   Dieselbe Machart wie die Karte im Startseiten-Hero: Milchglas mit Lichtkante
   und Reflex. Glas braucht etwas dahinter - der Abschnitt bekommt darum die
   Markenflaeche als Grund, sonst waere der Effekt auf Weiss unsichtbar.
   Der Seitenkopf bleibt bewusst ohne Glas. */
/* Gleiche Flaeche wie der Seitenkopf (bg-hero, fixed): dadurch laufen Kopf und
   Glasabschnitt nahtlos ineinander, statt an der Kante die Textur zu wechseln. */
.kt-glass{background:var(--brand) url(../img/bg-hero-1600.webp) center/cover fixed no-repeat;
  position:relative;isolation:isolate}
@media (min-width:1100px){.kt-glass{background-image:url(../img/bg-hero-3000.webp)}}
@media (max-width:900px){.kt-glass{background-attachment:scroll}}

.glass{position:relative;isolation:isolate;overflow:hidden;border-radius:14px;
  padding:clamp(28px,3.9vw,58px);
  background:linear-gradient(140deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.76) 46%,rgba(255,255,255,.84) 100%);
  -webkit-backdrop-filter:blur(40px) saturate(190%) brightness(1.1);
          backdrop-filter:blur(40px) saturate(190%) brightness(1.1);
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 44px 96px -44px rgba(8,26,46,.72),
             0 2px 10px -4px rgba(8,26,46,.25),
             inset 0 1px 0 rgba(255,255,255,.95),
             inset 0 -26px 48px -34px rgba(255,255,255,.75)}
.glass::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(130% 85% at 10% -6%,rgba(255,255,255,.62) 0%,rgba(255,255,255,.18) 38%,transparent 66%)}
.glass::after{content:"";position:absolute;left:8%;right:8%;top:0;height:1px;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.98) 28%,rgba(255,255,255,.7) 72%,transparent)}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .glass{background:rgba(255,255,255,.96)}
}
/* Eingabefelder auf Glas: heller, damit sie sich vom Milchglas absetzen */
.glass .field input,.glass .field select,.glass .field textarea{
  background:rgba(255,255,255,.86);border-color:rgba(15,45,75,.16)}
.glass .field input:focus,.glass .field select:focus,.glass .field textarea:focus{
  background:#fff}
.glass .form-note{background:rgba(255,255,255,.6);border-color:rgba(15,45,75,.14)}
.glass .info-list{border-top-color:rgba(15,45,75,.16)}
.glass .info-list a,.glass .info-list div{border-bottom-color:rgba(15,45,75,.16)}
/* Die beiden Glaskarten gehoeren zusammen - mit dem grossen Spaltenabstand der
   Textseiten klaffte dazwischen ein Loch. */
.kt-glass .contact-cols{align-items:start;gap:clamp(24px,3vw,46px)}

/* ================= Karrierestrecke =====================================
   Eigene Bildsprache, klar getrennt von den Leistungs- und Unternehmensseiten:
   Titelkopf mit Foto und uebergelegter Schlagzeile, darunter ein Register, das
   die vier Seiten zusammenhaelt. Innen wird in Spreads gedacht - Randnummer,
   versetzte Spalten, Bilder die zur Aussenkante laufen. */

/* ---- Titelkopf ---- */
.kx-cover{position:relative;isolation:isolate;overflow:hidden;background:var(--midnight);
  min-height:clamp(440px,52vw,640px);display:flex;align-items:flex-end;
  padding-top:calc(76px + clamp(28px,3vw,44px));padding-bottom:clamp(34px,4vw,58px)}
.kx-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.kx-bg img{width:100%;height:100%;object-fit:cover;object-position:center 34%;display:block}
/* Zwei Verlaeufe: von unten fuer den Textblock, von links fuer die Typo.
   Mit nur einem Verlauf stand die Eyebrow ueber hellen Bildstellen kaum lesbar. */
.kx-bg::after{content:"";position:absolute;inset:0;
  /* Foto soll erkennbar bleiben: dunkel nur links unten fuer die Typo, rechts
     und oben tritt das Bild deutlich hervor. */
  background:linear-gradient(0deg,rgba(8,26,46,.95) 0%,rgba(8,26,46,.88) 30%,rgba(8,26,46,.62) 60%,rgba(8,26,46,.42) 100%),
             linear-gradient(97deg,rgba(8,26,46,.72) 0%,rgba(8,26,46,.5) 38%,rgba(8,26,46,.2) 68%,transparent 100%)}
.kx-cover-in{position:relative;z-index:2;width:100%;
  display:grid;gap:clamp(22px,3vw,40px)}
.kx-cover .crumb,.kx-cover .crumb a{color:rgba(255,255,255,.62)}
.kx-cover .crumb a:hover{color:#fff}
.kx-cover .crumb i{background:rgba(255,255,255,.38)}
.kx-cover-txt{max-width:min(720px,60ch)}
.kx-cover .eyebrow{color:var(--sky)}
.kx-cover .eyebrow::before{background:var(--sky)}
/* Der Textblock sitzt an der Unterkante. Braucht eine Seite eine Zeile mehr,
   schoebe das alles darueber nach oben - beim Wechsel zwischen den vier Seiten
   waere das ein Sprung. Ueberschrift und Fliesstext bekommen darum die Hoehe
   ihrer laengsten Fassung (2 bzw. 3 Zeilen) fest zugewiesen. */
.kx-cover h1{color:#fff;margin-top:14px;max-width:none;text-wrap:balance;
  font-size:clamp(2rem,4.1vw,3.4rem);line-height:1.04;letter-spacing:-.034em;
  min-height:calc(2 * 1.04em)}
/* Jeder Satz eine Zeile - der Umbruch steht im Markup. text-wrap:balance
   verteilte zwar gleichmaessig, riss aber Wortpaare wie "Dafuer gibt"
   auseinander. */
.kx-cover .lead{color:rgba(255,255,255,.84);max-width:60ch;margin-top:18px;
  min-height:calc(3 * 1.6em)}
.kx-cover .pactions{margin-top:26px}

/* ---- Register unter dem Titelkopf ---- */
.kx-ix{background:#fff;border-bottom:1px solid var(--hair)}
.kx-ix .wrap{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px);flex-wrap:wrap;
  padding-block:clamp(12px,1.4vw,18px)}
.kx-ix-l{font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);flex:none}
.kx-ix-n{display:flex;gap:clamp(14px,2vw,30px);flex-wrap:wrap;align-items:center}
.kx-ix-a{position:relative;font-size:.94rem;font-weight:500;color:var(--text);
  padding-block:4px;transition:color .3s var(--ease)}
.kx-ix-a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--royal);transform:scaleX(0);transform-origin:right;
  transition:transform .35s var(--ease)}
.kx-ix-a:hover{color:var(--midnight)}
.kx-ix-a:hover::after{transform:scaleX(1);transform-origin:left}
.kx-ix-a.on{color:var(--midnight);font-weight:600}
.kx-ix-a.on::after{transform:scaleX(1)}

/* ---- Auftakt: grosse Aussage, versetzte Erlaeuterung ---- */
/* Der Auftakt sitzt auf einer eigenen Flaeche mit der Marke als Wasserzeichen.
   Als blanker Text auf hellem Grund war der Block zu leer. */
/* Ohne Kasten: der Auftakt steht frei auf der Seite. Nur das Faktenband am
   Fuss traegt Farbe und laeuft dafuer ueber die volle Fensterbreite. */
.kx-panel{position:relative;isolation:isolate;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(22px,2.8vw,44px) clamp(26px,3.6vw,56px);align-items:center}
/* Das Wasserzeichen sitzt in der freien Flaeche unter der Aussage, nicht am
   Kartenfuss - dort lag inzwischen das blaue Band darueber. */
.kx-mark{display:none}
.kx-mark svg{width:100%;height:auto;display:block}
/* Die Eckdaten sitzen als Markenband am Fuss der Karte - vorher war der ganze
   Block weiss und ohne Farbe. Die Regel fuer den Textcontainer muss auf
   .kf-txt zielen, nicht auf jedes span: sonst erbt auch die Icon-Kachel die
   graue Schriftfarbe und die Zeichnung verschwindet. */
/* Das Band bricht aus dem Raster aus und laeuft von Fensterkante zu
   Fensterkante. Der Kopf darunter sitzt inzwischen auf einem eingeblendeten
   Foto, daher wirkt er nicht mehr wie ein weisser Kasten dazwischen. */
.kx-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.9vw,26px);
  margin:clamp(20px,2.4vw,32px) calc(-1 * var(--edge)) 0;
  padding:clamp(18px,2vw,24px) var(--edge);
  background:var(--midnight) url(../img/bg-field-1600.webp) center/cover no-repeat}
.kx-facts li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:center}
.kf-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;
  background:rgba(255,255,255,.12);color:var(--sky)}
.kf-ic svg{width:18px;height:18px}
.kx-facts b{display:block;color:#fff;font-weight:600;font-size:.94rem;letter-spacing:-.014em}
.kf-txt{display:block}
.kf-txt small{display:block;margin-top:2px;color:rgba(255,255,255,.6);
  font-size:.81rem;line-height:1.45}
.kx-claim{font-size:clamp(1.18rem,1.9vw,1.62rem);line-height:1.3;letter-spacing:-.024em;
  font-weight:300;color:var(--text);max-width:24ch;text-wrap:balance}
.kx-claim em{font-style:italic}
.kx-claim strong{color:var(--midnight);font-weight:600}
/* Der Fliesstext daneben bekommt eine Markenschiene und ein Label - als
   blanker Absatz stand er zu nackt neben der grossen Aussage. */
.kx-open-b{display:grid;gap:12px;padding:2px 0 2px clamp(16px,1.8vw,24px);
  border-left:2px solid var(--royal);align-self:center;margin-top:0}
.kx-open-b .eyebrow{margin-bottom:2px}
.kx-open-b .eyebrow::before{display:none}
.kx-open-b p{color:var(--text);font-size:.95rem;line-height:1.64}
.kx-open-b strong{color:var(--midnight);font-weight:600}

/* ---- Kapitel als Filmstreifen ----
   Statt Text links / Bild rechts: das Foto laeuft randlos ueber die volle
   Breite, Nummer und Schlagzeile stehen darauf, der Fliesstext folgt darunter
   im Zweispalter. Das ist der Gegenentwurf zum strengen Dossier der
   Leistungsseiten - und wiederholt nicht den Aufbau des Seitenkopfs, weil die
   Streifen flacher sind und die Nummer traegt. */
.kx-spread{padding-block:0 clamp(44px,5.2vw,86px);overflow:hidden}
/* Kapitel ohne Foto: Randnummer, Kopf und Text im Raster - ruhiger Gegenpol
   zum einen Kapitel, das den Filmstreifen traegt. */
.kx-spread.nofig{padding-block:clamp(44px,5.2vw,86px)}
.kx-spread.nofig .ks-body{padding-top:0}
.ks-media{position:relative;isolation:isolate;overflow:hidden;background:var(--midnight);
  min-height:clamp(260px,29vw,400px);display:flex;align-items:flex-end;
  padding-block:clamp(26px,3vw,42px)}
.ks-media img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;
  object-fit:cover;object-position:center 38%;
  transform:scale(1.03);transition:transform 14s linear}
.kx-spread:hover .ks-media img{transform:scale(1.08)}
.ks-media::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(0deg,rgba(8,26,46,.94) 0%,rgba(8,26,46,.8) 30%,rgba(8,26,46,.42) 62%,rgba(8,26,46,.3) 100%),
             linear-gradient(97deg,rgba(8,26,46,.7) 0%,rgba(8,26,46,.46) 40%,rgba(8,26,46,.14) 72%,transparent 100%)}
.ks-head{position:relative;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(14px,2vw,30px);align-items:end;width:100%}
.kx-spread.flip .ks-media::before{
  background:linear-gradient(0deg,rgba(8,26,46,.94) 0%,rgba(8,26,46,.8) 30%,rgba(8,26,46,.42) 62%,rgba(8,26,46,.3) 100%),
             linear-gradient(263deg,rgba(8,26,46,.7) 0%,rgba(8,26,46,.46) 40%,rgba(8,26,46,.14) 72%,transparent 100%)}
.kx-spread.flip .ks-head{grid-template-columns:minmax(0,1fr) auto;text-align:right;
  justify-items:end}
.kx-spread.flip .ks-no{grid-column:2;grid-row:1}
.kx-spread.flip .ks-head-t{grid-column:1;grid-row:1}
.kx-spread.flip .eyebrow{flex-direction:row-reverse}
.kx-spread.flip .ks-ic{justify-self:end}
.ks-no{font-size:clamp(2.4rem,5vw,4.4rem);font-weight:300;line-height:.8;
  letter-spacing:-.05em;color:rgba(255,255,255,.28)}
.ks-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;
  background:rgba(255,255,255,.14);color:var(--sky);margin-bottom:16px;
  transition:background .4s var(--ease),color .4s var(--ease)}
.ks-ic svg{width:22px;height:22px}
.kx-spread:hover .ks-ic{background:var(--royal);color:#fff}
.ks-head .eyebrow{color:var(--sky)}
.ks-head .eyebrow::before{background:var(--sky)}
.ks-head .h2{color:#fff;margin-top:12px;max-width:26ch;
  font-size:clamp(1.42rem,2.5vw,2.15rem);line-height:1.12;letter-spacing:-.03em}
.kx-spread.flip .ks-head .h2{margin-left:auto}

.ks-body{columns:2;column-gap:clamp(28px,4vw,72px);
  padding-top:clamp(28px,3.4vw,48px);max-width:min(var(--max),1180px)}
.ks-body p{break-inside:avoid;color:var(--text);font-size:.99rem;line-height:1.72}
.ks-body p + p{margin-top:16px}
.ks-body strong{color:var(--midnight);font-weight:600}

/* Kapitel auf der Markenflaeche */
.kx-spread.navy{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  color:#fff}
@media (min-width:1100px){.kx-spread.navy{background-image:url(../img/bg-field-3000.webp)}}
@media (max-width:900px){.kx-spread.navy{background-attachment:scroll}}
.kx-spread.navy .ks-body p{color:rgba(255,255,255,.8)}
.kx-spread.navy .ks-body strong{color:#fff}

@media (max-width:820px){
  .ks-body{columns:1}
  .ks-head,.kx-spread.flip .ks-head{grid-template-columns:minmax(0,1fr);gap:10px;
    text-align:left;justify-items:start}
  .kx-spread.flip .ks-no,.kx-spread.flip .ks-head-t{grid-column:1}
  .kx-spread.flip .ks-head .h2{margin-left:0}
  .kx-spread.flip .ks-ic{justify-self:start}
}

/* ---- Redaktionelle Liste ---- */
.kx-ul{display:grid;margin-top:clamp(24px,3vw,40px);border-top:1px solid var(--hair)}
.kx-li{display:grid;grid-template-columns:auto minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(18px,3vw,52px);align-items:start;
  padding:clamp(22px,2.6vw,34px) clamp(8px,1vw,14px);
  border-bottom:1px solid var(--hair);position:relative;
  transition:background .4s var(--ease),padding-left .4s var(--ease)}
.kx-li:hover{background:#fff;padding-left:clamp(16px,1.8vw,26px)}
.kx-li-n{font-size:.76rem;font-weight:700;letter-spacing:.12em;color:var(--bluesmoke);padding-top:5px}
.kx-li-b b{display:block;color:var(--midnight);font-weight:600;
  font-size:clamp(1.05rem,1.5vw,1.28rem);letter-spacing:-.018em}
.kx-li-b p{margin-top:9px;color:var(--text);font-size:.97rem;line-height:1.62}
.kx-li-note{color:var(--muted);font-size:.9rem;line-height:1.6;padding-top:4px}

/* ---- Miszkas Geschichte ---- */
/* .sec.kx-story statt .kx-story: der Karriere-Ton setzt .area-karriere .sec auf
   transparent - mit nur einer Klasse waere dieser Grund dagegen unterlegen. */
/* ---- Miszkas Geschichte auf hellem Markenblau ----
   Portrait links in der Kachel, Zitat und Akkordeon rechts daneben. */
.sec.kx-story{background:var(--tint);color:var(--midnight);
  padding-block:clamp(40px,4.4vw,66px)}
.sec.kx-story blockquote{color:var(--midnight)}
.sec.kx-story .kx-story-m b{color:var(--midnight)}
.sec.kx-story .kx-story-m span{color:var(--text)}
.sec.kx-story .kx-acc{border-top-color:var(--bluesmoke)}
.sec.kx-story .kx-acc .acc-item{border-bottom-color:var(--bluesmoke)}
.sec.kx-story .kx-acc .acc-btn b{color:var(--midnight)}
.sec.kx-story .kx-acc .acc-btn .pm{border-color:var(--bluesmoke);color:var(--midnight)}
.sec.kx-story .kx-acc .acc-item.open .acc-btn .pm{background:var(--royal);border-color:var(--royal);color:#fff}
.sec.kx-story .kx-acc .acc-body p{color:var(--text)}
.sec.kx-story .kx-acc .acc-body strong{color:var(--midnight)}
.kx-story-in{display:grid;grid-template-columns:clamp(170px,18vw,250px) minmax(0,1fr);
  gap:clamp(24px,3.4vw,54px);align-items:start}
.kx-portrait{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/5;
  background:var(--bluesmoke)}
.kx-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 18%;
  display:block}
.kx-story-b blockquote{color:#fff;font-weight:300;letter-spacing:-.026em;
  font-size:clamp(1.2rem,2vw,1.72rem);line-height:1.3;max-width:30ch;text-wrap:balance}
.kx-story-m{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:20px}
.kx-story-m b{color:#fff;font-weight:500;font-size:.9rem}
.kx-story-m span{color:rgba(255,255,255,.52);font-size:.83rem}
.kx-acc{margin-top:clamp(24px,2.8vw,36px);border-top:1px solid rgba(255,255,255,.18)}
.kx-acc .acc-item{border-bottom:1px solid rgba(255,255,255,.18)}
.kx-acc .acc-btn{padding:20px 0}
.kx-acc .acc-btn b{color:#fff;font-size:.98rem;font-weight:500;letter-spacing:-.012em}
.kx-acc .acc-btn .pm{border-color:rgba(255,255,255,.28);color:#fff}
.kx-acc .acc-item.open .acc-btn .pm{background:#fff;border-color:#fff;color:var(--midnight)}
.kx-acc .acc-body p{color:rgba(255,255,255,.76);font-size:.95rem;line-height:1.7;max-width:70ch}
.kx-acc .acc-body p + p{padding-top:14px}

/* ---- Zweispalter fuer Kopf + Text ---- */
.kx-2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(24px,4vw,68px);align-items:start}
.kx-2col .h2{margin-top:14px;max-width:20ch}
.kx-2col-b{display:grid;gap:14px;padding-top:clamp(6px,1.6vw,26px)}
.kx-2col p{color:var(--text);font-size:1rem;line-height:1.7}

/* ---- Gesichter ---- */
.kx-faces{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(12px,1.6vw,20px);margin-top:clamp(28px,3.4vw,48px);max-width:840px}
.kx-face{margin:0}
.kx-face img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 14%;
  display:block;border-radius:14px;background:var(--tint)}
.kx-face figcaption{margin-top:9px;font-size:.81rem;color:var(--muted)}

/* ---- Randlose Bildstrecke ---- */
.kx-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;
  padding:clamp(26px,3.2vw,44px) var(--edge) 6px;scroll-padding-inline:var(--edge);
  -ms-overflow-style:none;scrollbar-width:none}
.kx-strip::-webkit-scrollbar{display:none}
.kx-shot{margin:0;flex:0 0 clamp(240px,29vw,400px);scroll-snap-align:start;
  border-radius:14px;overflow:hidden;background:var(--tint);position:relative}
.kx-shot img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.2s var(--ease)}
.kx-shot:hover img{transform:scale(1.07)}
/* ---- Blaettern in der Bildstrecke ---- */
/* Nur die Pfeile, ohne Kreis - die Kreise wirkten an dieser Stelle wie Knoepfe
   aus einem anderen Bauteil. */
.kx-nav{display:flex;gap:18px;margin-top:10px}
.kx-b{width:auto;height:auto;padding:4px;border:0;background:none;
  color:var(--midnight);display:grid;place-items:center;
  transition:color .3s var(--ease),transform .35s var(--ease),opacity .3s}
.kx-b svg{width:26px;height:26px;stroke-width:1.5}
.kx-b:hover{color:var(--royal)}
.kx-b:first-child:hover{transform:translateX(-3px)}
.kx-b:last-child:hover{transform:translateX(3px)}

/* ---- Chancengleichheit ---- */
.kx-equal{padding-block:clamp(30px,3.4vw,50px)}
.kx-equal p{color:var(--muted);font-size:.9rem;line-height:1.7;max-width:96ch;
  padding-top:18px;border-top:1px solid var(--hair)}

/* ---- Weiter in der Strecke ---- */
.kx-nx-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(12px,1.6vw,20px);margin-top:clamp(24px,3vw,38px)}
.kx-nx{position:relative;display:grid;align-content:end;overflow:hidden;
  border-radius:14px;min-height:clamp(220px,24vw,300px);padding:clamp(20px,2.2vw,28px);
  background:var(--midnight);isolation:isolate;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.kx-nx img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  transform:scale(1.03);transition:transform 1.3s var(--ease)}
.kx-nx::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(0deg,rgba(8,26,46,.92) 0%,rgba(8,26,46,.62) 44%,rgba(8,26,46,.3) 100%)}
.kx-nx:hover{transform:translateY(-4px);box-shadow:0 34px 68px -34px rgba(8,26,46,.6)}
.kx-nx:hover img{transform:scale(1.08)}
.kx-nx.jobs{background:var(--royal)}
.kx-nx.jobs::before{background:linear-gradient(0deg,rgba(15,55,100,.5),rgba(15,55,100,0))}
.kx-nx-e{display:block;font-size:.66rem;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--sky)}
.kx-nx-b b{display:block;margin-top:8px;color:#fff;font-weight:600;
  font-size:clamp(1.06rem,1.5vw,1.3rem);letter-spacing:-.02em}
.kx-nx-s{display:block;margin-top:7px;color:rgba(255,255,255,.76);font-size:.9rem;line-height:1.5}
.kx-nx-a{position:absolute;right:clamp(18px,2vw,26px);top:clamp(18px,2vw,26px);
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.4);color:#fff;
  transition:background .4s var(--ease),border-color .4s,transform .4s var(--ease)}
.kx-nx-a svg{width:16px;height:16px}
.kx-nx:hover .kx-nx-a{background:#fff;border-color:#fff;color:var(--midnight);transform:translateX(3px)}

@media (max-width:1000px){
  .kx-spread-in,.kx-spread.flip .kx-spread-in{grid-template-columns:auto minmax(0,1fr)}
  .kx-fig,.kx-spread.flip .kx-fig{grid-column:1/-1;grid-row:auto;margin:22px 0 0}
  .kx-li{grid-template-columns:auto minmax(0,1fr)}
  .kx-li-note{grid-column:2;padding-top:12px}
  .kx-nx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .kx-panel,.kx-2col{grid-template-columns:minmax(0,1fr);gap:26px}
  .kx-mark{display:none}
  .kx-facts{grid-template-columns:minmax(0,1fr);gap:16px}
  .kx-story-in{grid-template-columns:minmax(0,1fr)}
  .kx-cover{min-height:clamp(400px,72vw,540px)}
}
@media (max-width:640px){
  .kx-faces{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kx-nx-grid{grid-template-columns:minmax(0,1fr)}
}

/* ---- Icons in der Kontaktliste ---- */
.ico-list a,.ico-list div{grid-template-columns:34px minmax(0,1fr);align-items:start;gap:14px}
.il-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;
  background:rgba(24,78,139,.08);color:var(--royal);margin-top:2px;
  transition:background .3s var(--ease),color .3s var(--ease)}
.il-ic svg{width:18px;height:18px}
.ico-list a:hover .il-ic{background:var(--royal);color:#fff}
.ico-list span{display:grid;gap:4px}

/* ---- Icon im Spread-Kopf ---- */
.kx-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;
  background:rgba(24,78,139,.08);color:var(--royal);margin-bottom:18px;
  transition:background .35s var(--ease),color .35s var(--ease)}
.kx-ic svg{width:22px;height:22px}
.kx-spread:hover .kx-ic{background:var(--royal);color:#fff}

/* ---- Spread auf der Markenflaeche ---- */
.kx-spread.navy{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  color:#fff}
@media (min-width:1100px){.kx-spread.navy{background-image:url(../img/bg-field-3000.webp)}}
@media (max-width:900px){.kx-spread.navy{background-attachment:scroll}}
.kx-spread.navy .kx-no{color:rgba(255,255,255,.34)}
.kx-spread.navy .eyebrow{color:var(--sky)}
.kx-spread.navy .eyebrow::before{background:var(--sky)}
.kx-spread.navy .h2{color:#fff}
.kx-spread.navy .kx-txt p{color:rgba(255,255,255,.8)}
.kx-spread.navy .kx-txt strong{color:#fff}
.kx-spread.navy .kx-ic{background:rgba(255,255,255,.12);color:var(--sky)}
.kx-spread.navy:hover .kx-ic{background:var(--royal);color:#fff}

/* ---- Redaktionelle Liste auf der Markenflaeche ---- */
.kx-listing.navy{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  color:#fff}
@media (min-width:1100px){.kx-listing.navy{background-image:url(../img/bg-field-3000.webp)}}
@media (max-width:900px){.kx-listing.navy{background-attachment:scroll}}
.kx-listing.navy .eyebrow{color:var(--sky)}
.kx-listing.navy .eyebrow::before{background:var(--sky)}
.kx-listing.navy .h2{color:#fff}
.kx-listing.navy .head .sub{color:rgba(255,255,255,.78)}
.kx-listing.navy .kx-ul{border-top-color:rgba(255,255,255,.2)}
.kx-listing.navy .kx-li{border-bottom-color:rgba(255,255,255,.2)}
.kx-listing.navy .kx-li:hover{background:rgba(255,255,255,.07)}
.kx-listing.navy .kx-li-n{color:rgba(255,255,255,.34)}
.kx-listing.navy .kx-li-b b{color:#fff}
.kx-listing.navy .kx-li-b p{color:rgba(255,255,255,.78)}
.kx-listing.navy .kx-li-note{color:rgba(255,255,255,.52)}

/* Icon in der Liste */
.kx-li{grid-template-columns:auto 42px minmax(0,1.4fr) minmax(0,1fr)}
.kx-li-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;
  background:rgba(24,78,139,.08);color:var(--royal);
  transition:background .35s var(--ease),color .35s var(--ease)}
.kx-li-ic svg{width:21px;height:21px}
.kx-li:hover .kx-li-ic{background:var(--royal);color:#fff}
.kx-listing.navy .kx-li-ic{background:rgba(255,255,255,.12);color:var(--sky)}
.kx-listing.navy .kx-li:hover .kx-li-ic{background:var(--royal);color:#fff}
@media (max-width:1000px){
  .kx-li{grid-template-columns:auto 42px minmax(0,1fr)}
  .kx-li-note{grid-column:3}
}
@media (max-width:620px){
  .kx-li{grid-template-columns:auto minmax(0,1fr)}
  .kx-li-ic{display:none}
  .kx-li-note{grid-column:2}
}

/* ---- Vorteile als Baender (Karriere) ----
   Gleiche Mechanik wie die Leistungsuebersicht, nur mit Teamfotos im Grund.
   Statt Pfeil ein Plus, das sich beim Aufklappen dreht. */
/* Fotos in den Baendern sichtbar lassen: links dunkel fuer den Text, rechts
   tritt das Bild deutlich hervor. */
/* Geschlossene Baender ohne Foto (in 150px erkennt man niemanden), das Foto
   erscheint erst im aufgeklappten Band in voller Hoehe. */
/* Baender ohne Foto: die Markenflaeche traegt, der offene Eintrag bekommt
   einen weichen Lichtschimmer von links und eine blaue Kante. */
/* Aufhellung mit Weiss liess die Flaeche grau wirken - stattdessen Blau:
   der offene Eintrag wird eine Stufe heller und bleibt im Markenton. */
.kx-bands .band{background:transparent}
.kx-bands .band::before{background:transparent}
.kx-bands .band.on{background:linear-gradient(90deg,rgba(25,94,160,.55) 0%,rgba(25,94,160,.28) 44%,rgba(25,94,160,.1) 100%)}
.kx-bands .band.on::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--sky)}
.bd-plus{grid-column:4;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,255,255,.32);color:#fff;
  transition:background .3s var(--ease),border-color .3s,transform .4s var(--ease),color .3s}
.bd-plus svg{width:16px;height:16px;transition:transform .5s var(--ease)}
.band.on .bd-plus{background:var(--royal);border-color:var(--royal);
  transition:background .46s var(--ease) var(--in,0s),border-color .46s var(--in,0s)}
.band.on .bd-plus svg{transform:rotate(135deg)}
.area-karriere 
/* Randnotiz im Textblock statt eigener Abschnitt - allein stehend wirkte der
   Chancengleichheits-Absatz verloren. */
.kx-note{margin-top:20px;padding-top:16px;border-top:1px solid var(--hair);
  color:var(--muted);font-size:.87rem;line-height:1.66}

/* ---- Offene Positionen ---- */
.jb-open{position:relative;isolation:isolate;overflow:hidden;background:var(--midnight);
  color:#fff;padding-block:clamp(48px,6vw,92px) clamp(26px,3vw,40px)}
.jb-bg{position:absolute;inset:0;z-index:-2}
.jb-bg img{width:100%;height:100%;object-fit:cover;display:block;opacity:.6;object-position:center 62%}
.jb-open::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(8,26,46,.95) 0%,rgba(8,26,46,.88) 40%,rgba(8,26,46,.6) 72%,rgba(8,26,46,.5) 100%)}
.jb-status{max-width:none}
.jb-status b,.jb-status p{max-width:56ch}
.jb-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--sky);
  margin-right:9px;vertical-align:middle;
  box-shadow:0 0 0 0 rgba(93,169,233,.6);animation:jbp 2.6s ease-out infinite}
@keyframes jbp{to{box-shadow:0 0 0 12px rgba(93,169,233,0)}}
.jb-status-l{font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.62)}
.jb-status b{display:block;margin-top:14px;color:#fff;font-weight:600;
  font-size:clamp(1.3rem,2.2vw,1.9rem);letter-spacing:-.026em;line-height:1.16}
.jb-status p{margin-top:14px;color:rgba(255,255,255,.8);font-size:1rem;line-height:1.68}
.jb-status .pactions{margin-top:24px}

.jb-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,2vw,26px);margin-top:clamp(24px,3vw,40px)}
.jb-step{position:relative;padding:clamp(22px,2.4vw,30px);border-radius:14px;
  background:#fff;border:1px solid var(--hair);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .35s}
.jb-step:hover{transform:translateY(-4px);border-color:var(--bluesmoke);
  box-shadow:0 28px 58px -34px rgba(15,45,75,.42)}
.jb-no{position:absolute;right:clamp(18px,2vw,24px);top:clamp(18px,2vw,24px);
  font-size:.74rem;font-weight:700;letter-spacing:.12em;color:var(--bluesmoke)}
.jb-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;
  background:rgba(24,78,139,.08);color:var(--royal);
  transition:background .35s var(--ease),color .35s var(--ease)}
.jb-ic svg{width:22px;height:22px}
.jb-step:hover .jb-ic{background:var(--royal);color:#fff}
.jb-step b{display:block;margin-top:18px;color:var(--midnight);font-weight:600;
  font-size:1.08rem;letter-spacing:-.018em}
.jb-step p{margin-top:9px;color:var(--text);font-size:.95rem;line-height:1.62}
@media (max-width:860px){.jb-steps{grid-template-columns:minmax(0,1fr)}}

/* ---- Haeufige Fragen auf der Karriereseite ---- */
.sec.kx-faq{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  color:#fff}
@media (min-width:1100px){.sec.kx-faq{background-image:url(../img/bg-field-3000.webp)}}
@media (max-width:900px){.sec.kx-faq{background-attachment:scroll}}
.kx-faq .eyebrow{color:var(--sky)}
.kx-faq .eyebrow::before{background:var(--sky)}
.kx-faq .h2{color:#fff;margin-top:14px;max-width:20ch}
.kx-faq .sub{color:rgba(255,255,255,.76)}
.kx-faq .tlink{color:var(--sky)}
.kx-faq .kx-acc{margin-top:0}

/* ---- Arbeiten: Auftakt als Kapitelregister ---- */
.kx-lead>.wrap{display:grid;gap:clamp(18px,2.2vw,30px)}
.kx-claim.big{max-width:30ch;font-size:clamp(1.42rem,2.8vw,2.45rem);line-height:1.2}
.kx-lead-s{max-width:60ch;color:var(--text);font-size:1.02rem;line-height:1.68}
.kx-chs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(12px,1.6vw,20px);margin-top:clamp(14px,2vw,26px)}
.kx-ch{position:relative;display:grid;align-content:start;
  padding:clamp(22px,2.4vw,30px);border-radius:14px;
  background:#fff;border:1px solid var(--hair);overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .35s}
.kx-ch::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:var(--royal);transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--ease)}
.kx-ch:hover{transform:translateY(-4px);border-color:var(--bluesmoke);
  box-shadow:0 28px 58px -34px rgba(15,45,75,.42)}
.kx-ch:hover::before{transform:scaleX(1);transform-origin:left;transition:transform .6s var(--ease)}
.kx-ch-no{position:absolute;right:clamp(18px,2vw,24px);top:clamp(18px,2vw,24px);
  font-size:.74rem;font-weight:700;letter-spacing:.12em;color:var(--bluesmoke)}
.kx-ch-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;
  background:rgba(24,78,139,.08);color:var(--royal);
  transition:background .35s var(--ease),color .35s var(--ease)}
.kx-ch-ic svg{width:22px;height:22px}
.kx-ch:hover .kx-ch-ic{background:var(--royal);color:#fff}
.kx-ch b{display:block;margin-top:18px;color:var(--midnight);font-weight:600;
  font-size:1.06rem;letter-spacing:-.018em}
.kx-ch-s{display:block;margin-top:8px;color:var(--text);font-size:.94rem;line-height:1.58}
.kx-ch-a{display:grid;place-items:center;width:20px;height:20px;margin-top:16px;
  color:var(--royal);opacity:0;transform:translateX(-6px);
  transition:opacity .35s var(--ease),transform .35s var(--ease)}
.kx-ch-a svg{width:18px;height:18px}
.kx-ch:hover .kx-ch-a{opacity:1;transform:none}
@media (max-width:860px){.kx-chs{grid-template-columns:minmax(0,1fr)}}

/* ---- Leben: das Jahr als Schiene ----
   Die Anlaesse aus dem Text als Stationen, nicht als Galerie. Die Schiene laeuft
   randlos, die Linie verbindet die Stationen. */
.sec.kx-year{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  color:#fff}
@media (min-width:1100px){.sec.kx-year{background-image:url(../img/bg-field-3000.webp)}}
@media (max-width:900px){.sec.kx-year{background-attachment:scroll}}
.kx-year .eyebrow{color:var(--sky)}
.kx-year .eyebrow::before{background:var(--sky)}
.kx-year .h2{color:#fff}
.kx-year .kx-2col p{color:rgba(255,255,255,.8)}
.kx-year .kx-b{background:transparent;color:#fff}
.kx-year .kx-b:hover{color:var(--sky)}

.yr-rail{display:flex;gap:clamp(14px,2vw,26px);overflow-x:auto;scroll-behavior:smooth;
  scroll-snap-type:x proximity;position:relative;
  padding:clamp(30px,3.6vw,50px) var(--edge) 6px;scroll-padding-inline:var(--edge);
  -ms-overflow-style:none;scrollbar-width:none}
.yr-rail::-webkit-scrollbar{display:none}
.yr-st{position:relative;flex:0 0 clamp(230px,26vw,330px);scroll-snap-align:start;
  padding-top:clamp(22px,2.4vw,32px)}
/* Verbindungslinie mit Punkt je Station */
.yr-st::before{content:"";position:absolute;left:0;right:calc(-1 * clamp(14px,2vw,26px));top:6px;
  height:1px;background:rgba(255,255,255,.24)}
.yr-st::after{content:"";position:absolute;left:0;top:2px;width:9px;height:9px;border-radius:50%;
  background:var(--sky);box-shadow:0 0 0 4px rgba(93,169,233,.18)}
.yr-st:last-child::before{right:0}
.yr-img{margin:0 0 16px;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.08)}
.yr-img img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.2s var(--ease)}
.yr-st:hover .yr-img img{transform:scale(1.07)}
.yr-st b{display:block;color:#fff;font-weight:600;font-size:1.02rem;letter-spacing:-.018em}


/* Das Faktenband schliesst den Auftakt buendig ab - darunter braucht es keinen
   zweiten Abschnittsabstand und keine Haarlinie mehr. */


/* ---- Karriere: drei hochkante Aufnahmen neben dem Text ---- */
.gs-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.4vw,16px);
  align-items:start}
.gs-f{margin:0;border-radius:12px;overflow:hidden;background:var(--tint)}
.gs-f img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.2s var(--ease)}
.gs-f:hover img{transform:scale(1.07)}
.gs-f:nth-child(2){transform:translateY(clamp(14px,2.6vw,34px))}

/* ---- Drei Angebote ---- */
.pk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(12px,1.6vw,20px);margin-top:clamp(28px,3.4vw,48px)}
.pk{padding:clamp(22px,2.4vw,30px);border-radius:14px;background:#fff;
  border:1px solid var(--hair);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .35s}
.pk:hover{transform:translateY(-4px);border-color:var(--bluesmoke);
  box-shadow:0 28px 58px -34px rgba(15,45,75,.42)}
.pk-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;
  background:rgba(24,78,139,.08);color:var(--royal);
  transition:background .35s var(--ease),color .35s var(--ease)}
.pk-ic svg{width:22px;height:22px}
.pk:hover .pk-ic{background:var(--royal);color:#fff}
.pk b{display:block;margin-top:18px;color:var(--midnight);font-weight:600;
  font-size:1.06rem;letter-spacing:-.018em}
.pk p{margin-top:9px;color:var(--text);font-size:.95rem;line-height:1.62}

/* ---- Weiterbildungen ---- */
.wb-fig{margin:0;border-radius:14px;overflow:hidden;background:var(--tint);
  box-shadow:0 34px 74px -48px rgba(15,45,75,.46)}
.wb-fig img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.3s var(--ease)}
.wb-fig:hover img{transform:scale(1.06)}

/* ---- Unsere Teams ---- */
.tm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(12px,1.6vw,20px);margin-top:clamp(28px,3.4vw,48px)}
.tm{display:grid;border-radius:14px;overflow:hidden;background:#fff;
  border:1px solid var(--hair);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .35s}
.tm:hover{transform:translateY(-4px);border-color:var(--bluesmoke);
  box-shadow:0 28px 58px -34px rgba(15,45,75,.42)}
.tm-im{display:block;overflow:hidden;background:var(--tint)}
.tm-im img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.2s var(--ease)}
.tm:hover .tm-im img{transform:scale(1.07)}
.tm-b{display:block;padding:clamp(18px,2vw,24px);position:relative}
.tm-b b{display:block;color:var(--midnight);font-weight:600;font-size:1.06rem;
  letter-spacing:-.018em}
.tm-r{display:block;margin-top:7px;color:var(--royal);font-size:.9rem;font-weight:500}
.tm-s{display:block;margin-top:9px;color:var(--text);font-size:.92rem;line-height:1.55}
.tm-a{position:absolute;right:clamp(16px,1.8vw,22px);top:clamp(18px,2vw,24px);
  width:18px;height:18px;display:grid;place-items:center;color:var(--royal);
  opacity:0;transform:translateX(-6px);
  transition:opacity .35s var(--ease),transform .35s var(--ease)}
.tm-a svg{width:18px;height:18px}
.tm:hover .tm-a{opacity:1;transform:none}

/* ---- Initiativbewerbung ---- */
.kx-apply>.wrap{display:grid;gap:22px;justify-items:start}
.kx-apply p{max-width:60ch;color:var(--text);font-size:clamp(1.02rem,1.5vw,1.2rem);
  line-height:1.6}

/* ---- Chancengleichheit unter dem FAQ ---- */
/* Die Haarlinie laeuft ueber die ganze Satzbreite bis an den Rand, der Satz
   selbst darf laenger laufen als der Fliesstext darueber. */
.kx-equalrow{margin-top:clamp(24px,2.6vw,34px)}
.kx-faq .kx-equal{padding:18px 0 0;border-top:1px solid rgba(255,255,255,.2);
  color:rgba(255,255,255,.58);font-size:.87rem;line-height:1.66;max-width:none}

@media (max-width:860px){
  .pk-grid,.tm-grid{grid-template-columns:minmax(0,1fr)}
  .gs-trio{gap:8px}
}

/* ---- Weiterbildungsbereiche als Stichpunkte ---- */
/* Keine Pillen: die runden Kapseln fielen aus der sonst kantigen Formensprache.
   Stattdessen eine Zeile mit Trennstrichen und freistehenden Icons. */
.wb-intro{margin-top:clamp(20px,2.4vw,28px);color:var(--midnight);font-weight:600;
  font-size:.95rem;letter-spacing:-.008em}
/* Untereinander statt nebeneinander: als Zeile mit Trennstrichen sah es aus
   wie eine Tabelle ohne Inhalt. */
.wb-list{display:grid;gap:0;margin-top:clamp(12px,1.4vw,16px);max-width:34ch}
.wb-list li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:14px;
  align-items:center;padding:13px 0;border-bottom:1px solid var(--hair)}
.wb-list li:first-child{border-top:1px solid var(--hair)}
.wb-ic{display:grid;place-items:center;width:24px;height:24px;color:var(--royal);
  transition:transform .3s var(--ease)}
.wb-ic svg{width:21px;height:21px}
.wb-list li:hover .wb-ic{transform:translateX(2px)}
.wb-list b{font-weight:600;color:var(--midnight);font-size:.96rem;letter-spacing:-.01em}
.area-karriere .sec.kx-open{padding-bottom:0}

/* ---- Standort (Arbeiten) ---- */
.std-adr{display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;align-items:center;
  margin-top:clamp(20px,2.4vw,30px);padding-top:clamp(18px,2vw,24px);
  border-top:1px solid var(--hair)}
.std-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;
  background:rgba(24,78,139,.08);color:var(--royal)}
.std-ic svg{width:19px;height:19px}
.std-adr b{display:block;color:var(--midnight);font-weight:600;font-size:1rem}
.std-adr small{display:block;margin-top:3px;color:var(--muted);font-size:.89rem}
.std-fig{margin:0;border-radius:14px;overflow:hidden;background:var(--tint);
  box-shadow:0 34px 74px -48px rgba(15,45,75,.46)}
.std-fig img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform 1.3s var(--ease)}
.std-fig:hover img{transform:scale(1.06)}

/* ---- Aufklappbarer Zusatztext (Arbeiten) ---- */
.kx-more .acc{border-top:1px solid var(--hair)}
.kx-more .acc-btn b{font-size:1.04rem}

/* ---- Kopf der Vorteils-Baender ----
   Heller Grund, ausserhalb des Bandblocks. */
.kx-bandhead{background:var(--smoke);padding-block:clamp(48px,5.4vw,84px) clamp(30px,3.4vw,50px)}
.kx-bandhead .head{padding-top:0;border-top:0;margin-bottom:0}

/* ---- Kontakt: Seitenkopf im Stil von Ueber uns ---- */
.kt-hero h1{max-width:18ch}
.kt-facts a{display:grid;gap:4px}
.kt-facts a:hover b{color:#fff;text-decoration:underline;text-underline-offset:4px}

/* Kopf eines bildlosen Kapitels steht im Raster, nicht auf einem Foto */
.kx-spread.nofig .ks-head{position:relative;z-index:1;margin-bottom:clamp(20px,2.4vw,32px)}
.kx-spread.nofig .ks-no{color:var(--bluesmoke)}
.kx-spread.nofig .ks-head .eyebrow{color:var(--royal)}
.kx-spread.nofig .ks-head .eyebrow::before{background:var(--royal)}
.kx-spread.nofig .ks-head .h2{color:var(--midnight)}
.kx-spread.nofig .ks-ic{background:rgba(24,78,139,.08);color:var(--royal)}
.kx-spread.nofig:hover .ks-ic{background:var(--royal);color:#fff}




/* Chancengleichheit im Statusband - klein und zurueckgenommen */
/* Klein und ueber die volle Breite - nicht in der schmalen Statusspalte, sonst
   laeuft der Absatz ueber fuenf Zeilen. */
/* .jb-status .jb-equal statt nur .jb-equal: sonst gewinnt .jb-status p mit
   seiner hoeheren Spezifitaet und der Absatz bleibt gross und schmal. */
/* Sitzt an der Unterkante des Bandes. Linie und Text bleiben auf Rasterbreite
   - ueber die volle Fensterbreite gezogen wirkte die Linie wie ein Fremdkoerper. */
.jb-status .jb-equal{margin:clamp(46px,5.4vw,80px) 0 0;
  padding:18px 0 0;
  border-top:1px solid rgba(255,255,255,.2);
  color:rgba(255,255,255,.55);font-size:.79rem;line-height:1.62;
  max-width:none;width:100%}

/* ================= Offene Positionen: Abschluss =========================
   Quer liegende Kontaktkarte: Foto links, Frage, Satz und Adresse rechts. */
.jb-ask{padding-block:clamp(52px,6vw,100px)}
.ask-card{display:grid;grid-template-columns:minmax(0,.64fr) minmax(0,1fr);
  align-items:stretch;border-radius:14px;overflow:hidden;
  background:#fff;border:1px solid var(--hair);
  box-shadow:0 34px 78px -50px rgba(15,45,75,.44);
  transition:border-color .4s var(--ease),box-shadow .45s var(--ease)}
.ask-card:hover{border-color:var(--bluesmoke);box-shadow:0 42px 90px -46px rgba(15,45,75,.5)}
.ask-im{margin:0;overflow:hidden;background:var(--tint)}
.ask-im img{width:100%;height:100%;min-height:clamp(230px,24vw,330px);object-fit:cover;
  display:block;transform:scale(1.02);transition:transform 1.3s var(--ease)}
.ask-card:hover .ask-im img{transform:scale(1.06)}
.ask-b{padding:clamp(26px,3vw,44px);display:grid;align-content:center}
.ask-b .h2{margin-top:14px;max-width:18ch;font-size:clamp(1.34rem,2.2vw,1.95rem)}
.ask-b p{margin-top:14px;color:var(--text);font-size:.98rem;line-height:1.66;max-width:52ch}
.ask-mail{display:grid;grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"label arrow" "mail arrow";column-gap:18px;align-items:center;
  margin-top:clamp(22px,2.6vw,32px);padding-top:clamp(18px,2vw,24px);
  border-top:1px solid var(--hair);transition:border-color .4s var(--ease)}
.ask-card:hover .ask-mail{border-color:var(--bluesmoke)}
.ask-l{grid-area:label;font-size:.68rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted)}
.ask-m{grid-area:mail;display:block;margin-top:5px;color:var(--midnight);font-weight:600;
  letter-spacing:-.024em;font-size:clamp(1.06rem,1.7vw,1.44rem);
  transition:color .35s var(--ease),transform .45s var(--ease)}
.ask-mail:hover .ask-m{color:var(--royal);transform:translateX(4px)}
.ask-a{grid-area:arrow;display:grid;place-items:center;width:46px;height:46px;
  border-radius:50%;border:1px solid var(--bluesmoke);color:var(--royal);
  transition:background .4s var(--ease),border-color .4s,color .4s,transform .4s var(--ease)}
.ask-a svg{width:18px;height:18px}
.ask-mail:hover .ask-a{background:var(--royal);border-color:var(--royal);color:#fff;
  transform:translateX(3px)}
@media (max-width:820px){
  .ask-card{grid-template-columns:minmax(0,1fr)}
}

/* ================= Arbeiten: Kapitel offen und hell =====================
   Jedes Kapitel steht offen da: Randnummer mit Icon, Kopf, Text im Zweispalter
   - und darunter ein flacher, randloser Bildstreifen. Hell, ohne Klick, und
   jedes Kapitel hat sein Bild. */
/* Karten, die sich beim Scrollen stapeln: jedes Kapitel bleibt unter der
   Kopfzeile stehen, das naechste schiebt sich darueber. Jede Karte braucht
   einen eigenen, deckenden Grund - sonst scheint die darunter durch. Der
   Versatz von 22px pro Karte laesst die Kanten der liegenden Karten stehen.
   Wichtig: kein overflow:hidden an den Vorfahren, das wuerde sticky aushebeln. */
.ab-chapters{display:grid;position:relative;background:var(--smoke);
  padding-bottom:clamp(30px,4vw,64px)}
.ch{display:grid;position:sticky;background:var(--smoke);
  border-top:1px solid var(--hair);border-radius:14px 14px 0 0;
  box-shadow:0 -18px 36px -26px rgba(15,45,75,.3)}
.ch:nth-child(1){top:calc(76px + 0px);z-index:1}
.ch:nth-child(2){top:calc(76px + 34px);z-index:2}
.ch:nth-child(3){top:calc(76px + 68px);z-index:3}
.ch:nth-child(1){border-top-color:transparent;box-shadow:none}
@media (prefers-reduced-motion:reduce){.ch{position:static}}
.ch-in{display:grid;grid-template-columns:clamp(58px,7vw,96px) minmax(0,1fr) clamp(220px,29vw,410px);
  gap:clamp(18px,2.6vw,38px) clamp(20px,3vw,48px);align-items:start;
  padding-block:clamp(38px,4.4vw,70px)}
.ch-mark{display:grid;justify-items:start;gap:12px;align-content:start}
.ch-no{font-size:clamp(1.5rem,2.6vw,2.3rem);font-weight:300;line-height:1;
  letter-spacing:-.04em;color:var(--bluesmoke)}
.ch-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;
  background:rgba(24,78,139,.08);color:var(--royal);
  transition:background .35s var(--ease),color .35s var(--ease)}
.ch-ic svg{width:21px;height:21px}
.ch:hover .ch-ic{background:var(--royal);color:#fff}
.ch-t{grid-column:2;grid-row:1}
.ch-t .h2{margin-top:12px;max-width:26ch}
.ch-b{grid-column:2;grid-row:2}
/* Eine Spalte statt zwei: die Absaetze sind unterschiedlich lang, im
   Zweispalter stand links ein Block ueber neun Zeilen und rechts einer ueber
   vier - unruhig und schlecht zu lesen. Jetzt eine Spalte mit ruhiger
   Zeilenlaenge von rund 62 Zeichen. */
.ch-cols{max-width:min(100%,560px)}
.ch-cols p{color:var(--text);font-size:1rem;line-height:1.75}
.ch-cols p + p{margin-top:18px}
.ch-cols strong{color:var(--midnight);font-weight:600}
.ch-lead{color:var(--text);font-size:1.02rem;line-height:1.68;max-width:56ch}
.ch-acc{margin-top:clamp(22px,2.6vw,32px);border-top:1px solid var(--hair)}
.ch-acc .acc-btn{padding:20px 0}
.ch-acc .acc-btn b{font-size:1rem}
.ch-btn{margin-top:clamp(22px,2.6vw,30px)}
/* Bild neben dem Kopf, nicht als Streifen quer ueber die Seite - dort wurden
   die Gesichter mittendurch geschnitten. */
.ch-fig{grid-column:3;grid-row:1/span 2;margin:0;overflow:hidden;border-radius:14px;
  background:var(--tint);align-self:start;
  box-shadow:0 26px 58px -42px rgba(15,45,75,.44)}
.ch-fig img{width:100%;height:auto;aspect-ratio:7/6;object-fit:cover;
  object-position:center 32%;display:block;
  transform:scale(1.02);transition:transform 1.4s var(--ease)}
.ch:hover .ch-fig img{transform:scale(1.06)}
@media (max-width:1000px){
  .ch-in{grid-template-columns:clamp(50px,6vw,80px) minmax(0,1fr)}
  .ch-fig{grid-column:2;grid-row:auto;margin-top:6px}
  .ch-fig img{aspect-ratio:16/9}
}
@media (max-width:820px){
  .ch-in{grid-template-columns:minmax(0,1fr);gap:14px}
  .ch-mark{grid-auto-flow:column;justify-content:start;align-items:center;gap:14px}
  /* Die Marke (Nummer + Icon) gehoert einspaltig ganz nach oben ueber den
     Text - ohne grid-column landet sie automatisch hinter dem Text. */
  .ch-mark,.ch-t,.ch-b,.ch-fig{grid-column:1;grid-row:auto}
  .ch-fig{order:1}
}

/* ---- Standort als ganzflaechiges Bild mit Karte ---- */
.std{position:relative;isolation:isolate;overflow:hidden;background:var(--midnight);
  padding-block:clamp(56px,6.5vw,110px)}
.std-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  object-position:center 42%;opacity:.55}
.std::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(97deg,rgba(8,26,46,.92) 0%,rgba(8,26,46,.8) 42%,rgba(8,26,46,.45) 76%,rgba(8,26,46,.38) 100%)}
.std-card{max-width:min(640px,60ch);display:grid;justify-items:start}
.std-card .eyebrow{color:var(--sky)}
.std-card .eyebrow::before{background:var(--sky)}
/* Jeder Satz eine Zeile - der Umbruch steht im Markup, die Breite darf ihn
   nicht vorher erzwingen. */
.std-card .h2{color:#fff;margin-top:14px;max-width:none}
.std-card .tlink{color:var(--sky);margin-top:20px}
.std-card .tlink:hover{color:#fff}
.std-adr{display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;align-items:center;
  margin-top:clamp(22px,2.6vw,32px);padding-top:clamp(18px,2vw,24px);
  border-top:1px solid rgba(255,255,255,.2);width:100%}
.std-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;
  background:rgba(255,255,255,.12);color:var(--sky)}
.std-ic svg{width:19px;height:19px}
.std-adr b{display:block;color:#fff;font-weight:600;font-size:1rem}
.std-adr small{display:block;margin-top:3px;color:rgba(255,255,255,.6);font-size:.89rem}

/* ---- Benefits als breite Zeile ---- */
.ben-row{display:grid;grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"eb arrow" "title arrow" "sub arrow";
  column-gap:clamp(20px,3vw,44px);align-items:center;
  padding:clamp(26px,3vw,40px) 0;border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);transition:border-color .4s var(--ease)}
.ben-row:hover{border-color:var(--bluesmoke)}
.ben-eb{grid-area:eb;font-size:.66rem;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--royal)}
.ben-row b{grid-area:title;display:block;margin-top:12px;color:var(--midnight);
  font-weight:600;letter-spacing:-.026em;line-height:1.14;
  font-size:clamp(1.3rem,2.3vw,2rem);max-width:24ch;
  transition:transform .45s var(--ease)}
.ben-row:hover b{transform:translateX(6px)}
.ben-s{grid-area:sub;display:block;margin-top:12px;color:var(--text);font-size:.98rem;
  line-height:1.6;max-width:52ch}
.ben-a{grid-area:arrow;display:grid;place-items:center;
  width:clamp(48px,4.2vw,60px);height:clamp(48px,4.2vw,60px);border-radius:50%;
  border:1px solid var(--bluesmoke);color:var(--royal);
  transition:background .4s var(--ease),border-color .4s,color .4s,transform .4s var(--ease)}
.ben-a svg{width:19px;height:19px}
.ben-row:hover .ben-a{background:var(--royal);border-color:var(--royal);color:#fff;
  transform:translateX(4px)}
@media (max-width:820px){
  .ch{grid-template-columns:minmax(0,1fr);gap:16px}
  .ch-mark{grid-auto-flow:column;justify-content:start;align-items:center;gap:14px}
  .ch-cols{columns:1}
}

/* ---- Rechtstexte ----
   Kopf und Text stehen auf derselben Markenflaeche, der Uebergang ist dadurch
   nahtlos. Fliesstext bewusst etwas heller als auf den Inhaltsseiten, damit
   lange Passagen auf dunklem Grund lesbar bleiben. */
.lg-hero .eyebrow{color:var(--sky)}
.lg-hero .eyebrow::before{background:var(--sky)}
.lg-hero h1{color:#fff;max-width:20ch}
.lg-hero .lead{color:rgba(255,255,255,.8)}
.sec.lg-body{background:var(--brand) url(../img/bg-hero-1600.webp) center/cover fixed no-repeat;
  color:#fff;padding-top:clamp(30px,3.4vw,48px)}
@media (min-width:1100px){.sec.lg-body{background-image:url(../img/bg-hero-3000.webp)}}
@media (max-width:900px){.sec.lg-body{background-attachment:scroll}}
.legal{max-width:82ch}
.legal h2{margin-top:clamp(22px,2.2vw,30px);color:#fff;font-weight:600;
  font-size:clamp(1.14rem,1.7vw,1.4rem);letter-spacing:-.02em;line-height:1.28}
.legal h3{margin-top:clamp(20px,2.2vw,28px);color:#fff;font-weight:600;
  font-size:1.02rem;letter-spacing:-.014em}
.legal h4{margin-top:18px;color:#fff;font-weight:600;font-size:.96rem}
/* Absaetze stehen dicht beieinander wie auf der Bestandsseite. Der sichtbare
   Abstand kommt dort fast nur aus der Zeilenhoehe, nicht aus Abstaenden. */
.legal p{margin-top:2px;color:rgba(255,255,255,.82);font-size:.96rem;line-height:1.56}
.legal ul,.legal ol{margin-top:8px;padding-left:20px;display:grid;gap:4px}
.legal li{color:rgba(255,255,255,.82);font-size:.96rem;line-height:1.56;list-style:disc}
.legal ol li{list-style:decimal}
.legal a{color:var(--sky);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:rgba(93,169,233,.4)}
.legal a:hover{text-decoration-color:var(--sky)}
.legal strong,.legal b{color:#fff;font-weight:600}
.legal h2:first-child,.legal h3:first-child{margin-top:0}

/* Fuss ohne Aufruf (Rechtstexte): der obere Abstand ersetzt den entfallenen Block */
footer.nocta{padding-top:clamp(52px,6vw,88px)}
footer.nocta .foot-grid{border-top:0;padding-top:0;margin-top:0}

/* Der Hinweis schliesst den Abschnitt ab - darunter braucht es keinen vollen
   Abschnittsabstand mehr. */
.area-karriere .sec.kx-faq{padding-bottom:clamp(26px,2.8vw,40px)}

/* Leben: dieselben Kapitel wie Arbeiten, eine Spur kleiner */
.lb-chapters{display:grid;background:var(--smoke)}
/* Leben nutzt jetzt denselben Stapeleffekt wie Arbeiten: 02 schiebt sich
   beim Scrollen ueber 01. */
.lb-chapters{position:relative}
/* Leben: die beiden Kapitel eine Spur kleiner als auf Arbeiten - schmalere
   Bildspalte, etwas kleinere Headline, engerer Satzspiegel. */
.lb-chapters .ch-in{grid-template-columns:clamp(52px,6vw,84px) minmax(0,1fr) clamp(200px,24vw,340px)}
.lb-chapters .ch.flip .ch-in{grid-template-columns:clamp(52px,6vw,84px) clamp(200px,24vw,340px) minmax(0,1fr)}
@media (max-width:1000px){
  .lb-chapters .ch-in{grid-template-columns:clamp(50px,6vw,80px) minmax(0,1fr)}
  .lb-chapters .ch.flip .ch-in{grid-template-columns:clamp(50px,6vw,80px) minmax(0,1fr)}
  .lb-chapters .ch-fig{grid-column:2;grid-row:auto}
  .lb-chapters .ch-fig img{min-height:0;aspect-ratio:3/2}
}
@media (max-width:820px){
  .lb-chapters .ch-in{grid-template-columns:minmax(0,1fr);gap:14px}
  .lb-chapters .ch.flip .ch-in{grid-template-columns:minmax(0,1fr)}
  .lb-chapters .ch-mark,.lb-chapters .ch-t,.lb-chapters .ch-b,.lb-chapters .ch-fig{grid-column:1;grid-row:auto}
  .lb-chapters .ch-fig{order:1}
}
.lb-chapters .ch-t .h2{font-size:clamp(1.36rem,1.94vw,1.68rem)}
.lb-chapters .ch-cols{max-width:min(100%,520px)}
.lb-chapters .ch-cols p{font-size:.97rem;line-height:1.72}
.lb-chapters .ch-fig img{min-height:clamp(280px,27vw,430px)}
.lb-chapters .kx-faces{margin-top:clamp(24px,3vw,38px);max-width:560px;
  grid-template-columns:repeat(4,minmax(0,1fr))}

/* ---- Kapitel gespiegelt: Bild links, Text rechts ---- */
.ch.flip .ch-in{grid-template-columns:clamp(58px,7vw,96px) clamp(220px,29vw,410px) minmax(0,1fr)}
.ch.flip .ch-fig{grid-column:2;grid-row:1/span 2}
.ch.flip .ch-t{grid-column:3;grid-row:1}
.ch.flip .ch-b{grid-column:3;grid-row:2}

/* ---- Teamwork als eigener Abschnitt (Leben) ----
   Eine Reihe aus fuenf Karten auf der Markenflaeche: die blaue Textkarte
   zuerst, danach die vier Portraits mit Name und Funktion im Bild. */
.sec.tw{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover fixed no-repeat;
  color:#fff}
@media (min-width:1100px){.sec.tw{background-image:url(../img/bg-field-3000.webp)}}
@media (max-width:900px){.sec.tw{background-attachment:scroll}}
.sec.tw .eyebrow{color:var(--sky)}
.sec.tw .eyebrow::before{background:var(--sky)}
.sec.tw .h2{color:#fff}
.tw-head{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(24px,4vw,64px);align-items:start}
.tw-head .h2{margin-top:14px;max-width:20ch}
.tw-txt{display:grid;gap:14px}
.tw-txt p{color:rgba(255,255,255,.8);font-size:1rem;line-height:1.72}

.tw-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(10px,1.1vw,16px);margin-top:clamp(34px,3.8vw,56px)}
.tw-face{position:relative;margin:0;overflow:hidden;border-radius:14px;
  aspect-ratio:4/5;background:var(--tint)}
.tw-face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 10%;display:block;
  transform:scale(1.01);transition:transform 1s var(--ease)}
.tw-face:hover img{transform:scale(1.06)}
.tw-face::after{content:"";position:absolute;left:0;right:0;bottom:0;height:52%;
  background:linear-gradient(to top,rgba(8,26,46,.82),rgba(8,26,46,0))}
.tw-face figcaption{position:absolute;z-index:1;left:clamp(12px,1.1vw,18px);
  right:clamp(10px,1vw,16px);bottom:clamp(12px,1.1vw,18px);color:#fff}
.tw-face figcaption b{display:block;font-size:.92rem;font-weight:600;letter-spacing:-.012em}
.tw-face figcaption span{display:block;margin-top:3px;font-size:.76rem;
  color:rgba(255,255,255,.72);line-height:1.35}
@media (max-width:1000px){
  .tw-row{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:900px){
  .tw-head{grid-template-columns:minmax(0,1fr);gap:22px}
  .tw-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:1000px){
  .ch.flip .ch-in{grid-template-columns:clamp(50px,6vw,80px) minmax(0,1fr)}
  .ch.flip .ch-fig{grid-column:2;grid-row:auto}
  .ch.flip .ch-t,.ch.flip .ch-b{grid-column:2}
}
@media (max-width:820px){
  .ch.flip .ch-in{grid-template-columns:minmax(0,1fr)}
  .ch.flip .ch-mark,.ch.flip .ch-t,.ch.flip .ch-b,.ch.flip .ch-fig{grid-column:1;grid-row:auto}
}
.kx-acc .acc-body strong{color:#fff;font-weight:600}

/* ---- Leben: Kapitelbild fuellt die Spalte ----
   Ohne Stapelkarten endete das Bild nach 7/6 und unter ihm stand eine leere
   halbe Seite. Es laeuft jetzt ueber die ganze Kapitelhoehe mit. */
.lb-chapters .ch-fig{align-self:stretch}
.lb-chapters .ch-fig img{height:100%;aspect-ratio:auto;
  min-height:clamp(320px,33vw,540px)}

/* ==== Teamevents als Momentmosaik (Leben) =============================
   Kopfzeile ueber die Breite, darunter ein zwoelfspaltiges Raster mit fester
   Reihenhoehe. Jede Kachel belegt eine exakte Zahl von Reihen, die drei
   Saeulen sind gleich hoch - das Mosaik schliesst dadurch lueckenlos. Der
   Versatz entsteht ueber unterschiedliche Kachelformate, nicht ueber Loecher.
   Die Bilder stehen still.                                                  */
.sec.mo{background:var(--smoke);overflow:hidden;padding-block:clamp(64px,7vw,110px)}
.mo-top{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:clamp(24px,4vw,64px);align-items:end;margin-bottom:clamp(30px,3.6vw,52px)}
.mo-top .h2{margin-top:14px}
.mo-lead{color:var(--text);font-size:clamp(1.02rem,1.22vw,1.14rem);line-height:1.66;
  max-width:52ch}

.mo-grid{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad);display:grid;
  grid-template-columns:repeat(15,minmax(0,1fr));
  grid-auto-rows:minmax(clamp(40px,4.2vw,70px),auto);
  gap:clamp(8px,.8vw,12px)}
/* min-height:0 ist noetig, sonst zieht die Eigenhoehe der Bilder die
   Rasterzeilen auseinander und das Mosaik wird viel zu hoch. */
.mo-ph{position:relative;margin:0;min-height:0;overflow:hidden;border-radius:14px;
  background:var(--tint)}
.mo-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.02);transition:transform .9s var(--ease)}
.mo-ph:hover img{transform:scale(1.06)}

/* Kein gleichfoermiger Bilderstreifen: sechs Kacheln in vier verschiedenen
   Formaten - ein Hochformat als Anker, zwei gestapelte Querformate daneben,
   die Textkachel rechts, darunter drei Aufnahmen unterschiedlicher Breite. */
.mo-card{grid-column:1/9;grid-row:1/6}
.mo-b{grid-column:9/13;grid-row:1/4}
.mo-c{grid-column:9/13;grid-row:4/6}
.mo-a{grid-column:13/16;grid-row:1/6}
.mo-d{grid-column:1/7;grid-row:6/10}
.mo-e{grid-column:7/11;grid-row:6/10}
.mo-g{grid-column:11/16;grid-row:6/10}

/* Die Textkachel liegt quer und setzt den Text in zwei schmale Spalten -
   kurze Zeilen lesen sich schneller als eine hohe, schmale Saeule. */
.mo-card{background:var(--midnight) url(../img/bg-field-1600.webp) center/cover no-repeat;
  border-radius:14px;padding:clamp(24px,2.6vw,40px);
  display:flex;flex-direction:column;justify-content:center}
.mo-t{columns:2;column-gap:clamp(20px,2.2vw,34px)}
.mo-card p{color:rgba(255,255,255,.82);font-size:.93rem;line-height:1.68}
.mo-card strong{color:#fff;font-weight:600}
.mo-card p + p{margin-top:14px}
.mo-btn{align-self:flex-start;margin-top:clamp(18px,2vw,26px)}

@media (max-width:1080px){
  .mo-top{grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
  .mo-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:auto}
  .mo-a{grid-column:1/3;grid-row:1;aspect-ratio:3/4}
  .mo-b{grid-column:3/5;grid-row:1;aspect-ratio:3/4}
  .mo-c{grid-column:5/7;grid-row:1;aspect-ratio:3/4}
  .mo-card{grid-column:1/7;grid-row:2}
  .mo-d{grid-column:1/3;grid-row:3;aspect-ratio:3/4}
  .mo-e{grid-column:3/5;grid-row:3;aspect-ratio:3/4}
  .mo-g{grid-column:5/7;grid-row:3;aspect-ratio:3/4}
}
@media (max-width:640px){
  .mo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mo-a,.mo-b,.mo-c,.mo-d,.mo-e,.mo-g{grid-column:auto;grid-row:auto;aspect-ratio:3/4}
  .mo-card{grid-column:1/3;grid-row:auto}
  .mo-t{columns:1}
}

/* ==== Ueber uns: Unternehmen / Einblicke / Team ========================
   Hero und Leitlinien bleiben unveraendert, die drei Abschnitte dazwischen
   sind neu aufgebaut. */

/* -- Unternehmenstext: grosses Zitat, dann Bild und dezenter Text -- */
.uz{background:#fff;padding-block:clamp(48px,5.6vw,92px)}
/* Die Kernaussage - Farbe und Effekt wie das Statement der Startseite:
   halbfett in Midnight, Kernbegriff in Royal, Woerter blenden beim Scrollen
   von 14 % auf voll ein. */
.uz-quote{color:var(--midnight);font-weight:600;letter-spacing:-.022em;
  font-size:clamp(1.35rem,2.2vw,1.95rem);line-height:1.25;text-wrap:balance;max-width:30ch}
.uz-quote .w{display:inline-block;opacity:.14;transition:opacity .5s var(--ease)}
.uz-quote .w.on{opacity:1}
.uz-quote .w.hl,.uz-quote em .w{color:var(--royal)}
.uz-quote em{font-style:normal}
@media (prefers-reduced-motion:reduce){.uz-quote .w{opacity:1}}
/* Partner-Absatz unter dem Bild, mit Linie davor */
.uz-left{display:grid;gap:clamp(16px,1.8vw,24px);align-content:start}
.uz-left .uz-quote{margin-bottom:clamp(10px,1.4vw,20px)}
/* Die rechte Textspalte bleibt beim Scrollen stehen */
.uz-txt{position:sticky;top:calc(76px + clamp(20px,2.6vw,36px))}
@media (max-width:900px){.uz-txt{position:static}}
.uz-aside{color:var(--text);font-size:.92rem;line-height:1.7;max-width:52ch;
  padding-left:clamp(14px,1.6vw,22px);border-left:2px solid var(--royal)}
/* Beide Spalten beginnen oben buendig; die rechte Textspalte bleibt beim
   Scrollen stehen, waehrend Zitat und Bild links weiterlaufen. */
.uz-body{display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(28px,4.4vw,76px);align-items:start}
.uz-fig{margin:0;overflow:hidden;border-radius:14px;background:var(--tint)}
.uz-fig img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:center 40%;
  display:block;transform:scale(1.02);transition:transform 1.6s var(--ease)}
.uz-fig:hover img{transform:scale(1.06)}
/* Der uebrige Text klein und zurueckgenommen */
.uz-txt{display:grid;gap:clamp(14px,1.6vw,20px);padding-top:clamp(4px,.8vw,12px)}
.uz-txt p{color:#46586b;font-size:.95rem;line-height:1.7}
/* Die drei Punkte mit Icon */
.uz-it{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;align-items:start}
.uz-it .uz-ic{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;
  background:var(--tint);color:var(--royal);margin-top:-2px}
.uz-it .uz-ic svg{width:16px;height:16px}
.uz-txt strong{color:var(--midnight);font-weight:600}
.uz-k{color:var(--midnight);font-weight:600;border-bottom:1px solid transparent;
  transition:border-color .3s,color .3s}
.uz-k::after{content:":"}
.uz-k:hover{color:var(--royal);border-bottom-color:var(--royal)}
.uz-team{margin-top:clamp(6px,.8vw,10px);padding-top:clamp(12px,1.4vw,18px);
  border-top:1px solid var(--hair);color:var(--midnight);font-weight:500;
  font-size:1.02rem;line-height:1.66}
.uz-btn{justify-self:start;margin-top:clamp(8px,1vw,14px)}
@media (max-width:900px){
  .uz-body{grid-template-columns:minmax(0,1fr);gap:22px}
  .uz-quote{max-width:none}
}

/* -- Einblicke: randloses Bildband, keine Ueberschrift -- */
.ie{background:var(--midnight);padding:0}
.ie-band{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(5px,.55vw,8px)}
.ie-t{margin:0;overflow:hidden;background:rgba(255,255,255,.06)}
.ie-t img{width:100%;height:100%;object-fit:cover;object-position:center 16%;display:block;
  transform:scale(1.02);transition:transform 1.2s var(--ease)}
.ie-t:hover img{transform:scale(1.07)}
.ie-t:nth-child(-n+4){grid-column:span 3;height:clamp(150px,16vw,240px)}
.ie-t:nth-child(n+5){grid-column:span 4;height:clamp(170px,18vw,270px)}

@media (max-width:860px){
          .ie-t:nth-child(-n+4){grid-column:span 6;height:26vw}
  .ie-t:nth-child(n+5){grid-column:span 4;height:20vw}
  }
@media (max-width:560px){
  .ie-t:nth-child(-n+4),.ie-t:nth-child(n+5){grid-column:span 6;height:32vw}
}
/* Der Brief schliesst knapper ab - unter der Werte-Notiz stand zu viel Luft. */
#leitbild{padding-bottom:clamp(34px,3.6vw,52px)}

/* Offene-Positionen-Kachel: das proQtech-Zeichen fuellt die freie Flaeche
   oben links - weiss, zurueckgenommen, damit Eyebrow und Titel lesbar bleiben. */
.kx-nx.jobs{position:relative;overflow:hidden}
/* hoehere Spezifitaet als .kx-nx img, das die Fotos vollflaechig legt */
.kx-nx .kx-nx-logo{position:absolute;inset:auto;left:clamp(18px,2vw,30px);top:clamp(18px,2vw,30px);
  width:clamp(110px,32%,160px);height:auto;object-fit:contain;transform:none;
  pointer-events:none;filter:brightness(0) invert(1);opacity:.16;
  transition:opacity .5s var(--ease),transform .9s var(--ease)}
.kx-nx.jobs:hover .kx-nx-logo{opacity:.24;transform:scale(1.04)}
.kx-nx.jobs .kx-nx-b{position:relative;z-index:1}
.kx-nx.jobs .kx-nx-a{z-index:1}

/* ==== Wafer-Raster (neue Dateien) ========================================
   Zwei Groessen: wafer-m.svg (mittel) und wafer-s.svg (klein). Das Raster
   laeuft radial aus und liegt als Pseudo-Element unter dem Inhalt. Feste
   Pixelgroesse, nicht an die Fensterbreite gekoppelt - sonst wird das Gitter
   auf breiten Schirmen grob und laeuft durch den Text.                        */
footer{position:relative;isolation:isolate}
/* Footer ohne Raster (Wunsch) */
footer::before{content:none}
footer>.wrap{position:relative;z-index:1}
/* Blaue Seitenkoepfe mit Bildmosaik (Ueber uns, Kontakt): kleines Raster in
   der Luecke zwischen Textspalte und Bildern, nicht hinter dem Text */
.phero.brand.about-hero{isolation:isolate}
.phero.brand.about-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  /* zwei Lagen: eine in der Luecke neben der Textspalte, eine am rechten Rand -
     auf breiten Schirmen bleibt rechts vom Mosaik viel Flaeche frei */
  background:url(../img/wafer-s.svg) no-repeat left 44% top -120px / 460px auto,
             url(../img/wafer-s.svg) no-repeat right -140px bottom -140px / 520px auto;
  filter:brightness(2.4);opacity:.85}
.phero.brand.about-hero .wrap{position:relative;z-index:2}
/* Teamwand auf Leben: kleines Raster rechts oben */
.sec.tw{position:relative;isolation:isolate}
.sec.tw::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url(../img/wafer-s.svg) no-repeat right -120px top -120px / 460px auto;
  filter:brightness(2.4);opacity:.9}
.sec.tw>.wrap{position:relative;z-index:1}
@media (max-width:900px){footer::before,.phero.brand.about-hero::after,.sec.tw::before{display:none}}

/* ---- Kleines Raster hinter blauen Flaechen MIT freier Flaeche ----
   Bewusst kuratiert: nur Abschnitte, in denen das Gitter neben dem Inhalt
   Platz hat (Beratungs-Karte, Leitlinien, Karriere-FAQ, Koepfe, Kontakt-Glas,
   Fuss). Textlastige Navy-Abschnitte bleiben frei - dort war es unlesbar. */
.sec.navy.berat:not(.berat-art),#leitbild,#herausforderungen,.sec.navy:has(.film-frame),.sec.navy.tone-b,.sec.navy.kx-faq,.ov-hero,.sec.mo,.kt-glass{position:relative;isolation:isolate}
.sec.navy.berat:not(.berat-art)::after,#leitbild::after,#herausforderungen::after,.sec.navy:has(.film-frame)::after,.sec.navy.tone-b::after,.sec.navy.kx-faq::after,.ov-hero::after,.sec.mo::after,.kt-glass::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url(../img/wafer-s.svg) no-repeat right -120px top -110px / 500px auto;
  filter:brightness(2.4);opacity:.9}
/* auf hellem Grund zeichnet das Raster dunkel - deutlich leiser */
.sec.mo::after{filter:none;opacity:.42;background-position:left -160px top -140px}
.sec.navy.berat:not(.berat-art)>.wrap,#leitbild>.wrap,#herausforderungen>.wrap,.sec.navy:has(.film-frame)>.wrap,.sec.navy.tone-b>.wrap,.sec.navy.kx-faq>.wrap,.ov-hero>.wrap,.sec.mo>.mo-top,.sec.mo>.mo-grid,.kt-glass>.wrap{position:relative;z-index:1}
@media (max-width:900px){.sec.navy.berat:not(.berat-art)::after,#leitbild::after,#herausforderungen::after,.sec.navy:has(.film-frame)::after,.sec.navy.tone-b::after,.sec.navy.kx-faq::after,.ov-hero::after,.sec.mo::after,.kt-glass::after{display:none}}

/* Startseite, Abschnitt "vorteile" (heller Grund): kleines Raster rechts
   hinter der Kartenreihe - nicht in der leeren Flaeche darueber */
#vorteile{position:relative;isolation:isolate}
#vorteile::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url(../img/wafer-s.svg) no-repeat right -90px top 252px / 520px auto;opacity:.42}
#vorteile>.wrap{position:relative;z-index:1}
@media (max-width:900px){#vorteile::after{display:none}}


/* Je Flaeche eine eigene Groesse und Lage, damit sich das Raster nicht
   wiederholt wie eine Tapete. Zellen bleiben ueberall fein (<= 33px). */
.sec.navy.berat:not(.berat-art)::after{background-size:560px auto;background-position:right -160px top -170px}
#leitbild::after{background-size:420px auto;background-position:right -110px bottom -130px}
.sec.navy.kx-faq::after{background-size:440px auto;background-position:left -150px bottom -140px}
.kt-glass::after{background-size:500px auto;background-position:left -170px top -120px}
.ov-hero::after{background-size:430px auto;background-position:right 22% top -150px}
/* Kontakt-Kopf: ein kleines Raster oben, in der freien Flaeche ueber der
   Headline zwischen Text und Bild */
.phero.brand.about-hero.kt-hero::after{
  background:url(../img/wafer-s.svg) no-repeat left 34% top -150px / 480px auto;opacity:.8}
/* Herausforderungen (Startseite): Raster links in der freien Flaeche neben den Karten */
#herausforderungen::after{background-size:480px auto;background-position:left -160px bottom -140px}
/* Film (Startseite): Raster rechts neben dem Video */
.sec.navy:has(.film-frame)::after{background-size:500px auto;background-position:right -120px center}

/* Zitatkachel im Team-Mosaik (Startseite): ganz dezentes Raster oben rechts */
.m-quote{position:relative;isolation:isolate;overflow:hidden}
.m-quote::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url(../img/wafer-s.svg) no-repeat right -90px top 34% / 340px auto;
  filter:brightness(2.4);opacity:.5}
.m-quote>*{position:relative;z-index:1}
@media (max-width:900px){.m-quote::after{display:none}}
/* Leistungsseiten, Abschnitt mit Bildpaar (tone-b): kleines Raster rechts hinter den Bildern */
.sec.navy.tone-b::after{background-size:420px auto;background-position:right -110px center;opacity:.6}
/* Kontakt: kein Raster im Glasabschnitt (Wunsch) */
.kt-glass::after{content:none}

/* ==== Startseiten-Hero, Fassung 2: Text links auf der Markenflaeche, rechts
   eine gestaffelte Bildkomposition. Kein Text ueber Gesichtern - auch mobil
   nicht, weil dort Text und Bilder untereinander stehen. ==================== */
.hero2{position:relative;isolation:isolate;overflow:hidden;color:#fff;
  background:var(--brand) url(../img/bg-hero-1600.webp) center/cover fixed no-repeat;
  padding-top:calc(76px + clamp(36px,5vw,72px));padding-bottom:clamp(40px,5vw,72px)}
@media (min-width:1100px){.hero2{background-image:url(../img/bg-hero-3000.webp)}}
@media (max-width:900px){.hero2{background-attachment:scroll}}
.hero2-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(28px,4.6vw,80px);align-items:center;min-height:clamp(480px,58vh,640px)}
.hero2 .eyebrow{color:var(--sky)}
.hero2 .eyebrow::before{background:var(--sky)}
.hero2 h1{color:#fff;margin-top:16px;font-size:clamp(2rem,3.4vw,2.85rem);line-height:1.06;
  letter-spacing:-.03em;max-width:14ch}
.hero2 h1 .hl{color:var(--sky)}
.hero2 .lead{color:rgba(255,255,255,.86);margin-top:clamp(16px,1.8vw,24px);max-width:48ch;
  font-size:clamp(1rem,1.15vw,1.1rem);line-height:1.62}
.hero2 .lead strong{color:#fff}
.hero2 .pactions{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(22px,2.6vw,32px)}
.hero2 .btn-line{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.42);color:#fff}
.hero2 .trust{display:flex;gap:clamp(18px,2.4vw,34px);flex-wrap:wrap;margin-top:clamp(26px,3vw,40px);
  padding-top:clamp(18px,2vw,26px);border-top:1px solid rgba(255,255,255,.18)}
.hero2 .trust-item{display:flex;align-items:center;gap:12px;font-size:.82rem;color:rgba(255,255,255,.72)}
.hero2 .trust-item b{display:block;color:#fff;font-weight:600;font-size:.86rem}
.hero2 .trust-item img{height:28px;width:auto;filter:brightness(0) invert(1)}
/* Bildkomposition: grosses Hochformat, Querformat oben rechts angeschnitten,
   kleine Kachel unten rechts - drei Ebenen, leichte Ueberlappung */
.hero2-vis{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:clamp(34px,3.6vw,52px);align-content:center}
.hv{margin:0;overflow:hidden;border-radius:14px;background:rgba(255,255,255,.08);
  box-shadow:0 30px 60px -34px rgba(0,0,0,.55);position:relative}
.hv img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.02);
  transition:transform 1.4s var(--ease)}
.hv:hover img{transform:scale(1.06)}
.hv-1{grid-column:1/8;grid-row:1/12;z-index:1}
.hv-1 img{object-position:center 8%}
.hv-2{grid-column:6/13;grid-row:2/7;z-index:2;outline:6px solid rgba(15,45,75,.55)}
.hv-3{grid-column:8/13;grid-row:8/12;z-index:3;outline:6px solid rgba(15,45,75,.55)}
/* Einblendung: die drei Kacheln kommen leicht versetzt */
.hero2-vis.in .hv{animation:hvin .9s var(--ease) both}
.hero2-vis.in .hv-2{animation-delay:.12s}
.hero2-vis.in .hv-3{animation-delay:.24s}
@keyframes hvin{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.hero2-vis.in .hv{animation:none}}
@media (max-width:900px){
  .hero2-grid{grid-template-columns:minmax(0,1fr);gap:28px;min-height:0}
  .hero2 h1{max-width:none}
  .hero2-vis{grid-auto-rows:clamp(26px,7vw,40px)}
  .hv-1{grid-column:1/7;grid-row:1/9}
  .hv-2{grid-column:6/13;grid-row:1/5;outline-width:4px}
  .hv-3{grid-column:7/13;grid-row:6/9;outline-width:4px}
}
/* Laufband Qualitaet: Bildausschnitt oben ausrichten, damit Koepfe nicht abgeschnitten werden */
.qstrip img{object-position:center 14%}

/* ==== Startseiten-Hero, Fassung 3: vollflaechiges Foto, Typo unten links,
   Verlauf traegt den Text. Person steht rechts im Bild, links bleibt Raum -
   auf Mobil wird der Ausschnitt nach rechts geschoben, der Kopf bleibt oben
   frei, der Text liegt im unteren Drittel. ============================== */
.hero3{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:var(--midnight);
  /* Hoehe an die Breite gekoppelt, damit der Bildausschnitt auf jedem Monitor
     gleich sitzt (Koepfe ueber der Eyebrow, unter dem Header). */
  min-height:clamp(560px,44vw,900px);display:flex;align-items:flex-end;
  padding-top:calc(76px + 40px);padding-bottom:clamp(34px,4vw,56px)}
.hero3-bg{position:absolute;inset:0;z-index:0;
  /* overflow:hidden, weil das langsam zoomende Bild sonst unten aus dem
     Bildfeld herauslaeuft - auf dem Handy war das ein heller Streifen. */
  overflow:hidden}
/* Ausschnitt nach unten gezogen: die Koepfe liegen ueber der Eyebrow-Zeile, unter
   dem Text nur Koerper und Gelaender. */
.hero3-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 70%;display:block;
  transform:scale(1.04);animation:hero3in 1.6s var(--ease) both}
@keyframes hero3in{from{transform:scale(1.09)}to{transform:scale(1.04)}}
@media (prefers-reduced-motion:reduce){.hero3-bg img{animation:none}}
.hero3-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(8,26,46,.92) 0%,rgba(8,26,46,.72) 34%,rgba(8,26,46,.22) 62%,rgba(8,26,46,.08) 100%),
             linear-gradient(90deg,rgba(8,26,46,.55) 0%,rgba(8,26,46,.2) 50%,rgba(8,26,46,0) 100%)}
.hero3-in{position:relative;z-index:1;width:100%;align-self:flex-end;display:grid;gap:clamp(22px,2.6vw,36px)}
.hero3 .eyebrow{color:var(--sky)}
.hero3 .eyebrow::before{background:var(--sky)}
.hero3 h1{color:#fff;margin-top:14px;font-size:clamp(2.1rem,4vw,3.3rem);line-height:1.04;
  letter-spacing:-.032em;max-width:14ch}
.hero3 h1 .hl{color:var(--sky)}
.hero3-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(20px,3vw,48px);align-items:end;
  margin-top:clamp(14px,1.8vw,24px)}
.hero3 .lead{color:rgba(255,255,255,.88);max-width:52ch;font-size:clamp(1rem,1.15vw,1.1rem);line-height:1.6;margin:0}
.hero3 .lead strong{color:#fff}
.hero3 .pactions{display:flex;gap:12px;flex-wrap:wrap}
.hero3 .btn-line{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.42);color:#fff;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.hero3 .trust{display:flex;gap:clamp(18px,2.4vw,34px);flex-wrap:wrap;padding-top:clamp(16px,1.8vw,22px);
  border-top:1px solid rgba(255,255,255,.22)}
.hero3 .trust-item{display:flex;align-items:center;gap:12px;font-size:.8rem;color:rgba(255,255,255,.72)}
.hero3 .trust-item b{display:block;color:#fff;font-weight:600;font-size:.86rem}
.hero3 .trust-item img{height:26px;width:auto;filter:brightness(0) invert(1)}
@media (max-width:900px){
  /* Mobil: Foto nur im oberen Teil, Text darunter auf der Flaeche - nichts
     liegt ueber einem Gesicht. Der Verlauf fuehrt das Foto in den Grund. */
  /* Der Text beginnt erst unterhalb der Bildkante - vorher lief die
     Eyebrow genau durch den Uebergang und war dort kaum lesbar. */
  .hero3{min-height:0;padding-top:calc(104px + 52vh)}
  .hero3-bg{bottom:auto;height:calc(76px + 52vh)}
  .hero3-bg img{object-position:55% 30%}
  .hero3-bg::after{background:linear-gradient(0deg,rgba(15,45,75,1) 0%,rgba(15,45,75,1) 7%,rgba(15,45,75,.5) 30%,rgba(8,26,46,.15) 60%,rgba(8,26,46,.05) 100%)}
  .hero3 h1{max-width:none;font-size:clamp(1.9rem,8vw,2.4rem)}
  .hero3-row{grid-template-columns:minmax(0,1fr)}
}
/* QM-Kopf: Kopf der Kollegin braucht Luft nach oben */
.area-unternehmen .kx-bg img[src*="ph-qs"],img[src*="ph-qs"]{object-position:center 0%}
/* Bildband Ueber uns: 5. Kachel (Glasbruecke) - Personen stehen tief im Bild, Ausschnitt nach unten */
.ie-t:nth-child(5) img{object-position:center 78%}

.tabs-nav{display:none}

/* ==== Mobile-Feinschliff (18.09.2026) ================================== */
@media (hover:none){
  /* Auf Touch bleibt ein Hover-Zustand nach dem Antippen stehen - deshalb
     hier alle reinen Hover-Flaechen neutralisieren. */
  .xp::before{opacity:0!important}
  .xp:hover .xp-ic{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:var(--sky)}
  .btn:hover{transform:none;box-shadow:none}
}
@media (max-width:900px){
  /* Slider-Bildunterschrift darf umbrechen statt abgeschnitten zu werden */
  .dos-cap{white-space:normal;text-overflow:clip;line-height:1.45}
  .dos-bar{align-items:flex-start}
  /* Waagerechte Reiter: Verlauf am rechten Rand zeigt, dass es weitergeht */
  .tabs{position:relative}
  .tab-list{scroll-snap-type:x proximity;scroll-padding-left:2px}
  .tab-list > *{scroll-snap-align:start}
  .tabs::after{content:"";position:absolute;right:calc(var(--edge) * -1);top:0;width:34px;
    height:82px;pointer-events:none;z-index:2;
    background:linear-gradient(90deg,rgba(248,250,253,0),var(--smoke) 72%)}
  .tabs-nav{display:flex}
}
/* Pfeile zum Blaettern der Reiterleiste - nur auf schmalen Schirmen, auf dem
   Desktop stehen die Reiter ohnehin alle untereinander.
   Die Grundregel steht vor der Media Query, sonst gewinnt sie gegen diese. */
.tabs-nav{justify-content:flex-end;gap:8px;margin-bottom:12px}
.tnav{width:42px;height:42px;border-radius:var(--r);border:1px solid var(--bluesmoke);
  background:#fff;color:var(--royal);display:grid;place-items:center;flex:none;
  transition:border-color .3s,color .3s,opacity .3s}
.tnav svg{width:19px;height:19px}
.tnav:disabled{opacity:.35;color:var(--text)}
.tnav:not(:disabled):active{border-color:var(--royal)}

@media (max-width:900px){
  /* Tippflaechen: Apple/Google empfehlen rund 44 px. Wo das Layout keine
     hoeheren Zeilen vertraegt, vergroessert ein unsichtbares Pseudoelement
     nur die Trefferflaeche - die Optik bleibt unveraendert. */
  /* Der Hover-Kasten hinter den Punkten bringt auf schmalen Schirmen nichts
     und blieb nach dem Antippen stehen - dort komplett aus. */
  .xp::before{display:none}
  .xp:hover .xp-ic{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:var(--sky)}
  .foot-grid a{padding:6px 0}
  .foot-grid h5{margin-bottom:8px}
  .foot-bottom{line-height:2}
  .tlink,.crumb a,.kx-ix-a,.foot-bottom a,.mlang a{position:relative}
  .tlink::before,.crumb a::before,.kx-ix-a::before,.foot-bottom a::before{
    /* nur vertikal vergroessern - seitlicher Ueberstand wuerde den
       scrollWidth der Zeile aufblaehen. */
    content:"";position:absolute;inset:-12px 0;z-index:1}
  .kx-ix-a{padding-bottom:10px}
  /* Versal-Labels waren mit 10-11 px auf dem Handy kaum lesbar. */
  .eyebrow{font-size:.78rem;letter-spacing:.11em}
  .kx-ix-l{font-size:.74rem}
  .hero-services .lbl,.panel .img .lbl,.career .img .lbl,.svc-strip .lbl{font-size:.75rem}
  .foot-grid h5{font-size:.76rem}
  .ask-l{font-size:.76rem}
  .dlr-kat{font-size:.74rem}
  /* iOS Safari zoomt automatisch in jedes Feld unter 16 px Schriftgroesse. */
  .field input,.field select,.field textarea,input,select,textarea{font-size:16px}
  .consent input[type=checkbox]{width:22px;height:22px;flex:none}
  .consent{gap:12px;align-items:flex-start;padding:6px 0}
  .iso-port{width:clamp(150px,52vw,220px)}
  /* Die Slider-Nummer stand auf dem Handy direkt ueber der Kapitelnummer -
     doppelt. Die Punkte rechts zeigen die Position weiterhin an. */
  .dos-no{display:none}
}

@media (max-width:900px){
  /* Steht hier hinten, weil die Grundregel weiter oben sonst gewinnt:
     das Hochformat nahm auf dem Handy fast den ganzen Schirm ein. */
  .kx-portrait{aspect-ratio:3/2}
  .kx-portrait img{object-position:center 6%}
  /* Der Kopf schrumpft beim Scrollen auf 68 px - die klebenden Kapitel
     muessen darauf sitzen, sonst laeuft Text in der Luecke durch. */
  .ch:nth-child(1){top:68px}
  .ch:nth-child(2){top:calc(68px + 34px)}
  .ch:nth-child(3){top:calc(68px + 68px)}
}

/* ---- Ergaenzungen Relaunch-Abgleich (Okt. 2026) ---- */
/* Startseite "Wer wir sind": Leitsatz und zwei Links */
.statement .body .st-claim{color:var(--midnight);font-weight:600}
.st-links{display:flex;flex-wrap:wrap;gap:10px 28px}
/* Startseite Karriere: Originaltext und Links zu allen Karriereseiten */
.career .career-p{color:var(--text);line-height:1.7}
.career-links{display:flex;flex-wrap:wrap;gap:10px 28px}
/* Leistungsuebersicht: GF-Zitat nur mit Portraet und Aussage */
.iso-quote.solo{grid-template-columns:clamp(150px,13vw,200px) minmax(0,1fr);align-items:center}
.iso-quote.solo blockquote{max-width:38ch}
.iso-quote .sig{height:26px;width:auto;margin-left:auto;filter:brightness(0) invert(1);opacity:.7}
@media (max-width:760px){.iso-quote.solo{grid-template-columns:minmax(0,1fr)}}
/* Ueber uns: Datierung der Leitlinien */
.values-date{margin-top:14px;font-size:.85rem;color:rgba(255,255,255,.6)}
/* Kontaktformular: Rueckmeldung nach dem Absenden */
.form-msg{margin-top:14px;padding:12px 14px;border-radius:8px;font-size:.92rem;line-height:1.5}
.form-msg.ok{background:rgba(46,160,90,.12);color:#1d6b3c}
.form-msg.err{background:rgba(200,50,50,.1);color:#9b2222}
.form-msg.pending{background:rgba(30,90,200,.08);color:var(--midnight)}
/* Kontakt: Ansprechpartner wie auf der Bestandsseite */
.kt-person{display:flex;gap:14px;align-items:center}
.kt-person img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.kt-person div{display:grid;gap:2px}
.kt-person b{font-size:1.08rem;color:var(--midnight);font-weight:600}
.kt-person small{font-size:.85rem;color:var(--text)}
.kt-note{margin-top:16px;color:var(--text);line-height:1.65;font-size:.95rem}
/* Downloads: Anforderungsformular klappt unter der Zeile auf */
.dlr-act{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.dl-reqbox{grid-column:1/-1}
.dl-form{background:#fff;border-radius:12px;padding:clamp(20px,2.6vw,32px);max-width:860px;margin-left:auto}
.dl-req-t{color:var(--midnight);font-weight:600}
.dlr .btn.dl-req{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.dlr .btn.dl-req:hover,.dlr .btn.dl-req[aria-expanded="true"]{background:rgba(255,255,255,.14);border-color:#fff}
@media (max-width:980px){.dlr-act{justify-content:flex-start}.dl-form{margin-left:0}}
.legal-note{max-width:70ch;margin-bottom:28px;padding:14px 16px;border-left:3px solid var(--royal);background:rgba(25,94,160,.06);color:var(--midnight);font-size:.95rem}
/* ---- Cookie-Banner (eigene Loesung, keine Fremdskripte) ---- */
.cc{position:fixed;left:16px;right:16px;bottom:16px;z-index:300;display:flex;justify-content:flex-start;pointer-events:none}
.cc[hidden]{display:none}
.cc-box{pointer-events:auto;width:min(520px,100%);background:#fff;border:1px solid var(--hair);border-radius:12px;
  box-shadow:0 24px 60px -20px rgba(3,14,28,.45);padding:clamp(18px,2vw,24px);display:grid;gap:12px}
.cc-t{font-size:1.02rem;color:var(--midnight);font-weight:600}
.cc-box p{font-size:.88rem;line-height:1.55;color:var(--text)}
.cc-box p a{color:var(--royal);font-weight:600}
.cc-opts{display:grid;gap:10px;padding:4px 0}
.cc-opts[hidden]{display:none}
.cc-opt{display:flex;gap:11px;align-items:flex-start;font-size:.86rem;line-height:1.45;color:var(--text)}
.cc-opt input{width:17px;height:17px;margin-top:2px;accent-color:var(--royal);flex:none}
.cc-opt b{display:block;color:var(--midnight);font-weight:600}
.cc-opt small{display:block;font-size:.82rem}
.cc-btns{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.cc-btns .btn{padding:10px 14px;font-size:.84rem}
.cc-btns [hidden]{display:none}
.foot-cc{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none}
.foot-cc:hover{text-decoration:underline}
@media (max-width:560px){.cc{left:10px;right:10px;bottom:10px}.cc-btns .btn{flex:1 1 auto}}

/* Ueber uns: drei Fakten (seit COGD entfallen ist) */
.ab-facts.f3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.ab-facts.f3{grid-template-columns:repeat(2,minmax(0,1fr))}.ab-facts.f3 li:last-child{grid-column:1/-1;border-right:0;padding-left:0}}

/* Teamwork: Gruppenfoto XLETIX + sechs Gesichter (Okt 2026) */
.tw-group{margin:clamp(30px,3.4vw,50px) 0 0;border-radius:16px;overflow:hidden;position:relative;background:var(--tint)}
.tw-group img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.tw-group figcaption{position:absolute;left:0;right:0;bottom:0;padding:clamp(28px,4vw,60px) clamp(16px,2vw,28px) clamp(14px,1.6vw,22px);
  background:linear-gradient(to top,rgba(8,26,46,.78),rgba(8,26,46,0));color:#fff;font-size:.95rem;font-weight:500}
.tw-row{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1000px){ .tw-row{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:900px){ .tw-row{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* Hinweis ueber englischen Rechtstexten steht auf dunkler Markenflaeche -> hell */
.lg-body .legal-note{max-width:82ch;color:rgba(255,255,255,.9);background:rgba(255,255,255,.08);
  border-left-color:var(--sky);border-radius:0 8px 8px 0}

/* Honeypot im Formular: fuer Menschen unsichtbar, nicht fokussierbar */
.form .cf-ts:not(:empty){margin:2px 0 4px}
.form{position:relative}
.form-msg.ok .dl-get{margin-top:12px;display:inline-flex}

/* Telefonnummer mit Laendervorwahl */
.tel-in{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px}
.field .tel-in select{width:auto;min-width:104px;padding-right:30px}

/* Absenden: Knopf wird zum Drehraedchen, danach zeichnet sich ein Haekchen */
.btn.is-loading{position:relative;color:transparent!important;pointer-events:none}
.btn.is-loading svg{opacity:0}
.btn.is-loading::after{content:"";position:absolute;inset:0;margin:auto;width:20px;height:20px;border-radius:50%;
  border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:pq-spin .7s linear infinite}
.btn.shake{animation:pq-shake .45s}
.form.is-leaving>*{opacity:0;transform:translateY(-6px);transition:opacity .3s,transform .3s}
.form.is-done>:not(.form-done){display:none!important}
.form:not(.is-done)>.form-done{display:none}
.form-done{display:grid;justify-items:center;text-align:center;gap:10px;padding:26px 8px 14px;animation:pq-in .5s var(--ease) both;outline:0}
.form-done .chk{width:76px;height:76px}
.form-done .chk circle{fill:rgba(46,160,90,.08);stroke:#2ea05a;stroke-width:2.5;stroke-dasharray:151;stroke-dashoffset:151;animation:pq-draw .6s .1s ease forwards}
.form-done .chk path{fill:none;stroke:#2ea05a;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:36;stroke-dashoffset:36;animation:pq-draw .35s .65s ease forwards}
.form-done h3{font-size:1.4rem;font-weight:600;color:var(--midnight);letter-spacing:-.015em}
.form-done-t{color:var(--text);max-width:44ch;line-height:1.6}
.form-done-t .dl-get{margin-top:14px;display:inline-flex}
@keyframes pq-spin{to{transform:rotate(360deg)}}
@keyframes pq-draw{to{stroke-dashoffset:0}}
@keyframes pq-in{from{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}
@keyframes pq-shake{0%,100%{transform:none}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){
  .form-done,.form-done .chk circle,.form-done .chk path,.btn.shake{animation:none!important;stroke-dashoffset:0}
  .btn.is-loading::after{animation-duration:1.6s}
}
