*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --primary: #0088bd;
      --primary-dark: #006a94;
      --primary-light: #e6f4fb;
      --secondary: #515048;
      --secondary-light: #6b6966;
      --dark: #1a1a1a;
      --dark-light: #2a2f3a;
      --white: #ffffff;
      --gray-100: #f5f6f8;
      --gray-200: #e8eaed;
      --gray-300: #d0d3d8;

      /* Akzentfarben */
      --accent-cyan: #4fc3f7;
      --accent-cyan-dark: #0288d1;
      --accent-amber: #f59e0b;
      --accent-amber-light: #fef3c7;
      --accent-emerald: #10b981;
      --accent-emerald-light: #d1fae5;
      --accent-violet: #7c3aed;
      --accent-violet-light: #ede9fe;
      --accent-rose: #f43f5e;
      --accent-rose-light: #ffe4e6;

      --font-head: 'Barlow Semi Condensed', sans-serif;
      --font-body: 'Montserrat', sans-serif;
      --transition: 0.3s ease;
      --radius: 12px;
      --shadow: 0 8px 32px rgba(0,0,0,0.08);
      --shadow-hover: 0 16px 48px rgba(0,136,189,0.18);
      --container-max: 1450px;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: var(--font-body);
      font-size: 16px;
      color: var(--dark);
      background: var(--white);
      line-height: 1.6;
      overflow-x: hidden;
    }

    /* ===== SCROLL PROGRESS ===== */
    .scroll-progress {
      position: fixed;
      top: 0; left: 0;
      height: 3px;
      width: 0%;
      background: linear-gradient(90deg, var(--primary), var(--accent-cyan), var(--primary));
      background-size: 200% 100%;
      animation: progress-shimmer 2s linear infinite;
      z-index: 9999;
      transition: width 0.1s linear;
    }
    @keyframes progress-shimmer {
      0% { background-position: 200% 0; }
      100% { background-position: -200% 0; }
    }

    /* ===== SCROLLBAR ===== */
    ::-webkit-scrollbar { width: 6px; }
    ::-webkit-scrollbar-track { background: var(--gray-100); }
    ::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 3px; }

    /* ===== GRAIN OVERLAY ===== */
    body::after {
      content: '';
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 9998;
      opacity: 0.018;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    }

    /* ===== REVEAL ANIMATIONS ===== */
    .reveal {
      opacity: 0;
      transform: translateY(32px);
      transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1), transform 0.7s cubic-bezier(0.16,1,0.3,1);
    }
    .reveal.revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .reveal-left {
      opacity: 0;
      transform: translateX(-40px);
      transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1), transform 0.7s cubic-bezier(0.16,1,0.3,1);
    }
    .reveal-left.revealed { opacity: 1; transform: translateX(0); }
    .reveal-right {
      opacity: 0;
      transform: translateX(40px);
      transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1), transform 0.7s cubic-bezier(0.16,1,0.3,1);
    }
    .reveal-right.revealed { opacity: 1; transform: translateX(0); }
    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.3s; }
    .reveal-delay-4 { transition-delay: 0.45s; }

    /* ===== UTILITIES ===== */
    .container { max-width: var(--container-max); margin: 0 auto; padding: 0 24px; }
    .section-label {
      font-family: var(--font-body);
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: var(--primary);
      display: block;
      margin-bottom: 12px;
    }
    h1, h2, h3, h4 { font-family: var(--font-head); line-height: 1.2; }
    h2 { font-size: clamp(28px, 4vw, 42px); }
    h3 { font-size: clamp(18px, 2.5vw, 24px); }

    .btn {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 14px 28px;
      border-radius: 6px;
      font-family: var(--font-head);
      font-size: 12px;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      font-weight: 700;
      cursor: pointer;
      border: 2px solid transparent;
      transition: var(--transition);
      text-decoration: none;
    }
    .btn-primary {
      background: var(--primary);
      color: var(--white);
      border-color: var(--primary);
    }
    .btn-primary:hover {
      background: var(--primary-dark);
      border-color: var(--primary-dark);
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,136,189,0.35);
    }
    .btn-outline {
      background: transparent;
      color: var(--primary);
      border-color: var(--primary);
    }
    .btn-outline:hover {
      background: var(--primary);
      color: var(--white);
      transform: translateY(-2px);
    }
    .btn-white {
      background: var(--white);
      color: var(--primary);
      border-color: var(--white);
    }
    .btn-white:hover {
      background: var(--primary-light);
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,0,0,0.15);
    }

    /* ===== TOPBAR ===== */
    .topbar {
      background: var(--secondary);
      color: rgba(255,255,255,0.75);
      font-size: 12px;
      padding: 8px 0;
    }
    .topbar .container {
      display: flex;
      justify-content: space-between;
      align-items: center;
    }
    .topbar a {
      color: rgba(255,255,255,0.75);
      text-decoration: none;
      transition: var(--transition);
    }
    .topbar a:hover { color: var(--white); }
    .topbar-left, .topbar-right {
      display: flex;
      gap: 24px;
      align-items: center;
    }
    .topbar-item {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    /* ===== NAVBAR ===== */
    .navbar {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: var(--white);
      border-bottom: 1px solid var(--gray-200);
      transition: box-shadow var(--transition);
    }
    .navbar.scrolled {
      box-shadow: 0 4px 24px rgba(0,0,0,0.1);
    }
    .navbar .container {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      height: 90px;
      position: relative;
    }
    .logo {
      display: flex;
      align-items: center;
      gap: 12px;
      text-decoration: none;
      flex-shrink: 0;
      z-index: 1002;
    }
    .logo-img {
      height: 78px;
      width: auto;
      display: block;
    }
    .nav-main {
      display: flex;
      align-items: center;
      gap: 8px;
      flex: 1;
      justify-content: center;
    }
    .nav-links {
      display: flex;
      align-items: center;
      gap: 2px;
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .nav-item { position: relative; list-style: none; }
    .nav-item > a,
    .nav-item-row > a {
      font-family: var(--font-body);
      font-size: 15.5px;
      font-weight: 500;
      color: var(--secondary);
      text-decoration: none;
      padding: 10px 15px;
      border-radius: 8px;
      transition: var(--transition);
      letter-spacing: 0.2px;
      display: inline-flex;
      align-items: center;
      gap: 4px;
      min-height: 44px;
    }
    .nav-item > a:hover,
    .nav-item-row > a:hover,
    .nav-item > a.active,
    .nav-item-row > a.active,
    .nav-item.active > .nav-item-row > a {
      color: var(--primary);
      background: var(--primary-light);
    }
    .nav-item.nav-highlight > a,
    .nav-item.nav-highlight > .nav-item-row > a {
      color: var(--primary);
      font-weight: 600;
      border: 1.5px solid var(--primary);
    }
    .nav-item.nav-highlight > a:hover,
    .nav-item.nav-highlight > .nav-item-row > a:hover {
      background: var(--primary);
      color: white;
    }
    .nav-chevron {
      width: 16px;
      height: 16px;
      fill: currentColor;
      opacity: 0.65;
      transition: transform var(--transition);
      flex-shrink: 0;
    }
    .nav-item.has-children:hover > .nav-item-row .nav-chevron,
    .nav-item.has-children:focus-within > .nav-item-row .nav-chevron {
      transform: rotate(180deg);
    }
    .nav-item-row {
      display: flex;
      align-items: center;
    }
    .nav-submenu-toggle {
      display: none;
    }
    /* Desktop Dropdown */
    .nav-submenu {
      position: absolute;
      top: calc(100% + 6px);
      left: 0;
      min-width: 260px;
      margin: 0;
      padding: 8px;
      list-style: none;
      background: #fff;
      border: 1px solid var(--gray-200);
      border-radius: 14px;
      box-shadow: 0 16px 48px rgba(0,0,0,0.12);
      opacity: 0;
      visibility: hidden;
      transform: translateY(8px);
      transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
      z-index: 1100;
    }
    .nav-submenu::before {
      content: '';
      position: absolute;
      top: -8px;
      left: 0;
      right: 0;
      height: 8px;
    }
    .nav-item.has-children:hover > .nav-submenu,
    .nav-item.has-children:focus-within > .nav-submenu {
      opacity: 1;
      visibility: visible;
      transform: translateY(0);
    }
    .nav-submenu a {
      display: block;
      padding: 11px 14px;
      border-radius: 8px;
      font-size: 15px;
      font-weight: 500;
      color: var(--dark);
      text-decoration: none;
      transition: var(--transition);
      line-height: 1.35;
    }
    .nav-submenu a:hover,
    .nav-submenu a.active {
      background: var(--primary-light);
      color: var(--primary);
    }
    .nav-submenu a.active { font-weight: 600; }
    .nav-cta--bar { margin-left: 4px; flex-shrink: 0; }
    .nav-cta--in-menu { display: none; }
    .hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
      gap: 5px;
      cursor: pointer;
      padding: 10px;
      margin: 0;
      border: none;
      background: transparent;
      border-radius: 8px;
      min-width: 44px;
      min-height: 44px;
      z-index: 1002;
    }
    .hamburger span {
      width: 22px;
      height: 2px;
      background: var(--dark);
      border-radius: 2px;
      transition: var(--transition);
      display: block;
    }
    .hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity: 0; }
    .hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    .nav-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.45);
      backdrop-filter: blur(3px);
      z-index: 1001;
      opacity: 0;
      transition: opacity 0.25s ease;
      pointer-events: none;
    }
    .nav-overlay.visible {
      opacity: 1;
      pointer-events: auto;
    }
    body.nav-open { overflow: hidden; }
    body.nav-open .navbar { z-index: 1003; }

    /* ===== HERO / USV CHECK ===== */
    .hero {
      background: #0b1929;
      position: relative;
      overflow: hidden;
      min-height: 640px;
      display: flex;
      align-items: stretch;
    }
    /* Startseite: vollflächig wie Aicher — nutzt den ganzen Viewport */
    .home .hero.hero--home {
      min-height: calc(100dvh - 112px);
      min-height: calc(100svh - 112px);
    }
    .hero-media {
      position: absolute;
      inset: 0;
      z-index: 0;
      overflow: hidden;
      pointer-events: none;
    }
    .hero-media::after {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 1;
      background: rgba(8, 18, 32, 0.38);
      pointer-events: none;
    }
    .home .hero.hero--home.hero--media .hero-media::after {
      background: rgba(8, 18, 32, 0.28);
    }
    .hero-video,
    .hero-bg-image {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }
    /* Keine nativen Play-Controls als Hintergrundvideo (iOS/Safari) */
    .hero-video {
      pointer-events: none;
    }
    .hero-video::-webkit-media-controls,
    .hero-video::-webkit-media-controls-start-playback-button,
    .hero-video::-webkit-media-controls-enclosure {
      display: none !important;
      -webkit-appearance: none;
    }
    .hero--media .circuit-lines { opacity: 0.2; }
    .hero--media .hero-glow { opacity: 0.35; }
    .home .hero.hero--home .circuit-lines { opacity: 0.08; }
    .home .hero.hero--home .hero-glow { opacity: 0.22; }
    /* Asymmetrischer Spot-Gradient statt gleichmäßigem Verlauf */
    .hero::after {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 60% 80% at 80% 50%, rgba(0,136,189,0.18) 0%, transparent 70%),
        radial-gradient(ellipse 40% 60% at 10% 80%, rgba(0,80,120,0.25) 0%, transparent 60%),
        radial-gradient(ellipse 30% 40% at 50% 0%, rgba(0,136,189,0.08) 0%, transparent 50%);
      pointer-events: none;
      z-index: 1;
    }
    .hero.hero--media::after {
      background:
        linear-gradient(105deg, rgba(8,18,32,0.72) 0%, rgba(8,18,32,0.52) 45%, rgba(8,18,32,0.38) 100%),
        radial-gradient(ellipse 60% 80% at 80% 50%, rgba(0,136,189,0.1) 0%, transparent 70%);
    }
    .home .hero.hero--home.hero--media::after {
      background:
        linear-gradient(100deg, rgba(8,18,32,0.68) 0%, rgba(8,18,32,0.42) 42%, rgba(8,18,32,0.22) 100%),
        radial-gradient(ellipse 50% 70% at 85% 40%, rgba(0,136,189,0.12) 0%, transparent 65%);
    }
    .hero::before {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 1;
      background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%230088bd' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }
    .home .hero.hero--home::before { opacity: 0.35; }
    .hero-glow {
      position: absolute;
      width: 600px;
      height: 600px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(0,136,189,0.25) 0%, transparent 70%);
      right: -100px;
      top: -100px;
      pointer-events: none;
      z-index: 1;
    }
    .hero .container {
      display: grid;
      grid-template-columns: 1fr 420px;
      gap: 40px;
      align-items: center;
      padding-top: 64px;
      padding-bottom: 64px;
      position: relative;
      z-index: 2;
      width: 100%;
    }
    /* Ohne USV-Check-Karte: volle Breite nutzen (kein leerer 420px-Slot) */
    .hero.hero--solo .container {
      grid-template-columns: 1fr;
      align-items: end;
      padding-top: 96px;
      padding-bottom: 80px;
    }
    .home .hero.hero--home.hero--solo .container {
      padding-top: 120px;
      padding-bottom: 96px;
      padding-left: clamp(24px, 4vw, 56px);
      padding-right: clamp(24px, 4vw, 56px);
      max-width: var(--container-max);
    }
    .hero-left { color: white; }
    .home .hero.hero--home .hero-left {
      max-width: 760px;
    }
    .hero-claim.block-claim {
      color: var(--accent-cyan, #4fc3f7);
      margin: 0 0 14px;
    }
    .hero-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(255,255,255,0.1);
      border: 1px solid rgba(255,255,255,0.2);
      padding: 6px 14px;
      border-radius: 20px;
      font-size: 13px;
      letter-spacing: 2px;
      text-transform: uppercase;
      font-weight: 600;
      margin-bottom: 24px;
      backdrop-filter: blur(8px);
    }
    .hero-eyebrow span { color: #4fc3f7; }
    .hero-title {
      font-family: var(--font-head);
      font-size: clamp(34px, 4.5vw, 58px);
      font-weight: 700;
      line-height: 1.1;
      margin-bottom: 20px;
      letter-spacing: -1px;
      text-shadow: 0 2px 18px rgba(0,0,0,0.35);
    }
    .home .hero.hero--home .hero-title {
      font-size: clamp(42px, 5.8vw, 76px);
      letter-spacing: -1.5px;
      margin-bottom: 24px;
    }
    .hero-title em {
      font-style: normal;
      color: #4fc3f7;
    }
    .hero-sub {
      font-size: 16px;
      font-weight: 400;
      color: rgba(255,255,255,0.9);
      max-width: 480px;
      line-height: 1.7;
      margin-bottom: 36px;
      text-shadow: 0 1px 12px rgba(0,0,0,0.35);
    }
    .home .hero.hero--home .hero-sub {
      font-size: clamp(16px, 1.35vw, 19px);
      max-width: 580px;
      line-height: 1.75;
      margin-bottom: 40px;
    }
    .hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }

    /* USV Check Card */
    .usv-check-card {
      background: rgba(255,255,255,0.97);
      border-radius: 16px;
      padding: 36px 32px;
      box-shadow: 0 24px 64px rgba(0,0,0,0.3);
      position: relative;
    }
    .usv-check-card::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 4px;
      background: linear-gradient(90deg, var(--primary), #4fc3f7);
      border-radius: 16px 16px 0 0;
    }
    .check-card-label {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 8px;
    }
    .check-card-icon {
      width: 36px;
      height: 36px;
      background: var(--primary-light);
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .check-card-icon svg { width: 18px; height: 18px; fill: var(--primary); }
    .check-card-label h3 {
      font-family: var(--font-head);
      font-size: 16px;
      color: var(--dark);
      letter-spacing: 1px;
    }
    .check-card-desc {
      font-size: 13px;
      color: var(--secondary-light);
      margin-bottom: 24px;
      line-height: 1.5;
    }
    .check-input-group {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 18px;
    }
    .check-input-group label {
      font-size: 12px;
      font-weight: 600;
      color: var(--secondary);
      letter-spacing: 0.5px;
    }
    .check-input-wrap {
      display: flex;
      gap: 10px;
    }
    .check-input {
      flex: 1;
      padding: 13px 16px;
      border: 2px solid var(--gray-200);
      border-radius: 8px;
      font-family: var(--font-body);
      font-size: 14px;
      color: var(--dark);
      transition: var(--transition);
      outline: none;
      letter-spacing: 1px;
    }
    .check-input:focus {
      border-color: var(--primary);
      box-shadow: 0 0 0 4px rgba(0,136,189,0.1);
    }
    .check-input::placeholder { color: var(--gray-300); font-style: italic; letter-spacing: 0; }
    .check-btn {
      padding: 13px 20px;
      background: var(--primary);
      color: white;
      border: none;
      border-radius: 8px;
      font-family: var(--font-head);
      font-size: 11px;
      letter-spacing: 1px;
      font-weight: 700;
      cursor: pointer;
      transition: var(--transition);
      white-space: nowrap;
    }
    .check-btn:hover { background: var(--primary-dark); transform: translateY(-1px); }
    .check-hint {
      font-size: 11px;
      color: var(--gray-300);
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .check-hint svg { width: 12px; height: 12px; }

    /* Check Result States */
    .check-result { display: none; margin-top: 16px; border-radius: 10px; padding: 16px 18px; }
    .check-result.success {
      background: #e8f5e9;
      border-left: 4px solid #4caf50;
    }
    .check-result.error {
      background: #fff3e0;
      border-left: 4px solid #ff9800;
    }
    .check-result.show { display: block; animation: slideIn 0.3s ease; }
    .check-result-title {
      font-family: var(--font-head);
      font-size: 13px;
      font-weight: 700;
      margin-bottom: 6px;
    }
    .check-result.success .check-result-title { color: #2e7d32; }
    .check-result.error .check-result-title { color: #e65100; }
    .check-result p { font-size: 12px; color: var(--secondary); line-height: 1.5; margin-bottom: 12px; }
    .check-result .btn { font-size: 11px; padding: 10px 18px; }

    @keyframes slideIn {
      from { opacity: 0; transform: translateY(-8px); }
      to { opacity: 1; transform: translateY(0); }
    }

    /* Human SVG Illustration */
    .hero-person {
      position: absolute;
      bottom: 0;
      right: 140px;
      width: 320px;
      height: auto;
      pointer-events: none;
      opacity: 0.12;
    }
    .circuit-lines {
      position: absolute;
      inset: 0;
      pointer-events: none;
      overflow: hidden;
      opacity: 0.08;
      z-index: 1;
    }

    /* ===== TRUST STRIP ===== */
    .trust-strip {
      background: var(--white);
      border-bottom: 1px solid var(--gray-200);
      padding: 0;
    }
    .trust-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }
    .trust-item {
      display: flex;
      align-items: center;
      gap: 16px;
      padding: 26px 28px;
      border-right: 1px solid var(--gray-200);
      transition: background var(--transition);
      cursor: default;
      position: relative;
    }
    .trust-item:last-child { border-right: none; }
    .trust-item:hover { background: var(--primary-light); }
    .trust-item:hover .trust-icon { background: var(--primary); }
    .trust-item:hover .trust-icon svg { fill: white; }

    /* Uptime Counter Banner */
    .uptime-banner {
      background: var(--dark);
      padding: 10px 0;
      overflow: hidden;
      position: relative;
    }
    .uptime-banner-inner {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 32px;
      font-size: 12px;
      color: rgba(255,255,255,0.5);
    }
    .uptime-counter-label {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .uptime-dot {
      width: 6px; height: 6px;
      border-radius: 50%;
      background: var(--accent-emerald);
      flex-shrink: 0;
      animation: pulse-ring 1.8s ease infinite;
    }
    .uptime-counter-value {
      font-family: var(--font-head);
      font-size: 15px;
      font-weight: 700;
      color: var(--accent-emerald);
      letter-spacing: 1px;
      font-variant-numeric: tabular-nums;
    }
    .uptime-divider { color: rgba(255,255,255,0.15); }
    .trust-icon {
      width: 48px;
      height: 48px;
      background: var(--primary-light);
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: var(--transition);
    }
    .trust-icon svg { width: 22px; height: 22px; fill: var(--primary); }
    .trust-text strong {
      display: block;
      font-family: var(--font-head);
      font-size: 13px;
      letter-spacing: 0.5px;
      color: var(--dark);
      margin-bottom: 3px;
    }
    .trust-text span {
      font-size: 11px;
      color: var(--secondary-light);
      line-height: 1.4;
    }

    /* ===== LEISTUNGEN ===== */
    .leistungen {
      padding: 96px 0;
      background: var(--gray-100);
      position: relative;
      overflow: hidden;
    }
    .leistungen::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 3px;
      background: linear-gradient(90deg, transparent, var(--primary), transparent);
    }
    .section-header h2 { margin-bottom: 16px; }
    .leistungen-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
      align-items: stretch;
    }
    .leistung-card {
      background: var(--white);
      border-radius: var(--radius);
      overflow: hidden;
      transition: var(--transition);
      border: 1px solid var(--gray-200);
      cursor: pointer;
      position: relative;
      display: flex;
      flex-direction: column;
      height: 100%;
    }
    .leistung-card:hover {
      transform: translateY(-6px);
      box-shadow: var(--shadow-hover);
      border-color: var(--primary);
    }
    .leistung-card-top {
      height: 200px;
      position: relative;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .leistung-card-top img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 0.5s ease;
    }
    .leistung-card:hover .leistung-card-top img { transform: scale(1.06); }
    .leistung-card-top-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 100%);
    }
    .leistung-card-img-icon {
      width: 80px;
      height: 80px;
      background: rgba(255,255,255,0.1);
      border-radius: 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 1px solid rgba(255,255,255,0.15);
    }
    .leistung-card-img-icon svg {
      width: 40px;
      height: 40px;
      fill: rgba(255,255,255,0.9);
    }
    .leistung-badge {
      position: absolute;
      top: 16px;
      right: 16px;
      background: var(--primary);
      color: white;
      font-family: var(--font-head);
      font-size: 9px;
      letter-spacing: 1.5px;
      padding: 5px 10px;
      border-radius: 4px;
    }
    .leistung-card-body {
      padding: 28px;
      display: flex;
      flex-direction: column;
      flex: 1;
    }
    .leistung-card-body h3 {
      color: var(--dark);
      margin-bottom: 10px;
      font-size: 18px;
    }
    .leistung-card-body p {
      font-size: 14px;
      color: var(--secondary-light);
      line-height: 1.65;
      margin-bottom: 20px;
    }
    .leistung-card-text { margin-bottom: 20px; }
    .leistung-features {
      list-style: none;
      margin-bottom: 24px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      flex: 1;
    }
    .leistung-features li {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      font-size: 13px;
      line-height: 1.5;
      color: var(--secondary);
    }
    .leistung-features li::before {
      content: '';
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--primary);
      flex-shrink: 0;
      /* mittig zur ersten Textzeile, nicht zur gesamten mehrzeiligen Höhe */
      margin-top: calc((1.5em - 6px) / 2);
    }
    .leistung-link {
      display: flex;
      align-items: center;
      gap: 8px;
      color: var(--primary);
      font-size: 13px;
      font-weight: 600;
      text-decoration: none;
      letter-spacing: 0.5px;
      transition: var(--transition);
      margin-top: auto;
    }
    .leistung-link:hover { gap: 12px; }
    .leistung-link svg { width: 16px; height: 16px; fill: var(--primary); }

    /* ===== BRANCHEN ===== */
    .branchen {
      padding: 96px 0;
      background: #0d1117;
      position: relative;
      overflow: hidden;
    }
    .branchen::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse at 15% 60%, rgba(0,136,189,0.1) 0%, transparent 55%),
                  radial-gradient(ellipse at 85% 20%, rgba(124,58,237,0.06) 0%, transparent 45%);
    }
    .branchen .section-header h2 { color: var(--white); }
    .branchen .section-header p { color: rgba(255,255,255,0.72); }
    .branchen .section-label { color: var(--accent-cyan); }

    /* Tabs */
    .branchen-tabs {
      display: flex;
      gap: 0;
      position: relative;
      z-index: 2;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 14px;
      padding: 6px;
      margin-bottom: 32px;
      overflow-x: auto;
      scrollbar-width: none;
    }
    .branchen-tabs::-webkit-scrollbar { display: none; }
    .branchen-tab {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      padding: 18px 16px;
      border-radius: 10px;
      cursor: pointer;
      border: none;
      background: transparent;
      transition: var(--transition);
      position: relative;
      min-width: 140px;
    }
    .branchen-tab:hover { background: rgba(255,255,255,0.05); }
    .branchen-tab.active {
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.12);
    }
    .branchen-tab-icon {
      width: 56px;
      height: 56px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(255,255,255,0.1);
      transition: var(--transition);
      flex-shrink: 0;
    }
    .branchen-tab-icon svg {
      width: 30px;
      height: 30px;
      display: block;
      fill: #fff !important;
      color: #fff;
    }
    /* Überschreibt feste Fill-Farben in CMS-SVGs */
    .branchen-tab-icon svg *,
    .branchen-tab-icon svg path,
    .branchen-tab-icon svg g,
    .branchen-tab-icon svg rect,
    .branchen-tab-icon svg circle,
    .branchen-tab-icon svg polygon {
      fill: #fff !important;
    }
    .branchen-tab:hover .branchen-tab-icon {
      background: rgba(255,255,255,0.16);
    }
    .branchen-tab.active .branchen-tab-icon {
      background: rgba(255,255,255,0.2);
    }
    .branchen-tab span {
      font-family: var(--font-head);
      font-size: 13px;
      font-weight: 600;
      color: rgba(255,255,255,0.55);
      transition: var(--transition);
      text-align: center;
      line-height: 1.3;
    }
    .branchen-tab.active span { color: white; }
    .branchen-tab-dot {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: transparent;
      transition: var(--transition);
      margin-top: 2px;
    }
    .branchen-tab.active .branchen-tab-dot { background: var(--accent-cyan, #4fc3f7); }

    /* Content Panel */
    .branchen-panel {
      display: none;
      position: relative;
      z-index: 2;
      animation: fadeInUp 0.4s ease;
    }
    .branchen-panel.active { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }

    @keyframes fadeInUp {
      from { opacity: 0; transform: translateY(16px); }
      to { opacity: 1; transform: translateY(0); }
    }

    .branchen-panel-content { }
    .branchen-panel-tag {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 5px 14px;
      border-radius: 20px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      margin-bottom: 20px;
    }
    .branchen-panel-tag svg { width: 12px; height: 12px; }

    .branchen-panel-content h3 {
      font-family: var(--font-head);
      font-size: clamp(26px, 3vw, 36px);
      font-weight: 700;
      color: white;
      margin-bottom: 16px;
      line-height: 1.2;
    }
    .branchen-panel-content p {
      font-size: 15px;
      color: rgba(255,255,255,0.6);
      line-height: 1.75;
      margin-bottom: 24px;
    }
    .branchen-panel-points {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 32px;
    }
    .branchen-panel-points li {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 13px;
      color: rgba(255,255,255,0.75);
    }
    .branchen-panel-points li::before {
      content: '';
      width: 20px;
      height: 20px;
      border-radius: 6px;
      flex-shrink: 0;
    }
    .branchen-panel-image {
      border-radius: 16px;
      overflow: hidden;
      position: relative;
      aspect-ratio: 4/3;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .branchen-panel-image-inner {
      width: 100%;
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 16px;
      position: relative;
      overflow: hidden;
    }
    .branchen-panel-image-inner img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.6s ease;
    }
    .branchen-panel-image:hover .branchen-panel-image-inner img { transform: scale(1.04); }
    .branchen-panel-image-inner::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 100%);
      pointer-events: none;
      z-index: 1;
    }
    .panel-img-icon { z-index: 2; }
    .panel-img-icon {
      width: 96px;
      height: 96px;
      border-radius: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(255,255,255,0.1);
      border: 1px solid rgba(255,255,255,0.15);
    }
    .panel-img-icon svg { width: 48px; height: 48px; fill: rgba(255,255,255,0.85); }
    .panel-stats {
      display: flex;
      gap: 24px;
      padding-top: 20px;
      border-top: 1px solid rgba(255,255,255,0.08);
    }
    .panel-stat { }
    .panel-stat-num {
      font-family: var(--font-head);
      font-size: 28px;
      font-weight: 700;
      display: block;
    }
    .panel-stat-label {
      font-size: 11px;
      color: rgba(255,255,255,0.4);
    }

    /* ===== NEWS ===== */
    .news {
      padding: 96px 0;
      background: var(--white);
    }
    .news-header {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      margin-bottom: 48px;
    }
    .news-header h2 { max-width: 400px; }
    .news-grid {
      display: grid;
      grid-template-columns: 1.5fr 1fr 1fr;
      gap: 24px;
    }
    .news-card {
      border-radius: var(--radius);
      overflow: hidden;
      border: 1px solid var(--gray-200);
      transition: var(--transition);
      cursor: pointer;
      display: block;
      text-decoration: none;
      color: inherit;
      background: var(--white);
    }
    .news-card,
    .news-card:hover,
    .news-card:focus { text-decoration: none; }
    .news-card * { text-decoration: none; }
    .news-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-hover);
      border-color: var(--primary);
    }
    .news-card:hover .news-card-img img { transform: scale(1.05); }
    .news-card-img {
      height: 200px;
      position: relative;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .news-card:first-child .news-card-img { height: 260px; }
    .news-card:nth-child(1) .news-card-img { background: linear-gradient(135deg, #0a3d5c 0%, var(--primary) 100%); }
    .news-card:nth-child(2) .news-card-img { background: linear-gradient(135deg, #3b0764 0%, var(--accent-violet) 100%); }
    .news-card:nth-child(3) .news-card-img { background: linear-gradient(135deg, #064e3b 0%, var(--accent-emerald) 100%); }
    .news-card-img-placeholder {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
      opacity: 0.6;
    }
    .news-card-img-placeholder svg { width: 40px; height: 40px; fill: rgba(255,255,255,0.7); }
    .news-card-img-placeholder span { font-size: 11px; color: rgba(255,255,255,0.7); letter-spacing: 2px; font-family: var(--font-head); }
    .news-category {
      position: absolute;
      top: 14px;
      left: 14px;
      background: var(--primary);
      color: white;
      font-family: var(--font-head);
      font-size: 9px;
      letter-spacing: 1.5px;
      padding: 5px 10px;
      border-radius: 4px;
    }
    .news-card-body { padding: 24px; }
    .news-meta {
      font-size: 11px;
      color: var(--gray-300);
      letter-spacing: 1px;
      margin-bottom: 10px;
      text-transform: uppercase;
    }
    .news-card-body h3 {
      font-size: 17px;
      color: var(--dark);
      margin-bottom: 10px;
      line-height: 1.35;
    }
    .news-card:first-child .news-card-body h3 { font-size: 22px; }
    .news-card-body p {
      font-size: 13px;
      color: var(--secondary-light);
      line-height: 1.6;
      margin-bottom: 18px;
    }
    .news-link {
      display: flex;
      align-items: center;
      gap: 6px;
      color: var(--primary);
      font-size: 12px;
      font-weight: 600;
      text-decoration: none;
      letter-spacing: 0.5px;
      transition: var(--transition);
    }
    .news-link:hover { gap: 10px; }
    .news-link svg { width: 14px; height: 14px; fill: var(--primary); }

    /* ===== KARRIERE / RECRUITING ===== */
    .karriere {
      padding: 0;
      background: #0a0a0a;
      color: rgba(255,255,255,0.88);
      position: relative;
      overflow: hidden;
      min-height: 680px;
      display: flex;
      align-items: stretch;
    }

    /* Energie-Partikel Canvas */
    #karriereCanvas {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
      z-index: 0;
    }

    /* Diagonaler Teiler rechts */
    .karriere-split {
      display: grid;
      grid-template-columns: 1fr 1fr;
      width: 100%;
      position: relative;
      z-index: 2;
    }
    .karriere-left {
      padding: 80px 64px 80px 0;
      padding-left: calc((100vw - 1200px) / 2 + 24px);
      display: flex;
      flex-direction: column;
      justify-content: center;
      position: relative;
    }
    .karriere-left::after {
      content: '';
      position: absolute;
      right: -1px;
      top: 0; bottom: 0;
      width: 2px;
      background: linear-gradient(to bottom, transparent, var(--accent-amber), transparent);
    }
    .karriere-right {
      padding: 80px 0 80px 64px;
      padding-right: calc((100vw - 1200px) / 2 + 24px);
      background: rgba(245,158,11,0.04);
      display: flex;
      flex-direction: column;
      justify-content: center;
      position: relative;
    }

    /* Power Meter Gimmick */
    .power-meter-wrap {
      margin-bottom: 40px;
    }
    .power-meter-label {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 10px;
    }
    .power-meter-label span {
      font-family: var(--font-body);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: rgba(255,255,255,0.4);
    }
    .power-meter-pct {
      font-family: var(--font-head);
      font-size: 22px !important;
      font-weight: 700;
      color: var(--accent-amber) !important;
      letter-spacing: 0 !important;
    }
    .power-meter-track {
      height: 8px;
      background: rgba(255,255,255,0.07);
      border-radius: 4px;
      overflow: hidden;
      position: relative;
    }
    .power-meter-bar {
      height: 100%;
      width: 0%;
      border-radius: 4px;
      background: linear-gradient(90deg, var(--accent-amber), #fbbf24, #fef08a);
      box-shadow: 0 0 12px rgba(245,158,11,0.6);
      transition: width 1.8s cubic-bezier(0.25, 1, 0.5, 1);
      position: relative;
    }
    .power-meter-bar::after {
      content: '';
      position: absolute;
      right: 0; top: 0; bottom: 0;
      width: 20px;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5));
      border-radius: 4px;
      animation: shimmer 1.5s ease infinite;
    }
    @keyframes shimmer {
      0%,100% { opacity: 0.5; }
      50% { opacity: 1; }
    }

    /* "Du?"-Label am Ende des Balkens */
    .power-meter-missing-label {
      position: absolute;
      right: -42px;
      top: 50%;
      transform: translateY(-50%);
      background: rgba(255,255,255,0.1);
      border: 1px dashed rgba(255,255,255,0.35);
      border-radius: 4px;
      padding: 2px 7px;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 1px;
      color: rgba(255,255,255,0.6);
      white-space: nowrap;
      opacity: 0;
      transition: opacity 0.4s ease 1.8s;
      font-family: var(--font-body);
    }
    .power-meter-bar.animated .power-meter-missing-label {
      opacity: 1;
    }

    /* Lücke hinter dem Balken — gestrichelter Rest */
    .power-meter-track::after {
      content: '';
      position: absolute;
      right: 0;
      top: 0; bottom: 0;
      width: 6%;
      background: repeating-linear-gradient(
        90deg,
        rgba(255,255,255,0.12) 0px,
        rgba(255,255,255,0.12) 3px,
        transparent 3px,
        transparent 7px
      );
      border-radius: 0 4px 4px 0;
    }

    /* Legende unter dem Balken */
    .power-meter-caption {
      display: flex;
      justify-content: space-between;
      margin-top: 8px;
    }
    .power-meter-caption-filled {
      font-size: 11px;
      color: var(--accent-amber);
      font-weight: 600;
      opacity: 0;
      transition: opacity 0.5s ease 1.8s;
    }
    .power-meter-caption-gap {
      font-size: 11px;
      color: rgba(255,255,255,0.35);
      font-weight: 600;
      opacity: 0;
      transition: opacity 0.5s ease 2s;
      animation: blink-soft 2s ease infinite 2s;
    }
    @keyframes blink-soft {
      0%,100% { color: rgba(255,255,255,0.35); }
      50% { color: rgba(255,255,255,0.7); }
    }
    .power-meter-bar.animated ~ .power-meter-caption .power-meter-caption-filled,
    .power-meter-bar.animated ~ .power-meter-caption .power-meter-caption-gap { opacity: 1; }
    /* Hack: Geschwister-Selector geht nicht rückwärts — per JS gesteuert */

    .karriere-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(245,158,11,0.1);
      border: 1px solid rgba(245,158,11,0.25);
      border-radius: 20px;
      padding: 6px 14px;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--accent-amber);
      margin-bottom: 20px;
      width: fit-content;
    }
    .karriere-eyebrow-dot {
      width: 6px; height: 6px;
      border-radius: 50%;
      background: var(--accent-amber);
      animation: pulse-ring 1.6s ease infinite;
    }
    .karriere-title {
      font-family: var(--font-head);
      font-size: clamp(32px, 4vw, 52px);
      font-weight: 700;
      color: white;
      line-height: 1.1;
      margin-bottom: 18px;
    }
    .karriere-title em {
      font-style: normal;
      color: var(--accent-amber);
    }
    .karriere-sub {
      font-size: 15px;
      color: rgba(255,255,255,0.78);
      line-height: 1.75;
      max-width: 440px;
      margin-bottom: 36px;
    }
    .karriere-cta-group {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
    }
    .karriere-cta-group p:not(:has(.btn)) {
      display: block;
      flex: 1 1 100%;
      max-width: 440px;
      margin: 0 0 20px;
      font-size: 15px;
      line-height: 1.75;
      color: rgba(255,255,255,0.78);
    }
    .btn-amber {
      background: var(--accent-amber);
      color: #0a0a0a;
      border-color: var(--accent-amber);
      font-weight: 800;
    }
    .btn-amber:hover {
      background: #d97706;
      border-color: #d97706;
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(245,158,11,0.4);
      color: white;
    }
    .btn-ghost-white {
      background: transparent;
      color: rgba(255,255,255,0.7);
      border-color: rgba(255,255,255,0.2);
    }
    .btn-ghost-white:hover {
      background: rgba(255,255,255,0.06);
      border-color: rgba(255,255,255,0.4);
      color: white;
      transform: translateY(-2px);
    }

    /* Benefits Karten rechts */
    .karriere-benefits {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      margin-bottom: 32px;
    }
    .karriere-benefit {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 12px;
      padding: 18px 16px;
      display: flex;
      align-items: flex-start;
      gap: 12px;
      transition: var(--transition);
      cursor: default;
    }
    .karriere-benefit:hover {
      background: rgba(245,158,11,0.08);
      border-color: rgba(245,158,11,0.2);
      transform: translateY(-2px);
    }
    .karriere-benefit-icon {
      width: 36px; height: 36px;
      border-radius: 8px;
      background: rgba(245,158,11,0.12);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: var(--transition);
    }
    .karriere-benefit:hover .karriere-benefit-icon { background: var(--accent-amber); }
    .karriere-benefit-icon svg { width: 16px; height: 16px; fill: var(--accent-amber); }
    .karriere-benefit:hover .karriere-benefit-icon svg { fill: #0a0a0a; }
    .karriere-benefit-text strong {
      display: block;
      font-size: 13px;
      font-weight: 600;
      color: white;
      margin-bottom: 3px;
      font-family: var(--font-head);
    }
    .karriere-benefit-text span {
      font-size: 11px;
      color: rgba(255,255,255,0.4);
      line-height: 1.4;
    }

    /* Zitat */
    .karriere-quote {
      background: rgba(245,158,11,0.06);
      border-left: 3px solid var(--accent-amber);
      border-radius: 0 10px 10px 0;
      padding: 16px 20px;
    }
    .karriere-quote p {
      font-size: 13px;
      color: rgba(255,255,255,0.65);
      line-height: 1.65;
      font-style: italic;
      margin-bottom: 10px;
    }
    .karriere-quote-author {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .karriere-quote-avatar {
      width: 32px; height: 32px;
      border-radius: 50%;
      background: linear-gradient(135deg, #d97706, var(--accent-amber));
      display: flex; align-items: center; justify-content: center;
      font-family: var(--font-head);
      font-size: 11px;
      font-weight: 700;
      color: #0a0a0a;
      flex-shrink: 0;
    }
    .karriere-quote-author strong {
      font-size: 12px;
      color: white;
      display: block;
    }
    .karriere-quote-author span {
      font-size: 11px;
      color: rgba(255,255,255,0.4);
    }

    /* Powerpioniere Logo Pill */
    .powerpioniere-pill {
      display: inline-flex;
      align-items: center;
      gap: 14px;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(253,195,0,0.2);
      border-radius: 10px;
      padding: 12px 18px;
      margin-bottom: 28px;
      font-size: 12px;
      color: rgba(255,255,255,0.45);
    }
    .powerpioniere-logo {
      height: 48px;
      width: auto;
      display: block;
      flex-shrink: 0;
    }
    .powerpioniere-pill-divider { width: 1px; height: 48px; background: rgba(255,255,255,0.1); flex-shrink: 0; }

    @media (max-width: 1100px) {
      .karriere-left {
        padding: 64px 40px 64px 24px;
      }
      .karriere-right {
        padding: 64px 24px 64px 40px;
      }
    }
    @media (max-width: 768px) {
      .karriere-split { grid-template-columns: 1fr; }
      .karriere-left {
        padding: 56px 24px 40px;
      }
      .karriere-left::after { display: none; }
      .karriere-right {
        padding: 40px 24px 56px;
        background: rgba(245,158,11,0.03);
      }
      .karriere-benefits { grid-template-columns: 1fr; gap: 10px; }
      .karriere-cta-group { flex-direction: column; }
      .karriere-cta-group .btn { justify-content: center; }
    }

    /* ===== NEWSLETTER ===== */
    .newsletter {
      padding: 56px 0;
      background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
      color: #fff;
      position: relative;
      overflow: hidden;
    }
    .newsletter::before {
      content: '';
      position: absolute;
      inset: 0;
      background: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M0 20 L20 0 L40 20 L20 40 Z'/%3E%3C/g%3E%3C/svg%3E");
    }
    .newsletter-glow {
      position: absolute;
      width: 320px;
      height: 320px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%);
      right: -50px;
      top: -80px;
    }
    .newsletter .container {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 40px 48px;
      align-items: center;
      position: relative;
      z-index: 2;
    }
    .newsletter-left { color: white; }
    .newsletter-left .section-label { color: rgba(255,255,255,0.6); }
    .newsletter-left h2 { color: white; margin-bottom: 12px; }
    .newsletter-left p { color: rgba(255,255,255,0.75); font-size: 15px; line-height: 1.6; margin: 0; }
    .newsletter-perks {
      list-style: none;
      margin-top: 18px;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .newsletter-perks li {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 14px;
      color: rgba(255,255,255,0.85);
    }
    .newsletter-perks li svg { width: 16px; height: 16px; fill: #4fc3f7; flex-shrink: 0; }
    .newsletter-form {
      background: rgba(255,255,255,0.1);
      backdrop-filter: blur(12px);
      border: 1px solid rgba(255,255,255,0.2);
      border-radius: 16px;
      padding: 24px 24px 22px;
    }
    .newsletter-form h3 {
      font-size: 17px;
      color: white;
      margin-bottom: 4px;
    }
    .newsletter-form > p { font-size: 13px; color: rgba(255,255,255,0.65); margin-bottom: 14px; }
    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
    .form-group { display: flex; flex-direction: column; gap: 6px; }
    .form-group label { font-size: 11px; font-weight: 600; color: rgba(255,255,255,0.7); letter-spacing: 0.5px; }
    .form-input {
      padding: 10px 14px;
      background: rgba(255,255,255,0.12);
      border: 1px solid rgba(255,255,255,0.25);
      border-radius: 8px;
      font-family: var(--font-body);
      font-size: 14px;
      color: white;
      outline: none;
      transition: var(--transition);
    }
    .form-input::placeholder { color: rgba(255,255,255,0.4); }
    .form-input:focus { border-color: rgba(255,255,255,0.6); background: rgba(255,255,255,0.18); }
    .form-consent {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      margin: 12px 0;
    }
    .form-consent input[type="checkbox"] { margin-top: 2px; accent-color: white; cursor: pointer; }
    .form-consent label { font-size: 11px; color: rgba(255,255,255,0.65); line-height: 1.5; cursor: pointer; }
    .form-consent a { color: rgba(255,255,255,0.85); }
    .newsletter-submit {
      width: 100%;
      padding: 12px;
      background: white;
      color: var(--primary);
      border: none;
      border-radius: 8px;
      font-family: var(--font-head);
      font-size: 13px;
      letter-spacing: 1px;
      font-weight: 700;
      cursor: pointer;
      transition: var(--transition);
    }
    .newsletter-submit:hover {
      background: var(--primary-light);
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,0,0,0.15);
    }

    /* FormBuilder im Newsletter-Kasten */
    .newsletter-form .FormBuilder,
    .newsletter-form .InputfieldForm {
      margin: 0;
      padding: 0;
      font-family: var(--font-body);
    }
    .newsletter-form .Inputfields {
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding: 0;
      margin: 0;
      list-style: none;
    }
    .newsletter-form .Inputfield {
      margin: 0 !important;
      padding: 0;
      clear: none;
      float: none;
      width: 100%;
    }
    /* Kontaktband: volles Kontaktformular */
    .newsletter-form .Inputfield_message,
    .newsletter-form .InputfieldHidden {
      display: none !important;
    }
    .newsletter-form .InputfieldHeader {
      display: block;
      font-family: var(--font-head);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.04em;
      text-transform: none;
      color: rgba(255,255,255,0.78);
      margin: 0 0 5px;
      padding: 0;
    }
    .newsletter-form .InputfieldStateRequired > .InputfieldHeader:first-child::after {
      content: " *";
      color: #ffd54f;
      font-weight: 700;
    }
    .newsletter-form .InputfieldContent {
      margin: 0;
      padding: 0;
    }
    .newsletter-form input[type="text"],
    .newsletter-form input[type="email"],
    .newsletter-form input[type="tel"],
    .newsletter-form input[type="url"],
    .newsletter-form input[type="number"],
    .newsletter-form select,
    .newsletter-form textarea {
      width: 100%;
      max-width: 100%;
      margin: 0;
      padding: 10px 14px;
      border: 1px solid rgba(255,255,255,0.28);
      border-radius: 8px;
      font-family: var(--font-body);
      font-size: 14px;
      line-height: 1.4;
      color: #fff;
      background: rgba(255,255,255,0.12);
      box-sizing: border-box;
      display: block;
      height: auto;
      min-height: 42px;
      outline: none;
      transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
      -webkit-appearance: none;
      appearance: none;
    }
    .newsletter-form textarea {
      min-height: 0;
      resize: vertical;
    }
    .newsletter-form input::placeholder,
    .newsletter-form textarea::placeholder {
      color: rgba(255,255,255,0.42);
      font-size: 13px;
    }
    .newsletter-form input:hover,
    .newsletter-form textarea:hover,
    .newsletter-form select:hover {
      border-color: rgba(255,255,255,0.45);
      background: rgba(255,255,255,0.16);
    }
    .newsletter-form input:focus,
    .newsletter-form textarea:focus,
    .newsletter-form select:focus {
      border-color: rgba(255,255,255,0.75);
      background: rgba(255,255,255,0.2);
      box-shadow: 0 0 0 3px rgba(255,255,255,0.12);
    }
    .newsletter-form .Inputfield_privacy > .InputfieldHeader {
      display: none;
    }
    .newsletter-form .Inputfield_privacy .InputfieldContent > label {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      margin: 0;
      padding: 10px 12px;
      border-radius: 8px;
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.2);
      font-size: 11px;
      line-height: 1.45;
      color: rgba(255,255,255,0.78);
      cursor: pointer;
    }
    .newsletter-form .Inputfield_privacy input[type="checkbox"] {
      width: 18px;
      height: 18px;
      min-height: 18px;
      margin: 2px 0 0;
      padding: 0;
      flex-shrink: 0;
      accent-color: #fff;
      cursor: pointer;
    }
    .newsletter-form .Inputfield_privacy .pw-no-select { flex: 1; }
    .newsletter-form .Inputfield_privacy a {
      color: #fff;
      font-weight: 600;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .newsletter-form .InputfieldSubmit {
      margin-top: 4px;
    }
    .newsletter-form .InputfieldSubmit .InputfieldContent {
      display: block;
    }
    .newsletter-form .InputfieldSubmit button,
    .newsletter-form button[type="submit"] {
      width: 100%;
      padding: 12px 18px;
      background: #fff;
      color: var(--primary);
      border: none;
      border-radius: 8px;
      font-family: var(--font-head);
      font-size: 13px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 700;
      cursor: pointer;
      transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
      box-shadow: 0 6px 18px rgba(0,0,0,0.12);
      -webkit-appearance: none;
      appearance: none;
    }
    .newsletter-form .InputfieldSubmit button:hover,
    .newsletter-form button[type="submit"]:hover {
      background: #f0f9ff;
      transform: translateY(-2px);
      box-shadow: 0 12px 28px rgba(0,0,0,0.18);
    }
    .newsletter-form .alert,
    .newsletter-form .InputfieldForm .notes {
      border-radius: 10px;
      padding: 12px 14px;
      font-size: 13px;
      line-height: 1.5;
      margin: 0 0 4px;
      background: rgba(255,255,255,0.12);
      border: 1px solid rgba(255,255,255,0.25);
      color: #fff;
    }

    /* ===== FOOTER ===== */
    .footer {
      background: #0d1117;
      color: rgba(255,255,255,0.65);
    }
    .footer-main {
      padding: 64px 0 48px;
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }
    .footer-grid {
      display: grid;
      grid-template-columns: minmax(260px, 300px) repeat(4, minmax(0, 1fr));
      gap: 24px 48px;
      align-items: start;
    }
    .footer-cell {
      display: flex;
      flex-direction: column;
      gap: 24px;
      min-width: 0;
    }
    .footer-cell--brand {
      max-width: 300px;
    }
    .footer-brand-body {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .footer-logo,
    .footer-col-head {
      display: flex;
      align-items: center;
      min-height: 32px;
      margin: 0;
    }
    .footer-logo {
      gap: 12px;
    }
    .footer-logo-icon {
      width: 40px;
      height: 40px;
      background: var(--primary);
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      font-family: var(--font-head);
      font-size: 12px;
      font-weight: 700;
    }
    .footer-logo-name {
      font-family: var(--font-head);
      font-size: 13px;
      font-weight: 700;
      color: white;
      letter-spacing: 1px;
    }
    .footer-logo-sub { font-size: 10px; color: rgba(255,255,255,0.4); letter-spacing: 1.5px; text-transform: uppercase; }
    .footer-tagline {
      font-size: 13px;
      line-height: 1.7;
      margin: 0;
      color: rgba(255,255,255,0.62);
    }
    .footer-contact {
      display: flex;
      flex-direction: column;
      gap: 12px;
      padding: 16px 18px;
      margin: 0;
      background: rgba(255,255,255,0.035);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 12px;
    }
    .footer-contact-row {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      font-size: 13px;
      line-height: 1.55;
    }
    .footer-contact-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 28px;
      height: 28px;
      flex-shrink: 0;
      border-radius: 8px;
      background: rgba(0,136,189,0.12);
      border: 1px solid rgba(0,136,189,0.22);
    }
    .footer-contact-icon svg {
      width: 14px;
      height: 14px;
      fill: var(--primary);
    }
    .footer-address {
      display: flex;
      flex-direction: column;
      gap: 2px;
      font-style: normal;
      color: rgba(255,255,255,0.72);
    }
    .footer-contact-text {
      color: rgba(255,255,255,0.72);
      padding-top: 4px;
    }
    .footer-contact a {
      color: rgba(255,255,255,0.72);
      text-decoration: none;
      transition: var(--transition);
    }
    .footer-contact a:hover { color: var(--primary); }
    .footer-col-head {
      font-family: var(--font-head);
      font-size: 11px;
      letter-spacing: 2px;
      color: white;
      text-transform: uppercase;
    }
    .footer-links { list-style: none; display: flex; flex-direction: column; gap: 10px; }
    .footer-links ul { list-style: none; display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; }
    .footer-links p { margin: 0; }
    .footer-links a {
      font-size: 13px;
      color: rgba(255,255,255,0.55);
      text-decoration: none;
      transition: var(--transition);
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .footer-links a:hover { color: var(--primary); padding-left: 4px; }
    .footer-links a::before { content: '→'; font-size: 11px; color: var(--primary); opacity: 0; transition: var(--transition); }
    .footer-links a:hover::before { opacity: 1; }
    .footer-bottom {
      padding: 24px 0;
    }
    .footer-bottom .container {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      flex-wrap: wrap;
    }
    .footer-bottom p { font-size: 12px; }
    .footer-legal { display: flex; gap: 20px; }
    .footer-legal a {
      font-size: 12px;
      color: rgba(255,255,255,0.45);
      text-decoration: none;
      transition: var(--transition);
    }
    .footer-legal a:hover { color: var(--primary); }
    .footer-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: rgba(0,136,189,0.15);
      border: 1px solid rgba(0,136,189,0.3);
      border-radius: 20px;
      padding: 5px 12px;
      font-size: 11px;
      color: #4fc3f7;
      margin-top: 0;
    }
    .footer-badge svg { width: 12px; height: 12px; fill: #4fc3f7; }

    /* ===== MOBILE ===== */
    @media (max-width: 1024px) {
      .hero .container { grid-template-columns: 1fr; }
      .usv-check-card { max-width: 520px; }
      .branchen-panel.active { grid-template-columns: 1fr; }
      .branchen-tab { min-width: 110px; padding: 14px 10px; }
      .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 28px; }
      .footer-cell--brand { max-width: none; grid-column: 1 / -1; }
    }
    @media (max-width: 768px) {
      .container { padding: 0 18px; }
      .topbar { font-size: 11px; padding: 6px 0; }
      .topbar-left { gap: 10px; flex-wrap: wrap; }
      .topbar-right { display: none; }
      .topbar-item svg { width: 11px; height: 11px; }
      .navbar .container { height: 72px; }
      .logo-img { height: 52px; }
      .nav-cta--bar { display: none; }
      .nav-cta--in-menu {
        display: flex;
        width: 100%;
        justify-content: center;
        margin-top: 12px;
      }
      .hamburger { display: flex; }
      .nav-main {
        position: fixed;
        top: 0;
        right: 0;
        width: min(360px, 92vw);
        height: 100dvh;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
        padding: 80px 20px 28px;
        background: #fff;
        box-shadow: -8px 0 40px rgba(0,0,0,0.15);
        transform: translateX(105%);
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        z-index: 1002;
      }
      .nav-main.open { transform: translateX(0); }
      .nav-links {
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
        width: 100%;
      }
      .nav-item { width: 100%; }
      .nav-item > a,
      .nav-item-row > a {
        width: 100%;
        font-size: 16px;
        padding: 14px 12px;
        border-radius: 10px;
      }
      .nav-item-row > a .nav-chevron { display: none; }
      .nav-submenu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        flex-shrink: 0;
        border: none;
        background: var(--gray-100);
        border-radius: 10px;
        cursor: pointer;
        color: var(--secondary);
        transition: var(--transition);
      }
      .nav-submenu-toggle .nav-chevron { opacity: 1; }
      .nav-item.submenu-open .nav-submenu-toggle {
        background: var(--primary-light);
        color: var(--primary);
      }
      .nav-item.submenu-open .nav-submenu-toggle .nav-chevron {
        transform: rotate(180deg);
      }
      .nav-submenu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        background: transparent;
        padding: 0 0 4px 12px;
        min-width: 0;
        display: none;
      }
      .nav-submenu::before { display: none; }
      .nav-item.submenu-open > .nav-submenu { display: block; }
      .nav-submenu a {
        font-size: 15px;
        padding: 12px 14px;
        border-left: 2px solid var(--gray-200);
        border-radius: 0 8px 8px 0;
        margin-bottom: 2px;
      }
      .nav-submenu a.active {
        border-left-color: var(--primary);
        background: var(--primary-light);
      }
      .trust-grid { grid-template-columns: 1fr 1fr; }
      .trust-item { border-right: none; border-bottom: 1px solid var(--gray-200); }
      .leistungen-grid { grid-template-columns: 1fr; }
      .branchen-tab span { font-size: 11px; }
      .news-grid { grid-template-columns: 1fr; }
      .newsletter .container { grid-template-columns: 1fr; gap: 32px; }
      .form-row { grid-template-columns: 1fr; }
      .footer-grid { grid-template-columns: 1fr; }
      .hero-title { font-size: 32px; }
      .hero { min-height: auto; }
      .hero .container { padding-top: 48px; padding-bottom: 48px; }
      .notfall-trigger {
        top: auto;
        bottom: max(20px, env(safe-area-inset-bottom));
        right: max(16px, env(safe-area-inset-right));
        transform: none;
        border-radius: 50%;
        width: 56px;
        height: 56px;
        padding: 0;
        justify-content: center;
        box-shadow: 0 8px 28px rgba(244,63,94,0.45);
      }
      .notfall-trigger-label { display: none; }
      .notfall-pulse { top: 8px; left: 8px; }
      .block-header-small { padding: 72px 0 48px; }
      .block-header-small h1 { font-size: clamp(28px, 8vw, 40px); }
      .section-header { margin-bottom: 40px; }
      .section-header h2 { font-size: clamp(24px, 6.5vw, 36px); }
    }
    @media (max-width: 480px) {
      .topbar-left span:not(:first-child) { display: none; }
      .trust-grid { grid-template-columns: 1fr; }
      .branchen-tabs { gap: 6px; }
      .branchen-tab { min-width: 96px; padding: 12px 8px; }
    }
    /* ===== NOTFALL WIDGET ===== */
    /* Unten rechts — Platz für Side-Rail (Mitte rechts, Aicher-Style) */
    .notfall-trigger {
      position: fixed;
      right: max(20px, env(safe-area-inset-right));
      bottom: max(24px, env(safe-area-inset-bottom));
      top: auto;
      transform: none;
      z-index: 900;
      display: flex;
      flex-direction: row;
      align-items: center;
      cursor: pointer;
      background: var(--accent-rose);
      border-radius: 999px;
      padding: 14px 18px;
      gap: 10px;
      box-shadow: 0 8px 28px rgba(244,63,94,0.45);
      transition: var(--transition);
      border: none;
      outline: none;
    }
    .notfall-trigger:hover {
      background: #e11d48;
      padding-right: 22px;
      box-shadow: 0 10px 32px rgba(244,63,94,0.55);
    }
    .notfall-trigger svg { width: 20px; height: 20px; fill: white; flex-shrink: 0; }
    .notfall-trigger-label {
      writing-mode: horizontal-tb;
      text-orientation: mixed;
      transform: none;
      font-family: var(--font-head);
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: white;
      white-space: nowrap;
    }
    .notfall-pulse {
      position: absolute;
      top: 10px;
      left: 12px;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: white;
      animation: pulse-ring 1.6s ease infinite;
    }
    @keyframes pulse-ring {
      0%   { box-shadow: 0 0 0 0 rgba(255,255,255,0.7); }
      70%  { box-shadow: 0 0 0 8px rgba(255,255,255,0); }
      100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
    }

    /* Overlay */
    .notfall-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.55);
      backdrop-filter: blur(4px);
      z-index: 1100;
      align-items: center;
      justify-content: center;
    }
    .notfall-overlay.open { display: flex; animation: overlayIn 0.25s ease; }
    @keyframes overlayIn {
      from { opacity: 0; }
      to   { opacity: 1; }
    }

    /* Popup */
    .notfall-popup {
      background: #0d1117;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 20px;
      width: 480px;
      max-width: calc(100vw - 32px);
      position: relative;
      overflow: hidden;
      animation: popupIn 0.3s cubic-bezier(0.34,1.56,0.64,1);
    }
    @keyframes popupIn {
      from { opacity: 0; transform: scale(0.88) translateY(20px); }
      to   { opacity: 1; transform: scale(1) translateY(0); }
    }
    .notfall-popup-header {
      background: linear-gradient(135deg, #7f0020 0%, var(--accent-rose) 100%);
      padding: 28px 32px 24px;
      position: relative;
      overflow: hidden;
    }
    .notfall-popup-header::before {
      content: '';
      position: absolute;
      inset: 0;
      background: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M0 20 L20 0 L40 20 L20 40 Z'/%3E%3C/g%3E%3C/svg%3E");
    }
    .notfall-popup-header-inner { position: relative; z-index: 1; }
    .notfall-header-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 12px;
    }
    .notfall-badge {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      background: rgba(255,255,255,0.15);
      border: 1px solid rgba(255,255,255,0.25);
      border-radius: 20px;
      padding: 5px 12px;
      font-family: var(--font-head);
      font-size: 10px;
      letter-spacing: 2px;
      color: white;
      text-transform: uppercase;
    }
    .notfall-badge-dot {
      width: 6px; height: 6px;
      border-radius: 50%;
      background: #fff;
      animation: pulse-ring 1.4s ease infinite;
    }
    .notfall-close {
      width: 32px; height: 32px;
      border-radius: 50%;
      background: rgba(255,255,255,0.15);
      border: none;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: var(--transition);
      color: white;
    }
    .notfall-close:hover { background: rgba(255,255,255,0.25); }
    .notfall-close svg { width: 16px; height: 16px; fill: white; }
    .notfall-popup-header h2 {
      font-family: var(--font-head);
      font-size: 22px;
      font-weight: 700;
      color: white;
      margin-bottom: 4px;
    }
    .notfall-popup-header p {
      font-size: 13px;
      color: rgba(255,255,255,0.7);
    }

    /* Popup Body */
    .notfall-popup-body { padding: 28px 32px 32px; }

    /* Step: Eingabe */
    .notfall-step { display: none; }
    .notfall-step.active { display: block; animation: fadeInUp 0.3s ease; }

    .notfall-input-label {
      font-size: 12px;
      font-weight: 700;
      color: rgba(255,255,255,0.55);
      letter-spacing: 1px;
      text-transform: uppercase;
      margin-bottom: 8px;
      display: block;
    }
    .notfall-input-wrap {
      display: flex;
      gap: 10px;
      margin-bottom: 10px;
    }
    .notfall-input {
      flex: 1;
      padding: 13px 16px;
      background: rgba(255,255,255,0.07);
      border: 1.5px solid rgba(255,255,255,0.12);
      border-radius: 10px;
      font-family: var(--font-body);
      font-size: 14px;
      color: white;
      outline: none;
      transition: var(--transition);
      letter-spacing: 2px;
    }
    .notfall-input::placeholder { color: rgba(255,255,255,0.25); letter-spacing: 0; }
    .notfall-input:focus {
      border-color: var(--accent-rose);
      background: rgba(244,63,94,0.08);
      box-shadow: 0 0 0 4px rgba(244,63,94,0.12);
    }
    .notfall-input.error {
      border-color: var(--accent-rose);
      animation: shake 0.4s ease;
    }
    @keyframes shake {
      0%,100% { transform: translateX(0); }
      20%,60%  { transform: translateX(-6px); }
      40%,80%  { transform: translateX(6px); }
    }
    .notfall-check-btn {
      padding: 13px 20px;
      background: var(--accent-rose);
      color: white;
      border: none;
      border-radius: 10px;
      font-family: var(--font-head);
      font-size: 11px;
      letter-spacing: 1px;
      font-weight: 700;
      cursor: pointer;
      transition: var(--transition);
      white-space: nowrap;
    }
    .notfall-check-btn:hover { background: #e11d48; transform: translateY(-1px); }
    .notfall-hint {
      font-size: 11px;
      color: rgba(255,255,255,0.3);
      display: flex; align-items: center; gap: 6px;
    }
    .notfall-hint svg { width: 12px; height: 12px; fill: rgba(255,255,255,0.3); }

    /* Step: Erfolg */
    .notfall-success-top {
      display: flex;
      align-items: center;
      gap: 14px;
      background: rgba(16,185,129,0.1);
      border: 1px solid rgba(16,185,129,0.25);
      border-radius: 12px;
      padding: 16px 18px;
      margin-bottom: 24px;
    }
    .notfall-success-icon {
      width: 40px; height: 40px;
      border-radius: 10px;
      background: var(--accent-emerald);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .notfall-success-icon svg { width: 20px; height: 20px; fill: white; }
    .notfall-success-top strong {
      display: block;
      font-family: var(--font-head);
      font-size: 14px;
      color: var(--accent-emerald);
      margin-bottom: 2px;
    }
    .notfall-success-top span { font-size: 12px; color: rgba(255,255,255,0.5); }

    .notfall-contacts { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }
    .notfall-contact-card {
      display: flex;
      align-items: center;
      gap: 14px;
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 12px;
      padding: 16px 18px;
      text-decoration: none;
      transition: var(--transition);
      cursor: pointer;
    }
    .notfall-contact-card:hover {
      background: rgba(0,136,189,0.12);
      border-color: rgba(0,136,189,0.3);
      transform: translateX(4px);
    }
    .notfall-contact-avatar {
      width: 44px; height: 44px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--primary-dark), var(--primary));
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      font-family: var(--font-head);
      font-size: 14px;
      font-weight: 700;
      color: white;
    }
    .notfall-contact-info { flex: 1; }
    .notfall-contact-info strong {
      display: block;
      font-size: 13px;
      font-weight: 600;
      color: white;
      margin-bottom: 2px;
    }
    .notfall-contact-info span { font-size: 12px; color: rgba(255,255,255,0.45); }
    .notfall-contact-action {
      font-family: var(--font-head);
      font-size: 11px;
      color: var(--accent-cyan);
      letter-spacing: 1px;
    }
    .notfall-divider {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 14px;
    }
    .notfall-divider::before, .notfall-divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: rgba(255,255,255,0.08);
    }
    .notfall-divider span { font-size: 11px; color: rgba(255,255,255,0.3); white-space: nowrap; }
    .notfall-email-link {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 12px;
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 10px;
      color: rgba(255,255,255,0.6);
      text-decoration: none;
      font-size: 13px;
      transition: var(--transition);
    }
    .notfall-email-link:hover { background: rgba(255,255,255,0.09); color: white; }
    .notfall-email-link svg { width: 15px; height: 15px; fill: rgba(255,255,255,0.5); }

    /* Step: Fehler */
    .notfall-error-box {
      background: rgba(245,158,11,0.08);
      border: 1px solid rgba(245,158,11,0.25);
      border-radius: 12px;
      padding: 20px;
      text-align: center;
      margin-bottom: 20px;
    }
    .notfall-error-box svg { width: 36px; height: 36px; fill: var(--accent-amber); margin-bottom: 10px; }
    .notfall-error-box strong {
      display: block;
      font-family: var(--font-head);
      font-size: 15px;
      color: var(--accent-amber);
      margin-bottom: 8px;
    }
    .notfall-error-box p { font-size: 13px; color: rgba(255,255,255,0.55); line-height: 1.6; margin-bottom: 16px; }
    .notfall-retry {
      font-size: 12px;
      color: rgba(255,255,255,0.4);
      text-align: center;
      margin-top: 12px;
      cursor: pointer;
      transition: var(--transition);
    }
    .notfall-retry:hover { color: var(--accent-cyan); }
    .notfall-retry span { text-decoration: underline; }

/* ── Page Header (for basic/news/branche/leistung sub-pages) ─────────── */
.page-header {
    padding: 120px 0 60px;
    background: linear-gradient(180deg, var(--dark) 0%, var(--dark-light) 100%);
    color: var(--white);
    position: relative;
    overflow: hidden;
}
.page-header h1 {
    font-family: var(--font-head);
    font-size: clamp(36px, 5vw, 56px);
    font-weight: 800;
    line-height: 1.1;
    margin: 0 0 20px;
    letter-spacing: -0.02em;
}
.page-intro {
    font-size: 18px;
    color: rgba(255,255,255,0.7);
    max-width: 720px;
    line-height: 1.6;
}
.page-header-image {
    background-size: cover;
    background-position: center;
    background-blend-mode: overlay;
    background-color: rgba(5,20,40,0.75);
}

/* ── News Article Detail ─────────────────────────────────────────── */
.news-article {
    padding: 60px 0 100px;
    background: var(--white);
}
.news-article .container {
    max-width: 820px;
}
.news-article-head { margin-bottom: 40px; }
.news-article-head .news-category {
    position: static;
    display: inline-block;
    margin-bottom: 14px;
    background: var(--primary-light);
    color: var(--primary);
    padding: 4px 10px;
    border-radius: 4px;
    font-family: var(--font-head);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.news-article-head .news-meta {
    font-size: 12px;
    color: var(--secondary-light);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 14px;
}
.news-article-back {
    display: inline-block;
    color: var(--primary);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 20px;
}
.news-article-back:hover { text-decoration: underline; }
.news-article-head h1 {
    font-family: var(--font-head);
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 800;
    line-height: 1.15;
    color: var(--dark);
    margin: 12px 0 16px;
    letter-spacing: -0.02em;
}
.news-article-intro {
    font-size: 18px;
    color: var(--text-muted);
    line-height: 1.6;
}
.news-article-image {
    margin: 40px 0;
    border-radius: 16px;
    overflow: hidden;
}
.news-article-image img { width: 100%; height: auto; display: block; }
.news-article-body {
    font-size: 17px;
    line-height: 1.75;
    color: var(--text);
}
.news-article-body h2,
.news-article-body h3,
.news-article-body h4 {
    font-family: var(--font-head);
    color: var(--dark);
    margin: 1.6em 0 0.6em;
    line-height: 1.25;
}
.news-article-body p { margin: 0 0 1.2em; }
.news-article-body ul,
.news-article-body ol { margin: 0 0 1.2em 1.4em; }
.news-article-body a { color: var(--primary); }

/* ── Richtext Block Widths ───────────────────────────────────────── */
.richtext-section { padding: 80px 0; background: var(--white); }
.richtext-inner { margin: 0 auto; }
.richtext-narrow { max-width: 680px; }
.richtext-normal { max-width: 860px; }
.richtext-wide   { max-width: 1120px; }
.richtext-body { font-size: 17px; line-height: 1.75; color: var(--dark); }
.richtext-body h2, .richtext-body h3, .richtext-body h4 {
    font-family: var(--font-head);
    color: var(--dark);
    margin: 1.6em 0 0.6em;
}
.bg-3.richtext-section .richtext-body,
.bg-3.richtext-section .richtext-body p,
.bg-3.richtext-section .richtext-body li { color: rgba(255,255,255,0.82); }
.bg-3.richtext-section .richtext-body h2,
.bg-3.richtext-section .richtext-body h3,
.bg-3.richtext-section .richtext-body h4 { color: #fff; }
.bg-3.richtext-section > .container > .richtext-inner > h2 { color: #fff; }

/* ── CTA Box Block ───────────────────────────────────────────────── */
.cta-section { padding: 80px 0; background: var(--white); }
.cta-box {
    background: linear-gradient(135deg, var(--dark), var(--dark-light));
    color: var(--white);
    padding: 60px 40px;
    border-radius: 20px;
    text-align: center;
}
.cta-box .section-label { color: var(--primary); }
.cta-box h2 {
    font-family: var(--font-head);
    font-size: clamp(28px, 3.5vw, 40px);
    font-weight: 800;
    color: var(--white);
    margin: 10px 0 16px;
    line-height: 1.15;
}
.cta-box p {
    font-size: 17px;
    color: rgba(255,255,255,0.75);
    max-width: 640px;
    margin: 0 auto 28px;
    line-height: 1.6;
}
.cta-buttons {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BLOCK-STYLES – Neue generische Bausteine
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Helper: Background-Color-Klassen ──────────────────────────────────── */
.bg-1 { background: #fff; color: var(--dark); }
.bg-2 { background: #f7f8fa; color: var(--dark); }
.bg-3 { background: var(--dark-900, #0f1419); color: rgba(255,255,255,0.88); }
.bg-1 .section-label,
.bg-2 .section-label { color: var(--primary); }
.bg-3 h1, .bg-3 h2, .bg-3 h3, .bg-3 h4, .bg-3 strong { color: #fff; }
.bg-3 p, .bg-3 li { color: rgba(255,255,255,0.82); }
.bg-3 .section-label { color: var(--accent-cyan, #4fc3f7); }

/* ── Header klein (Unterseiten-Header) ─────────────────────────────────── */
.block-header-small {
    position: relative;
    padding: 120px 0 80px;
    background: linear-gradient(135deg, #f7f8fa 0%, #eef0f5 100%);
    text-align: center;
}
.block-header-small.has-image {
    background-size: cover;
    background-position: center;
    color: #fff;
}
.block-header-small.has-image::before {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.45), rgba(0,0,0,0.65));
}
.block-header-small .container { position: relative; z-index: 1; }
.block-header-small h1 {
    font-family: var(--font-head);
    font-size: clamp(32px, 5vw, 56px);
    font-weight: 800;
    margin: 12px 0 14px;
    line-height: 1.1;
}
.block-header-small:not(.has-image) h1 { color: var(--dark); }
.block-header-small:not(.has-image) .section-label { color: var(--primary); }
.block-header-small.has-image h1,
.block-header-small.has-image .section-label,
.block-header-small.has-image .page-intro { color: #fff; }
.block-header-small .page-intro {
    font-size: 18px;
    max-width: 680px;
    margin: 0 auto;
    line-height: 1.65;
    color: rgba(0,0,0,0.72);
}
.block-header-small.has-image .block-claim {
    color: rgba(255,255,255,0.95);
}

/* ── Text + Bild ───────────────────────────────────────────────────────── */
.block-text-image { padding: 100px 0; }
.block-claim {
    font-family: var(--font-head);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--primary);
    margin: 0 0 8px;
}
.block-badge-neu {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: var(--accent-amber, #f59e0b);
    color: #111;
    padding: 4px 10px;
    border-radius: 4px;
    margin: 0 0 14px;
}
.bg-3 .block-claim { color: var(--accent-cyan, #4fc3f7); }
.bg-3 .block-badge-neu { background: var(--accent-amber, #f59e0b); }
.text-image-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: stretch;
}
.block-text-image.layout-image_left .text-image-grid { direction: rtl; }
.block-text-image.layout-image_left .text-image-grid > * { direction: ltr; }
.text-image-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.text-image-content h2 {
    font-family: var(--font-head);
    font-size: clamp(28px, 3.5vw, 42px);
    font-weight: 800;
    margin: 10px 0 18px;
    line-height: 1.15;
}
.text-image-body { font-size: 16px; line-height: 1.7; margin-bottom: 22px; }
.text-image-body > *:last-child { margin-bottom: 0; }
.text-image-media {
    position: relative;
    min-height: 420px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.15);
    align-self: stretch;
}
.text-image-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 0;
    box-shadow: none;
}
@media (max-width: 768px) {
    .text-image-grid { grid-template-columns: 1fr; gap: 32px; }
    .block-text-image.layout-image_left .text-image-grid { direction: ltr; }
    .text-image-media {
        min-height: 280px;
        aspect-ratio: 4 / 3;
    }
}

/* ── Zwei Spalten ──────────────────────────────────────────────────────── */
.block-two-columns { padding: 80px 0; }
.two-columns-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
}
.two-columns-grid .col { font-size: 16px; line-height: 1.7; }
.two-columns-grid h3 {
    font-family: var(--font-head);
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 12px;
}
@media (max-width: 768px) {
    .two-columns-grid { grid-template-columns: 1fr; gap: 32px; }
}

/* ── Features Grid ─────────────────────────────────────────────────────── */
.block-features-grid { padding: 100px 0; }
.block-features-grid.features-flush-top { padding-top: 40px; }
.block-features-grid.features-flush-top .features-grid { margin-top: 0; }
.features-grid {
    display: grid;
    gap: 28px;
    margin-top: 48px;
}

/* Überzeugungen: Intro + Karten als eine gemeinsame Fläche */
.ueberzeugungen-lead {
    padding: 72px 0 0;
}
.ueberzeugungen-lead-inner {
    display: grid;
    grid-template-columns: minmax(140px, 220px) minmax(0, 1fr);
    gap: 28px 36px;
    align-items: center;
}
.ueberzeugungen-lead-media {
    border-radius: 14px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    box-shadow: 0 12px 32px rgba(0,0,0,0.1);
}
.ueberzeugungen-lead-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.ueberzeugungen-lead-copy .section-label {
    margin-bottom: 8px;
}
.ueberzeugungen-lead-copy h2 {
    font-family: var(--font-head);
    font-size: clamp(26px, 3.2vw, 38px);
    font-weight: 800;
    line-height: 1.15;
    margin: 0 0 10px;
    max-width: 18ch;
}
.ueberzeugungen-lead-body {
    margin: 0;
}
.ueberzeugungen-lead-body .block-claim,
.ueberzeugungen-lead-body p {
    margin: 0;
}
.ueberzeugungen-lead + .block-features-grid,
.ueberzeugungen-lead + .block-features-grid.features-flush-top {
    padding-top: 28px;
    padding-bottom: 80px;
}
.ueberzeugungen-lead + .block-features-grid .features-grid,
.ueberzeugungen-lead + .block-features-grid.features-flush-top .features-grid {
    margin-top: 0;
}
@media (max-width: 768px) {
    .ueberzeugungen-lead {
        padding-top: 48px;
    }
    .ueberzeugungen-lead-inner {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .ueberzeugungen-lead-media {
        max-width: 280px;
    }
    .ueberzeugungen-lead-copy h2 {
        max-width: none;
    }
    .ueberzeugungen-lead + .block-features-grid,
    .ueberzeugungen-lead + .block-features-grid.features-flush-top {
        padding-top: 20px;
        padding-bottom: 56px;
    }
}

/* legacy hooks (falls alte Markup-Caches) */
.block-text-image.is-ueberzeugungen {
    padding-top: 72px;
    padding-bottom: 0;
}
.block-text-image.is-ueberzeugungen + .block-features-grid,
.block-text-image.is-ueberzeugungen + .block-features-grid.features-flush-top {
    padding-top: 28px;
    padding-bottom: 80px;
}
.block-text-image.is-ueberzeugungen + .block-features-grid .features-grid {
    margin-top: 0;
}
.features-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.features-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.features-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.feature-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 16px;
    padding: 32px 28px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}
.feature-icon {
    width: 52px; height: 52px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--primary), var(--primary-light, var(--primary)));
    color: #fff;
    margin-bottom: 18px;
}
.feature-icon svg { width: 28px; height: 28px; fill: currentColor; }
.feature-card h3 {
    font-family: var(--font-head);
    font-size: 20px; font-weight: 700;
    margin: 0 0 10px;
}
.feature-text { font-size: 15px; line-height: 1.65; }
.bg-1 .feature-text,
.bg-2 .feature-text { color: rgba(0,0,0,0.75); }
.bg-3 .feature-card { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.1); }
.bg-3 .feature-text { color: rgba(255,255,255,0.82); }
@media (max-width: 960px) {
    .features-grid.cols-3, .features-grid.cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .features-grid { grid-template-columns: 1fr !important; }
}

/* ── Accordion / FAQ ───────────────────────────────────────────────────── */
.block-accordion { padding: 100px 0; }
.accordion-list {
    max-width: 820px;
    margin: 40px auto 0;
    display: flex; flex-direction: column; gap: 12px;
}
.accordion-item {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 12px;
    overflow: hidden;
}
.accordion-item summary {
    list-style: none;
    cursor: pointer;
    padding: 20px 24px;
    display: flex; justify-content: space-between; align-items: center;
    font-weight: 600;
    font-size: 17px;
}
.accordion-item summary::-webkit-details-marker { display: none; }
.accordion-chevron {
    transition: transform 0.25s ease;
    fill: currentColor;
    flex-shrink: 0;
}
.accordion-item[open] .accordion-chevron { transform: rotate(180deg); }
.accordion-body {
    padding: 0 24px 22px;
    font-size: 16px; line-height: 1.7;
}
.bg-1 .accordion-body,
.bg-2 .accordion-body { color: rgba(0,0,0,0.75); }
.bg-3 .accordion-item {
    background: #1a222d;
    border-color: rgba(255,255,255,0.12);
}
.bg-3 .accordion-item summary { color: #fff; }
.bg-3 .accordion-body { color: rgba(255,255,255,0.82); }

/* ── Gallery ───────────────────────────────────────────────────────────── */
.block-gallery { padding: 100px 0; }
.gallery-grid {
    display: grid;
    gap: 20px;
    margin-top: 48px;
}
.gallery-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.gallery-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.gallery-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.gallery-item {
    position: relative;
    display: block;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 4/3;
    background: #eee;
}
.gallery-item img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.gallery-item:hover img { transform: scale(1.05); }
.gallery-caption {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 14px 18px;
    background: linear-gradient(180deg, transparent, rgba(0,0,0,0.8));
    color: #fff; font-size: 14px;
}
@media (max-width: 720px) {
    .gallery-grid.cols-3, .gallery-grid.cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .gallery-grid { grid-template-columns: 1fr !important; }
}

/* ── Team ──────────────────────────────────────────────────────────────── */
.block-team { padding: 100px 0; }
.team-group { margin-top: 56px; }
.team-group:first-of-type { margin-top: 40px; }
.team-group-title {
    font-family: var(--font-head);
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 24px;
    text-align: center;
}
.team-grid {
    display: grid; gap: 28px;
    margin-top: 0;
}
.team-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.team-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.team-grid.cols-4 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.team-card {
    text-align: center;
    padding: 30px 20px;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 16px;
}
.team-avatar {
    width: 180px; height: 180px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 18px;
    background: linear-gradient(135deg, var(--primary), var(--primary-light, var(--accent-cyan, #4fc3f7)));
    display: flex; align-items: center; justify-content: center;
}
.team-avatar img { width: 100%; height: 100%; object-fit: cover; }
.team-initials {
    font-family: var(--font-head);
    font-size: 52px; font-weight: 800; color: #fff;
}
.team-name {
    display: block; font-family: var(--font-head);
    font-size: 18px; font-weight: 700; margin-bottom: 4px;
}
.team-role {
    display: block; font-size: 14px;
    margin-bottom: 16px;
}
.bg-1 .team-role,
.bg-2 .team-role { color: rgba(0,0,0,0.65); }
.team-contact {
    display: flex; flex-direction: column; gap: 6px;
    align-items: center;
}
.team-link {
    font-size: 14px; color: var(--primary);
    display: inline-flex; align-items: center; gap: 6px;
    text-decoration: none;
}
.team-link svg { width: 16px; height: 16px; fill: currentColor; }
.team-link:hover { text-decoration: underline; }
.bg-3 .team-card { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.1); }
.bg-3 .team-role { color: rgba(255,255,255,0.65); }
.bg-3 .team-group-title { color: #fff; }
@media (max-width: 960px) {
    .team-grid.cols-3, .team-grid.cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .team-grid { grid-template-columns: 1fr !important; }
}

/* ── Logo-Cloud ────────────────────────────────────────────────────────── */
.block-logo-cloud { padding: 80px 0; }
.logo-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 24px;
    align-items: center;
    margin-top: 40px;
}
.logo-item {
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
    background: #fff;
    border-radius: 12px;
    border: 1px solid rgba(0,0,0,0.05);
    min-height: 80px;
    transition: transform 0.25s ease;
}
.logo-item:hover { transform: translateY(-2px); }
.logo-item img {
    max-width: 100%; max-height: 60px;
    object-fit: contain;
    opacity: 1;
    transition: opacity 0.25s, transform 0.25s;
}
.logo-item:hover img { opacity: 0.92; }
.bg-3 .logo-item { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.08); }
@media (max-width: 900px) {
    .logo-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
    .logo-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Stats-Strip ───────────────────────────────────────────────────────── */
.block-stats-strip { padding: 80px 0; }
.stats-grid {
    display: grid;
    gap: 40px;
    text-align: center;
    margin-top: 40px;
}
.stats-grid-2 { grid-template-columns: repeat(2, 1fr); }
.stats-grid-3 { grid-template-columns: repeat(3, 1fr); }
.stats-grid-4 { grid-template-columns: repeat(4, 1fr); }
.stat-item .stat-value {
    display: block;
    font-family: var(--font-head);
    font-size: clamp(36px, 5vw, 56px);
    font-weight: 800;
    color: var(--primary);
    line-height: 1;
}
.stat-item .stat-label {
    display: block;
    font-size: 15px;
    margin-top: 8px;
}
.bg-1 .stat-item .stat-label,
.bg-2 .stat-item .stat-label { color: rgba(0,0,0,0.68); }
.bg-3 .stat-item .stat-value { color: var(--accent-cyan, #4fc3f7); }
.bg-3 .stat-item .stat-label { color: rgba(255,255,255,0.75); }
@media (max-width: 720px) {
    .stats-grid-3, .stats-grid-4 { grid-template-columns: repeat(2, 1fr); }
}

/* ── Process Steps ─────────────────────────────────────────────────────── */
.block-process { padding: 100px 0; }
.process-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
    margin-top: 48px;
    counter-reset: step;
}
.process-step {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 36px 30px 32px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.process-step-num {
    font-family: var(--font-head);
    font-size: 44px; font-weight: 800;
    color: rgba(0,0,0,0.08);
    line-height: 1;
    margin-bottom: 12px;
}
.process-step h3 {
    font-family: var(--font-head);
    font-size: 19px; font-weight: 700; margin: 0 0 12px;
}
.process-step-text {
    font-size: 15px;
    line-height: 1.65;
    flex: 1;
}
.bg-1 .process-step-text,
.bg-2 .process-step-text { color: rgba(0,0,0,0.75); }
.process-step-icon { margin-bottom: 14px; }
.process-step-icon svg { width: 32px; height: 32px; fill: var(--primary); }
.bg-3 .process-step { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.1); box-shadow: none; }
.bg-3 .process-step-text { color: rgba(255,255,255,0.82); }
.bg-3 .process-step-num { color: rgba(255,255,255,0.15); }
@media (max-width: 700px) { .process-grid { grid-template-columns: 1fr; } }

/* ── Timeline ──────────────────────────────────────────────────────────── */
.block-timeline { padding: 100px 0; overflow: hidden; }

/* Zigzag timeline */
.tl-track {
    position: relative;
    max-width: 980px;
    margin: 56px auto 0;
    padding: 8px 0 24px;
}
.tl-rail {
    position: absolute;
    top: 0; bottom: 0; left: 50%;
    width: 2px;
    transform: translateX(-50%);
    z-index: 0;
}
.tl-rail-line {
    position: absolute; inset: 0;
    background: linear-gradient(
        180deg,
        rgba(0,136,189,0.15) 0%,
        rgba(0,136,189,0.55) 12%,
        rgba(0,136,189,0.55) 88%,
        rgba(0,136,189,0.15) 100%
    );
}
.tl-rail-glow {
    position: absolute;
    top: 0; left: 50%;
    width: 18px; height: 18px;
    margin-left: -9px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(79,195,247,0.55) 0%, transparent 70%);
    animation: tl-pulse 3.2s ease-in-out infinite;
}
@keyframes tl-pulse {
    0%, 100% { transform: translateY(0); opacity: 0.35; }
    50% { transform: translateY(40px); opacity: 0.9; }
}

.tl-stop {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 56px 1fr;
    gap: 0 20px;
    align-items: start;
    margin-bottom: 36px;
    z-index: 1;
}
.tl-stop:last-child { margin-bottom: 0; }

.tl-node {
    grid-column: 2;
    position: relative;
    width: 56px; height: 56px;
    display: flex; align-items: center; justify-content: center;
    z-index: 2;
}
.tl-node-ring {
    position: absolute;
    width: 28px; height: 28px;
    border-radius: 50%;
    border: 2px solid rgba(0,136,189,0.35);
    background: #fff;
    box-shadow: 0 0 0 6px rgba(0,136,189,0.08);
}
.tl-node-core {
    position: relative;
    width: 12px; height: 12px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), var(--accent-cyan, #4fc3f7));
    box-shadow: 0 0 16px rgba(0,136,189,0.45);
}

.tl-card {
    position: relative;
    background: #fff;
    border: 1px solid rgba(0,136,189,0.12);
    border-radius: 18px;
    padding: 28px 30px 26px;
    box-shadow: 0 10px 30px rgba(15, 40, 60, 0.06);
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
.tl-card::before {
    content: '';
    position: absolute;
    top: 0; left: 24px; right: 24px;
    height: 3px;
    border-radius: 0 0 3px 3px;
    background: linear-gradient(90deg, var(--primary), var(--accent-cyan, #4fc3f7));
    opacity: 0.85;
}
.tl-stop:hover .tl-card {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(15, 40, 60, 0.1);
    border-color: rgba(0,136,189,0.28);
}
.tl-stop:hover .tl-node-ring {
    border-color: var(--primary);
    box-shadow: 0 0 0 8px rgba(0,136,189,0.12);
}

.tl-stop--left .tl-card { grid-column: 1; text-align: right; }
.tl-stop--left .tl-card-top { justify-content: flex-end; }
.tl-stop--left .tl-card::before { left: auto; right: 24px; width: 72px; }
.tl-stop--right .tl-card { grid-column: 3; text-align: left; }
.tl-stop--right .tl-card::before { left: 24px; right: auto; width: 72px; }

.tl-card-top {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 10px;
}
.tl-index {
    font-family: var(--font-head);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: rgba(0,136,189,0.45);
}
.tl-date {
    font-family: var(--font-head);
    font-size: clamp(28px, 3.2vw, 40px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--primary);
    background: linear-gradient(135deg, var(--primary), var(--accent-cyan-dark, #0288d1));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.tl-title {
    font-family: var(--font-head);
    font-size: clamp(20px, 2.2vw, 26px);
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--dark);
}
.tl-text {
    font-size: 15px;
    line-height: 1.65;
    color: rgba(0,0,0,0.72);
}
.tl-text > *:last-child { margin-bottom: 0; }

.bg-1 .tl-card,
.bg-2 .tl-card { background: #fff; }
.bg-3 .tl-card {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.1);
    box-shadow: none;
}
.bg-3 .tl-title { color: #fff; }
.bg-3 .tl-text { color: rgba(255,255,255,0.78); }
.bg-3 .tl-node-ring { background: var(--dark-900, #0f1419); border-color: rgba(79,195,247,0.45); }
.bg-3 .tl-rail-line {
    background: linear-gradient(180deg, transparent, rgba(79,195,247,0.45), transparent);
}

@media (max-width: 860px) {
    .tl-track { max-width: 640px; padding-left: 0; }
    .tl-rail { left: 22px; transform: none; }
    .tl-stop {
        grid-template-columns: 44px 1fr;
        gap: 0 16px;
        margin-bottom: 28px;
    }
    .tl-node { grid-column: 1; width: 44px; height: 44px; }
    .tl-stop--left .tl-card,
    .tl-stop--right .tl-card {
        grid-column: 2;
        text-align: left;
    }
    .tl-stop--left .tl-card-top,
    .tl-stop--right .tl-card-top { justify-content: flex-start; }
    .tl-stop--left .tl-card::before,
    .tl-stop--right .tl-card::before {
        left: 24px; right: auto; width: 64px;
    }
    .tl-date { font-size: 28px; }
    @keyframes tl-pulse {
        0%, 100% { transform: translateY(0); opacity: 0.35; }
        50% { transform: translateY(28px); opacity: 0.85; }
    }
}

/* ── Testimonials ──────────────────────────────────────────────────────── */
.block-testimonials { padding: 100px 0; }
.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 28px;
    margin-top: 48px;
}
.testimonial-card {
    background: #fff;
    border-radius: 16px;
    padding: 32px 28px;
    border: 1px solid rgba(0,0,0,0.06);
    margin: 0;
    position: relative;
}
.testimonial-card::before {
    content: '"';
    font-family: serif;
    position: absolute;
    top: -6px; left: 20px;
    font-size: 80px;
    color: var(--primary);
    opacity: 0.25;
    line-height: 1;
}
.testimonial-card blockquote {
    margin: 0 0 22px;
    font-size: 16px; line-height: 1.7;
    font-style: italic;
}
.bg-1 .testimonial-card blockquote,
.bg-2 .testimonial-card blockquote { color: rgba(0,0,0,0.85); }
.testimonial-card figcaption {
    display: flex; align-items: center; gap: 12px;
}
.testimonial-avatar {
    width: 64px; height: 64px;
    border-radius: 50%;
    overflow: hidden;
    background: linear-gradient(135deg, var(--primary), var(--accent-cyan, #4fc3f7));
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-weight: 700; font-size: 15px;
    flex-shrink: 0;
}
.testimonial-avatar img { width: 100%; height: 100%; object-fit: cover; }
.testimonial-meta strong { display: block; font-size: 15px; }
.testimonial-meta span { font-size: 13px; }
.bg-1 .testimonial-meta span,
.bg-2 .testimonial-meta span { color: rgba(0,0,0,0.65); }
.bg-3 .testimonial-card { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.1); }
.bg-3 .testimonial-card blockquote { color: rgba(255,255,255,0.9); }
.bg-3 .testimonial-meta span { color: rgba(255,255,255,0.65); }

/* Einzelnes Zitat mit großem Portrait (mind. halbe Blockbreite) */
.testimonials-intro {
    max-width: 760px;
    margin: 0 auto 40px;
    text-align: center;
    font-size: 17px;
    line-height: 1.7;
    color: rgba(0,0,0,0.72);
}
.testimonials-intro p { margin: 0 0 1em; }
.testimonials-intro p:last-child { margin-bottom: 0; }
.testimonial-featured {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: center;
    margin-top: 24px;
}
.testimonial-featured-media {
    border-radius: 16px;
    overflow: hidden;
    min-height: 360px;
    background: #eee;
}
.testimonial-featured-media img {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
    display: block;
}
.testimonial-featured-quote {
    margin: 0;
}
.testimonial-featured-quote blockquote {
    font-family: var(--font-head);
    font-size: clamp(1.25rem, 2.2vw, 1.65rem);
    line-height: 1.45;
    font-weight: 600;
    margin: 0 0 24px;
    color: rgba(0,0,0,0.88);
}
.testimonial-featured-quote figcaption strong {
    display: block;
    font-size: 16px;
}
.testimonial-featured-quote figcaption span {
    display: block;
    font-size: 14px;
    color: rgba(0,0,0,0.6);
    margin-top: 4px;
}
.bg-3 .testimonials-intro,
.bg-3 .testimonial-featured-quote blockquote { color: rgba(255,255,255,0.9); }
.bg-3 .testimonial-featured-quote figcaption span { color: rgba(255,255,255,0.65); }
@media (max-width: 900px) {
    .testimonial-featured {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .testimonial-featured-media,
    .testimonial-featured-media img { min-height: 280px; }
}

/* ── Downloads ─────────────────────────────────────────────────────────── */
.block-downloads { padding: 100px 0; }
.downloads-list {
    list-style: none; margin: 40px 0 0; padding: 0;
    max-width: 820px; margin-left: auto; margin-right: auto;
    display: flex; flex-direction: column; gap: 10px;
}
.download-item a {
    display: flex; align-items: center; gap: 18px;
    padding: 18px 22px;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s, box-shadow 0.2s;
}
.download-item a:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(0,0,0,0.06);
}
.download-ext {
    flex-shrink: 0;
    width: 52px; height: 52px;
    background: var(--primary);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    border-radius: 10px;
    font-size: 12px; font-weight: 800; letter-spacing: 0.05em;
}
.download-body { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.download-body strong { font-size: 16px; }
.download-text { font-size: 14px; }
.download-meta { font-size: 13px; white-space: nowrap; }
.bg-1 .download-text,
.bg-2 .download-text { color: rgba(0,0,0,0.65); }
.bg-1 .download-meta,
.bg-2 .download-meta { color: rgba(0,0,0,0.55); }
.bg-3 .download-item a { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.1); color: #fff; }
.bg-3 .download-text, .bg-3 .download-meta { color: rgba(255,255,255,0.6); }

/* ── Video ─────────────────────────────────────────────────────────────── */
.block-video { padding: 100px 0; }
.block-video .video-text {
    max-width: 720px; margin: 0 auto 32px;
    font-size: 17px; line-height: 1.7; text-align: center;
}
.video-embed {
    position: relative;
    aspect-ratio: 16/9;
    max-width: 960px;
    margin: 0 auto;
    border-radius: 16px;
    overflow: hidden;
    background: #000 center/cover no-repeat;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}
.video-embed iframe,
.video-embed video {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    border: 0;
}
.video-poster img {
    width: 100%; max-width: 960px;
    margin: 0 auto; display: block;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}

/* ── Image Full-Width ──────────────────────────────────────────────────── */
.block-image-full { padding: 40px 0; }
.block-image-full figure { margin: 0; }
.block-image-full img { width: 100%; height: auto; display: block; }
.image-full-caption {
    max-width: var(--container-max);
    margin: 14px auto 0;
    padding: 0 20px;
    text-align: center;
    font-size: 14px;
}
.bg-1 .image-full-caption,
.bg-2 .image-full-caption { color: rgba(0,0,0,0.65); }
.bg-1 .image-full-caption strong,
.bg-2 .image-full-caption strong { display: block; color: rgba(0,0,0,0.85); margin-bottom: 2px; }
.bg-3 .image-full-caption { color: rgba(255,255,255,0.72); }
.bg-3 .image-full-caption strong { display: block; color: rgba(255,255,255,0.9); margin-bottom: 2px; }

/* ── Spacer ────────────────────────────────────────────────────────────── */
.block-spacer { width: 100%; }
.block-spacer.spacer-small  { height: 40px; }
.block-spacer.spacer-medium { height: 80px; }
.block-spacer.spacer-large  { height: 140px; }

/* ── Map ───────────────────────────────────────────────────────────────── */
.block-map { padding: 80px 0; }
.map-wrap {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
    margin-top: 40px;
    align-items: stretch;
}
.map-iframe {
    border-radius: 16px; overflow: hidden;
    aspect-ratio: 16/10; background: #eee;
    min-height: 320px;
}
.map-iframe iframe { width: 100%; height: 100%; border: 0; display: block; min-height: 320px; }
.map-consent {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    background: #dce6ee;
    border: 1px solid rgba(0,0,0,0.06);
    min-height: 320px;
}
.map-consent-placeholder {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 12px;
    min-height: 320px;
    padding: 36px 32px;
    max-width: none;
    width: 100%;
    box-sizing: border-box;
    background:
        linear-gradient(180deg, #e8f0f6 0%, #d5e2ec 100%);
}
.map-consent-placeholder[hidden],
.map-consent.is-loaded .map-consent-placeholder {
    display: none !important;
}
.map-consent .map-iframe[hidden],
.map-consent .map-iframe.is-pending {
    display: none !important;
}
.map-consent.is-loaded .map-iframe {
    display: block !important;
}
.map-consent-title {
    font-family: var(--font-head);
    font-size: 22px;
    font-weight: 700;
    color: var(--dark);
    margin: 0;
}
.map-consent-text,
.map-consent-hint {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: rgba(0,0,0,0.65);
    max-width: 520px;
}
.map-consent-hint { font-size: 13px; color: rgba(0,0,0,0.5); }
.visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0);
    white-space: nowrap; border: 0;
}
.map-address {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 16px;
    padding: 32px 28px;
    font-size: 16px; line-height: 1.7;
}
.bg-3 .map-address { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.1); }
@media (max-width: 860px) { .map-wrap { grid-template-columns: 1fr; } }

/* ── Embed ─────────────────────────────────────────────────────────────── */
.block-embed { padding: 80px 0; }
.embed-wrap { margin-top: 32px; }

/* ── Contact Form (FormBuilder Frontend) ─────────────────────────────── */
.block-contact-form { padding: 100px 0; }
.contact-direct {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 28px;
    justify-content: center;
    margin: 0 auto 32px;
    max-width: 720px;
}
.contact-direct-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 600;
    color: var(--primary);
    text-decoration: none;
}
.contact-direct-link svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}
.contact-direct-link:hover { text-decoration: underline; }
.bg-3 .contact-direct-link { color: var(--accent-cyan, #4fc3f7); }
.contact-form-wrap {
    max-width: 820px;
    margin: 40px auto 0;
}
.contact-form-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.07);
    border-radius: 20px;
    padding: 40px 44px 44px;
    box-shadow: var(--shadow);
}
.contact-form-wrap .FormBuilder {
    margin: 0;
    padding: 0;
    font-family: var(--font-body);
}
.contact-form-wrap .InputfieldForm {
    margin: 0;
}
.contact-form-wrap .Inputfields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 24px;
    padding: 0;
    margin: 0;
    list-style: none;
}
.contact-form-wrap .Inputfield {
    margin: 0 !important;
    padding: 0;
    clear: none;
    float: none;
}
.contact-form-wrap .Inputfield_firstname_lastname,
.contact-form-wrap .Inputfield_subject,
.contact-form-wrap .Inputfield_nachricht,
.contact-form-wrap .Inputfield_privacy,
.contact-form-wrap .Inputfield_contact_submit,
.contact-form-wrap .Inputfield_message,
.contact-form-wrap .InputfieldHidden {
    grid-column: 1 / -1;
}
.contact-form-wrap .Inputfield_message,
.contact-form-wrap .InputfieldHidden { display: none !important; }

.contact-form-wrap .InputfieldHeader {
    display: block;
    font-family: var(--font-head);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--dark);
    margin-bottom: 8px;
    padding: 0;
}
.contact-form-wrap .InputfieldStateRequired > .InputfieldHeader:first-child::after {
    content: " *";
    color: var(--accent-rose);
    font-weight: 700;
}
.contact-form-wrap .InputfieldContent {
    margin: 0;
}

.contact-form-wrap input[type="text"],
.contact-form-wrap input[type="email"],
.contact-form-wrap input[type="tel"],
.contact-form-wrap input[type="url"],
.contact-form-wrap input[type="number"],
.contact-form-wrap select,
.contact-form-wrap textarea {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 14px 16px;
    border: 1px solid var(--gray-300);
    border-radius: 12px;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.5;
    color: var(--dark);
    background: var(--gray-100);
    transition: border-color var(--transition), box-shadow var(--transition), background var(--transition);
    box-sizing: border-box;
    display: block;
    height: auto;
    min-height: 50px;
}
.contact-form-wrap textarea {
    min-height: 160px;
    resize: vertical;
}
.contact-form-wrap input::placeholder,
.contact-form-wrap textarea::placeholder {
    color: rgba(0,0,0,0.32);
    font-size: 14px;
}
.contact-form-wrap input:hover,
.contact-form-wrap textarea:hover,
.contact-form-wrap select:hover {
    border-color: var(--gray-300);
    background: #fff;
}
.contact-form-wrap input:focus,
.contact-form-wrap textarea:focus,
.contact-form-wrap select:focus {
    outline: none;
    border-color: var(--primary);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0,136,189,0.14);
}

/* Datenschutz-Checkbox */
.contact-form-wrap .Inputfield_privacy > .InputfieldHeader { display: none; }
.contact-form-wrap .Inputfield_privacy .InputfieldContent > label {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin: 0;
    padding: 16px 18px;
    border-radius: 12px;
    background: var(--gray-100);
    border: 1px solid var(--gray-200);
    font-size: 14px;
    line-height: 1.65;
    color: rgba(0,0,0,0.78);
    cursor: pointer;
    transition: border-color var(--transition), background var(--transition);
}
.contact-form-wrap .Inputfield_privacy .InputfieldContent > label:hover {
    border-color: rgba(0,136,189,0.35);
    background: var(--primary-light);
}
.contact-form-wrap .Inputfield_privacy input[type="checkbox"] {
    width: 20px;
    height: 20px;
    min-height: 20px;
    margin: 2px 0 0;
    padding: 0;
    flex-shrink: 0;
    accent-color: var(--primary);
    transform: none;
    position: static;
    cursor: pointer;
}
.contact-form-wrap .Inputfield_privacy .pw-no-select { flex: 1; }
.contact-form-wrap .Inputfield_privacy a {
    color: var(--primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.contact-form-wrap .Inputfield_privacy a:hover { color: var(--primary-dark); }

/* Absenden */
.contact-form-wrap .InputfieldSubmit {
    margin-top: 4px;
}
.contact-form-wrap .InputfieldSubmit .InputfieldContent {
    display: block;
}
.contact-form-wrap .InputfieldSubmit button,
.contact-form-wrap button[type="submit"] {
    width: 100%;
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: #fff;
    border: none;
    border-radius: 12px;
    padding: 16px 28px;
    font-family: var(--font-head);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform var(--transition), box-shadow var(--transition), opacity var(--transition);
    box-shadow: 0 8px 24px rgba(0,136,189,0.28);
}
.contact-form-wrap .InputfieldSubmit button:hover,
.contact-form-wrap button[type="submit"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(0,136,189,0.35);
    opacity: 1;
}

/* Meldungen */
.contact-form-wrap .alert,
.contact-form-wrap .InputfieldForm .notes {
    grid-column: 1 / -1;
    border-radius: 12px;
    padding: 14px 18px;
    font-size: 14px;
    line-height: 1.55;
    margin: 0 0 4px;
}
.contact-form-wrap .alert-success {
    background: var(--accent-emerald-light);
    border: 1px solid rgba(16,185,129,0.35);
    color: #065f46;
}
.contact-form-wrap .alert-error {
    background: var(--accent-rose-light);
    border: 1px solid rgba(244,63,94,0.35);
    color: #9f1239;
}
.contact-form-wrap .notes,
.contact-form-wrap .description {
    font-size: 13px;
    color: var(--secondary-light);
    opacity: 1;
}
.contact-form-wrap .input-error {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: var(--accent-rose);
}
.contact-form-fallback {
    margin: 0;
    padding: 20px;
    text-align: center;
    color: var(--secondary-light);
}

/* Dunkler Block-Hintergrund */
.bg-3.block-contact-form .contact-form-card {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.12);
    box-shadow: none;
}
.bg-3.block-contact-form .InputfieldHeader { color: rgba(255,255,255,0.92); }
.bg-3.block-contact-form input,
.bg-3.block-contact-form textarea,
.bg-3.block-contact-form select {
    background: rgba(255,255,255,0.07);
    border-color: rgba(255,255,255,0.18);
    color: #fff;
}
.bg-3.block-contact-form input::placeholder,
.bg-3.block-contact-form textarea::placeholder { color: rgba(255,255,255,0.4); }
.bg-3.block-contact-form .Inputfield_privacy .InputfieldContent > label {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.14);
    color: rgba(255,255,255,0.82);
}
.bg-3.block-contact-form .Inputfield_privacy a { color: var(--accent-cyan); }

@media (max-width: 720px) {
    .contact-form-card { padding: 28px 22px 32px; }
    .contact-form-wrap .Inputfields {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .contact-form-wrap .Inputfield_firstname_lastname,
    .contact-form-wrap .Inputfield_phone,
    .contact-form-wrap .Inputfield_email,
    .contact-form-wrap .Inputfield_subject {
        grid-column: 1 / -1;
    }
}

/* ── Section-Header (gemeinsam) ────────────────────────────────────────── */
.section-header {
    max-width: 780px;
    margin: 0 auto 56px;
    text-align: center;
}
.section-header .section-label,
.section-header h2,
.section-header p {
    text-align: center;
}
.section-header h2 {
    font-family: var(--font-head);
    font-size: clamp(28px, 3.5vw, 44px);
    font-weight: 800;
    margin: 10px auto 14px;
    line-height: 1.15;
}
.section-header p {
    font-size: 17px;
    line-height: 1.65;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}
.bg-1 .section-header p,
.bg-2 .section-header p,
.leistungen .section-header p {
    color: rgba(0,0,0,0.72);
}
.bg-3 .section-header h2 { color: #fff; }
.bg-3 .section-header p { color: rgba(255,255,255,0.82); }

/* ─── Hero-Stats (aus Stats-Repeater) ─────────────────────────────── */
.hero-stats {
    display: flex;
    gap: 32px;
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid rgba(255,255,255,0.1);
}
.hero-stat-num {
    font-family: var(--font-head);
    font-size: 28px;
    font-weight: 700;
    color: #4fc3f7;
}
.hero-stat-label {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    margin-top: 2px;
}

/* ─── CTA-Wrapper aus CKEditor (<p><a class="btn …">) ──────────────── */
.hero-actions p,
.text-image-ctas p,
.karriere-cta-group p:has(.btn),
.cta-buttons p,
.news-header-cta p,
.branchen-panel-cta p {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.hero-actions { margin-top: 32px; }
.text-image-ctas { margin-top: 24px; }
.news-header-cta p { gap: 0; }

/* Links aus CKEditor-Output, die KEINE btn-Klasse haben, im Body neutral */
.text-image-body a:not(.btn),
.richtext-body a:not(.btn) {
    color: var(--primary);
    text-decoration: underline;
}

/* Newsletter-Defaults auf dunklem Hintergrund */
.newsletter .newsletter-left .section-label { color: rgba(255,255,255,0.78); }

/* ── Lesbarkeit: weitere bg-3 Textelemente ───────────────────────────── */
.bg-3 .richtext-body,
.bg-3 .richtext-body p,
.bg-3 .text-image-body,
.bg-3 .text-image-body p,
.bg-3 .two-columns-grid .col,
.bg-3 .two-columns-grid p,
.bg-3 .map-address,
.bg-3 .testimonial-meta strong {
    color: rgba(255,255,255,0.82);
}
.bg-3 .team-role,
.bg-3 .testimonial-meta span,
.bg-3 .download-meta,
.bg-3 .download-text {
    color: rgba(255,255,255,0.68);
}
.bg-3 .text-image-body a:not(.btn),
.bg-3 .richtext-body a:not(.btn),
.bg-3 .two-columns-grid a:not(.btn),
.bg-3 .process-step-text a:not(.btn) {
    color: var(--accent-cyan, #4fc3f7);
}

/* Eigene dunkle Sektionen: helle Schrift nicht von body/bg-1/bg-2 überschreiben */
.hero,
.branchen,
.karriere,
.newsletter,
.footer,
.page-header,
.cta-box {
    color: rgba(255,255,255,0.88);
}
.bg-1 .section-header h2,
.bg-2 .section-header h2,
.leistungen .section-header h2 { color: var(--dark); }

/* ═══════════════════════════════════════════════════════════════════════
   LEISTUNGEN: Service-Bands (Kernleistungen) — visuelle Varianten
   ═══════════════════════════════════════════════════════════════════════ */
.page-leistungen .block-header-small {
    padding: 72px 0 56px;
}
.page-leistungen .block-text-image.is-anspruch {
    padding: 64px 0 40px;
}
.page-leistungen .block-text-image.is-anspruch .text-image-grid--solo {
    grid-template-columns: 1fr;
    max-width: 820px;
}
.page-leistungen .block-text-image.is-anspruch h2 {
    font-size: clamp(30px, 4vw, 46px);
}
.page-leistungen .block-text-image.is-anspruch .text-image-body {
    font-size: 17px;
    line-height: 1.75;
    color: rgba(0,0,0,0.72);
}
.page-leistungen .block-text-image.no-media {
    padding-top: 48px;
    padding-bottom: 32px;
}

/* Jump-Nav */
.service-jump {
    position: sticky;
    top: 72px;
    z-index: 40;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(0,0,0,0.06);
    padding: 14px 0 16px;
}
.service-jump .container {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    overflow: visible;
}
.service-jump-label {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(0,0,0,0.4);
}
.service-jump-track {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}
.service-jump-track a {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
    padding: 10px 12px;
    border-radius: 12px;
    text-decoration: none;
    background: #f3f7fa;
    border: 1px solid transparent;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.service-jump-track a:hover,
.service-jump-track a:focus-visible {
    background: #fff;
    border-color: rgba(0,136,189,0.35);
    transform: translateY(-1px);
    outline: none;
}
.service-jump-n {
    font-family: var(--font-head);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: var(--primary);
    line-height: 1;
}
.service-jump-t {
    font-size: 13px;
    font-weight: 600;
    color: rgba(0,0,0,0.82);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

@media (max-width: 960px) {
    .service-jump-track {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    .service-jump {
        top: 56px;
        padding: 10px 0 12px;
    }
    .service-jump-track {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }
    .service-jump-track a {
        padding: 9px 10px;
        border-radius: 10px;
    }
    .service-jump-t {
        font-size: 12px;
    }
}

/* Base band */
.service-band {
    padding: 72px 0;
    position: relative;
    overflow: hidden;
}
.service-band-inner {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 48px;
    align-items: start;
}
.service-band-aside {
    position: sticky;
    top: 88px;
}
.service-band-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    background: rgba(0,136,189,0.12);
}
.service-band-icon svg {
    width: 28px;
    height: 28px;
    fill: var(--primary);
}
.service-band-num {
    font-family: var(--font-head);
    font-size: clamp(64px, 8vw, 96px);
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -0.04em;
    color: rgba(0,0,0,0.07);
    margin-bottom: 10px;
}
.service-band-eyebrow {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--primary);
}
.service-band-main h2 {
    font-family: var(--font-head);
    font-size: clamp(28px, 3.4vw, 40px);
    font-weight: 800;
    line-height: 1.15;
    margin: 0 0 16px;
    color: var(--dark);
}
.service-band-intro {
    font-size: 17px;
    line-height: 1.7;
    color: rgba(0,0,0,0.7);
    margin: 0 0 28px;
    max-width: 640px;
}
.service-band-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
    max-width: 640px;
}
.service-band-list li {
    position: relative;
    padding: 14px 16px 14px 44px;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.5;
    color: rgba(0,0,0,0.78);
}
.service-band-list li::before {
    content: '';
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--primary) url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center/12px no-repeat;
}
.service-band-note {
    margin: 24px 0 0;
    padding: 16px 18px;
    border-left: 3px solid var(--primary);
    background: rgba(0,136,189,0.06);
    border-radius: 0 10px 10px 0;
    font-size: 15px;
    line-height: 1.6;
    color: rgba(0,0,0,0.75);
    max-width: 640px;
}
.service-band-ctas {
    margin-top: 28px;
}
.service-band-ctas .btn {
    display: inline-flex;
}

/* Steps (Lieferung) */
.service-band-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0;
    max-width: 680px;
    counter-reset: none;
}
.service-band-steps li {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 16px;
    align-items: start;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255,255,255,0.12);
    font-size: 15px;
    line-height: 1.55;
}
.service-band-steps li:last-child { border-bottom: 0; }
.service-band-step-n {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-head);
    font-weight: 800;
    font-size: 14px;
    background: rgba(255,255,255,0.12);
    color: #fff;
}

/* Tiles (24/7) */
.service-band-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    max-width: 720px;
}
.service-band-tile {
    padding: 20px 18px;
    border-radius: 14px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    font-size: 15px;
    line-height: 1.5;
    color: rgba(255,255,255,0.9);
}

/* ── Variante 1: Beratung — hell, clean ──────────────────────────────── */
.service-band--v1 {
    background: #f4f8fb;
}
.service-band--v1 .service-band-inner {
    border-left: 4px solid var(--primary);
    padding-left: 28px;
    margin-left: -4px;
}

/* ── Variante 2: Lieferung — dunkler Band, Schritte ───────────────────── */
.service-band--v2 {
    background: linear-gradient(135deg, #0b3a52 0%, #085a7a 55%, #0a6e8f 100%);
    color: #fff;
}
.service-band--v2 .service-band-num { color: rgba(255,255,255,0.12); }
.service-band--v2 .service-band-eyebrow { color: var(--accent-cyan, #4fc3f7); }
.service-band--v2 .service-band-icon { background: rgba(255,255,255,0.1); }
.service-band--v2 .service-band-icon svg { fill: var(--accent-cyan, #4fc3f7); }
.service-band--v2 .service-band-main h2,
.service-band--v2 .service-band-intro { color: #fff; }
.service-band--v2 .service-band-intro { color: rgba(255,255,255,0.82); }

/* ── Variante 3: Wartung — hell mit Note ──────────────────────────────── */
.service-band--v3 {
    background: #fff;
}
.service-band--v3 .service-band-list {
    grid-template-columns: 1fr 1fr;
}
.service-band--v3 .service-band-list li {
    background: #f7fafc;
}

/* ── Variante 4: 24/7 — Notfall-Dunkel ───────────────────────────────── */
.service-band--v4 {
    background:
        radial-gradient(ellipse at 20% 0%, rgba(239,68,68,0.18), transparent 50%),
        linear-gradient(160deg, #111827 0%, #1e293b 100%);
    color: #fff;
}
.service-band--v4 .service-band-num { color: rgba(255,255,255,0.08); }
.service-band--v4 .service-band-eyebrow { color: #f87171; }
.service-band--v4 .service-band-icon {
    background: rgba(239,68,68,0.18);
}
.service-band--v4 .service-band-icon svg { fill: #f87171; }
.service-band--v4 .service-band-main h2 { color: #fff; }
.service-band--v4 .service-band-intro { color: rgba(255,255,255,0.78); }
.service-band--v4 .service-band-list--emergency li {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.12);
    color: rgba(255,255,255,0.9);
}
.service-band--v4 .service-band-list--emergency li::before {
    background-color: #f87171;
}

/* ── Variante 5: VoltFLEX — Produkt-Akzent Cyan ──────────────────────── */
.service-band--v5 {
    background: linear-gradient(180deg, #e8f7fc 0%, #f5fbfe 100%);
}
.service-band--v5 .service-band-eyebrow { color: #0284c7; }
.service-band--v5 .service-band-list li {
    background: #fff;
}
.service-band--v5 .service-band-ctas .btn {
    background: var(--primary);
    color: #fff;
    border: none;
    padding: 14px 22px;
    border-radius: 10px;
    font-weight: 700;
    text-decoration: none;
}

/* ── Variante 6: VoltSHIELD — Produkt-Akzent Amber ───────────────────── */
.service-band--v6 {
    background: linear-gradient(135deg, #1a2332 0%, #243044 100%);
    color: #fff;
}
.service-band--v6 .service-band-num { color: rgba(245,158,11,0.18); }
.service-band--v6 .service-band-eyebrow { color: #fbbf24; }
.service-band--v6 .service-band-icon {
    background: rgba(245,158,11,0.15);
}
.service-band--v6 .service-band-icon svg { fill: #fbbf24; }
.service-band--v6 .service-band-main h2 { color: #fff; }
.service-band--v6 .service-band-intro { color: rgba(255,255,255,0.8); }
.service-band--v6 .service-band-list li {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.9);
}
.service-band--v6 .service-band-list li::before {
    background-color: #f59e0b;
}
.service-band--v6 .service-band-ctas .btn {
    background: #f59e0b;
    color: #111;
    border: none;
    padding: 14px 22px;
    border-radius: 10px;
    font-weight: 800;
    text-decoration: none;
}

@media (max-width: 900px) {
    .service-band-inner {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .service-band-aside {
        position: static;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 12px 16px;
    }
    .service-band-num {
        font-size: 48px;
        margin: 0;
        order: 2;
    }
    .service-band-icon {
        margin-bottom: 0;
        order: 1;
    }
    .service-band-eyebrow {
        order: 3;
        flex: 1 1 100%;
    }
    .service-band--v3 .service-band-list,
    .service-band-grid {
        grid-template-columns: 1fr;
    }
    .service-band--v1 .service-band-inner {
        padding-left: 16px;
    }
}
@media (max-width: 600px) {
    .service-band { padding: 48px 0; }
    .service-band-intro { font-size: 15px; }
    .service-band-main h2 { font-size: 26px; }
    .service-band-list li { padding: 12px 14px 12px 40px; font-size: 14px; }
    .service-band-ctas .btn {
        display: flex;
        width: 100%;
        justify-content: center;
        box-sizing: border-box;
    }
}

/* ═══════════════════════════════════════════════════════════════════════
   PRODUKTE: Custom Showcase Layouts
   ═══════════════════════════════════════════════════════════════════════ */
.page-produkte .block-header-small {
    padding: 88px 0 72px;
    background:
        radial-gradient(ellipse at 85% 20%, rgba(0,136,189,0.18), transparent 45%),
        linear-gradient(145deg, #0b2f42 0%, #0d4a66 48%, #0a6e8f 100%);
    color: #fff;
}
.page-produkte .block-header-small .section-label {
    color: rgba(255,255,255,0.7);
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.18);
    display: inline-flex;
    padding: 6px 12px;
    border-radius: 999px;
}
.page-produkte .block-header-small h1 {
    color: #fff;
    max-width: 16ch;
    font-size: clamp(34px, 5vw, 56px);
}
.page-produkte .block-header-small .page-intro {
    color: rgba(255,255,255,0.82);
    max-width: 560px;
    margin-left: 0;
}
.page-produkte .block-header-small .block-claim {
    color: var(--accent-cyan, #4fc3f7);
}

.page-produkte .block-text-image.is-portfolio {
    padding: 80px 0;
    background: #f4f8fb;
}
.page-produkte .block-text-image.is-portfolio .text-image-content h2 {
    font-size: clamp(30px, 4vw, 44px);
}
.page-produkte .block-text-image.is-portfolio .text-image-body {
    font-size: 17px;
    line-height: 1.75;
}

/* Featured VoltSHIELD / VoltFLEX */
.product-catalog {
    padding: 88px 0 72px;
    background: #fff;
}
.product-catalog-head {
    text-align: center;
    margin-bottom: 40px;
}
.product-catalog-head h2 {
    font-family: var(--font-head);
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 800;
    margin: 10px 0 0;
}
.product-featured {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 20px;
    margin-bottom: 28px;
}
.product-featured-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 320px;
    padding: 32px 30px;
    border-radius: 22px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.product-featured-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 60px rgba(0,40,70,0.22);
}
.product-featured-card--shield {
    background: linear-gradient(145deg, #102a3c 0%, #1a4d68 55%, #0d6f95 100%);
}
.product-featured-card--flex {
    background: linear-gradient(145deg, #0f766e 0%, #0e7490 55%, #0369a1 100%);
}
.product-featured-glow {
    position: absolute;
    width: 280px;
    height: 280px;
    right: -60px;
    top: -80px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.16), transparent 70%);
    pointer-events: none;
}
.product-pill {
    align-self: flex-start;
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: #f59e0b;
    color: #111;
    margin-bottom: 18px;
    z-index: 1;
}
.product-featured-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.12);
    margin-bottom: 18px;
    z-index: 1;
}
.product-featured-icon svg {
    width: 26px;
    height: 26px;
    fill: #fff;
}
.product-featured-card h3 {
    font-family: var(--font-head);
    font-size: clamp(28px, 3vw, 36px);
    font-weight: 800;
    margin: 0 0 12px;
    color: #fff;
    z-index: 1;
}
.product-featured-text {
    font-size: 15px;
    line-height: 1.65;
    color: rgba(255,255,255,0.82);
    margin-bottom: 24px;
    z-index: 1;
    flex: 1;
}
.product-featured-text p { margin: 0; color: inherit; }
.product-featured-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    z-index: 1;
}
.product-featured-cta svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

/* Category grid */
.product-cat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.product-cat-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 22px 20px;
    border-radius: 16px;
    background: #f4f8fb;
    border: 1px solid rgba(0,0,0,0.04);
    text-decoration: none;
    color: inherit;
    transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
    min-height: 100%;
}
.product-cat-card:hover {
    background: #fff;
    border-color: rgba(0,136,189,0.28);
    transform: translateY(-3px);
    box-shadow: 0 14px 36px rgba(0,60,90,0.08);
}
.product-cat-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,136,189,0.1);
}
.product-cat-icon svg {
    width: 22px;
    height: 22px;
    fill: var(--primary);
}
.product-cat-body h3 {
    font-family: var(--font-head);
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 8px;
    color: var(--dark);
}
.product-cat-text {
    font-size: 14px;
    line-height: 1.55;
    color: rgba(0,0,0,0.68);
    margin-bottom: 12px;
}
.product-cat-text p { margin: 0; }
.product-cat-link {
    margin-top: auto;
    font-size: 13px;
    font-weight: 700;
    color: var(--primary);
}

/* VoltSHIELD families */
.product-families {
    padding: 96px 0;
    background:
        radial-gradient(ellipse at 10% 0%, rgba(245,158,11,0.12), transparent 40%),
        linear-gradient(180deg, #111827 0%, #1e293b 100%);
    color: #fff;
}
.product-families-head {
    max-width: 720px;
    margin: 0 auto 48px;
    text-align: center;
}
.product-families-head .section-label {
    color: #fbbf24;
}
.product-families-head h2 {
    font-family: var(--font-head);
    font-size: clamp(30px, 4vw, 46px);
    font-weight: 800;
    color: #fff;
    margin: 10px 0 14px;
}
.product-families-head p {
    font-size: 16px;
    line-height: 1.7;
    color: rgba(255,255,255,0.72);
    margin: 0;
}
.product-family-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.product-family {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 0;
    border-radius: 20px;
    overflow: hidden;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
}
.product-family:nth-child(even) {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
}
.product-family:nth-child(even) .product-family-media { order: 2; }
.product-family:nth-child(even) .product-family-content { order: 1; }
.product-family-media {
    min-height: 260px;
    background: rgba(255,255,255,0.03);
}
.product-family-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.product-family-placeholder {
    height: 100%;
    min-height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-head);
    font-size: 96px;
    font-weight: 800;
    color: rgba(255,255,255,0.08);
    background:
        linear-gradient(135deg, rgba(255,255,255,0.04), transparent 60%),
        repeating-linear-gradient(
            -45deg,
            transparent,
            transparent 12px,
            rgba(255,255,255,0.03) 12px,
            rgba(255,255,255,0.03) 13px
        );
}
.product-family--core .product-family-placeholder { color: rgba(79,195,247,0.2); }
.product-family--maxguard .product-family-placeholder { color: rgba(52,211,153,0.2); }
.product-family--proline .product-family-placeholder { color: rgba(251,191,36,0.22); }
.product-family-content {
    padding: 36px 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.product-family-n {
    font-family: var(--font-head);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: #fbbf24;
    margin-bottom: 10px;
}
.product-family-content h3 {
    font-family: var(--font-head);
    font-size: clamp(22px, 2.5vw, 28px);
    font-weight: 800;
    color: #fff;
    margin: 0 0 12px;
}
.product-family-text {
    font-size: 15px;
    line-height: 1.65;
    color: rgba(255,255,255,0.78);
    margin-bottom: 22px;
}
.product-family-text p { margin: 0; color: inherit; }
.product-family-btn {
    align-self: flex-start;
    background: #f59e0b;
    color: #111 !important;
    border: none;
    padding: 12px 18px;
    border-radius: 10px;
    font-weight: 800;
    text-decoration: none;
}
.product-family-btn:hover {
    background: #fbbf24;
}

/* Product CTA */
.cta-section--product {
    padding: 72px 0 96px;
    background: #f4f8fb;
}
.cta-box--product {
    background: linear-gradient(135deg, #0b3a52 0%, #0a6e8f 100%);
    border: none;
    border-radius: 24px;
    padding: 48px 40px;
    text-align: left;
    display: grid;
    grid-template-columns: 1.4fr auto;
    gap: 24px 40px;
    align-items: center;
}
.cta-box--product .section-label { color: var(--accent-cyan, #4fc3f7); }
.cta-box--product h2 {
    color: #fff;
    grid-column: 1;
    margin: 0;
    font-size: clamp(28px, 3.5vw, 40px);
}
.cta-box--product p {
    color: rgba(255,255,255,0.8);
    grid-column: 1;
    margin: 0;
    max-width: 520px;
}
.cta-box--product .cta-buttons {
    grid-column: 2;
    grid-row: 1 / span 3;
    margin: 0;
}
.cta-box--product .cta-buttons .btn {
    background: #fff;
    color: var(--primary);
    border: none;
    padding: 14px 22px;
    border-radius: 10px;
    font-weight: 700;
    white-space: nowrap;
}

@media (max-width: 1000px) {
    .product-featured { grid-template-columns: 1fr; }
    .product-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
    .product-family,
    .product-family:nth-child(even) {
        grid-template-columns: 1fr;
    }
    .product-family:nth-child(even) .product-family-media,
    .product-family:nth-child(even) .product-family-content {
        order: initial;
    }
    .product-family-media,
    .product-family-placeholder { min-height: 200px; }
    .cta-box--product {
        grid-template-columns: 1fr;
        text-align: left;
        padding: 36px 24px;
    }
    .cta-box--product .cta-buttons {
        grid-column: 1;
        grid-row: auto;
    }
    .cta-box--product .cta-buttons .btn {
        width: 100%;
        justify-content: center;
        display: inline-flex;
    }
}
@media (max-width: 600px) {
    .page-produkte .block-header-small { padding: 64px 0 48px; }
    .product-catalog { padding: 56px 0 48px; }
    .product-cat-grid { grid-template-columns: 1fr; }
    .product-featured-card { min-height: 0; padding: 26px 22px; }
    .product-families { padding: 64px 0; }
    .product-family-content { padding: 28px 22px; }
}

/* ===== PROJEKTBLATT (native USV-Aufnahme) ===== */
.projektblatt {
  padding: 48px 0 96px;
  background:
    radial-gradient(ellipse 80% 50% at 10% 0%, rgba(0,136,189,0.06), transparent 55%),
    linear-gradient(180deg, var(--gray-100) 0%, var(--white) 40%);
}
.projektblatt-intro { max-width: 720px; margin-bottom: 28px; }
.projektblatt-intro h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 700;
  color: var(--dark);
  line-height: 1.15;
  margin: 8px 0 12px;
}
.projektblatt-intro p { color: var(--secondary); max-width: 62ch; }

.projektblatt-ampel {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 16px 20px;
  border-radius: var(--radius);
  border: 1px solid var(--gray-200);
  background: var(--white);
  box-shadow: var(--shadow);
  margin-bottom: 28px;
  position: sticky;
  top: 72px;
  z-index: 20;
  transition: border-color var(--transition), background var(--transition);
}
.projektblatt-ampel-lights {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 8px 7px;
  border-radius: 999px;
  background: #1a1a1a;
  flex-shrink: 0;
}
.ampel-light {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #3a3a3a;
  opacity: 0.35;
  transition: opacity var(--transition), box-shadow var(--transition), background var(--transition);
}
.ampel--rot .ampel-light--rot {
  background: #e53935;
  opacity: 1;
  box-shadow: 0 0 10px rgba(229,57,53,0.75);
}
.ampel--gelb .ampel-light--gelb {
  background: #f5c518;
  opacity: 1;
  box-shadow: 0 0 10px rgba(245,197,24,0.7);
}
.ampel--gruen .ampel-light--gruen {
  background: #43a047;
  opacity: 1;
  box-shadow: 0 0 10px rgba(67,160,71,0.7);
}
.ampel--offen { border-color: var(--gray-300); }
.ampel--rot { border-color: rgba(229,57,53,0.35); background: #fff7f7; }
.ampel--gelb { border-color: rgba(245,158,11,0.4); background: #fffbeb; }
.ampel--gruen { border-color: rgba(16,185,129,0.35); background: #f0fdf6; }
.projektblatt-ampel-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.projektblatt-ampel-copy strong {
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 700;
  color: var(--dark);
}
.projektblatt-ampel-copy span { font-size: 13px; color: var(--secondary); line-height: 1.45; }

.projektblatt-alert {
  padding: 12px 16px;
  margin-bottom: 20px;
  border-radius: 10px;
  background: var(--accent-rose-light);
  color: #9f1239;
  border: 1px solid rgba(244,63,94,0.25);
  font-size: 14px;
}
.projektblatt-success {
  text-align: center;
  max-width: 560px;
  margin: 40px auto;
  padding: 48px 32px;
  background: var(--white);
  border-radius: 20px;
  border: 1px solid var(--gray-200);
  box-shadow: var(--shadow);
}
.projektblatt-success-icon {
  width: 56px; height: 56px; margin: 0 auto 16px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: var(--accent-emerald-light);
  color: var(--accent-emerald);
  font-size: 24px; font-weight: 700;
}
.projektblatt-success h2 {
  font-family: var(--font-head);
  font-size: 28px;
  margin-bottom: 10px;
}
.projektblatt-success p { color: var(--secondary); margin-bottom: 24px; }

.pb-section {
  border: 1px solid var(--gray-200);
  border-radius: 16px;
  background: var(--white);
  padding: 0 0 22px;
  margin: 0 0 22px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}
.pb-section legend {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 16px 22px;
  margin: 0 0 18px;
  background: var(--gray-100);
  border-bottom: 1px solid var(--gray-200);
  border-radius: 16px 16px 0 0;
  font-family: var(--font-head);
  font-size: 18px;
  font-weight: 700;
  color: var(--dark);
  float: none;
}
.pb-num {
  display: inline-grid;
  place-items: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}
.pb-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 18px;
  padding: 0 22px;
}
.pb-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pb-field--full { grid-column: 1 / -1; }
.pb-field label {
  font-size: 12px;
  font-weight: 600;
  color: var(--secondary);
  letter-spacing: 0.2px;
}
.pb-field label abbr { color: var(--accent-rose); text-decoration: none; }
.pb-input {
  width: 100%;
  padding: 11px 14px;
  border: 1px solid var(--gray-300);
  border-radius: 10px;
  background: #fff;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--dark);
  transition: border-color var(--transition), box-shadow var(--transition);
  appearance: none;
}
select.pb-input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23515048' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}
.pb-input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(0,136,189,0.15);
}
.pb-field.is-invalid .pb-input {
  border-color: #e53935;
  box-shadow: 0 0 0 3px rgba(229,57,53,0.12);
}
.pb-conditional[hidden] { display: none !important; }
.pb-honeypot {
  position: absolute;
  left: -9999px;
  height: 0;
  overflow: hidden;
}
.pb-footer {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 8px 0 0;
  max-width: 720px;
}
.pb-consent {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 13px;
  color: var(--secondary);
  line-height: 1.5;
  cursor: pointer;
}
.pb-consent input { margin-top: 3px; accent-color: var(--primary); flex-shrink: 0; }
.pb-consent a { color: var(--primary); text-decoration: underline; }
.pb-consent.is-invalid { color: #9f1239; }
.pb-submit { align-self: flex-start; min-width: 220px; }
.pb-note { font-size: 12px; color: var(--secondary-light); }

.page-kontakt .cta-projektblatt {
  margin-top: 8px;
}

@media (max-width: 768px) {
  .projektblatt { padding: 32px 0 72px; }
  .projektblatt-ampel {
    position: static;
    flex-direction: row;
    gap: 14px;
    padding: 14px 16px;
  }
  .pb-grid { grid-template-columns: 1fr; padding: 0 16px; }
  .pb-section legend { padding: 14px 16px; font-size: 16px; }
  .pb-submit { width: 100%; }
}

/* ===== VOLTSHIELD PRODUCT PAGE (individuelle Sektionen) ===== */
.page-voltshield .hero--voltshield {
  position: relative;
  min-height: min(88vh, 820px);
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(ellipse 70% 60% at 85% 40%, rgba(0,140,192,0.28), transparent 55%),
    radial-gradient(ellipse 50% 40% at 15% 80%, rgba(0,136,189,0.16), transparent 50%),
    linear-gradient(145deg, #0c1218 0%, #15202b 45%, #0f1720 100%);
}
.page-voltshield .hero--voltshield .circuit-lines { opacity: 0.04; }
.page-voltshield .hero--voltshield .hero-glow { opacity: 0.35; }
.vs-hero-stage {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.vs-hero-glow {
  position: absolute;
  width: 55vmin;
  height: 55vmin;
  right: 8%;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0,140,192,0.38), transparent 68%);
  filter: blur(8px);
  animation: vs-pulse 6s ease-in-out infinite;
}
@keyframes vs-pulse {
  0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.85; }
  50% { transform: translateY(-50%) scale(1.08); opacity: 1; }
}
.vs-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 70% 60% at 70% 50%, #000 20%, transparent 75%);
}
.vs-hero-shield {
  position: absolute;
  right: 8%;
  top: 50%;
  transform: translateY(-50%);
  width: min(36vw, 320px);
  filter: drop-shadow(0 20px 50px rgba(0,140,192,0.35));
  animation: vs-logo-float 7s ease-in-out infinite;
}
@keyframes vs-logo-float {
  0%, 100% { transform: translateY(-50%); }
  50% { transform: translateY(calc(-50% - 10px)); }
}
.vs-hero-logo {
  width: 100%;
  height: auto;
  display: block;
}
.page-voltshield .hero--voltshield .hero-left { position: relative; z-index: 2; max-width: 640px; }
.page-voltshield .hero--voltshield .hero-title {
  font-size: clamp(34px, 5.2vw, 58px);
  line-height: 1.05;
}
.page-voltshield .hero--voltshield .hero-eyebrow {
  color: #4fc3f7;
}
.page-voltshield .hero--voltshield .hero-eyebrow svg { fill: #4fc3f7; }
.page-voltshield .hero--voltshield .btn-outline {
  border-color: rgba(255,255,255,0.35);
  color: #fff;
}
.page-voltshield .hero--voltshield .btn-outline:hover {
  background: rgba(255,255,255,0.1);
}

/* Manifesto */
.vs-manifesto {
  padding: 100px 0;
  background:
    linear-gradient(180deg, #fff 0%, var(--gray-100) 100%);
}
.vs-manifesto-grid {
  display: grid;
  grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
  gap: 40px 56px;
  align-items: start;
}
.vs-manifesto-index {
  margin-top: 28px;
  font-family: var(--font-head);
  font-size: clamp(64px, 10vw, 120px);
  font-weight: 800;
  line-height: 0.85;
  color: rgba(0,136,189,0.12);
  letter-spacing: -0.04em;
}
.vs-manifesto-body h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  line-height: 1.12;
  color: var(--dark);
  max-width: 18ch;
  margin: 0 0 28px;
}
.vs-manifesto-text {
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.75;
  color: var(--secondary);
  max-width: 62ch;
}
.vs-manifesto-text p { margin: 0; }

/* Families */
.vs-families {
  padding: 88px 0 100px;
  background: #0f141b;
  color: #fff;
}
.vs-families.bg-1 {
  background: #fff;
  color: var(--dark);
}
.vs-families.bg-2 {
  background:
    radial-gradient(ellipse at 90% 0%, rgba(0,136,189,0.06), transparent 42%),
    linear-gradient(180deg, #eef2f6 0%, #f7f9fb 100%);
  color: var(--dark);
}
.vs-families.bg-3 {
  background: #0f141b;
  color: #fff;
}
.vs-families-head { max-width: 560px; margin-bottom: 48px; }
.vs-families-head .section-label { color: #fbbf24; }
.vs-families.bg-1 .vs-families-head .section-label,
.vs-families.bg-2 .vs-families-head .section-label {
  color: var(--primary, #0088bd);
}
.vs-families-head h2 {
  font-family: var(--font-head);
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 800;
  color: #fff;
  margin: 10px 0 0;
}
.vs-families.bg-1 .vs-families-head h2,
.vs-families.bg-2 .vs-families-head h2 {
  color: var(--dark);
}
.vs-family-stack { display: flex; flex-direction: column; gap: 18px; }
.vs-family {
  display: grid;
  grid-template-columns: minmax(180px, 300px) 1fr;
  min-height: 220px;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}
.vs-families.bg-1 .vs-family,
.vs-families.bg-2 .vs-family {
  background: #fff;
  border-color: rgba(15, 23, 42, 0.08);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
}
.vs-family-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  background:
    linear-gradient(160deg, rgba(255,255,255,0.06), transparent 55%),
    repeating-linear-gradient(-35deg, transparent, transparent 14px, rgba(255,255,255,0.03) 14px, rgba(255,255,255,0.03) 15px);
}
.vs-family-visual--photo {
  background: #f3f6f9 !important;
  background-image: none !important;
  padding: 20px;
}
.vs-family-visual--photo img {
  width: 100%;
  height: 100%;
  max-height: 240px;
  object-fit: contain;
  object-position: center;
  display: block;
}
.vs-family-visual--photo .vs-family-spec {
  position: absolute;
  left: 14px;
  bottom: 12px;
  z-index: 1;
  font-size: 13px;
  letter-spacing: 0.06em;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.78);
  color: #fff;
  font-weight: 700;
}
.vs-families.bg-1 .vs-family-visual--photo .vs-family-spec,
.vs-families.bg-2 .vs-family-visual--photo .vs-family-spec {
  background: rgba(0, 136, 189, 0.92);
}
.vs-family--proline .vs-family-visual {
  background-color: #1a1408;
  background-image:
    radial-gradient(circle at 30% 40%, rgba(251,191,36,0.35), transparent 55%),
    repeating-linear-gradient(-35deg, transparent, transparent 14px, rgba(251,191,36,0.05) 14px, rgba(251,191,36,0.05) 15px);
}
.vs-family--maxguard .vs-family-visual {
  background-color: #071816;
  background-image:
    radial-gradient(circle at 60% 30%, rgba(16,185,129,0.35), transparent 55%),
    linear-gradient(rgba(16,185,129,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16,185,129,0.08) 1px, transparent 1px);
  background-size: auto, 28px 28px, 28px 28px;
}
.vs-family--core .vs-family-visual {
  background-color: #07141c;
  background-image:
    radial-gradient(circle at 40% 60%, rgba(79,195,247,0.35), transparent 55%),
    repeating-linear-gradient(90deg, transparent, transparent 18px, rgba(79,195,247,0.07) 18px, rgba(79,195,247,0.07) 19px);
}
.vs-family-spec {
  position: relative;
  z-index: 1;
  font-family: var(--font-head);
  font-size: clamp(36px, 4vw, 52px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: rgba(255,255,255,0.92);
}
.vs-family-ghost {
  position: absolute;
  inset: auto 8% 4% auto;
  font-family: var(--font-head);
  font-size: 120px;
  font-weight: 800;
  line-height: 1;
  color: rgba(255,255,255,0.05);
}
.vs-family-copy {
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.vs-family-n {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #fbbf24;
  margin-bottom: 8px;
}
.vs-families.bg-1 .vs-family-n,
.vs-families.bg-2 .vs-family-n {
  color: var(--primary, #0088bd);
}
.vs-family-copy h3 {
  font-family: var(--font-head);
  font-size: clamp(24px, 2.8vw, 32px);
  font-weight: 800;
  margin: 0 0 10px;
  color: #fff;
}
.vs-families.bg-1 .vs-family-copy h3,
.vs-families.bg-2 .vs-family-copy h3 {
  color: var(--dark);
}
.vs-family-text { color: rgba(255,255,255,0.72); font-size: 15px; line-height: 1.65; }
.vs-families.bg-1 .vs-family-text,
.vs-families.bg-2 .vs-family-text {
  color: var(--secondary, #5a6a7a);
}
.vs-family-text p { margin: 0 0 10px; }
.vs-family-text p:last-child { margin-bottom: 0; }
.vs-kicker {
  font-family: var(--font-head) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.95) !important;
  margin-bottom: 10px !important;
}

/* Stats */
.vs-stats {
  padding: 56px 0;
  background:
    linear-gradient(90deg, #0088bd 0%, #006a94 50%, #0f3d52 100%);
  color: #fff;
}
.vs-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.vs-stat {
  text-align: left;
  padding: 8px 16px;
  border-left: 2px solid rgba(255,255,255,0.28);
}
.vs-stat-value {
  display: block;
  font-family: var(--font-head);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 6px;
}
.vs-stat-label {
  display: block;
  font-size: 13px;
  opacity: 0.85;
  line-height: 1.4;
}

/* Bezugswege */
.vs-paths {
  padding: 96px 0;
  background: var(--white);
  position: relative;
}
.vs-paths-head { max-width: 520px; margin-bottom: 48px; }
.vs-paths-head h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 3.6vw, 42px);
  font-weight: 800;
  margin: 10px 0 0;
}
.vs-paths-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  position: relative;
  z-index: 1;
}
.vs-paths-track {
  display: none;
}
.vs-path {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 32px 28px 36px;
  border-radius: 0;
  border-top: 3px solid var(--primary);
  background: var(--gray-100);
  text-decoration: none;
  color: inherit;
  transition: transform var(--transition), box-shadow var(--transition);
  min-height: 260px;
}
.vs-path--2 { border-top-color: var(--accent-amber); background: linear-gradient(180deg, #fff8eb 0%, var(--gray-100) 100%); }
.vs-path--3 { border-top-color: var(--accent-emerald); }
a.vs-path:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-hover);
}
.vs-path-step {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--primary);
}
.vs-path--2 .vs-path-step { color: #b45309; }
.vs-path--3 .vs-path-step { color: #047857; }
.vs-path h3 {
  font-family: var(--font-head);
  font-size: 24px;
  font-weight: 800;
  margin: 0;
  color: var(--dark);
}
.vs-path-text {
  font-size: 15px;
  line-height: 1.6;
  color: var(--secondary);
  flex: 1;
}
.vs-path-text p { margin: 0; }
.vs-path-cta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--primary);
}
.vs-path--2 .vs-path-cta { color: #b45309; }
.vs-path--3 .vs-path-cta { color: #047857; }
.vs-path-cta svg { width: 16px; height: 16px; fill: currentColor; }

/* FAQ */
.vs-faq {
  padding: 96px 0;
  background: var(--gray-100);
}
.vs-faq-layout {
  display: grid;
  grid-template-columns: minmax(200px, 320px) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}
.vs-faq-aside h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 800;
  margin: 10px 0 0;
  line-height: 1.15;
}
.vs-faq .accordion-item {
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 14px;
  margin-bottom: 12px;
  overflow: hidden;
}
.vs-faq .accordion-item summary {
  padding: 18px 20px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 17px;
}
.vs-faq .accordion-body {
  padding: 0 20px 20px;
  color: var(--secondary);
}

/* Contact on VoltSHIELD */
.page-voltshield .block-contact-form {
  background:
    radial-gradient(ellipse 60% 50% at 100% 0%, rgba(245,158,11,0.08), transparent 50%),
    var(--white);
}
.page-voltshield .block-contact-form .section-header h2 {
  font-size: clamp(28px, 3.5vw, 40px);
}

@media (max-width: 980px) {
  .vs-hero-shield { width: min(42vw, 220px); opacity: 0.55; right: 4%; }
  .vs-hero-mark { font-size: 64px; bottom: 8%; }
  .vs-family { grid-template-columns: 1fr; }
  .vs-family-visual { min-height: 140px; }
  .vs-stats-grid { grid-template-columns: 1fr 1fr; gap: 20px 12px; }
  .vs-paths-grid { grid-template-columns: 1fr; }
  .vs-faq-layout { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 640px) {
  .page-voltshield .hero--voltshield { min-height: auto; padding: 72px 0 64px; }
  .vs-hero-shield { display: none; }
  .vs-manifesto { padding: 64px 0; }
  .vs-manifesto-grid { grid-template-columns: 1fr; gap: 12px; }
  .vs-manifesto-index { margin-top: 0; font-size: 72px; }
  .vs-manifesto-body h2 { max-width: none; }
  .vs-families { padding: 64px 0; }
  .vs-family-copy { padding: 24px 22px; }
  .vs-stats { padding: 40px 0; }
  .vs-stats-grid { grid-template-columns: 1fr; }
  .vs-stat { border-left: none; border-top: 2px solid rgba(255,255,255,0.28); padding: 14px 0 4px; }
  .vs-paths { padding: 64px 0; }
  .vs-faq { padding: 64px 0; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   VoltFLEX — Miet-/Leasing-Produktseite
   ═══════════════════════════════════════════════════════════════════════════ */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

.page-voltflex .hero--voltflex {
  min-height: min(88vh, 720px);
  background:
    radial-gradient(ellipse 65% 55% at 82% 42%, rgba(0,168,232,0.28), transparent 58%),
    radial-gradient(ellipse 45% 40% at 12% 78%, rgba(16,185,129,0.14), transparent 50%),
    linear-gradient(145deg, #061018 0%, #0c1c28 48%, #08141c 100%);
}
.page-voltflex .hero--voltflex .circuit-lines { opacity: 0.05; }
.page-voltflex .hero--voltflex .hero-glow { opacity: 0.4; }
.vf-hero-stage {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.vf-hero-glow {
  position: absolute;
  width: 50vmin;
  height: 50vmin;
  right: 10%;
  top: 48%;
  transform: translateY(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0,168,232,0.35), transparent 68%);
  filter: blur(10px);
  animation: vf-pulse 5.5s ease-in-out infinite;
}
@keyframes vf-pulse {
  0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateY(-50%) scale(1.1); opacity: 1; }
}
.vf-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse 68% 58% at 72% 48%, #000 18%, transparent 78%);
}
.vf-hero-orbit {
  position: absolute;
  right: 9%;
  top: 50%;
  transform: translateY(-50%);
  width: min(36vw, 300px);
  height: min(36vw, 300px);
  display: grid;
  place-items: center;
}
.vf-hero-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(79,195,247,0.28);
}
.vf-hero-ring--1 { animation: vf-spin 18s linear infinite; }
.vf-hero-ring--2 {
  inset: 14%;
  border-style: dashed;
  border-color: rgba(16,185,129,0.35);
  animation: vf-spin 28s linear infinite reverse;
}
@keyframes vf-spin {
  to { transform: rotate(360deg); }
}
.vf-hero-bolt {
  position: relative;
  z-index: 1;
  width: 42%;
  color: #4fc3f7;
  filter: drop-shadow(0 16px 40px rgba(0,168,232,0.35));
  animation: vf-bolt 4s ease-in-out infinite;
}
@keyframes vf-bolt {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
.vf-hero-bolt svg { width: 100%; height: auto; display: block; }
.vf-hero-mark {
  position: absolute;
  right: 5%;
  bottom: 10%;
  font-family: var(--font-head);
  font-size: clamp(48px, 10vw, 112px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.045);
  line-height: 1;
  user-select: none;
}
.page-voltflex .hero--voltflex .hero-left { position: relative; z-index: 2; max-width: 660px; }
.page-voltflex .hero--voltflex .hero-title {
  font-size: clamp(34px, 5vw, 56px);
  line-height: 1.05;
}
.page-voltflex .hero--voltflex .hero-eyebrow {
  color: #4fc3f7;
}
.page-voltflex .hero--voltflex .hero-eyebrow svg { fill: #4fc3f7; }

/* Wann Miete passt */
.vf-fit {
  padding: 100px 0;
  background: linear-gradient(180deg, #fff 0%, #f0f7fb 100%);
}
.vf-fit-grid {
  display: grid;
  grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
  gap: 40px 56px;
  align-items: start;
}
.vf-fit-index {
  margin-top: 28px;
  font-family: var(--font-head);
  font-size: clamp(64px, 10vw, 120px);
  font-weight: 800;
  line-height: 0.85;
  color: rgba(0,136,189,0.14);
  letter-spacing: -0.04em;
}
.vf-fit-body h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  line-height: 1.12;
  color: var(--dark);
  max-width: 18ch;
  margin: 0 0 24px;
}
.vf-fit-lead {
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.75;
  color: var(--secondary);
  max-width: 64ch;
  margin: 0 0 32px;
}
.vf-fit-points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  max-width: 720px;
}
.vf-fit-points li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 18px 18px 16px;
  background: #fff;
  border-left: 3px solid var(--primary);
  box-shadow: 0 8px 24px rgba(15, 30, 45, 0.05);
  font-size: 15px;
  line-height: 1.45;
  color: var(--dark);
  font-weight: 600;
}
.vf-fit-n {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--primary);
  flex-shrink: 0;
  margin-top: 2px;
}

/* Servicepakete Vergleich */
.vf-packages {
  padding: 88px 0 100px;
  background: #0b141c;
  color: #fff;
}
.vf-packages-head { max-width: 640px; margin-bottom: 40px; }
.vf-packages-head .section-label { color: #4fc3f7; }
.vf-packages-head h2 {
  font-family: var(--font-head);
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 800;
  color: #fff;
  margin: 10px 0 16px;
}
.vf-packages-intro {
  margin: 0;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255,255,255,0.68);
  max-width: 52ch;
}
.vf-compare-wrap {
  overflow-x: auto;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}
.vf-compare {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px;
}
.vf-compare th,
.vf-compare td {
  padding: 18px 20px;
  text-align: left;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.vf-compare thead th {
  font-family: var(--font-head);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.02em;
  background: rgba(0,0,0,0.25);
}
.vf-compare-col--1 { color: #94a3b8; }
.vf-compare-col--2 { color: #4fc3f7; }
.vf-compare-col--3 { color: #34d399; }
.vf-compare tbody th {
  font-weight: 600;
  font-size: 14px;
  color: rgba(255,255,255,0.88);
  max-width: 280px;
}
.vf-compare-val { text-align: center !important; }
.vf-compare-val span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  text-transform: lowercase;
}
.vf-compare-val--yes span {
  background: rgba(16,185,129,0.18);
  color: #6ee7b7;
}
.vf-compare-val--no span {
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.38);
}
.vf-compare-val--opt span {
  background: rgba(0,168,232,0.18);
  color: #7dd3fc;
}
.vf-compare tbody tr:last-child th,
.vf-compare tbody tr:last-child td { border-bottom: 0; }

/* Laufzeiten */
.vf-terms {
  padding: 96px 0;
  background: var(--white);
  position: relative;
}
.vf-terms-head { max-width: 520px; margin-bottom: 48px; }
.vf-terms-head h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 3.6vw, 42px);
  font-weight: 800;
  margin: 10px 0 0;
}
.vf-terms-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.vf-term {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 32px 28px 36px;
  border-top: 3px solid var(--primary);
  background: var(--gray-100);
  min-height: 220px;
}
.vf-term--2 {
  border-top-color: #0ea5e9;
  background: linear-gradient(180deg, #eef8fd 0%, var(--gray-100) 100%);
}
.vf-term--3 {
  border-top-color: #10b981;
  background: linear-gradient(180deg, #ecfdf5 0%, var(--gray-100) 100%);
}
.vf-term-step {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--primary);
}
.vf-term--2 .vf-term-step { color: #0369a1; }
.vf-term--3 .vf-term-step { color: #047857; }
.vf-term h3 {
  font-family: var(--font-head);
  font-size: 24px;
  font-weight: 800;
  margin: 0;
  color: var(--dark);
}
.vf-term-text {
  font-size: 15px;
  line-height: 1.6;
  color: var(--secondary);
  flex: 1;
}
.vf-term-text p { margin: 0; }

/* Prozess */
.page-voltflex .vf-process {
  background:
    radial-gradient(ellipse 50% 40% at 0% 0%, rgba(0,136,189,0.08), transparent 55%),
    var(--gray-100);
}
.page-voltflex .vf-process-step {
  background: #fff;
  border-radius: 16px;
  padding: 28px 24px;
  border: 1px solid rgba(0,136,189,0.1);
  box-shadow: 0 12px 32px rgba(15, 30, 45, 0.04);
}
.page-voltflex .vf-process .process-step-num {
  color: var(--primary);
}
.page-voltflex .vf-process-cta {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  text-align: center;
}
.page-voltflex .vf-process-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(100%, 320px);
  padding: 18px 36px;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.01em;
  border-radius: 14px;
  box-shadow: 0 12px 28px rgba(0,136,189,0.28);
}
.page-voltflex .vf-process-cta-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(0,136,189,0.34);
}
.page-voltflex .vf-process-cta-direct {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 18px;
}
.page-voltflex .vf-process-cta-or {
  font-size: 13px;
  font-weight: 600;
  color: var(--secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.page-voltflex .vf-process-cta-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(0,136,189,0.14);
  color: var(--dark);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.page-voltflex .vf-process-cta-link svg {
  width: 16px;
  height: 16px;
  fill: var(--primary);
  flex-shrink: 0;
}
.page-voltflex .vf-process-cta-link:hover {
  border-color: var(--primary);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
}
@media (max-width: 600px) {
  .page-voltflex .vf-process-cta-btn {
    width: 100%;
    min-width: 0;
    font-size: 16px;
    padding: 16px 22px;
  }
  .page-voltflex .vf-process-cta-link {
    width: 100%;
    justify-content: center;
  }
}

/* FAQ */
.vf-faq {
  padding: 96px 0;
  background: #f4f9fc;
}
.vf-faq .section-label { color: var(--primary); }
.vf-faq .accordion-item {
  background: #fff;
  border: 1px solid rgba(0,136,189,0.12);
  border-radius: 14px;
  margin-bottom: 12px;
  overflow: hidden;
}
.vf-faq .accordion-item summary {
  padding: 18px 20px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 17px;
}
.vf-faq .accordion-body {
  padding: 0 20px 20px;
  color: var(--secondary);
}

/* Contact */
.page-voltflex .block-contact-form {
  background:
    radial-gradient(ellipse 55% 45% at 100% 0%, rgba(0,168,232,0.1), transparent 50%),
    var(--white);
}
.page-voltflex .block-contact-form .section-header h2 {
  font-size: clamp(28px, 3.5vw, 40px);
}

@media (max-width: 980px) {
  .vf-hero-orbit { width: min(40vw, 200px); height: min(40vw, 200px); opacity: 0.7; right: 4%; }
  .vf-hero-mark { font-size: 64px; }
  .vf-fit-points { grid-template-columns: 1fr; }
  .vf-terms-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .page-voltflex .hero--voltflex { min-height: auto; padding: 72px 0 64px; }
  .vf-hero-orbit { display: none; }
  .vf-fit { padding: 64px 0; }
  .vf-fit-grid { grid-template-columns: 1fr; gap: 12px; }
  .vf-fit-index { margin-top: 0; font-size: 72px; }
  .vf-fit-body h2 { max-width: none; }
  .vf-packages { padding: 64px 0; }
  .vf-terms { padding: 64px 0; }
  .vf-faq { padding: 64px 0; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   USV-Anlagen — Produktseite
   ═══════════════════════════════════════════════════════════════════════════ */
.page-usv-anlagen .hero--usv {
  min-height: min(88vh, 720px);
  background:
    radial-gradient(ellipse 60% 50% at 78% 45%, rgba(0,136,189,0.32), transparent 58%),
    radial-gradient(ellipse 40% 35% at 15% 80%, rgba(56,189,248,0.12), transparent 50%),
    linear-gradient(150deg, #050b12 0%, #0a1622 48%, #071018 100%);
}
.page-usv-anlagen .hero--usv .circuit-lines { opacity: 0.05; }
.page-usv-anlagen .hero--usv .hero-glow { opacity: 0.4; }
.usv-hero-stage {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.usv-hero-glow {
  position: absolute;
  width: 52vmin;
  height: 52vmin;
  right: 8%;
  top: 48%;
  transform: translateY(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0,136,189,0.38), transparent 68%);
  filter: blur(10px);
  animation: usv-pulse 6s ease-in-out infinite;
}
@keyframes usv-pulse {
  0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateY(-50%) scale(1.08); opacity: 1; }
}
.usv-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 70% 60% at 72% 48%, #000 18%, transparent 78%);
}
.usv-hero-wave {
  position: absolute;
  right: 6%;
  top: 50%;
  transform: translateY(-50%);
  width: min(40vw, 360px);
  color: #4fc3f7;
  filter: drop-shadow(0 16px 40px rgba(0,136,189,0.35));
}
.usv-hero-wave svg { width: 100%; height: auto; display: block; }
.usv-wave-line { stroke-dasharray: 8 10; animation: usv-dash 18s linear infinite; }
.usv-wave-line--2 { animation-duration: 26s; animation-direction: reverse; }
@keyframes usv-dash {
  to { stroke-dashoffset: -240; }
}
.usv-hero-mark {
  position: absolute;
  right: 8%;
  bottom: 12%;
  font-family: var(--font-head);
  font-size: clamp(64px, 12vw, 140px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.045);
  line-height: 1;
  user-select: none;
}
.page-usv-anlagen .hero--usv .hero-left { position: relative; z-index: 2; max-width: 660px; }
.page-usv-anlagen .hero--usv .hero-title {
  font-size: clamp(32px, 4.8vw, 54px);
  line-height: 1.06;
}
.page-usv-anlagen .hero--usv .hero-eyebrow { color: #4fc3f7; }
.page-usv-anlagen .hero--usv .hero-eyebrow svg { fill: #4fc3f7; }

/* Grundlagen */
.usv-basics {
  padding: 100px 0;
  background: linear-gradient(180deg, #fff 0%, #f3f7fb 100%);
}
.usv-basics-grid {
  display: grid;
  grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
  gap: 40px 56px;
  align-items: start;
}
.usv-basics-index {
  margin-top: 28px;
  font-family: var(--font-head);
  font-size: clamp(64px, 10vw, 120px);
  font-weight: 800;
  line-height: 0.85;
  color: rgba(0,136,189,0.14);
  letter-spacing: -0.04em;
}
.usv-basics-body h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  line-height: 1.12;
  color: var(--dark);
  max-width: 16ch;
  margin: 0 0 28px;
}
.usv-basics-text {
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.75;
  color: var(--secondary);
  max-width: 62ch;
}
.usv-basics-text p { margin: 0; }
.usv-basics.bg-1 { background: #fff; }
.usv-basics.bg-2 { background: #f7f8fa; }
.usv-basics.bg-3 { background: var(--dark-900, #0f1419); color: rgba(255,255,255,0.88); }
.usv-basics.bg-3 .usv-basics-body h2 { color: #fff; }
.usv-basics.bg-3 .usv-basics-text { color: rgba(255,255,255,0.78); }
.usv-basics-grid--media {
  grid-template-columns: minmax(100px, 150px) minmax(0, 1.1fr) minmax(0, 0.9fr);
  align-items: center;
}
.usv-basics-media {
  border-radius: 18px;
  overflow: hidden;
  background: #eef3f7;
  min-height: 220px;
}
.usv-basics-media img {
  width: 100%;
  height: 100%;
  max-height: 340px;
  object-fit: cover;
  display: block;
}

/* Einsatzklassen */
.usv-classes {
  padding: 88px 0 100px;
  background: #0c131a;
  color: #fff;
}
.usv-classes.bg-1 {
  background: #fff;
  color: var(--dark);
}
.usv-classes.bg-2 {
  background:
    radial-gradient(ellipse at 90% 0%, rgba(0,136,189,0.07), transparent 42%),
    linear-gradient(180deg, #eef2f6 0%, #f7f9fb 100%);
  color: var(--dark);
}
.usv-classes.bg-3 {
  background: #0c131a;
  color: #fff;
}
.usv-classes-head { max-width: 560px; margin-bottom: 40px; }
.usv-classes-head .section-label { color: #4fc3f7; }
.usv-classes.bg-1 .usv-classes-head .section-label,
.usv-classes.bg-2 .usv-classes-head .section-label {
  color: var(--primary);
}
.usv-classes-head h2 {
  font-family: var(--font-head);
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 800;
  color: #fff;
  margin: 10px 0 0;
}
.usv-classes.bg-1 .usv-classes-head h2,
.usv-classes.bg-2 .usv-classes-head h2 {
  color: var(--dark);
}
.usv-classes-stack { display: flex; flex-direction: column; gap: 16px; }
.usv-class {
  display: grid;
  grid-template-columns: minmax(140px, 240px) 1fr;
  min-height: 160px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}
.usv-classes.bg-1 .usv-class,
.usv-classes.bg-2 .usv-class {
  background: #fff;
  border-color: rgba(15, 23, 42, 0.08);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
}
.usv-class-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 140px;
}
.usv-class-visual--photo {
  background: #f3f6f9 !important;
  padding: 18px;
}
.usv-class-visual--photo img {
  width: 100%;
  height: 100%;
  max-height: 180px;
  object-fit: contain;
  display: block;
}
.usv-class-visual--photo .usv-class-n {
  position: absolute;
  left: 12px;
  bottom: 10px;
  font-size: 13px;
  letter-spacing: 0.06em;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(0, 136, 189, 0.92);
  color: #fff;
}
.usv-class--compact .usv-class-visual {
  background:
    radial-gradient(circle at 40% 50%, rgba(79,195,247,0.28), transparent 60%),
    #0a1822;
}
.usv-class--mid .usv-class-visual {
  background:
    radial-gradient(circle at 50% 40%, rgba(0,136,189,0.35), transparent 55%),
    #08141c;
}
.usv-class--large .usv-class-visual {
  background:
    radial-gradient(circle at 45% 55%, rgba(16,185,129,0.28), transparent 55%),
    #071816;
}
.usv-class-n {
  font-family: var(--font-head);
  font-size: clamp(36px, 4vw, 52px);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: rgba(255,255,255,0.92);
}
.usv-classes.bg-1 .usv-class:not(.has-image) .usv-class-n,
.usv-classes.bg-2 .usv-class:not(.has-image) .usv-class-n {
  color: rgba(0,136,189,0.35);
}
.usv-class-copy {
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.usv-class-copy h3 {
  font-family: var(--font-head);
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 800;
  margin: 0 0 10px;
  color: #fff;
}
.usv-classes.bg-1 .usv-class-copy h3,
.usv-classes.bg-2 .usv-class-copy h3 {
  color: var(--dark);
}
.usv-class-text { color: rgba(255,255,255,0.72); font-size: 15px; line-height: 1.65; }
.usv-classes.bg-1 .usv-class-text,
.usv-classes.bg-2 .usv-class-text {
  color: var(--secondary);
}
.usv-class-text p { margin: 0; }

/* CTAs */
.usv-cta { padding: 28px 0; }
.usv-cta-panel {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  padding: clamp(36px, 5vw, 56px);
  min-height: 220px;
  display: flex;
  align-items: center;
}
.usv-cta-panel--shield {
  background:
    radial-gradient(ellipse 50% 80% at 100% 50%, rgba(251,191,36,0.18), transparent 55%),
    linear-gradient(120deg, #16120a 0%, #1c160c 50%, #12100a 100%);
  border: 1px solid rgba(251,191,36,0.2);
  color: #fff;
}
.usv-cta-panel--service {
  background:
    radial-gradient(ellipse 50% 80% at 100% 50%, rgba(0,136,189,0.22), transparent 55%),
    linear-gradient(120deg, #07141c 0%, #0c1c28 50%, #081018 100%);
  border: 1px solid rgba(79,195,247,0.18);
  color: #fff;
}
.usv-cta-copy { position: relative; z-index: 1; max-width: 560px; }
.usv-cta-panel--shield .section-label { color: #fbbf24; }
.usv-cta-panel--service .section-label { color: #4fc3f7; }
.usv-cta-copy h2 {
  font-family: var(--font-head);
  font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 800;
  margin: 10px 0 14px;
  color: #fff;
  line-height: 1.15;
}
.usv-cta-copy p {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255,255,255,0.72);
  max-width: 46ch;
}
.usv-cta-actions .btn { margin-right: 10px; }
.usv-cta-panel--shield .btn-primary {
  background: #f59e0b;
  border-color: #f59e0b;
  color: #111;
}
.usv-cta-panel--shield .btn-primary:hover {
  background: #fbbf24;
  border-color: #fbbf24;
}
.usv-cta-mark {
  position: absolute;
  right: 4%;
  bottom: 8%;
  font-family: var(--font-head);
  font-size: clamp(42px, 8vw, 96px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.06);
  line-height: 1;
  user-select: none;
}

.page-usv-anlagen .block-contact-form {
  background:
    radial-gradient(ellipse 55% 45% at 100% 0%, rgba(0,136,189,0.1), transparent 50%),
    var(--white);
}
.page-usv-anlagen .block-contact-form .section-header h2 {
  font-size: clamp(28px, 3.5vw, 40px);
}

@media (max-width: 980px) {
  .usv-hero-wave { width: min(42vw, 220px); opacity: 0.7; right: 3%; }
  .usv-hero-mark { font-size: 72px; }
  .usv-class { grid-template-columns: 1fr; }
  .usv-class-visual { min-height: 110px; }
  .usv-basics-grid--media {
    grid-template-columns: minmax(100px, 140px) 1fr;
  }
  .usv-basics-media { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .page-usv-anlagen .hero--usv { min-height: auto; padding: 72px 0 64px; }
  .usv-hero-wave { display: none; }
  .usv-basics { padding: 64px 0; }
  .usv-basics-grid,
  .usv-basics-grid--media { grid-template-columns: 1fr; gap: 12px; }
  .usv-basics-index { margin-top: 0; font-size: 72px; }
  .usv-basics-body h2 { max-width: none; }
  .usv-classes { padding: 64px 0; }
  .usv-class-copy { padding: 22px; }
  .usv-cta-panel { padding: 28px 24px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   BSV-Anlagen — medizinische Sicherheitsstromversorgung
   ═══════════════════════════════════════════════════════════════════════════ */
.page-bsv-anlagen .hero--bsv {
  min-height: min(88vh, 720px);
  background:
    radial-gradient(ellipse 55% 50% at 80% 42%, rgba(45,212,191,0.22), transparent 58%),
    radial-gradient(ellipse 40% 35% at 12% 78%, rgba(14,165,233,0.12), transparent 50%),
    linear-gradient(155deg, #041014 0%, #0a1a1c 48%, #061216 100%);
}
.page-bsv-anlagen .hero--bsv .circuit-lines { opacity: 0.04; }
.page-bsv-anlagen .hero--bsv .hero-glow { opacity: 0.35; }
.bsv-hero-stage {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.bsv-hero-glow {
  position: absolute;
  width: 50vmin;
  height: 50vmin;
  right: 10%;
  top: 48%;
  transform: translateY(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(45,212,191,0.32), transparent 68%);
  filter: blur(12px);
  animation: bsv-pulse-glow 5.5s ease-in-out infinite;
}
@keyframes bsv-pulse-glow {
  0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.75; }
  50% { transform: translateY(-50%) scale(1.1); opacity: 1; }
}
.bsv-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse 68% 58% at 72% 48%, #000 18%, transparent 78%);
}
.bsv-hero-pulse {
  position: absolute;
  right: 9%;
  top: 50%;
  transform: translateY(-50%);
  width: min(34vw, 280px);
  height: min(34vw, 280px);
  display: grid;
  place-items: center;
  color: #5eead4;
}
.bsv-pulse-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(45,212,191,0.35);
}
.bsv-pulse-ring--1 { animation: bsv-ring 3.2s ease-out infinite; }
.bsv-pulse-ring--2 { inset: 12%; animation: bsv-ring 3.2s ease-out infinite 0.8s; border-color: rgba(14,165,233,0.3); }
@keyframes bsv-ring {
  0% { transform: scale(0.72); opacity: 0.85; }
  100% { transform: scale(1.18); opacity: 0; }
}
.bsv-pulse-core {
  position: relative;
  z-index: 1;
  width: 46%;
  filter: drop-shadow(0 12px 32px rgba(45,212,191,0.35));
}
.bsv-pulse-core svg { width: 100%; height: auto; display: block; }
.bsv-hero-mark {
  position: absolute;
  right: 7%;
  bottom: 11%;
  font-family: var(--font-head);
  font-size: clamp(64px, 12vw, 140px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.045);
  line-height: 1;
  user-select: none;
}
.page-bsv-anlagen .hero--bsv .hero-left { position: relative; z-index: 2; max-width: 660px; }
.page-bsv-anlagen .hero--bsv .hero-title {
  font-size: clamp(32px, 4.8vw, 54px);
  line-height: 1.06;
}
.page-bsv-anlagen .hero--bsv .hero-eyebrow { color: #5eead4; }
.page-bsv-anlagen .hero--bsv .hero-eyebrow svg { fill: #5eead4; }

/* Fachwissen */
.bsv-know {
  padding: 100px 0;
  background: linear-gradient(180deg, #fff 0%, #f0faf8 100%);
}
.bsv-know-grid {
  display: grid;
  grid-template-columns: minmax(140px, 200px) minmax(0, 1fr);
  gap: 40px 56px;
  align-items: start;
}
.bsv-know-index {
  margin-top: 28px;
  font-family: var(--font-head);
  font-size: clamp(64px, 10vw, 120px);
  font-weight: 800;
  line-height: 0.85;
  color: rgba(13,148,136,0.14);
  letter-spacing: -0.04em;
}
.bsv-know-norm {
  margin-top: 20px;
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.35;
  color: #0d9488;
  text-transform: uppercase;
}
.bsv-know-body h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  line-height: 1.12;
  color: var(--dark);
  max-width: 16ch;
  margin: 0 0 28px;
}
.bsv-know-text {
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.75;
  color: var(--secondary);
  max-width: 62ch;
}
.bsv-know-text p { margin: 0; }
.bsv-know-grid--media,
.gsv-know-grid--media,
.batt-know-grid--media {
  grid-template-columns: minmax(120px, 180px) minmax(0, 1.1fr) minmax(0, 0.9fr);
  align-items: center;
}
.bsv-know-media,
.gsv-know-media,
.batt-know-media {
  border-radius: 18px;
  overflow: hidden;
  background: #eef3f7;
}
.bsv-know-media img,
.gsv-know-media img,
.batt-know-media img {
  width: 100%;
  height: 100%;
  max-height: 340px;
  object-fit: cover;
  display: block;
}
.bsv-feature-item.has-image,
.gsv-feature-item.has-image,
.batt-feature-item.has-image {
  grid-template-columns: 56px 44px 1fr;
  align-items: center;
}
.bsv-feature-img,
.gsv-feature-img,
.batt-feature-img {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  overflow: hidden;
  background: #f3f6f9;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bsv-feature-img img,
.gsv-feature-img img,
.batt-feature-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* Leistungsmerkmale Liste */
.bsv-features {
  padding: 88px 0 100px;
  background: #071412;
  color: #fff;
}
.bsv-features-layout {
  display: grid;
  grid-template-columns: minmax(220px, 340px) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}
.bsv-features-aside .section-label { color: #5eead4; }
.bsv-features-aside h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 3.6vw, 42px);
  font-weight: 800;
  color: #fff;
  margin: 10px 0 0;
  line-height: 1.15;
}
.bsv-feature-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bsv-feature-item {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 18px;
  align-items: center;
  padding: 20px 24px;
  border-left: 3px solid #14b8a6;
  background: rgba(255,255,255,0.04);
  border-radius: 0 12px 12px 0;
}
.bsv-feature-n {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #5eead4;
}
.bsv-feature-t {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.45;
  color: rgba(255,255,255,0.92);
}

/* CTA Branche */
.bsv-cta { padding: 28px 0; }
.bsv-cta-panel {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  padding: clamp(36px, 5vw, 56px);
  min-height: 220px;
  display: flex;
  align-items: center;
  background:
    radial-gradient(ellipse 50% 80% at 100% 50%, rgba(45,212,191,0.2), transparent 55%),
    linear-gradient(120deg, #061816 0%, #0a1f1c 50%, #071412 100%);
  border: 1px solid rgba(45,212,191,0.2);
  color: #fff;
}
.bsv-cta-copy { position: relative; z-index: 1; max-width: 560px; }
.bsv-cta-panel .section-label { color: #5eead4; }
.bsv-cta-copy h2 {
  font-family: var(--font-head);
  font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 800;
  margin: 10px 0 14px;
  color: #fff;
  line-height: 1.15;
}
.bsv-cta-copy p {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255,255,255,0.72);
  max-width: 46ch;
}
.bsv-cta-actions .btn-primary {
  background: #14b8a6;
  border-color: #14b8a6;
  color: #042f2e;
}
.bsv-cta-actions .btn-primary:hover {
  background: #2dd4bf;
  border-color: #2dd4bf;
}
.bsv-cta-mark {
  position: absolute;
  right: 4%;
  bottom: 8%;
  font-family: var(--font-head);
  font-size: clamp(42px, 8vw, 96px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.06);
  line-height: 1;
  user-select: none;
}

.page-bsv-anlagen .block-contact-form {
  background:
    radial-gradient(ellipse 55% 45% at 100% 0%, rgba(20,184,166,0.1), transparent 50%),
    var(--white);
}
.page-bsv-anlagen .block-contact-form .section-header h2 {
  font-size: clamp(28px, 3.5vw, 40px);
}

@media (max-width: 980px) {
  .bsv-hero-pulse { width: min(40vw, 200px); height: min(40vw, 200px); opacity: 0.7; right: 3%; }
  .bsv-hero-mark { font-size: 72px; }
  .bsv-features-layout { grid-template-columns: 1fr; gap: 28px; }
  .bsv-know-grid--media,
  .gsv-know-grid--media,
  .batt-know-grid--media {
    grid-template-columns: minmax(120px, 160px) 1fr;
  }
  .bsv-know-media,
  .gsv-know-media,
  .batt-know-media { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .page-bsv-anlagen .hero--bsv { min-height: auto; padding: 72px 0 64px; }
  .bsv-hero-pulse { display: none; }
  .bsv-know { padding: 64px 0; }
  .bsv-know-grid { grid-template-columns: 1fr; gap: 12px; }
  .bsv-know-index { margin-top: 0; font-size: 72px; }
  .bsv-know-body h2 { max-width: none; }
  .bsv-features { padding: 64px 0; }
  .bsv-feature-item { grid-template-columns: 44px 1fr; padding: 16px 18px; }
  .bsv-cta-panel { padding: 28px 24px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   GSV-Anlagen — Gleichstrom / Netzleittechnik
   ═══════════════════════════════════════════════════════════════════════════ */
.page-gsv-anlagen .hero--gsv {
  min-height: min(88vh, 720px);
  background:
    radial-gradient(ellipse 55% 50% at 82% 42%, rgba(245,158,11,0.22), transparent 58%),
    radial-gradient(ellipse 40% 35% at 12% 78%, rgba(0,136,189,0.14), transparent 50%),
    linear-gradient(155deg, #0a0c10 0%, #141820 48%, #0c1016 100%);
}
.page-gsv-anlagen .hero--gsv .circuit-lines { opacity: 0.05; }
.page-gsv-anlagen .hero--gsv .hero-glow { opacity: 0.35; }
.gsv-hero-stage {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.gsv-hero-glow {
  position: absolute;
  width: 50vmin;
  height: 50vmin;
  right: 9%;
  top: 48%;
  transform: translateY(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(245,158,11,0.3), transparent 68%);
  filter: blur(12px);
  animation: gsv-pulse 6s ease-in-out infinite;
}
@keyframes gsv-pulse {
  0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateY(-50%) scale(1.08); opacity: 1; }
}
.gsv-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 46px 46px;
  mask-image: radial-gradient(ellipse 68% 58% at 72% 48%, #000 18%, transparent 78%);
}
.gsv-hero-dc {
  position: absolute;
  right: 8%;
  top: 50%;
  transform: translateY(-50%);
  width: min(34vw, 280px);
  height: min(34vw, 280px);
  display: grid;
  place-items: center;
  color: #fbbf24;
}
.gsv-dc-rail {
  position: absolute;
  left: 8%;
  right: 8%;
  height: 2px;
  border-radius: 2px;
}
.gsv-dc-rail--pos {
  top: 22%;
  background: linear-gradient(90deg, transparent, rgba(251,191,36,0.7), transparent);
  animation: gsv-flow 2.8s linear infinite;
}
.gsv-dc-rail--neg {
  bottom: 22%;
  background: linear-gradient(90deg, transparent, rgba(0,136,189,0.55), transparent);
  animation: gsv-flow 2.8s linear infinite reverse;
}
@keyframes gsv-flow {
  0% { opacity: 0.35; transform: scaleX(0.85); }
  50% { opacity: 1; transform: scaleX(1); }
  100% { opacity: 0.35; transform: scaleX(0.85); }
}
.gsv-dc-badge {
  position: relative;
  z-index: 1;
  width: 52%;
  filter: drop-shadow(0 14px 36px rgba(245,158,11,0.35));
}
.gsv-dc-badge svg { width: 100%; height: auto; display: block; }
.gsv-hero-mark {
  position: absolute;
  right: 6%;
  bottom: 11%;
  font-family: var(--font-head);
  font-size: clamp(64px, 12vw, 140px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.045);
  line-height: 1;
  user-select: none;
}
.page-gsv-anlagen .hero--gsv .hero-left { position: relative; z-index: 2; max-width: 660px; }
.page-gsv-anlagen .hero--gsv .hero-title {
  font-size: clamp(32px, 4.8vw, 54px);
  line-height: 1.06;
}
.page-gsv-anlagen .hero--gsv .hero-eyebrow { color: #fbbf24; }
.page-gsv-anlagen .hero--gsv .hero-eyebrow svg { fill: #fbbf24; }

/* Fachwissen */
.gsv-know {
  padding: 100px 0;
  background: linear-gradient(180deg, #fff 0%, #faf6ef 100%);
}
.gsv-know-grid {
  display: grid;
  grid-template-columns: minmax(140px, 200px) minmax(0, 1fr);
  gap: 40px 56px;
  align-items: start;
}
.gsv-know-index {
  margin-top: 28px;
  font-family: var(--font-head);
  font-size: clamp(64px, 10vw, 120px);
  font-weight: 800;
  line-height: 0.85;
  color: rgba(180,83,9,0.14);
  letter-spacing: -0.04em;
}
.gsv-know-norm {
  margin-top: 20px;
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.35;
  color: #b45309;
  text-transform: uppercase;
}
.gsv-know-body h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  line-height: 1.12;
  color: var(--dark);
  max-width: 16ch;
  margin: 0 0 28px;
}
.gsv-know-text {
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.75;
  color: var(--secondary);
  max-width: 62ch;
}
.gsv-know-text p { margin: 0; }

/* Leistungsmerkmale */
.gsv-features {
  padding: 88px 0 100px;
  background: #12151a;
  color: #fff;
}
.gsv-features-layout {
  display: grid;
  grid-template-columns: minmax(220px, 340px) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}
.gsv-features-aside .section-label { color: #fbbf24; }
.gsv-features-aside h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 3.6vw, 42px);
  font-weight: 800;
  color: #fff;
  margin: 10px 0 0;
  line-height: 1.15;
}
.gsv-feature-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.gsv-feature-item {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 18px;
  align-items: center;
  padding: 20px 24px;
  border-left: 3px solid #f59e0b;
  background: rgba(255,255,255,0.04);
  border-radius: 0 12px 12px 0;
}
.gsv-feature-n {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #fbbf24;
}
.gsv-feature-t {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.45;
  color: rgba(255,255,255,0.92);
}

/* CTA */
.gsv-cta { padding: 28px 0; }
.gsv-cta-panel {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  padding: clamp(36px, 5vw, 56px);
  min-height: 220px;
  display: flex;
  align-items: center;
  background:
    radial-gradient(ellipse 50% 80% at 100% 50%, rgba(245,158,11,0.2), transparent 55%),
    linear-gradient(120deg, #14120c 0%, #1a1610 50%, #100e0a 100%);
  border: 1px solid rgba(245,158,11,0.22);
  color: #fff;
}
.gsv-cta-copy { position: relative; z-index: 1; max-width: 560px; }
.gsv-cta-panel .section-label { color: #fbbf24; }
.gsv-cta-copy h2 {
  font-family: var(--font-head);
  font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 800;
  margin: 10px 0 14px;
  color: #fff;
  line-height: 1.15;
}
.gsv-cta-copy p {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255,255,255,0.72);
  max-width: 46ch;
}
.gsv-cta-actions .btn-primary {
  background: #f59e0b;
  border-color: #f59e0b;
  color: #1c1408;
}
.gsv-cta-actions .btn-primary:hover {
  background: #fbbf24;
  border-color: #fbbf24;
}
.gsv-cta-mark {
  position: absolute;
  right: 5%;
  bottom: 8%;
  font-family: var(--font-head);
  font-size: clamp(48px, 9vw, 110px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.06);
  line-height: 1;
  user-select: none;
}

.page-gsv-anlagen .block-contact-form {
  background:
    radial-gradient(ellipse 55% 45% at 100% 0%, rgba(245,158,11,0.1), transparent 50%),
    var(--white);
}
.page-gsv-anlagen .block-contact-form .section-header h2 {
  font-size: clamp(28px, 3.5vw, 40px);
}

@media (max-width: 980px) {
  .gsv-hero-dc { width: min(40vw, 200px); height: min(40vw, 200px); opacity: 0.75; right: 3%; }
  .gsv-hero-mark { font-size: 72px; }
  .gsv-features-layout { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 640px) {
  .page-gsv-anlagen .hero--gsv { min-height: auto; padding: 72px 0 64px; }
  .gsv-hero-dc { display: none; }
  .gsv-know { padding: 64px 0; }
  .gsv-know-grid { grid-template-columns: 1fr; gap: 12px; }
  .gsv-know-index { margin-top: 0; font-size: 72px; }
  .gsv-know-body h2 { max-width: none; }
  .gsv-features { padding: 64px 0; }
  .gsv-feature-item { grid-template-columns: 44px 1fr; padding: 16px 18px; }
  .gsv-cta-panel { padding: 28px 24px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Batterieanlagen — Kapazität / Zellchemie
   ═══════════════════════════════════════════════════════════════════════════ */
.page-batterieanlagen .hero--batt {
  min-height: min(88vh, 720px);
  background:
    radial-gradient(ellipse 55% 50% at 80% 40%, rgba(16,185,129,0.22), transparent 58%),
    radial-gradient(ellipse 42% 36% at 14% 78%, rgba(0,136,189,0.12), transparent 50%),
    linear-gradient(155deg, #070c0a 0%, #0e1612 48%, #08100c 100%);
}
.page-batterieanlagen .hero--batt .circuit-lines { opacity: 0.045; }
.page-batterieanlagen .hero--batt .hero-glow { opacity: 0.3; }
.batt-hero-stage {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.batt-hero-glow {
  position: absolute;
  width: 48vmin;
  height: 48vmin;
  right: 10%;
  top: 48%;
  transform: translateY(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(16,185,129,0.32), transparent 68%);
  filter: blur(14px);
  animation: batt-pulse 5.5s ease-in-out infinite;
}
@keyframes batt-pulse {
  0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.75; }
  50% { transform: translateY(-50%) scale(1.1); opacity: 1; }
}
.batt-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.028) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(ellipse 65% 55% at 74% 48%, #000 18%, transparent 78%);
}
.batt-hero-cell {
  position: absolute;
  right: 10%;
  top: 50%;
  transform: translateY(-50%);
  width: min(28vw, 220px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: #34d399;
}
.batt-charge {
  display: block;
  width: 42%;
  height: 6px;
  border-radius: 3px;
  background: rgba(52,211,153,0.25);
  transform-origin: left center;
}
.batt-charge--1 { animation: batt-bar 2.4s ease-in-out infinite; animation-delay: 0s; }
.batt-charge--2 { width: 58%; animation: batt-bar 2.4s ease-in-out infinite; animation-delay: 0.35s; }
.batt-charge--3 { width: 74%; animation: batt-bar 2.4s ease-in-out infinite; animation-delay: 0.7s; }
@keyframes batt-bar {
  0%, 100% { opacity: 0.35; transform: scaleX(0.55); background: rgba(52,211,153,0.25); }
  50% { opacity: 1; transform: scaleX(1); background: rgba(52,211,153,0.95); }
}
.batt-cell-body {
  width: 100%;
  filter: drop-shadow(0 16px 40px rgba(16,185,129,0.35));
}
.batt-cell-body svg { width: 100%; height: auto; display: block; }
.batt-fill {
  animation: batt-fill 3.2s ease-in-out infinite;
  transform-origin: center bottom;
}
@keyframes batt-fill {
  0%, 100% { opacity: 0.28; transform: scaleY(0.55); }
  50% { opacity: 0.65; transform: scaleY(1); }
}
.batt-hero-mark {
  position: absolute;
  right: 5%;
  bottom: 11%;
  font-family: var(--font-head);
  font-size: clamp(64px, 12vw, 140px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.045);
  line-height: 1;
  user-select: none;
}
.page-batterieanlagen .hero--batt .hero-left { position: relative; z-index: 2; max-width: 660px; }
.page-batterieanlagen .hero--batt .hero-title {
  font-size: clamp(32px, 4.8vw, 52px);
  line-height: 1.06;
}
.page-batterieanlagen .hero--batt .hero-eyebrow { color: #34d399; }
.page-batterieanlagen .hero--batt .hero-eyebrow svg { fill: #34d399; }

/* Fachwissen */
.batt-know {
  padding: 100px 0;
  background: linear-gradient(180deg, #fff 0%, #f0faf5 100%);
}
.batt-know-grid {
  display: grid;
  grid-template-columns: minmax(140px, 200px) minmax(0, 1fr);
  gap: 40px 56px;
  align-items: start;
}
.batt-know-index {
  margin-top: 28px;
  font-family: var(--font-head);
  font-size: clamp(64px, 10vw, 120px);
  font-weight: 800;
  line-height: 0.85;
  color: rgba(5,150,105,0.14);
  letter-spacing: -0.04em;
}
.batt-know-body h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  line-height: 1.12;
  color: var(--dark);
  max-width: 18ch;
  margin: 0 0 28px;
}
.batt-know-text {
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.75;
  color: var(--secondary);
  max-width: 62ch;
}
.batt-know-text p { margin: 0; }

/* Leistungsmerkmale */
.batt-features {
  padding: 88px 0 100px;
  background: #0c1410;
  color: #fff;
}
.batt-features-layout {
  display: grid;
  grid-template-columns: minmax(220px, 340px) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}
.batt-features-aside .section-label { color: #34d399; }
.batt-features-aside h2 {
  font-family: var(--font-head);
  font-size: clamp(28px, 3.6vw, 42px);
  font-weight: 800;
  color: #fff;
  margin: 10px 0 0;
  line-height: 1.15;
}
.batt-feature-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.batt-feature-item {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 18px;
  align-items: center;
  padding: 20px 24px;
  border-left: 3px solid #10b981;
  background: rgba(255,255,255,0.04);
  border-radius: 0 12px 12px 0;
  position: relative;
  overflow: hidden;
}
.batt-feature-item::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 0;
  background: linear-gradient(90deg, #10b981, transparent);
  transition: width 0.45s ease;
}
.batt-feature-item:hover::after { width: 100%; }
.batt-feature-n {
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #34d399;
}
.batt-feature-t {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.45;
  color: rgba(255,255,255,0.92);
}

/* CTA */
.batt-cta { padding: 28px 0; }
.batt-cta-panel {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  padding: clamp(36px, 5vw, 56px);
  min-height: 220px;
  display: flex;
  align-items: center;
  background:
    radial-gradient(ellipse 50% 80% at 100% 50%, rgba(16,185,129,0.22), transparent 55%),
    linear-gradient(120deg, #0c1410 0%, #122018 50%, #0a100e 100%);
  border: 1px solid rgba(16,185,129,0.28);
  color: #fff;
}
.batt-cta-copy { position: relative; z-index: 1; max-width: 560px; }
.batt-cta-panel .section-label { color: #34d399; }
.batt-cta-copy h2 {
  font-family: var(--font-head);
  font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 800;
  margin: 10px 0 14px;
  color: #fff;
  line-height: 1.15;
}
.batt-cta-copy p {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255,255,255,0.72);
  max-width: 46ch;
}
.batt-cta-actions .btn-primary {
  background: #10b981;
  border-color: #10b981;
  color: #042016;
}
.batt-cta-actions .btn-primary:hover {
  background: #34d399;
  border-color: #34d399;
}
.batt-cta-mark {
  position: absolute;
  right: 5%;
  bottom: 8%;
  font-family: var(--font-head);
  font-size: clamp(48px, 9vw, 110px);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: rgba(255,255,255,0.06);
  line-height: 1;
  user-select: none;
}

.page-batterieanlagen .block-contact-form {
  background:
    radial-gradient(ellipse 55% 45% at 100% 0%, rgba(16,185,129,0.1), transparent 50%),
    var(--white);
}
.page-batterieanlagen .block-contact-form .section-header h2 {
  font-size: clamp(28px, 3.5vw, 40px);
}

@media (max-width: 980px) {
  .batt-hero-cell { width: min(36vw, 160px); opacity: 0.8; right: 4%; }
  .batt-hero-mark { font-size: 72px; }
  .batt-features-layout { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 640px) {
  .page-batterieanlagen .hero--batt { min-height: auto; padding: 72px 0 64px; }
  .batt-hero-cell { display: none; }
  .batt-know { padding: 64px 0; }
  .batt-know-grid { grid-template-columns: 1fr; gap: 12px; }
  .batt-know-index { margin-top: 0; font-size: 72px; }
  .batt-know-body h2 { max-width: none; }
  .batt-features { padding: 64px 0; }
  .batt-feature-item { grid-template-columns: 44px 1fr; padding: 16px 18px; }
  .batt-cta-panel { padding: 28px 24px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Branchen — Einzelseite mit 6 Industry-Showcases
   ═══════════════════════════════════════════════════════════════════════════ */
.page-branchen .hero--branchen {
  min-height: min(88vh, 760px);
  background:
    radial-gradient(ellipse 55% 50% at 78% 42%, rgba(0,136,189,0.28), transparent 58%),
    radial-gradient(ellipse 40% 35% at 15% 80%, rgba(124,58,237,0.12), transparent 50%),
    linear-gradient(155deg, #070b12 0%, #101820 48%, #0a1018 100%);
}
.page-branchen .hero--branchen .circuit-lines { opacity: 0.04; }
.page-branchen .hero--branchen .hero-glow { opacity: 0.3; }
.page-branchen .hero--branchen .hero-left { position: relative; z-index: 2; max-width: 640px; }
.page-branchen .hero--branchen .hero-title {
  font-size: clamp(32px, 4.8vw, 54px);
  line-height: 1.06;
}
.page-branchen .hero--branchen .hero-eyebrow { color: #4fc3f7; }
.page-branchen .hero--branchen .hero-eyebrow svg { fill: #4fc3f7; }

.ind-hero-stage { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.ind-hero-glow {
  position: absolute; width: 52vmin; height: 52vmin; right: 10%; top: 48%;
  transform: translateY(-50%); border-radius: 50%;
  background: radial-gradient(circle, rgba(0,136,189,0.35), transparent 68%);
  filter: blur(12px); animation: ind-pulse 6s ease-in-out infinite;
}
@keyframes ind-pulse {
  0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.75; }
  50% { transform: translateY(-50%) scale(1.1); opacity: 1; }
}
.ind-hero-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse 65% 55% at 72% 48%, #000 18%, transparent 78%);
}
.ind-hero-orbit {
  position: absolute; right: 8%; top: 50%; transform: translateY(-50%);
  width: min(36vw, 300px); height: min(36vw, 300px);
}
.ind-hero-core {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 64px; height: 64px; border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--font-head); font-weight: 800; font-size: 22px;
  color: #fff; background: rgba(0,136,189,0.35);
  border: 2px solid rgba(79,195,247,0.5);
  box-shadow: 0 0 40px rgba(0,136,189,0.4);
}
.ind-hero-sat {
  position: absolute; left: 50%; top: 50%;
  width: 44px; height: 44px; margin: -22px;
  border-radius: 12px; display: grid; place-items: center;
  background: rgba(10,16,24,0.9); border: 1px solid color-mix(in srgb, var(--ind-c) 50%, transparent);
  color: var(--ind-c); animation: ind-orbit 18s linear infinite;
}
.ind-hero-sat svg { width: 22px; height: 22px; fill: currentColor; }
.ind-hero-sat--1 { --a: 0deg; }
.ind-hero-sat--2 { --a: 60deg; animation-delay: -3s; }
.ind-hero-sat--3 { --a: 120deg; animation-delay: -6s; }
.ind-hero-sat--4 { --a: 180deg; animation-delay: -9s; }
.ind-hero-sat--5 { --a: 240deg; animation-delay: -12s; }
.ind-hero-sat--6 { --a: 300deg; animation-delay: -15s; }
@keyframes ind-orbit {
  from { transform: rotate(var(--a)) translateX(min(16vw, 120px)) rotate(calc(-1 * var(--a))); }
  to   { transform: rotate(calc(var(--a) + 360deg)) translateX(min(16vw, 120px)) rotate(calc(-1 * (var(--a) + 360deg))); }
}
.ind-hero-mark {
  position: absolute; right: 4%; bottom: 10%;
  font-family: var(--font-head); font-size: clamp(48px, 10vw, 120px); font-weight: 800;
  letter-spacing: -0.04em; color: rgba(255,255,255,0.04); line-height: 1; user-select: none;
}

/* Jump nav */
.ind-jump { padding: 88px 0; background: linear-gradient(180deg, #fff 0%, #f4f8fb 100%); }
.ind-jump-head { max-width: 640px; margin-bottom: 40px; }
.ind-jump-head h2 {
  font-family: var(--font-head); font-size: clamp(28px, 3.8vw, 44px);
  font-weight: 800; line-height: 1.12; margin: 10px 0 0; color: var(--dark);
}
.ind-jump-nav {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px;
}
.ind-jump-card {
  position: relative; display: flex; flex-direction: column; gap: 10px;
  padding: 28px 24px 24px; border-radius: 18px; text-decoration: none; color: inherit;
  background: #fff; border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 10px 30px rgba(15,23,42,0.04);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  overflow: hidden;
}
.ind-jump-card::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 3px;
  background: var(--ind-c); transform: scaleX(0); transform-origin: left;
  transition: transform .35s ease;
}
.ind-jump-card:hover {
  transform: translateY(-4px);
  border-color: rgba(var(--ind-rgba), 0.35);
  box-shadow: 0 18px 40px rgba(var(--ind-rgba), 0.15);
}
.ind-jump-card:hover::before { transform: scaleX(1); }
.ind-jump-n {
  font-family: var(--font-head); font-size: 12px; font-weight: 800;
  letter-spacing: 0.14em; color: var(--ind-c);
}
.ind-jump-icon {
  width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  background: rgba(var(--ind-rgba), 0.12); color: var(--ind-c);
}
.ind-jump-icon svg { width: 22px; height: 22px; fill: currentColor; }
.ind-jump-card h3 {
  font-family: var(--font-head); font-size: 20px; font-weight: 800;
  margin: 0; line-height: 1.2; color: var(--dark);
}
.ind-jump-card p {
  margin: 0; font-size: 14px; line-height: 1.55; color: var(--secondary); flex: 1;
}
.ind-jump-go {
  align-self: flex-end; font-size: 20px; color: var(--ind-c);
  transition: transform .25s ease;
}
.ind-jump-card:hover .ind-jump-go { transform: translateX(4px); }

/* Industry section */
.ind-section { scroll-margin-top: 100px; }
.ind-section-head {
  padding: 88px 0 40px;
  background:
    radial-gradient(ellipse 50% 70% at 90% 40%, rgba(var(--ind-rgba), 0.2), transparent 55%),
    linear-gradient(145deg, #0a1018 0%, #121a24 50%, #0c121a 100%);
  color: #fff;
}
.ind-section-head-grid {
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(180px, 0.6fr);
  gap: 40px; align-items: center;
}
.ind-claim {
  margin: 0 0 14px; font-size: 14px; font-weight: 600; color: #4fc3f7;
}
.ind-label { color: var(--ind-c) !important; }
.ind-h1 {
  font-family: var(--font-head); font-size: clamp(28px, 4vw, 46px);
  font-weight: 800; line-height: 1.1; margin: 10px 0 18px; color: #fff; max-width: 18ch;
}
.ind-sub {
  margin: 0; font-size: clamp(15px, 1.4vw, 17px); line-height: 1.7;
  color: rgba(255,255,255,0.72); max-width: 52ch;
}
.ind-section-visual {
  position: relative; width: min(100%, 240px); aspect-ratio: 1;
  margin-left: auto; display: grid; place-items: center;
}
.ind-visual-ring {
  position: absolute; inset: 8%; border-radius: 50%;
  border: 1px dashed rgba(var(--ind-rgba), 0.45);
  animation: ind-spin 24s linear infinite;
}
@keyframes ind-spin { to { transform: rotate(360deg); } }
.ind-visual-icon {
  width: 88px; height: 88px; border-radius: 24px; display: grid; place-items: center;
  background: rgba(var(--ind-rgba), 0.18); color: var(--ind-c);
  box-shadow: 0 20px 50px rgba(var(--ind-rgba), 0.3);
}
.ind-visual-icon svg { width: 42px; height: 42px; fill: currentColor; }
.ind-visual-num {
  position: absolute; right: 0; bottom: 8%;
  font-family: var(--font-head); font-size: 64px; font-weight: 800;
  color: rgba(255,255,255,0.08); line-height: 1;
}

.ind-challenge { padding: 56px 0 24px; background: #fff; }
.ind-challenge-grid {
  display: grid; grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
  gap: 28px 48px; align-items: start;
}
.ind-challenge-index {
  margin-top: 20px; font-family: var(--font-head);
  font-size: clamp(56px, 9vw, 100px); font-weight: 800; line-height: 0.85;
  color: rgba(var(--ind-rgba), 0.14); letter-spacing: -0.04em;
}
.ind-challenge-body h3 {
  font-family: var(--font-head); font-size: clamp(24px, 3.2vw, 36px);
  font-weight: 800; line-height: 1.15; margin: 0 0 18px; color: var(--dark); max-width: 20ch;
}
.ind-challenge-text {
  font-size: clamp(15px, 1.4vw, 17px); line-height: 1.75; color: var(--secondary); max-width: 62ch;
}
.ind-challenge-text p { margin: 0; }

/* Solutions */
.ind-solutions { padding: 24px 0 64px; background: #fff; }
.ind-solutions-head { margin-bottom: 28px; }
.ind-solutions-head .section-label { color: var(--ind-c); }
.ind-solutions-head h3 {
  font-family: var(--font-head); font-size: clamp(24px, 3vw, 34px);
  font-weight: 800; margin: 8px 0 0; color: var(--dark);
}
.ind-solutions-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px;
}
.ind-sol-card {
  position: relative; padding: 24px 22px 22px 22px; border-radius: 16px;
  background: #f7fafc; border-left: 3px solid var(--ind-c);
  transition: background .25s ease, transform .25s ease;
}
.ind-sol-card:hover { background: #eef6fb; transform: translateY(-2px); }
.ind-sol-n {
  font-family: var(--font-head); font-size: 12px; font-weight: 800;
  letter-spacing: 0.12em; color: var(--ind-c);
}
.ind-sol-icon {
  width: 36px; height: 36px; margin: 10px 0 8px; color: var(--ind-c);
}
.ind-sol-icon svg { width: 100%; height: 100%; fill: currentColor; }
.ind-sol-card h4 {
  font-family: var(--font-head); font-size: 17px; font-weight: 800;
  margin: 0 0 8px; color: var(--dark); line-height: 1.3;
}
.ind-sol-card p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--secondary); }

/* Stats */
.ind-stats {
  padding: 28px 0; background: #0c121a; color: #fff;
  border-top: 1px solid rgba(var(--ind-rgba), 0.25);
  border-bottom: 1px solid rgba(var(--ind-rgba), 0.25);
}
.ind-stats-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;
}
.ind-stat { padding: 8px 12px; border-left: 2px solid var(--ind-c); }
.ind-stat-value {
  display: block; font-family: var(--font-head); font-size: clamp(22px, 3vw, 32px);
  font-weight: 800; color: var(--ind-c); line-height: 1.1;
}
.ind-stat-label {
  display: block; margin-top: 6px; font-size: 13px; color: rgba(255,255,255,0.65);
}

/* Products */
.ind-products { padding: 40px 0 28px; background: #f7fafc; }
.ind-products-head { margin-bottom: 18px; }
.ind-products-head .section-label { color: var(--ind-c); }
.ind-products-head h3 {
  font-family: var(--font-head); font-size: clamp(22px, 2.8vw, 30px);
  font-weight: 800; margin: 8px 0 0; color: var(--dark);
}
.ind-products-row { display: flex; flex-wrap: wrap; gap: 12px; }
.ind-prod-chip {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 14px 20px; border-radius: 999px; text-decoration: none;
  background: #fff; border: 1px solid rgba(var(--ind-rgba), 0.25);
  color: var(--dark); font-weight: 700; font-size: 15px;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.ind-prod-chip:hover {
  background: rgba(var(--ind-rgba), 0.1); border-color: var(--ind-c);
  transform: translateY(-2px); color: var(--dark);
}
.ind-prod-go { color: var(--ind-c); }

/* FAQ */
.ind-faq { padding: 28px 0 72px; background: #f7fafc; }
.ind-faq-layout {
  display: grid; grid-template-columns: minmax(200px, 300px) minmax(0, 1fr);
  gap: 32px; align-items: start;
}
.ind-faq-aside .section-label { color: var(--ind-c); }
.ind-faq-aside h3 {
  font-family: var(--font-head); font-size: clamp(22px, 2.8vw, 30px);
  font-weight: 800; margin: 8px 0 0; color: var(--dark);
}
.ind-faq .accordion-item {
  border-color: rgba(var(--ind-rgba), 0.18);
  background: #fff;
}
.ind-faq .accordion-item[open] { border-color: rgba(var(--ind-rgba), 0.4); }

/* CTA */
.ind-cta { padding: 28px 0; }
.ind-cta-panel {
  position: relative; overflow: hidden; border-radius: 20px;
  padding: clamp(36px, 5vw, 56px); min-height: 220px;
  display: flex; align-items: center;
  background:
    radial-gradient(ellipse 50% 80% at 100% 50%, rgba(0,136,189,0.25), transparent 55%),
    linear-gradient(120deg, #0a1018 0%, #121a24 50%, #0c121a 100%);
  border: 1px solid rgba(0,136,189,0.28); color: #fff;
}
.ind-cta-copy { position: relative; z-index: 1; max-width: 560px; }
.ind-cta-panel .section-label { color: #4fc3f7; }
.ind-cta-copy h2 {
  font-family: var(--font-head); font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 800; margin: 10px 0 14px; color: #fff; line-height: 1.15;
}
.ind-cta-copy p {
  margin: 0 0 24px; font-size: 16px; line-height: 1.65;
  color: rgba(255,255,255,0.72); max-width: 46ch;
}
.ind-cta-actions .btn-primary {
  background: #0088bd; border-color: #0088bd; color: #fff;
}
.ind-cta-actions .btn-primary:hover {
  background: #4fc3f7; border-color: #4fc3f7; color: #041018;
}
.ind-cta-mark {
  position: absolute; right: 5%; bottom: 8%;
  font-family: var(--font-head); font-size: clamp(40px, 8vw, 96px);
  font-weight: 800; letter-spacing: -0.04em; color: rgba(255,255,255,0.06);
  line-height: 1; user-select: none;
}

.page-branchen .block-contact-form {
  background:
    radial-gradient(ellipse 55% 45% at 100% 0%, rgba(0,136,189,0.1), transparent 50%),
    var(--white);
}

@media (max-width: 980px) {
  .ind-hero-orbit { width: min(42vw, 200px); height: min(42vw, 200px); opacity: 0.85; right: 3%; }
  .ind-jump-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ind-section-head-grid { grid-template-columns: 1fr; }
  .ind-section-visual { margin: 0; }
  .ind-solutions-grid { grid-template-columns: 1fr; }
  .ind-faq-layout { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 640px) {
  .page-branchen .hero--branchen { min-height: auto; padding: 72px 0 64px; }
  .ind-hero-orbit { display: none; }
  .ind-jump { padding: 64px 0; }
  .ind-jump-nav { grid-template-columns: 1fr; }
  .ind-section-head { padding: 64px 0 32px; }
  .ind-challenge-grid { grid-template-columns: 1fr; gap: 8px; }
  .ind-challenge-index { margin-top: 0; font-size: 64px; }
  .ind-stats-grid { grid-template-columns: 1fr; gap: 14px; }
  .ind-cta-panel { padding: 28px 24px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Karriere — Powerpionier / Jobs
   ═══════════════════════════════════════════════════════════════════════════ */
.page-karriere .hero--karriere {
  min-height: min(88vh, 720px);
  background:
    radial-gradient(ellipse 55% 50% at 80% 40%, rgba(245,158,11,0.28), transparent 58%),
    radial-gradient(ellipse 40% 35% at 12% 78%, rgba(0,136,189,0.14), transparent 50%),
    linear-gradient(155deg, #0c0a06 0%, #16120c 48%, #0e0c08 100%);
}
.page-karriere .hero--karriere .circuit-lines { opacity: 0.04; }
.page-karriere .hero--karriere .hero-glow { opacity: 0.3; }
.page-karriere .hero--karriere .hero-left { position: relative; z-index: 2; max-width: 640px; }
.page-karriere .hero--karriere .hero-title {
  font-size: clamp(36px, 5.5vw, 64px);
  line-height: 1.02;
}
.page-karriere .hero--karriere .hero-eyebrow { color: #fbbf24; }
.page-karriere .hero--karriere .hero-eyebrow svg { fill: #fbbf24; }

.kar-hero-stage { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.kar-hero-glow {
  position: absolute; width: 50vmin; height: 50vmin; right: 10%; top: 48%;
  transform: translateY(-50%); border-radius: 50%;
  background: radial-gradient(circle, rgba(245,158,11,0.35), transparent 68%);
  filter: blur(12px); animation: kar-pulse 5.5s ease-in-out infinite;
}
@keyframes kar-pulse {
  0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.75; }
  50% { transform: translateY(-50%) scale(1.1); opacity: 1; }
}
.kar-hero-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse 65% 55% at 74% 48%, #000 18%, transparent 78%);
}
.kar-hero-bolt {
  position: absolute; right: 12%; top: 50%; transform: translateY(-50%);
  width: min(28vw, 180px); color: #fbbf24;
  filter: drop-shadow(0 16px 40px rgba(245,158,11,0.45));
  animation: kar-bolt 3.2s ease-in-out infinite;
}
@keyframes kar-bolt {
  0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.85; }
  50% { transform: translateY(calc(-50% - 8px)) scale(1.04); opacity: 1; }
}
.kar-hero-bolt svg { width: 100%; height: auto; display: block; }
.kar-hero-mark {
  position: absolute; right: 4%; bottom: 10%;
  font-family: var(--font-head); font-size: clamp(56px, 11vw, 130px);
  font-weight: 800; letter-spacing: -0.04em; color: rgba(255,255,255,0.045);
  line-height: 1; user-select: none;
}

/* Meter */
.kar-meter {
  padding: 88px 0;
  background: linear-gradient(180deg, #12100c 0%, #1a1610 100%);
  color: #fff;
}
.kar-meter-layout {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(220px, 0.7fr);
  gap: 48px; align-items: center;
}
.kar-meter-copy .section-label { color: #fbbf24; }
.kar-meter-copy h2 {
  font-family: var(--font-head); font-size: clamp(28px, 3.8vw, 44px);
  font-weight: 800; line-height: 1.12; margin: 10px 0 18px; color: #fff; max-width: 18ch;
}
.kar-meter-copy p {
  margin: 0; font-size: clamp(15px, 1.4vw, 17px); line-height: 1.7;
  color: rgba(255,255,255,0.7); max-width: 48ch;
}
.kar-meter-visual { display: flex; flex-direction: column; align-items: center; gap: 20px; }
.kar-meter-ring {
  position: relative; width: min(100%, 240px); aspect-ratio: 1;
}
.kar-meter-svg { width: 100%; height: 100%; display: block; }
.kar-meter-track { stroke: rgba(255,255,255,0.08); }
.kar-meter-bar {
  stroke: #f59e0b; stroke-linecap: round;
  filter: drop-shadow(0 0 12px rgba(245,158,11,0.55));
  transition: stroke-dashoffset 0.05s linear;
}
.kar-meter-core {
  position: absolute; inset: 0; display: grid; place-content: center; text-align: center;
}
.kar-meter-pct {
  font-family: var(--font-head); font-size: clamp(36px, 5vw, 48px);
  font-weight: 800; color: #fbbf24; line-height: 1;
}
.kar-meter-label {
  display: block; margin-top: 6px; font-size: 12px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.55);
}
.kar-meter-caption {
  display: flex; flex-wrap: wrap; gap: 16px 24px; justify-content: center;
  font-size: 13px; color: rgba(255,255,255,0.65);
}
.kar-meter-caption-filled { color: #fbbf24; opacity: 0; transition: opacity .4s ease; }
.kar-meter-caption-gap { opacity: 0; transition: opacity .4s ease .15s; }

/* Benefits */
.kar-benefits {
  padding: 96px 0;
  background: linear-gradient(180deg, #fff 0%, #faf6ef 100%);
}
.kar-benefits-head { max-width: 560px; margin-bottom: 40px; }
.kar-benefits-head .section-label { color: #b45309; }
.kar-benefits-head h2 {
  font-family: var(--font-head); font-size: clamp(28px, 3.8vw, 44px);
  font-weight: 800; margin: 10px 0 0; color: var(--dark);
}
.kar-benefits-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px;
}
.kar-benefit-card {
  position: relative; padding: 28px 24px; border-radius: 18px;
  background: #fff; border: 1px solid rgba(180,83,9,0.1);
  box-shadow: 0 12px 32px rgba(28,20,8,0.04);
  transition: transform .25s ease, border-color .25s ease;
}
.kar-benefit-card:hover {
  transform: translateY(-4px);
  border-color: rgba(245,158,11,0.4);
}
.kar-benefit-n {
  font-family: var(--font-head); font-size: 12px; font-weight: 800;
  letter-spacing: 0.14em; color: #f59e0b;
}
.kar-benefit-icon {
  width: 44px; height: 44px; margin: 14px 0 12px; color: #b45309;
  display: grid; place-items: center; border-radius: 12px;
  background: rgba(245,158,11,0.12);
}
.kar-benefit-icon svg { width: 24px; height: 24px; fill: currentColor; }
.kar-benefit-card h3 {
  font-family: var(--font-head); font-size: 18px; font-weight: 800;
  margin: 0 0 8px; color: var(--dark); line-height: 1.25;
}
.kar-benefit-card p {
  margin: 0; font-size: 14px; line-height: 1.55; color: var(--secondary);
}

/* Work */
.kar-work {
  padding: 96px 0;
  background: #0f1218; color: #fff;
}
.kar-work-grid {
  display: grid;
  grid-template-columns: minmax(120px, 160px) minmax(0, 1fr) minmax(140px, 200px);
  gap: 32px 40px; align-items: start;
}
.kar-work-rail .section-label { color: #fbbf24; }
.kar-work-index {
  margin-top: 20px; font-family: var(--font-head);
  font-size: clamp(56px, 9vw, 100px); font-weight: 800; line-height: 0.85;
  color: rgba(245,158,11,0.18); letter-spacing: -0.04em;
}
.kar-work-body h2 {
  font-family: var(--font-head); font-size: clamp(28px, 3.8vw, 44px);
  font-weight: 800; line-height: 1.12; margin: 0 0 22px; color: #fff; max-width: 16ch;
}
.kar-work-text {
  font-size: clamp(15px, 1.4vw, 17px); line-height: 1.75;
  color: rgba(255,255,255,0.72); max-width: 58ch;
}
.kar-work-text p { margin: 0; }
.kar-work-visual {
  position: relative; width: 100%; aspect-ratio: 1;
  display: grid; place-items: center; color: #fbbf24;
}
.kar-work-glow {
  position: absolute; inset: 10%; border-radius: 50%;
  background: radial-gradient(circle, rgba(245,158,11,0.25), transparent 70%);
  filter: blur(8px);
}
.kar-work-visual svg {
  position: relative; width: 48%; height: auto; fill: currentColor;
  filter: drop-shadow(0 12px 30px rgba(245,158,11,0.35));
}

/* Quote */
.kar-quote { padding: 72px 0; background: #faf6ef; }
.kar-quote-panel {
  position: relative; margin: 0; max-width: 820px;
  padding: clamp(36px, 5vw, 56px);
  border-radius: 24px;
  background:
    radial-gradient(ellipse 60% 80% at 0% 0%, rgba(245,158,11,0.12), transparent 50%),
    #fff;
  border: 1px solid rgba(180,83,9,0.12);
  box-shadow: 0 20px 50px rgba(28,20,8,0.06);
}
.kar-quote-mark {
  position: absolute; top: 12px; left: 24px;
  font-family: var(--font-head); font-size: 96px; font-weight: 800;
  line-height: 1; color: rgba(245,158,11,0.2); pointer-events: none;
}
.kar-quote-panel blockquote {
  margin: 0 0 28px; padding: 0;
  font-family: var(--font-head); font-size: clamp(22px, 3vw, 32px);
  font-weight: 700; line-height: 1.35; color: var(--dark); quotes: none;
}
.kar-quote-author {
  display: flex; align-items: center; gap: 14px;
}
.kar-quote-avatar {
  width: 56px; height: 56px; border-radius: 50%; object-fit: cover;
  display: grid; place-items: center;
  font-family: var(--font-head); font-weight: 800; font-size: 16px;
  background: #f59e0b; color: #1c1408;
}
.kar-quote-avatar--initials { background: linear-gradient(135deg, #f59e0b, #b45309); color: #fff; }
.kar-quote-author strong {
  display: block; font-size: 16px; color: var(--dark);
}
.kar-quote-author span {
  display: block; margin-top: 2px; font-size: 13px; color: var(--secondary);
}

/* CTA */
.kar-cta { padding: 28px 0; }
.kar-cta-panel {
  position: relative; overflow: hidden; border-radius: 20px;
  padding: clamp(36px, 5vw, 56px); min-height: 220px;
  display: flex; align-items: center;
  background:
    radial-gradient(ellipse 50% 80% at 100% 50%, rgba(245,158,11,0.22), transparent 55%),
    linear-gradient(120deg, #14120c 0%, #1a1610 50%, #100e0a 100%);
  border: 1px solid rgba(245,158,11,0.28); color: #fff;
}
.kar-cta-copy { position: relative; z-index: 1; max-width: 560px; }
.kar-cta-panel .section-label { color: #fbbf24; }
.kar-cta-copy h2 {
  font-family: var(--font-head); font-size: clamp(26px, 3.4vw, 40px);
  font-weight: 800; margin: 10px 0 14px; color: #fff; line-height: 1.15;
}
.kar-cta-copy p {
  margin: 0 0 24px; font-size: 16px; line-height: 1.65;
  color: rgba(255,255,255,0.72); max-width: 46ch;
}
.kar-cta-actions .btn-primary {
  background: #f59e0b; border-color: #f59e0b; color: #1c1408;
}
.kar-cta-actions .btn-primary:hover {
  background: #fbbf24; border-color: #fbbf24;
}
.kar-cta-mark {
  position: absolute; right: 5%; bottom: 8%;
  font-family: var(--font-head); font-size: clamp(48px, 9vw, 110px);
  font-weight: 800; letter-spacing: -0.04em; color: rgba(255,255,255,0.06);
  line-height: 1; user-select: none;
}

.page-karriere .block-contact-form {
  background:
    radial-gradient(ellipse 55% 45% at 100% 0%, rgba(245,158,11,0.1), transparent 50%),
    var(--white);
}
.page-karriere .block-contact-form .section-header h2 {
  font-size: clamp(28px, 3.5vw, 40px);
}

@media (max-width: 980px) {
  .kar-hero-bolt { width: min(34vw, 140px); opacity: 0.8; right: 4%; }
  .kar-meter-layout { grid-template-columns: 1fr; gap: 36px; }
  .kar-benefits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kar-work-grid { grid-template-columns: 1fr; gap: 16px; }
  .kar-work-visual { width: 140px; }
}
@media (max-width: 640px) {
  .page-karriere .hero--karriere { min-height: auto; padding: 72px 0 64px; }
  .kar-hero-bolt { display: none; }
  .kar-meter { padding: 64px 0; }
  .kar-benefits { padding: 64px 0; }
  .kar-benefits-grid { grid-template-columns: 1fr; }
  .kar-work { padding: 64px 0; }
  .kar-quote { padding: 48px 0; }
  .kar-cta-panel { padding: 28px 24px; }
}

/* ===== SIDE RAIL (Aicher-Style Schnellzugriff) ===== */
.side-rail {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 880;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}
.side-rail-btn {
  pointer-events: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 168px;
  padding: 14px 14px 14px 18px;
  border-radius: 10px 0 0 10px;
  color: #fff;
  text-decoration: none;
  font-family: var(--font-head);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: -6px 4px 24px rgba(0, 0, 0, 0.22);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease, padding 0.25s ease;
  backdrop-filter: blur(8px);
}
.side-rail-btn:hover {
  transform: translateX(-8px);
  box-shadow: -10px 6px 28px rgba(0, 0, 0, 0.28);
  padding-right: 18px;
  color: #fff;
}
/* Logo-Primärfarben: Blau · Grau · Weiß */
.side-rail-btn--pp {
  background: #0484bc;
  color: #fff;
}
.side-rail-btn--pp:hover {
  background: #0374a6;
  color: #fff;
}
.side-rail-btn--about {
  background: #6c6c73;
  color: #fff;
}
.side-rail-btn--about:hover {
  background: #5a5a60;
  color: #fff;
}
.side-rail-btn--vs {
  background: #ffffff;
  color: #6c6c73;
  box-shadow: -6px 4px 24px rgba(0, 0, 0, 0.14), inset 0 0 0 1px rgba(108, 108, 115, 0.28);
}
.side-rail-btn--vs:hover {
  background: #f5f6f8;
  color: #0484bc;
  box-shadow: -10px 6px 28px rgba(0, 0, 0, 0.18), inset 0 0 0 1px rgba(4, 132, 188, 0.35);
}
.side-rail-btn--vs .side-rail-arrow {
  background: rgba(108, 108, 115, 0.14);
}
.side-rail-btn--vs .side-rail-arrow svg {
  fill: #6c6c73;
}
.side-rail-btn--vs:hover .side-rail-arrow {
  background: rgba(4, 132, 188, 0.14);
}
.side-rail-btn--vs:hover .side-rail-arrow svg {
  fill: #0484bc;
}
.side-rail-btn--default {
  background: #7a7b7c;
  color: #fff;
}
.side-rail-btn--default:hover {
  background: #6c6c73;
  color: #fff;
}
.side-rail-label {
  line-height: 1.2;
  max-width: 11em;
}
.side-rail-arrow {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.16);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.side-rail-arrow svg {
  width: 14px;
  height: 14px;
  fill: #fff;
}
@media (max-width: 1100px) {
  .side-rail-btn {
    min-width: 0;
    padding: 12px 10px 12px 12px;
  }
  .side-rail-label {
    font-size: 12px;
    max-width: 9em;
  }
}
@media (max-width: 900px) {
  .side-rail { display: none; }
}
