/* Selbst gehostete Schriften (Sora, Inter) – kein externer Google-Fonts-Aufruf (DSGVO) */
@font-face{font-family:'Sora';font-style:normal;font-weight:400 800;font-display:swap;src:url('assets/fonts/Sora-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Sora';font-style:normal;font-weight:400 800;font-display:swap;src:url('assets/fonts/Sora-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url('assets/fonts/Inter-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url('assets/fonts/Inter-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
/* ============================================================
   CLS — gemeinsames Stylesheet für alle Seiten (DE + EN)
   Transport · Verpackung · Lager
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --bg:#FBFAF9;
  --bg-2:#F1EFEC;
  --ink:#14161A;
  --ink-2:#52555C;
  --ink-3:#8A8D94;
  --line:#E2DFDA;
  --acc:#E42528;
  --acc-2:#B81C1F;
  --acc-ink:#fff;
  --dark:#101216;
  --dark-2:#181B21;
  --white:#fff;
  --disp:'Sora',system-ui,sans-serif;
  --body:'Inter',system-ui,sans-serif;
  --t:.35s cubic-bezier(.22,1,.36,1);
  --pad:clamp(4.5rem,9vw,9rem);
  --gut:clamp(1.25rem,4vw,2.5rem);
}

html{scroll-behavior:smooth;}
body{font-family:var(--body);background:var(--bg);color:var(--ink);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
img{display:block;width:100%;height:100%;object-fit:cover;}
/* Lange (zusammengesetzte) Wörter nie über den Rand schieben – v.a. auf Mobile */
h1,h2,h3,h4,.disp,.hero-h1,.phero h1{overflow-wrap:break-word;hyphens:auto;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--acc);color:var(--acc-ink);}

.wrap{width:100%;max-width:1320px;margin-inline:auto;padding-inline:var(--gut);}
.disp{font-family:var(--disp);font-weight:700;letter-spacing:-.02em;line-height:1.0;}

@keyframes scrollx{to{transform:translateX(-50%);}}

/* ── NAV ── */
#nav{position:fixed;top:0;left:0;right:0;z-index:200;transition:var(--t);}
.nav-bar{display:flex;align-items:center;justify-content:space-between;padding:1.3rem 0;transition:var(--t);}
#nav.scrolled{background:rgba(251,250,249,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
#nav.scrolled .nav-bar{padding:.8rem 0;}
.logo{font-family:var(--disp);font-weight:800;font-size:1.5rem;letter-spacing:-.04em;display:flex;align-items:center;gap:.5rem;}
.logo .logo-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--acc);color:#fff;font-size:.95rem;font-weight:800;letter-spacing:-.03em;}
.logo .logo-sub{font-size:.62rem;font-weight:600;letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase;align-self:flex-end;padding-bottom:.28rem;margin-left:-.1rem;}
/* Bild-Logo (echtes CLS-Logo). Auf hellem Header farbig, auf dunklem Hero/Footer invertiert (weiß) – Kontrast in allen Zuständen */
.logo-img{height:clamp(34px,4.5vw,42px);width:auto;display:block;}
#nav.scrolled .logo-img{height:clamp(30px,4vw,36px);}
body.dark-hero #nav:not(.scrolled) .logo-img{filter:brightness(0) invert(1);}
nav.menu{display:flex;align-items:center;gap:.2rem;}
nav.menu a{position:relative;font-size:.9rem;font-weight:500;line-height:1;color:var(--ink-2);padding:.6rem .9rem;border-radius:99px;transition:var(--t);}
nav.menu a:hover{color:var(--ink);background:var(--bg-2);}
nav.menu a.active{color:var(--ink);font-weight:600;}
/* Aktiv-Unterstrich absolut => beansprucht keine Layout-Höhe, alle Items bleiben gleich hoch/mittig */
nav.menu a.active::after{content:'';position:absolute;left:.9rem;right:.9rem;bottom:.32rem;height:2px;background:var(--acc);border-radius:2px;}
.nav-r{display:flex;align-items:center;gap:.7rem;}
/* Header-CTA: feste Breite + zentriert, damit unterschiedlich lange Beschriftungen das Layout nicht verschieben */
.nav-r .btn{min-width:13rem;justify-content:center;}

/* Sprachumschalter */
.lang{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:99px;overflow:hidden;font-family:var(--disp);}
.lang a{font-size:.78rem;font-weight:600;padding:.4rem .7rem;color:var(--ink-3);transition:var(--t);}
.lang a.on{background:var(--ink);color:var(--bg);}
.lang a:not(.on):hover{color:var(--ink);background:var(--bg-2);}

/* ── KONTRAST: transparente Kopfzeile über dunklem Hero (body.dark-hero) ──
   Nur solange NICHT gescrollt; im .scrolled-Zustand ist der Header hell -> dunkle Schrift greift wieder. */
body.dark-hero #nav:not(.scrolled) .logo{color:#fff;}
body.dark-hero #nav:not(.scrolled) .logo .logo-sub{color:rgba(255,255,255,.6);}
body.dark-hero #nav:not(.scrolled) nav.menu a{color:rgba(255,255,255,.78);}
body.dark-hero #nav:not(.scrolled) nav.menu a:hover{color:#fff;background:rgba(255,255,255,.14);}
body.dark-hero #nav:not(.scrolled) nav.menu a.active{color:#fff;}
body.dark-hero #nav:not(.scrolled) .lang{border-color:rgba(255,255,255,.3);}
body.dark-hero #nav:not(.scrolled) .lang a{color:rgba(255,255,255,.6);}
body.dark-hero #nav:not(.scrolled) .lang a.on{background:#fff;color:var(--ink);}
body.dark-hero #nav:not(.scrolled) .lang a:not(.on):hover{color:#fff;background:rgba(255,255,255,.14);}
body.dark-hero #nav:not(.scrolled) .burger{border-color:rgba(255,255,255,.35);}
body.dark-hero #nav:not(.scrolled) .burger span{background:#fff;}

.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--disp);font-weight:600;border-radius:99px;cursor:pointer;border:none;transition:var(--t);white-space:nowrap;}
.btn-sm{padding:.62rem 1.25rem;font-size:.88rem;}
.btn-lg{padding:1rem 1.9rem;font-size:1rem;}
.btn-acc{background:var(--acc);color:var(--acc-ink);}
.btn-acc:hover{background:var(--acc-2);transform:translateY(-2px);box-shadow:0 10px 26px rgba(228,37,40,.28);}
.btn-ink{background:var(--ink);color:var(--bg);}
.btn-ink:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.22);}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink);}
.btn-ghost:hover{background:var(--ink);color:var(--bg);}
.btn-light{background:#fff;color:var(--ink);}
.btn-light:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.18);}
.arrow{display:inline-block;transition:transform var(--t);}
.btn:hover .arrow{transform:translate(3px,-3px);}
.burger{display:none;width:44px;height:44px;border:1.5px solid var(--line);border-radius:99px;background:none;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px;}
.burger span{width:18px;height:1.6px;background:var(--ink);transition:transform var(--t),opacity var(--t);}
@media(max-width:980px){nav.menu,.nav-r .btn-line,.nav-r .btn{display:none;}.burger{display:flex;}}

