/* Additions for project articles and collections; original shared styles are retained. */
.content-page .trips-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.content-page .trip-card .trip-title { font-size: 1.5rem; line-height: 1.2; }
.content-page .section-header { flex-wrap: wrap; gap: .75rem 1.5rem; }
.content-page a:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; }
.content-page .trip-card:focus-visible { outline-offset: -3px; }
.article-body { max-width: 840px; margin: 0 auto; padding: 3rem; color: var(--gray-light); font-size: .9rem; line-height: 1.95; overflow-wrap: anywhere; }
.article-body section + section, .article-body aside + section { margin-top: 2.75rem; }
.article-body h2 { font-family: 'DM Serif Display', serif; color: var(--white); font-size: 1.8rem; font-weight: 400; line-height: 1.25; margin-bottom: 1rem; }
.article-body h3 { font-family: 'DM Serif Display', serif; color: var(--white); font-size: 1.3rem; font-weight: 400; line-height: 1.4; margin: 1.75rem 0 .7rem; }
.article-body p + p { margin-top: 1rem; }
.article-body ul { padding-left: 1.25rem; margin: 1rem 0; }
.article-body li + li { margin-top: .65rem; }
.article-body strong { color: var(--white); font-weight: 500; }
.article-body code { font-family: inherit; color: var(--green); background: var(--card); padding: .1em .3em; }
.article-body .stack-strip { margin: 0 0 2.75rem; }
.article-body .stack-tag { padding: .65rem 1rem; }
.content-note { padding: 1.5rem; border: 1px solid var(--border); border-left: 2px solid var(--green); background: var(--card); margin: 2rem 0; }
.article-body .content-note h2 { font-size: 1.3rem; }
.article-return { margin-top: 3rem; }
.content-placeholder { color: var(--gray-light); text-align: center; padding: 2rem; border: 1px dashed var(--green-dim); }
.content-placeholder span { opacity: .65; }
.school-section { padding: 3rem; scroll-margin-top: 8rem; }
.school-section + .school-section { border-top: 1px solid var(--border); }
.school-section .years-grid { margin: 0; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.school-section h2 { scroll-margin-top: 8rem; }
.collection-intro { font-size: .8rem; color: var(--gray); line-height: 1.8; margin-bottom: 2rem; }
.collection-intro a { color: var(--green); }
@media (max-width: 768px) {
  .article-body, .school-section { padding: 2rem 1.5rem; }
}
@media (max-width: 480px) {
  .content-page nav { flex-wrap: wrap; gap: .65rem; padding: 1rem 1.5rem; }
  .content-page .nav-links { gap: 1.25rem; }
  .content-page .nav-links a { font-size: .65rem; }
  .content-page .photo-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .content-page { scroll-behavior: auto; }
  .content-page *, .content-page *::before { animation: none !important; transition: none !important; }
  .content-page .trip-card, .content-page .year-block { opacity: 1; transform: none; }
}

/* Editorial figures: original generated assets, proportional on every screen. */
.article-figure { margin: 2rem 0; }
.article-figure img { display: block; width: 100%; height: auto; border: 1px solid var(--border); }
.article-figure figcaption { font-size: .7rem; line-height: 1.7; color: var(--gray-light); margin-top: .75rem; }
.article-body a:not(.back-link) { color: var(--green); text-underline-offset: .2em; }
