/* =========================================
   SHOP BY CATEGORY
========================================= */

.category-section {

    position: relative;

    padding: 125px 0 135px;

    background: var(--cream);

}


/* =========================================
   CONTAINER
========================================= */

.category-container {

    width: min(1400px, 90%);

    margin: auto;

}


/* =========================================
   HEADING
========================================= */

.category-heading {

    max-width: 720px;

    margin: 0 auto 65px;

    text-align: center;

}

.category-heading .section-eyebrow {

    display: block;

    margin-bottom: 17px;

    color: var(--gold);

    font-size: 9px;

    font-weight: 500;

    letter-spacing: 3.5px;

    text-transform: uppercase;

}

.category-heading h2 {

    margin-bottom: 20px;

    font-family: var(--serif);

    font-size: clamp(48px, 5vw, 72px);

    font-weight: 400;

    line-height: 0.95;

    letter-spacing: -1px;

    color: var(--black);

}

.category-heading p {

    max-width: 530px;

    margin: auto;

    font-size: 13px;

    font-weight: 300;

    line-height: 1.9;

    color: var(--muted);

}


/* =========================================
   CATEGORY GRID
========================================= */

.category-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 18px;

}


/* =========================================
   CATEGORY CARD
========================================= */

.category-card {

    position: relative;

    display: block;

    height: 530px;

    overflow: hidden;

    background: #e9e4dc;

}


/* =========================================
   IMAGE
========================================= */

.category-image {

    position: absolute;

    inset: 0;

    overflow: hidden;

}

.category-image::after {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,0.02) 35%,
            rgba(0,0,0,0.62) 100%
        );

    z-index: 1;

}

.category-image img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition:
        transform 0.9s cubic-bezier(.2,.65,.25,1);

}


/* =========================================
   HOVER IMAGE
========================================= */

.category-card:hover .category-image img {

    transform: scale(1.07);

}


/* =========================================
   CARD CONTENT
========================================= */

.category-content {

    position: absolute;

    left: 28px;

    right: 28px;

    bottom: 27px;

    z-index: 3;

    color: var(--white);

}


/* NUMBER */

.category-content > span {

    display: block;

    margin-bottom: 10px;

    font-family: var(--sans);

    font-size: 8px;

    font-weight: 400;

    letter-spacing: 2px;

    opacity: 0.75;

}


/* TITLE */

.category-content h3 {

    margin-bottom: 16px;

    font-family: var(--serif);

    font-size: 42px;

    font-weight: 400;

    line-height: 1;

}


/* =========================================
   CATEGORY LINK
========================================= */

.category-link {

    display: flex;

    align-items: center;

    gap: 10px;

    width: fit-content;

    padding-bottom: 7px;

    border-bottom: 1px solid rgba(255,255,255,0.55);

    font-size: 8px;

    font-weight: 500;

    letter-spacing: 1.7px;

    text-transform: uppercase;

    transition:
        gap 0.35s ease,
        border-color 0.35s ease;

}

.category-link span {

    font-size: 14px;

    line-height: 0;

}

.category-card:hover .category-link {

    gap: 16px;

    border-color: var(--white);

}


/* =========================================
   VIEW ALL
========================================= */

.category-view-all {

    display: flex;

    justify-content: center;

    margin-top: 55px;

}

.category-main-link {

    position: relative;

    display: flex;

    align-items: center;

    gap: 13px;

    padding-bottom: 8px;

    border-bottom: 1px solid var(--black);

    font-size: 9px;

    font-weight: 500;

    letter-spacing: 2px;

    text-transform: uppercase;

    color: var(--black);

    transition:
        gap 0.3s ease,
        color 0.3s ease;

}

.category-main-link span {

    font-size: 15px;

    line-height: 0;

}

.category-main-link:hover {

    gap: 19px;

    color: var(--gold);

}


/* =========================================
   TABLET
========================================= */

@media (max-width: 1100px) {

    .category-section {

        padding: 100px 0;

    }

    .category-grid {

        grid-template-columns: repeat(2, 1fr);

        gap: 16px;

    }

    .category-card {

        height: 500px;

    }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 600px) {

    .category-section {

        padding: 80px 0 90px;

    }

    .category-container {

        width: 88%;

    }

    .category-heading {

        margin-bottom: 42px;

    }

    .category-heading h2 {

        font-size: 48px;

        line-height: 0.95;

    }

    .category-heading p {

        font-size: 12px;

        line-height: 1.8;

    }

    .category-grid {

        grid-template-columns: 1fr;

        gap: 12px;

    }

    .category-card {

        height: 450px;

    }

    .category-content {

        left: 24px;

        right: 24px;

        bottom: 24px;

    }

    .category-content h3 {

        font-size: 39px;

    }

    .category-view-all {

        margin-top: 40px;

    }

}