/* Shared composition: one large photo and grouped links on a white surface. */
.catalog-panel { --catalog-photo-width: min(100%, 30vw, 480px); }
.catalog-panel[hidden], .catalog-panel-stack[hidden], [data-catalog-stock-panel][hidden], [data-catalog-back][hidden] { display: none !important; }
.catalog-panel .home-catalog-feature:not(:has(h2)) { justify-content: flex-end; }
.catalog-panel .home-catalog-photo > img:not(.home-catalog-preview) { object-fit: cover; }
.catalog-panel .home-catalog-photo > .home-catalog-preview { object-fit: contain; }
.catalog-panel .home-catalog-family h3 a { color: var(--ink); text-decoration: none; }
.catalog-panel .home-catalog-subsections a:is(:hover, :focus-visible) { color: #b83c00; }
.catalog-panel .home-catalog-subsections a:focus-visible { outline: 2px solid var(--orange); outline-offset: 5px; border-radius: 2px; }
.catalog-panel-count { margin: 8px 0 0; color: #6b6b6b; font-size: 14px; line-height: 1.5; }
.catalog-panel-descriptions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 48px; padding-top: 36px; border-top: 1px solid var(--stroke); }
.catalog-panel-descriptions h3 { margin: 0 0 12px; font-size: 20px; font-weight: 600; line-height: 1.4; }
.catalog-panel-descriptions p { margin: 0; font-size: 17px; line-height: 1.75; color: #575757; }
.catalog-panel-stack > .catalog-panel + .catalog-panel { margin-top: clamp(72px, 8vw, 128px); }
.mega-panel .mega-content { display: flex; flex-direction: column; overflow: hidden; padding-bottom: 0; }
.mega-panel .mega-heading { position: static; margin-bottom: 0; }
.mega-panel .catalog-back { margin: 0; align-self: center; min-height: 44px; font-size: 16px; }
.mega-panel [data-catalog-root-heading][hidden] { display: none; }
.mega-panel .catalog-branch-view { display: block; flex: 1 1 0; min-height: 0; }
.mega-panel .catalog-branch-view[hidden] { display: none; }
.mega-panel .catalog-panel { height: 100%; min-height: 0; margin: 0; grid-template-columns: minmax(0, .9fr) minmax(0, 1.55fr); gap: clamp(32px, 7vw, 128px); }
.mega-panel [data-catalog-stock-panel] { height: 100%; }
.mega-panel .home-catalog-feature { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 24px; height: 100%; min-height: 0; }
.mega-panel .home-catalog-feature h2 { font-size: clamp(28px, min(3.1vw, 5.7dvh), 48px); }
.mega-panel .home-catalog-photo { width: 100%; max-width: 480px; height: 100%; max-height: min(36vw, 400px); min-height: 0; align-self: end; aspect-ratio: auto; }
.mega-panel .home-catalog-subsections { display: flex; align-items: flex-end; height: 100%; min-height: 0; align-self: stretch; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
.mega-panel .home-catalog-subsections[data-overflow="true"] { align-items: flex-start; }
.mega-panel .home-catalog-nested-families { display: block; width: 100%; height: auto; column-count: 2; column-gap: clamp(24px, 3vw, 48px); column-fill: balance; }
.mega-panel .home-catalog-subsections[data-columns="3"] .home-catalog-nested-families { column-count: 3; }
.mega-panel .home-catalog-family { break-inside: avoid; margin: 0 0 14px; }
.mega-panel .home-catalog-family h3 { break-after: avoid; margin-bottom: 8px; font-size: clamp(15px, 1.1vw, 18px); }
.mega-panel .home-catalog-family:not(:has(ul)) h3 { margin: 0; font-size: 15px; }
.mega-panel .home-catalog-family li { break-inside: avoid; }
.mega-panel .home-catalog-family ul { display: block; }
.mega-panel .home-catalog-family li a { min-height: 28px; padding-block: 4px; font-size: clamp(14px, .98vw, 16px); }
.mega-panel .catalog-panel-count { display: none; }
.mega-panel .catalog-panel-descriptions { display: none; }
.catalog-menu-footer { flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; gap: 24px; min-height: 72px; margin-top: auto; }
.catalog-menu-footer .mega-stock { position: static; flex: 0 0 auto; }
.catalog-directory .catalog-panel-stack { margin-top: 48px; }
@media (max-width: 1100px) {
  .catalog-panel { --catalog-photo-width: min(100%, 36vw, 440px); }
  .mega-panel .catalog-panel { gap: 32px; }
}
@media (max-height: 480px) {
  .mega-panel .mega-grid { margin-top: 8px; }
  .mega-panel .mega-image { height: 80px; }
  .mega-panel .mega-category-title { font-size: 13px; }
}
@media (max-width: 700px) {
  .catalog-panel { --catalog-photo-width: min(100%, 360px); }
  .mega-panel .catalog-panel { grid-template-columns: 1fr; grid-template-rows: 112px minmax(0, 1fr); gap: 20px; }
  .mega-panel .home-catalog-feature { grid-template-columns: minmax(0, 1fr) 132px; grid-template-rows: 1fr; align-items: center; gap: 20px; }
  .mega-panel .home-catalog-feature h2 { font-size: 24px; }
  .mega-panel .home-catalog-photo { height: 108px; max-height: 100%; align-self: center; border-radius: 16px; }
  .mega-panel .home-catalog-subsections { display: block; }
  .mega-panel .home-catalog-nested-families, .mega-panel .home-catalog-subsections[data-columns="3"] .home-catalog-nested-families { column-count: 1; column-gap: 24px; }
  .mega-panel .home-catalog-family { margin-bottom: 18px; }
  .mega-panel .home-catalog-family li a { min-height: 36px; font-size: 14px; }
  .catalog-menu-footer { min-height: 70px; gap: 10px; padding-block: 12px; }
  .catalog-menu-footer .mega-stock { min-height: 44px; padding: 12px 18px; font-size: 14px; }
  .catalog-panel-descriptions { grid-template-columns: 1fr; gap: 24px; padding-top: 24px; }
  .catalog-panel-descriptions p { font-size: 16px; }
  .catalog-panel-stack > .catalog-panel + .catalog-panel { margin-top: 64px; }
}
