:root{
  --max: 1320px;

  /* Brand */
  --blue:#1667d9;
  --green:#1f7a3a;

  /* UI */
  --text:#0f172a;
  --muted:#475569;
  --bg:#f6f8fc;
  --card:#ffffff;

  /* Header */
  --header-height: 104px;
  --header-strip-h: 4px; /* blauer Streifen unten */

  /* Logo */
  --logo-height: 66px;
  --logo-scale: 1.05;

  /* Hero */
  --hero-aspect: 2048 / 1170;
  --hero-min-h: 560px;

  /* Lightning */
  --bolt-scale: 0.66;
  --bolt-x: 93%;
  --bolt-y: 16%;

  /* Hero panel */
  --glass-bg: rgba(255,255,255,.76);
  --glass-border: rgba(15,23,42,.10);
  --glass-shadow: 0 18px 44px rgba(15,23,42,.18);

  /* Mobile hero */
  --mobile-hero-h: 320px;
  --mobile-focus-x: 84%;
  --mobile-focus-y: 18%;
}

/* Smooth Scroll für Anchor-Links */
html {
  scroll-behavior: smooth;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  overflow-x:hidden;
}

a{color:inherit; text-decoration:none}
.container{width:min(var(--max), 94vw); margin:0 auto}

/* ===== Header fixed ===== */
header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:1000;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 4px 24px rgba(15,23,42,.08),
              0 1px 3px rgba(15,23,42,.06);
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

header.scrolled{
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 32px rgba(15,23,42,.12),
              0 2px 8px rgba(15,23,42,.08);
}

/* Blauer Streifen unten im Header mit Gradient */
header::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:var(--header-strip-h);
  background: linear-gradient(90deg, var(--blue) 0%, var(--green) 100%);
  opacity: 0.85;
  pointer-events:none;
  transition: opacity 0.3s ease;
}

header.scrolled::after{
  opacity: 1;
}

.nav{
  height:var(--header-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.brand{
  display:flex;
  align-items:center;
  height:100%;
  min-width: 220px;
  position: relative;
  padding: 8px 0;
}
.brand img{
  height:var(--logo-height);
  width:auto;
  max-width:520px;
  object-fit:contain;
  display:block;
  transform:scale(var(--logo-scale));
  transform-origin:left center;
  transition: transform 0.3s cubic-bezier(0.16, 0.8, 0.25, 1);
}

.brand:hover img{
  transform: scale(calc(var(--logo-scale) * 1.02));
}

nav ul{
  list-style:none;
  margin:0; padding:0;
  display:flex;
  gap:8px;
  align-items:center;
  color:rgba(15,23,42,.82);
  font-weight:750;
  font-size:14px;
  white-space:nowrap;
}

nav a{
  padding: 12px 16px;
  border-radius: 12px;
  position: relative;
  transition: all 0.3s cubic-bezier(0.16, 0.8, 0.25, 1);
  font-weight: 700;
}

nav a::before{
  content: "";
  position: absolute;
  bottom: 8px;
  left: 16px;
  right: 16px;
  height: 2px;
  background: linear-gradient(90deg, var(--blue), var(--green));
  border-radius: 2px;
  opacity: 0;
  transform: scaleX(0);
  transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.16, 0.8, 0.25, 1);
}

nav a:hover{
  background: rgba(22,103,217,.06);
  color: var(--blue);
}

nav a:hover::before{
  opacity: 1;
  transform: scaleX(1);
}

.cta{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  min-width:300px;
}

.btn{
  border: 1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--text);
  padding: 11px 18px;
  border-radius: 14px;
  font-weight: 800;
  font-size: 14px;
  box-shadow: 0 4px 16px rgba(15,23,42,.10),
              0 1px 3px rgba(15,23,42,.06);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
  transition: all 0.3s cubic-bezier(0.16, 0.8, 0.25, 1);
  position: relative;
  overflow: hidden;
}

.btn::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(22,103,217,.08), rgba(31,122,58,.06));
  opacity: 0;
  transition: opacity 0.3s ease;
}

.btn:hover::before{
  opacity: 1;
}

