/* Page-specific layout; brand primitives and tokens are shared with the homepage. */
.catalog-page {
  padding-block: var(--space-8) var(--space-16);
}

.catalog-page [hidden] {
  display: none !important;
}

.catalog-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin: 0 0 var(--space-8);
  padding: 0;
  list-style: none;
}

.catalog-breadcrumbs li + li::before {
  margin-inline-end: var(--space-3);
  content: "/";
}

.catalog-page h1 {
  font-size: var(--font-size-3xl);
}

.catalog-intro {
  max-inline-size: 65ch;
  font-size: var(--font-size-lg);
}

.catalog-filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
  align-items: end;
  margin-block: var(--space-8);
  padding: var(--space-5);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-subtle);
}

.catalog-field {
  display: grid;
  min-inline-size: 0;
  gap: var(--space-2);
}

.catalog-field label {
  font-size: var(--font-size-sm);
  font-weight: 700;
}

.catalog-field input,
.catalog-field select {
  min-block-size: var(--space-12);
  inline-size: 100%;
  min-inline-size: 0;
  padding: var(--space-3);
  border: 1px solid var(--color-text-muted);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-text);
}

.catalog-filters button { cursor: pointer; }

.catalog-result-status { margin-block: var(--space-6); }

.catalog-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
  padding: 0;
  margin: 0;
  list-style: none;
}

.catalog-grid > li { min-inline-size: 0; }

.catalog-card {
  block-size: 100%;
  overflow-wrap: anywhere;
}

.catalog-card h2,
.catalog-card h3 {
  font-size: var(--font-size-xl);
  line-height: var(--line-height-heading);
}

.catalog-card .catalog-price {
  color: var(--color-brand-primary);
  font-size: var(--font-size-xl);
  font-weight: 700;
}

.catalog-details { margin-block-end: var(--space-4); }
.catalog-details > div + div { margin-block-start: var(--space-3); }
.catalog-details dt { font-size: var(--font-size-sm); color: var(--color-text-muted); }
.catalog-details dd { margin: 0; }
.catalog-status { font-size: var(--font-size-sm); }
.catalog-group + .catalog-group { margin-block-start: var(--space-12); }
.catalog-group > h2 { font-size: var(--font-size-2xl); }
.catalog-contact { margin-block-start: var(--space-16); }
.catalog-contact h2 { font-size: var(--font-size-2xl); }
.catalog-contact address { font-style: normal; margin-block-end: var(--space-4); }
.catalog-empty { padding: var(--space-5); background: var(--color-surface-subtle); }

.laboratory-card { padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-md); }
.laboratory-card h2 { font-size: var(--font-size-lg); scroll-margin-block-start: var(--space-24); }
.catalog-progress { margin-block: var(--space-6); }
.catalog-progress button { cursor: pointer; }
[data-range-error] { grid-column: 1 / -1; }

.catalog-composition { padding-inline-start: var(--space-5); margin-block: var(--space-3); }
.catalog-composition li + li { margin-block-start: var(--space-2); }
.catalog-composition-block > p { font-weight: 700; }
.catalog-composition-details { margin-block-end: var(--space-4); }
.catalog-composition-details summary {
  min-block-size: var(--space-12);
  padding-block: var(--space-3);
  cursor: pointer;
  color: var(--color-brand-primary);
  font-weight: 700;
}
.catalog-promotion {
  margin-block-start: var(--space-12);
  padding: var(--space-6);
  background: var(--color-surface-subtle);
  border-radius: var(--radius-md);
}
.catalog-promotion h2 { font-size: var(--font-size-2xl); }

@media (min-width: 42rem) {
  .catalog-grid,
  .catalog-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-field--search { grid-column: 1 / -1; }
}

@media (min-width: 70rem) {
  .catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalog-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
