/* ─── Project gallery ──────────────────────────────────────── */
.jm-gallery-section {
    padding: 0;
}

.jm-gallery-section .jm-panel {
    padding: clamp(26px, 3.6vw, 48px) clamp(16px, 3vw, 40px);
}

.jm-gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--sp-3);
}

@media (min-width: 700px)  { .jm-gallery { grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); } }
@media (min-width: 1100px) { .jm-gallery { grid-template-columns: repeat(4, 1fr); } }

.jm-gallery__item {
    padding: 0;
    border: 1px solid rgba(104, 152, 168, 0.22);
    border-radius: 12px;
    box-shadow: 0 12px 28px -22px rgba(22, 40, 48, 0.55);
    overflow: hidden;
    background: var(--primary-light);
    aspect-ratio: 4 / 3;
    cursor: pointer;
    position: relative;
}

.jm-gallery__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s var(--ease), filter 0.5s var(--ease);
}

.jm-gallery__item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(28, 42, 48, 0.12);
    opacity: 0;
    transition: opacity 0.4s var(--ease);
}

@media (hover: hover) and (pointer: fine) {
    .jm-gallery__item:hover .jm-gallery__img { transform: scale(1.06); }
    .jm-gallery__item:hover::after { opacity: 1; }
}

.jm-gallery__item:focus-visible {
    outline: 3px solid var(--primary);
    outline-offset: 3px;
}