#mob{display:none;position:fixed;inset:0;z-index:199;background:var(--bg);padding:6rem var(--gut) 2rem;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;}
/* Offenes Mobile-Menü: Hintergrund-Scroll sperren (sonst scrollt die Seite mit, Header springt in scrolled-Zustand) */
body.menu-open{overflow:hidden;}
#mob a{font-family:var(--disp);font-weight:700;font-size:1.8rem;padding:.9rem 0;border-bottom:1px solid var(--line);letter-spacing:-.02em;}
/* CTA im Menü: normale Button-Größe, keine Trennlinie */
#mob a.btn{font-size:1rem;border-bottom:none;letter-spacing:0;}

/* ── Offenes Mobile-Menü: Header auf hellen Hintergrund -> dunkle, kontraststarke Schrift
   (überschreibt das dark-hero-Styling) + Burger wird zum X ── */
body.menu-open #nav:not(.scrolled) .logo{color:var(--ink);}
/* Menü-Hintergrund ist hell -> Logo NICHT invertieren (sonst weiß auf weiß) */
body.menu-open #nav:not(.scrolled) .logo-img{filter:none;}
body.menu-open #nav:not(.scrolled) .logo .logo-sub{color:var(--ink-3);}
body.menu-open #nav:not(.scrolled) .lang{border-color:var(--line);}
body.menu-open #nav:not(.scrolled) .lang a{color:var(--ink-3);}
body.menu-open #nav:not(.scrolled) .lang a.on{background:var(--ink);color:var(--bg);}
body.menu-open #nav:not(.scrolled) .lang a:not(.on):hover{color:var(--ink);background:var(--bg-2);}
body.menu-open #nav:not(.scrolled) .burger{border-color:var(--line);}
body.menu-open #nav:not(.scrolled) .burger span{background:var(--ink);}
body.menu-open #nav .burger span:nth-child(1){transform:translateY(5.6px) rotate(45deg);}
body.menu-open #nav .burger span:nth-child(2){opacity:0;}
body.menu-open #nav .burger span:nth-child(3){transform:translateY(-5.6px) rotate(-45deg);}

