/* Shared homepage header and footer, isolated from each tool's styles. */
body{margin:0;padding:0}
.site-header,.site-footer{box-sizing:border-box;width:100%;max-width:none;margin:0;background:#f7f5f1;color:#211a15;font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.6;display:flex;justify-content:space-between;flex-shrink:0;text-align:left;border-radius:0;letter-spacing:normal}
.site-header{padding:22px max(6vw,24px);align-items:center;gap:24px;border:0;border-bottom:1px solid rgba(33,26,21,.18)}
.site-header .site-brand{display:flex;flex-direction:column;align-items:center;width:135px;flex:0 0 135px;text-decoration:none;color:#211a15}
.site-brand img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.site-brand span{font:400 10px/1.6 Georgia,serif;letter-spacing:.4em;margin-top:3px}
.site-header nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:18px;margin:0;padding:0;max-width:none;font:400 12px/1.6 Georgia,serif;letter-spacing:.02em;background:transparent}
.site-header nav a,.site-footer a{color:#211a15;text-decoration:none;border:0;background:transparent;font-weight:400}
.site-header nav a:hover,.site-footer a:hover{color:#8b1c1c}
.site-footer{padding:28px 6%;font:400 11px/1.6 Arial,sans-serif;align-items:center;gap:16px;border:0}
.site-header a:focus-visible,.site-footer a:focus-visible{outline:2px solid #8b1c1c;outline-offset:4px}
body:has(.site-header)>.container{padding:48px 20px;box-sizing:border-box;width:100%}
body:has(.site-header){align-items:stretch;justify-content:flex-start;gap:0}
.legal-note{font-size:13px;margin-top:32px;color:var(--text-secondary)}
@media(max-width:700px){.site-header{flex-direction:column;align-items:flex-start;gap:20px}.site-header .site-brand{flex-basis:auto;width:120px}.site-header nav{justify-content:flex-start;font-size:11px}.site-footer{flex-wrap:wrap}}
body>.table-map{margin:36px auto;flex-shrink:0}

/* Larger navigation with a drawn crimson underline. */
.site-header nav{gap:12px 28px;font-family:var(--font-display,Georgia,serif);font-size:clamp(15.4px,1.4vw,21px);line-height:1.35;letter-spacing:0}
.site-header nav a{position:relative;display:inline-flex;align-items:center;min-height:52px;padding:8px 0;box-sizing:border-box;white-space:nowrap}
.site-header nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:3px;background:#B30E20;transform:scaleX(0);transform-origin:left center;transition:transform .4s cubic-bezier(.22,.61,.36,1);border-radius:2px}
.site-header nav a:hover::after,.site-header nav a:focus-visible::after{transform:scaleX(1)}
.site-header nav a:hover{color:#191B1D}
@media(max-width:1000px){.site-header{flex-wrap:wrap}.site-header nav{justify-content:flex-start}}
@media(max-width:700px){.site-header nav{font-size:15.4px;gap:8px 24px}}
@media(prefers-reduced-motion:reduce){.site-header nav a::after{transition:none}}

.site-header nav,.site-header nav a{font-weight:400;font-synthesis:none}

/* A tapered ink stroke reveals from left to right without stretching. */
.site-header nav a::after{height:3px;bottom:4px;background:transparent url('/assets/nav-ink.svg') center/100% 100% no-repeat;border-radius:0;transform:none;clip-path:inset(0 100% 0 0);transition:clip-path .5s cubic-bezier(.22,.61,.36,1)}
.site-header nav a:hover::after,.site-header nav a:focus-visible::after{transform:none;clip-path:inset(0 0 0 0)}
@media(prefers-reduced-motion:reduce){.site-header nav a::after{transition:none}}

.site-footer .footer-brand{display:block;width:200px;max-width:55vw}.site-footer .footer-brand img{display:block;width:100%;height:auto;mix-blend-mode:multiply}

.site-footer{display:grid;grid-template-columns:1fr auto 1fr;background:#F7F5F1}.site-footer .footer-emblem{justify-self:center;width:100px}.footer-emblem img{display:block;width:100%;height:auto;mix-blend-mode:multiply}.site-footer>a:last-child{justify-self:end}@media(max-width:520px){.site-footer{gap:12px;font-size:10px}.site-footer .footer-emblem{width:70px}}

.site-footer{background:var(--bg-bot,#EEE9E1)}

.site-footer{grid-template-columns:1fr 1fr}

/* Compact accessible phone navigation; links remain visible without JavaScript. */
.mobile-menu-toggle{display:none}
@media(max-width:700px){
 .site-header{flex-direction:row;flex-wrap:wrap;align-items:center;padding:16px 20px;gap:12px;background:#F7F5F1}
 .site-header .site-brand{width:104px;flex:0 0 104px}
 .site-header.navigation-ready .mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:76px;min-height:44px;margin-left:auto;padding:10px 14px;border:1px solid #B30E20;background:transparent;color:#211a15;font:16px/1.25 var(--font-body,Arial,sans-serif);border-radius:0;cursor:pointer}
 .site-header nav{flex-basis:100%;width:100%;min-width:0}
 .site-header.navigation-ready nav{display:none}
 .site-header.navigation-open nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding-top:12px;border-top:1px solid #D9D2C8}
 .site-header nav a{font-size:16px;min-height:48px;white-space:normal;overflow-wrap:break-word}
 .site-footer{background:#EEE9E1!important;color:#211a15!important;grid-template-columns:minmax(0,1fr) auto;padding:20px;gap:12px;font-size:12px;line-height:1.5}
 .site-footer a{display:inline-flex;align-items:center;min-height:44px;color:#211a15!important}
 .site-footer>span{min-width:0;overflow-wrap:break-word}
}

@media(max-width:700px){
 .site-header{justify-content:center;flex-direction:column;align-items:center}
 .site-header .site-brand{margin:0;flex-basis:auto}
 .site-header.navigation-ready .mobile-menu-toggle{margin:0 auto}
 .site-header nav{justify-content:center;text-align:center}
 .site-header nav a{justify-content:center;text-align:center}
 .site-header.navigation-open nav a:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center}
}

/* Centered attendance statement shared by public-page footers. */
.site-footer{grid-template-columns:minmax(0,1fr) minmax(0,420px) minmax(0,1fr);gap:24px}
.site-footer .footer-impact{min-width:0;text-align:center;color:#211a15}
.site-footer .footer-impact p{margin:0;font:400 14px/1.5 var(--font-body,Arial,sans-serif);color:#62676B}
.site-footer .footer-impact .footer-impact-number{font-size:40px;line-height:1.2;margin:8px 0 4px;color:#211a15}
@media(max-width:900px){
 .site-footer{grid-template-columns:minmax(0,1fr) auto;gap:20px}
 .site-footer .footer-impact{grid-column:1/-1;grid-row:1;justify-self:center;width:min(100%,420px)}
 .site-footer>span{grid-column:1;grid-row:2}
 .site-footer>a:last-child{grid-column:2;grid-row:2}
}
