.ocf-service-gallery { background:var(--ocf-bg-alt); }
.ocf-service-gallery .ocf-gallery { padding:0; background:transparent; }
.ocf-service-gallery .ocf-gallery-header { display:flex; justify-content:space-between; align-items:flex-end; gap:var(--ocf-grid-gap); margin-bottom:calc(var(--ocf-grid-gap) * 1.5); }
.ocf-service-gallery .ocf-gallery-heading { max-width:var(--ocf-section-heading-width); }
.ocf-service-gallery .ocf-gallery-actions { display:flex; align-items:center; gap:var(--ocf-grid-gap); flex-shrink:0; }
.ocf-service-gallery .ocf-gallery-nav { display:flex; gap:10px; }
.ocf-service-gallery .ocf-gallery-nav[hidden] { display:none; }
.ocf-service-gallery .ocf-gallery-nav button { display:grid; place-items:center; width:44px; height:44px; border:var(--card-border-width) solid var(--ocf-border); border-radius:var(--button-radius); background:var(--ocf-bg); color:var(--ocf-primary); padding:0; cursor:pointer; }
.ocf-service-gallery .ocf-gallery-nav button:disabled { opacity:.4; cursor:default; }
.ocf-service-gallery button:focus-visible, .ocf-service-gallery a:focus-visible { outline:3px solid var(--ocf-primary); outline-offset:4px; }
.ocf-service-gallery svg { width:20px; height:20px; }
.ocf-service-gallery .ocf-gallery-viewport { overflow:hidden; overflow:clip; margin:0; padding:0; touch-action:pan-y; }
.ocf-service-gallery .ocf-gallery-track { --gallery-per-view:3; display:flex; gap:var(--ocf-grid-gap); transition:transform var(--duration,180ms) ease; }
.ocf-service-gallery .ocf-gallery-card { min-width:0; margin:0; flex:0 0 calc((100% - var(--ocf-grid-gap) * (var(--gallery-per-view) - 1)) / var(--gallery-per-view)); }
.ocf-service-gallery .ocf-gallery-open { display:block; width:100%; padding:0; border:0; background:var(--ocf-bg); cursor:zoom-in; overflow:hidden; }
.ocf-service-gallery .ocf-gallery-open img { display:block; width:100%; height:var(--ocf-gallery-slider-image-height); object-fit:cover; }
.ocf-service-gallery .ocf-gallery-caption { padding:14px 0 0; margin:0; font-family:var(--ocf-font-heading); font-size:var(--ocf-font-small-size); font-weight:700; line-height:1.5; letter-spacing:.04em; text-transform:uppercase; color:var(--ocf-heading); }
.ocf-service-gallery .ocf-gallery-lightbox { position:fixed; inset:0; z-index:9999; display:none; padding:64px 40px; }
.ocf-service-gallery .ocf-gallery-lightbox.is-open { display:grid; place-items:center; }
.ocf-service-gallery .ocf-gallery-lightbox__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.9); }
.ocf-service-gallery .ocf-gallery-lightbox__panel { position:relative; z-index:1; display:grid; align-items:center; width:min(100%,var(--ocf-gallery-lightbox-width)); max-height:calc(100dvh - 128px); }
.ocf-service-gallery .ocf-gallery-lightbox__figure { display:grid; justify-items:center; gap:16px; margin:0; }
.ocf-service-gallery .ocf-gallery-lightbox__figure img { max-width:100%; width:auto; max-height:calc(100dvh - 200px); object-fit:contain; }
.ocf-service-gallery .ocf-gallery-lightbox__figure figcaption { color:var(--ocf-heading-alt); text-align:center; }
.ocf-service-gallery .ocf-gallery-lightbox__close, .ocf-service-gallery .ocf-gallery-lightbox__nav { position:absolute; z-index:2; display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--ocf-border-alt); background:var(--ocf-bg-dark); color:var(--ocf-heading-alt); cursor:pointer; }
.ocf-service-gallery .ocf-gallery-lightbox__close { top:0; right:0; transform:translateY(-120%); }
.ocf-service-gallery .ocf-gallery-lightbox__nav { top:50%; transform:translateY(-50%); }
.ocf-service-gallery .ocf-gallery-lightbox__nav--prev { left:0; }
.ocf-service-gallery .ocf-gallery-lightbox__nav--next { right:0; }
@media(max-width:1023px) { .ocf-service-gallery .ocf-gallery-track { --gallery-per-view:2; } }
@media(max-width:640px) { .ocf-service-gallery .ocf-gallery-header { flex-direction:column; align-items:stretch; } .ocf-service-gallery .ocf-gallery-actions { justify-content:space-between; width:100%; } .ocf-service-gallery .ocf-gallery-track { --gallery-per-view:1; } .ocf-service-gallery .ocf-gallery-open img { height:var(--ocf-gallery-slider-image-height-mobile); } .ocf-service-gallery .ocf-gallery-lightbox { padding:64px 16px; } }
@media(prefers-reduced-motion:reduce) { .ocf-service-gallery .ocf-gallery-track { transition:none; } }

/* OCF_AGENT_BLOCK:service-gallery-hide-picture-names START */
.ocf-service-gallery figcaption {
    display: none;
}
/* OCF_AGENT_BLOCK:service-gallery-hide-picture-names END */
