/* Inherits the site's light/dark palette and compact product photography. */
.catalogue-intro { padding:64px 0 52px; }
.catalogue-intro h1 { font-size:clamp(2.1rem,3.6vw,3.8rem);line-height:1.08;letter-spacing:-.035em;max-width:22ch;margin:0 0 24px;text-wrap:balance; }
.catalogue-intro p { max-width:65ch;color:var(--ink-soft);margin-bottom:18px; }
.catalogue-section { padding:36px 0 88px;background:var(--white); }
.catalogue-search { padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid var(--line); }
.catalogue-search label,.catalogue-company label { display:block;font-weight:700;font-size:.86rem;margin-bottom:9px; }
.catalogue-search > div { display:flex;gap:12px;max-width:860px; }
.catalogue-search input,.catalogue-company select,.catalogue-options select { width:100%;min-width:0;min-height:48px;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:12px 14px;background:var(--white);color:var(--ink);font:inherit;caret-color:var(--accent); }
.catalogue-search input::placeholder { color:var(--muted);opacity:1; }
.catalogue-search button { flex:none; }
.catalogue-layout { display:grid;grid-template-columns:240px minmax(0,1fr);gap:42px;align-items:start; }
.catalogue-navigation { position:sticky;top:calc(var(--header-h) + 24px);max-height:calc(100dvh - var(--header-h) - 50px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent; }
.catalogue-navigation summary { display:none; }
.catalogue-navigation nav { display:flex;flex-direction:column;gap:4px; }
.catalogue-navigation nav button { display:flex;gap:12px;align-items:center;justify-content:space-between;width:100%;padding:12px 10px;text-align:left;border:0;border-radius:8px;color:var(--ink-soft);background:transparent;font:inherit;font-size:.86rem;font-weight:600;line-height:1.4;cursor:pointer; }
.catalogue-navigation nav button span { font-size:.76rem;font-variant-numeric:tabular-nums;font-weight:500; }
.catalogue-navigation nav button[aria-pressed=true] { background:var(--accent-soft);color:var(--accent-ink); }
.catalogue-company { margin-top:26px;padding-top:24px;border-top:1px solid var(--line); }
.catalogue-company select { font-size:.84rem;padding:10px; }
.catalogue-help { font-size:.78rem;line-height:1.6;color:var(--ink-soft);margin:18px 8px; }
.catalogue-results { min-width:0; }
.catalogue-breadcrumb { display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;line-height:1.5;font-size:.76rem;color:var(--ink-soft);margin-bottom:12px; }
.catalogue-breadcrumb button { border:0;background:none;color:inherit;font:inherit;padding:0;cursor:pointer;min-height:26px; }
.catalogue-results-head { display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:22px; }
.catalogue-results-head h2 { margin:0;font-size:clamp(1.45rem,2.5vw,2rem);letter-spacing:-.025em;line-height:1.2;scroll-margin-top:100px; }
#catalogueReset { flex:none;border:0;background:none;color:var(--accent-ink);font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;min-height:44px; }
.catalogue-subcategories { display:flex;gap:8px;flex-wrap:wrap; }
.catalogue-subcategories:empty { display:none; }
.catalogue-subcategories button,.catalogue-active button,.catalogue-options button { border:1px solid var(--line-strong);border-radius:8px;padding:8px 12px;background:var(--white);color:var(--ink-soft);font:inherit;font-size:.77rem;line-height:1.4;min-height:40px;cursor:pointer; }
.catalogue-subcategories button[aria-pressed=true],.catalogue-options button[aria-pressed=true] { color:var(--accent-ink);border-color:var(--accent-ink);background:var(--accent-soft); }
.catalogue-active { display:flex;gap:8px;flex-wrap:wrap;margin-top:14px; }
.catalogue-active:empty { display:none; }
.catalogue-active button { background:var(--accent-soft);color:var(--accent-ink);border:0; }
#catalogueCount { color:var(--ink-soft);font-size:.82rem;margin:18px 0 24px;font-variant-numeric:tabular-nums; }
.catalogue-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px; }
.catalogue-product { min-width:0;display:flex;flex-direction:column; }
.catalogue-photo { width:100%;aspect-ratio:1.65;display:flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:12px;overflow:hidden;background:var(--base);cursor:pointer;transition:transform .28s var(--ease); }
.catalogue-photo img { display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform .4s var(--ease); }
:root[data-theme=dark] .catalogue-photo { background:#dfe5ed; }
.catalogue-no-photo { padding:12px;text-align:center;font-size:.8rem;color:#45577a; }
.catalogue-tags { margin:14px 0 8px;display:flex; }
.catalogue-brand-tag { display:inline-block;font:inherit;font-size:.68rem;font-weight:700;line-height:1.4;color:var(--accent-ink);border:0;border-radius:5px;background:var(--accent-soft);padding:5px 7px; }
button.catalogue-brand-tag { cursor:pointer; }
.catalogue-product h3 { font-size:.95rem;line-height:1.45;letter-spacing:-.015em;margin:0 0 6px;overflow-wrap:anywhere; }
.catalogue-product h3 button { font:inherit;color:inherit;text-align:left;border:0;background:none;padding:0;cursor:pointer; }
.catalogue-product-type { color:var(--ink-soft);font-size:.76rem;margin:0 0 12px; }
.catalogue-models { display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px; }
.catalogue-models span { max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 6px;border:1px solid var(--line-strong);border-radius:5px;color:var(--ink-soft);font-size:.66rem;line-height:1.4; }
.catalogue-card-actions { display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:auto; }
.catalogue-details { background:none;border:0;padding:6px 0;color:var(--accent-ink);font:inherit;font-size:.76rem;font-weight:700;cursor:pointer;min-height:40px; }
.catalogue-card-actions .save-product { position:static;font-size:.7rem;padding:7px 9px;min-height:36px; }
.catalogue-pagination { display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px;border-top:1px solid var(--line);padding-top:28px;margin-top:40px; }
.catalogue-pagination button { border:1px solid var(--line-strong);border-radius:8px;background:var(--white);color:var(--ink);font:inherit;font-size:.8rem;padding:8px 12px;min-width:42px;min-height:44px;cursor:pointer; }
.catalogue-pagination button[aria-current=page] { background:var(--accent-ink);color:var(--white);border-color:var(--accent-ink); }
:root[data-theme=dark] .catalogue-pagination button[aria-current=page] { color:#0d1524; }
.catalogue-pagination button:disabled { opacity:.45;cursor:default; }
.catalogue-source-note,.catalogue-detail-note { color:var(--ink-soft);font-size:.76rem;max-width:75ch;margin:30px 0 0; }
.catalogue-empty { grid-column:1/-1;padding:30px 0 70px; }
.catalogue-empty h3 { font-size:1.3rem;margin-bottom:12px; }
.catalogue-empty p { color:var(--ink-soft);max-width:55ch;margin-bottom:24px; }
.catalogue-load-error { padding:25px 0;color:var(--ink); }
.catalogue-detail { padding:14px 4px; }
.catalogue-detail-image { display:flex;align-items:center;justify-content:center;max-height:340px;height:32vh;background:#e8ecf1;border-radius:12px;margin-bottom:24px;padding:18px; }
.catalogue-detail-image img { width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply; }
.catalogue-detail-path { font-size:.75rem;color:var(--ink-soft);margin:0 0 16px; }
.catalogue-detail h2 { font-size:1.8rem;letter-spacing:-.025em;line-height:1.2;margin:14px 0 22px;overflow-wrap:anywhere; }
.catalogue-options { border:0;padding:0;margin:0 0 24px;display:flex;flex-wrap:wrap;gap:8px;max-height:230px;overflow:auto; }
.catalogue-options legend { font-size:.82rem;font-weight:700;margin-bottom:10px; }
.catalogue-options button { overflow-wrap:anywhere;max-width:100%; }
.catalogue-selected { border-top:1px solid var(--line);padding-top:20px; }
.catalogue-selected h3 { font-size:1rem;margin-bottom:10px;overflow-wrap:anywhere; }
.catalogue-selected p { color:var(--ink-soft);font-size:.87rem;white-space:pre-line;overflow-wrap:anywhere; }
.catalogue-detail-actions { display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:26px; }
.catalogue-detail-actions a { font-size:.8rem;color:var(--accent-ink);padding:10px 0; }
@media (hover:hover) and (pointer:fine) {
 .catalogue-photo:hover { transform:translateY(-4px); }
 .catalogue-photo:hover img { transform:scale(1.045); }
 .catalogue-navigation nav button:hover,.catalogue-subcategories button:hover { background:var(--accent-soft);color:var(--accent-ink); }
 .catalogue-details:hover,.catalogue-product h3 button:hover { text-decoration:underline;text-underline-offset:4px; }
}
@media (min-width:1650px) { .catalogue-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:1100px) { .catalogue-layout { grid-template-columns:210px minmax(0,1fr);gap:28px; }.catalogue-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:800px) {
 .catalogue-intro { padding:38px 0 32px; }.catalogue-intro h1 { font-size:2.35rem; }.catalogue-intro p { font-size:.93rem; }
 .catalogue-section { padding:26px 0 60px; }.catalogue-search { padding-bottom:22px;margin-bottom:22px; }.catalogue-search input { font-size:16px; }.catalogue-search > div { gap:8px; }.catalogue-search .btn { padding:12px 14px;font-size:.82rem; }
 .catalogue-layout { display:block; }.catalogue-navigation { position:static;max-height:none;overflow:visible;margin-bottom:28px;border-bottom:1px solid var(--line);padding-bottom:16px; }
 .catalogue-navigation summary { display:list-item;color:var(--ink);font-weight:700;cursor:pointer;min-height:44px;padding:8px 0; }.catalogue-filter-content { padding-top:10px; }.catalogue-navigation nav { display:grid;grid-template-columns:1fr 1fr; }.catalogue-company { margin-top:16px;padding-top:16px; }.catalogue-help { margin:12px 0; }
 .catalogue-company select { font-size:16px; }.catalogue-subcategories { gap:6px; }.catalogue-subcategories button { font-size:.72rem;padding:8px 10px;min-height:44px; }
 .catalogue-grid { gap:26px 16px; }.catalogue-photo { padding:8px;aspect-ratio:1.35; }.catalogue-product h3 { font-size:.85rem; }.catalogue-models span { font-size:.63rem; }.catalogue-brand-tag { font-size:.64rem; }.catalogue-product-type { font-size:.72rem; }
 .catalogue-card-actions { align-items:flex-start;flex-direction:column;gap:4px; }.catalogue-details { min-height:44px; }.catalogue-card-actions .save-product { min-height:44px; }
 .catalogue-breadcrumb { font-size:.72rem; }.catalogue-results-head { gap:8px;margin-bottom:18px; }.catalogue-results-head h2 { font-size:1.45rem; }
 .catalogue-detail h2 { font-size:1.45rem; }.catalogue-detail-image { height:230px; }.catalogue-options button { min-height:44px; }.catalogue-pagination button { padding:8px 10px;min-width:36px; }
}
@media (max-width:350px) { .catalogue-grid { grid-template-columns:1fr; }.catalogue-navigation nav { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .catalogue-photo,.catalogue-photo img { transition:none;transform:none!important; } }

/* Save a broad product type, or drill into its individual models. */
.catalogue-type h3 { margin-top:16px; }
.catalogue-type-count { color:var(--ink-soft);font-size:.82rem;margin:0 0 12px; }
.catalogue-type .catalogue-tags { flex-wrap:wrap;gap:5px;margin:0 0 16px; }
.catalogue-type .catalogue-card-actions { gap:10px; }
.catalogue-back-types { margin-left:auto!important;color:var(--accent-ink)!important;font-weight:700!important;min-height:44px!important; }
.catalogue-type .save-product { white-space:nowrap; }

/* Keep separators paired with their label when the product path wraps. */
.catalogue-crumb { display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%; }
.catalogue-crumb > [aria-hidden] { flex:none; }
.catalogue-crumb > span:last-child { overflow-wrap:anywhere; }
@media (max-width:800px) { .catalogue-back-types { flex-basis:100%;margin-left:0!important;text-align:left; } }
