/* ============ FONTS — IBM Plex, self-hosted (latin) ============ */
@font-face{font-family:"IBM Plex Sans";src:url("fonts/ibm-plex-sans-var.woff2") format("woff2");font-weight:300 600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibm-plex-mono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibm-plex-mono-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

/* ============ DESIGN TOKENS — Voges Visual Styleguide v1.0 (Theresa) ============
   Japanese Indigo als Marken-/Aktionsfarbe, Steel Teal sekundär.
   Eckig (radius 0 überall), Foggy-Hairlines, keine Versalien in Headlines.
   Mono ausschließlich für Labels, Tags, Positionsnummern und Kennzahlen. */
:root{
  --indigo:#224D5F;           /* Primary — CTA, Links, aktive Zustände, Akzentlinien */
  --indigo-hover:#285C70;     /* Hover / Light */
  --indigo-dark:#16303D;      /* Pressed / Dark */
  --teal:#486675;             /* Secondary — sekundäre Buttons, Labels, Icon-Akzente */
  --teal-light:#517380;
  --teal-pale:#9BBAC4;        /* Akzent auf dunklem Grund */
  --ink:#232323;              /* Charcoal — Body Text + dunkle Sektionen */
  --ink-2:#353535;            /* Charcoal Light */
  --muted:#757575;            /* Mid Grey — Sekundärtext */
  --foggy:#B1AF9A;            /* Borders / Divider — nur strukturelle Trennlinien */
  --stardust:#E2DDDA;         /* Alternativer Hintergrund — Abschnitte, Formulare, Karten */
  --white:#fff;
  --offwhite:#FAF9F5;
  --hairline:var(--foggy);
  --hairline-soft:rgba(177,175,154,.5);
  --on-dark:rgba(255,255,255,.92);
  --on-dark-muted:rgba(255,255,255,.60);
  --on-dark-hairline:rgba(255,255,255,.18);
  --radius:0;
  --gutter:72px;
  --container:1320px;
  --font-sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-display:var(--font-sans);
  --font-body:var(--font-sans);
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-weight:400;font-size:17px;line-height:1.6;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* Typografie — Sans 600, Sentence case, -0.02em. Gewicht schafft Hierarchie. */
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.08;letter-spacing:-.02em;color:var(--ink)}
h1,h2,h3{font-weight:600}
h4{font-weight:500}
h1{font-size:clamp(2.4rem,5vw,4rem)}
h2{font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.15}
h3{font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.25}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
section{padding:112px 0}
.lead{font-size:1.15rem;line-height:1.6;max-width:64ch}
.muted{color:var(--muted)}
/* Farbakzent im Fließtext (Hervorhebung ①): Schlüsselphrase Indigo, Gewicht 500 */
.accent{color:var(--indigo);font-weight:500}

/* Label / Eyebrow / Tag — IBM Plex Mono 500, +0.04em, keine Versalien */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono);font-weight:500;font-size:.72rem;letter-spacing:.04em;color:var(--teal)}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--indigo);flex:0 0 auto}
.on-dark .eyebrow,.eyebrow.on-dark{color:var(--teal-pale)}
.eyebrow.on-dark::before{background:var(--teal-pale)}

