/* Preserved homepage procedure diagram, isolated from the retired homepage theme. */
    .step-wrap {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16,1,0.3,1);
    }
    .step-wrap.step-visible { opacity: 1; transform: translateY(0); }

    /* Phase cards */
    .pz-phase-card {
      background: #fff;
      border-radius: 18px;
      padding: 1.75rem 1.75rem 1.75rem 4.2rem;
      position: relative;
      box-shadow: 0 4px 24px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04);
      min-height: 100px;
      display: flex;
      align-items: center;
      transition: transform 0.22s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.22s ease;
    }
    .pz-phase-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 32px rgba(0,0,0,0.10), 0 2px 6px rgba(0,0,0,0.06);
    }
    .pz-phase-num {
      position: absolute;
      left: -0.7rem;
      top: 50%;
      transform: translateY(-50%);
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: #0D1B3E;
      color: #fff;
      font-family: var(--v-font);
      font-weight: 900;
      font-size: 1.05rem;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 14px rgba(13,27,62,0.35);
      transition: transform 0.22s cubic-bezier(0.34,1.56,0.64,1);
    }
    .pz-phase-card:hover .pz-phase-num { transform: translateY(-50%) scale(1.12); }
    .pz-phase-title {
      font-family: var(--v-font);
      font-weight: 800;
      font-size: 0.95rem;
      color: #0D1B3E;
      line-height: 1.45;
      letter-spacing: -0.015em;
    }

    /* ── Flowchart animations (keyframes) ── */
    @keyframes pzFadeUp {
      from { opacity: 0; transform: translateY(20px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes pzPopIn {
      0%   { opacity: 0; transform: scale(0); }
      60%  { opacity: 1; transform: scale(1.15); }
      100% { opacity: 1; transform: scale(1); }
    }
    @keyframes pzSlideLeft {
      from { opacity: 0; transform: translateX(-30px); }
      to   { opacity: 1; transform: translateX(0); }
    }
    @keyframes pzSlideRight {
      from { opacity: 0; transform: translateX(30px); }
      to   { opacity: 1; transform: translateX(0); }
    }
    @keyframes pzDrawLine {
      from { stroke-dashoffset: 600; }
      to   { stroke-dashoffset: 0; }
    }

    /* Hide elements before animation */
    .pz-flowchart-wrap .pz-flow-label,
    .pz-flowchart-wrap .pz-bsfz-logo,
    .pz-flowchart-wrap .pz-flow-icon-circle,
    .pz-boxes-stagger .pz-box { opacity: 0; }
    .pz-arrow-path { stroke-dasharray: 600; stroke-dashoffset: 600; }

    /* Phase 1: labels + icon */
    .step-visible .pz-col-1 > .pz-flow-label          { animation: pzFadeUp 0.5s ease forwards 0.1s; }
    .step-visible .pz-col-1 > .pz-flow-icon-circle     { animation: pzPopIn 0.5s cubic-bezier(0.34,1.56,0.64,1) forwards 0.25s; }
    /* Phase 1: boxes */
    .step-visible .pz-col-1 .pz-box-sm                 { animation: pzSlideLeft 0.5s ease forwards 0.5s; }
    .step-visible .pz-col-1 .pz-box-lg                 { animation: pzSlideRight 0.5s ease forwards 0.65s; }
    /* Phase 1: BSFZ logo */
    .step-visible .pz-bsfz-logo                        { animation: pzFadeUp 0.5s ease forwards 0.9s; }
    /* Phase 1: arrows */
    .step-visible .pa1 { animation: pzDrawLine 0.7s ease forwards 0.35s; }
    .step-visible .pa2 { animation: pzDrawLine 0.7s ease forwards 0.45s; }
    .step-visible .pa3 { animation: pzDrawLine 0.9s ease forwards 0.95s; }

    /* Bewilligung */
    .step-visible .pz-bewilligung .pz-flow-icon-circle { animation: pzPopIn 0.5s cubic-bezier(0.34,1.56,0.64,1) forwards 1.2s; }
    .step-visible .pz-bewilligung .pz-flow-label       { animation: pzFadeUp 0.5s ease forwards 1.3s; }
    /* Cross-phase arrows */
    .step-visible .pa4 { animation: pzDrawLine 0.8s ease forwards 1.4s; }
    .step-visible .pa5 { animation: pzDrawLine 0.8s ease forwards 1.5s; }

    /* Phase 2: labels + icon */
    .step-visible .pz-col-2 > .pz-flow-label           { animation: pzFadeUp 0.5s ease forwards 1.5s; }
    .step-visible .pz-col-2 > .pz-flow-icon-circle     { animation: pzPopIn 0.5s cubic-bezier(0.34,1.56,0.64,1) forwards 1.6s; }
    /* Phase 2: boxes */
    .step-visible .pz-col-2 .pz-box-sm                 { animation: pzSlideLeft 0.5s ease forwards 1.8s; }
    .step-visible .pz-col-2 .pz-box-lg                 { animation: pzSlideRight 0.5s ease forwards 1.95s; }
    /* Phase 2: arrows */
    .step-visible .pa6 { animation: pzDrawLine 0.7s ease forwards 1.7s; }
    .step-visible .pa7 { animation: pzDrawLine 0.7s ease forwards 1.8s; }

    /* Flowchart grid */
    .pz-flowchart-wrap {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0;
      position: relative;
    }
    @media (min-width: 1024px) {
      .pz-flowchart-wrap {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        grid-template-rows: 1fr auto;
        gap: 0 1rem;
        align-items: start;
      }
      .pz-col-1 { grid-column: 1; grid-row: 1; }
      .pz-col-2 { grid-column: 3; grid-row: 1; }
      .pz-bewilligung { grid-column: 1 / -1; grid-row: 2; }
    }

    /* Flow columns */
    .pz-col {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      position: relative;
    }
    /* Icon sits at the bend point of the L-arrows — between the two boxes */
    .pz-col .pz-flow-icon-circle {
      position: relative;
    }
    .pz-flow-label {
      font-family: var(--v-font);
      font-weight: 800;
      font-size: 1rem;
      color: #0D1B3E;
      margin-bottom: 0.6rem;
      text-decoration: underline;
      text-underline-offset: 3px;
      text-decoration-color: rgba(13,27,62,0.3);
    }
    .pz-flow-icon-circle {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: #fff;
      border: 2px solid #bcc8d9;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #5a8abf;
      box-shadow: 0 2px 8px rgba(0,0,0,0.06);
      flex-shrink: 0;
    }
    /* Boxes */
    .pz-box {
      border-radius: 12px;
      padding: 1rem;
      text-align: center;
    }
    .pz-box-light {
      background: #fff;
      border: 1px solid #dde3ed;
      box-shadow: 0 2px 10px rgba(0,0,0,0.04);
    }
    .pz-box-accent {
      background: #1E56B5;
      border: 1px solid rgba(30,86,181,0.6);
      box-shadow: 0 4px 16px rgba(30,86,181,0.25);
    }
    .pz-box-title {
      font-family: var(--v-font);
      font-weight: 700;
      font-size: 0.82rem;
      color: #0D1B3E;
      line-height: 1.4;
    }
    .pz-box-entity {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      margin-top: 0.5rem;
      padding: 0.4rem 0.75rem;
      border-radius: 8px;
      font-family: var(--v-font);
      font-weight: 700;
      font-size: 0.75rem;
    }
    .pz-box-dark-entity {
      background: #0D1B3E;
      color: #fff;
    }

    /* SVG arrow overlay */
    .pz-arrows-svg {
      display: none;
    }
    @media (min-width: 1024px) {
      .pz-arrows-svg {
        display: block;
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
        z-index: 1;
      }
    }
    .pz-arrow-path { stroke: #9ab0c8; stroke-width: 2.5; fill: none; stroke-linejoin: round; }
    .pz-arrow-fill { fill: #9ab0c8; stroke: #f0f2f5; stroke-width: 1; }

    /* Staggered boxes (reference style) */
    .pz-boxes-stagger {
      display: flex;
      gap: 0.75rem;
      width: 100%;
      align-items: flex-start;
    }
    .pz-box-sm {
      flex: 0 1 42%;
      margin-top: 1.5rem;
    }
    .pz-box-lg {
      flex: 0 1 58%;
      margin-top: 0;
    }
    /* Mobile: hide the flowchart graphic entirely */
    @media (max-width: 639px) {
      .pz-flowchart-wrap {
        display: none !important;
      }
    }

    /* BSFZ Logo — framed, shifted far right to clear arrow path */
    .pz-bsfz-logo {
      display: flex;
      flex-direction: column;
      align-items: center;
      margin-top: 0.5rem;
      gap: 0.2rem;
      margin-left: auto;
      margin-right: -1rem;
      padding: 0.7rem 1rem;
      background: #fff;
      border: 1.5px solid #dde3ed;
      border-radius: 12px;
      box-shadow: 0 2px 8px rgba(0,0,0,0.04);
      position: relative;
      z-index: 2;
    }
    .pz-bsfz-logo-row {
      display: flex;
      align-items: center;
      gap: 0.5rem;
    }
    .pz-bsfz-dots {
      display: grid;
      grid-template-columns: repeat(4, 7px);
      gap: 3.5px;
    }
    .pz-bsfz-dots span {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: #1E56B5;
      opacity: 0.5;
    }
    .pz-bsfz-dots span:nth-child(1),
    .pz-bsfz-dots span:nth-child(6),
    .pz-bsfz-dots span:nth-child(11) { opacity: 0.8; }
    .pz-bsfz-text {
      font-family: var(--v-font);
      font-weight: 900;
      font-size: 1.15rem;
      color: #1E56B5;
      letter-spacing: 0.06em;
    }
    .pz-bsfz-sub {
      font-size: 0.6rem;
      color: #5a6e8c;
      line-height: 1.3;
      text-align: center;
    }

    /* Bewilligung centered */
    .pz-bewilligung {
      display: flex;
      flex-direction: column;
      align-items: center;
      margin-top: 3.5rem;
      position: relative;
    }

    /* Mobile fallback arrows between flow elements */
    .pz-mobile-arrow {
      display: flex;
      justify-content: center;
      padding: 0.3rem 0;
    }
    .pz-mobile-arrow::after {
      content: '';
      display: block;
      width: 2px;
      height: 24px;
      background: #bcc8d9;
      position: relative;
    }
    .pz-mobile-arrow::before {
      content: '';
      position: absolute;
      bottom: 0.3rem;
      width: 0; height: 0;
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: 6px solid #bcc8d9;
    }
    @media (min-width: 1024px) {
      .pz-mobile-arrow { display: none; }
    }