/* ── SECTION / HEADINGS ── */
.section{padding-block:var(--pad);}
.shead{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2.5rem,5vw,4rem);}
.stag{font-family:var(--disp);font-weight:600;font-size:.82rem;letter-spacing:.04em;color:var(--ink-2);display:flex;align-items:center;gap:.6rem;margin-bottom:1.1rem;}
.stag .num{background:var(--acc);color:#fff;font-size:.72rem;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;}
.stitle{font-size:clamp(2.1rem,5vw,3.5rem);font-weight:700;}
.slead{font-size:1.05rem;color:var(--ink-2);max-width:48ch;}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--disp);font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--ink-2);}
.eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--acc);}

/* ── HOME HERO ── */
#hero{padding-top:clamp(8rem,15vh,11rem);padding-bottom:clamp(2rem,4vw,3rem);}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,4vw,3.5rem);align-items:center;}
.hero-h1{font-size:clamp(2.8rem,7vw,5.6rem);font-weight:800;letter-spacing:-.03em;line-height:1.0;margin:1.6rem 0 1.4rem;}
.hero-h1 .red{color:var(--acc);}
.hero-lead{font-size:1.15rem;color:var(--ink-2);max-width:42ch;margin-bottom:2rem;}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;}
.hero-media{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/5;background:#cdd2d8;}
.hero-media img{transition:transform 1.1s var(--t);}
#hero:hover .hero-media img{transform:scale(1.05);}
.hero-badge{position:absolute;bottom:1.25rem;left:1.25rem;right:1.25rem;background:rgba(16,18,22,.78);backdrop-filter:blur(8px);border-radius:14px;padding:1.1rem 1.35rem;display:flex;justify-content:space-between;gap:1rem;color:#fff;}
.hero-badge .n{font-family:var(--disp);font-weight:800;font-size:1.55rem;line-height:1;}
.hero-badge .l{font-size:.7rem;color:rgba(255,255,255,.65);margin-top:.25rem;}
@media(max-width:880px){.hero-grid{grid-template-columns:1fr;}.hero-media{aspect-ratio:4/3;}}

/* ── PAGE HERO (Unterseiten) ── */
.phero{padding-top:clamp(8rem,16vh,12rem);padding-bottom:clamp(2.5rem,5vw,4rem);}
.phero.dark{background:var(--dark);color:var(--bg);}
.crumb{font-family:var(--disp);font-weight:500;font-size:.82rem;color:var(--ink-3);margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.phero.dark .crumb{color:rgba(255,255,255,.5);}
.crumb a:hover{color:var(--acc);}
.crumb .here{color:var(--ink);}
.phero.dark .crumb .here{color:#fff;}
.phero h1{font-size:clamp(2.6rem,8vw,5.4rem);font-weight:800;letter-spacing:-.03em;margin-bottom:1.3rem;line-height:1.0;}
.phero .intro{font-size:1.15rem;color:var(--ink-2);max-width:56ch;}
.phero.dark .intro{color:rgba(255,255,255,.7);}

/* ── MARQUEE ── */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:1.1rem 0;}
.marquee-track{display:flex;width:max-content;animation:scrollx 30s linear infinite;}
.marquee-track span{font-family:var(--disp);font-weight:700;font-size:1.15rem;letter-spacing:-.01em;color:var(--ink-2);padding:0 1.6rem;display:inline-flex;align-items:center;gap:1.6rem;}
.marquee-track span::after{content:'';background:var(--acc);width:9px;height:9px;border-radius:50%;display:inline-block;}

/* ── STATS BAND ── */
.statband{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;}
.stat .sn{font-family:var(--disp);font-weight:800;font-size:clamp(2.6rem,6vw,4.2rem);line-height:.9;letter-spacing:-.03em;}
.stat .sl{font-size:.92rem;font-weight:500;margin-top:.6rem;max-width:22ch;opacity:.78;}
.band-dark{background:var(--dark);color:var(--bg);}
.band-dark .stat .sn{color:#fff;}
.band-dark .stat .sn .red{color:var(--acc);}
@media(max-width:780px){.statband{grid-template-columns:1fr 1fr;gap:2.5rem 1.5rem;}}

/* ── SERVICE CARDS ── */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:2rem 1.75rem 2.1rem;transition:var(--t);display:flex;flex-direction:column;position:relative;overflow:hidden;}
.card::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:var(--t);}
.card:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(0,0,0,.09);border-color:transparent;}
.card:hover::after{transform:scaleX(1);}
.card .cic{width:54px;height:54px;border-radius:13px;background:rgba(228,37,40,.1);color:var(--acc);display:grid;place-items:center;font-size:1.5rem;margin-bottom:1.3rem;}
.card .cnum{position:absolute;top:1.6rem;right:1.6rem;font-family:var(--disp);font-weight:800;font-size:1rem;color:var(--ink-3);opacity:.5;}
.card h3{font-family:var(--disp);font-weight:700;font-size:1.3rem;letter-spacing:-.01em;margin-bottom:.6rem;}
.card p{font-size:.92rem;color:var(--ink-2);flex:1;}
.card .more{margin-top:1.3rem;font-family:var(--disp);font-weight:600;font-size:.85rem;display:inline-flex;align-items:center;gap:.45rem;color:var(--acc);}
.card .more .pl{transition:var(--t);}
.card:hover .more .pl{transform:translateX(4px);}
@media(max-width:900px){.cards{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.cards{grid-template-columns:1fr;}}

/* ── FEATURE LIST (Leistungsdetail) ── */
.flist{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;}
.fitem-c{display:flex;gap:1.1rem;padding:1.6rem;background:var(--white);border:1px solid var(--line);border-radius:16px;transition:var(--t);}
.fitem-c:hover{border-color:var(--acc);transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.07);}
.fitem-c .ic{flex-shrink:0;width:46px;height:46px;border-radius:11px;background:rgba(228,37,40,.1);color:var(--acc);display:grid;place-items:center;font-size:1.25rem;}
.fitem-c h4{font-family:var(--disp);font-weight:700;font-size:1.08rem;margin-bottom:.35rem;}
.fitem-c p{font-size:.9rem;color:var(--ink-2);}
@media(max-width:680px){.flist{grid-template-columns:1fr;}}

/* ── SPLIT (Bild + Text) ── */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,5rem);align-items:center;}
.split.rev .split-media{order:2;}
.split-media{border-radius:18px;overflow:hidden;aspect-ratio:5/4;background:#cdd2d8;}
.split-body .stitle{margin-bottom:1.1rem;}
.split-body p{color:var(--ink-2);margin-bottom:1rem;}
.ticks{list-style:none;margin-top:1.4rem;display:flex;flex-direction:column;gap:.85rem;}
.ticks li{display:flex;gap:.75rem;font-size:.95rem;align-items:flex-start;}
.ticks li::before{content:'✓';color:#fff;background:var(--acc);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;flex-shrink:0;margin-top:.1rem;}
@media(max-width:820px){.split{grid-template-columns:1fr;}.split.rev .split-media{order:0;}}

/* ── PROCESS STEPS ── */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;counter-reset:step;}
.step{padding:2rem 1.75rem;border:1px solid var(--line);border-radius:16px;background:var(--white);position:relative;}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--disp);font-weight:800;font-size:2.4rem;color:var(--acc);opacity:.25;line-height:1;display:block;margin-bottom:.8rem;}
.step h4{font-family:var(--disp);font-weight:700;font-size:1.15rem;margin-bottom:.5rem;}
.step p{font-size:.92rem;color:var(--ink-2);}
@media(max-width:820px){.steps{grid-template-columns:1fr;}}

