/* =========================================
   RESET
========================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    min-height: 100%;
}

body {
    font-family: 'Montserrat', sans-serif;
    background: #eeeaea;
    color: #111111;
}


/* =========================================
   MAIN PAGE
========================================= */

.category-page {
    position: relative;

    width: 100%;
    min-height: 100vh;
    min-height: 100svh;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    background: #f5f5f5;
}


/* =========================================
   DECORATION
========================================= */

.category-page::before {
    content: "";

    position: absolute;

    width: 420px;
    height: 420px;

    border: 1px solid #dddddd;
    border-radius: 50%;

    top: -180px;
    right: -120px;
}

.category-page::after {
    content: "";

    position: absolute;

    width: 280px;
    height: 280px;

    border: 1px solid #dddddd;
    border-radius: 50%;

    bottom: -150px;
    left: -100px;
}


/* =========================================
   CONTENT
========================================= */

.category-content {
    position: relative;
    z-index: 2;

    width: min(90%, 900px);

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;
}


/* =========================================
   BRAND
========================================= */

.brand {
    margin-bottom: clamp(40px, 7vh, 75px);

    font-size: clamp(16px, 2vw, 22px);
    font-weight: 700;

    letter-spacing: clamp(3px, 0.5vw, 6px);

    color: #111111;

    opacity: 0;

    animation: fadeDown 0.8s ease forwards;
}

.brand span {
    color: #777777;
}


/* =========================================
   SUBTITLE
========================================= */

.subtitle {
    margin-bottom: 12px;

    font-size: clamp(8px, 1vw, 12px);
    font-weight: 500;

    letter-spacing: clamp(4px, 0.6vw, 8px);

    color: #777777;

    opacity: 0;

    animation: fadeUp 0.8s ease 0.15s forwards;
}


/* =========================================
   TITLE
========================================= */

.category-content h1 {
    margin-bottom: clamp(30px, 5vh, 50px);

    font-size: clamp(42px, 7vw, 82px);

    line-height: 0.9;

    font-weight: 800;

    letter-spacing: clamp(-3px, -0.3vw, -1px);

    color: #111111;

    opacity: 0;

    animation: fadeUp 0.8s ease 0.25s forwards;
}


/* =========================================
   CATEGORY LIST
========================================= */

.category-list {
    width: 100%;
    max-width: 700px;

    display: flex;
    flex-direction: column;

    border-top: 1px solid #cccccc;
}


/* =========================================
   CATEGORY ITEM
========================================= */

.category-item {
    position: relative;

    width: 100%;

    min-height: clamp(70px, 8vw, 95px);

    display: grid;

    grid-template-columns: 70px 1fr 70px;

    align-items: center;

    padding: 0 25px;

    border-bottom: 1px solid #cccccc;

    color: #111111;

    text-decoration: none;

    overflow: hidden;

    opacity: 0;

    animation: categoryIn 0.8s ease forwards;

    transition:
        color 0.35s ease,
        padding 0.35s ease;
}


/* Animation delay */

.category-item:nth-child(1) {
    animation-delay: 0.4s;
}

.category-item:nth-child(2) {
    animation-delay: 0.5s;
}

.category-item:nth-child(3) {
    animation-delay: 0.6s;
}

.category-item:nth-child(4) {
    animation-delay: 0.7s;
}


/* Hover Background */

.category-item::before {
    content: "";

    position: absolute;

    inset: 0;

    background: #111111;

    transform: translateX(-101%);

    transition: transform 0.4s ease;

    z-index: -1;
}

.category-item:hover::before {
    transform: translateX(0);
}


/* =========================================
   NUMBER
========================================= */

.number {
    text-align: left;

    font-size: clamp(9px, 1vw, 12px);
    font-weight: 500;

    letter-spacing: 2px;

    color: #999999;

    transition: color 0.35s ease;
}


/* =========================================
   CATEGORY NAME
========================================= */

