/* Scoped additions within the established Foundation visual system. */
.ubuntu-brief { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.brief-heading { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.brief-heading h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.5rem,5vw,4rem); font-weight: 500; line-height: 1.06; }
.brief-heading .lead { margin-bottom: .6rem; }
.brief-map { margin: 1.75rem 0 0; }
.brief-map a { display: block; }
.brief-map img { width: 100%; height: auto; border: 1px solid var(--line); }
.brief-map figcaption { margin-top: .65rem; color: var(--ink-soft); font-size: .85rem; }
.brief-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin: 1.2rem 0; }
.brief-actions .text-link { padding: .65rem 0; color: var(--accent-dark); text-underline-offset: .25em; }
.brief-text { max-width: 75ch; margin-top: 1.25rem; }
.brief-text summary { padding: .75rem 0; cursor: pointer; font-weight: 600; }
.brief-text > div { padding-top: .75rem; }
body.map-open { overflow: hidden; }
.map-reader { width: min(96vw, 100rem); max-width: none; max-height: 94dvh; padding: 1rem; border: 1px solid var(--line); color: var(--ink); background: var(--paper-light); }
.map-reader::backdrop { background: rgba(3,15,13,.88); }
.map-reader header, .map-reader-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; }
.map-reader header h2 { font-family: var(--serif); font-weight: 500; margin: 0; font-size: 1.7rem; }
.map-reader-tools { justify-content: flex-start; margin: .75rem 0; }
.map-reader-tools p { flex-basis: 100%; margin: 0; font-size: .85rem; }
.map-reader .button { min-height: 44px; padding: .6rem .8rem; font-size: .75rem; }
.map-reader-scroll { max-height: 65dvh; overflow: auto; border: 1px solid var(--line); overscroll-behavior: contain; }
.map-reader-scroll img { width: 100%; height: auto; max-width: none; }
.map-reader-scroll.is-zoomed img { width: max(1536px, 150%); }
.lincoln-preview { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(1.5rem,4vw,3rem); align-items: center; margin: 2.5rem 0; padding: 2.5rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lincoln-preview > a { display: block; }
.lincoln-preview img { width: 100%; height: auto; }
.lincoln-preview h2 { font-family: var(--serif); font-size: clamp(1.9rem,3vw,2.7rem); font-weight: 500; line-height: 1.12; margin-bottom: 1rem; }
.lincoln-preview .event-date { color: var(--ink-soft); font-size: .9rem; }
.lincoln-event .story-hero h1 { max-width: 22ch; font-size: clamp(2.6rem,5vw,4.6rem); }
.lincoln-event .story-hero { padding-bottom: 1rem; }
.lincoln-event .event-lead { margin: 1.5rem auto 0; padding-top: 0; }
.lincoln-event .event-lead img { width: 100%; height: auto; max-height: 42rem; object-fit: contain; background: var(--paper-deep); }
.event-gallery { padding-top: 2.5rem; }
.event-gallery h2 { margin-bottom: .75rem; font-family: var(--serif); font-size: 2.5rem; font-weight: 500; }
.event-gallery > p { max-width: 70ch; }
.event-gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 1.75rem 1.25rem; }
.event-gallery-grid figure { margin: 0; min-width: 0; }
.event-gallery-grid button { display: grid; place-items: center; width: 100%; padding: 0; min-height: 44px; border: 1px solid var(--line); background: var(--paper-deep); cursor: zoom-in; }
.event-gallery-grid img { width: 100%; height: 15rem; object-fit: contain; }
.event-gallery-grid figcaption { font-size: .85rem; color: var(--ink-soft); line-height: 1.5; margin-top: .65rem; }
.lincoln-event .gallery-header h2 { margin: 0; font: 1.2rem var(--serif); }
@media (max-width: 760px) {
  .brief-heading, .lincoln-preview { grid-template-columns: 1fr; }
  .event-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .event-gallery-grid img { height: 12rem; }
}
@media (max-width: 480px) {
  .brief-actions { display: grid; }
  .map-reader { width: 100vw; max-height: 100dvh; margin: auto 0; padding: .75rem; }
  .map-reader .button { width: auto; }
  .map-reader header { flex-wrap: nowrap; }
  .map-reader header h2 { font-size: 1.35rem; }
  .event-gallery-grid { grid-template-columns: 1fr; }
  .event-gallery-grid img { height: auto; max-height: 26rem; }
}