/* ── VALUES ── */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.val{padding:1.75rem;border:1px solid var(--line);border-radius:16px;background:var(--white);}
.val .vic{font-size:1.6rem;margin-bottom:.9rem;}
.val h4{font-family:var(--disp);font-weight:700;font-size:1.1rem;margin-bottom:.5rem;}
.val p{font-size:.9rem;color:var(--ink-2);}
@media(max-width:820px){.values{grid-template-columns:1fr;}}

/* ── TIMELINE ── */
.timeline{position:relative;margin-top:1rem;}
.timeline::before{content:'';position:absolute;left:13px;top:8px;bottom:8px;width:2px;background:var(--line);}
.tl-item{position:relative;padding:0 0 2.5rem 3.25rem;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{content:'';position:absolute;left:6px;top:4px;width:16px;height:16px;border-radius:50%;background:var(--acc);border:3px solid var(--bg);}
.tl-year{font-family:var(--disp);font-weight:700;font-size:1.4rem;color:var(--ink);margin-bottom:.3rem;}
.tl-item p{color:var(--ink-2);font-size:.95rem;max-width:52ch;}

/* ── PILLS / TAGS ── */
.pills{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.5rem;}
.pill{font-family:var(--disp);font-weight:600;font-size:.82rem;padding:.5rem 1rem;border-radius:99px;border:1.5px solid var(--line);color:var(--ink-2);}
.pill .x{color:var(--acc);margin-right:.35rem;font-weight:700;}

/* ── CTA BAND ── */
.cta{background:var(--dark);color:var(--bg);border-radius:24px;padding:clamp(2.5rem,5vw,4.5rem);display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;position:relative;overflow:hidden;}
.cta::before{content:'';position:absolute;top:-40%;right:-10%;width:380px;height:380px;background:radial-gradient(circle,rgba(228,37,40,.35),transparent 70%);}
.cta-in{position:relative;z-index:1;}
.cta h2{font-family:var(--disp);font-weight:800;font-size:clamp(1.9rem,4vw,3rem);letter-spacing:-.02em;line-height:1.05;}
.cta p{color:rgba(255,255,255,.6);margin-top:.7rem;max-width:42ch;}

/* ── KONTAKT / FORM ── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,4rem);}
.cinfo-row{display:flex;gap:1rem;padding:1.25rem 0;border-top:1px solid var(--line);}
.cinfo-row:last-child{border-bottom:1px solid var(--line);}
.cinfo-row .cic2{width:44px;height:44px;border-radius:10px;background:var(--white);border:1px solid var(--line);display:grid;place-items:center;font-size:1.1rem;flex-shrink:0;}
.cinfo-row .cl{font-family:var(--disp);font-weight:600;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);}
.cinfo-row .cv{font-weight:500;}
.form-card{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:clamp(1.75rem,3vw,2.5rem);}
.fl{display:block;font-family:var(--disp);font-weight:500;font-size:.76rem;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.5rem;}
/* Frage-Label (ganze Sätze) – nicht in Versalien/gesperrt wie kurze Feldlabels */
.fq{display:block;font-family:var(--disp);font-weight:600;font-size:1rem;line-height:1.35;letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:.7rem;}
.fin{width:100%;padding:.9rem 1.05rem;background:var(--bg);border:1.5px solid var(--line);border-radius:10px;font-family:var(--body);font-size:.92rem;transition:var(--t);}
.fin:focus{outline:none;border-color:var(--acc);background:#fff;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.fgroup{margin-bottom:1.1rem;}
textarea.fin{resize:vertical;min-height:120px;}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;}.frow{grid-template-columns:1fr;}}

