.uip-catalog { --preview-h: 0px; }
/* The shared sticky header already occupies its own space in document flow. */
.uip-catalog-page .uip-catalog { padding-top: 0; }
.uip-catalog .hero-materials img, .uip-catalog .product-card .media img, .uip-catalog .thumb img, .uip-catalog .main-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
.uip-catalog .hero-materials .material-caption { color: white; background: #172015b3; padding: 4px 8px; border-radius: 4px; }
.uip-catalog .main-gallery { aspect-ratio:auto; cursor:zoom-in; }
.uip-catalog .main-gallery img { height:auto; max-height:560px; object-fit:contain; }
.uip-catalog .zoom-label { width:44px; height:44px; right:12px; bottom:12px; padding:0; justify-content:center; box-shadow:0 1px 8px #18251a18; }
.uip-catalog .zoom-label svg { display:block; }
.uip-catalog .image-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--ink-2); font-size: 13px; }
.uip-catalog .main-gallery.image-placeholder { height:auto; aspect-ratio:3/2; cursor:default; }
.uip-catalog .search-wrap input { padding-left: 12px; }
.uip-catalog .product-gallery { min-width:0; }
.uip-catalog .thumbnails { flex-wrap:nowrap; overflow-x:auto; padding:4px; margin:10px -4px 0; scrollbar-width:thin; }
.uip-catalog .thumbnails .thumb { flex:0 0 72px; width:72px; }
.uip-catalog .gallery-dialog { max-width: min(1100px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 18px; border: 0; border-radius: 14px; }
.uip-catalog .gallery-dialog::backdrop { background: #10170ddd; }
.uip-catalog .gallery-dialog img { display: block; max-width: 100%; max-height: 78vh; object-fit: contain; margin: 12px auto 0; }
.uip-catalog .desc { margin: 20px 0; overflow-wrap: anywhere; }
.uip-catalog .price { flex-wrap: wrap; }
.uip-catalog .detail-grid { grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:clamp(28px,4vw,48px); }
.uip-catalog .detail-copy { padding-top:0; min-width:0; }
.uip-catalog .detail-copy h1 { font-size:clamp(28px,3vw,36px); margin:10px 0 12px; overflow-wrap:anywhere; }
.uip-catalog .product-code { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; font-size:12px; overflow-wrap:anywhere; }
.uip-catalog #product-sku { user-select:all; }
.uip-catalog .copy-sku { min-height:44px; padding:0 8px; border:0; border-radius:4px; background:transparent; color:#31593e; font-size:12px; text-decoration:underline; cursor:pointer; }
.uip-catalog .copy-sku:hover { background:#eff3ec; }
.uip-catalog .detail-copy .desc { margin:18px 0; }
.uip-catalog .detail-copy .price { font-size:28px; margin:20px 0 4px; }
.uip-catalog .detail-copy .price.missing { font-size:21px; }
.uip-catalog .key-details { margin-top:24px; }
.uip-catalog .key-details h2 { font-size:16px; margin:0 0 8px; }
.uip-catalog .key-details dl { margin:0; font-size:13px; }
.uip-catalog .key-details dl > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:16px; padding:9px 0; border-bottom:1px solid var(--line); }
.uip-catalog .key-details dt { color:var(--ink-2); }
.uip-catalog .key-details dd { margin:0; }
.uip-catalog .key-details :is(dt,dd) { overflow-wrap:anywhere; }
.uip-catalog .more-specs { display:inline-block; margin-top:12px; color:#31593e; font-size:13px; }
.uip-catalog .detail-copy .detail-contact { margin-top:24px; background:transparent; }
.uip-catalog .detail-copy .detail-contact:hover { background:#eff3ec; }
.uip-catalog .detail-lower > :only-child { grid-column:1 / -1; max-width:820px; }
.uip-catalog .product-downloads:not(:first-child) { margin-top:28px; }
.uip-catalog #more-specifications { scroll-margin-top:100px; }
.uip-catalog .thumb { min-width: 56px; }
.uip-catalog .sort { gap: 8px; }
.uip-catalog :is(#results,#featured,#categories) { scroll-margin-top:100px; }
.uip-catalog .presentation-hero { grid-template-columns:1.2fr 1fr; gap:48px; padding:36px 0; }
.uip-catalog .presentation-hero.text-only { grid-template-columns:1fr; max-width:840px; }
.uip-catalog .presentation-hero h1 { font-size:clamp(34px,4.2vw,58px); line-height:1.09; letter-spacing:-1.6px; max-width:650px; overflow-wrap:anywhere; }
.uip-catalog .presentation-hero p { font-size:15px; line-height:1.8; max-width:530px; }
.uip-catalog .presentation-hero-image { display:block; aspect-ratio:3/2; max-height:300px; border-radius:10px; overflow:hidden; background:#e9ede5; }
.uip-catalog .presentation-hero-image img { display:block; width:100%; height:100%; object-fit:cover; }
.uip-catalog .hero-actions { display:flex; gap:24px; align-items:center; flex-wrap:wrap; margin-top:26px; }
.uip-catalog .hero-actions .primary { background:#28543b; border-color:#28543b; color:white; }
.uip-catalog .hero-category-link { font-size:13px; font-weight:600; }
.uip-catalog .hero-category-link span { margin-left:8px; }
.uip-catalog .section-heading { display:flex; justify-content:space-between; gap:20px; align-items:end; margin:0 0 22px; }
.uip-catalog .section-heading h2 { font-size:26px; letter-spacing:-.6px; line-height:1.3; }
.uip-catalog .section-heading .eyebrow { margin-bottom:9px; font-size:10px; }
.uip-catalog .section-heading > a { font-size:13px; color:#31593e; }
.uip-catalog .featured-section { padding:8px 0 44px; }
.uip-catalog .featured-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.uip-catalog .category-browse { padding:30px 0 48px; border-top:1px solid var(--line); }
.uip-catalog .category-browse .section-heading { margin-bottom:8px; }
/* No column gap: each row's dividers join into one continuous rule across the grid. */
.uip-catalog .category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.uip-catalog .category-card { border-bottom:1px solid var(--line); padding:20px 32px 20px 0; display:flex; align-items:center; gap:20px; font-size:16px; font-weight:600; letter-spacing:-.01em; transition:color .2s ease, border-color .2s ease; }
.uip-catalog .category-card:focus-visible { color:#28543b; border-color:#79977b; outline:2px solid #28543b; outline-offset:5px; }
.uip-catalog .category-thumb { position:relative; flex:none; width:clamp(112px,42%,160px); aspect-ratio:3/2; border-radius:8px; overflow:hidden; isolation:isolate; background:#e9ede5; }
.uip-catalog .category-thumb::after { content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px #171a1612; pointer-events:none; }
.uip-catalog .category-thumb img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.uip-catalog .category-name { position:relative; min-width:0; overflow-wrap:anywhere; }
/* Every row is a link, so only the pointed or focused row shows an arrow. It hangs in the
   row's right padding, so the hidden arrow never narrows or wraps the name. */
.uip-catalog .category-arrow { position:absolute; left:100%; top:50%; margin-left:8px; opacity:0; transform:translate(-4px,-50%); transition:opacity .2s ease, transform .2s ease; }
.uip-catalog .category-card:focus-visible .category-arrow { opacity:1; transform:translate(0,-50%); }
@media(hover:hover) {
  .uip-catalog .category-card:hover { color:#28543b; border-color:#79977b; }
  .uip-catalog .category-card:hover .category-arrow { opacity:1; transform:translate(0,-50%); }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .uip-catalog .category-card:hover .category-thumb img { transform:scale(1.04); }
}
.uip-catalog .catalog-results { padding-top:10px; }
.uip-catalog .results-heading { margin-bottom:20px; }
.uip-catalog .results-heading h2 { font-size:23px; }
.uip-catalog .category-introduction { display:grid; grid-template-columns:1fr; gap:24px; align-items:center; padding:4px 0 24px; }
.uip-catalog .category-introduction.has-image { grid-template-columns:minmax(0,1fr) 96px; }
.uip-catalog .category-introduction h1 { font-size:clamp(28px,3vw,36px); max-width:700px; overflow-wrap:anywhere; }
.uip-catalog .category-description { font-size:15px; color:var(--ink-2); max-width:720px; overflow-wrap:anywhere; }
.uip-catalog .category-description p { margin-top:14px; }
.uip-catalog .category-description a { text-decoration:underline; }
.uip-catalog .category-description summary { cursor:pointer; margin-top:8px; color:#31593e; }
.uip-catalog .category-intro-image { width:96px; aspect-ratio:1; border-radius:8px; overflow:hidden; }
.uip-catalog .category-intro-image img { width:100%; height:100%; object-fit:cover; }
.uip-catalog .category-shortcuts { display:flex; gap:10px; flex-wrap:wrap; padding-bottom:24px; }
.uip-catalog .catalog-compact-title { padding:32px 0 28px; }
.uip-catalog .catalog-compact-title > a { font-size:13px; color:#47634a; }
.uip-catalog .catalog-compact-title h1 { font-size:32px; margin-top:12px; }
.uip-catalog .result-controls { display:flex; gap:20px; flex-wrap:wrap; align-items:center; justify-content:end; }
.uip-catalog .view-switch { display:flex; padding:3px; border:1px solid #cfdace; border-radius:7px; background:white; }
.uip-catalog .view-switch a { display:grid; place-items:center; min-width:44px; min-height:44px; padding:10px; border-radius:4px; }
.uip-catalog .view-switch svg { display:block; }
.uip-catalog .view-switch [aria-pressed=false]:hover { background:#eff3ec; }
.uip-catalog .view-switch [aria-pressed=true] { background:#28543b; color:white; }
.uip-catalog .results-grid[data-view=list] { grid-template-columns:1fr; gap:12px; }
.uip-catalog .results-grid[data-view=list] .card-link { display:grid; grid-template-columns:150px minmax(0,1fr); }
.uip-catalog .results-grid[data-view=list] .media { height:100%; min-height:148px; border-radius:0; }
.uip-catalog .results-grid[data-view=list] .card-body { display:grid; grid-template-columns:1fr auto; column-gap:24px; padding:20px 24px; }
.uip-catalog .results-grid[data-view=list] .category-label,.uip-catalog .results-grid[data-view=list] .sku { grid-column:1; }
.uip-catalog .results-grid[data-view=list] h3 { grid-column:1; min-height:0; }
.uip-catalog .results-grid[data-view=list] .card-bottom { grid-column:2; grid-row:1 / 4; align-self:center; border:0; gap:22px; }
.uip-catalog .product-card h3 { overflow-wrap:anywhere; }
.uip-catalog .product-card .sku { overflow-wrap:anywhere; }
/* Give result pages more room without widening the overview or product details. */
@media(min-width:1600px) {
  .uip-catalog .public-main:has(> [data-focused=true]) { max-width:1600px; }
  .uip-catalog .results-grid[data-view=grid] { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
/* Narrow three-column rows: tighter spacing keeps category names on one line down to about 1024px. */
@media(min-width:901px) and (max-width:1200px) {
  .uip-catalog .category-card { gap:16px; padding-right:24px; }
  .uip-catalog .category-thumb { width:clamp(112px,38%,160px); }
}
@media(max-width:900px) {
  .uip-catalog .detail-grid { grid-template-columns:1fr; gap:24px; }
  .uip-catalog .main-gallery img { max-height:64vh; }
  .uip-catalog .presentation-hero { gap:28px; }
  .uip-catalog .resultbar { align-items:start; }
  .uip-catalog .result-controls { gap:12px; }
  .uip-catalog .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .uip-catalog .featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .uip-catalog .presentation-hero { grid-template-columns:1fr; padding:30px 0; gap:24px; }
  .uip-catalog .presentation-hero h1 { max-width:none; font-size:38px; }
  .uip-catalog .presentation-hero p { font-size:14px; }
  .uip-catalog .presentation-hero-image { aspect-ratio:2/1; max-height:220px; }
  .uip-catalog .hero-actions { gap:16px; }
  .uip-catalog .section-heading h2 { font-size:23px; }
  .uip-catalog .featured-section { padding-bottom:32px; }
  .uip-catalog .featured-grid { grid-template-columns:1fr; }
  .uip-catalog .product-grid .product-card .media { height:220px; }
  .uip-catalog .category-grid { grid-template-columns:1fr; }
  .uip-catalog .category-card { padding:14px 24px 14px 0; gap:18px; }
  /* 104px keeps 3x phones on the 320w source instead of the 768w one. */
  .uip-catalog .category-thumb { width:104px; }
  .uip-catalog .category-browse { padding:24px 0 32px; }
  .uip-catalog .category-introduction.has-image { gap:16px; }
  .uip-catalog .resultbar { flex-direction:column; gap:14px; }
  .uip-catalog .result-controls { justify-content:space-between; width:100%; gap:10px; }
  .uip-catalog .sort { flex-wrap:wrap; }
  .uip-catalog .results-grid { grid-template-columns:1fr; }
  .uip-catalog .results-grid[data-view=list] .card-link { grid-template-columns:90px minmax(0,1fr); }
  .uip-catalog .results-grid[data-view=list] .media { height:100%; min-height:140px; }
  .uip-catalog .results-grid[data-view=list] .card-body { padding:14px; display:block; }
  .uip-catalog .results-grid[data-view=list] .card-bottom { margin-top:10px; padding:0; }
  .uip-catalog .results-grid[data-view=list] .price { font-size:16px; }
}