.btn.primary{
  background: linear-gradient(135deg, var(--blue), var(--green));
  border-color: rgba(255,255,255,.20);
  color: #fff;
  box-shadow: 0 6px 20px rgba(22,103,217,.30),
              0 2px 6px rgba(22,103,217,.20);
}

.btn.primary::before{
  background: linear-gradient(135deg, rgba(255,255,255,.15), rgba(255,255,255,.10));
}

.btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(15,23,42,.16),
              0 3px 8px rgba(15,23,42,.10);
}

.btn.primary:hover{
  box-shadow: 0 10px 32px rgba(22,103,217,.40),
              0 4px 12px rgba(22,103,217,.25);
}

.btn:active{
  transform: translateY(0);
}

/* Offset for fixed header (kein Extra für den Streifen nötig) */
.page-offset{
  padding-top: var(--header-height);
}

/* ===== Mobile menu button ===== */
.menu-btn{
  display:none;
  border:1px solid rgba(15,23,42,.14);
  background: #fff;
  width:52px; 
  height:52px;
  border-radius:14px;
  box-shadow: 0 2px 8px rgba(15,23,42,.08),
              0 1px 3px rgba(15,23,42,.05);
  cursor:pointer;
  align-items:center;
  justify-content:center;
  padding:0;
  -webkit-tap-highlight-color: transparent;
  transition: box-shadow 0.2s ease,
              border-color 0.2s ease,
              background 0.2s ease;
  position: relative;
  overflow: visible;
}

.menu-btn:hover{
  background: #fafbfc;
  box-shadow: 0 4px 12px rgba(15,23,42,.1),
              0 2px 6px rgba(15,23,42,.06);
  border-color: rgba(22,103,217,.25);
}

.menu-btn:active{
  box-shadow: 0 1px 4px rgba(15,23,42,.08);
  background: #f8f9fa;
}

/* Hamburger Icon - Robust und Stabil */
.menu-btn span{
  width:24px; 
  height:2px; 
  background: rgba(15,23,42,.85);
  position:relative; 
  display:block; 
  border-radius:2px;
  transition: background 0.2s ease 0.1s;
}

.menu-btn span::before,
.menu-btn span::after{
  content:"";
  position:absolute; 
  left:0;
  width:24px; 
  height:2px;
  background: rgba(15,23,42,.85);
  border-radius:2px;
  transition: top 0.2s ease 0.2s,
              transform 0.2s ease,
              background 0.2s ease;
}

.menu-btn span::before{
  top:-8px;
}

.menu-btn span::after{
  top:8px;
}

/* Geöffneter Zustand - Einfaches stabiles X */
.menu-btn[aria-expanded="true"]{
  background: linear-gradient(135deg, var(--blue), var(--green));
  border-color: rgba(255,255,255,.3);
  box-shadow: 0 4px 16px rgba(22,103,217,.25),
              0 2px 8px rgba(22,103,217,.15);
}

.menu-btn[aria-expanded="true"] span{
  background: transparent;
  transition-delay: 0s;
}

.menu-btn[aria-expanded="true"] span::before,
.menu-btn[aria-expanded="true"] span::after{
  background: #fff;
  transition: top 0.2s ease,
              transform 0.2s ease 0.2s,
              background 0.2s ease;
}

.menu-btn[aria-expanded="true"] span::before{
  top:0; 
  transform: rotate(45deg);
}

.menu-btn[aria-expanded="true"] span::after{
  top:0; 
  transform: rotate(-45deg);
}

