/* Search catalogue is separate from product matching and ranking. */
.catalogue-shell { max-width: 1260px; }
.catalogue-panel { min-width: 0; }
.catalogue-panel h1 { font-size: clamp(2.2rem, 5.5vw, 3.8rem); }
.catalogue-form { margin-top: 26px; }
.catalogue-form > label,
.catalogue-filter label { display: block; margin-bottom: 8px; font-weight: 700; }
.catalogue-search-row { display: flex; gap: 10px; }
.catalogue-search-row input {
  flex: 1 1 auto; min-width: 0; min-height: 52px; padding: 12px 15px;
  border: 1px solid var(--border); border-radius: 12px; background: #fff;
}
.catalogue-search-row .primary-button { flex: 0 0 auto; }
.catalogue-filters {
  display: grid; gap: 12px; margin-top: 20px; padding: 16px;
  border: 1px solid var(--border); border-radius: 14px; background: #faf9f7;
}
.catalogue-filter select {
  display: block; width: 100%; min-height: 46px; padding: 10px;
  border: 1px solid var(--border); border-radius: 10px; background: #fff;
}
.catalogue-filters .secondary-button { align-self: end; text-align: center; }
.catalogue-search-row input:focus-visible,
.catalogue-filter select:focus-visible,
.catalogue-filters button:focus-visible,
.catalogue-more:focus-visible,
.catalogue-result-card a:focus-visible,
.catalogue-result-card summary:focus-visible {
  outline: 3px solid var(--accent); outline-offset: 3px;
}
.catalogue-message { margin: 22px 0 6px; font-weight: 700; }
.catalogue-disclosure { margin: 0 0 24px; font-size: .88rem; color: var(--muted); }
.catalogue-results { display: grid; gap: 16px; }
.catalogue-result-card {
  min-width: 0; padding: 18px; border: 1px solid var(--border);
  border-radius: 16px; background: #fff;
}
.catalogue-category-pill {
  display: inline-block; padding: 5px 10px; border-radius: 999px;
  background: var(--accent-soft); color: var(--accent-dark);
  font-size: .78rem; font-weight: 700;
}
.catalogue-product-media {
  display: grid; height: 150px; margin-bottom: 16px; place-items: center;
  border: 1px solid var(--border); border-radius: 12px;
  background: #f7f4f1; overflow: hidden;
}
.catalogue-product-media img { display: block; max-width: 100%; max-height: 150px; object-fit: contain; }
.catalogue-product-media .image-fallback {
  display: block; padding: 16px; color: var(--muted);
  font-size: .82rem; text-align: center;
}
.catalogue-brand-name { margin: 13px 0 3px; color: var(--muted); font-size: .9rem; font-weight: 700; }
.catalogue-result-card h2 {
  margin: 0 0 12px; font-family: Georgia, 'Times New Roman', serif;
  font-size: 1.27rem; line-height: 1.25; overflow-wrap: anywhere;
}
.catalogue-glance { margin: 14px 0; }
.catalogue-glance > strong { display: block; margin-bottom: 7px; font-size: .9rem; }
.catalogue-glance ul { margin: 0; padding-left: 19px; color: var(--muted); font-size: .9rem; }
.catalogue-glance li + li { margin-top: 3px; }
.catalogue-price { margin: 12px 0 4px; font-weight: 700; }
.catalogue-price-note { margin: 0 0 12px; color: var(--muted); font-size: .79rem; }
.catalogue-result-card details { margin-top: 14px; padding-top: 11px; border-top: 1px solid var(--border); }
.catalogue-result-card summary { color: var(--accent-dark); font-weight: 700; cursor: pointer; }
.catalogue-details-body { padding-top: 10px; color: var(--muted); font-size: .9rem; }
.catalogue-details-body p { margin: 0 0 12px; }
.catalogue-links { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 13px; }
.catalogue-links a { text-align: center; font-size: .85rem; }
.catalogue-empty { grid-column: 1 / -1; padding: 26px; border: 1px dashed var(--border); border-radius: 14px; }
.catalogue-empty h2 { margin-top: 0; }
.catalogue-more { display: block; margin: 25px auto; }
.catalogue-more[hidden] { display: none; }
.catalogue-next-step { margin-top: 42px; padding: 22px; border-radius: 14px; background: var(--accent-soft); }
.catalogue-next-step h2 { margin-top: 0; }
.catalogue-next-step p { max-width: 680px; }
@media (min-width: 680px) {
  .catalogue-filters { grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; }
  .catalogue-results { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (min-width: 1050px) {
  .catalogue-results { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 420px) {
  .catalogue-search-row { flex-direction: column; }
  .catalogue-search-row .primary-button { text-align: center; }
}

/* Homepage search: visible before the two personalised pathways. */
.homepage-search {
  margin-top: 28px; padding: 24px; border: 1px solid var(--border);
  border-radius: 16px; background: #faf7f4;
}
.homepage-search h2 { margin: 0; font-size: clamp(1.6rem,4vw,2.2rem); }
.homepage-search > p:not(.eyebrow) { margin: 10px 0 20px; color: var(--muted); }
.homepage-search form > label { display: block; margin-bottom: 8px; font-weight: 700; }
.homepage-browse-all { display: inline-block; margin-top: 15px; color: var(--accent-dark); font-weight: 700; }
