/* Documentary photographs and a readable four-chapter institutional story. */
.story-section { position: relative; width: 100%; background: #fff; border-top: 1px solid rgb(0 59 109 / 10%); }
.story-nav { display: flex; flex-wrap: wrap; gap: .5rem 1rem; width: min(72rem,calc(100% - 6rem)); margin: 0 auto; padding-top: 2rem; }
.story-nav a { display: flex; flex: 1 1 3.5rem; min-width: max-content; align-items: center; justify-content: center; min-height: 48px; padding: .75rem .5rem; border-bottom: 1px solid rgb(0 59 109 / 20%); color: #365e80; font-size: .875rem; line-height: 1.5; }
.story-nav a:hover, .story-nav a:focus-visible { color: #003b6d; border-color: #80641c; }
.story-nav a[aria-current="location"] { color: #80641c; border-bottom: 2px solid #80641c; font-weight: 700; }
#manifesto-track { display: flex; flex-direction: column; width: 100%; }
.story-panel { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 100%; padding: 5rem 3rem; background: #fff; scroll-margin-top: calc(var(--site-header-height,88px) + 1rem); }
.story-panel-alternate, .story-manifesto { background: #f5f7fa; }
.story-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); align-items: center; gap: clamp(3rem,6vw,6rem); width: 100%; max-width: 72rem; }
.story-copy { min-width: 0; }
.story-copy h3 { color: #005da9; font-size: clamp(2.5rem,4.2vw,3.75rem); font-weight: 700; line-height: 1.06; letter-spacing: -.04em; text-wrap: balance; overflow-wrap: anywhere; hyphens: auto; }
.story-copy p { max-width: 48ch; margin-top: 1.5rem; color: #365e80; font-size: 1rem; line-height: 1.75; overflow-wrap: anywhere; }
.story-copy strong { color: #003b6d; font-weight: 700; }
.story-media { width: 100%; margin: 0; aspect-ratio: 16 / 9; overflow: hidden; background: #f5f7fa; }
.story-media img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.story-panel-alternate .story-copy { grid-column: 2; grid-row: 1; }
.story-panel-alternate .story-media { grid-column: 1; grid-row: 1; }
.story-services { display: flex; flex-wrap: wrap; gap: 0 1.5rem; margin-top: 1.5rem; color: #003b6d; font-size: .875rem; line-height: 1.6; }
.story-services li { flex: 1 1 calc(50% - .75rem); min-width: min(100%,9rem); padding-block: .75rem; border-top: 1px solid rgb(0 59 109 / 15%); }
.story-manifesto { padding-block: 6rem; text-align: center; }
.story-manifesto-inner { width: 100%; max-width: 64rem; }
.story-manifesto h3 { color: #005da9; font-size: clamp(2.5rem,5vw,4.5rem); font-weight: 700; line-height: 1.12; letter-spacing: -.04em; text-wrap: balance; overflow-wrap: anywhere; hyphens: auto; }
.story-manifesto em { font-family: Georgia,serif; font-style: italic; }
.story-manifesto blockquote footer { max-width: 40rem; margin: 2rem auto 0; padding-top: 1.5rem; border-top: 1px solid rgb(0 59 109 / 15%); color: #365e80; font-size: .875rem; line-height: 1.6; }
.story-next { display: inline-flex; align-items: center; justify-content: center; gap: 1rem; min-height: 48px; margin-top: 2rem; color: #003b6d; font-size: .875rem; font-weight: 600; }
.story-next:hover, .story-next:focus-visible { color: #80641c; }
.story-next:hover span, .story-next:focus-visible span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.story-next svg { flex-shrink: 0; }
.story-section.is-horizontal { height: 100svh; overflow: clip; }
.story-section.is-horizontal #manifesto-track { flex-direction: row; width: max-content; height: 100%; }
.story-section.is-horizontal .story-panel { width: 100vw; height: 100%; min-height: 0; padding-top: calc(var(--site-header-height,88px) + 3rem); padding-bottom: 8rem; }
.story-section.is-horizontal .story-nav { position: absolute; bottom: 1.75rem; left: 50%; z-index: 2; transform: translateX(-50%); padding-top: 0; }
@media (max-width: 63.999rem) {
  .story-nav { width: calc(100% - 4rem); }
  html:not(.has-js) .story-panel { scroll-margin-top: 12rem; }
  .story-panel { padding: 4rem 2rem; }
  .story-layout { gap: 2.5rem; }
}
@media (max-width: 47.999rem) {
  .story-nav { width: calc(100% - 3rem); gap: .5rem; padding-top: 1.5rem; }
  .story-nav a { padding-inline: .25rem; font-size: .8125rem; }
  .story-panel { padding: 3rem 1.5rem; }
  .story-layout { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .story-copy h3 { font-size: clamp(2.25rem,8vw,3rem); line-height: 1.1; }
  .story-copy p { font-size: .9375rem; }
  .story-panel-alternate .story-copy, .story-panel-alternate .story-media { grid-column: auto; grid-row: auto; }
  .story-manifesto { padding-block: 4rem; }
  .story-manifesto h3 { font-size: clamp(2.125rem,7.8vw,3rem); }
}
