/* =========================================================
ODAI STUDIO
assets/studio.css
========================================================= */

*{
    box-sizing:border-box;
}

.studio_page{
    max-width:1600px;
    margin:0 auto;
    padding:0 0 60px;
}

/* =========================================================
HEADER
========================================================= */

.studio_header{
    max-width:1200px;
    margin:20px auto 100px;
    padding:0 40px;
    text-align:center;
}

.studio_title{
    margin:0;
    font-family:Georgia, serif;
    font-size:38px;
    font-weight:400;
    color:#111;
    letter-spacing:2px;
}

.studio_description{
    max-width:760px;
    margin:25px auto 0;
    font-size:18px;
    line-height:1.8;
    font-weight:300;
    color:#444;
}

/* =========================================================
EMPTY
========================================================= */

.studio_empty{
    min-height:70vh;
    display:flex;
    align-items:center;
    justify-content:center;
}

/* =========================================================
PINTEREST / MASONRY
========================================================= */

.studio_gallery{
    width:100%;
}

.studio_grid{
    column-count:4;
    column-gap:18px;
}

.studio_item{
    display:inline-block;
    width:100%;
    margin:0 0 18px;
    break-inside:avoid;
    -webkit-column-break-inside:avoid;
    cursor:pointer;
    position:relative;
}

.studio_item_inner{
    position:relative;
    overflow:hidden;
    background:#111;
}

.studio_item img{
    width:100%;
    display:block;
    transition:transform .5s ease;
    user-select:none;
    -webkit-user-drag:none;
    pointer-events:none;
}

.studio_item_overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(
        to top,
        rgba(0,0,0,.45),
        rgba(0,0,0,.05)
    );
    opacity:0;
    transition:.3s;
}

.studio_zoom_icon{
    width:58px;
    height:58px;
    border-radius:50%;
    background:rgba(255,255,255,.15);
    backdrop-filter:blur(10px);
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:34px;
    transform:scale(.85);
    transition:.3s;
}

.studio_item:hover img{
    transform:scale(1.05);
}

.studio_item:hover .studio_item_overlay{
    opacity:1;
}

.studio_item:hover .studio_zoom_icon{
    transform:scale(1);
}

/* =========================================================
PAGINATION
========================================================= */

.studio_pagination{
    margin-top:50px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.studio_page_btn{
    width:48px;
    height:48px;
    border-radius:50%;
    border:1px solid #e6e6e6;
    background:#fff;
    color:#222;
    text-decoration:none;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.25s;
    font-size:15px;
}

.studio_page_btn:hover{
    background:#111;
    color:#fff;
    border-color:#111;
}

.studio_page_btn.active{
    background:#7d1818;
    border-color:#7d1818;
    color:#fff;
}
/* =========================================================
MODAL
========================================================= */

.studio_modal{
    position:fixed;
    inset:0;
    display:none;
    opacity:0;
    transition:opacity .25s ease;
    z-index:999999;
}

.studio_modal.active{
    display:block;
    opacity:1;
}

.studio_modal_backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.94);
    backdrop-filter:blur(18px);
}

/* =========================================================
TOP BAR
========================================================= */

.studio_modal_top{
    position:absolute;
    top:20px;
    left:25px;
    right:25px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    z-index:100;
    color:#fff;
}

.studio_modal_logo{
    font-size:20px;
    font-family:Georgia, serif;
    letter-spacing:3px;
}

.studio_modal_counter{
    font-size:14px;
    opacity:.8;
    letter-spacing:1px;
}

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

.studio_modal_content{
    position:fixed;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    z-index:20;

    display:flex;
    align-items:center;
    justify-content:center;

    width:auto;
    height:auto;

    max-width:calc(100vw - 180px);
    max-height:calc(100vh - 170px);
}

.studio_modal_content img{
    display:block;

    width:auto;
    height:auto;

    max-width:calc(100vw - 180px);
    max-height:calc(100vh - 170px);

    object-fit:contain;

    border-radius:14px;
    box-shadow:0 25px 80px rgba(0,0,0,.45);

    user-select:none;
    -webkit-user-drag:none;
    pointer-events:none;

    transition:opacity .25s ease;
    animation:studioFade .25s ease;
}

