/* Portable overrides; original visual theme is retained in theme.css. */
.grid--main { visibility: visible; }
.grid__item-container { cursor: zoom-in; }
.grid__item-container:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid #222; outline-offset: 3px; }
.grid__item-image { object-fit: contain; }
.contact-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-status { margin: 16px 0; font: 14px/1.5 Arial, sans-serif; }
.direct-email { text-align: center; font: 14px/1.5 Arial, sans-serif; margin: 24px 0; }
.direct-email a { color: #555; }
button.submit-button { cursor: pointer; background: transparent; display: block; margin: auto; }
button:disabled { cursor: wait; opacity: .55; }
.js-hamburger, .js-close-responsive-nav { cursor: pointer; }
.portfolio-lightbox { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; border: 0; padding: 55px 60px; margin: 0; background: rgba(255,255,255,.96); color: #222; box-sizing: border-box; }
.portfolio-lightbox::backdrop { background: rgba(255,255,255,.94); }
.portfolio-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.portfolio-lightbox img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.portfolio-lightbox button { position: absolute; border: 0; background: transparent; font: 36px/1 Arial, sans-serif; padding: 12px; cursor: pointer; color: #333; }
.lightbox-close { top: 8px; right: 12px; }
.lightbox-prev { top: 45%; left: 4px; }
.lightbox-next { top: 45%; right: 4px; }
.lightbox-count { position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; font: 13px Arial, sans-serif; }
body.lightbox-open { overflow: hidden; }
.responsive-nav-open .js-responsive-nav { display: block; visibility: visible; opacity: 1; }
@media (max-width: 540px) { .portfolio-lightbox { padding: 55px 30px; } .portfolio-lightbox button { font-size: 28px; padding: 8px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
