/* ==========================================================================
   EIC – Ebner IndustrieConsulting · styles.css
   Mobile-first. Palette: navy / industrial blue / steel. Premium-Industrie.
   Breakpoints: 360–430 (phone) · 768 (tablet) · 992/1080 (desktop nav) · 1280+/1440+
   ========================================================================== */

/* ---- Fonts (self-hosted, no external requests) ------------------------- */
@font-face { font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/inter-400.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:500; font-display:swap; src:url('/assets/fonts/inter-500.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/inter-600.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap; src:url('/assets/fonts/inter-700.woff2') format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:800; font-display:swap; src:url('/assets/fonts/inter-800.woff2') format('woff2'); }

/* ---- Tokens ------------------------------------------------------------- */
:root {
  --navy-950:#07111F; --navy-900:#0B1626; --navy-800:#0E2A47; --navy-700:#123A63;
  --accent:#2F80ED; --accent-600:#2569cf; --accent-300:#8bb6f4; --blue-bright:#3B82F6; --accent-bright:#38BDF8; --red:#D80015;
  --mono:ui-monospace,"SFMono-Regular","SF Mono","Cascadia Code","Roboto Mono",Consolas,"Liberation Mono",monospace;
  --surface:#FFFFFF; --surface-1:#F8FAFC; --surface-2:#EEF2F7; --surface-3:#D8DEE8;
  --hover-1:#EEF6FF; --hover-2:#EAF3FF;
  --steel-1:#8D99A6; --steel-2:#AAB4C0; --steel-3:#CBD5E1;
  --ink:#111827; --ink-2:#39424f; --muted:#5b6675; --ink-light:#F8FAFC;
  --muted-light:rgba(248,250,252,.74);
  --warn:#F59E0B; --line:#E4E9F0; --line-2:#CBD5E1;

  --hero-grad: linear-gradient(135deg,#07111F 0%, #0E2A47 55%, #123A63 100%);
  --dark-tech: radial-gradient(circle at 20% 20%, rgba(59,130,246,.16), transparent 35%),
               radial-gradient(circle at 80% 10%, rgba(14,42,71,.35), transparent 40%),
               radial-gradient(circle at 65% 95%, rgba(56,189,248,.07), transparent 45%);
  --glass-bg: rgba(255,255,255,.06); --glass-bd: rgba(255,255,255,.14);

  --maxw:1280px; --maxw-narrow:760px;
  --gutter: clamp(1.25rem, 4vw, 2rem);            /* 20–32px */
  --r-sm:8px; --r:14px; --r-lg:20px; --r-xl:28px; --r-pill:999px;
  --shadow-sm:0 1px 2px rgba(7,17,31,.06), 0 1px 3px rgba(7,17,31,.07);
  --shadow-md:0 6px 22px rgba(13,32,64,.10);
  --shadow-hover:0 22px 48px -24px rgba(13,32,64,.5);
  --shadow-lg:0 30px 70px -24px rgba(7,17,31,.45);
  --header-h:72px; --header-h-sm:60px;
  --t: .25s cubic-bezier(.4,0,.2,1);
  --ease-soft: cubic-bezier(.22,.61,.36,1);
  --font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;

  /* ---- Type scale (Desktop) – klare Abstufung H1 > H2 > H3 > Body ---- */
  --fs-body:17px; --lh-body:1.65;
  --fs-h1:clamp(42px,5vw,64px); --lh-h1:1.06;
  --fs-h2:clamp(30px,3.2vw,42px); --lh-h2:1.14;
  --fs-h3:clamp(21px,2vw,26px); --lh-h3:1.22;
  --fs-card-title:20px; --fs-btn:15px; --fs-small:14px;
}
@media (max-width:767px){ :root {
  --header-h:62px; --header-h-sm:56px;
  --fs-body:15.5px; --lh-body:1.6;
  --fs-h1:clamp(30px,8.5vw,37px); --lh-h1:1.1;
  --fs-h2:clamp(23px,6.4vw,28px); --lh-h2:1.18;
  --fs-h3:18px; --lh-h3:1.3;
  --fs-card-title:18px; --fs-btn:14px;
} }

/* ---- Reset / base ------------------------------------------------------- */
*,*::before,*::after { box-sizing:border-box; }
* { margin:0; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 12px); }
body {
  font-family:var(--font); font-size:var(--fs-body); line-height:var(--lh-body); color:var(--ink);
  background:var(--surface); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,picture,svg { display:block; max-width:100%; }
img { height:auto; }
a { color:var(--accent); text-decoration:none; }
a:hover { color:var(--accent-600); }
strong { font-weight:700; }
h1,h2,h3,h4 { line-height:1.16; font-weight:700; letter-spacing:-.015em; color:inherit; overflow-wrap:break-word; word-break:normal; hyphens:none; -webkit-hyphens:none; text-wrap:balance; }
p { overflow-wrap:break-word; word-break:normal; hyphens:manual; -webkit-hyphens:manual; }
ul,ol { list-style:none; padding:0; }
button { font:inherit; cursor:pointer; border:0; background:none; color:inherit; }
:focus-visible { outline:3px solid var(--accent); outline-offset:2px; border-radius:4px; }
::selection { background:var(--accent); color:#fff; }

.skip-link { position:fixed; top:-100px; left:1rem; z-index:1000; background:var(--accent); color:#fff;
  padding:.7rem 1.1rem; border-radius:var(--r-sm); font-weight:600; }
.skip-link:focus { top:1rem; color:#fff; }

/* ---- Layout primitives -------------------------------------------------- */
.container { width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.container--narrow { max-width:var(--maxw-narrow); }
.section { padding-block: clamp(5.5rem, 8vw, 7rem); }   /* ~88–112px – ruhige Sektionen statt Trennlinien */
.section--alt { background:radial-gradient(circle at 88% -8%, rgba(47,128,237,.06), transparent 42%), var(--surface-1); }
.section--dark { background:var(--navy-900); color:var(--ink-light); position:relative; overflow:hidden; }
.section--dark h1,.section--dark h2,.section--dark h3 { color:#fff; }

.icon { width:24px; height:24px; flex:none; }
.icon--sm { width:18px; height:18px; }
.icon--xs { width:14px; height:14px; }

.note { font-size:.88rem; color:var(--muted); margin-top:1.4rem; max-width:62ch; }
.section--dark .note { color:var(--muted-light); }
.img-caption { display:flex; gap:.5rem; align-items:flex-start; font-size:.86rem; color:var(--muted); margin-top:1rem; }
.img-caption .icon { color:var(--accent); margin-top:2px; }
.accent-text { color:var(--accent-300); }

/* ---- Eyebrow + section head -------------------------------------------- */
.eyebrow { display:inline-flex; align-items:center; gap:.6rem; font-size:.8rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent-600); margin-bottom:1rem; }
.eyebrow::before { display:none; }   /* ruhiger: kein repetitiver Querstrich vor jeder Überschrift */
.eyebrow--light { color:var(--accent-300); }
.section-head { max-width:62ch; margin-bottom:clamp(2rem,4vw,3rem); }
.section-head--center { margin-inline:auto; text-align:center; }
.section-head--center .eyebrow::before { display:none; }
.section-head__title { font-size:var(--fs-h2); line-height:var(--lh-h2); }
.section-head__lead { margin-top:.85rem; font-size:clamp(.95rem,1.4vw,1.15rem); color:var(--muted); line-height:1.55; }
.section-head--light .section-head__lead { color:var(--muted-light); }

/* ---- Buttons ------------------------------------------------------------ */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  min-height:44px; padding:.6rem 1.2rem; border-radius:var(--r-pill);
  font-weight:600; font-size:var(--fs-btn); line-height:1.1; text-align:center;
  transition:transform var(--t), background .4s var(--ease-soft), box-shadow .35s ease, border-color .3s ease, color var(--t);
  border:1.5px solid transparent; white-space:nowrap; }
.btn:hover { transform:translateY(-2px); }
.btn:active { transform:translateY(0); }
.btn__icon { width:18px; height:18px; transition:transform var(--t); }
.btn:hover .btn__icon:last-child { transform:translateX(4px); }
.btn--sm { min-height:40px; padding:.45rem .95rem; font-size:.88rem; }
.btn--lg { min-height:46px; padding:.72rem 1.45rem; font-size:.96rem; }
.btn--block { display:flex; width:100%; }
.btn--primary { background:var(--accent); color:#fff; box-shadow:0 8px 22px -8px rgba(47,128,237,.6); }
.btn--primary:hover { color:#fff; background:linear-gradient(120deg, var(--navy-800), var(--accent) 55%, var(--blue-bright));
  box-shadow:0 16px 34px -12px rgba(47,128,237,.7), 0 0 0 1px rgba(59,130,246,.35); }
.btn--secondary { background:transparent; color:var(--navy-800); border-color:var(--line-2); }
.btn--secondary:hover { background:var(--navy-900); color:#fff; border-color:var(--navy-900); }
.btn--light { background:#fff; color:var(--navy-900); }
.btn--light:hover { background:var(--hover-2); color:var(--navy-950); box-shadow:0 14px 30px -14px rgba(0,0,0,.5); }
.btn--ghost-light { background:transparent; color:#fff; border-color:var(--glass-bd); }
.btn--ghost-light:hover { background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.4); }

/* ---- Header ------------------------------------------------------------- */
.site-header { position:fixed; inset:0 0 auto 0; z-index:100; height:var(--header-h);
  background:var(--navy-950); transition:height var(--t), background var(--t), box-shadow var(--t), border-color var(--t);
  border-bottom:1px solid rgba(255,255,255,.08); }
.site-header--hero { background:transparent; border-bottom-color:transparent; }
.site-header.is-scrolled { height:var(--header-h-sm); background:rgba(7,17,31,.86);
  backdrop-filter:saturate(160%) blur(14px); -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom-color:rgba(255,255,255,.10); box-shadow:0 10px 30px -18px rgba(0,0,0,.6); }
/* When the mobile menu is open, lift the header above it so the close (X) stays usable */
body.menu-open .site-header { z-index:210; background:rgba(7,17,31,.97);
  backdrop-filter:saturate(160%) blur(12px); -webkit-backdrop-filter:saturate(160%) blur(12px); border-bottom-color:rgba(255,255,255,.12); }
@media (min-width:1080px){ body.menu-open .site-header { z-index:100; } }
.site-header__inner { height:100%; display:flex; align-items:center; gap:1rem; }

.logo { display:inline-flex; align-items:center; gap:.6rem; color:#fff; }
.logo:hover { color:#fff; }
.logo__img { height:42px; width:auto; display:block; transition:transform .4s var(--ease-soft), height var(--t); }
.logo:hover .logo__img { transform:translateY(-1px); }
.is-scrolled .logo__img { height:36px; }
.logo__sub { font-size:.62rem; line-height:1.18; max-width:9em; letter-spacing:.14em; text-transform:uppercase; color:var(--steel-2); font-weight:600; }
.footer__logo .logo__img { height:48px; }
@media (max-width:600px){ .logo__img { height:34px; } .is-scrolled .logo__img { height:32px; } .logo__sub { display:none; } }

.nav { display:none; }
.nav__list { display:flex; align-items:center; gap:.3rem; }
.nav__item { position:relative; }
.nav__link { display:inline-flex; align-items:center; gap:.3rem; padding:.6rem .8rem; border-radius:var(--r-sm); white-space:nowrap;
  color:rgba(255,255,255,.86); font-weight:500; font-size:.96rem; transition:color var(--t), background var(--t); }
.nav__link:hover { color:#fff; background:rgba(255,255,255,.07); }
.nav__link.is-active { color:#fff; }
.nav__link.is-active::after { content:""; position:absolute; left:.8rem; right:.8rem; bottom:.28rem; height:2px; background:var(--accent); border-radius:2px; }
.nav__caret { width:15px; height:15px; opacity:.8; transition:transform var(--t); }
.nav__item--menu:hover .nav__caret, .nav__item--menu:focus-within .nav__caret { transform:rotate(180deg); }
.nav__panel { position:absolute; top:calc(100% + 8px); left:0; min-width:288px; padding:.5rem;
  background:#fff; border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow-lg);
  opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity var(--t), transform var(--t), visibility var(--t); }
.nav__item--menu:hover .nav__panel, .nav__item--menu:focus-within .nav__panel { opacity:1; visibility:visible; transform:translateY(0); }
.nav__panel ul { display:grid; gap:2px; }
.nav__panel a { display:flex; align-items:center; gap:.65rem; padding:.6rem .7rem; border-radius:var(--r-sm); color:var(--ink-2); font-weight:500; font-size:.94rem; transition:background var(--t), color var(--t); }
.nav__panel a:hover { background:var(--surface-1); color:var(--accent-600); }
.nav__panel .icon { color:var(--accent); }
.site-header__actions { display:none; }
@media (min-width:1080px){ .site-header__actions { display:inline-flex; } .nav { display:block; margin-left:auto; } }

/* burger */
.burger { display:inline-flex; margin-left:auto; width:46px; height:46px; align-items:center; justify-content:center; color:#fff; border-radius:var(--r-sm); }
.burger:hover { background:rgba(255,255,255,.08); }
.burger__box { position:relative; width:24px; height:24px; }
.burger__box .icon { position:absolute; inset:0; transition:opacity var(--t), transform var(--t); }
.burger__close { opacity:0; transform:rotate(-90deg); }
@media (min-width:1080px){ .burger { display:none; } }

/* mobile menu */
.mobile-menu { position:fixed; inset:0; z-index:200; display:flex; justify-content:flex-end; }
.mobile-menu[hidden] { display:none; }
.mobile-menu__backdrop { position:absolute; inset:0; z-index:1; background:rgba(4,9,18,.55); border:0; cursor:pointer; }
.mobile-menu__panel { position:relative; z-index:2; width:min(360px,84vw); height:100%; margin-left:auto;
  padding:calc(var(--header-h) + .75rem) 1.4rem 1.6rem; background:var(--navy-900); border-left:1px solid rgba(255,255,255,.10);
  display:flex; flex-direction:column; gap:.6rem; overflow-y:auto; -webkit-overflow-scrolling:touch;
  transform:translateX(100%); transition:transform .3s var(--ease-soft); }
.mobile-menu.is-open .mobile-menu__panel { transform:translateX(0); }
.mobile-menu__list { display:grid; gap:.1rem; }
.mobile-menu__list a { display:flex; align-items:center; min-height:46px; padding:.7rem .4rem; color:#fff; font-size:1rem; font-weight:600; border-bottom:1px solid rgba(255,255,255,.08); }
.mobile-menu__list a[aria-current="page"] { color:var(--accent-300); }
.mobile-menu__cta { display:grid; gap:.65rem; margin-top:auto; padding-top:.5rem; }

/* ---- Hero --------------------------------------------------------------- */
.hero { position:relative; color:var(--ink-light); overflow:hidden; background:var(--dark-tech), var(--hero-grad);
  padding-top:calc(var(--header-h) + clamp(3.5rem,5vw,4rem)); padding-bottom:clamp(2.75rem,4vw,3.75rem); }
.hero__bg { position:absolute; inset:0; pointer-events:none; }
.hero__grid { position:absolute; inset:0; opacity:.5;
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.10) 1px, transparent 0); background-size:34px 34px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 78%); mask-image:linear-gradient(180deg,#000 0%,transparent 78%); }
.hero__inner { position:relative; display:grid; gap:clamp(1.8rem,5vw,3.5rem); align-items:center; }
.subhero__text, .split__text, .cta-band__text { min-width:0; }
.hero__title { font-size:var(--fs-h1); line-height:var(--lh-h1); }
.hero__lead { margin-top:1rem; font-size:clamp(.95rem,1.5vw,1.2rem); color:var(--muted-light); max-width:42ch; line-height:1.55; }
.hero__sub { margin-top:.85rem; font-size:clamp(.9rem,1.3vw,1rem); color:var(--steel-2); max-width:54ch; line-height:1.55; }
.hero__actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.4rem; }
.hero__trust { margin-top:1.2rem; font-size:.8rem; letter-spacing:.04em; color:var(--steel-2); }
.hero__media { position:relative; }
.hero__pic { border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid rgba(255,255,255,.12); }
.hero__pic img { width:100%; aspect-ratio:16/11; object-fit:cover; }
.hero__chips { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1rem; }
.hero__chip { display:inline-flex; align-items:center; gap:.5rem; padding:.6rem .95rem; font-size:.85rem; font-weight:500; color:#fff;
  background:rgba(8,18,33,.62); border:1px solid rgba(255,255,255,.2); border-radius:var(--r-pill);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); box-shadow:0 8px 24px -12px rgba(0,0,0,.6); }
.hero__chip .icon { color:var(--accent-300); }
@media (min-width:1080px){
  .hero__inner { grid-template-columns:1.05fr .95fr; }
  .hero__chips { position:absolute; left:-1rem; bottom:1.2rem; flex-direction:column; align-items:flex-start; }
}
/* Headings never hyphenate (set globally); mobile font sizes keep long German words whole. */

/* ---- Sub-page hero ------------------------------------------------------ */
.subhero { position:relative; color:var(--ink-light); overflow:hidden; background:var(--dark-tech), var(--hero-grad);
  padding-top:calc(var(--header-h) + clamp(1.4rem,5vw,3rem)); padding-bottom:clamp(2.2rem,5vw,3.8rem); }
.subhero__bg { position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.09) 1px, transparent 0); background-size:32px 32px;
  -webkit-mask-image:linear-gradient(120deg,#000,transparent 80%); mask-image:linear-gradient(120deg,#000,transparent 80%); }
.subhero__inner { position:relative; display:grid; gap:clamp(1.6rem,4vw,3rem); align-items:center; }
.subhero__crumbs { margin-bottom:1rem; }
.subhero__crumbs ol { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; font-size:.82rem; color:var(--muted-light); }
.subhero__crumbs li { display:inline-flex; align-items:center; gap:.35rem; }
.subhero__crumbs a { color:var(--steel-2); }
.subhero__crumbs a:hover { color:#fff; }
.subhero__crumbs [aria-current] { color:#fff; }
.subhero__title { font-size:var(--fs-h1); line-height:var(--lh-h1); }
.subhero__lead { margin-top:1rem; font-size:clamp(.95rem,1.5vw,1.2rem); color:var(--muted-light); max-width:52ch; line-height:1.55; }
.subhero__actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.6rem; }
.subhero__pic { border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid rgba(255,255,255,.12); }
.subhero__pic img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.subhero--text .subhero__inner { max-width:50rem; }
@media (min-width:1080px){ .subhero__inner { grid-template-columns:1.1fr .9fr; } }

/* ---- Breadcrumb bar (light pages) -------------------------------------- */
.breadcrumbs { background:var(--surface-1); border-bottom:1px solid var(--line); margin-top:var(--header-h); }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; padding-block:.8rem; font-size:.84rem; color:var(--muted); }
.breadcrumbs li { display:inline-flex; align-items:center; gap:.4rem; }
.breadcrumbs [aria-current] { color:var(--ink); font-weight:600; }
body:not(.has-hero) main { padding-top:0; }
body:not(.has-hero):not(.page-legal) main > .breadcrumbs:first-child { margin-top:var(--header-h); }

/* ---- Grids -------------------------------------------------------------- */
.grid { display:grid; gap:clamp(.9rem,2.5vw,1.25rem); }
.grid--2 { grid-template-columns:1fr; }
.grid--3 { grid-template-columns:1fr; }
@media (min-width:640px){ .grid--3 { grid-template-columns:repeat(2,1fr); } .grid--2 { grid-template-columns:repeat(2,1fr); } }
@media (min-width:980px){ .grid--3 { grid-template-columns:repeat(3,1fr); } }
.section__cta { margin-top:2.2rem; display:flex; justify-content:center; }

/* ---- Cards (light, premium hover) -------------------------------------- */
.card { position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.15rem,3vw,1.5rem);
  transition:transform .5s var(--ease-soft), box-shadow .5s ease, border-color .45s ease, background .6s ease;
  height:100%; display:flex; flex-direction:column; }
.card:hover { transform:translateY(-5px); box-shadow:var(--shadow-hover); border-color:rgba(59,130,246,.45);
  background:linear-gradient(180deg,#fff 0%, var(--hover-1) 100%); }
.card__icon { display:inline-flex; width:50px; height:50px; align-items:center; justify-content:center; margin-bottom:1.1rem;
  border-radius:var(--r); background:linear-gradient(140deg, rgba(47,128,237,.14), rgba(47,128,237,.06)); color:var(--accent-600);
  border:1px solid rgba(47,128,237,.18); transition:transform .5s var(--ease-soft), box-shadow .5s ease; }
.card:hover .card__icon { transform:translateY(-2px); box-shadow:0 10px 22px -10px rgba(47,128,237,.55); }
.card__title { font-size:var(--fs-card-title); font-weight:700; letter-spacing:-.01em; }
.card__text { margin-top:.55rem; color:var(--muted); font-size:.94rem; line-height:1.6; flex:1; }
.card__link { display:inline-flex; align-items:center; gap:.4rem; margin-top:1.1rem; font-weight:600; font-size:.95rem; color:var(--accent-600); }
.card__link .icon { transition:transform var(--t); }
.card:hover .card__link .icon { transform:translateX(5px); }
.card__muted { display:inline-block; margin-top:1.1rem; font-size:.86rem; color:var(--steel-1); font-weight:600; }
.card__badge { display:inline-block; margin-left:.5rem; padding:.12rem .5rem; font-size:.66rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--accent-600); background:rgba(47,128,237,.12); border:1px solid rgba(47,128,237,.35); border-radius:var(--r-pill); vertical-align:middle; }

.card--part { padding:0; overflow:hidden; }
.card--part:hover { background:#fff; }
.card--part__media { display:block; overflow:hidden; position:relative; }
.card--part__media::after { content:""; position:absolute; inset:0; opacity:0; transition:opacity .5s ease;
  background:linear-gradient(180deg, rgba(7,17,31,.04), rgba(47,128,237,.18)); }
.card--part:hover .card--part__media::after { opacity:1; }
.card--part__img img { width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .6s var(--ease-soft); }
.card--part:hover .card--part__img img { transform:scale(1.05); }
.card--part__body { padding:1.25rem; display:flex; flex-direction:column; flex:1; }

.card--group .card__title { font-size:1.2rem; }
.card--group-lg { padding:1.9rem; }
.card--group-lg .checklist { margin-top:1.1rem; margin-bottom:.4rem; }

/* ---- Values / features -------------------------------------------------- */
.values { display:grid; gap:1.2rem; }
@media (min-width:600px){ .values { grid-template-columns:repeat(2,1fr); } }
@media (min-width:980px){ .values { grid-template-columns:repeat(3,1fr); } }
.value { display:flex; gap:.9rem; align-items:flex-start; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r); padding:1.15rem; transition:box-shadow .45s ease, transform .45s var(--ease-soft), border-color .45s ease, background .5s ease; }
.value:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:rgba(59,130,246,.35); background:linear-gradient(180deg,#fff,var(--hover-1)); }
.value__icon { display:inline-flex; width:44px; height:44px; flex:none; align-items:center; justify-content:center; border-radius:var(--r-sm);
  background:rgba(47,128,237,.10); color:var(--accent-600); border:1px solid rgba(47,128,237,.16); }
.value__title { font-size:1.02rem; font-weight:700; }
.value__text { margin-top:.3rem; font-size:.93rem; color:var(--muted); line-height:1.6; }

/* ---- Team / Ansprechpartner ------------------------------------------- */
.team-grid { display:grid; gap:1.25rem; grid-template-columns:1fr; }
@media (min-width:600px){ .team-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:900px){ .team-grid { grid-template-columns:repeat(3,1fr); } }
.team-card { display:flex; flex-direction:column; align-items:flex-start; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:1.6rem; box-shadow:var(--shadow-sm); height:100%;
  transition:box-shadow .45s ease, transform .45s var(--ease-soft), border-color .45s ease; }
.team-card:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:rgba(59,130,246,.3); }
.team-card__avatar { width:60px; height:60px; flex:none; border-radius:50%; overflow:hidden; margin-bottom:1.1rem;
  display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:1.15rem; letter-spacing:.02em;
  color:#fff; background:linear-gradient(140deg, var(--navy-800), var(--navy-700));
  border:1px solid rgba(56,189,248,.28); box-shadow:inset 0 1px 0 rgba(255,255,255,.12); }
.team-card__avatar img { width:100%; height:100%; object-fit:cover; }
.team-name { font-size:1.05rem; font-weight:700; letter-spacing:-.01em; color:var(--ink); }
.team-role { margin-top:.15rem; font-size:.92rem; color:var(--muted); }
.team-email { display:inline-flex; align-items:center; gap:.4rem; margin-top:.7rem; font-size:.92rem; font-weight:600;
  color:var(--accent-600); overflow-wrap:break-word; word-break:break-word; transition:color var(--t); }
.team-email .icon { color:var(--accent); flex:none; }
.team-email:hover { color:var(--accent); }
.team-card__avatar--placeholder svg { width:26px; height:26px; color:rgba(255,255,255,.6); }

/* ---- Team-Seite (große Darstellung) ------------------------------------- */
.team-members { display:grid; gap:1.75rem; grid-template-columns:1fr; }
@media (min-width:640px){ .team-members { grid-template-columns:repeat(2,1fr); } }
@media (min-width:920px){ .team-members { grid-template-columns:repeat(3,1fr); } }
.team-member { position:relative; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm);
  transition:box-shadow .45s ease, transform .45s var(--ease-soft), border-color .45s ease; }
.team-member::before { content:""; position:absolute; left:0; right:0; top:0; height:2px; z-index:2;
  background:linear-gradient(90deg, var(--accent), var(--accent-bright));
  opacity:0; transform:scaleX(.3); transform-origin:left;
  transition:opacity .5s ease, transform .6s var(--ease-soft); }
.team-member:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:rgba(59,130,246,.3); }
.team-member:hover::before { opacity:1; transform:scaleX(1); }
.team-member__photo { position:relative; aspect-ratio:1 / 1; background:linear-gradient(150deg, var(--navy-800), var(--navy-700));
  display:flex; align-items:center; justify-content:center; }
.team-member__photo img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
/* Platzhalter ohne Foto: gebrandetes Blueprint-Panel + Medaillon statt leerer Box */
.team-member__photo--placeholder::after { content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px),
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.10) 1px, transparent 0);
  background-size:46px 46px, 46px 46px, 26px 26px; }
.team-member__monogram { position:relative; z-index:1; width:clamp(82px,27%,108px); aspect-ratio:1; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 120% at 50% 30%, rgba(56,189,248,.20), rgba(11,22,38,.55));
  border:1px solid rgba(56,189,248,.42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 12px 28px -14px rgba(0,0,0,.75); }
.team-member__monogram svg { width:46%; height:46%; color:rgba(186,230,253,.92); }
.team-member__body { padding:1.4rem 1.5rem 1.6rem; }
.team-member__name { font-size:1.2rem; font-weight:700; letter-spacing:-.01em; color:var(--ink); }
.team-member__role { margin-top:.25rem; font-size:.95rem; color:var(--muted); }
.team-member__email { display:inline-flex; align-items:center; gap:.45rem; margin-top:1rem; font-size:.95rem; font-weight:600;
  color:var(--accent-600); overflow-wrap:break-word; word-break:break-word; transition:color var(--t); }
.team-member__email .icon { color:var(--accent); flex:none; }
.team-member__email:hover { color:var(--accent); }

/* ---- Checklist ---------------------------------------------------------- */
.checklist { display:grid; gap:.6rem; }
.checklist li { display:flex; gap:.6rem; align-items:flex-start; font-size:.97rem; line-height:1.55; }
.checklist .icon { color:var(--accent); margin-top:3px; flex:none; }
.checklist--2col { grid-template-columns:1fr; }
@media (min-width:560px){ .checklist--2col { grid-template-columns:repeat(2,1fr); } }

/* ---- Chips -------------------------------------------------------------- */
.chips-label { font-weight:600; margin:1.6rem 0 .8rem; }
.chips { display:flex; flex-wrap:wrap; gap:.6rem; }
.chip { padding:.55rem 1rem; border:1px solid var(--line-2); border-radius:var(--r-pill); background:var(--surface);
  font-size:.9rem; font-weight:500; color:var(--ink-2); transition:border-color var(--t), color var(--t), background var(--t); }
.chip:hover { border-color:var(--accent); color:var(--accent-600); background:var(--hover-2); }

/* ---- Problem section (sparing "Stillstand" accent) --------------------- */
.problem__grid { display:grid; gap:1.6rem; }
@media (min-width:900px){ .problem__grid { grid-template-columns:1.15fr .85fr; align-items:start; } }
.problem__list { display:grid; gap:1rem; }
.problem__item { display:flex; gap:.85rem; align-items:flex-start; background:var(--surface); border:1px solid var(--line);
  border-left:4px solid var(--warn); border-radius:var(--r); padding:1rem 1.1rem; transition:box-shadow .45s ease, transform .45s var(--ease-soft); }
.problem__item:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); }
.problem__item h3 { font-size:1.06rem; }
.problem__item p { margin-top:.25rem; color:var(--muted); font-size:.94rem; line-height:1.55; }
.problem__icon { display:inline-flex; width:42px; height:42px; flex:none; align-items:center; justify-content:center; border-radius:var(--r-sm);
  background:rgba(245,158,11,.13); color:#b9770b; border:1px solid rgba(245,158,11,.3); }
.problem__solution { position:relative; overflow:hidden; background:var(--hero-grad); color:#fff; border-radius:var(--r-lg); padding:1.8rem;
  box-shadow:var(--shadow-md); border:1px solid rgba(255,255,255,.1); }
.problem__solution::before { content:""; position:absolute; inset:0; background:var(--dark-tech); pointer-events:none; }
.problem__solution > * { position:relative; }
.problem__solution-eyebrow { display:inline-flex; align-items:center; gap:.5rem; font-weight:700; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-300); margin-bottom:1.1rem; }
.problem__flow { display:grid; gap:.7rem; margin-bottom:1.5rem; }
.problem__flow li { display:flex; align-items:center; gap:.8rem; font-weight:500; color:rgba(255,255,255,.92); }
.problem__flow span { display:inline-flex; width:28px; height:28px; flex:none; align-items:center; justify-content:center; border-radius:50%;
  background:rgba(255,255,255,.10); border:1px solid var(--glass-bd); font-size:.85rem; font-weight:700; color:#fff; }

/* ---- Industries --------------------------------------------------------- */
.industries { display:flex; flex-wrap:wrap; gap:.8rem; }
.industry { display:inline-flex; align-items:center; gap:.6rem; padding:.7rem 1.1rem; border:1px solid var(--line-2);
  border-radius:var(--r-pill); background:var(--surface); font-weight:600; font-size:.95rem; min-height:46px;
  transition:border-color var(--t), color var(--t), background var(--t), transform .35s var(--ease-soft); }
.industry:hover { border-color:var(--accent); color:var(--accent-600); background:var(--hover-2); transform:translateY(-2px); }
.industry__icon { color:var(--accent); }
.industry__icon .icon { width:20px; height:20px; }

/* ---- Process / steps (dark, glass hover) ------------------------------- */
.steps { display:grid; gap:1.4rem; position:relative; }
.step { position:relative; background:var(--glass-bg); border:1px solid var(--glass-bd); border-radius:var(--r); padding:1.4rem;
  transition:transform .5s var(--ease-soft), border-color .5s ease, background .5s ease, box-shadow .5s ease; }
.step:hover { transform:translateY(-4px); border-color:rgba(59,130,246,.5); background:rgba(59,130,246,.08);
  box-shadow:0 0 0 1px rgba(59,130,246,.22), 0 22px 44px -26px rgba(0,0,0,.7), inset 0 0 34px rgba(59,130,246,.12); }
.step__head { display:flex; align-items:center; gap:.8rem; margin-bottom:.9rem; }
.step__num { display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center; border-radius:50%;
  background:var(--accent); color:#fff; font-weight:800; font-size:1.05rem; box-shadow:0 6px 16px -6px rgba(47,128,237,.8); }
.step__icon { display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center; border-radius:var(--r-sm);
  background:rgba(255,255,255,.06); border:1px solid var(--glass-bd); color:var(--accent-300); }
.step__title { font-size:1.05rem; color:#fff; }
.step__text { margin-top:.4rem; color:var(--muted-light); font-size:.93rem; line-height:1.55; }
@media (min-width:992px){
  .steps { grid-template-columns:repeat(5,1fr); gap:1rem; }
  .steps::before { content:""; position:absolute; top:20px; left:8%; right:8%; height:2px;
    background:linear-gradient(90deg, transparent, rgba(47,128,237,.5), transparent); }
}

/* ---- Split feature ------------------------------------------------------ */
.split__grid { display:grid; gap:clamp(1.8rem,4vw,3rem); align-items:center; }
.split__media { order:-1; }
.split__pic { border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-md); border:1px solid var(--line); }
.split__pic img { width:100%; object-fit:cover; transition:transform .6s var(--ease-soft); }
.split__pic:hover img { transform:scale(1.04); }
.split__title { font-size:var(--fs-h2); line-height:var(--lh-h2); }
.split__text > .prose, .split__text .checklist, .split__text .img-caption { margin-top:1.1rem; }
.split__text > p { margin-top:1rem; color:var(--ink-2); line-height:1.65; }
.prose__cta { margin-top:1.6rem; }
@media (min-width:900px){
  .split__grid { grid-template-columns:1fr 1fr; }
  .split__media { order:0; }
  .split--rev .split__text { order:2; }
}

/* ---- Prose / panels ----------------------------------------------------- */
.prose { color:var(--ink-2); }
.prose p { margin-top:1rem; line-height:1.65; }
.prose p:first-child { margin-top:0; }
.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.3rem; height:100%;
  transition:box-shadow .45s ease, transform .45s var(--ease-soft), border-color .45s ease; }
.panel:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:rgba(59,130,246,.3); }
.panel__title { display:flex; align-items:center; gap:.55rem; font-size:1.12rem; margin-bottom:.6rem; }
.panel__title .icon { color:var(--accent); }
.panel p { color:var(--muted); line-height:1.6; }
.panel .checklist { margin-top:1rem; }

/* ---- Notice boxes ------------------------------------------------------- */
.notice { display:flex; gap:.9rem; align-items:flex-start; background:rgba(47,128,237,.07); border:1px solid rgba(47,128,237,.22);
  border-radius:var(--r); padding:1.1rem 1.2rem; margin-top:1.6rem; font-size:.95rem; color:var(--ink-2); line-height:1.6; }
.notice__icon { color:var(--accent-600); flex:none; }
.notice--warn { background:rgba(245,158,11,.09); border-color:rgba(245,158,11,.34); }
.notice--warn .notice__icon { color:#b9770b; }

/* ---- FAQ (native details) ---------------------------------------------- */
.faq { display:grid; gap:.8rem; }
.faq__item { border:1px solid var(--line); border-radius:var(--r); background:var(--surface); transition:box-shadow .4s ease, border-color .4s ease; }
.faq__item[open] { box-shadow:var(--shadow-sm); border-color:rgba(59,130,246,.35); }
.faq__q { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.05rem 1.3rem;
  font-weight:600; font-size:1.04rem; color:var(--ink); cursor:pointer; list-style:none; min-height:56px; }
.faq__q::-webkit-details-marker { display:none; }
.faq__q:hover { color:var(--accent-600); }
.faq__chevron { color:var(--accent); flex:none; display:inline-flex; transition:transform var(--t); }
.faq__item[open] .faq__chevron { transform:rotate(180deg); }
.faq__a { padding:0 1.3rem 1.2rem; color:var(--muted); line-height:1.65; }
.faq__a p { margin:0; }

/* ---- CTA band ----------------------------------------------------------- */
.cta-band { position:relative; overflow:hidden; background:var(--navy-900); color:#fff; padding-block:clamp(3rem,6vw,4.5rem); }
.cta-band__bg { position:absolute; inset:0; background:var(--dark-tech), var(--hero-grad); }
.cta-band__bg::after { content:""; position:absolute; inset:0;
  background-image:radial-gradient(circle at 1px 1px, rgba(255,255,255,.08) 1px, transparent 0); background-size:30px 30px; opacity:.55; }
.cta-band__inner { position:relative; display:grid; gap:1.8rem; align-items:center; }
.cta-band__text h2 { font-size:var(--fs-h2); line-height:var(--lh-h2); }
.cta-band__text p { margin-top:.9rem; color:var(--muted-light); max-width:54ch; line-height:1.6; }
.cta-band__actions { display:flex; flex-wrap:wrap; gap:.8rem; }
@media (min-width:900px){ .cta-band__inner { grid-template-columns:1.3fr .7fr; } .cta-band__actions { flex-direction:column; align-items:stretch; } }

/* ---- Thank-you page ----------------------------------------------------- */
.thanks { position:relative; min-height:72vh; display:flex; align-items:center; text-align:center;
  background:var(--dark-tech), var(--hero-grad); color:#fff; overflow:hidden;
  padding-top:calc(var(--header-h) + 3rem); padding-bottom:4rem; }
.thanks__bg { position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px, rgba(255,255,255,.09) 1px, transparent 0); background-size:32px 32px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 85%); mask-image:linear-gradient(180deg,#000,transparent 85%); }
.thanks__inner { position:relative; }
.thanks__eyebrow { justify-content:center; }
.thanks__eyebrow::before { display:none; }
.thanks__icon { display:inline-flex; width:84px; height:84px; align-items:center; justify-content:center; border-radius:50%;
  background:rgba(47,128,237,.18); border:1px solid rgba(47,128,237,.55); color:var(--accent-300); margin-bottom:1.2rem; }
.thanks__icon .icon { width:44px; height:44px; }
.thanks h1 { font-size:clamp(1.6rem,5vw,2.8rem); line-height:1.16; }
.thanks__lead { margin:1rem auto 0; font-size:clamp(1.05rem,1.6vw,1.22rem); color:var(--muted-light); max-width:52ch; line-height:1.6; }
.thanks__actions { display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:2rem; }
.thanks__contact { margin-top:2rem; display:inline-flex; flex-wrap:wrap; gap:.5rem; align-items:center; justify-content:center; color:var(--muted-light); font-size:.92rem; }
.thanks__contact .icon { color:var(--accent-300); }
.thanks__contact a { color:#fff; }

/* ---- Contact ------------------------------------------------------------ */
.contact__grid { display:grid; gap:2rem; }
@media (min-width:920px){ .contact__grid { grid-template-columns:.85fr 1.15fr; align-items:start; } }
.contact__info { position:relative; overflow:hidden; background:var(--hero-grad); color:#fff; border-radius:var(--r-lg); padding:1.8rem; box-shadow:var(--shadow-md); }
.contact__info::before { content:""; position:absolute; inset:0; background:var(--dark-tech); pointer-events:none; }
.contact__info > * { position:relative; }
.contact__info-title { font-size:1.4rem; }
.contact__info-lead { margin-top:.7rem; color:var(--muted-light); font-size:.96rem; line-height:1.6; }
.contact__block { margin-top:1.5rem; }
.contact__label { display:block; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-300); font-weight:700; margin-bottom:.5rem; }
.contact__line { display:flex; align-items:center; gap:.7rem; color:#fff; font-weight:500; padding:.35rem 0; min-height:30px; }
.contact__line--top { align-items:flex-start; font-weight:400; font-style:normal; color:var(--muted-light); }
.contact__line:hover { color:var(--accent-300); }
.contact__ic { color:var(--accent-300); flex:none; }
.contact__route { display:inline-flex; align-items:center; gap:.4rem; margin-top:.6rem; font-size:.9rem; color:var(--accent-300); font-weight:600; }
.contact__note { display:flex; align-items:center; gap:.5rem; margin-top:1.8rem; padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.14); font-size:.88rem; color:var(--muted-light); }
.contact__note .icon { color:var(--accent-300); }

/* ---- Forms -------------------------------------------------------------- */
.form { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.4rem,3vw,2rem); box-shadow:var(--shadow-sm); }
.form__intro { font-size:.88rem; color:var(--muted); margin-bottom:1.3rem; }
.req { color:#d11e3a; font-weight:700; }
.form__row { display:grid; gap:1.1rem; }
@media (min-width:560px){ .form__row { grid-template-columns:1fr 1fr; } }
.form__group { margin-bottom:1.1rem; }
.form__label { display:block; font-weight:600; font-size:.94rem; margin-bottom:.45rem; }
.form__input,.form__select,.form__textarea { width:100%; min-height:48px; padding:.8rem .95rem; font:inherit; font-size:1rem; color:var(--ink);
  background:var(--surface-1); border:1.5px solid var(--line-2); border-radius:var(--r-sm); transition:border-color var(--t), box-shadow var(--t), background var(--t); }
.form__input:focus,.form__select:focus,.form__textarea:focus { outline:none; border-color:var(--accent); background:#fff; box-shadow:0 0 0 4px rgba(47,128,237,.14); }
.form__input:user-invalid,.form__select:user-invalid,.form__textarea:user-invalid { border-color:#d11e3a; }
.form__textarea { resize:vertical; min-height:140px; line-height:1.55; }
.form__select-wrap { position:relative; }
.form__select { appearance:none; -webkit-appearance:none; padding-right:2.6rem; cursor:pointer; }
.form__select-ic { position:absolute; right:.9rem; top:50%; transform:translateY(-50%); color:var(--muted); pointer-events:none; }
.form__file { display:flex; align-items:center; gap:.6rem; min-height:48px; padding:.85rem .95rem; border:1.5px dashed var(--line-2); border-radius:var(--r-sm);
  background:var(--surface-1); color:var(--muted); cursor:pointer; font-size:.94rem; transition:border-color var(--t), color var(--t), background var(--t); }
.form__file:hover { border-color:var(--accent); color:var(--accent-600); background:var(--hover-2); }
.form__file .icon { color:var(--accent); }
.form__file-input { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; }
.form__hint { font-size:.82rem; color:var(--muted); margin-top:.45rem; }
.form__check { display:flex; gap:.75rem; align-items:flex-start; margin:1.2rem 0; font-size:.95rem; line-height:1.5; color:var(--ink-2); }
.form__check input { width:1.35rem; height:1.35rem; margin-top:1px; flex:none; accent-color:var(--accent); }
.form__hp { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.form__actions { margin-top:.4rem; }
.form__status { margin-top:1rem; padding:.9rem 1.1rem; border-radius:var(--r-sm); font-size:.92rem; font-weight:500;
  background:rgba(209,30,58,.08); border:1px solid rgba(209,30,58,.3); color:#a01228; }
.form__success { text-align:center; padding:clamp(2rem,5vw,3.4rem); background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); }
.form__success-ic { display:inline-flex; width:64px; height:64px; align-items:center; justify-content:center; border-radius:50%;
  background:rgba(47,128,237,.12); color:var(--accent); margin-bottom:1.1rem; }
.form__success-ic .icon { width:34px; height:34px; }
.form__success h2 { font-size:1.5rem; }
.form__success p { margin-top:.6rem; color:var(--muted); }
.is-submitting .btn--primary { opacity:.7; pointer-events:none; }

/* ---- Legal -------------------------------------------------------------- */
.legal-head { padding-top:calc(var(--header-h) + clamp(2rem,5vw,3rem)); padding-bottom:clamp(1rem,3vw,1.6rem); background:var(--surface-1); border-bottom:1px solid var(--line); }
.legal-head h1 { font-size:clamp(1.55rem,4vw,2.5rem); }
.legal-head p { margin-top:.6rem; color:var(--muted); }
.legal h2 { font-size:1.22rem; margin-top:2rem; }
.legal p { margin-top:.7rem; line-height:1.7; }
.legal a { color:var(--accent-600); text-decoration:underline; text-underline-offset:2px; }
body.page-legal:not(.has-hero) main { padding-top:0; }
body.page-legal .legal-head { margin-top:0; }
body.page-legal main > .breadcrumbs:first-child { margin-top:var(--header-h); }

/* ---- Footer ------------------------------------------------------------- */
.site-footer { background:var(--navy-950); color:var(--muted-light); padding-top:clamp(2.5rem,4vw,3.5rem); }
.site-footer__grid { display:grid; gap:1.6rem 1.8rem; padding-bottom:1.8rem; }
@media (min-width:680px){ .site-footer__grid { grid-template-columns:repeat(3,1fr); } }
@media (min-width:980px){ .site-footer__grid { grid-template-columns:1.7fr 1.25fr 1fr 1fr 1fr; align-items:start; } }
.footer__col--contact .footer__address { margin-top:.3rem; }
@media (max-width:600px){ .footer__logo .logo__img { height:42px; } }
.footer__logo { margin-bottom:1.1rem; }
.footer__tag { font-size:.92rem; max-width:42ch; line-height:1.6; }
.footer__address { font-style:normal; margin-top:.3rem; font-size:.9rem; line-height:1.7; }
.footer__address strong { color:#fff; }
.footer__contact { display:flex; align-items:center; gap:.5rem; margin-top:.5rem; }
.footer__contact .icon { color:var(--accent-300); }
.footer__phones { display:flex; flex-direction:column; gap:.1rem; }
.footer__address a { color:var(--muted-light); }
.footer__address a:hover { color:#fff; }
.footer__h { font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:#fff; font-weight:700; margin-bottom:1rem; }
.footer__col ul { display:grid; gap:.55rem; }
.footer__col a { color:var(--muted-light); font-size:.93rem; display:inline-flex; align-items:center; gap:.35rem; min-height:30px; transition:color var(--t), transform .3s var(--ease-soft); }
.footer__col a:hover { color:#fff; transform:translateX(2px); }
.site-footer__bar { border-top:1px solid rgba(255,255,255,.10); }
.site-footer__bar-inner { display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; justify-content:space-between; align-items:center; padding-block:1.4rem; font-size:.84rem; color:var(--steel-1); }

/* ---- Mobile floating CTA (single "Anfrage" → form) --------------------- */
.mobile-fab { position:fixed; right:1rem; bottom:calc(1rem + env(safe-area-inset-bottom)); z-index:90; display:none;
  align-items:center; gap:.5rem; padding:.8rem 1.25rem; border-radius:var(--r-pill);
  background:linear-gradient(120deg, var(--navy-800), var(--accent) 92%); color:#fff; font-weight:600; font-size:.98rem; min-height:52px;
  box-shadow:0 14px 30px -8px rgba(47,128,237,.65), 0 0 0 1px rgba(56,189,248,.3), inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform var(--t), box-shadow var(--t); }
.mobile-fab .icon { width:20px; height:20px; }
.mobile-fab:hover, .mobile-fab:focus-visible { color:#fff; transform:translateY(-2px); }
@media (max-width:767px){ .mobile-fab { display:inline-flex; } body:not(.page-contact) .site-footer__bar { padding-bottom:4.25rem; } }
.page-contact .mobile-fab, body.menu-open .mobile-fab { display:none; }

/* ---- Mobile menu accordion (Leistungen / Ersatzteile) ------------------ */
.mobile-menu__list .m-acc details { border-bottom:1px solid rgba(255,255,255,.08); }
.mobile-menu__list .m-acc summary { display:flex; align-items:center; justify-content:space-between; gap:.5rem; min-height:46px;
  padding:.7rem .4rem; color:#fff; font-size:1rem; font-weight:600; cursor:pointer; list-style:none; }
.mobile-menu__list .m-acc summary::-webkit-details-marker { display:none; }
.mobile-menu__list .m-acc details[open] > summary { color:var(--accent-300); }
.m-chev { color:var(--accent-300); transition:transform var(--t); flex:none; }
.m-acc details[open] > summary .m-chev { transform:rotate(180deg); }
.mobile-menu__list .m-sub { display:grid; gap:.05rem; padding:.25rem 0 .65rem; }
.mobile-menu__list .m-sub a { display:flex; align-items:center; min-height:40px; padding:.4rem .6rem .4rem 1rem; border-bottom:0;
  color:var(--muted-light); font-size:.92rem; font-weight:500; }
.mobile-menu__list .m-sub a:hover { color:#fff; }
/* "Alle …" = overview link, on top, clearly highlighted */
.mobile-menu__list .m-sub__all { color:#fff; font-weight:600; font-size:.95rem; min-height:42px; padding:.5rem .7rem;
  background:rgba(56,189,248,.10); border:1px solid rgba(56,189,248,.24); border-radius:9px; margin:.1rem 0 .35rem; }
.mobile-menu__list .m-sub__all:hover { color:#fff; background:rgba(56,189,248,.18); border-color:rgba(56,189,248,.4); }

/* ---- Mobile refinements (Typo läuft über :root-Variablen oben) --------- */
@media (max-width:767px){
  /* keep form fields at 16px so iOS Safari does not zoom in on focus */
  .form__input, .form__select, .form__textarea { font-size:16px; }

  /* Ruhige Sektionsabstände (≈56–72px) */
  .section { padding-block:clamp(3.5rem,9vw,4.5rem); }
  .section-head { margin-bottom:1.6rem; }
  .section-head__lead { margin-top:.6rem; }
  .section__cta { margin-top:1.6rem; }

  /* Hero – kompakt, aber mit klarer Headline */
  .hero { padding-top:calc(var(--header-h) + 1.6rem); padding-bottom:1.9rem; }
  .hero__inner { gap:1.2rem; }
  .hero__lead { margin-top:.7rem; max-width:46ch; }
  .hero__sub { margin-top:.55rem; }
  .hero__actions { margin-top:1.15rem; gap:.6rem; }
  .hero__trust { margin-top:.85rem; font-size:.72rem; }
  .hero__chips { display:none; }
  .hero__pic img { aspect-ratio:2/1; }

  /* Sub-page hero */
  .subhero { padding-top:calc(var(--header-h) + 1.2rem); padding-bottom:1.7rem; }
  .subhero__inner { gap:1.3rem; }
  .subhero__crumbs { margin-bottom:.7rem; }
  .subhero__crumbs ol { font-size:.76rem; }
  .subhero__lead { margin-top:.6rem; }
  .subhero__pic img { aspect-ratio:16/10; }

  .card__text { font-size:.95rem; }
  .cta-band { padding-block:clamp(3.5rem,9vw,4.5rem); }
  .cta-band__text p { margin-top:.7rem; }
  .legal h2 { margin-top:1.6rem; }

  /* Buttons (Jan: 14px Text via --fs-btn, 44px Höhe) */
  .btn { min-height:44px; padding:11px 16px; }
  .btn--lg { min-height:46px; padding:13px 18px; }

  /* ---- Footer — kompakt ---- */
  .site-footer { padding-top:2.4rem; }
  .site-footer__grid { gap:1.4rem 1.3rem; padding-bottom:1.4rem; }
  .footer__logo { margin-bottom:.7rem; }
  .footer__logo .logo__img { height:34px; }
  .footer__tag { font-size:.9rem; line-height:1.55; max-width:52ch; }
  .footer__address { font-size:.9rem; line-height:1.6; margin-top:.25rem; }
  .footer__contact { margin-top:.35rem; }
  .footer__h { letter-spacing:.1em; margin-bottom:.55rem; }
  .footer__col ul { gap:.35rem; }
  .footer__col a { font-size:.9rem; min-height:26px; }
  .site-footer__bar-inner { padding-block:1.1rem; gap:.35rem .8rem; }
}

/* Footer link groups in two tidy columns on phones (brand + contact full-width) */
@media (max-width:679px){
  .site-footer__grid { grid-template-columns:1fr 1fr; }
  .footer__brand, .footer__col--contact { grid-column:1 / -1; }
}
@media (max-width:359px){
  .site-footer__grid { grid-template-columns:1fr; }
}

@media (max-width:560px){
  .hero__actions .btn, .subhero__actions .btn, .cta-band__actions .btn, .thanks__actions .btn { flex:1 1 100%; }
  .form__actions .btn { width:100%; }
  .section__cta .btn { width:100%; }
}

/* ---- Reveal animation (desktop/tablet only) ---------------------------- */
[data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s var(--ease-soft); }
[data-reveal].is-visible { opacity:1; transform:none; }
[data-reveal-group] > [data-reveal].is-visible { transition-delay:var(--d,0ms); }
html:not(.js) [data-reveal] { opacity:1; transform:none; }
@media (max-width:768px){ [data-reveal] { opacity:1 !important; transform:none !important; transition:none !important; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms !important; transition-duration:.001ms !important; }
  [data-reveal] { opacity:1 !important; transform:none !important; }
  .btn:hover, .card:hover, .value:hover, .step:hover, .panel:hover, .problem__item:hover, .industry:hover { transform:none; }
  .card--part:hover .card--part__img img, .split__pic:hover img { transform:none; }
}

/* ============================================================
   FUTURISTIC-INDUSTRIAL LAYER  (visual only – no layout shifts)
   ============================================================ */

/* Technical mono labels */
.eyebrow { font-family:var(--mono); font-weight:600; font-size:.75rem; letter-spacing:.16em; }
.problem__solution-eyebrow, .contact__label { font-family:var(--mono); }

/* Blueprint texture on light alt sections */
.section--alt {
  background-image:
    linear-gradient(rgba(14,42,71,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(14,42,71,.035) 1px, transparent 1px),
    radial-gradient(circle at 90% -10%, rgba(47,128,237,.07), transparent 45%);
  background-size:64px 64px, 64px 64px, 100% 100%;
  background-position:center top; background-color:var(--surface-1);
}

/* Primary button: industrial gradient + cyan glow */
.btn--primary { background:linear-gradient(120deg, var(--navy-800) 0%, var(--accent) 92%);
  box-shadow:0 8px 22px -8px rgba(47,128,237,.55), inset 0 1px 0 rgba(255,255,255,.16); }
.btn--primary:hover { background:linear-gradient(120deg, var(--navy-700) 0%, var(--accent) 55%, var(--blue-bright) 100%);
  box-shadow:0 16px 36px -12px rgba(56,189,248,.5), 0 0 0 1px rgba(56,189,248,.35), inset 0 1px 0 rgba(255,255,255,.2); }

/* Light cards: thin blue scan-line accent on hover */
.card:not(.card--part)::before { content:""; position:absolute; left:0; right:0; top:0; height:2px;
  background:linear-gradient(90deg, var(--accent), var(--accent-bright));
  border-radius:var(--r-lg) var(--r-lg) 0 0; opacity:0; transform:scaleX(.3); transform-origin:left;
  transition:opacity .5s ease, transform .6s var(--ease-soft); z-index:1; }
.card:not(.card--part):hover::before { opacity:1; transform:scaleX(1); }

/* Glass / dark panels: top light edge */
.hero__chip { box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 8px 24px -12px rgba(0,0,0,.6); }
.step { box-shadow:inset 0 1px 0 rgba(255,255,255,.12); }
.problem__solution, .contact__info { box-shadow:inset 0 1px 0 rgba(255,255,255,.14), var(--shadow-md); }

/* Dark sections: fine blueprint line-grid + dot raster overlay */
.hero__grid, .subhero__bg, .thanks__bg, .cta-band__bg::after {
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.10) 1px, transparent 0);
  background-size:62px 62px, 62px 62px, 34px 34px;
}

/* Dark glass dropdown (matches technical header) */
.nav__panel { background:rgba(11,22,38,.96); border-color:rgba(255,255,255,.12);
  backdrop-filter:saturate(160%) blur(14px); -webkit-backdrop-filter:saturate(160%) blur(14px);
  box-shadow:0 24px 50px -24px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.08); }
.nav__panel a { color:rgba(255,255,255,.82); }
.nav__panel a:hover { background:rgba(56,189,248,.10); color:#fff; }
.nav__panel .icon { color:var(--accent-bright); }

/* Hero / sub-hero image: cyan ring + HUD corner brackets (desktop) */
.hero__pic, .subhero__pic { box-shadow:var(--shadow-lg), 0 0 0 1px rgba(56,189,248,.10); }
@media (min-width:1080px){
  .hero__media, .subhero__media { position:relative; }
  .hero__media::before, .hero__media::after,
  .subhero__media::before, .subhero__media::after {
    content:""; position:absolute; width:24px; height:24px; z-index:3; pointer-events:none; border:2px solid rgba(56,189,248,.55); }
  .hero__media::before, .subhero__media::before { top:-7px; left:-7px; border-right:0; border-bottom:0; }
  .hero__media::after, .subhero__media::after { bottom:-7px; right:-7px; border-left:0; border-top:0; }
}

/* Footer + header: sparse brand-red accent lines */
.site-footer { position:relative; }
.site-footer::before { content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--red), transparent); opacity:.75; }
.site-header::before { content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--red); opacity:.85; z-index:2; }

/* Contact: upload-by-email note (replaces the removed file upload) */
.form__upload-note { display:flex; gap:.5rem; align-items:flex-start; margin:.2rem 0 .6rem; }
.form__upload-note .icon { color:var(--accent); flex:none; margin-top:2px; }

/* ---- "Webseite von Epsilon Digital" credit (discreet, footer + menu) ---- */
.epsilon-credit { display:inline-flex; align-items:center; gap:.3rem; font-size:clamp(.72rem,1.4vw,.8rem);
  font-weight:500; letter-spacing:.015em; color:rgba(248,250,252,.58); text-decoration:none; white-space:nowrap;
  transition:color .2s ease, transform .2s ease; }
.epsilon-credit__name { font-weight:700; color:rgba(248,250,252,.85); }
.epsilon-credit:hover .epsilon-credit__name { color:#fff; }
.epsilon-credit::after { content:"\2197"; font-size:.78em; opacity:.7; }   /* ↗ */
.epsilon-credit:hover, .epsilon-credit:focus-visible { color:#fff; transform:translateY(-1px); }
/* in the footer bottom bar: sits at the far right on desktop */
.site-footer__bar-inner .epsilon-credit { margin-left:auto; }
/* in the mobile drawer: centered, below the contact buttons */
.mobile-menu__credit { justify-content:center; margin-top:.4rem; padding-top:.85rem;
  border-top:1px solid rgba(255,255,255,.08); font-size:.78rem; }
@media (max-width:680px){
  .site-footer__bar-inner { justify-content:center; text-align:center; }
  .site-footer__bar-inner > * { flex-basis:100%; }
  .site-footer__bar-inner .epsilon-credit { margin-left:0; justify-content:center; }
}
