/*
 * AI24Solutions V32-F
 * Moving relationship between About outcome cards.
 *
 * The animated point uses the site's existing ai24TrustDot
 * keyframes. No new JavaScript is required.
 */

.about-outcomes-flow {
  display: grid !important;
  grid-template-columns:
    minmax(0, 1fr) 26px
    minmax(0, 1fr) 26px
    minmax(0, 1fr) 26px
    minmax(0, 1fr) !important;
  gap: 0 !important;
  align-items: stretch;
  overflow: visible;
}

.about-flow-card {
  position: relative;
  z-index: 2;
  min-width: 0;
}

.about-flow-connector {
  position: relative;
  z-index: 3;
  display: block;
  align-self: center;
  width: calc(100% + 16px);
  height: 2px;
  margin-inline: -8px;
  overflow: visible;
  pointer-events: none;

  background:
    linear-gradient(
      90deg,
      rgba(118, 88, 239, .18),
      rgba(56, 197, 243, .82),
      rgba(118, 88, 239, .18)
    );
}

.about-flow-connector::before,
.about-flow-connector::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #8fa4bc;
  transform: translateY(-50%);
}

.about-flow-connector::before {
  left: -2px;
}

.about-flow-connector::after {
  right: -2px;
}

.about-flow-connector i {
  position: absolute;
  top: 50%;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;

  background:
    linear-gradient(
      135deg,
      #7658ef,
      #38c5f3
    );

  box-shadow:
    0 0 0 5px rgba(91, 123, 236, .14),
    0 0 14px rgba(56, 197, 243, .38);

  transform: translate(-50%, -50%);

  animation:
    ai24TrustDot
    3.2s
    ease-in-out
    infinite;
}

.about-flow-connector--2 i {
  animation-delay: .55s;
}

.about-flow-connector--3 i {
  animation-delay: 1.10s;
}


/* Tablet: two columns with continuous route. */
@media (max-width: 900px) and (min-width: 561px) {
  .about-outcomes-flow {
    grid-template-columns:
      minmax(0, 1fr)
      26px
      minmax(0, 1fr) !important;

    grid-template-rows:
      auto
      26px
      auto;
  }

  .about-flow-card--1 {
    grid-column: 1;
    grid-row: 1;
  }

  .about-flow-connector--1 {
    grid-column: 2;
    grid-row: 1;
  }

  .about-flow-card--2 {
    grid-column: 3;
    grid-row: 1;
  }

  .about-flow-connector--2 {
    grid-column: 3;
    grid-row: 2;

    justify-self: center;

    width: 26px;
    margin: 0;

    transform: rotate(90deg);
  }

  .about-flow-card--3 {
    grid-column: 3;
    grid-row: 3;
  }

  .about-flow-connector--3 {
    grid-column: 2;
    grid-row: 3;
  }

  .about-flow-connector--3 i {
    animation-direction: reverse;
  }

  .about-flow-card--4 {
    grid-column: 1;
    grid-row: 3;
  }
}


/* Mobile: vertical 1 → 2 → 3 → 4 flow. */
@media (max-width: 560px) {
  .about-outcomes-flow {
    grid-template-columns: 1fr !important;
    grid-template-rows: none;
  }

  .about-flow-card,
  .about-flow-connector {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  .about-flow-connector {
    justify-self: center;

    width: 26px;
    margin: 10px 0;

    transform: rotate(90deg);
  }

  .about-flow-connector--3 i {
    animation-direction: normal;
  }
}


@media (prefers-reduced-motion: reduce) {
  .about-flow-connector i {
    left: 50% !important;
    opacity: 1 !important;
    animation: none !important;
  }
}


/* ==================================================
   AI24Solutions V32-H
   About page layout polish
   ================================================== */

.about-public-hero {
  padding-top: 72px !important;
  padding-bottom: 68px !important;
}

.about-public-hero .container.narrow {
  max-width: 1376px !important;
}

.about-public-hero h1 {
  max-width: 1040px;
  font-size: clamp(46px, 4.5vw, 68px);
  line-height: 1.04;
  letter-spacing: -0.035em;
}

.about-public-hero .lead {
  max-width: 900px;
  margin-top: 26px;
}

.about-public-hero .hero-actions {
  margin-top: 32px;
}


.company-approach-section {
  padding-top: 76px !important;
  padding-bottom: 82px !important;
}

.company-approach-section .founder-public-grid {
  grid-template-columns:
    minmax(0, 1.15fr)
    minmax(340px, .85fr);
  gap: clamp(44px, 6vw, 82px);
  align-items: center;
}

.company-approach-section h2 {
  max-width: 760px;
  font-size: clamp(40px, 3.7vw, 58px);
  line-height: 1.06;
  letter-spacing: -0.03em;
}

.company-approach-section .lead {
  max-width: 760px;
}

.company-approach-section .founder-public-card {
  align-self: center;
  min-height: 210px;
}


.delivery-outcomes-section {
  padding-top: 80px !important;
  padding-bottom: 82px !important;
}

.delivery-outcomes-section .section-title {
  max-width: 920px;
  margin-bottom: 38px;
}

.delivery-outcomes-section .about-flow-card {
  height: 100%;
  min-height: 220px;
  padding: 30px 28px;
}

.delivery-outcomes-section .about-flow-card h3 {
  margin-top: 0;
  margin-bottom: 14px;
}

.delivery-outcomes-section .about-flow-card p {
  margin-bottom: 0;
}


@media (max-width: 900px) {
  .about-public-hero {
    padding-top: 58px !important;
    padding-bottom: 58px !important;
  }

  .company-approach-section .founder-public-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .company-approach-section .founder-public-card {
    min-height: 0;
  }
}


@media (max-width: 600px) {
  .about-public-hero h1 {
    font-size: clamp(38px, 11vw, 50px);
  }

  .about-public-hero .lead {
    margin-top: 20px;
  }

  .company-approach-section,
  .delivery-outcomes-section {
    padding-top: 56px !important;
    padding-bottom: 58px !important;
  }

  .company-approach-section h2 {
    font-size: clamp(34px, 9vw, 44px);
  }

  .delivery-outcomes-section .about-flow-card {
    min-height: 0;
    padding: 26px 24px;
  }
}
