Files
housesof/src/style/pages/_shop.scss

312 lines
7.7 KiB
SCSS

.shop-page {
// Intro
&__intro {
position: relative;
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 {
font-size: clamp(#{rem(88px)}, 10vw, #{rem(140px)});
position: absolute;
z-index: 2;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
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;
&:hover {
color: $color-secondary;
}
@include bp (sm) {
font-size: rem(24px);
margin: 0 12px;
}
}
}
}
}
// 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);
@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);
margin-top: 72px;
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;
min-width: 368px;
}
}
.newsletter-form__bottom {
display: none;
}
}
}
}