/* =============================================================
   NLIGN — Partners Page
   Same tokens, patterns & breakpoints as about.css / tim.css
   ============================================================= */


/* ── Shared inner wrapper ────────────────────────────────── */
.nlign-partners-hero__container,
.nlign-partners-list__container,
.nlign-partners-assoc__container,
.nlign-partners-cta__container {
  max-width: var(--nlign-max-width);
  margin:    0 auto;
  padding:   0 var(--nlign-section-padding-x);
}


/* =============================================================
   1. HERO
   ============================================================= */

.nlign-partners-hero {
  background-color: var(--nlign-color-onyx-800);
  padding:          var(--nlign-section-padding-y) 0;
  width:            100%;
}

.nlign-partners-hero__container {
  display:        flex;
  flex-direction: column;
  gap:            32px;
}

.nlign-partners-hero__heading {
  font-family: var(--nlign-h1-font-family);
  font-weight: var(--nlign-h1-font-weight);
  font-size:   var(--nlign-h1-font-size);
  line-height: var(--nlign-h1-line-height);
  color:       var(--nlign-color-dust-grey);
  margin:      0;
}

.nlign-partners-hero__description {
  font-family: var(--nlign-body-font-family);
  font-weight: var(--nlign-body-font-weight);
  font-size:   18px;
  line-height: var(--nlign-body-line-height);
  color:       var(--nlign-color-dust-grey);
  max-width:   720px;
  margin:      0;
}

.nlign-partners-hero__cta {
  display:          inline-block;
  align-self:       flex-start;
  background-color: var(--nlign-color-orange);
  color:            #000;
  font-family:      var(--nlign-nav-font-family);
  font-weight:      var(--nlign-nav-font-weight);
  font-size:        14px;
  letter-spacing:   1px;
  text-transform:   uppercase;
  text-decoration:  none;
  padding:          14px 32px;
  transition:       background-color var(--nlign-transition);
}

.nlign-partners-hero__cta:hover {
  background-color: #d43a14;
  color:            #000;
}


/* =============================================================
   2. PARTNERS LIST — 2-column grid
   ============================================================= */

.nlign-partners-list {
  background: #0E0E0E;
  padding:    var(--nlign-section-padding-y) 0;
  width:      100%;
}

.nlign-partners-list__heading {
  font-family: var(--nlign-h1-font-family);
  font-weight: 700;
  font-size:   64px;
  line-height: 56px;
  color:       var(--nlign-color-dust-grey);
  margin:      0 0 56px 0;
}

.nlign-partners-list__grid {
  display:               grid;
  grid-template-columns: repeat(2, 1fr);
  gap:                   48px;
}

.nlign-partners-list__item {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  text-align:     center;
  gap:            20px;
  padding:        40px;
  border:         1px solid rgba(255, 255, 255, 0.08);
  background:     rgba(255, 255, 255, 0.02);
}

.nlign-partners-list__logo-wrap {
  display:         flex;
  align-items:     center;
  justify-content: center;
  height:          60px;
}

.nlign-partners-list__logo {
  display:    block;
  max-height: 60px;
  width:      auto;
  max-width:  200px;
  object-fit: contain;
}

.nlign-partners-list__name {
  font-family: var(--nlign-subhead-font-family);
  font-weight: 700;
  font-size:   20px;
  line-height: 30px;
  color: var(--nlign-color-orange);
  margin:      0;
}

.nlign-partners-list__desc {
  font-family: var(--nlign-body-font-family);
  font-weight: var(--nlign-body-font-weight);
  font-size:   var(--nlign-body-font-size);
  line-height: var(--nlign-body-line-height);
  color:       var(--nlign-color-dust-grey);
  margin:      0;
}


/* =============================================================
   3. ASSOCIATIONS — 3-column grid
   ============================================================= */

.nlign-partners-assoc {
  background: var(--nlign-color-onyx-800);
  padding:    var(--nlign-section-padding-y) 0;
  width:      100%;
}

.nlign-partners-assoc__heading {
  font-family: var(--nlign-h1-font-family);
  font-weight: 700;
  font-size:   48px;
  line-height: 56px;
  color:       var(--nlign-color-dust-grey);
  margin:      0 0 56px 0;
}

.nlign-partners--accent {
  color: var(--nlign-color-orange);
}

.nlign-partners-assoc__grid {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   40px;
}

.nlign-partners-assoc__item {
  display:        flex;
  flex-direction: column;
  gap:            20px;
  padding:        36px;
  border:         1px solid rgba(255, 255, 255, 0.08);
  background:     rgba(255, 255, 255, 0.02);
}