/* ── FOOTER ── */
footer{background:var(--dark);color:var(--bg);padding-block:clamp(3.5rem,6vw,5.5rem) 2rem;}
.f-top{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:2.5rem;padding-bottom:3.5rem;border-bottom:1px solid rgba(255,255,255,.1);}
.f-logo{font-family:var(--disp);font-weight:800;font-size:1.6rem;letter-spacing:-.04em;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;}
.f-logo .logo-img{height:42px;width:auto;filter:brightness(0) invert(1);}
.f-logo .logo-mark{width:32px;height:32px;border-radius:8px;background:var(--acc);color:#fff;display:inline-grid;place-items:center;font-size:.9rem;font-weight:800;}
.f-about{font-size:.9rem;color:rgba(255,255,255,.5);max-width:34ch;}
.f-ct{font-family:var(--disp);font-weight:600;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:1.1rem;}
.f-links{display:flex;flex-direction:column;gap:.6rem;}
.f-links a{font-size:.9rem;color:rgba(255,255,255,.6);transition:var(--t);}
.f-links a:hover{color:var(--acc);}
.f-news p{font-size:.9rem;color:rgba(255,255,255,.5);margin-bottom:1rem;}
.f-bot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:2rem;}
.f-bot .c{font-size:.8rem;color:rgba(255,255,255,.3);}
.f-bot .ll{display:flex;gap:1.5rem;}
.f-bot .ll a{font-size:.8rem;color:rgba(255,255,255,.3);transition:var(--t);}
.f-bot .ll a:hover{color:rgba(255,255,255,.7);}
@media(max-width:820px){.f-top{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.f-top{grid-template-columns:1fr;gap:2rem;}}

/* ── LEGAL (Impressum/Datenschutz) ── */
.legal{max-width:760px;}
.legal h2{font-family:var(--disp);font-weight:700;font-size:1.4rem;margin:2.2rem 0 .8rem;}
.legal h2:first-child{margin-top:0;}
.legal p{color:var(--ink-2);margin-bottom:.8rem;}
.legal a{color:var(--acc);}

/* ── TOAST ── */
.toast{position:fixed;bottom:1.5rem;right:1.5rem;z-index:999;background:var(--ink);color:var(--bg);border-radius:12px;padding:1rem 1.3rem;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:.6rem;box-shadow:0 12px 40px rgba(0,0,0,.3);transform:translateY(150%);opacity:0;transition:var(--t);}
.toast.show{transform:none;opacity:1;}
.toast .d{width:9px;height:9px;border-radius:50%;background:var(--acc);}

/* ── reveal ── */
.rv{opacity:0;transform:translateY(30px);transition:opacity .7s var(--t),transform .7s var(--t);}
.rv.in{opacity:1;transform:none;}

/* ============================================================
   STARTSEITE — Redesign-Bausteine (wiederverwendbar)
   ============================================================ */

/* ── HERO v2: bildschirmfüllend, bildbetont, moderater H1 ── */
.hero2{position:relative;min-height:min(92vh,820px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;}
.hero2-bg{position:absolute;inset:0;z-index:0;}
.hero2-bg img{width:100%;height:100%;object-fit:cover;}
.hero2::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(16,18,22,.72) 0%,rgba(16,18,22,.55) 42%,rgba(16,18,22,.96) 100%);}
.hero2::after{content:'';position:absolute;inset:0;z-index:1;background:rgba(16,18,22,.28);}
.hero2 .wrap{position:relative;z-index:2;width:100%;padding-top:8rem;padding-bottom:clamp(2.5rem,5vw,4.5rem);}
.hero2 .eyebrow{color:rgba(255,255,255,.85);}
.hero2 h1{font-family:var(--disp);font-weight:800;letter-spacing:-.03em;line-height:1.05;font-size:clamp(2.1rem,4.6vw,3.7rem);max-width:20ch;margin:1.3rem 0 1.15rem;}
.hero2 h1 .red{color:var(--acc);}
.hero2 .lead{font-size:clamp(1rem,1.5vw,1.18rem);color:rgba(255,255,255,.82);max-width:52ch;margin-bottom:2rem;}
.hero2 .hero-cta{display:flex;gap:1rem;flex-wrap:wrap;}
.hero2-stats{display:flex;gap:clamp(1.5rem,4vw,3.5rem);flex-wrap:wrap;margin-top:clamp(2rem,4vw,3rem);padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.18);}
.hero2-stats .hs .n{font-family:var(--disp);font-weight:800;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1;}
.hero2-stats .hs .n .red{color:var(--acc);}
.hero2-stats .hs .l{font-size:.8rem;color:rgba(255,255,255,.62);margin-top:.3rem;}

