/* Shared editorial bullets — 2026-10-07. No type, marker or copy changes.
 * Contract: ../docs/body-list-standard.md
 * Existing prose adapters remain here, never in page-specific CSS.
 */
:root {
  --ssm-body-list-item-gap: 8px;
}

/* Only ordinary unordered lists in reading content (or the explicit role).
 * Utility/component lists and any lists inside menus, cards or tables opt out.
 */
body.ssm-museum-site main :is(
  ul.ssm-body-list,
  :is(.ssm-prose, .ssm-body-copy, .entry-content, .policy-content,
      .program-guide-story, .program-story__body, .ssm-preserved-content)
    ul:where(:not([class]), [class=""], .wp-block-list, .ssm-body-list, .program-guide-resources)
):not(:where(nav ul, aside ul, table ul, [role="menu"] ul,
  .ssm-card ul, [class*="-card"] ul, [class*="__card"] ul, .visit-fact ul,
  .ssm-list--component, .ssm-list--component ul,
  .ssm-list--divided, .ssm-list--divided ul,
  [data-ssm-list-style="component"] ul, [data-ssm-list-style="component"],
  [data-ssm-list-style="divided"] ul, [data-ssm-list-style="divided"])) > li {
  margin-block: 0;
}

body.ssm-museum-site main :is(
  ul.ssm-body-list,
  :is(.ssm-prose, .ssm-body-copy, .entry-content, .policy-content,
      .program-guide-story, .program-story__body, .ssm-preserved-content)
    ul:where(:not([class]), [class=""], .wp-block-list, .ssm-body-list, .program-guide-resources)
):not(:where(nav ul, aside ul, table ul, [role="menu"] ul,
  .ssm-card ul, [class*="-card"] ul, [class*="__card"] ul, .visit-fact ul,
  .ssm-list--component, .ssm-list--component ul,
  .ssm-list--divided, .ssm-list--divided ul,
  [data-ssm-list-style="component"] ul, [data-ssm-list-style="component"],
  [data-ssm-list-style="divided"] ul, [data-ssm-list-style="divided"])) > li + li {
  margin-block-start: var(--ssm-body-list-item-gap);
}

/* Trim paragraph/nested-list margins only at item edges. Preserve margins
 * between paragraphs and before/after internal lists; never reset descendants.
 */
body.ssm-museum-site main :is(
  ul.ssm-body-list,
  :is(.ssm-prose, .ssm-body-copy, .entry-content, .policy-content,
      .program-guide-story, .program-story__body, .ssm-preserved-content)
    ul:where(:not([class]), [class=""], .wp-block-list, .ssm-body-list, .program-guide-resources)
):not(:where(nav ul, aside ul, table ul, [role="menu"] ul,
  .ssm-card ul, [class*="-card"] ul, [class*="__card"] ul, .visit-fact ul,
  .ssm-list--component, .ssm-list--component ul,
  .ssm-list--divided, .ssm-list--divided ul,
  [data-ssm-list-style="component"] ul, [data-ssm-list-style="component"],
  [data-ssm-list-style="divided"] ul, [data-ssm-list-style="divided"])) > li > :is(p, ul, ol):first-child {
  margin-block-start: 0;
}

body.ssm-museum-site main :is(
  ul.ssm-body-list,
  :is(.ssm-prose, .ssm-body-copy, .entry-content, .policy-content,
      .program-guide-story, .program-story__body, .ssm-preserved-content)
    ul:where(:not([class]), [class=""], .wp-block-list, .ssm-body-list, .program-guide-resources)
):not(:where(nav ul, aside ul, table ul, [role="menu"] ul,
  .ssm-card ul, [class*="-card"] ul, [class*="__card"] ul, .visit-fact ul,
  .ssm-list--component, .ssm-list--component ul,
  .ssm-list--divided, .ssm-list--divided ul,
  [data-ssm-list-style="component"] ul, [data-ssm-list-style="component"],
  [data-ssm-list-style="divided"] ul, [data-ssm-list-style="divided"])) > li > :is(p, ul, ol):last-child {
  margin-block-end: 0;
}
