[hidden]{display:none!important}.counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:32px 0}.counts>div{border:1px solid var(--line);padding:24px;background:white}.counts strong{display:block;font-size:44px;line-height:1.2;color:var(--navy)}.counts span{display:block;margin-top:12px;font-weight:600}.location select{width:100%!important}.location label{margin:0}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}.check-grid label,.check{display:flex!important;align-items:flex-start;gap:12px;margin:8px 0}.check-grid input,.check input{flex:0 0 20px;width:20px!important;min-height:20px;margin-top:6px}fieldset{border:1px solid var(--line);padding:24px;margin:24px 0}legend{font-weight:600}.top-actions select{max-width:110px;background:var(--navy);color:white;border:1px solid white;padding:8px;font-size:16px}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#fundingList,#contractorList,#registration{margin-top:48px;border-top:1px solid var(--line);padding-top:32px}#app #fundingRows article,#app #contractorRows article{max-width:none}#registration input:not([type=checkbox]),#registration select{width:100%!important}#app .meta{font-size:16px}#finalReview{margin-top:24px;padding:24px;background:#E8ECEF}#finalReview .row{flex-wrap:wrap}#app button:disabled{opacity:.5;cursor:default}.contractor-contact{display:flex;flex-wrap:wrap;gap:12px 24px}.funding-subsection{margin-top:40px}.group-label{margin-top:32px;font-size:20px}@media(max-width:600px){.counts{gap:8px}.counts>div{padding:16px 8px}.counts strong{font-size:32px}.counts span{font-size:16px}.check-grid{grid-template-columns:1fr}.actions>button{width:100%}fieldset{padding:18px}.counts{margin:24px 0}#registration .grid{gap:16px}}

/* Geography changes are full-width section breaks, distinct from company cards. */
#app #contractorRows .group-label{display:block;width:100%;margin:56px 0 24px;padding:20px 24px;background:var(--navy);color:var(--white);border:2px solid var(--navy);border-top:4px solid var(--af-yellow);font-size:24px;font-weight:700;line-height:1.35;clear:both}
#app #contractorRows .group-label+article{margin-top:0}
@media(max-width:600px){#app #contractorRows .group-label{margin-top:40px;padding:18px 20px;font-size:22px}}

/* Funding levels use the same strong section-break treatment as geography. */
#app #fundingRows .funding-subsection{margin-top:56px}
#app #fundingRows .funding-subsection>h3{display:block;width:100%;margin:0 0 24px;padding:20px 24px;background:var(--navy);color:var(--white);border:2px solid var(--navy);border-top:4px solid var(--af-yellow);font-size:24px;font-weight:700;line-height:1.35;clear:both}
#app #fundingRows .funding-subsection>h3+article{margin-top:0}
@media(max-width:600px){#app #fundingRows .funding-subsection{margin-top:40px}#app #fundingRows .funding-subsection>h3{padding:18px 20px;font-size:22px}}
/* Each directory has independent, closed category panels. */
#app .directory-section{margin:24px 0}#app .directory-section>h3,#app .directory-section>h4{margin:0}#app .directory-toggle{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;padding:20px 24px;background:var(--navy);color:white;border:2px solid var(--navy);border-top:4px solid var(--af-yellow);font:700 24px/1.35 'Source Sans 3',sans-serif;text-align:left;cursor:pointer}#app .directory-toggle::after{content:'+';font-size:28px}#app .directory-toggle[aria-expanded=true]::after{content:'−'}#app .directory-toggle:focus-visible{outline:3px solid var(--af-yellow);outline-offset:3px}#app .directory-panel{padding-top:24px}#app .directory-panel .directory-toggle{font-size:21px}#app .directory-panel article:first-child{margin-top:0}#app .directory-panel article h5{font-size:24px;color:var(--navy);margin:0 0 16px}@media(max-width:600px){#app .directory-toggle{padding:18px 20px;font-size:22px}}
body[data-page=registration] #app> :not(#registration):not(#loadError){display:none!important}body[data-page=registration] #registration{margin-top:0;padding-top:0;border-top:0}body[data-page=registration] #registration>h2{font-size:42px;line-height:1.15}body:not([data-page=registration]) #registration{display:none!important}
/* Compact placeholder for the future application-help button. */
#app .application-help{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;width:fit-content;max-width:100%;margin:24px 0;padding:12px 18px;border-left:3px solid #245A81;background:#E8ECEF}#app .application-help h2{margin:0;font-size:18px;line-height:1.4}#app .application-help p{margin:0;font-size:15px;line-height:1.4}

/* Keep registration controls aligned and related actions clearly separated. */
#registration .grid{gap:20px 24px;margin:24px 0}
#registration .grid>label{margin:0}
#registration .check{align-items:flex-start;margin:12px 0}
#registration input[type=checkbox]{width:20px!important;height:20px;min-height:20px;padding:0;margin:4px 0 0;flex:0 0 20px;accent-color:var(--blue)}
#registration .check-grid label{margin:0;min-height:44px;padding:8px 0}
#registration .registration-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
@media(min-width:900px){#travelChoices{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){#registration .registration-actions>button{width:100%}}

/* A shared height for location fields, funding totals and browsing actions. */
#app{--browse-control-height:64px}
#app .location select,#app #browse>.actions>button{height:var(--browse-control-height);min-height:var(--browse-control-height);padding:12px 18px;line-height:1.3;box-sizing:border-box}
#app .counts>div{height:var(--browse-control-height);min-height:var(--browse-control-height);display:flex;align-items:center;gap:12px;padding:10px 18px;box-sizing:border-box}
#app .counts strong{font-size:30px;line-height:1;margin:0;flex-shrink:0}
#app .counts span{font-size:16px;line-height:1.2;margin:0;overflow-wrap:anywhere}
@media(max-width:600px){#app .counts>div{gap:6px;padding:8px;justify-content:center}#app .counts strong{font-size:24px}#app .counts span{font-size:14px}}