/* Kennzahlen (Hervorhebung ③): Mono, Indigo als Ziffernfarbe */
.display-num{font-family:var(--font-mono);font-weight:500;letter-spacing:-.01em;line-height:1}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-sans);font-weight:600;font-size:15px;line-height:1.2;cursor:pointer;padding:17px 30px;border-radius:var(--radius);border:1px solid transparent;transition:transform .18s var(--ease),background .18s,border-color .18s,color .18s}
.btn .arr{transition:transform .18s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn:active{transform:scale(.985)}
.btn-primary{background:var(--indigo);color:#fff;border-color:var(--indigo)}
.btn-primary:hover{background:var(--indigo-hover);border-color:var(--indigo-hover)}
.btn-primary:active{background:var(--indigo-dark);border-color:var(--indigo-dark)}
.btn-ghost{background:transparent;border:1px solid var(--foggy);color:var(--ink)}
.btn-ghost:hover{border-color:var(--indigo);color:var(--indigo)}
.btn-ghost.on-dark{border-color:var(--on-dark-hairline);color:#fff}
.btn-ghost.on-dark:hover{border-color:#fff;color:#fff}
.btn-block{width:100%;justify-content:center}
.arr{display:inline-block;width:18px;height:1.5px;background:currentColor;position:relative;flex:0 0 auto}
.arr::after{content:"";position:absolute;right:-1px;top:-4px;width:9px;height:9px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg)}

/* ============ HEADER ============ */
header.site{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.logo{display:flex;align-items:center}
.logo img{height:46px;width:auto;display:block}
.nav ul{display:flex;gap:28px;list-style:none}
.nav ul a{font-family:var(--font-sans);font-weight:500;font-size:.92rem;position:relative;padding:6px 0}
.nav ul a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--indigo);transition:width .22s var(--ease)}
.nav ul a:hover::after{width:100%}
.nav-right{display:flex;align-items:center;gap:18px}
.nav-tel{font-family:var(--font-mono);font-weight:500;font-size:.85rem;letter-spacing:.02em;white-space:nowrap}
.nav-tel:hover{color:var(--indigo)}
.burger{display:none;width:48px;height:48px;border-radius:var(--radius);background:transparent;border:1px solid var(--hairline);cursor:pointer;font-size:20px;align-items:center;justify-content:center}

/* ============ HERO ============ */
.hero{position:relative;background:var(--white);overflow:hidden;padding:0}
.hero .grid-bg{position:absolute;inset:0;background-image:linear-gradient(var(--hairline-soft) 1px,transparent 1px),linear-gradient(90deg,var(--hairline-soft) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(180deg,rgba(0,0,0,.8),transparent 78%)}
.hero .container{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center;padding:88px 0}
.hero-grid .hero-photo img{height:600px}
.hero h1{margin-top:24px;max-width:20ch}
.hero h1 em{font-style:normal;color:var(--indigo)}
.hero p.lead{margin-top:24px;max-width:56ch;color:var(--ink)}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;margin-top:36px}

/* ============ STAT-BAND (dunkel) ============ */
.stats{background:var(--ink);color:var(--on-dark);padding:0}
.stats .row{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.stats .s{padding:44px 36px;border-left:1px solid var(--on-dark-hairline)}
.stats .s:first-child{border-left:0;padding-left:0}
.stats .n{font-size:2.3rem;color:#fff}
.stats .n em{font-style:normal;color:var(--teal-pale)}
.stats .l{font-family:var(--font-mono);font-weight:400;font-size:.74rem;letter-spacing:.03em;color:var(--on-dark-muted);margin-top:12px}

/* ============ FOTOS — eckig, Foggy-Rahmen, versetzte Kontur ============ */
.photo{position:relative}
.photo img{width:100%;object-fit:cover;border-radius:var(--radius);border:1px solid var(--foggy);display:block}
.photo::after{content:"";position:absolute;inset:0;transform:translate(16px,16px);border:1px solid var(--foggy);border-radius:var(--radius);z-index:-1;pointer-events:none}
.photo .cap{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--on-dark);font-family:var(--font-mono);font-weight:400;font-size:.72rem;letter-spacing:.03em;padding:8px 14px}
.photo.on-dark img{border-color:var(--on-dark-hairline)}
.photo.on-dark::after{border-color:var(--on-dark-hairline)}

/* anim */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
.reveal.in{opacity:1;transform:none}
[data-delay="1"]{transition-delay:.08s}[data-delay="2"]{transition-delay:.16s}[data-delay="3"]{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
}

/* ============ POSITIONIERUNG ============ */
.position .inner{max-width:62rem}
.position h2{margin-top:16px;max-width:22ch}
.position p{margin-top:22px;font-size:1.15rem;max-width:66ch}

/* ============ LEISTUNGEN — Materialfluss (Signatur) ============ */
.leistungen{background:var(--stardust)}
.leistungen h2{margin-top:16px}
.leistungen .intro{margin-top:14px}
.flow{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:64px}
/* durchgehende Flusslinie über alle Stationen */
.flow::before{content:"";position:absolute;left:0;right:0;top:9px;height:1.5px;background:var(--foggy)}
.flow .stop{position:relative;padding-top:40px}
.flow .stop::before{content:"";position:absolute;left:0;top:0;width:19px;height:19px;background:var(--stardust);border:2px solid var(--indigo)}
.flow .stop::after{content:"";position:absolute;left:6px;top:6px;width:7px;height:7px;background:var(--indigo)}
.flow .num{font-family:var(--font-mono);font-weight:500;font-size:.8rem;letter-spacing:.04em;color:var(--indigo)}
.flow h3{margin-top:8px}
.flow p{margin-top:12px;font-size:.95rem;color:var(--muted)}
.leistungen .cta-row{margin-top:56px}

/* ============ LEISTUNGSTIEFE — 4 Karten ============ */
.tiefe h2{margin-top:16px}
.tiefe .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:56px}
.tiefe .card{border:1px solid var(--foggy);border-top:3px solid var(--indigo);border-radius:var(--radius);padding:30px 26px;background:#fff;transition:transform .2s var(--ease)}
.tiefe .card:hover{transform:translateY(-3px)}
.tiefe .card .k{font-family:var(--font-mono);font-weight:500;font-size:.74rem;letter-spacing:.04em;color:var(--teal)}
.tiefe .card h3{margin-top:12px;font-size:1.22rem}
.tiefe .card p{margin-top:12px;font-size:.95rem;color:var(--muted)}

/* ============ SICHERES VERLADEN — Dark Callout (Hervorhebung ②) ============ */
.silosafe{background:var(--ink);color:var(--on-dark)}
.eyebrow-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
/* „Neu"-Badge — Mono, scharfkantig, gefüllt (neues Produkt SiloSafe) */
.badge-neu{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-weight:500;font-size:.68rem;letter-spacing:.06em;color:var(--ink);background:var(--teal-pale);padding:5px 11px}
.badge-neu::before{content:"";width:6px;height:6px;background:var(--indigo);flex:0 0 auto}
.silosafe .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:72px;align-items:center}
.silosafe h2{color:#fff;margin-top:18px;max-width:22ch}
.silosafe p{margin-top:20px;color:var(--on-dark-muted);max-width:58ch}
.silosafe p.hl{color:var(--on-dark);font-size:1.12rem;border-left:3px solid var(--indigo);padding-left:18px}
.silosafe p.hl strong{color:#fff;font-weight:500}
.silosafe .note{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.03em;color:var(--on-dark-muted);margin-top:12px}
.checklist{list-style:none;margin-top:30px}
.checklist li{display:flex;gap:14px;align-items:flex-start;margin-bottom:15px;font-size:1.02rem}
.checklist .tick{width:22px;height:22px;flex:0 0 22px;color:var(--teal-pale);margin-top:2px}
.silosafe .cta-row{margin-top:38px}

/* ============ FLAGGSCHIFF — Eco Hopper ============ */
.flaggschiff{background:var(--stardust)}
.flaggschiff .grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.flaggschiff h2{margin-top:16px;max-width:18ch}
.flaggschiff .txt{margin-top:20px;color:var(--muted);max-width:56ch}
.kpi{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:40px;border-top:1px solid var(--foggy)}
.kpi .k{padding:26px 0;border-bottom:1px solid var(--foggy)}
.kpi .k:nth-child(odd){padding-right:28px}
.kpi .k:nth-child(even){padding-left:28px;border-left:1px solid var(--foggy)}
.kpi .n{font-size:1.9rem;color:var(--indigo)}
.kpi .l{font-family:var(--font-mono);font-weight:400;font-size:.74rem;letter-spacing:.03em;color:var(--muted);margin-top:10px}
/* Strukturlinie & Tags (Hervorhebung ④): 3px-Akzentlinie links */
.quote{margin-top:36px;border-left:3px solid var(--indigo);padding-left:20px}
.quote p{font-family:var(--font-sans);font-weight:500;font-size:1.22rem;line-height:1.4;letter-spacing:-.01em;color:var(--ink)}
.quote cite{display:block;font-family:var(--font-mono);font-style:normal;font-size:.78rem;letter-spacing:.03em;color:var(--muted);margin-top:12px}

/* ============ BRANCHEN ============ */
.branchen h2{margin-top:16px}
.branchen .cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:52px}
.branchen .card{border:1px solid var(--foggy);border-radius:var(--radius);padding:38px 34px;background:#fff}
.branchen .card .k{font-family:var(--font-mono);font-weight:500;font-size:.74rem;letter-spacing:.04em;color:var(--indigo)}
.branchen .card h3{margin-top:12px;font-size:1.35rem}
.branchen .card p{margin-top:14px;color:var(--muted)}

/* ============ REFERENZEN — Logo-Wall (dunkel) ============ */
.referenzen{background:var(--ink);color:var(--on-dark)}
.referenzen h2{color:#fff;margin-top:16px}
.referenzen .intro{color:var(--on-dark-muted);margin-top:14px}
.logowall{display:flex;flex-wrap:wrap;gap:0;margin-top:52px;border-top:1px solid var(--on-dark-hairline);border-left:1px solid var(--on-dark-hairline)}
.logowall .mark{flex:1 1 20%;min-width:200px;padding:34px 28px;border-right:1px solid var(--on-dark-hairline);border-bottom:1px solid var(--on-dark-hairline);display:flex;flex-direction:column;justify-content:center;gap:14px}
/* Fremdlogos einheitlich weiß auf dunklem Grund */
.logowall .lg{height:32px;width:auto;max-width:170px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);opacity:.85}
.logowall .info{font-family:var(--font-mono);font-weight:400;font-size:.72rem;letter-spacing:.03em;color:var(--on-dark-muted)}
.referenzen .note{font-family:var(--font-mono);margin-top:22px;font-size:.72rem;letter-spacing:.03em;color:var(--on-dark-muted)}

/* ============ WARUM VOGES ============ */
.warum h2{margin-top:16px}
.warum .cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:52px}
.warum .card{border:1px solid var(--foggy);border-radius:var(--radius);padding:34px 30px;background:#fff}
.warum .card h3{font-size:1.22rem}
.warum .card h3::after{content:"";display:block;width:26px;height:2px;background:var(--indigo);margin-top:14px}
.warum .card p{margin-top:16px;color:var(--muted)}

/* ============ ÜBER UNS ============ */
.ueber{background:var(--stardust)}
.ueber .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:72px;align-items:center}
.ueber h2{margin-top:16px}
.ueber p{margin-top:20px;color:var(--muted);max-width:56ch}
.ueber p.strong{color:var(--ink);font-size:1.12rem}

/* ============ ABSCHLUSS-CTA + FORMULAR (Dark) ============ */
.anfrage{background:var(--ink);color:var(--on-dark)}
.anfrage .grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.anfrage h2{color:#fff;margin-top:18px;max-width:20ch}
.anfrage .txt{margin-top:20px;color:var(--on-dark-muted);max-width:52ch}
.anfrage .direct{margin-top:36px;border-top:1px solid var(--on-dark-hairline);padding-top:26px}
.anfrage .direct .k{font-family:var(--font-mono);font-weight:500;font-size:.74rem;letter-spacing:.04em;color:var(--on-dark-muted)}
.anfrage .direct a{display:block;font-family:var(--font-sans);font-weight:500;font-size:1.15rem;color:#fff;margin-top:10px;width:fit-content}
.anfrage .direct a:hover{color:var(--teal-pale)}

.form-card{background:#fff;color:var(--ink);border-radius:var(--radius);padding:42px;border-top:3px solid var(--indigo)}
.form-card h3{margin-bottom:6px}
.form-card .sub{color:var(--muted);font-size:.95rem;margin-bottom:26px}
.field{margin-bottom:18px}
.field label{display:block;font-family:var(--font-mono);font-weight:500;font-size:.72rem;letter-spacing:.04em;margin-bottom:8px;color:var(--ink)}
.field input,.field select,.field textarea{width:100%;padding:15px;border:1px solid var(--foggy);border-radius:var(--radius);font-family:var(--font-body);font-size:1rem;background:#fff;transition:border-color .2s,box-shadow .2s;color:var(--ink)}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--indigo);box-shadow:inset 0 0 0 1px var(--indigo)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:.8rem;color:var(--muted);margin:8px 0 20px}
.consent input{margin-top:3px;accent-color:var(--indigo)}
.form-note{font-family:var(--font-mono);text-align:center;font-size:.7rem;letter-spacing:.03em;color:var(--muted);margin-top:16px}
.form-err{color:#8c2f2f;font-size:.86rem;margin-top:10px}
.success{display:none;text-align:center;padding:30px 0}
.success.show{display:block}
.success .ck{width:60px;height:60px;border-radius:var(--radius);background:var(--indigo);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}

/* ============ FOOTER ============ */
footer.site{background:#1A1A1A;color:var(--on-dark-muted);padding:72px 0 36px}
footer.site .top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px;align-items:start}
footer.site .logo img{height:44px;filter:brightness(0) invert(1);opacity:.9}
footer.site p.claim{margin-top:16px;font-size:.95rem;max-width:38ch}
footer.site .col .k{font-family:var(--font-mono);font-weight:500;font-size:.74rem;letter-spacing:.04em;color:#fff;margin-bottom:16px}
footer.site .col a,footer.site .col span{display:block;font-size:.95rem;padding:5px 0}
footer.site .col a:hover{color:#fff}
footer.site .bottom{margin-top:56px;padding-top:26px;border-top:1px solid var(--on-dark-hairline);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer.site .bottom a:hover{color:#fff}

/* ============ MOBILE DRAWER ============ */
.drawer{position:fixed;inset:0;z-index:90;background:rgba(35,35,35,.55);opacity:0;pointer-events:none;transition:opacity .3s}
.drawer.open{opacity:1;pointer-events:auto}
.drawer .panel{position:absolute;top:0;right:0;bottom:0;width:min(82vw,340px);background:#fff;padding:32px;transform:translateX(100%);transition:transform .35s var(--ease);display:flex;flex-direction:column;gap:4px}
.drawer.open .panel{transform:none}
.drawer .panel a{font-family:var(--font-sans);font-weight:500;font-size:1.05rem;padding:14px 0;border-bottom:1px solid var(--hairline-soft)}
.drawer .panel .btn{margin-top:20px}
.drawer .close{align-self:flex-end;width:46px;height:46px;border-radius:var(--radius);border:1px solid var(--hairline);background:none;font-size:19px;cursor:pointer}

/* Fokus sichtbar — 2px solid Japanese Indigo */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}

/* ============ RESPONSIVE ============ */
@media(max-width:1100px){:root{--gutter:44px}}
@media(max-width:980px){
  .nav ul,.nav-tel{display:none}
  .burger{display:inline-flex}
  section{padding:84px 0}
  .hero-grid{grid-template-columns:1fr;gap:40px;padding:56px 0 64px}
  .hero-grid .hero-photo img{height:360px}
  .stats .row{grid-template-columns:1fr 1fr}
  .stats .s{padding:32px 24px}
  .stats .s:nth-child(odd){border-left:0;padding-left:0}
  .flow{grid-template-columns:1fr 1fr;gap:40px 32px}
  .flow::before{display:none}
  .tiefe .cards{grid-template-columns:1fr 1fr}
  .silosafe .grid,.flaggschiff .grid,.ueber .grid,.anfrage .grid{grid-template-columns:1fr;gap:44px}
  .branchen .cards,.warum .cards{grid-template-columns:1fr}
  .logowall .mark{flex:1 1 33%;min-width:170px}
  footer.site .top{grid-template-columns:1fr;gap:32px}
}
@media(max-width:680px){
  :root{--gutter:22px}
  body{font-size:16px}
  section{padding:68px 0}
  .hero-grid{padding:40px 0 52px}
  .hero-grid .hero-photo img{height:300px}
  .photo::after{transform:translate(10px,10px)}
  .nav-right .btn{display:none}
  .row2{grid-template-columns:1fr}
  .stats .row{grid-template-columns:1fr 1fr}
  .stats .n{font-size:1.8rem}
  .flow{grid-template-columns:1fr}
  .tiefe .cards{grid-template-columns:1fr}
  .kpi .k:nth-child(odd){padding-right:16px}
  .kpi .k:nth-child(even){padding-left:16px}
  .form-card{padding:28px}
  .logowall .mark{flex:1 1 50%;min-width:0;padding:26px 18px}
}
