/* Shared header and footer; canonical rules extracted from Home. */
.topline{display:flex;justify-content:space-between;margin:0 16px;border-bottom:1px solid #73909c;padding:12px 0 10px;font:11px Arial,sans-serif;letter-spacing:2.3px}.header{display:flex;gap:28px;align-items:center;padding:38px 16px 40px;position:relative}.brand{width:360px;flex:0 1 360px}.brand img{width:100%}.tagline{font:11px/1.4 Arial,sans-serif;letter-spacing:1.5px;text-transform:uppercase;border-left:1px solid #97a9ab;padding-left:22px;min-width:128px}.header #main-navigation{margin-left:auto}.header nav{display:flex;align-items:center;gap:26px;font:14px var(--display);letter-spacing:.7px;text-transform:uppercase}.header nav a{text-decoration:none;white-space:nowrap}.header nav a[aria-current=page]{border-bottom:2px solid var(--orange);padding-bottom:6px}.header .nav-contact{background:var(--orange);color:var(--cream);padding:11px 30px;font-size:20px;letter-spacing:1px}.menu-toggle{display:none}.footer{background:var(--navy);color:var(--cream);padding:19px 23px;display:flex;gap:22px;align-items:center}.footer-mark{width:55px}.footer>p{font:10px/1.6 Arial,sans-serif;text-transform:uppercase;letter-spacing:1.5px;margin:0}.footer nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:20px;font:11px Arial,sans-serif;text-transform:uppercase;letter-spacing:.7px}.footer a{text-decoration:none}.footer .nav-contact{background:none}.footer a:hover{color:#f0aa80}
@media(max-width:1120px){.header{gap:20px;padding:28px 10px 32px}.brand{width:300px;flex-basis:300px}.tagline{font-size:9px;min-width:100px;padding-left:16px}.header nav{gap:20px;font-size:13px}.header .nav-contact{padding:9px 20px;font-size:18px}.footer nav{gap:14px;font-size:10px}.footer>p{font-size:9px}}
@media(max-width:900px){.tagline{display:none}.header nav{gap:18px}.brand{flex-basis:285px;width:285px}.footer{padding:16px;gap:15px;flex-wrap:wrap}.footer nav{margin-left:auto;gap:13px}.footer>p{max-width:240px}.footer-mark{width:42px}}
@media(max-width:700px){.topline{margin:0 8px;font-size:9px;letter-spacing:1.2px;padding:12px 0 8px}.header{padding:20px 8px 24px;gap:15px;flex-wrap:wrap}.brand{width:245px;flex:0 1 245px;max-width:72%}.menu-toggle{display:flex;align-items:center;gap:9px;padding:8px 0 8px 8px;background:none;border:0;color:var(--navy);font:600 17px var(--display);text-transform:uppercase;margin-left:auto;min-height:var(--touch-target)}.menu-toggle img{width:28px;height:28px}.header #main-navigation{display:none;width:100%;margin:0;border-top:1px solid var(--line);padding-top:15px}.header #main-navigation.is-open{display:block}.header nav{display:grid;grid-template-columns:1fr 1fr;gap:0;font-size:19px}.header nav a{padding:12px 10px;min-height:var(--touch-target)}.header nav a[aria-current=page]{padding-bottom:12px;border-bottom:0;color:var(--orange)}.header .nav-contact{font-size:19px;text-align:center;margin-top:6px;grid-column:1/-1}.footer{margin:0;display:grid;grid-template-columns:45px 1fr;gap:13px;padding:15px}.footer>p{font-size:9px;line-height:1.5;max-width:none;letter-spacing:1.2px}.footer nav{grid-column:1/-1;justify-content:center;gap:16px;font-size:10px;letter-spacing:.5px;margin:7px 0 0}.footer-mark{width:43px}}
@media(max-width:430px){.topline{font-size:8px;letter-spacing:.85px;margin:0 3px}.header{padding:18px 3px 22px}.brand{max-width:73%;width:240px;flex-basis:240px}.menu-toggle{font-size:14px;gap:5px;padding-left:0}.menu-toggle img{width:24px}.footer nav{gap:13px;font-size:9px}.footer>p{font-size:8px}}
.site .footer nav .footer-linkedin{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;min-height:44px;color:var(--cream);background:transparent;text-decoration:none}.footer-linkedin svg{display:block;width:24px;height:24px;flex:none}
/* Keep compact labels while giving navigation a consistent touch area. */
.site .header nav a,.site .footer nav a{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target)}.footer :focus-visible{outline-color:var(--cream)}
@media(min-width:431px) and (max-width:700px){.header{padding-top:18px;padding-bottom:20px}}

.site .header nav{font-family:Arial,sans-serif;font-size:12px;font-weight:600}
.site .header .nav-contact{font-family:var(--display);font-size:23px}
.site .footer{padding:16px 22px;min-height:74px}
.site .footer>p{font-size:10px}
.site .footer nav{font-size:11px;gap:20px}
.site .footer-mark{width:53px}
@media(min-width:701px) and (max-width:1120px){
 .site .header{gap:20px;padding:22px 12px 22px}.site .brand{flex-basis:310px}.site .tagline{min-width:105px}.site .header nav{gap:20px;font-size:10px}.site .header .nav-contact{padding:10px 24px;font-size:20px}}
@media(min-width:701px) and (max-width:900px){
 .site .tagline{display:none}.site .brand{flex-basis:265px}.site .header nav{gap:14px}.site .header .nav-contact{padding:10px 16px}.site .footer nav{gap:12px;font-size:10px}}
@media(max-width:700px){.site .topline{margin:0 10%;font-size:9px;padding:12px 0 9px;letter-spacing:1.6px}.site .header{padding:17px 10% 18px;gap:18px}.site .brand{width:270px;flex-basis:270px;max-width:75%}.site .menu-toggle{margin-left:auto;min-height:44px;font:600 14px Arial,sans-serif;gap:8px}.site .menu-toggle img{width:28px}.site .header #main-navigation{left:5%;right:5%;top:100%;z-index:10}.site .header nav{font-size:16px}.site .header .nav-contact{font-size:20px}
 .site .footer{display:grid;grid-template-columns:44px 1fr;gap:10px 18px;padding:12px 18px;min-height:66px}.site .footer-mark{width:44px}.site .footer>p{font-size:9px;letter-spacing:1.4px;border-left:1px solid #7492a0;padding-left:15px}.site .footer nav{grid-column:1/-1;font-size:11px;gap:20px;margin:0;justify-content:center}.site .footer nav a{min-height:30px;display:flex;align-items:center}}
@media(max-width:430px){
 .site .topline{margin:0 3%;font-size:8px;letter-spacing:.9px}.site .header{padding:14px 3% 16px}.site .brand{flex-basis:240px;max-width:73%}.site .menu-toggle{font-size:12px;gap:5px}.site .menu-toggle img{width:24px}
 .site .footer nav{gap:9px;font-size:10px}.site .footer>p{font-size:8px;letter-spacing:.8px}}
@media(max-width:700px){.site .header{padding-top:10px;padding-bottom:10px}.site .brand img{height:66px;object-fit:contain}}
@media(max-width:430px){.site .header{flex-wrap:nowrap;gap:8px}.site .brand{min-width:0;flex:1 1 auto}.site .menu-toggle{flex:none}}
@media(min-width:431px){.site .footer{display:flex;flex-wrap:nowrap;gap:18px}.site .footer>p{flex:1;min-width:120px}.site .footer nav{flex-wrap:nowrap;gap:12px;font-size:9px}}
@media(min-width:431px) and (max-width:700px){.site .footer{padding:12px}.site .footer>p{font-size:8px;letter-spacing:.8px;min-width:130px}.site .footer nav{gap:8px;font-size:8px}}
/* Final reference proportions; retain larger reading sizes on narrow phones. */
@media(min-width:901px){.site .footer{min-height:64px;padding-top:10px;padding-bottom:10px}}
@media(max-width:430px){.site .footer{position:relative}.site .footer nav{padding-right:42px}.site .footer nav .footer-linkedin{position:absolute;right:8px;bottom:10px}}

/* Home's mobile outer gutter, without changing any page body container. */
@media(max-width:700px){
 .global-header{width:91vw;margin-left:calc((100% - 91vw)/2)}
 .site .footer{width:91vw;margin-left:calc((100% - 91vw)/2)}
 .site .header #main-navigation{position:absolute;width:auto;background:var(--cream);padding:15px;max-height:calc(100dvh - 120px);overflow-y:auto}
}
/* Current state must not change link geometry or hide the Contact label. */
.header nav a[aria-current=page]{border-bottom:0;padding-bottom:0;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:8px;text-decoration-thickness:2px}
.header .nav-contact[aria-current=page]{padding-bottom:11px;text-decoration-color:currentColor}
@media(min-width:701px) and (max-width:1120px){.site .header .nav-contact[aria-current=page]{padding-bottom:10px}}
@media(max-width:700px){.site .header nav a[aria-current=page]{padding-bottom:12px}.site .header .nav-contact[aria-current=page]{color:var(--cream)}}
/* Reserve the approved badge dimensions before its lazy-loaded SVG arrives. */
.footer-mark{aspect-ratio:573/580;height:auto}
@media(max-width:700px){.site .header{flex-wrap:nowrap}.site .brand{min-width:0}.site .menu-toggle{flex:none}}
/* Keep the approved two-row phone footer until the single row actually fits. */
@media(min-width:431px) and (max-width:560px){
 .site .footer{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px 18px;padding:12px 18px}
 .site .footer nav{grid-column:1/-1;flex-wrap:wrap;justify-content:center;font-size:10px;gap:9px}
}
