/* Functional core only: reset, a11y helpers, menu/lightbox/form mechanics used by js/main.js.
   All visual design for this site lives in theme.css. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;overflow-x:hidden}
img,svg,iframe{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.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}
.field-error{margin:4px 0 0;font-size:.85rem;min-height:1em}
.field.has-error input,.field.has-error textarea{border-color:#b00020}
.field.has-error .field-error{color:#b00020}
.form-success{display:none}
.form-success.is-visible{display:block}
.lightbox{position:fixed;inset:0;z-index:500;background:rgba(8,9,12,.92);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{background:rgba(255,255,255,.3)}
.lightbox-close{top:14px;right:14px}
.lightbox-prev{left:12px;top:50%;transform:translateY(-50%)}
.lightbox-next{right:12px;top:50%;transform:translateY(-50%)}