.nlign-partners-assoc__logo-wrap {
  display:     flex;
  align-items: center;
  height:      56px;
}

.nlign-partners-assoc__logo {
  display:    block;
  max-height: 56px;
  width:      auto;
  max-width:  160px;
  object-fit: contain;
}

.nlign-partners-assoc__name {
  font-family: var(--nlign-subhead-font-family);
  font-weight: 700;
  font-size:   20px;
  line-height: 28px;
  color:       var(--nlign-color-orange);
  margin:      0;
}

.nlign-partners-assoc__desc {
  font-family: var(--nlign-body-font-family);
  font-weight: var(--nlign-body-font-weight);
  font-size:   var(--nlign-body-font-size);
  line-height: var(--nlign-body-line-height);
  color:       var(--nlign-color-dust-grey);
  margin:      0;
}


/* =============================================================
   4. PARTNER CTA
   ============================================================= */

.nlign-partners-cta {
  background: #0E0E0E;
  padding:    var(--nlign-section-padding-y) 0;
  width:      100%;
}

.nlign-partners-cta__container {
  display:         flex;
  flex-direction:  row;
  align-items:     center;
  justify-content: space-between;
  gap:             48px;
  text-align:      left;
}

.nlign-partners-cta__heading {
  font-family: var(--nlign-h1-font-family);
  font-weight: 700;
  font-size:   48px;
  line-height: 56px;
  color:       var(--nlign-color-dust-grey);
  max-width:   800px;
  margin:      0;
}

.nlign-partners-cta__action {
  flex-shrink: 0;
}

/* .nlign-partners-cta__btn replaced by nlign-btn--solid */


/* =============================================================
   5. CONTACT SECTION OVERRIDES
   Override contact.css 96px sizes — use 20px on this page
   ============================================================= */

.nlign-partners-page .nlign-contact__label {
  font-size:   30px;
  line-height: 38px;
}

.nlign-partners-page .nlign-contact__heading {
  font-size:   20px;
  line-height: 28px;
}

/* Social icons row */
.nlign-contact__social {
  display:   flex;
  gap:       16px;
  margin-top: 8px;
}

.nlign-contact__social-link {
  display:         flex;
  align-items:     center;
  justify-content: center;
  width:           40px;
  height:          40px;
  background:      rgba(255, 255, 255, 0.08);
  border-radius:   50%;
  transition:      background var(--nlign-transition);
  color:           var(--nlign-color-dust-grey);
  text-decoration: none;
}

.nlign-contact__social-link:hover {
  background: var(--nlign-color-orange);
  color:      #000;
}

.nlign-contact__social-link svg {
  width:  18px;
  height: 18px;
  fill:   currentColor;
}


/* =============================================================
   RESPONSIVE
   ============================================================= */

/* ── 1024px and below ─────────────────────────────────────── */
@media (max-width: 1024px) {
  .nlign-partners-list__grid { grid-template-columns: 1fr; }
}

/* ── Tablet ≤ 991px ─────────────────────────────────────── */
@media (max-width: 991.98px) {
  .nlign-partners-list__heading,
  .nlign-partners-assoc__heading,
  .nlign-partners-cta__heading {
    font-size:   38px;
    line-height: 46px;
  }

  .nlign-partners-assoc__grid { grid-template-columns: repeat(2, 1fr); }

  .nlign-partners-page .nlign-contact__label { font-size: 26px; line-height: 34px; }
}

/* ── Mobile ≤ 767px ─────────────────────────────────────── */
@media (max-width: 767px) {
  .nlign-partners-hero__container,
  .nlign-partners-list__container,
  .nlign-partners-assoc__container,
  .nlign-partners-cta__container {
    padding: 0 24px;
  }

  .nlign-partners-hero,
  .nlign-partners-list,
  .nlign-partners-assoc,
  .nlign-partners-cta {
    padding: 60px 0;
  }

  .nlign-partners-hero__heading {
    font-size:   36px;
    line-height: 42px;
  }

  .nlign-partners-list__heading,
  .nlign-partners-assoc__heading,
  .nlign-partners-cta__heading {
    font-size:   30px;
    line-height: 38px;
  }

  /* Stack CTA row on mobile */
  .nlign-partners-cta__container {
    flex-direction: column;
    align-items:    flex-start;
    gap:            32px;
  }

  .nlign-partners-list__grid  { grid-template-columns: 1fr; }
  .nlign-partners-assoc__grid { grid-template-columns: 1fr; }

  .nlign-partners-list__item,
  .nlign-partners-assoc__item { padding: 24px; }

  .nlign-partners-page .nlign-contact__label { font-size: 22px; line-height: 30px; }
}
