/* Catalog composition and protected image canvas; typography uses shared components. */
.catalog-summary-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.catalog-toolbar { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: var(--space-6); }
.catalog-card { --catalog-media-canvas: #fff; display: grid; min-width: 0; height: 100%; padding: 0; overflow: hidden; isolation: isolate; grid-template-rows: 240px minmax(0, 1fr); }
.catalog-card__image { display: grid; min-width: 0; min-height: 0; overflow: hidden; contain: paint; padding: var(--space-4); place-items: center; border-bottom: 1px solid var(--line); background: var(--card-subtle); }
.catalog-card__image img { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; border-radius: var(--radius-sm); background: var(--catalog-media-canvas); object-fit: contain; object-position: center; }
.catalog-card__body { position: relative; z-index: 1; display: flex; min-width: 0; flex-direction: column; padding: var(--space-6); }
.catalog-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2); }
.catalog-availability { display: grid; gap: var(--space-4); margin: var(--space-6) 0; }
.catalog-availability__row { display: grid; gap: var(--space-3); padding: var(--space-4); }
.catalog-availability__metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.catalog-availability__metrics--rental { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.catalog-stock-value--deficit { grid-column: 1 / -1; padding-top: var(--space-2); }
.catalog-details { margin: var(--space-5) 0 0; border-top: 1px solid var(--line); padding-top: var(--space-5); }
.catalog-details pre { max-width: 100%; max-height: 220px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; }
.catalog-card__actions { display: grid; gap: var(--space-3); margin-top: auto; padding-top: var(--space-6); }
.catalog-card__actions > .c-button { width: 100%; }
.catalog-modal { width: min(900px, calc(100vw - 32px)); }
.catalog-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); align-items: start; }
.catalog-form-wide { grid-column: 1 / -1; }
.catalog-dimensions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.catalog-price-hint { margin: calc(var(--space-2) * -1) 0 0; }
@media (max-width: 1100px) { .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) {
  .catalog-grid, .catalog-form-grid, .catalog-toolbar { grid-template-columns: 1fr; }
  .catalog-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-form-wide { grid-column: auto; }
  .catalog-card { grid-template-rows: clamp(184px, 52vw, 220px) minmax(0, 1fr); }
  .catalog-card__image { padding: var(--space-2); }
  .catalog-card__body { padding: var(--space-6); }
}
@media (max-width: 420px) { .catalog-availability__metrics--rental { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
