/* Published content: training calendar, academy archive and gallery viewer. */
.training-preview { background: #e8ece5; }
.training-preview .display { margin-bottom: 40px; font-size: clamp(44px, 5.5vw, 80px); }
.training-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--ink); }
.training-card { display: grid; grid-template-columns: 70px 1fr; gap: 24px; padding: 32px 24px 20px 0; }
.training-card + .training-card { border-left: 1px solid #b9c4b8; padding-left: 24px; }
.training-card time { display: flex; flex-direction: column; font-size: 16px; text-transform: uppercase; line-height: 1.4; }
.training-card time strong { font: italic 700 68px/1 var(--display); margin: 4px 0; }
.training-card h3 { font: italic 700 34px/1.1 var(--display); margin: 12px 0 8px; }
.training-card p { font-size: 18px; line-height: 1.55; }
.training-card .training-hour { font-weight: 600; }
.training-hour span { display: block; font-size: 16px; font-weight: 400; }
.training-card .training-location { font-size: 18px; margin-top: 16px; }
.camp-feature { background: #dce5d9; display: grid; grid-template-columns: 1.1fr 1fr; gap: 7vw; align-items: center; }
.camp-photo { position: relative; min-height: 620px; height: 100%; overflow: hidden; }
.camp-photo img { width: 100%; height: 100%; position: absolute; object-fit: cover; }
.camp-photo > span { position: absolute; bottom: 0; left: 0; right: 0; background: var(--orange); padding: 22px; font-size: 16px; font-weight: 700; }
.camp-copy .display { margin: 28px 0; font-size: clamp(56px, 6.5vw, 100px); }
.camp-copy > p:not(.eyebrow) { font-size: 20px; line-height: 1.7; }
.camp-copy .camp-date { font-size: 16px!important; margin: 25px 0; }
.academy-film { background: #101a19; color: #f5f5ef; }
.academy-film .display { margin: 25px 0 35px; }
.academy-film .display em { color: #ff7037; }
.academy-film .film-disclosure { margin: 0; border: 1px solid #82928b; }
.academy-film summary { font-size: 20px; padding: 25px; min-height: 72px; }
.academy-film video { display: block; width: 100%; max-height: 78vh; background: black; }
.story-cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px; margin-top: 40px; }
.story-card-photo { display: block; aspect-ratio: 4/3; overflow: hidden; margin-bottom: 24px; }
.story-card-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.story-card:hover .story-card-photo img { transform: scale(1.025); }
.story-card time { font-size: 15px; color: var(--muted); }
.story-card h3 { font: 600 34px/1.1 var(--display); margin: 16px 0; }
.story-card h3 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.story-card p { font-size: 18px; line-height: 1.7; }
.event-strip { margin-top: 60px; padding: 30px 0; border-block: 1px solid var(--line); display: flex; gap: 40px; align-items: center; }
.event-strip > p:not(.eyebrow) { max-width: 650px; margin: 0; font-size: 18px; }
.event-strip > .text-link { margin-left: auto; flex-shrink: 0; }
.event-strip h3 { font: 600 30px/1.2 var(--display); }
.registration-slots { list-style: none; padding: 0; margin: 30px 0; }
.registration-slots li { display: grid; grid-template-columns: 100px 200px 1fr; gap: 24px; border-top: 1px solid var(--line); padding: 18px 0; font-size: 18px; }
.policy-sections { max-width: 920px; counter-reset: policy; }
.policy-sections section { padding: 26px 0; border-bottom: 1px solid var(--line); }
.policy-sections h3 { font-size: 28px; margin-bottom: 15px; }
.policy-sections p { font-size: 18px; line-height: 1.85; }
.archive-notice { background: #e5eadd; border-left: 4px solid var(--orange); padding: 20px 24px; font-size: 17px; margin: 0 0 28px; max-width: 950px; }
.news-prose a, .event-body a { text-decoration: underline; overflow-wrap: anywhere; text-underline-offset: 4px; }
.news-prose, .event-body { max-width: 850px; font-size: 18px; line-height: 1.85; }
.event-detail .event-hero { max-width: 900px; margin-inline: auto; }
.gallery-photos-title { grid-column: 1/-1; }
.gallery-photo__link { display: block; cursor: zoom-in; }
.gallery-lightbox { border: 0; background: #101a19; color: #f5f5ef; padding: 24px; width: min(1100px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); }
.gallery-lightbox::backdrop { background: #060c0bf0; }
.lightbox-toolbar, .lightbox-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.lightbox-toolbar h2 { font: 600 28px/1.2 var(--display); max-width: 75%; }
.gallery-lightbox button { background: transparent; color: inherit; border: 1px solid #76827c; min-height: 48px; padding: 10px 18px; font-size: 16px; }
.gallery-lightbox button:hover { background: #304038; }
.gallery-lightbox button:disabled { opacity: .45; cursor: default; }
.gallery-lightbox figure { margin: 20px 0; text-align: center; }
.gallery-lightbox figure img { width: 100%; max-height: 65dvh; object-fit: contain; }
.gallery-lightbox figcaption { margin-top: 14px; font-size: 17px; }
.lightbox-controls span { font-size: 16px; }
@media (max-width: 1050px) {
  .training-cards { grid-template-columns: 1fr; }
  .training-card + .training-card { border-left: 0; border-top: 1px solid #b9c4b8; padding-left: 0; }
  .training-card { grid-template-columns: 85px 1fr; }
  .training-card .training-hour span { display: inline; padding-left: 10px; }
  .camp-feature { gap: 40px; }
  .camp-photo { min-height: 520px; }
  .story-cards { gap: 22px; }
  .story-card h3 { font-size: 30px; }
  .event-strip { flex-wrap: wrap; gap: 20px; }
}
@media (max-width: 700px) {
  .camp-feature { grid-template-columns: 1fr; }
  .camp-photo { min-height: 420px; }
  .camp-copy .display { font-size: 64px; }
  .camp-copy > p:not(.eyebrow) { font-size: 18px; }
  .story-cards { grid-template-columns: 1fr; gap: 40px; }
  .story-card h3 { font-size: 36px; }
  .event-strip { display: block; }
  .event-strip > p:not(.eyebrow) { margin: 18px 0; }
  .event-strip .text-link { margin-top: 15px; }
  .registration-slots li { grid-template-columns: 80px 1fr; gap: 10px 20px; }
  .registration-slots li > span:last-child { grid-column: 2; }
  .gallery-lightbox { padding: 16px; width: calc(100vw - 16px); }
  .lightbox-toolbar h2 { font-size: 23px; }
  .gallery-lightbox button { padding: 10px 12px; }
  .lightbox-toolbar { align-items: flex-start; }
  .gallery-lightbox figure img { max-height: 58dvh; }
}
@media (prefers-reduced-motion: reduce) { .story-card-photo img { transition: none; } }

.archive-card-photo{display:block;aspect-ratio:4/3;overflow:hidden;margin-bottom:22px}.archive-card-photo img{width:100%;height:100%;object-fit:cover}.archive-card .row-title{font:600 42px/1.15 var(--display);margin-top:14px}.archive-card .muted{font-size:18px;line-height:1.8}.archive-card .eyebrow{color:#9a3815}@media(max-width:700px){.archive-card .row-title{font-size:34px}}
