/* === SECTION: About === */

/* ----------------------------------------
   Reset scope
---------------------------------------- */
.about *,
.about *::before,
.about *::after {
  box-sizing: border-box;
}

/* ----------------------------------------
   .about — white background section
   Band_00/01 shows a clean white bg with
   image left, text right two-column layout
---------------------------------------- */
.about {
  width: 100%;
  background-color: var(--color-white);
  overflow: hidden;
}

/* ----------------------------------------
   .about__inner — two-column flex
   Left: images ~48%  |  Right: text ~52%
---------------------------------------- */
.about__inner {
  display: flex;
  align-items: center;
  gap: 80px;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  padding: 100px 80px;
}

/* ----------------------------------------
   .about__media — left column, image stack
---------------------------------------- */
.about__media {
  flex: 1 1 48%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.about__image-wrap {
  position: relative;
  width: 100%;
  max-width: 560px;
}

/* Primary large image */
.about__image--primary {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: 0 20px 56px rgba(33, 39, 49, 0.14);
}

/* Secondary smaller image — overlapping bottom-right */
.about__image--secondary {
  display: block;
  width: 52%;
  height: auto;
  border-radius: 16px;
  object-fit: cover;
  position: absolute;
  bottom: -36px;
  right: -36px;
  box-shadow: 0 12px 40px rgba(33, 39, 49, 0.18);
  border: 6px solid var(--color-white);
}

/* Floating stat card — top-left of primary image */
.about__stat-card {
  position: absolute;
  top: 32px;
  left: -32px;
  background-color: var(--color-primary);
  border-radius: 16px;
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 130px;
  box-shadow: 0 8px 28px rgba(178, 42, 44, 0.32);
}

.about__stat-number {
  font-family: var(--font-heading);
  font-size: var(--fs-5xl);      /* 38px */
  font-weight: var(--fw-bold);
  line-height: 1;
  color: var(--color-white);
}

.about__stat-label {
  font-family: var(--font-primary);
  font-size: var(--fs-sm);       /* 14px */
  font-weight: var(--fw-medium);
  line-height: var(--lh-sm);
  color: rgba(255, 255, 255, 0.88);
  text-align: center;
}

/* ----------------------------------------
   .about__content — right column
---------------------------------------- */
.about__content {
  flex: 1 1 52%;
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 620px;
}

/* Overline */
.about__overline {
  font-family: var(--font-primary);
  font-size: var(--fs-sm);       /* 14px */
  font-weight: var(--fw-semibold);
  line-height: var(--lh-sm);
  letter-spacing: var(--ls-wide); /* 2.8px */
  text-transform: uppercase;
  color: var(--color-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.about__overline::before {
  content: '';
  display: inline-block;
  width: 32px;
  height: 2px;
  background-color: var(--color-primary);
  flex-shrink: 0;
}

/* Section heading */
.about__heading {
  font-family: var(--font-heading);
  font-size: var(--fs-5xl);      /* 38px */
  font-weight: var(--fw-bold);
  line-height: var(--lh-4xl);    /* 58px */
  letter-spacing: var(--ls-snug);
  color: var(--color-navy);
  margin: 0;
}

/* Sub-heading / tagline */
.about__subheading {
  font-family: var(--font-heading);
  font-size: var(--fs-2xl);      /* 28px */
  font-weight: var(--fw-semibold);
  line-height: var(--lh-3xl);    /* 35px */
  color: var(--color-primary);
  margin: 0;
}

/* Body copy */
.about__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.about__body p {
  font-family: var(--font-primary);
  font-size: var(--fs-base);     /* 16px */
  font-weight: var(--fw-regular);
  line-height: var(--lh-3xl);    /* 35px */
  color: var(--color-gray-mid);
  margin: 0;
}

/* Feature list */
.about__features {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.about__feature {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.about__feature-icon {
  flex-shrink: 0;
  margin-top: 2px;
  display: flex;
  align-items: center;
}

.about__feature-text {
  font-family: var(--font-primary);
  font-size: var(--fs-base);     /* 16px */
  font-weight: var(--fw-medium);
  line-height: var(--lh-2xl);    /* 34px */
  color: var(--color-dark);
}

/* CTA button — solid red pill */
.about__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  font-family: var(--font-primary);
  font-size: var(--fs-base);     /* 16px */
  font-weight: var(--fw-semibold);
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-white);
  background-color: var(--color-primary);
  border: 2px solid var(--color-primary);
  border-radius: 90px;
  padding: 16px 36px;
  margin-top: 8px;
  transition: background-color 160ms ease, border-color 160ms ease, transform 140ms ease;
  white-space: nowrap;
}

.about__btn:hover {
  background-color: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  transform: translateY(-2px);
}

.about__btn:active {
  transform: translateY(0);
}

/* ----------------------------------------
   RESPONSIVE: Tablet — 1280px
---------------------------------------- */
@media (max-width: 1280px) {
  .about__inner {
    padding: 80px 40px;
    gap: 48px;
  }

  .about__heading {
    font-size: var(--fs-4xl);    /* 32px */
    line-height: var(--lh-2xl);
  }

  .about__subheading {
    font-size: var(--fs-xl);     /* 21px */
  }

  .about__image--secondary {
    right: -20px;
    bottom: -20px;
  }

  .about__stat-card {
    left: -16px;
    top: 24px;
  }
}

/* ----------------------------------------
   RESPONSIVE: Mobile — 768px
   Stack vertically: image above text
---------------------------------------- */
@media (max-width: 768px) {
  .about__inner {
    flex-direction: column;
    padding: 60px 20px 72px;
    gap: 56px;
  }

  .about__media {
    flex: none;
    width: 100%;
    justify-content: center;
  }

  .about__image-wrap {
    max-width: 100%;
  }

  .about__image--secondary {
    width: 44%;
    right: -8px;
    bottom: -24px;
    border-width: 4px;
  }

  .about__stat-card {
    left: -8px;
    top: 16px;
    padding: 14px 18px;
    min-width: 110px;
  }

  .about__stat-number {
    font-size: var(--fs-3xl);    /* 30px */
  }

  .about__content {
    flex: none;
    max-width: 100%;
    gap: 16px;
  }

  .about__heading {
    font-size: var(--fs-3xl);    /* 30px */
    line-height: var(--lh-xl);
  }

  .about__subheading {
    font-size: var(--fs-lg);     /* 20px */
  }

  .about__btn {
    width: 100%;
    justify-content: center;
  }
}

/* ----------------------------------------
   RESPONSIVE: Small — 375px
---------------------------------------- */
@media (max-width: 375px) {
  .about__inner {
    padding: 48px 16px 60px;
  }

  .about__heading {
    font-size: var(--fs-2xl);    /* 28px */
  }

  .about__image--secondary {
    display: none; /* hide overlap on very small screens */
  }

  .about__stat-card {
    position: static;
    margin-top: 16px;
    align-self: flex-start;
    border-radius: 12px;
  }
}

/* === END SECTION: About === */
