body {
    overflow-x: auto;
}
:root {
    --bg: #6f1da8;
    --line: rgba(255, 255, 255, 0.28);
    --line-soft: rgba(255, 255, 255, 0.18);
    --text: #f6efff;
    --text-strong: #ffffff;
    --text-dim: rgba(255, 255, 255, 0.82);
    --text-muted: rgba(255, 255, 255, 0.74);
    --dark-blue: #1E305F;
    --bg-a: #4a328a;
    --bg-b: #2f4b93;
    --track: rgba(184, 201, 235, 0.58);
    --bar: #f07d6b;
    --label: #c9d7ff;
    --title: #d4defa;
    --line-gap: clamp(14px, 2.8vw, 26px);
    --row-h: clamp(16px, 2.2vw, 22px);
    --text-sm: clamp(11px, 1.5vw, 16px);
    --text-lg: clamp(22px, 4.2vw, 44px);
}

br {
    display: none;
    @media (min-width: 1024px) {
        display: block;
    }
}
/* Hero */
.home-redevelopment .home-hero-section .hero-title {
    font-size: 40px;
    line-height: 1.05;
    @media (min-width: 1024px) {
        font-size: 56px;
        line-height: 1.2;
    }
}
.home-redevelopment .home-hero-section .stats-wrapper .stat-item .lg-txt {
    font-size: 20px;
    font-weight: 600;
    line-height: 120%;
    @media (min-width: 1024px) {
        font-size: 28px;
     }
}

