.shop-page { position: relative; // Cart .cart { display: flex; position: fixed; z-index: 100; top: 72px; right: 0; width: 100%; height: calc(100vh - 72px); @include bp (sm) { top: 24px; right: 24px; width: clamp(320px, 35vw, 500px); height: calc(100vh - 48px); max-height: 1000px; } } // Nav .shop-location { display: flex; position: fixed; z-index: 20; top: 18px; left: 20px; right: 20px; justify-content: space-between; transform: translate3d(0, -96px, 0); transition: transform 1s var(--ease-quart); transition-delay: 100ms; @include bp (sm) { top: 32px; left: 32px; right: 32px; } // Visible state &.is-visible { transform: translate3d(0,0,0); } // Left &__left { dt { color: $color-primary; font-weight: 400; line-height: 1; font-size: rem(12px); color: #fff; } dd { img { display: none; @include bp (sm) { display: inline-block; width: 14px; height: 14px; margin-right: 8px; } } select { background: none; border: none; font-size: rem(18px); color: $color-secondary; font-family: $font-serif; appearance: none; line-height: 1; @include bp (sm) { font-size: rem(24px); } option { font-size: rem(16px); } } } } } // Intro &__intro { position: relative; z-index: 30; height: 100vh; min-height: 800px; overflow: hidden; // Top Menu // Back .back { position: absolute; z-index: 2; left: 32px; top: 32px; color: #fff; text-decoration: none; font-size: rem(14px); color: $color-cream; max-width: 76px; @include bp (sm) { max-width: none; font-size: rem(18px); } } // Shop .shop-title { position: absolute; z-index: 2; top: 32px; left: 50%; transform: translateX(-50%); font-size: rem(14px); color: $color-cream; @include bp (sm) { font-size: rem(18px); } } // Site Title h1 { position: absolute; z-index: 2; top: 50%; left: 50%; width: 100%; transform: translate3d(-50%, -50%, 0); font-size: clamp(#{rem(88px)}, 10vw, #{rem(140px)}); text-align: center; span, strong { color: #fff; } } // Background Image picture { position: relative; display: flex; align-items: flex-end; width: 100%; height: 100%; background-color: $color-primary-darker; pointer-events: none; user-select: none; img { opacity: 0.55; display: block; width: 100%; height: 100%; object-fit: cover; } // Gradient &:before { display: block; content: ""; position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, rgba(45, 4, 88, 0) 84.2%, #1E0538 100%); } } // Navigation header { position: absolute; z-index: 20; bottom: 0; width: 100%; @include bp (md) { height: 80px; } .container { @include bp (md) { display: grid; grid-template-columns: 15% auto 15%; align-items: flex-end; gap: 16px; height: 100%; padding: 0 32px 32px; } } // Shop p { margin-right: auto; } // Navigation nav { ul { display: flex; align-items: center; justify-content: center; } li { display: block; } a { text-decoration: none; font-size: rem(22px); font-family: $font-serif; color: $color-tertiary; margin: 0 10px; transition: color 0.3s; &:hover { color: $color-secondary; } @include bp (sm) { font-size: rem(24px); margin: 0 12px; } } // Active .is-active { a { color: $color-secondary; } } } } } // About &__about { display: flex; background-color: $color-cream; color: $color-text; padding: 100px 0 56px; @include bp (sm) { display: grid; padding: 120px 0; } .description { font-weight: 300; max-width: 450px; margin-left: 20px; padding-right: 20px; font-size: rem(18px); white-space: pre-line; @include bp (sm) { grid-column: 3 / span 12; max-width: 560px; margin-left: 0; padding: 0; font-size: rem(22px); } } } // Posters &__posters { background-color: $color-primary-darker; padding: 56px 20px 72px; border-bottom: solid 1px $color-primary-tertiary20 ; @include bp (sm) { padding: 120px 0; } // Title h3 { grid-column: 2 / span 6; font-family: $font-serif; color: $color-cream; font-size: rem(32px); line-height: 1.1; text-align: center; margin-bottom: 24px; @include bp (sm) { grid-column: 3 / span 14; font-size: rem(48px); text-align: left; max-width: 360px; margin-bottom: 0; } } // Posters Set .set { --gap: 24px; grid-column: 1 / span 8; display: block; @include bp (sm) { grid-column: 2 / span 22; } @include bp (mob-lg) { --gap: 32px; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--gap); } @include bp (md) { grid-template-columns: repeat(3, 1fr); } @include bp (sd) { --gap: 48px; grid-template-columns: repeat(4, 1fr); } // Poster .poster { margin: 0 auto auto; // 2 columns &:nth-child(2n + 1) { @include bp (sm, max) { margin-top: calc(var(--gap) * 2); } } // 3 columns &:nth-child(3n + 1) { @include bp (sd, max) { margin-top: calc(var(--gap) * 2); } } &:nth-child(3n + 2) { @include bp (sd, max) { margin-top: var(--gap); } } // 4 columns &:nth-child(4n + 1) { @include bp (sd) { margin-top: 64px * 3; } } &:nth-child(4n + 2) { @include bp (sd) { margin-top: 64px * 2; } } &:nth-child(4n + 3) { @include bp (sd) { margin-top: 64px; } } } } // Subscribe .subscribe { grid-column: 1 / span var(--columns); max-width: 380px; margin: 72px auto 0; text-align: center; @include bp (sm) { grid-column: 14 / span 8; margin-top: 0; text-align: left; } p { font-size: rem(18px); color: $color-cream; font-weight: 300; line-height: 1.5; margin-bottom: 24px; @include bp (sm) { font-size: rem(22px); margin-bottom: 30px; } } .newsletter-form { padding: 0; margin: 0 auto; @include bp (sm) { margin: 0; } } .newsletter-form__bottom { display: none; } } } }