/* ═══════════════════════════════════════════════
   Partners & Sponsors — /partners/
   Logo primitives (.partner-logo*) live in main.css; markup comes from partners.js
   ═══════════════════════════════════════════════ */

/* ── HERO ── */
.pt-hero {
  position: relative;
  min-height: 460px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 160px 40px 88px;
  background:
    url('https://becmedia.b-cdn.net/bec-website/people-background-image.webp')
    center top / auto repeat;
  overflow: hidden;
}

.pt-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(var(--cream-rgb), 0.87);
  z-index: 1;
}

.pt-hero-content {
  position: relative;
  z-index: 2;
  max-width: 900px;
}

.pt-hero h1 {
  font-size: clamp(2.8rem, 5.5vw, 4.2rem);
  color: var(--ink);
  margin-bottom: 20px;
}

.pt-hero-sub {
  color: var(--ink);
  font-size: clamp(1.15rem, 1.6vw, 1.3rem);
  max-width: 520px;
  margin: 0 auto;
  line-height: 1.7;
}

/* ── SECTIONS ── */
.pt-section {
  padding: 80px 0 0;
  text-align: center;
  position: relative;
  z-index: 1;
}

.pt-section-partners { padding-bottom: 80px; }

.pt-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 32px;
}

/* Sponsors — warm band, stacked */
.pt-sponsor {
  background: var(--sponsor);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 40px;
}

.pt-sponsor-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 32px;
}

/* Partner wall — every logo on its own white tile so JPEGs with a white
   background sit the same as transparent PNGs */
.pt-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
}

.pt-grid .partner-logo {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.pt-grid .partner-logo:hover {
  box-shadow: 0 16px 36px -22px rgba(var(--ink-rgb), 0.3);
}

.pt-grid .partner-logo-link { width: 100%; height: 100%; }
.pt-grid .partner-logo-img { max-height: 76px; max-width: 100%; }

/* ── CTA ── dark card: copy left, contact right */
.pt-cta-wrap {
  padding: 0 32px 100px;
  position: relative;
  z-index: 1;
}

.pt-cta {
  max-width: 1116px;   /* = .pt-inner content width, so the card lines up with the grid */
  margin: 0 auto;
  background: var(--ink);
  border-radius: 18px;
  padding: 56px 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  box-shadow: 0 24px 60px -28px rgba(var(--ink-rgb), 0.45);
}

.pt-cta-copy { max-width: 720px; }

.pt-cta .section-label { color: var(--red-light); margin-bottom: 14px; }

.pt-cta h2 {
  color: var(--white);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.15;
  margin-bottom: 14px;
}

.pt-cta p {
  color: rgba(var(--cream-rgb), 0.65);
  font-size: 1rem;
  line-height: 1.7;
  margin: 0;
}

.pt-cta-btn { flex: none; }

/* ── RESPONSIVE ── */
@media (max-width: 1100px) {
  .pt-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 900px) {
  .pt-hero { min-height: auto; padding: 120px 24px 56px; }
  .pt-section { padding-top: 56px; }
  .pt-section-partners { padding-bottom: 48px; }
  .pt-inner { padding: 0 16px; }
  .pt-sponsor { padding: 28px 20px; border-radius: 14px; }
  .pt-sponsor-row { flex-direction: column; gap: 8px; }
  .pt-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .pt-grid .partner-logo { height: 96px; padding: 12px; }
  .pt-grid .partner-logo-img { max-height: 56px; }
  .pt-cta-wrap { padding: 0 16px 64px; }
  .pt-cta { flex-direction: column; text-align: center; padding: 40px 24px; gap: 28px; border-radius: 14px; }
}
