/* ==========================================
   GALLERY PAGE
========================================== */

.gallery-page {

    min-height: calc(100vh - 140px);

    padding: 30px 4% 45px;

    background:
        linear-gradient(
            135deg,
            #fff2e6 0%,
            #fff8f2 45%,
            #e9e9e9 45%,
            #e9e9e9 100%
        );

    box-sizing: border-box;

}



/* ==========================================
   CONTAINER
========================================== */

.gallery-container {

    max-width: 1200px;

    margin: 0 auto;

}



/* ==========================================
   TITLE
========================================== */

.gallery-title {

    margin: 0 0 35px;

    text-align: center;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 42px;

    letter-spacing: 2px;

}



/* ==========================================
   CAROUSEL
========================================== */

.carousel {

    position: relative;

    width: 100%;

}



/* ==========================================
   VIEWPORT
========================================== */

.carousel-viewport {

    width: 100%;

    overflow: hidden;

}



/* ==========================================
   TRACK
========================================== */

.carousel-track {

    display: flex;

    gap: 10px;

    transition:
        transform 0.45s ease;

}



/* ==========================================
   IMAGE
========================================== */

.gallery-image {

    flex: 0 0 calc(
        (100% - 30px) / 4
    );

    width: calc(
        (100% - 30px) / 4
    );

    aspect-ratio: 3 / 4;

    object-fit: cover;

    display: block;

}



/* ==========================================
   ARROWS
========================================== */

.carousel-button {

    position: absolute;

    top: 50%;

    transform: translateY(-50%);

    z-index: 5;

    width: 54px;

    height: 54px;

    border: none;

    border-radius: 50%;

    background: rgba(
        255,
        255,
        255,
        0.95
    );

    box-shadow:
        0 2px 8px rgba(
            0,
            0,
            0,
            0.08
        );

    font-family: Arial, sans-serif;

    font-size: 42px;

    line-height: 40px;

    cursor: pointer;

    display: flex;

    align-items: center;

    justify-content: center;

    transition:
        transform 0.2s ease,
        background 0.2s ease;

}


.carousel-button:hover {

    background: white;

}


.carousel-button-left {

    left: -27px;

}


.carousel-button-right {

    right: -27px;

}



/* ==========================================
   DESCRIPTION
========================================== */

.gallery-description {

    margin-top: 30px;

    text-align: center;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 18px;

    line-height: 1.6;

    color: #333;

}


.gallery-description p {

    margin: 0;

}



/* ==========================================
   TABLET
========================================== */

@media (max-width: 900px) {

    .gallery-page {

        padding:
            30px
            5%
            45px;

    }


    .gallery-image {

        flex: 0 0 calc(
            (100% - 20px) / 3
        );

        width: calc(
            (100% - 20px) / 3
        );

    }


    .gallery-title {

        font-size: 36px;

    }

}



/* ==========================================
   PHONE
========================================== */

@media (max-width: 600px) {

    .gallery-page {

        padding:
            25px
            5%
            40px;

    }


    .gallery-title {

        font-size: 28px;

        margin-bottom: 25px;

        letter-spacing: 1px;

    }


    .carousel-track {

        gap: 0;

    }


    /*
       ONE IMAGE AT A TIME
    */

    .gallery-image {

        flex: 0 0 100%;

        width: 100%;

        aspect-ratio: 3 / 4;

    }


    .carousel-button {

        width: 45px;

        height: 45px;

        font-size: 34px;

    }


    .carousel-button-left {

        left: -10px;

    }


    .carousel-button-right {

        right: -10px;

    }


    .gallery-description {

        margin-top: 25px;

        font-size: 16px;

    }

}