/* Scoped styles: do not change the existing site's Elementor layout. */
.sbp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 0;align-items:start;width:100%;max-width:1073px;margin:0 auto}
.sbp-card{box-sizing:border-box;display:block;min-width:0;padding:5px;text-decoration:none!important;color:inherit!important;text-align:center;overflow:hidden}
.sbp-card-media{display:block;width:100%;aspect-ratio:1/1;overflow:hidden;background:transparent}
.sbp-card-media picture{display:block;width:100%;height:100%}
.sbp-card-media img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .2s ease}
.sbp-card:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.sbp-card:hover img{transform:scale(1.025)}
.sbp-caption{display:block;margin:5px 0 0;font:400 11px/1.4 Roboto,Arial,sans-serif;text-transform:uppercase;overflow-wrap:anywhere}
.sbp-placeholder{display:flex;align-items:center;justify-content:center;height:100%;background:#f4f4f4;color:#888;font-size:46px}
.sbp-empty{text-align:center;font-size:14px}
/* Astra Header Builder owns the navigation, its colours, and the site's footer.
   The brand is injected once immediately after Astra's header, in normal document flow.
   No inherited Elementor margin or header overlap correction is used. */
.sbp-shared-brand{box-sizing:border-box;width:calc(100% - 28px);max-width:1073px;margin:var(--sbp-brand-gap-desktop,32px) auto 0;text-align:center}
.sbp-shared-brand-inner{margin:0 auto}
.sbp-shared-brand img{width:64%;max-width:100%;height:auto;display:inline-block}
.sbp-work{box-sizing:border-box;max-width:1073px;width:calc(100% - 28px);margin:0 auto 90px;text-align:center;color:var(--e-global-color-secondary,inherit);font-family:Roboto,Arial,sans-serif}
/* Keeps visual-editor preview and fallback brand working without affecting Astra. */
.sbp-work-logo{margin:0 auto;text-align:center}
.sbp-work-logo img{width:64%;max-width:100%;height:auto;display:inline-block}
.sbp-work>.sbp-shared-brand{width:100%}
.sbp-work-rule{border:0;border-top:1px solid currentColor;opacity:.4;margin:14px 0 25px}
.sbp-work-title{margin:0 0 12px;font:400 22px/1.45 Roboto,Arial,sans-serif;text-transform:uppercase;color:inherit}
.sbp-work-description{max-width:820px;margin:0 auto 27px;line-height:1.6}
.sbp-work-description p{margin:0 0 12px}
.sbp-contact-links{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 19px;margin:25px 0 30px}
.sbp-contact-links a{color:inherit;text-decoration:underline;font-weight:600}
/* Evenly distribute media in each row. Incomplete rows are centred too. */
.sbp-work-gallery{display:flex;flex-wrap:wrap;justify-content:space-evenly;align-items:flex-start;gap:12px;margin-top:22px}
.sbp-work-gallery>.sbp-gallery-item{box-sizing:border-box;flex:0 0 calc((100% - 48px)/5);max-width:calc((100% - 48px)/5)}
.sbp-gallery-item{margin:0;min-width:0}
.sbp-gallery-item a{display:block;cursor:zoom-in}
.sbp-gallery-item img{width:100%;height:auto;object-fit:contain;display:block}
.sbp-gallery-item figcaption{font:400 11px/1.4 Roboto,Arial,sans-serif;margin:5px 0}
.sbp-gallery-video{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#111;min-height:150px;color:#fff}
.sbp-gallery-video video{width:100%;height:auto;max-height:320px;display:block}
.sbp-embed iframe{width:100%;max-width:100%;height:auto;aspect-ratio:16/9;border:0}
.sbp-lightbox{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.92);display:flex;justify-content:center;align-items:center;padding:54px 20px 30px;box-sizing:border-box}
.sbp-lightbox[hidden]{display:none}
.sbp-lightbox img{max-width:100%;max-height:100%;object-fit:contain}
.sbp-lightbox-close{position:absolute;right:16px;top:10px;font:normal 34px/1 Arial,sans-serif;background:none;color:#fff;border:0;cursor:pointer;padding:5px 12px}
@media(max-width:760px){.sbp-shared-brand{margin-top:var(--sbp-brand-gap-mobile,20px)}.sbp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sbp-work-gallery>.sbp-gallery-item{flex-basis:calc((100% - 24px)/3);max-width:calc((100% - 24px)/3)}.sbp-work-logo img,.sbp-shared-brand img{width:80%}}
@media(max-width:520px){.sbp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 0}.sbp-caption{font-size:10px}.sbp-work{width:calc(100% - 20px)}.sbp-shared-brand{width:calc(100% - 20px)}.sbp-work-title{font-size:16px}.sbp-work-logo img,.sbp-shared-brand img{width:86%}.sbp-work-gallery{gap:8px}.sbp-work-gallery>.sbp-gallery-item{flex-basis:calc((100% - 8px)/2);max-width:calc((100% - 8px)/2)}.sbp-gallery-video{min-height:100px}}
@media(prefers-reduced-motion:reduce){.sbp-card-media img{transition:none}}

.sbp-gallery-video figcaption{padding:5px 8px;color:inherit}
.sbp-preview-video-poster{position:relative}.sbp-preview-video-poster span{position:absolute;inset:0;display:grid;place-items:center;color:white;text-shadow:0 1px 8px black;font-size:27px}.sbp-preview-video-options{font-size:10px;line-height:1.4;text-align:center;background:#222;color:white;padding:5px;overflow-wrap:anywhere}

/* Browsable image viewer. Arrows sit outside the image on desktop and remain touch sized on phones. */
.sbp-lightbox{touch-action:pan-y;overscroll-behavior:contain}
.sbp-lightbox-image{max-width:calc(100% - 112px)!important;max-height:calc(100% - 12px)!important}
.sbp-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;border:0;background:rgba(25,25,25,.58);border-radius:50%;width:48px;height:48px;display:grid;place-items:center;color:#fff;font:normal 34px/1 Arial,sans-serif;cursor:pointer;touch-action:manipulation}
.sbp-lightbox-nav:hover,.sbp-lightbox-nav:focus-visible{background:rgba(70,70,70,.9);outline:2px solid white;outline-offset:2px}
.sbp-lightbox-prev{left:12px}
.sbp-lightbox-next{right:12px}
.sbp-lightbox-count{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font:normal 13px/1.5 Arial,sans-serif;color:#fff;background:rgba(0,0,0,.4);padding:3px 10px;border-radius:20px}
@media(max-width:520px){.sbp-lightbox{padding:45px 12px 45px}.sbp-lightbox-image{max-width:calc(100% - 72px)!important}.sbp-lightbox-nav{width:39px;height:44px;font-size:29px}.sbp-lightbox-prev{left:3px}.sbp-lightbox-next{right:3px}}
@media(prefers-reduced-motion:reduce){.sbp-lightbox *{transition:none!important}}

/* Category navigation matches the original Elementor category-title links. */
.sbp-category-overview{box-sizing:border-box;max-width:1073px;width:100%;margin:0 auto 36px;text-align:center;color:var(--e-global-color-secondary,inherit);font-family:Roboto,Arial,sans-serif}
.sbp-category-overview-item{margin:0 0 25px}
.sbp-category-overview-item h3{font:400 21px/1.4 Roboto,Arial,sans-serif;margin:0;text-transform:uppercase;color:inherit}
.sbp-category-overview-item a{color:inherit!important;text-decoration:none!important;display:inline-block;padding:2px 6px}
.sbp-category-overview-item a:hover,.sbp-category-overview-item a:focus-visible{text-decoration:underline!important;text-underline-offset:4px}
.sbp-category-archive .sbp-work-title{margin-top:0;margin-bottom:25px}
.sbp-category-archive .sbp-category-overview{margin-top:10px}
@media(max-width:520px){.sbp-category-overview-item{margin-bottom:21px}.sbp-category-overview-item h3{font-size:14px}}
