/* Functional core for js/main.js hooks (menu, forms, lightbox). Visual design lives in theme.css. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit;color:inherit}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:1000;background:#000;color:#fff;padding:10px 16px}
.skip-link:focus{left:8px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mobile-menu{display:none}
.mobile-menu.is-open{display:block}
@media (min-width:960px){.nav-toggle,.mobile-menu,.mobile-menu.is-open{display:none}}
.field-error{display:none;font-size:.875rem;margin:6px 0 0}
.field.has-error .field-error{display:block}
.form-success{display:none}
.form-success.is-visible{display:block}
.lightbox{position:fixed;inset:0;z-index:500;background:rgba(8,9,12,.93);display:none;align-items:center;justify-content:center;padding:56px 16px}
.lightbox.is-open{display:flex}
.lightbox img{max-height:82vh;max-width:min(1100px,100%);object-fit:contain}
.lightbox-caption{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#ddd;font-size:.95rem;padding:0 60px}
.lightbox-btn{position:absolute;width:48px;height:48px;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lightbox-btn:hover,.lightbox-btn:focus-visible{background:rgba(255,255,255,.32)}
.lightbox-close{top:14px;right:14px}.lightbox-prev{left:12px;top:50%;transform:translateY(-50%)}.lightbox-next{right:12px;top:50%;transform:translateY(-50%)}
.reveal{opacity:1}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
