/*==================================================
GALLERY PAGE
Awaken Your Inner Compass
==================================================*/


/* =================================================
   RESET / PAGE BASE
================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background: #FAF8F4;
    color: #222;
    font-family: Inter, sans-serif;
    overflow-x: hidden;
}

img {
    width: 100%;
    display: block;
}


/* =================================================
   GALLERY HERO
================================================= */

.gallery-hero {
    position: relative;
    min-height: 100vh;

    display: flex;
    justify-content: center;
    align-items: center;

    text-align: center;

    padding: 60px;

    overflow: hidden;
}


/* Background image element */

.gallery-hero-bg {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    opacity: .25;

    transform: scale(1.05);

    z-index: 0;
}


/* Soft cream overlay */

.gallery-hero-overlay {
    position: absolute;
    inset: 0;

    background: rgba(250, 248, 244, .25);

    z-index: 1;
}


/* Hero container */

.gallery-hero .container {
    position: relative;

    z-index: 2;
}


/* Hero content */

.gallery-hero-content {
    max-width: 800px;

    margin: auto;
}


.gallery-hero-content .label,
.gallery-hero .section-label {
    display: block;

    margin-bottom: 20px;

    font-size: .85rem;
    letter-spacing: 5px;

    text-transform: uppercase;

    color: #C8A15A;
}


.gallery-hero-content h1 {
    margin-bottom: 30px;

    font-family: "Cormorant Garamond", serif;

    font-size: 4rem;
    font-weight: 400;
    line-height: 1.15;

    color: #222;
}


.gallery-hero-content p {
    max-width: 550px;

    margin: auto;

    font-size: 1.2rem;
    line-height: 1.8;

    color: #666;
}


/* =================================================
   COLLECTION
================================================= */

.collection {
    width: min(1300px, 92%);

    margin: auto;

    padding: 100px 0;
}


/* =================================================
   SECTION TITLE
================================================= */

.section-title {
    margin-bottom: 50px;
}


.section-title h2 {
    margin-bottom: 10px;

    font-family: "Cormorant Garamond", serif;

    font-size: 2.2rem;
    font-weight: 400;

    color: #222;
}


.section-title p {
    color: #666;
}


/* =================================================
   GALLERY GRID / MASONRY
================================================= */

.gallery {
    columns: 3 320px;

    column-gap: 25px;
}


/* =================================================
   GALLERY ITEM
================================================= */

.gallery-item {
    position: relative;

    margin-bottom: 25px;

    overflow: hidden;

    break-inside: avoid;

    border-radius: 18px;

    cursor: pointer;

    box-shadow:
        0 15px 40px rgba(0, 0, 0, .08);

    transition:
        transform .45s ease,
        box-shadow .45s ease;
}


.gallery-item:hover {
    transform: translateY(-10px);

    box-shadow:
        0 28px 70px rgba(0, 0, 0, .12);
}


/* =================================================
   GALLERY IMAGE
================================================= */

.gallery-item img {
    transition: transform .8s ease;
}


.gallery-item:hover img {
    transform: scale(1.04);
}


/* =================================================
   IMAGE COUNTER
================================================= */

.gallery-counter {
    margin-top: 8px;

    font-size: 16px;

    color: #bdbdbd;
}


/* =================================================
   PAPER FADE
================================================= */

.paper-fade {
    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    height: 75%;

    background:
        linear-gradient(
            rgba(250, 248, 244, 0),
            rgba(250, 248, 244, .35) 20%,
            rgba(250, 248, 244, .85) 55%,
            #FAF8F4 100%
        );

    transition: height .5s ease;
}


.gallery-item:hover .paper-fade {
    height: 35%;
}


/* =================================================
   IMAGE TEXT
================================================= */

.overlay-text {
    position: absolute;

    left: 25px;
    bottom: 25px;

    font-size: .9rem;
    letter-spacing: 1px;

    color: #8b6a3f;

    opacity: 0;

    transform: translateY(0);

    transition:
        opacity .45s ease,
        transform .45s ease;
}


.gallery-item:hover .overlay-text {
    opacity: 1;

    transform: translateY(-6px);
}


/* =================================================
   IMAGE BLUR EFFECT
================================================= */

.image-blur {
    position: absolute;

    inset: 0;

    pointer-events: none;

    opacity: .45;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    transition: opacity .6s ease;
}


/* Optional clearer image on hover */

.gallery-item:hover .image-blur {
    opacity: .15;
}


/* =================================================
   RESPONSIVE
================================================= */

@media (max-width: 900px) {

    .gallery-hero {
        min-height: 80vh;

        padding: 100px 30px 70px;
    }


    .gallery-hero-content h1 {
        font-size: 3.2rem;
    }


    .gallery-hero-content p {
        font-size: 1.08rem;
    }


    .collection {
        padding: 80px 0;
    }


    .gallery {
        columns: 2 280px;
    }

}


@media (max-width: 600px) {

    .gallery-hero {
        min-height: 72vh;

        padding: 110px 20px 60px;
    }


    .gallery-hero-content h1 {
        font-size: 2.6rem;
    }


    .gallery-hero-content p {
        font-size: 1rem;

        line-height: 1.7;
    }


    .collection {
        width: min(92%, 520px);

        padding: 65px 0;
    }


    .section-title {
        margin-bottom: 35px;
    }


    .section-title h2 {
        font-size: 2rem;
    }


    .gallery {
        columns: 1;
    }


    .gallery-item {
        margin-bottom: 20px;
    }

}