/* gallery */
.gallery .gallery-box {
    margin-top: 0;               /* .clients adds margin-top: 6rem, not needed here */
}
.gallery .gallery-title {
    font-size: 4rem;
    line-height: 1.1;
}
.gallery-grid {
    align-items: flex-start;     /* columns keep their own heights, like the design */
}
.gallery-item {
    border-radius: 2rem;
    overflow: hidden;
}
.gallery-item img {
    transition: transform .6s ease;
}
.gallery-item:hover img {
    transform: scale(1.06);
}

/* dark layer at the bottom so the caption is readable */
.gallery-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(2, 54, 90, 0) 55%, rgba(2, 54, 90, .75) 100%);
    pointer-events: none;
}
.gallery-caption {
    position: absolute;
    inset-inline: 0;
    bottom: 1.2rem;
    z-index: 2;
    padding: 0 1rem;
    text-align: center;
    font-size: 1rem;
    line-height: 1.2;
}

/* video */
.gallery-play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    width: 2.4rem;
    height: 2.4rem;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background-color: var(--main);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .7rem;
    transition: background-color .3s ease, transform .3s ease;
}
.gallery-item:hover .gallery-play {
    background-color: var(--second);
    transform: translate(-50%, -50%) scale(1.1);
}
.gallery-duration {
    position: absolute;
    top: .9rem;
    inset-inline-end: .9rem;
    z-index: 2;
    padding: .15rem .6rem;
    border-radius: 1rem;
    background-color: rgba(2, 54, 90, .75);
    color: var(--white);
    font-size: .75rem;
}

@media (max-width: 992px) {
    .gallery .gallery-title {
        font-size: 3rem;
    }
    .gallery-item {
        border-radius: 1.5rem;
    }
}