.category-name {
    text-align: center;

    font-size: clamp(20px, 3vw, 32px);

    font-weight: 700;

    letter-spacing: clamp(2px, 0.4vw, 5px);

    transition:
        transform 0.35s ease,
        color 0.35s ease;
}


/* =========================================
   ARROW
========================================= */

.arrow {
    text-align: right;

    font-size: clamp(18px, 2vw, 25px);

    color: #777777;

    transition:
        transform 0.35s ease,
        color 0.35s ease;
}


/* =========================================
   HOVER EFFECT
========================================= */

.category-item:hover {
    color: #ffffff;

    padding-left: 35px;
}

.category-item:hover .number {
    color: #999999;
}

.category-item:hover .category-name {
    transform: translateX(8px);

    color: #ffffff;
}

.category-item:hover .arrow {
    color: #ffffff;

    transform: translateX(8px);
}


/* =========================================
   BOTTOM TEXT
========================================= */

.bottom-text {
    position: absolute;

    z-index: 2;

    left: 50%;
    bottom: clamp(18px, 3vh, 30px);

    transform: translateX(-50%);

    width: 90%;

    text-align: center;

    font-size: clamp(6px, 0.7vw, 9px);

    font-weight: 500;

    letter-spacing: clamp(2px, 0.4vw, 5px);

    color: #999999;

    white-space: nowrap;

    opacity: 0;

    animation: fadeUp 0.8s ease 0.9s forwards;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 768px) {

    .category-content {
        width: 88%;
    }

    .brand {
        margin-bottom: 55px;
    }

    .category-content h1 {
        margin-bottom: 35px;
    }

    .category-list {
        max-width: 600px;
    }

    .category-item {
        grid-template-columns: 50px 1fr 50px;

        padding: 0 15px;
    }

    .category-item:hover {
        padding-left: 22px;
    }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 480px) {

    .category-content {
        width: 88%;
    }

    .brand {
        margin-bottom: 45px;

        font-size: 14px;

        letter-spacing: 3px;
    }

    .subtitle {
        font-size: 8px;

        letter-spacing: 4px;
    }

    .category-content h1 {
        margin-bottom: 28px;

        font-size: 48px;
    }

    .category-item {
        min-height: 70px;

        grid-template-columns: 35px 1fr 35px;

        padding: 0 8px;
    }

    .category-item:hover {
        padding-left: 12px;
    }

    .number {
        font-size: 8px;
    }

    .category-name {
        font-size: 20px;

        letter-spacing: 2px;
    }

    .arrow {
        font-size: 17px;
    }

    .bottom-text {
        bottom: 16px;

        font-size: 6px;

        letter-spacing: 2px;
    }

    .category-page::before {
        width: 250px;
        height: 250px;

        top: -130px;
        right: -100px;
    }

    .category-page::after {
        width: 180px;
        height: 180px;

        bottom: -100px;
        left: -80px;
    }

}


/* =========================================
   SMALL MOBILE
========================================= */

@media (max-width: 360px) {

    .brand {
        margin-bottom: 35px;

        font-size: 12px;
    }

    .category-content h1 {
        font-size: 42px;

        margin-bottom: 24px;
    }

    .category-item {
        min-height: 62px;

        grid-template-columns: 30px 1fr 30px;
    }

    .category-name {
        font-size: 17px;
    }

    .arrow {
        font-size: 15px;
    }

}


/* =========================================
   ANIMATION
========================================= */

@keyframes fadeUp {

    from {
        opacity: 0;

        transform: translateY(25px);
    }

    to {
        opacity: 1;

        transform: translateY(0);
    }

}


@keyframes fadeDown {

    from {
        opacity: 0;

        transform: translateY(-20px);
    }

    to {
        opacity: 1;

        transform: translateY(0);
    }

}


@keyframes categoryIn {

    from {
        opacity: 0;

        transform: translateY(20px);
    }

    to {
        opacity: 1;

        transform: translateY(0);
    }

}