/* LXF-350 / LXF-356. LXF homepage only, load after existing overlays.
   Layout/interaction ownership only: no font, icon or source-image changes. */
html.luxifer body.type-index .homepage-grid {
  min-width: 0;
}
/* Six photographic categories form real rows, not four flattened banners. */
html.luxifer body.type-index .homepage-grid.profi_komponenty .homepage-items {
  display: grid !important;
  gap: 12px !important;
  padding: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  min-width: 0;
}
html.luxifer body.type-index .homepage-grid.profi_komponenty .homepage-items .homepage-item {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  min-height: 0 !important;
  max-height: none;
  height: auto !important;
  aspect-ratio: 1 !important;
}
html.luxifer body.type-index .homepage-grid.profi_komponenty .homepage-item img {
  object-fit: contain;
}
/* Keep the logos inside the image at hover as well. */
html.luxifer body.type-index .homepage-grid.profi_komponenty :is(.homepage-item,.homepage-main):hover img {
  transform: none;
}
html.luxifer body.type-index .homepage-grid.profi_komponenty .homepage-main img {
  object-fit: contain;
  object-position: center top;
}
@media (width > 1333px) {
  html.luxifer body.type-index .homepage-grid.profi_komponenty {
    grid-template-columns: minmax(0,1fr) minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);
    gap: 12px;
    align-items: stretch;
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty > .homepage-items {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty > .homepage-items ~ .homepage-items {
    grid-template-columns: minmax(0,1fr);
  }
}
@media (min-width: 1200px) and (max-width: 1333px) {
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged {
    grid-template-columns: minmax(0,3fr) minmax(0,2fr) !important;
    align-items: stretch;
    gap: 12px !important;
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged .homepage-items.profi-list {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    width: 100% !important;
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged .profi-hero-square {
    width: 100%; max-width: none; aspect-ratio: auto;
    grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px;
    align-self: stretch;
  }
}
html.luxifer body.type-index .homepage-grid.profi_komponenty .homepage-main {
  min-width: 0;
  min-height: 0;
  background: #202020;
}
@media (width < 1200px) {
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged {
    grid-template-columns: minmax(0,1fr) !important;
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged .homepage-items.profi-list {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged .profi-hero-square {
    width: min(100%,600px); max-width: none; aspect-ratio: auto;
    justify-self: center; margin-inline: auto;
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged .profi-hero-square .homepage-main {
    height: auto; min-height: 400px; aspect-ratio: 1 / 2;
  }
}
@media (max-width: 575px) {
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged .homepage-items.profi-list {
    grid-template-columns: minmax(0,1fr) !important;
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged .profi-hero-square {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged .profi-hero-square .homepage-main {
    min-height: 430px; aspect-ratio: auto;
  }
  html.luxifer body.type-index .homepage-grid.profi_komponenty .homepage-main .homepage-content {
    padding-inline: 12px !important;
  }
}
/* Accessory images retain their complete square composition. Labels take their
   own space so a narrow card never puts text over the product. */
html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) {
  grid-template-columns: minmax(0,2fr) minmax(0,3fr);
  align-items: stretch;
}
html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) > .homepage-items {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 12px !important;
}
html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) .homepage-item {
  width: 100% !important; max-width: none !important; min-width: 0;
  height: auto !important; min-height: 0 !important; aspect-ratio: auto !important;
  display: flex; flex-direction: column;
  padding-bottom: 16px !important;
}
html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) .homepage-item > a {
  position: relative; inset: auto; display: block; aspect-ratio: 1;
}
html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) .homepage-item img {
  display: block; object-fit: contain;
}
html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) .homepage-item > :is(h3,p) {
  position: static; margin: 8px 12px 0;
}
html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) > .homepage-main {
  height: auto; min-height: 420px;
}
html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) > .homepage-main .homepage-content {
  background: linear-gradient(180deg, transparent, rgba(20,20,20,.52) 35%, rgba(20,20,20,.82));
}
@media (width < 1200px) {
  html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) {
    grid-template-columns: minmax(0,1fr);
  }
  html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) > .homepage-main {
    height: 420px; min-height: 0;
  }
}
@media (max-width: 575px) {
  html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) > .homepage-items {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
  html.luxifer body.type-index .homepage-grid:not(.profi_komponenty) > .homepage-main {
    height: 360px;
  }
}
html.luxifer body.type-index .lxf-scroll-controls[hidden] { display: none !important; }
html.luxifer body.type-index :is(.homepage-grid-projekty,.homepage-systems_l_seznam,.homepage-systems_imgs) {
  scroll-padding-inline: 4px;
}
html.luxifer body.type-index :is(.homepage-grid-projekty,.homepage-systems_l_seznam,.homepage-systems_imgs):focus-visible {
  outline: 2px solid #24242e; outline-offset: 4px;
}

html.luxifer body.type-index .homepage-systems_l_seznam h4:focus-visible {
  outline: 2px solid #24242e; outline-offset: 4px;
}
html.luxifer body.type-index .homepage-systems_l_seznam h4[role="button"] {
  min-height: 44px; display: flex; align-items: center;
}
html.luxifer body.type-index .homepage-systems_media > .lxf-scroll-controls { grid-area: photo-controls; }
@media (max-width: 900px) {
  html.luxifer body.type-index .homepage-grid-systems {
    grid-template-areas: "title" "list" "main" "photo-controls" "thumbs" "cta" !important;
  }
}

@media (min-width: 480px) and (max-width: 575px) {
  html.luxifer body.type-index .homepage-grid.profi_komponenty.profi-merged .homepage-items.profi-list {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}

html.luxifer body.type-index .lxf-system-photo-controls button {
  width: auto; min-width: 44px; min-height: 44px; padding-inline: 12px;
}
