/* Lokale Webfonts Override (nach CDN) */
    /* ===== FARBEN ===== */
    :root {
      --headings-color: #0d1b2a;
      --text-color: rgba(13,27,42,0.65);
    }

    .logo img, .nav-logo img { mix-blend-mode: multiply; }
    .main-footer .logo img { filter: brightness(0) invert(1); mix-blend-mode: normal; }

    /* char-animation immer sichtbar */
    .char-animation, .char-animation * {
      opacity: 1 !important; visibility: visible !important; transform: none !important;
    }

    /* ===== PRELOADER SPIN ===== */
    @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

    /* ===== HERO ===== */
    .hz-hero {
      position: relative; min-height: 88vh;
      display: flex; align-items: center; overflow: hidden;
      animation: heroLoad 0.9s ease-out;
    }
    @keyframes heroLoad { from { opacity: 0; } to { opacity: 1; } }
    @keyframes zoomIn { from { transform: scale(1.08); opacity: 0; } to { transform: scale(1); opacity: 1; } }
    @keyframes fadeInUp{0%{transform:translateY(55px);opacity:0}62%{transform:translateY(-9px);opacity:1}78%{transform:translateY(5px)}91%{transform:translateY(-2px)}100%{transform:translateY(0)}}
    @keyframes fadeInLeft{0%{transform:translateX(-70px);opacity:0}60%{transform:translateX(11px);opacity:1}78%{transform:translateX(-7px)}92%{transform:translateX(3px)}100%{transform:translateX(0)}}
    @keyframes fadeInRight{0%{transform:translateX(70px);opacity:0}60%{transform:translateX(-11px);opacity:1}78%{transform:translateX(7px)}92%{transform:translateX(-3px)}100%{transform:translateX(0)}}
    @keyframes fadeInDown{0%{transform:translateY(-45px);opacity:0}62%{transform:translateY(8px);opacity:1}80%{transform:translateY(-4px)}100%{transform:translateY(0)}}
    @keyframes hz-slide-bounce-left{0%{transform:translateX(-110%);opacity:0}55%{transform:translateX(18px);opacity:1}72%{transform:translateX(-10px);opacity:1}85%{transform:translateX(6px);opacity:1}94%{transform:translateX(-2px);opacity:1}100%{transform:translateX(0);opacity:1}}
    @keyframes hz-slide-bounce-right{0%{transform:translateX(110%);opacity:0}55%{transform:translateX(-18px);opacity:1}72%{transform:translateX(10px);opacity:1}85%{transform:translateX(-6px);opacity:1}94%{transform:translateX(2px);opacity:1}100%{transform:translateX(0);opacity:1}}
    [data-hz-anim]{opacity:0;will-change:transform,opacity}
    [data-hz-anim].hz-in{animation-duration:0.92s;animation-fill-mode:both;animation-timing-function:cubic-bezier(0.22,1,0.36,1)}
    [data-hz-anim="left"].hz-in{animation-name:hz-slide-bounce-left}
    [data-hz-anim="right"].hz-in{animation-name:hz-slide-bounce-right}
    .hz-hero-bg { position: absolute; inset: 0; z-index: 0; }
    .hz-hero-bg img {
      width: 100%; height: 100%; object-fit: cover; object-position: center 30%;
      animation: zoomIn 1.3s cubic-bezier(0.2,0.9,0.4,1.1) forwards;
    }
    .hz-hero-overlay {
      position: absolute; inset: 0; z-index: 1;
      background: linear-gradient(110deg,
        rgba(4,12,30,0.75) 0%,
        rgba(8,22,60,0.60) 40%,
        rgba(20,90,135,0.35) 70%,
        rgba(30,127,186,0.08) 100%);
    }
    .hz-hero-content { position: relative; z-index: 2; width: 100%; padding: 6rem 0 5rem; }
    .hz-hero-eyebrow {
      display: inline-flex; align-items: center; gap: 0.6rem;
      background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2);
      color: rgba(255,255,255,0.8); font-size: 0.72rem; font-weight: 700;
      letter-spacing: 0.12em; text-transform: uppercase;
      padding: 0.35rem 1.1rem; border-radius: 40px; margin-bottom: 1.6rem;
    }
    .hz-hero h1 {
      font-family: var(--heading-font-family);
      font-size: clamp(3rem, 6.5vw, 5.8rem);
      color: #fff; line-height: 1.05; letter-spacing: -0.02em;
      margin-bottom: 0.8rem; font-weight: 700; text-transform: uppercase;
    }
    .hz-hero h1 em { font-style: normal; color: var(--theme-accent-light); }
    .hz-hero-sub {
      font-size: 1rem; color: rgba(255,255,255,0.65);
      line-height: 1.75; max-width: 500px; margin-bottom: 2.2rem;
    }
    .hz-hero-btns { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
    .hz-hero-breadcrumb {
      display: flex; align-items: center; gap: 0.5rem;
      font-size: 0.78rem; color: rgba(255,255,255,0.45); margin-bottom: 1.2rem;
    }
    .hz-hero-breadcrumb a { color: rgba(255,255,255,0.55); text-decoration: none; }
    .hz-hero-breadcrumb a:hover { color: #fff; }
    .hz-hero-breadcrumb .sep { opacity: 0.3; }
    .hz-hero-stats {
      display: flex; gap: 2.5rem; flex-wrap: wrap;
      padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.12);
    }
    .hz-stat .n {
      font-family: var(--heading-font-family);
      font-size: 2.6rem; color: var(--theme-accent-light); line-height: 1; font-weight: 700;
    }
    .hz-stat .l {
      font-size: 0.68rem; color: rgba(255,255,255,0.45);
      margin-top: 0.25rem; text-transform: uppercase; letter-spacing: 0.06em;
    }
    @media (max-width: 991px) {
      .hz-hero h1 { font-size: clamp(2.2rem, 8vw, 4rem); }
      .hz-hero-content { padding: 5rem 1.5rem 4rem !important; }
      .hz-hero-sub { max-width: 100%; }
      .hz-hero-stats { gap: 1.5rem; }
    }
    @media (max-width: 576px) {
      .hz-hero { min-height: 100svh; }
      .hz-hero h1 { font-size: clamp(2rem, 9vw, 3rem); }
      .hz-hero-content { padding: 4rem 1.2rem 3rem !important; }
      .hz-hero-btns { flex-direction: column; gap: 0.75rem; }
      .hz-hero-btns a { width: 100%; justify-content: center; }
    }

    /* ===== INTRO SPLIT ===== */
    .hz-intro { padding: 5rem 0; }
    .hz-intro-img-wrap { position: relative; }
    .hz-intro-img-main { border-radius: 20px; overflow: hidden; height: 520px; }
    .hz-intro-img-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .hz-intro-badge {
      position: absolute; bottom: -24px; right: 24px;
      background: var(--theme-color1); color: #fff;
      border-radius: 14px; padding: 1.2rem 1.6rem;
      text-align: center; min-width: 140px;
      box-shadow: 0 8px 30px rgba(30,127,186,0.4); z-index: 2;
    }
    .hz-intro-badge .n { font-size: 2.4rem; font-weight: 700; font-family: var(--heading-font-family); line-height: 1; }
    .hz-intro-badge .l { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; opacity: 0.8; margin-top: 0.25rem; }
    .hz-intro-text { padding-left: 3rem; display: flex; flex-direction: column; justify-content: center; }
    @media (max-width: 991px) {
      .hz-intro-text { padding-left: 0; padding-top: 3.5rem; }
      .hz-intro-img-main { height: 340px; }
    }
    .hz-check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 2rem; }
    .hz-check-item { display: flex; gap: 0.8rem; align-items: flex-start; }
    .hz-check-ico {
      width: 34px; height: 34px; border-radius: 8px;
      background: rgba(30,127,186,0.1); display: grid; place-items: center;
      flex-shrink: 0; font-size: 0.85rem; color: var(--theme-color1);
    }
    .hz-check-item strong { font-size: 0.88rem; font-weight: 700; color: var(--headings-color); display: block; margin-bottom: 0.15rem; }
    .hz-check-item span { font-size: 0.8rem; color: var(--text-color); }

    /* ===== LEISTUNGSKARTEN ===== */
    .hz-lk-section { padding: 5rem 0; background: #f4f7fb; }
    .hz-lk-card {
      background: #fff; border-radius: 18px; overflow: hidden;
      box-shadow: 0 4px 24px rgba(13,27,42,0.07);
      transition: transform 0.35s ease, box-shadow 0.35s ease;
      height: 100%; display: flex; flex-direction: column;
    }
    .hz-lk-card:hover { transform: translateY(-7px); box-shadow: 0 14px 44px rgba(13,27,42,0.14); }
    .hz-lk-card-img { height: 220px; overflow: hidden; flex-shrink: 0; }
    .hz-lk-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
    .hz-lk-card:hover .hz-lk-card-img img { transform: scale(1.06); }
    .hz-lk-card-body { padding: 1.6rem; display: flex; flex-direction: column; flex: 1; }
    .hz-lk-card-ico {
      width: 44px; height: 44px; border-radius: 10px;
      background: rgba(30,127,186,0.1); display: grid; place-items: center;
      font-size: 1.1rem; color: var(--theme-color1); margin-bottom: 1rem;
    }
    .hz-lk-card-body h4 {
      font-family: var(--heading-font-family);
      font-size: 1.12rem; font-weight: 700; color: var(--headings-color); margin-bottom: 0.6rem;
    }
    .hz-lk-card-body p { font-size: 0.88rem; color: var(--text-color); line-height: 1.7; margin-bottom: 1.2rem; flex: 1; }
    .hz-lk-link {
      font-size: 0.75rem; font-weight: 700; color: var(--theme-color1);
      text-transform: uppercase; letter-spacing: 0.08em; text-decoration: none;
      display: inline-flex; align-items: center; gap: 0.4rem;
    }
    .hz-lk-link:hover { color: var(--theme-color4); }

    /* ===== CTA BAND mit Bild + Shimmer ===== */
    @keyframes shimmer-sweep {
      0% { transform: translateX(-150%) skewX(-15deg); }
      100% { transform: translateX(250%) skewX(-15deg); }
    }
    .hz-cta-band {
      position: relative; overflow: hidden; padding: 5rem 0;
    }
    .hz-cta-band-bg {
      position: absolute; inset: 0; z-index: 0;
    }
    .hz-cta-band-bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .hz-cta-band-overlay {
      position: absolute; inset: 0; z-index: 1;
      background: linear-gradient(110deg,
        rgba(4,12,35,0.92) 0%,
        rgba(20,90,135,0.82) 50%,
        rgba(30,127,186,0.72) 100%);
    }
    .hz-cta-shimmer {
      position: absolute; inset: 0; z-index: 2; pointer-events: none;
    }
    .hz-cta-shimmer::after {
      content: '';
      position: absolute; top: 0; left: 0; width: 45%; height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.07), transparent);
      animation: shimmer-sweep 3.5s ease-in-out infinite;
    }
    .hz-cta-content { position: relative; z-index: 3; }
    .hz-cta-band h2 {
      font-family: var(--heading-font-family);
      font-size: clamp(1.8rem, 3.5vw, 2.8rem);
      color: #fff; font-weight: 700; margin-bottom: 0.8rem; line-height: 1.2;
    }
    .hz-cta-band p { color: rgba(255,255,255,0.7); font-size: 1rem; line-height: 1.7; margin-bottom: 0; }
    .hz-cta-btns { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
    @media (max-width: 768px) { .hz-cta-btns { justify-content: flex-start; margin-top: 1.8rem; } }

    /* ===== SCHRITTE ===== */
    .hz-schritte { padding: 5rem 0; }
    .hz-schritt {
      display: grid; grid-template-columns: 1fr 1fr; gap: 3rem;
      align-items: center; margin-bottom: 5rem;
    }
    .hz-schritt:last-child { margin-bottom: 0; }
    .hz-schritt.rev .s-img { order: 2; }
    .hz-schritt.rev .s-text { order: 1; }
    .s-img { border-radius: 18px; overflow: hidden; height: 360px; }
    .s-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .s-num {
      font-family: var(--heading-font-family);
      font-size: 5rem; font-weight: 700; color: rgba(30,127,186,0.1);
      line-height: 1; margin-bottom: 0.4rem;
    }
    .s-label {
      font-size: 0.7rem; font-weight: 700; text-transform: uppercase;
      letter-spacing: 0.1em; color: var(--theme-color1); margin-bottom: 0.8rem;
    }
    .s-text h3 {
      font-family: var(--heading-font-family);
      font-size: clamp(1.4rem, 2.5vw, 2rem); font-weight: 700;
      color: var(--headings-color); margin-bottom: 1rem; line-height: 1.2;
    }
    .s-text p { font-size: 0.95rem; color: var(--text-color); line-height: 1.75; margin-bottom: 1.2rem; }
    .s-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
    .s-chip {
      font-size: 0.75rem; font-weight: 600; padding: 0.35rem 0.9rem;
      border-radius: 40px; background: rgba(30,127,186,0.08);
      color: var(--theme-color1); border: 1px solid rgba(30,127,186,0.18);
    }
    @media (max-width: 768px) {
      .hz-schritt { grid-template-columns: 1fr; gap: 1.5rem; }
      .hz-schritt.rev .s-img, .hz-schritt.rev .s-text { order: unset; }
      .s-img { height: 260px; }
      .s-num { font-size: 3.5rem; }
    }

    /* ===== REFERENZEN ===== */
    .hz-ref { padding: 5rem 0; background: var(--theme-color2); }
    .hz-ref .sub-title { color: rgba(255,255,255,0.5) !important; }
    .hz-ref .title { color: #fff !important; }
    .hz-ref-grid {
      display: grid;
      grid-template-columns: 1.5fr 1fr 1fr;
      grid-template-rows: 280px 230px;
      gap: 1rem; margin-top: 2.5rem;
    }
    .hz-ref-card { position: relative; border-radius: 14px; overflow: hidden; }
    .hz-ref-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
    .hz-ref-card:hover img { transform: scale(1.06); }
    .hz-ref-card-over {
      position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(4,12,35,0.85) 0%, transparent 55%);
      display: flex; align-items: flex-end; padding: 1.2rem;
    }
    .hz-ref-card-label { font-size: 0.78rem; font-weight: 700; color: rgba(255,255,255,0.9); text-transform: uppercase; letter-spacing: 0.06em; }
    .hz-ref-card.tall { grid-row: span 2; }
    @media (max-width: 768px) {
      .hz-ref-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
      .hz-ref-card.tall { grid-row: span 1; height: 220px; }
      .hz-ref-card { height: 200px; }
    }
    @media (max-width: 480px) {
      .hz-ref-grid { grid-template-columns: 1fr; }
      .hz-ref-card, .hz-ref-card.tall { height: 220px; grid-row: span 1; }
    }

    /* ===== VORTEILE ===== */
    .hz-vorteile { padding: 5rem 0; }
    .hz-vorteil-card {
      display: flex; gap: 1.4rem; align-items: flex-start;
      padding: 1.8rem; border-radius: 16px;
      border: 1px solid rgba(30,127,186,0.1); background: #fff;
      box-shadow: 0 2px 16px rgba(13,27,42,0.05); height: 100%;
      transition: border-color 0.3s, box-shadow 0.3s;
    }
    .hz-vorteil-card:hover { border-color: rgba(30,127,186,0.3); box-shadow: 0 6px 28px rgba(30,127,186,0.1); }
    .hz-vorteil-ico {
      width: 52px; height: 52px; flex-shrink: 0; border-radius: 12px;
      background: rgba(30,127,186,0.08); display: grid; place-items: center;
      font-size: 1.25rem; color: var(--theme-color1);
    }
    .hz-vorteil-text h5 { font-family: var(--heading-font-family); font-size: 1rem; font-weight: 700; margin-bottom: 0.4rem; color: var(--headings-color); }
    .hz-vorteil-text p { font-size: 0.88rem; color: var(--text-color); line-height: 1.65; margin: 0; }

    /* ===== FAQ ===== */
    .hz-faq { padding: 5rem 0; background: #f4f7fb; }
    .hz-acc-item {
      background: #fff; border-radius: 12px; margin-bottom: 0.6rem;
      border: 1px solid rgba(13,27,42,0.07); overflow: hidden;
      transition: box-shadow 0.3s, border-color 0.3s;
    }
    .hz-acc-item.open { box-shadow: 0 4px 20px rgba(30,127,186,0.1); border-color: rgba(30,127,186,0.22); }
    .hz-acc-trigger {
      width: 100%; background: none; border: none; padding: 1.2rem 1.4rem;
      display: flex; align-items: center; justify-content: space-between; gap: 1rem;
      text-align: left; cursor: pointer;
    }
    .hz-acc-trigger span {
      font-family: var(--heading-font-family);
      font-size: 0.95rem; font-weight: 700; color: var(--headings-color); line-height: 1.35;
    }
    .hz-acc-arrow {
      width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%;
      background: rgba(30,127,186,0.08); display: grid; place-items: center;
      font-size: 0.75rem; color: var(--theme-color1);
      transition: transform 0.3s, background 0.3s;
    }
    .hz-acc-item.open .hz-acc-arrow { transform: rotate(45deg); background: var(--theme-color1); color: #fff; }
    .hz-acc-body { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
    .hz-acc-item.open .hz-acc-body { max-height: 500px; }
    .hz-acc-body-inner { padding: 0 1.4rem 1.4rem; font-size: 0.9rem; color: var(--text-color); line-height: 1.8; }

    /* sec-title Basis */
    .hz-sec { margin-bottom: 3rem; }
    .hz-sec .sub-title {
      font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
      letter-spacing: 0.12em; color: var(--theme-color1); margin-bottom: 0.8rem; display: block;
    }
    .hz-sec .title {
      font-family: var(--heading-font-family);
      font-size: clamp(1.8rem, 3.5vw, 2.8rem);
      font-weight: 700; color: var(--headings-color); line-height: 1.2; margin-bottom: 0.8rem;
    }
    .hz-sec p { font-size: 0.97rem; color: var(--text-color); line-height: 1.7; max-width: 600px; }

@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }