/* Program: editorial chapter index, separate from the site navigation. */
.page-program { --program-header-height: 89px; --program-nav-height: 0px; }
.page-program .prose { padding-top: 28px; }
.page-program .prose > p, .page-program .prose > ul, .page-program .prose > ol { max-width: none; }
.page-program .prose [id] { scroll-margin-top: calc(var(--program-header-height) + var(--program-nav-height) + 24px); }
.page-program .program-layout { display: grid; grid-template-columns: 176px minmax(0,1fr); column-gap: 40px; align-items: start; }
.page-program .program-content { min-width: 0; }
.page-program .program-nav { position: sticky; top: calc(var(--program-header-height) + 28px); align-self: start; z-index: 24; max-height: calc(100dvh - var(--program-header-height) - 56px); overflow-y: auto; scrollbar-width: thin; margin: 0; padding: 0; }
.page-program .program-nav__summary { display: flex; align-items: center; list-style: none; padding: 0 0 18px; cursor: default; }
.page-program .program-nav__summary::-webkit-details-marker { display: none; }
.page-program .program-nav__title { flex-shrink: 0; white-space: nowrap; font-family: var(--serif); font-size: 1.15rem; font-weight: 600; color: var(--river-deep); }
.page-program .program-nav__current, .page-program .program-nav__chevron { display: none; }
.page-program .prose .program-nav__links { list-style: none; max-width: none; padding: 0; margin: 0 0 0 1px; border-left: 1px solid var(--line); }
.page-program .program-nav__links li { margin: 0; padding: 0; }
.page-program .program-nav a { position: relative; display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 10px; align-items: baseline; padding: 12px 4px 12px 14px; color: var(--muted); font-size: .78rem; line-height: 1.5; font-weight: 400; text-decoration: none; transition: color .15s ease; }
.page-program .program-nav__number { font-size: .66rem; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--muted); }
.page-program .program-nav a::before { content: ""; position: absolute; left: -1px; top: 9px; bottom: 9px; width: 2px; background: transparent; }
.page-program .program-nav a[aria-current=location] { color: var(--river-deep); font-weight: 600; }
.page-program .program-nav a[aria-current=location]::before { background: var(--river); }
.page-program .program-nav a[aria-current=location] .program-nav__number { color: var(--river); }
.page-program .program-nav a:hover { color: var(--river); }
.page-program .program-nav a:focus-visible, .page-program .program-nav__summary:focus-visible { outline: 2px solid var(--river); outline-offset: -2px; }

@media(max-width:1199px) {
  .page-program { --program-nav-height: 56px; }
  .page-program .program-layout { display: block; }
  .page-program .program-nav { top: var(--program-header-height); max-height: none; overflow: visible; margin-bottom: 32px; background: var(--paper); border-block: 1px solid var(--line); }
  .page-program .program-nav__summary { min-height: 54px; padding: 12px 8px; gap: 18px; cursor: pointer; }
  .page-program .program-nav__title { font-family: var(--sans); font-size: .82rem; }
  .page-program .program-nav__current { display: block; flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .78rem; color: var(--muted); }
  .page-program .program-nav__chevron { display: block; flex: 0 0 16px; margin-left: auto; color: var(--river); }
  .page-program .program-nav__disclosure[open] .program-nav__chevron { transform: rotate(180deg); }
  .page-program .prose .program-nav__links { position: absolute; top: 100%; left: 0; right: 0; max-height: min(400px,calc(100dvh - var(--program-header-height) - 80px)); overflow-y: auto; margin: 0; padding: 10px 16px; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 12px 20px -15px #07384955; }
  .page-program .program-nav a { padding-block: 11px; font-size: .84rem; }
  .page-program .program-nav__summary:focus-visible { outline-offset: 2px; }
}

.page-program .program-intro { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap: var(--column-gap); align-items: start; padding-bottom: 40px; }
.page-program .program-intro__copy { min-width: 0; }
.page-program .program-intro h2 { margin: 0 0 18px; padding: 0; border: 0; font-size: 1.65rem; letter-spacing: -.025em; }
.page-program .program-intro p { margin: 0 0 18px; }
.page-program .program-intro p:last-child { margin-bottom: 0; }
.page-program .program-at-a-glance { min-width: 0; padding: 24px 28px; background: white; border: 1px solid var(--line); border-radius: 4px; }
.page-program .program-kicker { margin: 0 0 12px; color: var(--river); font-family: var(--sans); font-size: .68rem; font-weight: 700; letter-spacing: .1em; line-height: 1.6; text-transform: uppercase; }
.page-program .program-at-a-glance dl { margin: 0 0 18px; }
.page-program .program-at-a-glance dl > div { display: grid; grid-template-columns: 80px minmax(0,1fr); gap: 14px; padding: 8px 0; }
.page-program .program-at-a-glance dt { font-size: .83rem; color: var(--muted); }
.page-program .program-at-a-glance dd { margin: 0; font-size: .9rem; font-weight: 600; line-height: 1.55; }
.page-program .program-action { display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 600; text-underline-offset: 5px; }
.page-program .program-action span { white-space: nowrap; }
/* Match the homepage document download, with colors for the light panel. */
.page-program .announcement-download { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; color: var(--river); font-size: .88rem; font-weight: 650; line-height: 1.5; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.page-program .announcement-download__label { min-width: 0; }
.page-program .announcement-download__type { border-color: #09688655; }
.page-program .announcement-download:hover { color: var(--river-deep); }

.page-program .program-section { min-width: 0; margin: 0; padding: 48px 0; border-top: 1px solid var(--line); }
.page-program .program-section > h2 { margin: 0 0 30px; padding: 0; border: 0; font-size: clamp(1.65rem,2.6vw,2.25rem); }
.page-program .program-section p { max-width: none; }
.page-program .program-section p:last-child { margin-bottom: 0; }
.page-program .program-theme { padding: 28px 32px; background: #eaf0ec; border-left: 3px solid var(--river); }
.page-program .program-theme h3 { margin: 0; font-size: clamp(1.5rem,2.25vw,2rem); line-height: 1.3; letter-spacing: -.02em; }
.page-program .program-theme > p:last-child { margin: 0; font-size: .94rem; }
.page-program .program-section > h3 { margin: 34px 0 20px; font-size: 1.35rem; }
.page-program .prose .program-topics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 36px; list-style: none; margin: 0; padding: 0; }
.page-program .program-topics li { display: flex; align-items: start; gap: 18px; min-width: 0; padding: 20px 0; border-top: 1px solid var(--line); }
.page-program .program-topic__number { flex: 0 0 30px; color: var(--river); font-size: .82rem; font-weight: 700; line-height: 1.8; font-variant-numeric: tabular-nums; }
.page-program .program-topics h4 { font-family: var(--sans); font-size: .98rem; font-weight: 650; margin: 0 0 8px; line-height: 1.45; }
.page-program .program-topics p { font-size: .89rem; line-height: 1.7; color: var(--muted); margin: 0; }
.page-program .prose .program-objectives { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 36px; list-style: none; margin: 0; padding: 0; }
.page-program .program-objectives li { position: relative; padding: 0 0 0 20px; font-size: .92rem; line-height: 1.75; }
.page-program .program-objectives li::before { content: ""; position: absolute; left: 0; top: .68em; width: 6px; height: 6px; background: var(--river); border-radius: 50%; }
.page-program .location-layout { grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: var(--column-gap); margin: 0; }
.page-program .city-profile h3 { font-size: 1.45rem; }
.page-program .city-profile p { font-size: .94rem; line-height: 1.8; }
.page-program .program-information { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.5fr); gap: 28px; margin-top: 30px; padding: 20px 24px; background: #eaf0ec; }
.page-program .program-information h3 { font-family: var(--sans); font-size: .91rem; line-height: 1.6; margin: 0; }
.page-program .program-information p { font-size: .9rem; margin: 0; }
.page-program .program-feature { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--column-gap); align-items: center; }
.page-program .program-feature__copy { min-width: 0; }
.page-program .program-feature h3 { margin: 0 0 18px; font-size: 1.55rem; }
.page-program .program-feature p:not(.program-kicker) { font-size: .96rem; line-height: 1.75; margin-bottom: 18px; }
.page-program .program-figure { min-width: 0; margin: 0; }
.page-program .program-figure img { display: block; width: 100%; height: auto; margin: 0; border-radius: 3px; box-shadow: none; }
.page-program .program-figure figcaption { margin: 10px 0 0; font-size: .76rem; line-height: 1.5; color: var(--muted); }
.page-program .program-feature--host { align-items: center; }
.page-program .program-host__copy { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--column-gap); margin-top: 30px; }
.page-program .program-host__copy > div { border-top: 1px solid var(--line); padding-top: 22px; min-width: 0; }
.page-program .program-host__copy h3 { margin: 0 0 16px; font-size: 1.3rem; }
.page-program .program-host__copy p { font-size: .94rem; line-height: 1.8; }
@media(max-width:1100px) {
  .page-program .location-layout { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); }
}
@media(max-width:900px) {
  .page-program .program-intro { grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); gap: 24px; }
  .page-program .program-at-a-glance { padding: 22px; }
  .page-program .program-at-a-glance dl > div { grid-template-columns: 1fr; gap: 3px; padding-block: 5px; }
  .page-program .program-feature, .page-program .location-layout { grid-template-columns: 1fr; gap: 28px; }
  .page-program .location-layout .announcement-figure--map { width: min(100%,600px); }
  .page-program .program-feature__copy { order: -1; }
}
@media(max-width:700px) {
  .page-program .prose { padding-top: 20px; }
  .page-program .program-intro { grid-template-columns: 1fr; gap: 24px; padding-bottom: 32px; }
  .page-program .program-intro h2 { font-size: 1.5rem; }
  .page-program .program-at-a-glance dl > div { grid-template-columns: 70px minmax(0,1fr); gap: 12px; padding-block: 8px; }
  .page-program .program-section { padding-block: 36px; }
  .page-program .program-section > h2 { margin-bottom: 24px; font-size: 1.65rem; }
  .page-program .program-theme { padding: 22px; }
  .page-program .program-theme h3 { font-size: 1.4rem; }
  .page-program .prose .program-topics, .page-program .prose .program-objectives, .page-program .program-host__copy { grid-template-columns: 1fr; }
  .page-program .program-topics li { gap: 14px; padding-block: 16px; }
  .page-program .program-information { grid-template-columns: 1fr; gap: 10px; padding: 20px; }
  .page-program .program-host__copy { gap: 24px; }
}
@media(prefers-reduced-motion:reduce) {
  .page-program .program-nav a { transition: none; }
}

