/* ── Startseite: Inhalt über die volle Breite (nur Seite #66) ── */
.page-id-66 .ibp-main,
.page-id-66 .ibp-content {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ── Reset (gekapselt) ── */
    #ibp-startseite, #ibp-startseite *, #ibp-startseite *::before, #ibp-startseite *::after { box-sizing: border-box; margin: 0; padding: 0; }
    #ibp-startseite {
      font-family: 'Public Sans', system-ui, sans-serif;
      color: #0e1726;
      -webkit-font-smoothing: antialiased;
      background: #f3f6fb;
      line-height: 1.5;
      width: 100%;
      max-width: 100%;
      overflow-x: hidden;
    }
    #ibp-startseite a { text-decoration: none; color: inherit; }
    #ibp-startseite img { max-width: none; }

    /* ── Layout ── */
    #ibp-startseite .ibp-container { max-width: 1240px; margin: 0 auto; }
    #ibp-startseite .ibp-accent-bar { position: absolute; top: 0; left: 0; right: 0; height: 4px; z-index: 5; }
    #ibp-startseite .ibp-eyebrow {
      display: inline-block; font-size: 12.5px; font-weight: 600; letter-spacing: .18em;
      text-transform: uppercase; color: #0B66DF; margin-bottom: 18px;
    }
    #ibp-startseite .ibp-section-title {
      font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 36px; line-height: 1.2;
      letter-spacing: -.01em; color: #011540; text-wrap: balance;
    }
    #ibp-startseite .ibp-section-header { text-align: center; max-width: 680px; margin: 0 auto 56px; }

    /* ── Hero (Text links auf Navy, Bild rechts mit weichem Übergang) ── */
    #ibp-startseite .ibp-hero { position: relative; background: #020a18; overflow: hidden; }
    #ibp-startseite .ibp-hero-grid {
      display: grid; grid-template-columns: 1.05fr .95fr; align-items: stretch;
    }
    #ibp-startseite .ibp-hero-text {
      position: relative; z-index: 2;
      display: flex; flex-direction: column; justify-content: center;
      padding: 92px 40px 92px max(40px, calc((100vw - 1240px) / 2));
    }
    #ibp-startseite .ibp-hero-eyebrow {
      font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
      color: #5aa0ff; margin-bottom: 24px;
    }
    #ibp-startseite .ibp-hero-title {
      font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 52px; line-height: 1.05;
      letter-spacing: -.02em; color: #fff; text-wrap: balance;
    }
    #ibp-startseite .ibp-hero-title span { color: #5aa0ff; }
    #ibp-startseite .ibp-hero-sub { font-size: 17.5px; line-height: 1.65; color: #aebfdc; margin-top: 28px; max-width: 460px; }
    #ibp-startseite .ibp-hero-imgcol { position: relative; min-height: 480px; }
    #ibp-startseite .ibp-hero-img {
      position: absolute; inset: 0; width: 100%; height: 100%;
      object-fit: cover; object-position: 88% center;
    }
    #ibp-startseite .ibp-hero-imgfade {
      position: absolute; inset: 0;
      background: linear-gradient(90deg, #020a18 0%, rgba(2,10,24,.85) 14%, rgba(2,10,24,.35) 32%, transparent 52%);
    }

    /* ── Willkommen ── */
    #ibp-startseite .ibp-welcome { background: #fff; padding: 96px 40px; position: relative; }
    #ibp-startseite .ibp-welcome-grid {
      max-width: 1240px; margin: 0 auto; display: grid;
      grid-template-columns: 1.25fr .85fr; gap: 72px; align-items: center;
    }
    #ibp-startseite .ibp-welcome-heading {
      font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 38px; line-height: 1.18;
      letter-spacing: -.01em; color: #011540; margin-bottom: 26px; text-wrap: balance;
    }
    #ibp-startseite .ibp-welcome-body { display: flex; flex-direction: column; gap: 18px; font-size: 17px; line-height: 1.7; color: #3a4a63; }
    #ibp-startseite .ibp-welcome-body strong { color: #011540; font-weight: 600; }
    #ibp-startseite .ibp-welcome-quote { font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 19px; color: #011540; }
    #ibp-startseite .ibp-portrait {
      border-radius: 16px; overflow: hidden;
      background: repeating-linear-gradient(135deg, #e9eef6 0 16px, #eef2f9 16px 32px);
      border: 1px solid #e0e7f2; aspect-ratio: 4/5; display: flex; flex-direction: column;
      align-items: center; justify-content: center; gap: 10px; color: #8092ad;
    }
    #ibp-startseite .ibp-portrait span { font-family: ui-monospace, monospace; font-size: 12.5px; }
    #ibp-startseite .ibp-portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }

    /* ── Buttons ── */
    #ibp-startseite .ibp-btn-navy {
      display: inline-flex; align-items: center; gap: 9px; padding: 13px 24px;
      background: #011540; color: #fff; font-size: 15px; font-weight: 600;
      border-radius: 9px; transition: background .15s, box-shadow .15s;
    }
    #ibp-startseite .ibp-btn-navy:hover { background: #0B66DF; box-shadow: 0 6px 18px rgba(11,102,223,.25); }

    /* ── Leistungen ── */
    #ibp-startseite .ibp-leistungen { padding: 96px 40px; position: relative; background: #f3f6fb; }
    #ibp-startseite .ibp-cards-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
    #ibp-startseite .ibp-service-card {
      background: #fff; border: 1px solid #e6ebf4; border-radius: 16px; padding: 40px;
      display: flex; flex-direction: column; transition: box-shadow .2s, border-color .2s;
    }
    #ibp-startseite .ibp-service-card:hover { box-shadow: 0 16px 40px rgba(1,21,64,.1); border-color: #cfe0fb; }
    #ibp-startseite .ibp-card-iconbox {
      width: 56px; height: 56px; border-radius: 13px; background: #eaf2fe;
      display: flex; align-items: center; justify-content: center; margin-bottom: 24px; flex-shrink: 0;
    }
    #ibp-startseite .ibp-card-title { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 23px; color: #011540; margin-bottom: 14px; }
    #ibp-startseite .ibp-card-desc { font-size: 16px; line-height: 1.65; color: #3a4a63; margin-bottom: 24px; }
    #ibp-startseite .ibp-card-list { list-style: none; display: flex; flex-direction: column; gap: 13px; margin-top: auto; }
    #ibp-startseite .ibp-card-list li { display: flex; align-items: flex-start; gap: 11px; font-size: 15px; color: #3a4a63; }
    #ibp-startseite .ibp-card-list svg { flex: none; margin-top: 1px; }

    /* ── Warum ── */
    #ibp-startseite .ibp-warum { background: #fff; padding: 96px 40px; position: relative; }
    #ibp-startseite .ibp-cards-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
    #ibp-startseite .ibp-feature-card {
      padding: 32px 24px; border-radius: 14px; background: #f7f9fd; border: 1px solid #e6ebf4;
      text-align: center; display: flex; flex-direction: column; align-items: center;
      transition: transform .2s, box-shadow .2s;
    }
    #ibp-startseite .ibp-feature-card:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(1,21,64,.1); }
    #ibp-startseite .ibp-feature-icon {
      width: 64px; height: 64px; border-radius: 14px; background: #011540;
      display: flex; align-items: center; justify-content: center; margin-bottom: 22px; flex-shrink: 0;
    }
    #ibp-startseite .ibp-feature-title { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 18px; color: #011540; margin-bottom: 9px; }
    #ibp-startseite .ibp-feature-desc { font-size: 14.5px; line-height: 1.6; color: #3a4a63; }

    /* ── Kontakt ── */
    #ibp-startseite .ibp-kontakt { background: #011540; padding: 88px 40px; position: relative; overflow: hidden; }
    #ibp-startseite .ibp-kontakt-grid {
      max-width: 1240px; margin: 0 auto; position: relative; z-index: 1; display: grid;
      grid-template-columns: 1fr auto; gap: 48px; align-items: center;
    }
    #ibp-startseite .ibp-kontakt-heading {
      font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 38px; line-height: 1.18;
      letter-spacing: -.01em; color: #fff; margin-bottom: 16px; text-wrap: balance;
    }
    #ibp-startseite .ibp-kontakt-sub { font-size: 17px; line-height: 1.65; color: #aebfdc; max-width: 520px; }
    #ibp-startseite .ibp-contact-cards { display: flex; flex-direction: column; gap: 16px; min-width: 340px; font-style: normal; }
    #ibp-startseite .ibp-contact-card {
      display: flex; align-items: center; gap: 16px; padding: 20px 24px;
      background: rgba(255,255,255,.05); border: 1px solid rgba(174,191,220,.2);
      border-radius: 13px; transition: background .15s, border-color .15s;
    }
    #ibp-startseite .ibp-contact-card:hover { background: rgba(255,255,255,.09); border-color: #5aa0ff; }
    #ibp-startseite .ibp-contact-icon {
      width: 46px; height: 46px; border-radius: 11px; background: #0B66DF;
      display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    }
    #ibp-startseite .ibp-contact-label { font-size: 12.5px; color: #7e93ba; letter-spacing: .04em; display: block; margin-bottom: 3px; }
    #ibp-startseite .ibp-contact-value { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 19px; color: #fff; display: block; }

    /* ── Circuit-Animationen ── */
    @keyframes ibpTraceFlow { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
    @keyframes ibpNodePulse { 0%,100% { opacity: .35; } 50% { opacity: 1; } }
    @keyframes ibpCircuitPulse { 0%,100% { opacity: .15; } 50% { opacity: .9; } }
    @keyframes ibpCircuitPing { 0% { transform: scale(.5); opacity: .7; } 100% { transform: scale(4); opacity: 0; } }

    /* ── Ablauf ── */
    #ibp-startseite .ibp-ablauf { background: #f3f6fb; padding: 96px 40px; position: relative; }
    #ibp-startseite .ibp-ablauf-header { max-width: 680px; margin: 0 auto 60px; text-align: center; }
    #ibp-startseite .ibp-ablauf-header p { font-size: 17px; line-height: 1.65; color: #3a4a63; margin-top: 18px; }
    #ibp-startseite .ibp-ablauf-grid { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
    #ibp-startseite .ibp-ablauf-line {
      position: absolute; top: 32px; left: 11%; right: 11%; height: 2px;
      background: linear-gradient(90deg, #cfe0fb, #0B66DF, #cfe0fb);
    }
    #ibp-startseite .ibp-ablauf-step { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
    #ibp-startseite .ibp-step-num {
      width: 64px; height: 64px; border-radius: 50%; background: #fff; border: 2px solid #0B66DF;
      display: flex; align-items: center; justify-content: center; font-family: 'Archivo', sans-serif;
      font-weight: 800; font-size: 22px; color: #0B66DF; box-shadow: 0 8px 20px rgba(11,102,223,.18);
    }
    #ibp-startseite .ibp-step-title { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 18px; color: #011540; margin: 22px 0 9px; }
    #ibp-startseite .ibp-step-desc { font-size: 14.5px; line-height: 1.6; color: #3a4a63; }

    /* ── Responsive ── */
    @media (max-width: 980px) {
      #ibp-startseite .ibp-cards-4 { grid-template-columns: repeat(2, 1fr); }
      #ibp-startseite .ibp-kontakt-grid { grid-template-columns: 1fr; }
      #ibp-startseite .ibp-contact-cards { min-width: 0; }
    }
    @media (max-width: 860px) {
      /* Bild oben, Verlauf nach unten ins Navy, Text überlappt von unten */
      #ibp-startseite .ibp-hero-grid { grid-template-columns: 1fr; }
      #ibp-startseite .ibp-hero-imgcol { order: -1; min-height: 0; }
      #ibp-startseite .ibp-hero-img { position: relative; height: 300px; }
      #ibp-startseite .ibp-hero-imgfade {
        inset: auto 0 0 0; height: 60%;
        background: linear-gradient(to top, #020a18 0%, rgba(2,10,24,.75) 40%, transparent 100%);
      }
      #ibp-startseite .ibp-hero-text { padding: 0 24px 60px; margin-top: -72px; }
      #ibp-startseite .ibp-hero-title { font-size: 38px; }
      #ibp-startseite .ibp-welcome-grid { grid-template-columns: 1fr; gap: 40px; }
      #ibp-startseite .ibp-cards-2 { grid-template-columns: 1fr; }
      #ibp-startseite .ibp-welcome, #ibp-startseite .ibp-leistungen,
      #ibp-startseite .ibp-warum, #ibp-startseite .ibp-kontakt,
      #ibp-startseite .ibp-ablauf { padding: 64px 24px; }
    }
    @media (max-width: 560px) {
      #ibp-startseite .ibp-cards-4 { grid-template-columns: 1fr; }
      #ibp-startseite .ibp-ablauf-grid { grid-template-columns: 1fr; gap: 36px; }
      #ibp-startseite .ibp-ablauf-line { display: none; }
      #ibp-startseite .ibp-hero-title { font-size: 30px; }
      #ibp-startseite .ibp-hero-sub { font-size: 16px; }
      #ibp-startseite .ibp-section-title,
      #ibp-startseite .ibp-welcome-heading,
      #ibp-startseite .ibp-kontakt-heading { font-size: 27px; }
      #ibp-startseite .ibp-service-card { padding: 28px 24px; }
    }
    @media (prefers-reduced-motion: reduce) {
      #ibp-startseite [style*="animation"] { animation: none !important; }
    }
