@import url(./Variables.css);

/* Utilities */
.full-width {
    width: 100%;
}

.full-height {
    height: 100%;
}


.half-width {
    width: 100%;
}

@media (min-width: 768px) {
    .half-width {
        width: 50%;
    }
}

/* Puff list block */
.puff-list {
    width: 100%;
    font-size: 16px;
    margin-bottom: 1em;
}
.puff-list__container {
    display: flex;
    flex-direction: column;
    width: 100%;
}

@media (min-width: 768px) {
    .puff-list__container {
        /* grid-template-columns: repeat(3, 1fr); */
        gap: 20px;
        flex-direction: row;

    }
}

/* Puff block */
.puff {
    position: relative;
    display: grid;
    align-items: end;
    aspect-ratio: 1/1;
    font-size: 1em;
    flex-basis: 30%;
    flex-grow: 1;

    background-repeat: no-repeat;
    background-size: cover;
}

.puff__image,
.puff__backdrop {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
}

.puff__image {
    object-fit: cover;
    object-position: center;
}

.puff__backdrop {
    background-image: linear-gradient(
        rgba(0,0,0,0),
        rgba(0,0,0,.4)
    );
}

.puff__content {
    position: relative;
    color: var(--header-white);
    padding: .667em;
    line-height: 29px;
    font-size: 1.5em;
    font-family: var(--serif-font);
    font-weight: 300;
}

.puff__content p,
.puff__content h2,
.puff__content h3,
.puff__content h4,
.puff__content h5,
.puff__content h6 {
    margin-top: 0;
}

.puff__button-text {
    font-weight: 700;
    line-height:24px;
    font-size: .667em;
    font-family: var(--sans-font);
}

/* Category image block / 4-puff block */
.category-image-block {
    width: 100%;

    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1em;
    font-size: 16px;
    padding: 1em;
    margin: 1em 0;
}

.category-image__image {
    width: 100%;
    object-fit: cover;
    aspect-ratio: 4/3;
    margin-bottom: -3px;
}

.category-image__button {
    width: 100%;
    background: var(--sand);
    color: var(--text-gray);
    text-align: center;
    padding: 1em 0;
    font-size: .875em;
    font-weight: 600;
}

@media (min-width: 868px) {
    .category-image-block {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        flex-wrap: wrap;
        padding: 0;

        max-width: 1440px;
        margin: 2em auto;
        padding: 0 2em;
    }
    .category-image {
        /* width: 100%; */
        flex-basis: 23.5%
    }
}

/* Text block */
.text-block {
    padding: 8px 16px;
    margin-top: 16px;
    font-size: 16px;
    font-family: var(--sans-font);
}

.text-block h1,
.text-block h2,
.text-block h3,
.text-block h4,
.text-block h5,
.text-block h6 {
    font-family: var(--serif-font);
    word-break: break-word;
}

.text-block.text-block--half {
    margin-top: 0;
    height: 100%;

    display: grid;
    align-items: center;
    padding: 2em 1em;
}

.text-block__disclaimer {
    margin: 4em auto 0;
    max-width: fit-content;
    font-size: .875em;
    font-family: var(--serif-font);
}

.text-block__button {
    display: block;
    width: fit-content;
    margin: 2em auto 0;
}

.text-block img {
    max-width: 100%;
    object-fit: contain;
}

.text-block ul li{
    list-style-type: disc;
}

.text-block ol li{
    list-style-type: decimal;
}

@media (min-width: 768px) {
    .text-block {
        margin: 56px 0px 16px 0px;
    }
    .text-block.text-block--half {
        padding: 2em 2em;
    }
}


/* Products block */
.products-block {
    width: 100%;
    margin-bottom: 2em;
    margin-top: .5em;
}

.products-block__list {
    list-style: none;
    display: grid;
    grid-template-columns:  repeat(2, 1fr);
    width: 100%;
    padding: 0;
    margin: 0;
}

.products-block__list li:nth-child(odd) a {
    border-right: .5px solid rgba(0,0,0,.1);
}

.products-block__list li {
    border-bottom: .5px solid rgba(0,0,0,.15);
}

@media (min-width: 480px) {
    .products-block__list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 768px) {
    .products-block {
        background: linear-gradient(to bottom, rgba(0,0,0,0) 5%, var(--lt-gray) 10%, var(--lt-gray) 95%, rgba(0,0,0,0) 100%);
    }
    .products-block__list {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
    .products-block__list li:nth-child(odd) a {
        border-right: none;
    }
    .products-block__list li {
        border-bottom: none;
    }
}

/* Inspiration block */
.inspiration-list {
    width: 100%;
}

.inspiration-block {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 1/1;
    display: grid;
    place-items: center;
}

.inspiration-block__image {
    position: absolute;
    width: 100%;
    height: 100%;
}

.inspiration-block__backdrop {
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: .3;
    background: #000;
}

.inspiration-block__content {
    position: relative;
    height: 100%;
    color: var(--white);
    display: grid;
    place-items: center;
    text-align: center;
    font-size: 16px;
    padding: 2em;
}

.inspiration-block__content h2 {
    font-size: 2em;
    font-family: var(--serif-font);
    padding: 0;
}

.inspiration-block__content h2 .heroTitle {
    font-size: 1em;
}

@media (min-width: 768px) {
    .inspiration-list {
        display: flex;
        flex-direction: row;
    }
    .inspiration-block__content .rich-text p {
        font-size: 1.5em;
    }
    .inspiration-block__content h2 {
        font-size: 2.5em;
    }
    .inspiration-block__content {
        padding: 2em;
    }
}

/* Image/hero block */
.image-block {
    position: relative;
    padding: 1em;
    display: grid;
    place-items: center;
    font-size: 16px;
    min-height: 500px;
    height: 70dvh;
}

.image-block--half {
    height: 50dvh;
}

.image-block__link {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.image-block__image {
    position: absolute;
    z-index: -1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    inset: 0;
}

.image-block__backdrop {
    position: absolute;
    width: 100%;
    height: 100%;
    inset: 0;
    background: rgba(0,0,0,.3)
}

.image-block__content {
    position: absolute;
    text-align: center;
    color: #fff;
    max-width: 1100px;
    font-weight: 400;
}

.image-block__button {
    display: block;
    max-width: fit-content;
    margin: 2.5em auto 0;
}

.image-block__disclaimer {
    margin: auto auto 0;
    max-width: fit-content;
    font-size: .875em;
    color: #fff;
    font-family: var(--sans-font);
    position: absolute;
    bottom: 1em;
    left: 0;
    right: 0;
}