@keyframes studioFade{

    from{
        opacity:0;
        transform:scale(.97);
    }

    to{
        opacity:1;
        transform:scale(1);
    }

}

/* =========================================================
BUTTONS
========================================================= */

.studio_close,
.studio_prev,
.studio_next{
    position:absolute;
    border:none;
    background:rgba(255,255,255,.10);
    backdrop-filter:blur(10px);
    color:#fff;
    cursor:pointer;
    transition:.25s;
    z-index:100;
}

.studio_close:hover,
.studio_prev:hover,
.studio_next:hover{
    background:rgba(255,255,255,.18);
}

.studio_close{
    top:15px;
    right:0;
    width:52px;
    height:52px;
    border-radius:50%;
    font-size:34px;
    line-height:52px;
}

.studio_prev,
.studio_next{
    top:50%;
    transform:translateY(-50%);
    width:58px;
    height:58px;
    border-radius:50%;
    font-size:34px;
}

.studio_prev{
    left:20px;
}

.studio_next{
    right:20px;
}

/* =========================================================
THUMBNAILS
========================================================= */

.studio_modal_thumbs{
    position:absolute;
    left:0;
    right:0;
    bottom:18px;

    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;

    padding:10px 20px;

    overflow-x:auto;
    scrollbar-width:none;

    z-index:100;
}

.studio_modal_thumbs::-webkit-scrollbar{
    display:none;
}

.studio_thumb{
    width:68px;
    height:68px;
    overflow:hidden;
    border-radius:10px;
    border:2px solid transparent;
    cursor:pointer;
    flex-shrink:0;
    opacity:.55;
    transition:.25s;
}

.studio_thumb.active{
    opacity:1;
    border-color:#fff;
    transform:scale(1.06);
}

.studio_thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    pointer-events:none;
    user-select:none;
    -webkit-user-drag:none;
}
/* =========================================================
RESPONSIVE
========================================================= */

@media (max-width:1200px){

    .studio_grid{
        column-count:3;
    }

}

@media (max-width:992px){

    .studio_header{
        padding:0 20px;
    }

    .studio_title{
        font-size:38px;
    }

    .studio_description{
        font-size:18px;
    }

}

@media (max-width:768px){

    .studio_page{
        padding:0 0 50px;
    }

    .studio_header{
        margin:20px auto 70px;
        padding:0 20px;
    }

    .studio_grid{
        column-count:2;
        column-gap:10px;
    }

    .studio_item{
        margin-bottom:10px;
    }

    .studio_modal_top{
        top:12px;
        left:12px;
        right:12px;
    }

    .studio_modal_logo{
        font-size:15px;
    }

    .studio_modal_counter{
        font-size:12px;
    }

    .studio_modal_content{
        max-width:calc(100vw - 20px);
        max-height:calc(100vh - 130px);
    }

    .studio_modal_content img{
        max-width:calc(100vw - 20px);
        max-height:calc(100vh - 130px);
    }

    .studio_prev,
    .studio_next{
        width:44px;
        height:44px;
        font-size:24px;
    }

    .studio_prev{
        left:8px;
    }

    .studio_next{
        right:8px;
    }

    .studio_close{
        width:42px;
        height:42px;
        font-size:28px;
        line-height:42px;
    }

    .studio_thumb{
        width:50px;
        height:50px;
    }

}

@media (max-width:480px){

    .studio_gallery{
        padding:0 10px;
    }

    .studio_grid{
        column-count:2;
        column-gap:8px;
    }

    .studio_item{
        margin-bottom:8px;
    }

    .studio_modal_content{
        max-width:calc(100vw - 12px);
        max-height:calc(100vh - 120px);
    }

    .studio_modal_content img{
        max-width:calc(100vw - 12px);
        max-height:calc(100vh - 120px);
    }

    .studio_modal_thumbs{
        gap:6px;
        padding:8px 10px;
    }

    .studio_thumb{
        width:46px;
        height:46px;
    }

}

/* =========================================================
PROTECTION VISUELLE
========================================================= */

img{
    -webkit-touch-callout:none;
    -webkit-user-select:none;
    -khtml-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    user-select:none;
}

.studio_item::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    border-radius:14px;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}