/* Mobile Overlay Navigation */
.mobile-nav{
  display:none;
  position: fixed;
  top: 0;
  right: 0;
  width: min(380px, 85vw);
  height: 100vh;
  height: 100dvh; /* Dynamic viewport height für mobile */
  background: linear-gradient(165deg, 
    rgba(255,255,255,.98) 0%,
    rgba(248,250,252,.96) 100%);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  padding: 0;
  box-shadow: -8px 0 40px rgba(15,23,42,.15),
              -2px 0 12px rgba(15,23,42,.08);
  transform: translateX(100%);
  opacity: 0;
  transition: transform 0.5s cubic-bezier(0.34, 1.26, 0.64, 1),
              opacity 0.4s ease,
              box-shadow 0.5s ease;
  z-index: 9999;
  overflow-y: auto;
  overflow-x: hidden;
  border-left: 1px solid rgba(15,23,42,.08);
  /* Smooth Scrolling */
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

/* Geöffneter Zustand */
.mobile-nav[data-open="true"]{
  display: block;
  transform: translateX(0);
  opacity: 1;
  box-shadow: -12px 0 56px rgba(15,23,42,.18),
              -4px 0 16px rgba(15,23,42,.10);
}

/* Content-Wrapper mit Padding */
.mobile-nav .wrap{
  width: 100%;
  padding: 28px 24px 32px;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Close Button oben im Menü */
.mobile-nav-close{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  margin-bottom: 16px;
  border-radius: 14px;
  font-weight: 800;
  font-size: 15px;
  color: rgba(15,23,42,.85);
  background: rgba(239,68,68,.08);
  border: 1.5px solid rgba(239,68,68,.2);
  cursor: pointer;
  transition: all 0.25s ease;
  opacity: 0;
  transform: translateY(-10px);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  position: relative;
  z-index: 10;
  /* Wichtig: Pointer Events aktiviert */
  pointer-events: auto;
}

.mobile-nav-close svg{
  width: 20px;
  height: 20px;
  color: rgba(239,68,68,.85);
  transition: transform 0.25s ease;
  /* SVG soll nicht Klicks abfangen */
  pointer-events: none;
}

.mobile-nav-close span{
  /* Text soll nicht Klicks abfangen */
  pointer-events: none;
}

.mobile-nav-close:hover{
  background: rgba(239,68,68,.15);
  border-color: rgba(239,68,68,.35);
  color: rgba(220,38,38,.95);
  transform: translateY(-10px) scale(1.02);
}

.mobile-nav-close:hover svg{
  transform: rotate(90deg);
  color: rgba(220,38,38,.95);
}

.mobile-nav-close:active{
  transform: translateY(-10px) scale(0.98);
  background: rgba(239,68,68,.12);
}

/* Animation für Close Button */
.mobile-nav[data-open="true"] .mobile-nav-close{
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.05s;
}

/* Navigations-Links */
.mobile-nav a{
  display: flex;
  align-items: center;
  padding: 16px 20px;
  margin: 0;
  border-radius: 16px;
  font-weight: 850;
  font-size: 15.5px;
  color: rgba(15,23,42,.88);
  background: linear-gradient(135deg, 
    rgba(255,255,255,.6), 
    rgba(248,250,252,.5));
  border: 1.5px solid rgba(15,23,42,.08);
  box-shadow: 0 2px 8px rgba(15,23,42,.04),
              inset 0 1px 0 rgba(255,255,255,.5);
  transition: all 0.35s cubic-bezier(0.34, 1.26, 0.64, 1);
  opacity: 0;
  transform: translateX(40px);
  position: relative;
  overflow: hidden;
  /* Touch-optimiert */
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* Gradient-Overlay on Hover */
.mobile-nav a::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, 
    rgba(22,103,217,.08), 
    rgba(31,122,58,.06));
  opacity: 0;
  transition: opacity 0.3s ease;
}

.mobile-nav a:hover::before,
.mobile-nav a:active::before{
  opacity: 1;
}

/* Icon vor jedem Link */
.mobile-nav a::after{
  content: "→";
  margin-left: auto;
  font-size: 18px;
  opacity: 0;
  transform: translateX(-10px);
  transition: all 0.3s cubic-bezier(0.34, 1.26, 0.64, 1);
  color: var(--blue);
  font-weight: 400;
}

.mobile-nav a:hover::after,
.mobile-nav a:active::after{
  opacity: 1;
  transform: translateX(0);
}

/* Staggered Slide-In Animation */
.mobile-nav[data-open="true"] a{
  opacity: 1;
  transform: translateX(0);
}

/* Anpassung wegen Close-Button: Links starten bei nth-child(2) */
.mobile-nav[data-open="true"] a:nth-child(2){ transition-delay: 0.10s; }
.mobile-nav[data-open="true"] a:nth-child(3){ transition-delay: 0.15s; }
.mobile-nav[data-open="true"] a:nth-child(4){ transition-delay: 0.20s; }
.mobile-nav[data-open="true"] a:nth-child(5){ transition-delay: 0.25s; }

/* Hover-Effekt */
.mobile-nav a:hover{
  background: linear-gradient(135deg, 
    rgba(255,255,255,.85), 
    rgba(248,250,252,.75));
  border-color: rgba(22,103,217,.25);
  box-shadow: 0 6px 20px rgba(15,23,42,.12),
              0 2px 8px rgba(22,103,217,.1),
              inset 0 1px 0 rgba(255,255,255,.7);
  transform: translateX(-4px) scale(1.02);
  color: rgba(15,23,42,.95);
}

/* Active State */
.mobile-nav a:active{
  transform: translateX(-2px) scale(0.98);
  box-shadow: 0 3px 12px rgba(15,23,42,.08);
  transition-duration: 0.15s;
}

/* CTA-Buttons im Mobile-Menü */
.mobile-cta{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid rgba(15,23,42,.1);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s ease,
              transform 0.4s cubic-bezier(0.34, 1.26, 0.64, 1);
}

.mobile-nav[data-open="true"] .mobile-cta{
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.32s;
}

.mobile-cta .btn{
  width: 100%;
  padding: 14px 12px;
  font-size: 13.5px;
  font-weight: 900;
  letter-spacing: 0.3px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* Backdrop/Overlay hinter dem Menü */
.mobile-nav-backdrop{
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 9998;
  cursor: pointer;
  /* Touch-optimiert */
  touch-action: none;
}

.mobile-nav-backdrop[data-visible="true"]{
  display: block;
  opacity: 1;
}

/* ===== HERO (desktop) ===== */
.hero{
  position:relative;
  width:100%;
  aspect-ratio:var(--hero-aspect);
  min-height:var(--hero-min-h);
  overflow:hidden;
  background:#eaf0ff;
  box-shadow:0 22px 70px rgba(15,23,42,.14);
  border-bottom:1px solid rgba(15,23,42,.10);
}
.hero .bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position: 50% 30%;
  pointer-events:none;
  user-select:none;
  z-index:0;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(78% 78% at 18% 35%, rgba(255,255,255,.34), rgba(255,255,255,0) 62%),
    linear-gradient(180deg, rgba(15,23,42,.14), rgba(15,23,42,0) 54%),
    linear-gradient(90deg, rgba(15,23,42,.18), rgba(15,23,42,0) 58%);
  mix-blend-mode:multiply;
  pointer-events:none;
}

/* Desktop hero text overlay */
.hero-content{
  position:absolute;
  inset:0;
  z-index:3;
  display:grid;
  align-items:start;
  padding-top: clamp(16px, 2.8vw, 56px);
}
.hero-content .inner{
  width:min(var(--max), 94vw);
  margin:0 auto;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:24px;
  align-items:start;
}

.hero-panel{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  box-shadow:var(--glass-shadow);
  border-radius:18px;
  padding: clamp(14px, 2.2vw, 20px);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  max-width:780px;
}

.hero h1{
  margin:0 0 10px;
  font-size: clamp(26px, 3.6vw, 52px);
  line-height:1.08;
  letter-spacing:-0.6px;
  color: rgba(15,23,42,.92);
  font-weight:950;
}
.hero p.lead{
  margin:0 0 16px;
  color: rgba(15,23,42,.74);
  font-size: 15.8px;
  line-height:1.65;
  max-width:66ch;
  font-weight:650;
}

.hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:6px;
}

