/* Shared, static post galleries and post-linked trip previews. */
.post-gallery { margin-block: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--color-rule, #cdbda1); }
.post-gallery header p { color: var(--color-muted, #6c6254); font-size: 1rem; }
.photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.25rem; }
.photo-grid figure { margin: 0; min-width: 0; scroll-margin-top: 2rem; }
.photo-grid a { display: block; }
.photo-grid img { width: 100%; height: auto; display: block; margin: 0; }
.photo-grid figcaption { font-size: .95rem; line-height: 1.6; margin-top: .65rem; color: var(--color-muted, #6c6254); }
.photo-grid figure:only-child { grid-column: 1 / -1; }
.photo-viewer { width: min(80rem, calc(100% - 3rem)); margin: 2rem auto; overflow-wrap: anywhere; }
.photo-viewer header, .photo-viewer nav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem 2rem; }
.photo-viewer h1 { font-size: 1.6rem; margin-block: .5rem; }
.photo-viewer figure { margin: 1.5rem 0; }
.photo-viewer figure img { display: block; width: 100%; height: auto; max-height: 76vh; object-fit: contain; background: var(--color-code-bg); }
.photo-viewer figcaption { max-width: 65ch; margin: .8rem auto; text-align: center; color: var(--color-muted); }
.photo-viewer nav a { padding-block: .5rem; }
.trip-previews { width: min(var(--page-width, 78rem), calc(100% - var(--page-gutter, 3rem) * 2)); margin: 4rem auto; overflow-wrap: anywhere; }
.trip-previews header { margin-bottom: 1.5rem; }
.trip-previews h2 { margin: .5rem 0; font-size: clamp(2rem, 4vw, 3rem); }
.trip-previews .eyebrow { font-size: .8rem; letter-spacing: .08em; }
.trip-previews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.trip-previews-grid a { display: block; text-decoration: none; }
.trip-previews-grid a:hover h3 { text-decoration: underline; }
.trip-previews-grid img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.trip-previews-grid h3 { margin: .8rem 0 .4rem; font-size: 1.5rem; }
.trip-previews-grid p { font-size: .9rem; margin: 0; color: var(--muted, var(--color-muted, #6c6254)); }
@media (max-width: 700px) {
    .photo-grid, .trip-previews-grid { grid-template-columns: minmax(0, 1fr); }
    .trip-previews { width: calc(100% - 2rem); margin-block: 3rem; }
    .photo-viewer { width: calc(100% - 2rem); }
}