/* ── SERVICE-KACHELN mit Bild + Hover-Reveal ── */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.svc{position:relative;border-radius:18px;overflow:hidden;min-height:clamp(390px,44vw,460px);display:flex;align-items:flex-end;color:#fff;isolation:isolate;}
.svc img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--t);}
.svc::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,18,22,0) 32%,rgba(16,18,22,.9) 100%);transition:var(--t);}
.svc:hover img{transform:scale(1.06);}
.svc:hover::after{background:linear-gradient(180deg,rgba(16,18,22,.2) 0%,rgba(16,18,22,.94) 100%);}
.svc-body{padding:clamp(1.5rem,2.5vw,2rem);width:100%;}
.svc-kicker{font-family:var(--disp);font-weight:600;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--acc);margin-bottom:.5rem;}
.svc h3{font-family:var(--disp);font-weight:700;font-size:clamp(1.3rem,2vw,1.55rem);letter-spacing:-.01em;}
.svc-reveal{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .5s var(--t),opacity .4s var(--t);}
.svc-reveal>div{overflow:hidden;}
.svc:hover .svc-reveal,.svc:focus-within .svc-reveal{grid-template-rows:1fr;opacity:1;}
.svc-reveal p{font-size:.95rem;color:rgba(255,255,255,.82);margin:.8rem 0 0;}
.svc-more{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--disp);font-weight:600;font-size:.88rem;color:#fff;margin-top:1rem;}
.svc-more .pl{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--acc);transition:var(--t);}
.svc:hover .svc-more .pl{transform:translateX(3px);}
@media(max-width:900px){.svc-grid{grid-template-columns:1fr;}.svc{min-height:330px;}.svc-reveal{grid-template-rows:1fr;opacity:1;}
/* Reveal ist hier dauerhaft offen -> Verlauf kräftig abdunkeln (untere ~80% nahezu deckend), damit der Text klar lesbar ist */
.svc::after{background:linear-gradient(180deg,rgba(16,18,22,.25) 0%,rgba(16,18,22,.6) 25%,rgba(16,18,22,.9) 55%,rgba(16,18,22,.96) 100%);}}

