/* Shared photo viewer: above the existing high-layer mobile navigation. */
#lightbox{z-index:2147483647!important;background:rgba(5,17,33,.94);backdrop-filter:blur(16px);padding:80px 70px 50px;grid-template-columns:1fr;overflow-y:auto;overscroll-behavior:contain}
body.lightbox-open #siteHeader,body.lightbox-open .floating-stack{visibility:hidden!important;pointer-events:none!important}
#lightbox .lightbox-figure{width:100%;max-width:1200px;min-width:0;margin:auto;gap:18px}
#lightboxImage{display:block;max-width:100%;max-height:calc(100dvh - 195px);width:auto;height:auto;object-fit:contain;border-radius:14px;box-shadow:0 24px 80px #0006}
#lightboxCaption{max-width:850px;margin:auto;padding:0 24px}
#lightboxCaption strong{font-size:16px;font-weight:650;line-height:1.5}
#lightboxCaption small{font-size:12px;line-height:1.7;color:#bbc9db}
#lightboxClose{position:fixed;top:max(18px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));z-index:2;width:48px;height:48px;display:grid;place-items:center;background:#ffffff14;border:1px solid #ffffff45;color:white;font-size:29px;line-height:1;border-radius:50%;padding:0;cursor:pointer}
#lightboxPrev,#lightboxNext{position:fixed;top:50%;transform:translateY(-50%);width:46px;height:46px;border:1px solid #ffffff45;background:#ffffff14;color:white;box-shadow:none;font-size:30px;z-index:2}
#lightboxPrev{left:16px}#lightboxNext{right:16px}
#lightbox button:hover{background:#ffffff30}#lightbox button:focus-visible{outline:3px solid #ffd200;outline-offset:4px}
@media(max-width:760px){#lightbox{padding:84px 16px 86px;align-items:center}#lightboxImage{max-width:100%;max-height:calc(100dvh - 250px);border-radius:12px}#lightbox .lightbox-figure{gap:18px}#lightboxCaption{padding:0 8px}#lightboxCaption strong{font-size:14px}#lightboxCaption small{font-size:11px}#lightboxPrev,#lightboxNext{top:auto;bottom:max(22px,env(safe-area-inset-bottom));transform:none;width:48px;height:48px}#lightboxPrev{left:calc(50% - 60px)}#lightboxNext{right:calc(50% - 60px)}}
/* Keyboard access must expose the same desktop submenu as pointer hover. */
@media(min-width:1121px){body.theme-live #siteNav .nav-item:focus-within>.dropdown{display:block!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}}
/* Keep service fields readable and avoid automatic zoom while typing on phones. */
body .service-appointment-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),body .service-appointment-form select,body .service-appointment-form textarea{font-size:16px!important;line-height:1.55;caret-color:#003b88}
body .service-appointment-form label{line-height:1.6}
body .service-appointment-form :is(input,select,textarea):focus-visible{outline:2px solid #003b88!important;outline-offset:2px}
/* Shared light-surface actions: the legacy white ghost text belongs to dark heroes. */
body.inner-page main .ghost-btn{color:#17477c!important;background:#edf3f9!important;border:1px solid #cbd9e8!important;box-shadow:none!important}
body.inner-page main .ghost-btn:hover{color:#11345d!important;background:#e0eaf5!important}
body.inner-page main .ghost-btn.is-active{color:#fff!important;background:#123c73!important;border-color:#123c73!important}
body.inner-page main a:focus-visible,body.inner-page main button:focus-visible{outline:3px solid #245b9a;outline-offset:3px}
/* Keep the active form clear of floating contact controls. */
body:has(main form:focus-within) .floating-stack{visibility:hidden!important;pointer-events:none!important}
