/* Shared with the NALC homepage: Archivo, Bebas Neue, stadium green and lime. */
@font-face{font-family:Archivo;src:url('/assets/fonts/nalc/archivo-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url('/assets/fonts/nalc/archivo-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Archivo;src:url('/assets/fonts/nalc/archivo-latin-900-italic.woff2') format('woff2');font-weight:900;font-style:italic;font-display:swap}
@font-face{font-family:'Bebas Neue';src:url('/assets/fonts/nalc/bebas-neue.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--nl-forest:#002d1b;--nl-deep:#001e12;--nl-green:#2e6b47;--nl-lime:#7fbe2a;--nl-paper:#f5f7f2;--nl-line:#d7e2d4}
.nl-announcement{font:16px/1.4 'Bebas Neue',Arial,sans-serif;letter-spacing:1.5px;text-align:center;background:var(--nl-green);color:#e5efd8;padding:11px 20px}.nl-announcement span{color:var(--nl-lime);padding:0 8px}
.nl-header{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:32px;background:#002d1b url('/assets/images/nalc-stadium.jpg') center 14%/cover;padding:16px max(24px,calc((100% - 1280px)/2));font-family:Archivo,Arial,sans-serif;position:relative;z-index:5}.nl-logo{display:inline-flex;flex-shrink:0}.nl-logo img{display:block;width:auto;height:112px;object-fit:contain}.nl-nav{display:flex;align-items:center;justify-content:flex-end;gap:20px;flex-wrap:wrap}.nl-nav a{color:#fff!important;text-decoration:none;font-size:14px;line-height:1.4;font-weight:700;white-space:nowrap}.nl-nav a:hover{color:#bce887!important}.nl-nav .nl-cta,.nl-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--nl-lime);color:#102710!important;font:24px/1 'Bebas Neue',Arial,sans-serif;letter-spacing:.5px;padding:16px 34px;clip-path:polygon(10% 0,100% 0,90% 100%,0 100%);text-decoration:none}.nl-nav .nl-cta:hover,.nl-cta:hover{background:#a1d453;color:#102710!important}.nl-menu-toggle{display:none}.nl-header a:focus-visible,.nl-header button:focus-visible,.nl-footer a:focus-visible{outline:3px solid #b9e87b;outline-offset:4px}
.nl-footer{background:#002d1b url('/assets/images/nalc-footer.jpg') center/cover;color:#dce6dc;font:15px/1.8 Archivo,Arial,sans-serif;padding:60px max(24px,calc((100% - 1200px)/2)) 0}.nl-footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.1fr;gap:40px}.nl-footer h2{color:#fff;font:700 21px/1.3 Archivo,Arial,sans-serif;margin:12px 0 24px}.nl-footer a:not(.nl-logo){display:block;color:#dce6dc;text-decoration:none;margin:8px 0}.nl-footer a:hover{color:#bce887}.nl-footer p{margin:20px 0!important;font:inherit!important;color:inherit!important}.nl-footer .nl-logo img{height:124px}.nl-footer-bottom{font:15px/1.5 'Bebas Neue',Arial,sans-serif;letter-spacing:1px;text-align:center;padding:23px 0;margin-top:48px;border-top:1px solid #ffffff30}
@media(max-width:1100px){.nl-header{gap:18px}.nl-nav{gap:14px}.nl-nav a{font-size:12px}.nl-logo img{height:90px}}
@media(max-width:900px){.nl-header{padding:16px 22px;flex-wrap:wrap}.nl-logo img{height:84px}.nl-menu-toggle{display:flex;align-items:center;gap:16px;padding:12px 16px;background:transparent;color:white;border:1px solid #ffffff70;font:20px 'Bebas Neue',Arial,sans-serif}.nl-nav{display:none;width:100%;align-items:stretch;gap:0;padding:8px 0}.nl-nav.is-open{display:flex;flex-direction:column}.nl-nav a{font-size:16px;padding:12px 0}.nl-nav .nl-cta{font-size:24px;margin-top:12px;max-width:180px}.nl-footer-grid{grid-template-columns:1fr 1fr;gap:28px}.nl-announcement{font-size:13px;letter-spacing:1px}}
@media(max-width:480px){.nl-footer-grid{grid-template-columns:1fr 1fr;gap:24px 16px}.nl-footer-grid>div:first-child{grid-column:1/-1}.nl-footer{padding-top:40px;font-size:13px}.nl-footer h2{font-size:17px}.nl-footer-bottom{font-size:12px}}
@media(prefers-reduced-motion:reduce){.nl-header *,.nl-footer *{transition:none!important;animation:none!important}}
/* One close-fitting focus indicator; avoid the old detached blue outline. */
.nalc :focus-visible{outline-color:#2e6b47}
.nalc.nalc .n-field input:focus,.nalc.nalc .n-field select:focus,.nalc.nalc .n-field textarea:focus,
.nalc.nalc .n-field input:focus-visible,.nalc.nalc .n-field select:focus-visible,.nalc.nalc .n-field textarea:focus-visible{
  border-color:#2e6b47;outline:2px solid transparent;outline-offset:0;box-shadow:0 0 0 2px rgba(46,107,71,.28);
}
.nalc.nalc .n-field [aria-invalid="true"]:focus{border-color:#b42318;box-shadow:0 0 0 2px rgba(180,35,24,.22)}
@media(forced-colors:active){.nalc.nalc .n-field input:focus,.nalc.nalc .n-field select:focus,.nalc.nalc .n-field textarea:focus{outline:2px solid Highlight;outline-offset:2px;box-shadow:none}}
/* Shared form focus across public, authentication, admin and attendee pages. */
:is(.nalc,.nalc-admin-shell,.nalc-default-shell) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]),select,textarea):focus{
 outline:2px solid transparent!important;outline-offset:0!important;border-color:#2e6b47!important;box-shadow:0 0 0 2px #2e6b4747!important;
}
:is(.nalc,.nalc-admin-shell,.nalc-default-shell) :is(input,select,textarea):is([aria-invalid=true],.is-invalid,.input-error):focus{border-color:#b42318!important;box-shadow:0 0 0 2px #b4231838!important}
:is(.nalc,.nalc-admin-shell,.nalc-default-shell) :is(input[type=checkbox],input[type=radio],button,a):focus-visible{outline:2px solid #2e6b47;outline-offset:2px}
:is(.nalc,.nalc-admin-shell,.nalc-default-shell) :is(.ts-control,.input-group,.nalc-search-field):focus-within{border-color:#2e6b47!important;box-shadow:0 0 0 2px #2e6b4747!important}
:is(.nalc,.nalc-admin-shell,.nalc-default-shell) :is(.ts-control,.input-group,.nalc-search-field) input:focus{outline:none!important;box-shadow:none!important}
@media(forced-colors:active){:is(.nalc,.nalc-admin-shell,.nalc-default-shell) :is(input,select,textarea):focus{outline:2px solid Highlight!important;outline-offset:2px!important;box-shadow:none!important}}
html:has(.nalc-default-shell),html:has(.nalc-admin-shell),html:has(.nalc){scrollbar-color:#2e6b47 #f5f7f2}
html:has(.nalc-default-shell)::-webkit-scrollbar-thumb,html:has(.nalc-admin-shell)::-webkit-scrollbar-thumb,html:has(.nalc)::-webkit-scrollbar-thumb{background:#2e6b47!important}

/* NALC social links (Task 2, 2026-11-05): public footers, error pages, admin sign-in footer. */
.nalc-social{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 16px;margin:0 0 18px}
.nalc-social-label{font:700 13px/1.2 Archivo,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#fff}
.nalc-social ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.nalc-social li{margin:0}
.nalc-social a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid rgba(185,232,123,.6);border-radius:999px;color:#fff!important;text-decoration:none;font:600 14px/1 Archivo,Arial,sans-serif;transition:background .15s ease,color .15s ease}
.nalc-social a:hover{background:#7fbe2a;border-color:#7fbe2a;color:#002d1b!important}
.nalc-social a:focus-visible{outline:3px solid #b9e87b;outline-offset:3px}
.nalc-social svg{flex:none}
.nalc-social + p{color:inherit;margin:0}
.nl-footer .nalc-social{margin:36px 0 0;padding:24px 0 4px;border-top:1px solid rgba(255,255,255,.14)}
@media(max-width:480px){.nalc-social{gap:10px}.nalc-social-label{flex-basis:100%;text-align:center}.nalc-social a{padding:8px 12px}}
.nl-footer .nalc-social a{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 16px;line-height:1}
/* 2026-11-05 footer layout: text on the left, icon-only social buttons on the right. */
.nalc-footer-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px 32px;text-align:left}
footer.nalc-footer-row{padding-left:max(20px,calc((100% - 1200px)/2));padding-right:max(20px,calc((100% - 1200px)/2))}
.nalc-footer-row>p{margin:0;color:inherit}
.nalc-footer-row .nalc-social,.nl-footer .nalc-footer-row .nalc-social{margin:0;padding:0;border:0;justify-content:flex-end}
.nalc-social ul{gap:10px}
.nalc-social a,.nl-footer .nalc-social a{width:44px;height:44px;min-height:44px;padding:0;justify-content:center;border-radius:50%}
.nalc-social svg{width:20px;height:20px}
@media(max-width:600px){.nalc-footer-row{flex-direction:column;align-items:flex-start}.nalc-footer-row .nalc-social ul{justify-content:flex-start}}
/* 2026-11-05: compact footer row, 12px top/bottom (user request: 10-15px). */footer.nalc-footer-row{padding-top:12px;padding-bottom:12px}.nl-footer-bottom.nalc-footer-row{padding-top:12px;padding-bottom:12px}