/* ── ÜBER UNS v2 (dunkel, editorial) ── */
.about2{background:var(--dark);color:#fff;position:relative;}
/* Zwei gleichfarbige (dunkle) Abschnitte: Abstand enger + zentrierte Trennlinie auf Content-Breite */
.band-dark:has(+ .about2){padding-bottom:clamp(2.5rem,5vw,4rem);}
.band-dark + .about2{padding-top:clamp(2.5rem,5vw,4rem);}
.band-dark + .about2::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(1240px,calc(100% - 2*var(--gut)));height:1px;background:rgba(255,255,255,.22);}
.about2-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,5vw,4.5rem);align-items:center;}
.about2-media{border-radius:18px;overflow:hidden;height:clamp(400px,46vw,550px);}
.about2-media img{object-position:50% 22%;}
.about2 .eyebrow{color:rgba(255,255,255,.7);}
.about2 h2{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;font-size:clamp(1.9rem,4vw,3rem);line-height:1.06;margin:1.1rem 0;}
.about2 h2 .red{color:var(--acc);}
.about2 p{color:rgba(255,255,255,.72);margin-bottom:1rem;max-width:48ch;}
.about2 .ticks li{color:rgba(255,255,255,.88);}
@media(max-width:820px){.about2-grid{grid-template-columns:1fr;}}

