/* Each reference keeps its product image and physical configuration together. */
.catalog-source { margin-block: 1.25rem; padding: 1rem; border: 1px solid var(--line, #d7ddd4); border-radius: 12px; background: var(--wash, #f5f4ee); }
.catalog-source > summary { min-height: 44px; padding-block: 8px; font-weight: 700; cursor: pointer; color: var(--ink, #263d32); }
.catalog-source__note, .catalog-source__status { font-size: .875rem; color: var(--muted, #59665e); }
.catalog-source label { display: block; margin-block: .75rem .25rem; font-weight: 600; }
.catalog-source input { box-sizing: border-box; width: 100%; }
.catalog-source__list { list-style: none; margin: 1rem 0; padding: 0; }
.catalog-source__list > li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; padding: 1rem; margin-bottom: 12px; border: 1px solid var(--line, #d7ddd4); border-radius: 10px; background: var(--paper, #fff); }
.catalog-source__list > .catalog-source__item--image { grid-template-columns: 112px minmax(0, 1fr); align-items: start; }
.catalog-source__body { min-width: 0; overflow-wrap: anywhere; }
.catalog-source__name { display: block; color: var(--ink, #263d32); font-family: var(--font-display, "Nunito Sans", sans-serif); font-weight: 800; font-size: 1.1rem; line-height: 1.4; }
.catalog-source__reference { display: block; margin-block: 4px 8px; color: var(--muted, #59665e); font-size: .85rem; }
.catalog-source__list small { display: block; font-size: .8rem; color: var(--muted, #59665e); }
.catalog-source__context { margin-block: 4px 8px; }
.catalog-source__thumbnail { width: 112px; height: 112px; object-fit: contain; border: 1px solid var(--line, #d7ddd4); border-radius: 10px; background: var(--paper, #fff); }
.catalog-source__visual { position: relative; min-width: 0; }
.catalog-source__list a { color: var(--brand-moss, #365749); text-decoration: underline; text-underline-offset: .18em; min-height: 44px; display: inline-flex; align-items: center; overflow-wrap: anywhere; }
.catalog-source__pagination { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; align-items: center; }
.catalog-source__pagination button { min-height: 44px; }
.catalog-source__facts { display: grid; grid-template-columns: minmax(90px, .7fr) minmax(0, 1fr); gap: 8px 14px; margin-block: 14px; padding: 12px; border: 1px solid var(--line, #d7ddd4); border-radius: 8px; background: var(--wash, #f5f4ee); }
.catalog-source__facts dt { font-size: .85rem; font-weight: 700; color: var(--ink, #263d32); }
.catalog-source__facts dd { margin: 0; font-size: .9rem; color: var(--ink, #263d32); overflow-wrap: anywhere; }
.catalog-source__evidence { margin-top: 16px; border-top: 1px solid var(--line, #d7ddd4); }
.catalog-source__evidence > summary { min-height: 44px; padding-block: 10px; color: var(--muted, #59665e); font-size: .85rem; font-weight: 600; cursor: pointer; }
.catalog-source__provenance { margin: 4px 0 12px; padding-left: 20px; font-size: .8rem; color: var(--muted, #59665e); }
.catalog-source__provenance li { margin-block: 8px; overflow-wrap: anywhere; }
.catalog-source__evidence-note { margin-block: 8px; color: var(--muted, #59665e); font-size: .82rem; line-height: 1.5; }
.catalog-source__list [data-source-piece], .catalog-source__list [data-source-variant] { min-height: 44px; padding: 10px 14px; font-size: .84rem; }
.catalog-source__evidence-note:empty { display: none; }
.catalog-source summary:focus-visible, .catalog-source a:focus-visible, .catalog-source button:focus-visible { outline: 3px solid var(--brand-moss, #365749); outline-offset: 3px; }
@media (max-width: 540px) {
  .catalog-source { padding: 12px; }
  .catalog-source__list > li { padding: 12px; }
  .catalog-source__list > .catalog-source__item--image { grid-template-columns: minmax(0, 1fr); }
  .catalog-source__facts { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .catalog-source__facts dd + dt { margin-top: 8px; }
}
