.loading_wrap {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #fff;
    /* Flexbox keeps the logo and spinner perfectly centered (horizontally and
       vertically) regardless of their size — no fragile left/transform offsets. */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .loader_logo {
    height: 100px;
    width: auto;
    margin-bottom: 30px;
  }

  .loader_logo img {
    height: 100px;
    width: auto;
    object-fit: contain;
  }

  .loading {
    border: 3px solid rgba(var(--brand-primary-rgb, 23, 84, 156), 0.2);
    width: 55px;
    height: 55px;
    border-radius: 50%;
    border-top-color: var(--brand-primary, #17549C);
    animation: loader 1s ease-in-out infinite;
    -webkit-animation: loader 1s ease-in-out infinite;
  }

  @keyframes loader {
    to {
      -webkit-transform: rotate(360deg);
      transform: rotate(360deg);
    }
  }

  @-webkit-keyframes loader {
    to {
      -webkit-transform: rotate(360deg);
    }
  }
