/* Shared static publishing components. */
.json-preview { width: var(--content); margin: 1rem auto; }
.json-preview summary, .content-transcript summary { min-height: 44px; padding-block: .65rem; cursor: pointer; font-weight: 800; }
.json-preview input { display: block; max-width: 100%; padding-block: .75rem; }
.json-preview p, .json-preview label { overflow-wrap: anywhere; }
.content-player, .content-attachments, .content-relations { max-width: 70ch; margin: 2rem auto; padding: clamp(1rem,3vw,2rem); background: var(--jrac-mist); border-radius: var(--radius-md); overflow-wrap: anywhere; }
.content-player h2, .content-attachments h2 { font-size: clamp(1.45rem,3vw,2.1rem); }
.recording-jump { margin-top: 1.25rem; }
.content-player { scroll-margin-top: 110px; }
.content-player audio, .content-player video { display: block; width: 100%; max-width: 100%; margin-block: 1rem; }
.content-player video { max-height: 75vh; background: var(--jrac-dark); }
.content-player .text-link, .content-attachments .text-link, .content-relations .text-link { display: block; min-height: 44px; padding-block: .6rem; }
.content-transcript { margin-top: 1rem; border-top: 1px solid var(--jrac-line); }
.content-transcript p { white-space: pre-line; line-height: 1.8; }
.content-scope { margin-bottom: 1.5rem; }
.content-scope p { margin-bottom: .4rem; }
.club-notices { display: grid; gap: 1rem; padding-block: 1.5rem; }
.club-notice { background: var(--jrac-mist); border-left: 4px solid var(--jrac-lime); border-radius: var(--radius-sm); padding: 1.25rem; }
.club-notice h2 { font-size: clamp(1.5rem,3vw,2rem); }
.club-notice p:last-child { margin: 0; }
.leader-profile-photos { display: grid; gap: 1rem; margin-top: 1.5rem; }
.leader-profile-photos figure { margin: 0; }
.leader-profile-photos img { width: 100%; height: auto; border-radius: var(--radius-sm); }
.leader-profile-photos figcaption { font-size: .85rem; }
.album-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 1.25rem; }
.album-card { min-width: 0; border: 1px solid var(--jrac-line); border-radius: var(--radius-md); overflow: hidden; background: white; color: var(--jrac-ink); }
.album-card__link { display: block; height: 100%; color: inherit; text-decoration: none; }
.album-card__link:hover h3 { text-decoration: underline; text-decoration-color: var(--jrac-lime); text-underline-offset: .2em; }
.album-card__image { display: grid; aspect-ratio: 4 / 3; overflow: hidden; background: var(--jrac-dark); }
.album-card__image img { width: 100%; height: 100%; object-fit: cover; }
.album-card__fallback { display: grid; place-items: center; color: var(--jrac-lime); font-family: var(--font-display); font-size: 4rem; }
.album-card__body { padding: 1.25rem; }
.album-card__body h3 { font-size: clamp(1.4rem,2.5vw,2rem); }
.album-card__body .eyebrow { color: var(--jrac-lime-text); }
.album-card__body .text-link { display: block; min-height: 44px; padding-block: .65rem; }
.album-title { font-size: clamp(2rem,5vw,4rem); overflow-wrap: anywhere; }
.album-photos { columns: 1; column-gap: 1.25rem; margin-top: 2rem; }
.album-photos figure { break-inside: avoid; margin: 0 0 1.25rem; }
.album-photos figcaption { margin-top: .5rem; font-size: .9rem; }
.album-photo { display: block; width: 100%; padding: 0; border: 0; background: var(--jrac-mist); border-radius: var(--radius-sm); overflow: hidden; cursor: zoom-in; }
.album-photo img { width: 100%; height: auto; }
.photo-dialog { width: min(1200px,calc(100% - 1rem)); max-height: 94svh; padding: 1rem; border: 1px solid #46533f; border-radius: var(--radius-md); background: var(--jrac-dark); color: white; }
.photo-dialog::backdrop { background: #050805e8; }
.photo-dialog__bar, .photo-dialog__actions { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.photo-dialog__bar p { margin: 0; }
.photo-dialog figure { margin: 1rem 0; }
.photo-dialog img { display: block; max-width: 100%; max-height: 64svh; width: auto; height: auto; margin: auto; object-fit: contain; }
.photo-dialog figcaption { margin-top: .75rem; }
.photo-dialog__actions .button { min-width: 0; min-height: 44px; }
.event-coverage { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin-top: 1rem; border-top: 1px solid var(--jrac-line); padding-top: .5rem; }
.event-coverage a { min-height: 44px; padding-block: .6rem; }
[data-training] > *, [data-membership] > *, [data-team] > * { min-width: 0; }
.membership-card .button { max-width: 100%; white-space: normal; text-align: center; }
.membership-card, .contact-card, .contact-list { overflow-wrap: anywhere; }
.two-column-copy > * { min-width: 0; }
.two-column-copy h2 { overflow-wrap: anywhere; }
[data-club-error] { grid-column: 1 / -1; }
@media (min-width: 620px) {
  .album-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .album-photos { columns: 2; }
  .article-controls { grid-template-columns: minmax(0,2fr) minmax(0,1fr) minmax(0,1fr); }
}
@media (min-width: 1024px) {
  .album-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .album-photos { columns: 3; }
}
@media print { .json-preview, .photo-dialog, .content-player audio, .content-player video { display: none; } }