/* Backgrounds */
.image567-gradient-bg {
  background-color: #281a52 !important; /* fallback for no-gradient support */
  background-image:
    /* bright magenta glow rising from the bottom */
    radial-gradient(90% 90% at 38% 105%,
      rgba(135, 55, 160, 0.95) 0%,
      rgba(110, 30, 120, 0) 55%),
    /* darken the top edge */
    linear-gradient(180deg,
      #2a0e30 0%,
      rgba(42, 14, 48, 0) 45%),
    /* base: purple (left) -> blue (right) */
    linear-gradient(115deg,
      #4a1450 0%,
      #2c1a55 50%,
      #2b3f84 100%) !important;
}
.image568-gradient-bg {
  /* Deep violet/blue base with a subtle diagonal transition */
  background:
    radial-gradient(120% 95% at 50% -10%, rgba(173, 63, 196, 0.55) 0%, rgba(173, 63, 196, 0) 55%),
    radial-gradient(90% 80% at 22% 8%, rgba(84, 117, 209, 0.45) 0%, rgba(84, 117, 209, 0) 58%),
    linear-gradient(115deg, #1d2578 0%, #343f98 36%, #59106b 68%, #46061f 100%) !important;
}
.image456-bg {
  /* Base gradient direction and color stops sampled from image456.png */
  background:
    radial-gradient(95% 110% at 38% 82%, rgba(167, 46, 187, 0.55) 0%, rgba(167, 46, 187, 0) 56%),
    radial-gradient(72% 88% at 63% 82%, rgba(162, 120, 198, 0.5) 0%, rgba(162, 120, 198, 0) 62%),
    linear-gradient(104deg, #56012f 0%, #5f0653 27%, #612271 50%, #3c4c96 76%, #12185f 100%) !important;
}
.image456-bg-soft {
  /* Optional extra bloom to match the center glow in the artwork */
  background:
    radial-gradient(120% 120% at 44% 76%, rgba(171, 58, 196, 0.46) 0%, rgba(171, 58, 196, 0) 58%),
    radial-gradient(100% 110% at 70% 76%, rgba(156, 126, 208, 0.38) 0%, rgba(156, 126, 208, 0) 61%),
    linear-gradient(104deg, #54002d 0%, #5a0550 26%, #60206e 50%, #3e4a93 76%, #10165b 100%) !important;
}

.bg-purple {
    background-color: #751698 !important;
}
.bg-light-grey {
    background-color: #F7F7F7 !important;
}
/* Cards */
.warning-card {
    background-color: #F9DEDA;
    border-left: 8px solid #be1e2d;
    margin-bottom: 38px;
    .fw-bold {
        color: #BE1E2D;
    }
    .content {
        padding: 32px; 
    }
    p.text-dark-blue {
        font-size: 23px;
    }
}

/* Grids */
.two-column-grid {
    display: grid;
    grid-template-columns: 100%;
            width: 100%;
        border-top: 1px solid #d9d9d9;
        border-left: 1px solid #d9d9d9;
    @media (min-width: 1024px) {
      grid-template-columns: 50% 50%;
    }
    .two-column-grid--item {
        border-right: 1px solid #d9d9d9;
        border-bottom: 1px solid #d9d9d9;
        padding: 20px;
        min-height: 118px;
        @media (min-width:1024px) {
            padding: 40px;
        }
        .lg-text {
            font-size: 44px;
            font-weight: 600;
            color: var(--dark-blue);
            line-height: 100%;
            @media (min-width:1024px) {
                font-size: 64px;
            }
        }
    }
}
.channel-by-channel-grid.with-links {
    a.card:hover {
        background-color: #F7F7F7;
       transition: background .2s ease;
        text-decoration: none;
        span {
            transform: translateX(4px);
            transition: transform .2s ease;
        }
    }
}
.channel-by-channel-grid {
    & .card {
        .card__desc {
            color: #535151;
        }
    }
}
.solid-color-cta-section .container h2 {
    font-size: 44px;
    line-height: 48px;
    font-weight: bold;
    margin-top: 40px;
    margin-bottom: 24px;
    @media (min-width: 1024px) {
        line-height: 75px;
        font-size: 62px;
    }
}
.solid-color-cta-section {
    padding-bottom: 50px;
    @media (min-width:1024px) {
        padding-bottom: 200px;
    }
}

/* Typography */
h2.title {
    font-size: 48px;
    color: #be1e2d;
    line-height: 55px;
    margin-top: 0;
    margin-bottom: 0;
    font-weight: 400;
}
.lg-quote-section h3 {
    font-size: 20px;
    line-height: 1.2;
    @media (min-width: 1024px) {
        font-size: 36px;
        line-height: 55px;
        padding-top: 16px;
    }
}
p.lead {
    font-weight: bold;
    font-size: 20px;
}
.fw-bold {
    font-weight: 600 !important;   
}
small.fw-bold {
    color: var(--dark-blue);
}
.text-balance {
    text-wrap: balance !important;
}
.numbered-list {
    list-style: none;
    padding-left: 0;
    @media (min-width: 1024px) {
        padding-left: 40px;
    }
    li {
        display: flex;
        align-items: start;
        column-gap: 14px;
        color: #1E305F;
        font-size: 21px;
        line-height: 100%;
        font-weight: 600;
        margin-bottom: 32px;
        .count {
            color: #E22012;
            font-size: 14px;
        }
    }
}
.lg-quote-section small {
    font-size: 14px;
}
.pipe-spacers span {
    padding-left: 8px;
    padding-right: 8px;
}
/* Text Colors */
.text-red {
    color: #E22012 !important;
}
.text-white {
    color: #FFF !important;
}
.text-dark-blue {
    color: var(--dark-blue) !important;
}
.text-orange {
    color: #ED7865 !important;
}
/* Borders */
.border-bottom-1px {
    border-bottom: 1px solid;
}
.border-bottom-2px {
    border-bottom: 2px solid;
}

.border-color-grey {
    border-color: #cfcdcd !important;
}
.border-bottom-2px-grey {
    border-bottom: 2px solid var(--line);
}
.project-trajectory-wrapper {
    .progress-trajectory {
      width: 100%;
      aspect-ratio: 28 / 6;
      min-height: 200px;
      border-radius: clamp(6px, 1.2vw, 12px);
      background: transparent;
      color: var(--title);
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      column-gap: clamp(10px, 2vw, 22px);
      align-items: center;
      padding: clamp(12px, 2.2vw, 24px) clamp(26px, 2.4vw, 26px);
      overflow: hidden;
      position: relative;
      isolation: isolate;
    }

    .progress-trajectory::after {
      content: "";
      position: absolute;
      inset: -20% -10% 45% 35%;
      background: none;
      pointer-events: none;
      z-index: -1;
      animation: drift 7s ease-in-out infinite;
    }

    .tracks {
      display: grid;
      gap: var(--line-gap);
      width: 100%;
    }

    .row {
      display: grid;
      grid-template-columns: clamp(24px, 4vw, 40px) 1fr;
      align-items: center;
      column-gap: clamp(8px, 1.3vw, 16px);
    }

    .row-label {
      font-size: var(--text-sm);
      font-weight: 700;
      color: var(--label);
      letter-spacing: 0.02em;
      text-transform: uppercase;
    }

    .track {
      position: relative;
      height: 3px;
      border-radius: 999px;
      background: var(--track);
      overflow: visible;
    }

    .fill {
      position: absolute;
      left: 0;
      top: 50%;
      height: 5px;
      border-radius: 999px;
      transform: translateY(-50%) scaleX(0);
      transform-origin: left center;
      background: linear-gradient(90deg, #e77769 0%, var(--bar) 100%);
      animation: grow 1.25s cubic-bezier(0.2, 0.85, 0.2, 1) forwards;
    }

    .row:nth-child(1) .fill {
      width: 35%;
      animation-delay: 0.15s;
    }

    .row:nth-child(2) .fill {
      width: 51%;
      animation-delay: 0.35s;
    }

    .row:nth-child(3) .fill {
      width: 100%;
      animation-delay: 0.55s;
    }

    .metrics {
      justify-self: end;
      text-align: right;
      display: grid;
      gap: clamp(6px, 1.6vw, 12px);
      min-width: clamp(92px, 15vw, 164px);
      align-content: center;
    }

    .metrics-title {
      font-size: var(--text-sm);
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: #ccd9ff;
      font-weight: 700;
      margin-bottom: 2px;
    }

    .metric {
      color: var(--bar);
      font-weight: 700;
      line-height: 1;
      font-size: var(--text-lg);
      opacity: 0;
      transform: translateY(8px);
      animation: fade-up 0.7s ease forwards;
    }

    .metric:nth-of-type(2) {
      animation-delay: 0.9s;
    }

    .metric:nth-of-type(3) {
      animation-delay: 1.12s;
    }

    @media (max-width: 640px) {
      .progress-trajectory {
        grid-template-columns: 1fr;
        gap: 8px;
        aspect-ratio: auto;
      }

      .metrics {
        justify-self: start;
        text-align: left;
        grid-auto-flow: column;
        align-items: center;
        gap: clamp(8px, 3.2vw, 18px);
        min-width: 0;
      }

      .metrics-title {
        margin: 0;
      }

      .metric {
        font-size: clamp(18px, 6vw, 30px);
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .fill,
      .metric,
      .progress-trajectory::after {
        animation: none !important;
        opacity: 1;
        transform: translateY(0) scaleX(1);
      }
    }
}
@keyframes grow {
  from {
    transform: translateY(-50%) scaleX(0);
  }
  to {
    transform: translateY(-50%) scaleX(1);
  }
}

@keyframes fade-up {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes drift {
  0%,
  100% {
    transform: translateX(0) translateY(0) scale(1);
  }
  50% {
    transform: translateX(-2%) translateY(3%) scale(1.03);
  }
}