.badge-row{
  margin-top:12px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  font-weight:850;
  font-size:13px;
  color: rgba(15,23,42,.78);
}
.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  background: rgba(255,255,255,.78);
  border:1px solid rgba(15,23,42,.10);
  border-radius:999px;
  color: rgba(15,23,42,.78);
}
.dot{
  width:10px; height:10px; border-radius:999px;
  background: linear-gradient(135deg, var(--blue), var(--green));
  box-shadow: 0 0 0 6px rgba(15,23,42,.06);
}

/* Lightning */
.bolt-wrap{position:absolute; inset:0; z-index:2; pointer-events:none; user-select:none; opacity:0;}
.bolt{
  position:absolute;
  left: var(--bolt-x);
  top:  var(--bolt-y);
  transform: translate(-50%, -50%) rotate(45deg) scale(var(--bolt-scale));
  width: 26%;
  height:auto;
  opacity:.98;
  filter:
    brightness(1.25) contrast(1.05)
    drop-shadow(0 0 14px rgba(170,245,255,0.55))
    drop-shadow(0 0 46px rgba(170,245,255,0.32));
  will-change: opacity, transform, filter;
}
.bolt-flash{
  position:absolute;
  inset:0;
  background: radial-gradient(circle at var(--bolt-x) var(--bolt-y),
    rgba(220,255,255,0.22),
    rgba(220,255,255,0) 58%);
  opacity:0;
  filter: blur(1px);
}
.bolt-wrap.play{ animation: boltShow 340ms ease-out forwards; }
.bolt-wrap.play .bolt{ animation: boltFlicker 340ms linear forwards; }
.bolt-wrap.play .bolt-flash{ animation: boltFlash 340ms ease-out forwards; }
@keyframes boltShow{0%{opacity:0}10%{opacity:1}72%{opacity:1}100%{opacity:0}}
@keyframes boltFlicker{
  0%{opacity:0; transform: translate(-50%,-50%) rotate(45deg) scale(var(--bolt-scale)) translateY(-7px)}
  12%{opacity:1}20%{opacity:.45}28%{opacity:1}36%{opacity:.68}50%{opacity:1}66%{opacity:.82}76%{opacity:1}
  100%{opacity:0; transform: translate(-50%,-50%) rotate(45deg) scale(var(--bolt-scale)) translateY(0)}
}
@keyframes boltFlash{0%{opacity:0}14%{opacity:1}40%{opacity:.30}100%{opacity:0}}

