/* Shared navigation: predictable layout, direct links, no navigation delay. */
:root { --site-ink:#123b50; --site-yellow:#f4ce46; }
[hidden] { display:none !important; }
.header-wrap { max-width:1280px; margin-inline:auto; padding-inline:32px; }
.site-header { position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid #e2e7e8; }
.nav { display:flex; align-items:center; gap:30px; min-height:72px; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--site-ink); flex-shrink:0; }
.brand img { width:42px; height:42px; object-fit:contain; }
.brand-name { font-size:17px; font-weight:850; letter-spacing:-.5px; }
.brand-name b { color:#1f57c3; }
.brand-name small { display:block; font-size:10px; letter-spacing:.65px; font-weight:500; margin-top:3px; }
.desktop-links { display:flex; gap:24px; margin-left:auto; }
.desktop-links a,.header-phone { color:var(--site-ink); text-decoration:none; font-size:14px; font-weight:600; white-space:nowrap; }
.desktop-links a:hover,.header-phone:hover { text-decoration:underline; text-underline-offset:5px; }
.header-actions { display:flex; align-items:center; gap:20px; margin-left:auto; }
.header-quote { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:46px; padding:10px 18px; border-radius:4px; background:var(--site-yellow); color:var(--site-ink); font-size:14px; font-weight:750; text-decoration:none; white-space:nowrap; }
.header-quote:hover { background:#e8bf2e; }
.menu-toggle { display:none; border:1px solid #ccd7db; background:#fff; border-radius:4px; width:44px; height:44px; padding:11px; cursor:pointer; }
.menu-toggle span { display:block; height:2px; background:var(--site-ink); margin:4px 0; }
.mobile-menu { border-top:1px solid #e2e7e8; max-height:calc(100dvh - 110px); overflow:auto; }
.mobile-menu nav { display:grid; padding-block:12px; }
.mobile-menu a { padding:12px 0; text-decoration:none; color:var(--site-ink); border-bottom:1px solid #edf0f1; }
.skip-link { position:fixed; top:8px; left:8px; padding:12px; z-index:1000; background:#fff; color:#123b50; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
main { min-height:60vh; }
.site-footer { margin-top:48px; background:#0b1220; color:#d8deea; }
.foot { max-width:1200px; margin:auto; padding:28px 24px; display:grid; gap:18px; }
.foot-top { display:grid; grid-template-columns:2fr 1fr 1fr; gap:24px; }
.foot-top > div { min-width:0; }
.foot h4 { margin:0 0 10px; font-size:14px; color:#fff; }
.foot a { color:#d8deea; text-decoration:none; overflow-wrap:anywhere; }
.foot a:hover { color:#fff; text-decoration:underline; }
.foot .brandline { display:flex; align-items:center; gap:10px; }
.foot .brandline img { height:28px; }
.foot-bottom { border-top:1px solid #243049; padding-top:12px; font-size:13px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
@media(max-width:1150px) { .desktop-links { gap:16px; } .header-phone { display:none; } .nav { gap:20px; } }
@media(max-width:900px) { .desktop-links { display:none; } .menu-toggle { display:block; } .nav { min-height:64px; } .foot-top { grid-template-columns:1fr 1fr; } }
@media(max-width:600px) {
 .header-wrap { padding-inline:20px; }
 .nav { min-height:64px; gap:8px; }
 .brand { gap:7px; } .brand img { width:30px; height:30px; }
 .brand-name { font-size:12px; letter-spacing:-.3px; } .brand-name small { font-size:8px; letter-spacing:0; }
 .header-actions { gap:8px; } .header-quote { padding:8px 10px; min-height:44px; font-size:12px; gap:6px; }
 .header-quote span { display:none; } .menu-toggle { width:40px; flex-shrink:0; }
 .foot-top { grid-template-columns:1fr; }
}
@media(max-width:360px) { .nav { padding-inline:12px; } .brand img { width:24px; height:24px; } .brand-name { font-size:11px; } .brand-name small { font-size:7px; } }
@media(max-width:360px) {
 .nav { gap:4px; }
 .brand { gap:5px; } .brand img { width:22px; height:22px; }
 .brand-name { font-size:10px; }
 .header-actions { gap:5px; }
 .header-quote { font-size:11px; padding-inline:8px; }
}

/* The homepage already provides persistent mobile contact actions. */
@media(max-width:600px) {
 body:has(.mobile-quick-actions) .header-quote { display:none; }
 body:has(.mobile-quick-actions) .brand { gap:10px; }
 body:has(.mobile-quick-actions) .brand img { width:36px; height:36px; }
 body:has(.mobile-quick-actions) .brand-name { font-size:15px; letter-spacing:-.3px; }
 body:has(.mobile-quick-actions) .brand-name small { font-size:9px; letter-spacing:.2px; }
 body:has(.mobile-quick-actions) .menu-toggle { width:44px; height:44px; }
}
@media(max-width:360px) {
 body:has(.mobile-quick-actions) .brand-name { font-size:13px; }
 body:has(.mobile-quick-actions) .brand img { width:30px; height:30px; }
}