@media(min-width:1200px) {
  .page-program .program-intro { gap: 28px; }
  .page-program .program-at-a-glance { padding: 22px; }
  .page-program .program-at-a-glance dl > div { grid-template-columns: 68px minmax(0,1fr); gap: 10px; }
  .page-program .prose .conference-timeline__item { padding: 22px 12px; }
  .page-program .prose .conference-timeline__title { font-size: .86rem; }
}

/* One participation chapter, with shared deadlines and two complementary reading columns. */
.page-program .program-participation { position: relative; }
.page-program .program-anchor { position: absolute; top: 0; left: 0; }
.page-program .participation-deadlines { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin: 0 0 28px; padding: 24px; background: #eaf0ec; }
.page-program .participation-deadlines > div { min-width: 0; }
.page-program .participation-deadlines > div + div { border-left: 1px solid #cbd8d3; padding-left: 24px; }
.page-program .participation-deadlines dt { font-size: .78rem; color: var(--muted); }
.page-program .participation-deadlines dd { margin: 6px 0 0; font-size: 1.03rem; line-height: 1.5; font-weight: 650; color: var(--river-deep); }
.page-program .participation-layout { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--column-gap); }
.page-program .participation-panel { min-width: 0; display: flex; flex-direction: column; padding-top: 24px; border-top: 1px solid var(--line); }
.page-program .participation-panel h3 { margin: 0 0 18px; font-size: 1.3rem; }
.page-program .participation-panel p { margin: 0 0 20px; font-size: .93rem; }
.page-program .participation-panel > .program-action { margin-top: auto; padding-top: 8px; align-self: start; }
/* Contact sits outside the indexed chapters and spans the shared page width. */
.page-program .program-contact { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.5fr); gap: 40px; margin-top: 24px; padding: 40px; background: var(--river-deep); color: white; }
.page-program .program-contact h2 { padding: 0; margin: 0 0 18px; border: 0; font-size: 2rem; color: white; }
.page-program .program-contact__description { margin: 0; max-width: none; font-size: .9rem; line-height: 1.75; color: #d3e1e2; }
.page-program .program-contact__people { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; align-items: start; }
.page-program .program-contact .contact-person { padding: 20px 0 0; border: 0; border-top: 1px solid #ffffff40; }
.page-program .program-contact .contact-person h3 { margin: 0 0 16px; font-size: 1.2rem; color: white; }
.page-program .program-contact .contact-person a { color: #e5f1f2; font-size: .84rem; overflow-wrap: anywhere; }
.page-program .program-contact .contact-person a:hover { color: white; }
.page-program .program-contact .contact-person a:focus-visible { outline: 2px solid white; outline-offset: 5px; }
@media(max-width:900px) {
  .page-program .program-contact { grid-template-columns: 1fr; gap: 28px; padding: 32px; }
}
@media(max-width:700px) {
  .page-program .participation-deadlines { grid-template-columns: 1fr; gap: 16px; padding: 22px; }
  .page-program .participation-deadlines > div + div { border-left: 0; border-top: 1px solid #cbd8d3; padding: 16px 0 0; }
  .page-program .participation-layout { grid-template-columns: 1fr; gap: 28px; }
  .page-program .program-contact { margin-top: 20px; padding: 28px 24px; }
  .page-program .program-contact h2 { font-size: 1.65rem; }
  .page-program .program-contact__people { grid-template-columns: 1fr; gap: 24px; }
}
