/* Campus pages: a photo-led opener, the edition's own copy, the feature list, quotes. */
.campus-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); gap: 48px; align-items: center; margin-bottom: 64px; }
.campus-hero h1 { font-size: clamp(56px, 8vw, 104px); line-height: .94; }
.campus-place { margin-top: 12px; font-size: 15px; font-weight: 700; color: var(--muted); }
.campus-lede { margin-top: 22px; max-width: 40ch; font-size: 20px; line-height: 1.5; }
.campus-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.campus-actions .button { gap: 12px; }
.campus-photo { position: relative; margin: 0; }
.campus-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; box-shadow: 8px 8px 0 rgb(8 18 27 / .16); }
.campus-photo figcaption { position: absolute; top: 0; left: 0; padding: 8px 14px; background: var(--campus-accent); color: var(--white); font-size: 12px; font-weight: 600; }
.campus-about h2, .campus-quotes h2, .campus-others h2 { font-family: var(--display); font-size: clamp(30px, 3.6vw, 42px); line-height: 1.02; text-transform: uppercase; margin-bottom: 18px; }
.campus-prose { max-width: 66ch; font-size: 17px; line-height: 1.7; }
.campus-prose p + p { margin-top: 16px; }
.campus-features { list-style: none; padding: 0; margin: 32px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px 28px; }
.campus-features li { padding: 18px 0 0; border-top: 2px solid var(--ink); }
.campus-features strong { display: block; font-family: var(--display); font-size: 24px; line-height: 1; text-transform: uppercase; }
.campus-features span { display: block; margin-top: 8px; font-size: 14px; line-height: 1.6; color: var(--muted); }
.campus-quotes { margin-top: 64px; }
.campus-quotes ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.campus-quotes blockquote { margin: 0; padding: 20px 22px; background: var(--white); border: 1px solid var(--line); box-shadow: 6px 6px 0 rgb(8 18 27 / .12); font-size: 16px; line-height: 1.55; }
.campus-quotes blockquote footer { margin-top: 12px; font-size: 13px; font-weight: 700; }
.campus-quotes blockquote footer span { display: block; font-weight: 400; color: var(--muted); }
.campus-others { margin-top: 64px; padding-top: 28px; border-top: 1px solid var(--line); }
@media (max-width: 800px) {
  .campus-hero { grid-template-columns: 1fr; gap: 28px; margin-bottom: 48px; }
  .campus-photo { order: -1; }
  .campus-quotes, .campus-others { margin-top: 48px; }
}
@media (max-width: 600px) {
  .campus-hero h1 { font-size: clamp(48px, 15vw, 72px); }
  .campus-lede { font-size: 18px; }
  .campus-actions .button { width: 100%; justify-content: space-between; }
}