/* ===== Desktop Trafo Float ===== */
.trafo-desktop-float{ display:none; }

@media (min-width: 681px){
  .trafo-desktop-float{
    display:block;
    position: relative;
    z-index: 60;
    pointer-events:none;
    user-select:none;
    margin-top: -120px;
    margin-bottom: 28px;
  }

  .trafo-desktop-float img{
    display:block;
    width: min(336px, 20.4vw);
    margin-left: auto;
    margin-right: auto;
    opacity: .96;
    transform: translateY(18px);
    filter:
      drop-shadow(0 26px 70px rgba(15,23,42,.22))
      drop-shadow(0 8px 26px rgba(15,23,42,.14));
  }
}

/* ===== Mobile hero layout ===== */
.hero-mobile-img{
  display:none;
  position:relative;
  width:100%;
  height: var(--mobile-hero-h);
  overflow:hidden;
  background:#eaf0ff;
  border-bottom: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 22px 70px rgba(15,23,42,.10);
}
.hero-mobile-img .bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position: var(--mobile-focus-x) var(--mobile-focus-y);
  pointer-events:none; user-select:none;
}
.hero-mobile-img::after{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(80% 90% at 70% 20%, rgba(255,255,255,.18), rgba(255,255,255,0) 62%),
    linear-gradient(180deg, rgba(15,23,42,.10), rgba(15,23,42,0) 58%);
  mix-blend-mode:multiply;
  pointer-events:none;
}
.hero-mobile-img .bolt-wrap{opacity:0}

.hero-mobile-panel{
  display:none;
  width:min(var(--max), 92vw);
  margin: 14px auto 0;
  padding-bottom: 6px;
}

/* ===== Sections & cards ===== */
main{padding: 18px 0 72px}
.grid{display:grid; grid-template-columns: repeat(12, 1fr); gap:18px; margin-top:22px;}
.card2{
  background:var(--card);
  border:1px solid rgba(15,23,42,.10);
  border-radius:18px;
  padding:18px;
  box-shadow:0 14px 40px rgba(15,23,42,.10);
}
.card2 h3{margin:0 0 8px}
.card2 p{margin:0; color:var(--muted); line-height:1.6}

