/* ================= GALLERY CONTENT ================= */
.gallery-section { padding: 90px 0 100px; background:#fff; }
.gallery-heading { text-align:center; margin-bottom:38px; }
.gallery-heading > span { display:block; color:#71a940; font-size:14px; font-weight:800; text-transform:uppercase; letter-spacing:2px; margin-bottom:8px; }
.gallery-heading h2 { margin:0; color:#173d20; font-size:clamp(30px,4vw,44px); }
.gallery-heading strong { color:#71a940; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:235px; gap:18px; }
.gallery-card { position:relative; display:block; overflow:hidden; min-height:235px; border-radius:16px; background:#edf3e9; box-shadow:0 10px 30px rgba(25,61,32,.08); text-decoration:none; }
.gallery-card-wide { grid-column:span 2; }
.gallery-card-tall { grid-row:span 2; }
.gallery-card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s ease; }
.gallery-card::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 42%,rgba(10,35,17,.78) 100%); }
.gallery-card:hover img { transform:scale(1.06); }
.gallery-overlay { position:absolute; z-index:2; left:20px; right:18px; bottom:18px; display:flex; align-items:center; justify-content:space-between; color:#fff; font-size:16px; font-weight:700; }
.gallery-overlay i { font-size:13px; opacity:.9; }
@media(max-width:991px){.gallery-grid{grid-template-columns:repeat(3,1fr)}.gallery-card-wide{grid-column:span 2}}
@media(max-width:767px){.gallery-section{padding:60px 0 70px}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:190px;gap:12px}.gallery-card,.gallery-card-tall{min-height:190px;grid-row:auto}.gallery-card-wide{grid-column:span 2}}
@media(max-width:480px){.gallery-grid{grid-template-columns:1fr}.gallery-card,.gallery-card-wide{grid-column:auto}.gallery-card{min-height:230px}}

/* ================= GALLERY LIGHTBOX ================= */
.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 90px;
    background: rgba(8, 20, 10, .94);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease, visibility .25s ease;
}
.gallery-lightbox.is-open { opacity:1; visibility:visible; pointer-events:auto; }
body.gallery-lightbox-open { overflow:hidden; }
.gallery-lightbox-stage { max-width:min(1100px, 90vw); max-height:90vh; text-align:center; }
.gallery-lightbox-stage img { display:block; max-width:100%; max-height:82vh; width:auto; height:auto; object-fit:contain; border-radius:12px; box-shadow:0 20px 70px rgba(0,0,0,.45); }
.gallery-lightbox-caption { color:#fff; font-size:15px; margin-top:14px; font-weight:600; }
.gallery-lightbox-close,
.gallery-lightbox-prev,
.gallery-lightbox-next {
    position:absolute;
    z-index:2;
    border:0;
    width:48px;
    height:48px;
    border-radius:50%;
    color:#fff;
    background:rgba(255,255,255,.14);
    font-size:28px;
    line-height:1;
    cursor:pointer;
    transition:background .2s ease, transform .2s ease;
}
.gallery-lightbox-close:hover,
.gallery-lightbox-prev:hover,
.gallery-lightbox-next:hover { background:#71a940; transform:scale(1.06); }
.gallery-lightbox-close { top:24px; right:28px; font-size:34px; }
.gallery-lightbox-prev { left:25px; top:50%; transform:translateY(-50%); }
.gallery-lightbox-next { right:25px; top:50%; transform:translateY(-50%); }
.gallery-lightbox-prev:hover,.gallery-lightbox-next:hover { transform:translateY(-50%) scale(1.06); }
@media(max-width:767px){
    .gallery-lightbox { padding:55px 48px 30px; }
    .gallery-lightbox-stage { max-width:94vw; }
    .gallery-lightbox-stage img { max-height:78vh; border-radius:8px; }
    .gallery-lightbox-close { top:12px; right:14px; width:42px; height:42px; font-size:30px; }
    .gallery-lightbox-prev,.gallery-lightbox-next { width:42px; height:42px; font-size:22px; }
    .gallery-lightbox-prev { left:8px; }
    .gallery-lightbox-next { right:8px; }
}