/* ── BEWERBUNGS-POPUP ── */
.amodal-bg{position:fixed;inset:0;z-index:500;background:rgba(16,18,22,.6);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity var(--t);display:grid;place-items:center;padding:var(--gut);}
.amodal-bg.open{opacity:1;pointer-events:auto;}
.amodal{background:var(--bg);border-radius:22px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;transform:translateY(24px) scale(.98);transition:transform var(--t);position:relative;}
.amodal-bg.open .amodal{transform:none;}
.amodal-x{position:absolute;top:1rem;right:1rem;z-index:3;width:42px;height:42px;border-radius:50%;border:none;background:var(--white);box-shadow:0 4px 14px rgba(0,0,0,.1);cursor:pointer;font-size:1.4rem;line-height:1;display:grid;place-items:center;transition:var(--t);}
.amodal-x:hover{background:var(--acc);color:#fff;transform:rotate(90deg);}
.amodal-head{padding:clamp(1.6rem,3vw,2.2rem) clamp(1.6rem,3vw,2.2rem) 0;}
.amodal-head h3{font-family:var(--disp);font-weight:800;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;margin:.2rem 0 .3rem;}
.amodal-loc{font-size:.95rem;color:var(--ink-2);}
.amodal-loc span{font-weight:600;color:var(--ink);}
.amodal-body{padding:clamp(1.4rem,3vw,2rem) clamp(1.6rem,3vw,2.2rem) clamp(1.6rem,3vw,2.2rem);}
.amodal-note{font-size:.8rem;color:var(--ink-3);margin-top:1rem;line-height:1.5;}
.amodal-note a{color:var(--acc);font-weight:600;}

/* Auswahl-Chips (Radio/Checkbox als Buttons) */
.opt-row{display:flex;gap:.6rem;flex-wrap:wrap;}
.opt{display:inline-flex;align-items:center;font-family:var(--disp);font-weight:600;font-size:.88rem;padding:.6rem 1.05rem;border:1.5px solid var(--line);border-radius:99px;background:var(--white);cursor:pointer;transition:var(--t);user-select:none;}
.opt:hover{border-color:var(--ink);}
.opt input{position:absolute;opacity:0;width:0;height:0;}
.opt:has(input:checked){background:var(--acc);border-color:var(--acc);color:#fff;}
.opt:has(input:focus-visible){outline:2px solid var(--acc);outline-offset:2px;}

/* ── KARRIERE / Stellenangebote ── */
.jobs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
.job{border:1px solid var(--line);border-radius:16px;padding:1.75rem;background:var(--white);transition:var(--t);display:flex;flex-direction:column;}
.job:hover{border-color:var(--acc);transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.07);}
.job .jrole{font-family:var(--disp);font-weight:700;font-size:1.18rem;margin-bottom:.4rem;}
.job .jloc{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;color:var(--ink-2);margin-bottom:1.2rem;}
.job .jtags{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.3rem;}
.job .jtag{font-size:.74rem;font-family:var(--disp);font-weight:600;padding:.3rem .7rem;border-radius:99px;background:var(--bg-2);color:var(--ink-2);}
.job .jbtn{margin-top:auto;}
@media(max-width:820px){.jobs{grid-template-columns:1fr;}}

/* ── TRUST-FEATURES (zweispaltige Merkmalsliste auf Dunkel, hoher Kontrast) ── */
.tfeatures{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2.5rem,6vw,5rem);}
.tfeat{display:flex;gap:1.1rem;align-items:flex-start;padding:1.5rem 0;border-top:1px solid rgba(255,255,255,.13);}
.tfeat .tic{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:rgba(228,37,40,.18);color:var(--acc);display:grid;place-items:center;font-size:1rem;font-weight:700;}
.tfeat h4{font-family:var(--disp);font-weight:700;font-size:1.08rem;color:#fff;margin-bottom:.3rem;}
.tfeat p{font-size:.92rem;color:rgba(255,255,255,.66);max-width:40ch;}
@media(max-width:760px){.tfeatures{grid-template-columns:1fr;}}
