/* Gallery */
.masonry {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    grid-auto-rows: 200px;
    gap: 16px;
}
.m-item { overflow: hidden; background: #eee; }
.m-item img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: 0.5s; }
.m-item:hover img { filter: grayscale(0); transform: scale(1.05); }

.tall { grid-row: span 2; }
.wide { grid-column: span 2; }

/* 7. CTA */
.cta {
    padding: clamp(30px, calc( (100 / 1920) * 100vw ),100px) 0;
    text-align: center;
    border-top: 1px solid var(--line);
    background: #003366;
}
.cta h2{
    font-weight: 100;
    font-size: clamp(24px, 1.9vw, 36px);
    margin-bottom: 40px;
    color: #fff;
    }
.cta p{
    color: #fff;
    line-height: 1.8;
    font-size: clamp(14px, 0.95vw, 18px);
}
.btn-line {
    padding: 20px 80px;
    text-decoration: none;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 3px;
    transition: 0.4s;
    display: inline-block;
    color: #fff;
    border: 1px #fff solid;
    margin-top: 50px;
}

.btn-line:hover {
    background: var(--brand-blue);
    color: #fff;
}

@media(max-width:991px){
    .section-header {
        align-items: flex-start;
        margin-bottom: 30px;
        flex-direction: column;
    }
    .masonry {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 160px;
        gap: 12px;
    }
    .wide {
        grid-column: span 1;
    }
    .cta h2 {
        margin-bottom: 20px;
    }

}

@media(max-width:575px){
    .masonry {
        grid-template-columns: 1fr;
        grid-auto-rows: 180px;
        gap: 12px;
    }
    .wide, .tall {
        grid-column: span 1;
        grid-row: span 1;
    }
    .m-item img {
        object-fit: cover;
    }
    .btn-line {
        padding: 15px 40px;
        font-size: 12px;
        letter-spacing: 2px;
        margin-top: 20px;
    }
}