/*======================================
            HERO GALERÍA
======================================*/

.gallery-hero{
    padding:140px 0 80px;
    background:#111;
}

.gallery-hero-grid{
    display:grid;
    grid-template-columns:40% 60%;
    gap:55px;
    align-items:center;
}

.gallery-subtitle{
    display:inline-flex;
    align-items:center;
    gap:18px;
    color:var(--color-primary);
    font-size:15px;
    font-weight:700;
    letter-spacing:3px;
    text-transform:uppercase;
}

.gallery-subtitle::after{
    content:"";
    width:100px;
    height:1px;
    background:rgba(218,170,59,.45);
}

.gallery-content h1{
    margin:22px 0;
    color:#fff;
    font-size:64px;
    line-height:1.05;
}

.gallery-content h1 span{
    color:var(--color-primary);
}

.gallery-content p{
    color:#bdbdbd;
    font-size:18px;
    line-height:1.9;
    max-width:520px;
}

.gallery-cover img{
    width:100%;
    height:520px;
    object-fit:cover;
    border-radius:24px;
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 30px 70px rgba(0,0,0,.45);
}

/*======================================
            GRID
======================================*/

.gallery-section{
    background:#111;
    padding:64px 0 120px;
    border-top:1px solid rgba(255,255,255,.08);
}

.gallery-grid{
    column-count:4;
    column-gap:22px;
}

.gallery-card{
    appearance:none;
    position:relative;
    display:block;
    width:100%;
    margin:0 0 22px;
    padding:0;
    overflow:hidden;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.08);
    background:#181818;
    color:#fff;
    font:inherit;
    text-align:left;
    cursor:zoom-in;
    break-inside:avoid;
    box-shadow:0 12px 28px rgba(0,0,0,.22);
    transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;
}

.gallery-card img{
    width:100%;
    height:auto;
    display:block;
    transition:transform .45s ease,filter .35s ease;
}

.gallery-zoom{
    position:absolute;
    right:16px;
    bottom:16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:9px 15px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    background:rgba(10,10,10,.82);
    color:#fff;
    font-size:13px;
    font-weight:700;
    letter-spacing:.04em;
    opacity:0;
    transform:translateY(8px);
    transition:opacity .3s ease,transform .3s ease,background .3s ease,color .3s ease;
    pointer-events:none;
}

.gallery-card:hover{
    transform:translateY(-4px);
    border-color:rgba(218,170,59,.55);
    box-shadow:0 20px 42px rgba(0,0,0,.38);
}

.gallery-card:hover img{
    transform:scale(1.025);
    filter:brightness(.88);
}

.gallery-card:hover .gallery-zoom,
.gallery-card:focus-visible .gallery-zoom{
    opacity:1;
    transform:translateY(0);
}

.gallery-card:focus-visible{
    outline:3px solid var(--color-primary);
    outline-offset:4px;
}

.gallery-card:focus-visible .gallery-zoom{
    background:var(--color-primary);
    color:#111;
}

body.lightbox-open{
    overflow:hidden;
}

.lightbox-figure{
    display:flex;
    flex-direction:column;
    align-items:center;
    width:min(1100px,calc(100vw - 220px));
    max-height:calc(100vh - 120px);
    margin:0;
}

.lightbox .lightbox-content{
    width:auto;
    max-width:100%;
    max-height:calc(100vh - 175px);
}

.lightbox-caption{
    margin-top:14px;
    color:#f0f0f0;
    font-size:15px;
    line-height:1.45;
    text-align:center;
}

.lightbox-close:focus-visible,
.lightbox-prev:focus-visible,
.lightbox-next:focus-visible{
    outline:3px solid var(--color-primary);
    outline-offset:3px;
}

.gallery-more{
    text-align:center;
    margin-top:55px;
}

/*======================================
            RESPONSIVE
======================================*/

@media(max-width:1200px){

.gallery-hero-grid{
    grid-template-columns:minmax(0,42%) minmax(0,58%);
    gap:40px;
}

.gallery-content h1{
    font-size:56px;
}

.gallery-cover img{
    height:460px;
}

.gallery-grid{
    column-count:3;
}

}

@media(max-width:900px){

.gallery-hero{
    padding:124px 0 64px;
}

.gallery-hero-grid{
    grid-template-columns:1fr;
    gap:36px;
}

.gallery-grid{
    column-count:2;
}

.gallery-cover img{
    height:360px;
    border-radius:20px;
}

.gallery-content h1{
    font-size:48px;
}

.gallery-content p{
    max-width:680px;
}

.gallery-section{
    padding:48px 0 88px;
}

.gallery-more{
    margin-top:42px;
}

}

@media(max-width:768px){

.gallery-hero{
    padding:116px 0 52px;
}

.gallery-subtitle{
    gap:14px;
    font-size:13px;
    letter-spacing:2px;
}

.gallery-subtitle::after{
    width:70px;
}

.gallery-content h1{
    margin:18px 0;
    font-size:40px;
}

.gallery-content p{
    font-size:16px;
    line-height:1.75;
}

.gallery-cover img{
    height:320px;
}

}

@media(max-width:600px){

.gallery-grid{
    column-count:1;
}

.gallery-content h1{
    font-size:36px;
}

.gallery-cover img{
    height:auto;
    aspect-ratio:4 / 3;
}

.gallery-more .btn-primary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:320px;
}

}

@media(max-width:480px){

.gallery-hero{
    padding:108px 0 44px;
}

.gallery-hero-grid{
    gap:28px;
}

.gallery-subtitle{
    font-size:12px;
}

.gallery-subtitle::after{
    width:52px;
}

.gallery-content h1{
    margin:16px 0;
    font-size:32px;
    line-height:1.1;
}

.gallery-content p{
    font-size:15px;
    line-height:1.65;
}

.gallery-cover img{
    border-radius:16px;
}

.gallery-section{
    padding:36px 0 72px;
}

.gallery-more{
    margin-top:34px;
}

.lightbox-figure{
    width:calc(100vw - 28px);
    max-height:calc(100vh - 150px);
}

.lightbox .lightbox-content{
    max-height:calc(100vh - 205px);
    border-radius:10px;
}

.lightbox-caption{
    max-width:calc(100vw - 48px);
    margin-top:10px;
    font-size:13px;
}

.lightbox-close{
    top:16px;
    right:16px;
    width:46px;
    height:46px;
    font-size:29px;
}

.lightbox-prev,
.lightbox-next{
    top:auto;
    bottom:18px;
    width:48px;
    height:48px;
    transform:none;
    font-size:26px;
}

.lightbox-prev{
    left:18px;
}

.lightbox-next{
    right:18px;
}

.lightbox-counter{
    bottom:31px;
    font-size:14px;
}

}

@media(hover:none), (pointer:coarse){

.gallery-zoom{
    opacity:1;
    transform:translateY(0);
}

.gallery-card:hover img{
    transform:none;
}

}
