/* Category and product pages extend the existing Filter Service visual system. */
.catalog-main { padding-bottom: 96px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; padding-block:32px; color:var(--muted); font-size:14px; }
.breadcrumbs a:hover { color:var(--accent); text-decoration:underline; }
.catalog-heading { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:64px; padding:32px 0 64px; }
.catalog-heading h1 { font-size:72px; line-height:1.05; }
.catalog-heading p { font-size:18px; color:var(--muted); max-width:48ch; padding-bottom:8px; }
.catalog-filters { display:flex; flex-wrap:wrap; align-items:end; gap:24px; padding:32px; background:var(--surface); }
.filter-field { display:flex; flex:1 1 144px; flex-direction:column; gap:8px; font-size:14px; font-weight:600; }
.filter-search { flex:1.6 1 208px; }
.filter-search > div { display:flex; align-items:center; gap:12px; padding-left:16px; background:white; border:1px solid var(--line); }
.filter-search input { min-width:0; width:100%; border:0; background:transparent; padding:12px 12px 12px 0; color:var(--text); }
.catalog-page select { font:inherit; color:var(--text); background:var(--card); border:1px solid var(--line); padding:12px; min-height:48px; border-radius:0; }
.catalog-page select:focus-visible { outline:3px solid #4c8ac4; outline-offset:3px; }
.filter-reset { display:flex; align-items:center; gap:8px; background:transparent; font-size:14px; min-height:48px; padding:8px 0; }
.filter-reset .icon { width:16px; height:16px; }
.filter-reset:hover { color:var(--accent-hover); text-decoration:underline; }
.catalog-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-block:32px; font-size:14px; color:var(--muted); }
.catalog-toolbar label { display:flex; align-items:center; gap:12px; }
.catalog-toolbar select { min-height:40px; padding:8px; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 32px; }
.product-card { min-width:0; }
.product-card[hidden], .catalog-empty[hidden] { display:none; }
.product-card-link { display:block; }
.product-card-image { position:relative; overflow:hidden; background:var(--bg); aspect-ratio:1; padding:0; }
.product-card-image img { width:100%; height:100%; object-fit:cover; mix-blend-mode:multiply; transition:transform 400ms var(--ease); }
.product-class { position:absolute; top:16px; left:16px; font-size:12px; font-weight:700; color:var(--accent); background:white; padding:4px 8px; }
.product-card-copy { display:grid; grid-template-columns:1fr 24px; gap:8px 16px; padding-top:24px; }
.product-card-copy h2 { font-size:24px; line-height:1.3; letter-spacing:-.02em; }
.product-card-copy p { grid-column:1 / -1; font-size:14px; color:var(--muted); }
.product-card-copy > .icon { margin-top:4px; transition:transform 250ms var(--ease); }
.product-card-link:hover .product-card-image img { transform:scale(1.04); }
.product-card-link:hover .product-card-copy > .icon { transform:translate(2px,-2px); }
.product-card-link:active { opacity:.85; }
.catalog-empty { padding:64px 0; text-align:center; }
.catalog-empty h2 { font-size:30px; }
.catalog-empty p { margin:16px auto 24px; color:var(--muted); }
.catalog-help { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-top:80px; padding:40px; background:var(--surface); }
.catalog-help h2 { font-size:30px; line-height:1.2; }
.catalog-help p { color:var(--muted); margin-top:12px; }
.catalog-help .text-link { white-space:nowrap; }
.product-overview { display:grid; grid-template-columns:1.1fr 1fr; align-items:start; gap:80px; margin-block:24px 80px; }
.product-main-image { aspect-ratio:1; display:grid; place-items:center; background:var(--bg); padding:0; }
.product-main-image img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; min-height:0; }
.gallery-thumbs { display:flex; gap:12px; margin-top:16px; }
.gallery-thumb { padding:8px; width:80px; height:80px; background:var(--bg); border:1px solid var(--line); }
.gallery-thumb img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.gallery-thumb[aria-pressed="true"] { border:2px solid var(--accent); }
.gallery-thumb:hover { background:var(--tint); }
.product-intro { padding-top:16px; }
.product-intro h1 { font-size:56px; overflow-wrap:anywhere; }
.product-designation { font-size:24px; margin-top:16px; }
.product-description { color:var(--muted); margin-top:24px; }
.product-specs { margin:32px 0; font-size:14px; }
.product-specs > div { display:grid; grid-template-columns:1fr 1.4fr; gap:16px; padding:12px 0; border-bottom:1px solid var(--line); }
.product-specs dt { color:var(--muted); }
.product-specs dd { margin:0; }
.product-inquiry { gap:32px; }
.product-doc-jump { display:flex; width:fit-content; margin-top:24px; }
.product-documents { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; padding-block:64px; border-block:1px solid var(--line); scroll-margin-top:32px; }
.product-documents h2 { font-size:36px; }
.product-documents p { margin-top:24px; color:var(--muted); }
.product-document { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 16px; border-bottom:1px solid var(--line); }
.product-document:first-child { border-top:1px solid var(--line); }
.product-document span { display:flex; align-items:center; gap:16px; }
.product-document:hover { background:var(--surface); }
.related-products { padding-top:80px; }
.related-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:32px; }
.related-heading h2 { font-size:36px; }
.catalog-page .desktop-nav [aria-current="page"] { color:var(--accent); text-decoration:underline; text-underline-offset:8px; }
@media(max-width:1100px) {
 .catalog-heading h1 { font-size:56px; }
 .catalog-filters { gap:16px; padding:24px; }
 .filter-search { flex-basis:100%; }
 .product-overview { gap:40px; }
 .product-intro h1 { font-size:48px; }
 .product-grid { gap:32px 24px; }
 .product-card-copy h2 { font-size:20px; }
}
@media(max-width:767px) {
 .catalog-main { padding-bottom:64px; }
 .breadcrumbs { font-size:12px; gap:8px; padding-block:24px; }
 .catalog-heading { grid-template-columns:1fr; gap:24px; padding:16px 0 32px; }
 .catalog-heading h1 { font-size:48px; }
 .catalog-heading p { font-size:16px; }
 .catalog-filters { padding:16px; gap:16px; }
 .filter-field { flex:1 1 calc(50% - 8px); }
 .filter-search { flex-basis:100%; }
 .filter-reset { flex:1 1 calc(50% - 8px); justify-content:center; }
 .catalog-toolbar { flex-wrap:wrap; padding-block:24px; }
 .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 16px; }
 .product-card-image { aspect-ratio:1; padding:0; }
 .product-class { top:8px; left:8px; }
 .product-card-copy { padding-top:16px; gap:8px; grid-template-columns:1fr; }
 .product-card-copy h2 { font-size:18px; overflow-wrap:anywhere; }
 .product-card-copy > .icon { display:none; }
 .product-card-copy p { font-size:12px; }
 .catalog-help { flex-direction:column; align-items:start; padding:24px; margin-top:48px; }
 .catalog-help h2 { font-size:24px; }
 .product-overview { grid-template-columns:1fr; gap:32px; margin-block:8px 48px; }
 .product-main-image { padding:0; aspect-ratio:1; }
 .gallery-thumb { width:64px; height:64px; }
 .product-intro { padding:0; }
 .product-intro h1 { font-size:48px; }
 .product-documents { grid-template-columns:1fr; gap:32px; padding-block:40px; }
 .product-documents h2, .related-heading h2 { font-size:30px; }
 .product-document { padding:20px 0; font-size:14px; }
 .related-products { padding-top:48px; }
 .related-heading { flex-direction:column; align-items:start; }
 .related-products .product-card:last-child { display:none; }
}
@media(prefers-reduced-motion:reduce) { .product-card-image img,.product-card-copy > .icon { transition:none; } }