.span-4{grid-column: span 4}
.span-6{grid-column: span 6}
.span-12{grid-column: span 12}

.section-title{margin:26px 0 8px; font-size:22px; letter-spacing:-.2px;}
.section-sub{margin:0; color:var(--muted); line-height:1.6; max-width:86ch;}

.intro-row{
  margin-top: 28px !important;
  margin-bottom: 14px !important;
}

/* 4 tiles for subpages */
.tiles{
  margin-top: 14px;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:14px;
}
.tile{
  position:relative;
  display:block;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.88));
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 14px 40px rgba(15,23,42,.10);
  min-height: 118px;
  transition: transform .12s ease, box-shadow .12s ease;
  overflow:hidden;
}
.tile:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 52px rgba(15,23,42,.14);
}
.tile .kicker{
  font-weight: 900;
  color: rgba(15,23,42,.86);
  letter-spacing: -.2px;
  margin:0 0 8px;
  font-size: 15px;
}
.tile p{
  margin:0;
  color: rgba(71,85,105,.92);
  line-height: 1.55;
  font-weight: 650;
  font-size: 13.5px;
}
.tile::after{
  content:"";
  position:absolute;
  right:-60px; top:-60px;
  width:160px; height:160px;
  background: radial-gradient(circle, rgba(22,103,217,.18), rgba(31,122,58,.12), rgba(255,255,255,0) 68%);
  transform: rotate(18deg);
  pointer-events:none;
}
.arrow{
  margin-top: 10px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight: 900;
  color: rgba(15,23,42,.72);
  font-size: 13px;
}
.arrow span{
  width: 24px; height: 24px;
  border-radius: 999px;
  display:inline-grid;
  place-items:center;
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  box-shadow: 0 10px 22px rgba(15,23,42,.08);
}

footer{
  padding:28px 0 40px;
  border-top:1px solid rgba(15,23,42,.08);
  color:rgba(15,23,42,.70);
  background:rgba(255,255,255,.70);
}
.footer-row{display:flex; align-items:flex-start; justify-content:space-between; gap:18px; flex-wrap:wrap;}

/* ===== Responsive ===== */
@media (max-width: 980px){
  nav{display:none}
  .cta{min-width:auto}
  .menu-btn{display:inline-flex}
  .hero-content .inner{grid-template-columns:1fr}
  .tiles{grid-template-columns: repeat(2, 1fr);}
}

/* Mobile: show image-first layout */
@media (max-width: 680px){
  :root{
    --header-height: 82px;
    --logo-height: 56px;
    --logo-scale: 1.06;

    --mobile-hero-h: 320px;
    --mobile-focus-x: 86%;
    --mobile-focus-y: 14%;

    --bolt-x: 86%;
    --bolt-y: 22%;
  }

  .container{width:min(var(--max), 92vw)}
  .cta{display:none}
  .brand{min-width:auto}
  .brand img{max-width: 72vw}

  .hero{
    aspect-ratio: auto;
    min-height: 0;
    height: auto;
    box-shadow:none;
    border-bottom: none;
    background: transparent;
  }
  .hero > .bg,
  .hero::after,
  .hero-content{display:none}

  .hero-mobile-img{display:block}
  .hero-mobile-panel{display:block}

  .hero-panel{
    max-width:none;
    border-radius: 16px;
    padding: 14px;
  }

  .hero-actions{
    display:grid;
    grid-template-columns: 1fr;
    gap:10px;
  }
  .hero-actions .btn{width:100%}

  .badge-row{gap:8px}
  .bolt{width: 56%}
  .tiles{grid-template-columns: 1fr;}
  .tile{min-height: 110px}

  .intro-row{
    margin-top: 18px !important;
  }

  /* Mobile: Projektablauf Grid auf 1-Spalte */
  .grid{
    grid-template-columns: 1fr !important;
  }
  .card2{
    padding: 20px 16px;
  }
  .card2 h3{
    font-size: 18px;
  }
  .card2 p{
    font-size: 14px;
  }

  /* ========= FIX: kein "heller Hintergrund" am Trafo-PNG =========
     Ursache: PNG-Transparenz + helle Hero-Card dahinter.
     Lösung: wir geben dem Trafo eine sehr dezente, weiche Maskierung,
     sodass keine hellen Halo-Flächen sichtbar bleiben.
  */
  .trafo-overlap img{
    -webkit-mask-image: radial-gradient(circle at 50% 60%,
      rgba(0,0,0,1) 64%,
      rgba(0,0,0,0.985) 72%,
      rgba(0,0,0,0) 88%);
    mask-image: radial-gradient(circle at 50% 60%,
      rgba(0,0,0,1) 64%,
      rgba(0,0,0,0.985) 72%,
      rgba(0,0,0,0) 88%);

    filter:
      drop-shadow(0 28px 78px rgba(15,23,42,.26))
      drop-shadow(0 10px 30px rgba(15,23,42,.18));
  }
}

