// decorative .shop-categories { position: absolute; top: 1.5rem; left: 50%; transform: translate(-50%, 0); ul { list-style: none; display: flex; flex-direction: row; justify-content: center; align-items: center; gap: 24px; li { font-size: 20px; opacity: 0.3; white-space: nowrap; sup { font-size: 0.6em; } &.--active { opacity: 1; } } } } // decorative .products { position: relative; height: 100svh; width: 100svw; overflow: hidden; padding: var(--page-padding); display: flex; align-items: center; justify-content: center; &__grid, &__preview { height: 100%; width: 100%; display: grid; padding: 48px; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr); row-gap: 5vw; column-gap: 5vw; } &__grid { position: relative; // z-index: 5; } &__preview { position: absolute; inset: var(--page-padding); height: calc(100% - var(--page-padding) * 2); width: calc(100% - var(--page-padding) * 2); pointer-events: none; z-index: 2; } } .product { position: relative; display: block; width: 100%; height: 100%; contain: size; cursor: pointer; &:hover { .product__cta { opacity: 1; } } &__cta { opacity: 0; transition: all 0.1s ease-out; position: absolute; top: 50%; left: 0; right: 0; z-index: 5; padding: 10px 0; background-color: rgba($color: #000000, $alpha: 0.8); color: var(--color-bg); text-align: center; transform: translate(0, -50%); pointer-events: none; } } img { position: relative; object-fit: cover; width: 100%; height: 100%; } .product-preview { height: 100%; width: 100%; position: relative; grid-column: auto / span 2; grid-row: 1 / span 2; opacity: 0; &__inside { position: absolute; inset: 0; height: 100%; width: 100%; background: var(--color-bg); } &__images { display: grid; grid-template-columns: auto; grid-template-rows: auto; width: 100%; height: 100%; overflow: hidden; > img { grid-column: 1; grid-row: 1; opacity: 0; } } &__details { z-index: 3; position: absolute; top: calc(100% + 8px); left: 0; width: 100%; display: flex; justify-content: space-between; color: black; font-size: 12px; text-transform: uppercase; } }