/* Non-critical CSS (critical bits are inlined in index.html) */
:root{
  --primary:#0E3A5D; --accent:#F59E0B; --neutral-900:#1F2937; --neutral-700:#374151; --neutral-100:#F3F4F6;
  --bg:#ffffff; --radius:16px; --shadow:0 6px 24px rgba(0,0,0,.08);
}
*{box-sizing:border-box}
img{max-width:100%; height:auto; display:block}
h1,h2,h3{line-height:1.2}
p{color:var(--neutral-700)}
ul{padding-left:1.1rem}
.subpage{background:#fff; border-bottom:1px solid #e5e7eb}
.stack > * + *{margin-top:.6rem}

input,select,textarea{width:100%; padding:.65rem .75rem; border:1px solid #d1d5db; border-radius:10px; font:inherit}
label{font-weight:700; font-size:.95rem}
button{cursor:pointer}

.card-grid ul{margin:0; padding-left:1rem}
.card-grid blockquote{margin:0}

#mobileMenu a{display:inline-block; margin:.25rem .25rem 0 0}

#backToTop{cursor:pointer}

footer ul{list-style:none; padding:0; margin:.4rem 0 0}
footer li + li{margin-top:.3rem}

.hero .cta .btn{min-width:12ch; text-align:center}

a:focus, button:focus, input:focus, select:focus, textarea:focus{outline:3px solid #84cc16; outline-offset:2px}

/* Lightbox dialog */
.dialog-backdrop{position:fixed; inset:0; background:rgba(0,0,0,.6); display:flex; align-items:center; justify-content:center; padding:1rem; z-index:60}
.lightbox-figure{max-width:min(92vw,1200px); max-height:90vh; display:flex; flex-direction:column}
.lightbox-figure img{max-height:80vh; object-fit:contain; border-radius:12px}
.lightbox-figure figcaption{color:#e5e7eb; margin-top:.5rem; text-align:center}
.close-btn{position:absolute; top:1rem; right:1rem; background:#fff; border:1px solid #e5e7eb; border-radius:999px; padding:.4rem .6rem}
