/* ============================================================
   Responsive — layout breakpoints
   ============================================================ */
@media (max-width: 980px) {
  .cols-4 { grid-template-columns: repeat(2, 1fr); }
  .cols-3 { grid-template-columns: repeat(2, 1fr); }
  .bento { grid-template-columns: 1fr 1fr; }
  .stats { grid-template-columns: repeat(2, 1fr); row-gap: 2.5rem; }
  .team-row { grid-template-columns: 320px 1fr; min-height: 300px; }
  .project-grid { grid-template-columns: 1fr; }
  .project-card--wide { min-height: 420px; }
  .event-rail { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .split { grid-template-columns: 1fr; }
  .split__media { aspect-ratio: 16/10; order: -1; }
  .photo-grid { grid-template-columns: repeat(2, 1fr); }
  .photo-card, .photo-card--wide { grid-column: auto; }
}
@media (max-width: 760px) {
  /* fan collapses on smaller screens */
  .fan__card:nth-child(4), .fan__card:nth-child(5) { display: none; }
}
@media (max-width: 640px) {
  .display .serif-line,
  .display .sans-line {
    font-size: clamp(2rem, 10vw, 3rem);
    letter-spacing: 0;
    white-space: normal;
  }
  /* Hide decorative art watermark on tiles — it bleeds through text */
  .tile__art { display: none; }
  /* Force all partner logos to a consistent size on mobile */
  .logos img { height: 2rem !important; max-width: 140px !important; width: auto !important; }
  .logos { gap: 1.25rem 2rem; }
  /* Tighter section spacing on mobile */
  .section { padding-block: clamp(2.5rem, 8vw, 4rem); }
  .section-head { margin-bottom: 2rem; }
  /* Mission/Vision cards stack nicely */
  .grid.cols-2 { grid-template-columns: 1fr; }
  /* Tile min-height smaller on mobile */
  .tile { min-height: 180px; }
  /* Step cards more compact */
  .step { padding: 1.25rem; }
  /* Page hero tighter */
  .page-hero { padding-top: 7rem; padding-bottom: 2.5rem; }
  .page-hero p { max-width: 30ch; margin-inline: auto; }
  .hero {
    padding-top: clamp(8rem, 26vw, 9.25rem);
  }
  .hero__sub {
    max-width: 24ch;
    font-size: 1rem;
  }
  .hero__cta {
    align-items: center;
    flex-direction: column;
  }
  .hero__cta .btn {
    width: min(100%, 220px);
    justify-content: center;
  }
  .cols-2, .cols-3, .cols-4 { grid-template-columns: 1fr; }
  .bento { grid-template-columns: 1fr; }
  .project-card, .project-card--wide { min-height: 300px; }
  .hero__features { grid-template-columns: 1fr; gap: 1.5rem; }
  .mini { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 1.25rem; }
  .mini:first-child { border-top: 0; padding-top: 0; }
  .fan__card:nth-child(3) { display: none; }
  .fan__card { max-width: 110px; }
  .photo-grid { grid-template-columns: 1fr; }
  .photo-card, .photo-card--wide { grid-column: auto; min-height: 200px; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .team-row { grid-template-columns: 1fr; min-height: auto; direction: ltr; }
  .team-row__photo { aspect-ratio: 4/3; }
  .team-row--flip > * { direction: ltr; }
  /* Team preview — stack vertically on mobile */
  .team-preview {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .team-preview__left {
    padding: 3rem 1.5rem 2rem;
  }
  .team-splash__photos {
    position: relative;
    height: 320px;
    overflow: hidden;
  }
  .polaroid {
    width: clamp(100px, 28vw, 140px);
  }
}
@media (max-width: 420px) {
  .display .serif-line,
  .display .sans-line {
    font-size: clamp(1.9rem, 11vw, 2.55rem);
  }
  .btn { max-width: 100%; white-space: normal; justify-content: center; text-align: center; }
  .program-card, .project-card { padding: 1.25rem; }
  .project-card__index { font-size: 2.4rem; }
  .stats { grid-template-columns: 1fr; }
  .welcome-pop { padding: 1rem; }
  .team-row__body { padding: 1.5rem; }
  .team-row__name { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .welcome-pop__card,
  .welcome-pop.is-visible .welcome-pop__card {
    animation: none;
    transition: none;
    transform: none;
  }
}