@media (max-width: 420px){
  :root{
    --mobile-hero-h: 300px;
    --logo-height: 52px;
  }
  
  .menu-btn{
    width:48px;
    height:48px;
    border-radius:13px;
  }
  
  .menu-btn span,
  .menu-btn span::before,
  .menu-btn span::after{
    width: 22px;
  }
  
  .menu-btn span::before{
    top: -7px;
  }
  
  .menu-btn span::after{
    top: 7px;
  }
  
  /* Mobile Nav auf sehr kleinen Screens */
  .mobile-nav{
    width: 92vw;
  }
  
  .mobile-nav .wrap{
    padding: 24px 18px;
  }
  
  .mobile-nav-close{
    padding: 10px 14px;
    font-size: 14px;
    margin-bottom: 12px;
  }
  
  .mobile-nav-close svg{
    width: 18px;
    height: 18px;
  }
  
  .mobile-nav a{
    padding: 14px 16px;
    font-size: 14.5px;
  }
  
  .mobile-cta{
    margin-top: 16px;
    padding-top: 16px;
  }
  
  .mobile-cta .btn{
    padding: 12px 10px;
    font-size: 13px;
  }
}

@media (prefers-reduced-motion: reduce){
  .bolt-wrap.play, .bolt-wrap.play .bolt, .bolt-wrap.play .bolt-flash{animation:none !important}

  /* Mask/Animationen auch reduzieren */
  .trafo-overlap img{
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }
}

/* ===== Scroll to Top Button ===== */
.scroll-to-top {
  position: fixed;
  bottom: 32px;
  right: 32px;
  width: 56px;
  height: 56px;
  background: linear-gradient(135deg, var(--blue), var(--green));
  border: none;
  border-radius: 50%;
  cursor: pointer;
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(22, 103, 217, 0.3),
              0 4px 12px rgba(22, 103, 217, 0.2);
  transition: all 400ms cubic-bezier(0.16, 0.8, 0.25, 1);
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.9);
}

.scroll-to-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.scroll-to-top:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 12px 32px rgba(22, 103, 217, 0.4),
              0 6px 16px rgba(22, 103, 217, 0.3);
}

.scroll-to-top:active {
  transform: translateY(-2px) scale(1.02);
}

.scroll-to-top svg {
  width: 24px;
  height: 24px;
  fill: white;
  transition: transform 300ms ease;
}

.scroll-to-top:hover svg {
  transform: translateY(-3px);
}

/* Mobile Anpassungen */
@media (max-width: 768px) {
  .scroll-to-top {
    width: 52px;
    height: 52px;
    bottom: 24px;
    right: 24px;
  }
  
  .scroll-to-top svg {
    width: 22px;
    height: 22px;
  }
}

@media (max-width: 480px) {
  .scroll-to-top {
    width: 48px;
    height: 48px;
    bottom: 20px;
    right: 20px;
  }
  
  .scroll-to-top svg {
    width: 20px;
    height: 20px;
  }
}

/* Reduzierte Animation */
@media (prefers-reduced-motion: reduce) {
  .scroll-to-top {
    transition: opacity 200ms ease, visibility 200ms ease;
    transform: none !important;
  }
  
  .scroll-to-top:hover {
    transform: none !important;
  }
  
  .scroll-to-top svg {
    transition: none;
  }
  
  .scroll-to-top:hover svg {
    transform: none;
  }
}