/* ==========================================================================
   03 · Purpose & Values (What We Stand For)
   Vision / Mission cards; the scroll parallax lives in js/sections/purpose.js.
   ========================================================================== */
.purpose {
  position: relative;
  overflow-x: clip;
  padding-block: 80px;
  background: var(--white);
}
@media (min-width: 768px) {
  .purpose {
    padding-block: 100px;
  }
}

/* ---- Heading ---- */
.purpose__head {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
@media (min-width: 1024px) {
  .purpose__head {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
  }
}
.purpose__title {
  margin-top: 28px;
  font-weight: var(--fw-regular);
  font-size: 40px;
  line-height: 1.15;
  letter-spacing: -0.04em;
  color: var(--navy);
}
@media (min-width: 768px) {
  .purpose__title {
    font-size: 64px;
    line-height: 76px;
  }
}
@media (min-width: 1024px) {
  .purpose__title {
    width: 700px;
  }
}
.purpose__intro {
  max-width: 460px;
  font-weight: var(--fw-news);
  font-size: 16px;
  line-height: 20px;
  color: #797c80;
}
@media (min-width: 1024px) {
  .purpose__intro {
    width: 460px;
  }
}

/* ---- Cards ---- */
.purpose__cards {
  position: relative;
  display: grid;
  gap: 16px;
  margin-top: 48px;
}
@media (min-width: 768px) {
  .purpose__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 72px;
  }
}
/* --from / --to are set per card; background-position is scrubbed by purpose.js */
.purpose__card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 360px;
  padding: 32px;
  overflow: clip;
  border-radius: 28px;
  color: var(--white);
  background-image: linear-gradient(to right, var(--from), var(--to));
  background-size: 140% 100%;
  background-position: 50% 50%;
  will-change: transform;
}
@media (min-width: 768px) {
  .purpose__card {
    height: 420px;
    padding: 56px;
  }
}
.purpose__card-copy {
  display: flex;
  flex-direction: column;
}
.purpose__card-label {
  font-size: 12px;
  line-height: 16px;
  text-transform: uppercase;
}
.purpose__card-title {
  margin-top: 12px;
  font-weight: var(--fw-regular);
  font-size: 24px;
  line-height: 30px;
  letter-spacing: -0.03em;
}
.purpose__card-statement {
  margin-top: 64px;
  font-weight: var(--fw-news);
  font-size: 20px;
  line-height: 26px;
  letter-spacing: -0.03em;
}
@media (min-width: 768px) {
  .purpose__card-title {
    font-size: 28px;
    line-height: 34px;
  }
  .purpose__card-statement {
    margin-top: 104px;
    font-size: 24px;
    line-height: 30px;
  }
}
