/* ============================================================
   Container — shared responsive layout constraint
   Provides 1024px max content width with responsive side padding.
   Import this in any component that uses the .container class.
   ============================================================ */

.container {
  position:   relative;
  width:      100%;
  max-width:  calc(1024px + 160px); /* 1024px content + 80px × 2 */
  padding:    0 80px;
  margin:     0 auto;
  box-sizing: border-box;
}

/* Tablet (≤991px): 60px sides */
@media (max-width: 991px) {
  .container {
    padding: 0 60px;
  }
}

/* Landscape mobile (≤767px): 2rem sides */
@media (max-width: 767px) {
  .container {
    padding: 0 2rem;
  }
}



/* ============================================================
   Wide container — 1360px content + 48px side padding
   Used for full-bleed section content blocks (slider, big cards)
   that need to be wider than the standard 1024px text container.
   ============================================================ */

.container-wide {
  width:      100%;
  max-width:  calc(1384px + 96px);   /* 1384px content + 48px × 2 */
  padding:    0 3rem;                /* 48px sides */
  margin:     0 auto;
  box-sizing: border-box;
}

/* Tablet (≤991px): 16px less than .container (60px → 44px) */
@media (max-width: 991px) {
  .container-wide {
    padding: 0 44px;
  }
}

/* Landscape mobile (≤767px): 16px less than .container (2rem → 1rem) */
@media (max-width: 767px) {
  .container-wide {
    padding: 0 1rem;
  }
}


.partner-stats {
  width: 100%;
  padding: 4rem 0;
  background: var(--secondary);
  color: var(--secondary-foreground);
  font-family: var(--font-family-default);
}

.partner-stats__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 12px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.partner-stats__card {
  display: flex;
  min-height: 210px;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 1rem;
  padding: 28px;
  background: var(--card);
  border: 0.5px solid var(--border);
  border-radius: 12px;
}

.partner-stats__value,
.partner-stats__description {
  margin: 0;
}

.partner-stats__value {
  width: 100%;
  padding-top: 1px;
  font-size: 3rem;
  line-height: normal;
}

.partner-stats__description {
  max-width: 250px;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-light);
  line-height: var(--line-height-lg);
}

@media (max-width: 991px) {
  .partner-stats__card {
    min-height: 0;
    padding: 24px;
  }

  .partner-stats__value {
    font-size: 2.5rem;
  }

  .partner-stats__description {
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
  }
}

@media (max-width: 767px) {
  .partner-stats {
    padding: 3rem 0;
  }

  .partner-stats__grid {
    grid-template-columns: 1fr;
  }

  .partner-stats__card {
    padding: 28px;
  }

  .partner-stats__description {
    max-width: 100%;
    font-size: var(--font-size-lg);
    line-height: var(--line-height-lg);
  }
}


/* ============================================================
   Design refresh — docs/design-refresh-rules.md, "Stats blocks". White
   ground, no full-bleed beige band (BG-1, BG-2); the cards go beige on white
   (BG-8), radius 24, no outline (BD-1). Figures Sans Light 96 in Blue 700
   (TY-7), captions Sans Regular 16/24 in Blue 700 (C11).
   ============================================================ */
.partner-stats[data-design="refresh"] {
  background: var(--card);
}

[data-design="refresh"] .partner-stats__grid {
  gap: var(--spacing-4);   /* 16px, as the homepage's stat cards */
}

[data-design="refresh"] .partner-stats__card {
  min-height:    0;
  background:    var(--secondary);
  border:        0;
  border-radius: var(--radius-lg);
}

[data-design="refresh"] .partner-stats__value {
  padding-top: 0;
  font-size:   6rem;   /* 96px */
  font-weight: var(--font-weight-light);
  line-height: normal;   /* TY-13's `auto` exception for the big stat */
  color:       var(--color-brand-blue-700);
}

[data-design="refresh"] .partner-stats__description {
  font-size:   var(--font-size-base);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-base);
  color:       var(--color-brand-blue-700);
}

/* Phones: the language's mobile stat step, 60 (docs/redesign-design-language.md). */
@media (max-width: 767px) {
  [data-design="refresh"] .partner-stats__value {
    font-size: 3.75rem;   /* 60px */
  }

  [data-design="refresh"] .partner-stats__description {
    font-size:   var(--font-size-base);
    line-height: var(--line-height-base);
  }
}

