.service-gallery-section { padding:clamp(70px,8vw,115px) 0; background:#f5fcf7; }
.service-gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:30px; }
.service-gallery-heading h2 { margin:16px 0 0; color:#10213d; font:800 clamp(2.2rem,4vw,4.2rem)/1 var(--heading-font); letter-spacing:-.06em; }
.service-gallery-heading h2 em { color:#168b35; font-style:normal; }
.service-gallery-heading > p { max-width:400px; margin:0; color:#587188; font-size:1rem; line-height:1.6; }
.service-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.service-gallery-trigger { position:relative; display:block; width:100%; height:clamp(190px,21vw,320px); padding:0; overflow:hidden; border:0; border-radius:15px; background:#dcebe0; cursor:zoom-in; }
.service-gallery-trigger:first-child { grid-column:span 2; }
.service-gallery-trigger img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.service-gallery-trigger:hover img { transform:scale(1.05); }
.service-gallery-caption,.project-gallery-caption { position:absolute; right:0; bottom:0; left:0; display:grid; gap:4px; padding:28px 18px 16px; background:linear-gradient(transparent,rgba(2,27,23,.9)); color:#fff; text-align:left; }
.service-gallery-caption strong,.project-gallery-caption strong { font:800 1rem/1.2 var(--heading-font); }
.service-gallery-caption small,.project-gallery-caption small { color:rgba(255,255,255,.82); font-size:.82rem; line-height:1.4; }
.service-gallery-empty { display:flex; align-items:center; gap:14px; min-height:150px; padding:24px; border:1px dashed #9bc9aa; border-radius:15px; background:#fff; color:#526b79; }
.service-gallery-empty i { color:#159447; font-size:1.5rem; }
.service-gallery-empty p { margin:0; }
.service-lightbox[hidden] { display:none; }
.service-lightbox { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:28px; }
.service-lightbox-backdrop { position:absolute; inset:0; background:rgba(2,22,24,.9); }
.service-lightbox-dialog { position:relative; z-index:1; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:20px; width:min(1160px,100%); }
.service-lightbox-dialog figure { display:grid; justify-items:center; gap:12px; max-width:100%; margin:0; }
.service-lightbox-image { display:block; max-width:min(86vw,1000px); max-height:82vh; border-radius:12px; object-fit:contain; box-shadow:0 24px 70px rgba(0,0,0,.3); }
.service-lightbox-dialog figcaption { display:grid; gap:5px; color:#d9f5df; font-size:.85rem; font-weight:700; text-align:center; }
.service-lightbox-dialog figcaption small { color:rgba(217,245,223,.7); font-size:.7rem; letter-spacing:.1em; order:3; }
.service-lightbox-dialog figcaption strong { font:800 1rem var(--heading-font); }
.service-lightbox-dialog figcaption span { color:rgba(255,255,255,.8); font-size:.85rem; font-weight:400; line-height:1.45; }
.service-lightbox-control,.service-lightbox-close { display:grid; place-items:center; border:1px solid rgba(255,255,255,.45); background:rgba(255,255,255,.12); color:#fff; cursor:pointer; }
.service-lightbox-control { width:48px; height:48px; border-radius:50%; font-size:1rem; }
.service-lightbox-control:hover,.service-lightbox-close:hover { border-color:#0c9a51; background:#0c9a51; }
.service-lightbox-control:disabled { opacity:.35; cursor:default; }
.service-lightbox-close { position:absolute; z-index:2; top:-55px; right:0; width:42px; height:42px; border-radius:50%; }
.service-lightbox-open { overflow:hidden; }
@media(max-width:760px) {
    .service-gallery-heading { display:block; }
    .service-gallery-heading > p { margin-top:18px; }
    .service-gallery-grid { grid-template-columns:1fr; }
    .service-gallery-trigger:first-child { grid-column:auto; }
    .service-gallery-trigger { height:235px; }
    .service-lightbox { padding:18px; }
    .service-lightbox-dialog { grid-template-columns:42px minmax(0,1fr) 42px; gap:8px; }
    .service-lightbox-image { max-width:calc(100vw - 100px); max-height:76vh; }
    .service-lightbox-close { top:-52px; right:0; }
}