.product-card-copy .product-card-category { font-size:12px; line-height:16px; margin-bottom:4px; }
.product-details { margin-bottom:64px; }
.product-detail-row { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; padding-block:40px; border-top:1px solid var(--line); }
.product-detail-row h2 { font-size:30px; line-height:36px; }
.product-detail-row p { color:var(--muted); max-width:70ch; }
.product-detail-row p + p { margin-top:16px; }
.product-content-source { font-size:12px; color:var(--muted); margin-top:24px; }
.product-content-source a { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:767px) {
 .product-detail-row { grid-template-columns:1fr; gap:24px; padding-block:32px; }
 .product-detail-row h2 { font-size:24px; line-height:32px; }
 .product-details { margin-bottom:40px; }
}

button.product-main-image { position:relative; width:100%; cursor:zoom-in; }
.gallery-zoom { position:absolute; right:16px; bottom:16px; display:flex; align-items:center; gap:8px; padding:8px 12px; font-size:12px; background:var(--card); color:var(--accent); }
.gallery-zoom .icon { width:20px; height:20px; }
.product-main-image:hover .gallery-zoom { background:var(--tint); }
.product-lightbox { width:min(1100px,calc(100vw - 48px)); max-width:none; max-height:calc(100dvh - 48px); padding:24px; background:var(--card); color:var(--text); }
.product-lightbox::backdrop { background:rgb(16 42 67 / .85); }
.lightbox-header,.lightbox-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.lightbox-title { font-size:18px; font-weight:600; }
.lightbox-control { display:grid; place-items:center; width:48px; height:48px; flex-shrink:0; font-size:24px; background:var(--surface); color:var(--accent); }
.lightbox-control[hidden] { display:none; }
.lightbox-control:hover { background:var(--tint); }
.lightbox-control:active { transform:scale(.98); }
.lightbox-stage { height:min(70dvh,800px); min-height:0; padding-block:16px; }
.lightbox-stage img { width:100%; height:100%; object-fit:contain; }
.lightbox-footer { justify-content:center; }
.lightbox-count { min-width:64px; text-align:center; font-size:14px; color:var(--muted); }
@media(max-width:767px) {
 .product-lightbox { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); padding:16px; }
 .lightbox-title { font-size:16px; }
 .lightbox-stage { height:calc(100dvh - 192px); }
 .gallery-zoom { right:12px; bottom:12px; }
}
.lightbox-previous-icon { transform:rotate(180deg); }
