/**
 * Global navigation and footer. Page content remains in its existing stylesheets.
 */
.site-header { isolation:isolate; }
.admin-bar { --mss-admin-offset:32px; }
.site-header .header-inner { gap:1.5rem; min-height:6rem; }
.site-header.is-scrolled .header-inner { min-height:6rem; }
.site-branding { flex:0 0 170px; }
.site-branding .custom-logo { max-width:170px; transition:max-width 180ms; }
.site-branding.has-padded-logo .custom-logo-link,
.is-scrolled .site-branding.has-padded-logo .custom-logo-link { width:170px; height:64px; }
.is-scrolled .site-branding .custom-logo { max-width:160px; }
.site-header .menu { gap:1.55rem; }
.site-header .menu > li > a { font-size:.85rem; white-space:nowrap; }
.header-actions { flex-shrink:0; gap:.75rem; }
.header-contacts { gap:0; }
.header-quote { padding:.85rem 1.1rem; white-space:nowrap; }
.primary-navigation .menu .mss-services-nav { position:static; display:flex; align-items:center; gap:.1rem; }
.mss-services-toggle { display:inline-flex; align-items:center; justify-content:center; width:28px; min-height:44px; padding:0; border:0; background:transparent; color:var(--mss-gold-ink); cursor:pointer; }
.mss-services-toggle svg { width:16px; height:16px; transition:transform 160ms; }
.mss-services-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.mss-mega-menu { position:absolute; top:100%; left:50%; transform:translateX(-50%); width:min(78rem, calc(100% - 5rem)); max-height:calc(100dvh - 9rem); overflow:auto; padding:1.35rem 1.6rem 1.65rem; border:1px solid #d8c9a8; border-radius:0 0 .4rem .4rem; background:var(--mss-warm-white); box-shadow:0 18px 38px rgb(20 34 56 / 11%); }
.site-header:not(.nav-ready) .mss-mega-menu { display:none; }
.site-header:not(.nav-ready) .mss-services-nav:hover .mss-mega-menu,
.site-header:not(.nav-ready) .mss-services-nav:focus-within .mss-mega-menu { display:block; }
.mss-mega-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:1rem; margin-bottom:1.35rem; border-bottom:1px solid var(--mss-border); }
.mss-mega-heading > span { font:1.3rem/1.3 Georgia,serif; }
.primary-navigation .mss-mega-heading a { display:inline-flex; align-items:center; gap:.5rem; color:var(--mss-gold-ink); font-size:.75rem; text-decoration:none; }
.mss-mega-heading .mss-icon { width:1rem; height:1rem; }
.mss-mega-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1.3rem; }
.mss-service-group { min-width:0; }
.primary-navigation .mss-service-group-heading > a { display:flex; flex-direction:column; align-items:flex-start; gap:.65rem; padding:0 0 .65rem; color:var(--mss-navy); font-size:.85rem; font-weight:600; line-height:1.5; text-decoration:none; min-height:5rem; }
.mss-service-group-heading .mss-icon { width:1.15rem; height:1.15rem; color:var(--mss-gold-ink); }
.primary-navigation .mss-service-children { list-style:none; margin:0; padding:0; }
.primary-navigation .mss-service-children a { display:flex; align-items:center; justify-content:space-between; gap:.4rem; min-height:40px; padding:.45rem 0; color:#626369; font-size:.78rem; line-height:1.5; text-decoration:none; }
.mss-service-children a span { color:var(--mss-gold-ink); opacity:0; transition:transform 150ms,opacity 150ms; }
.mss-service-children a:hover span, .mss-service-children a:focus-visible span { opacity:1; transform:translateX(2px); }
.primary-navigation .mss-service-children a:hover,
.primary-navigation .mss-service-group-heading > a:hover { color:var(--mss-gold-ink); }
.mss-mobile-menu-actions { display:none; }
.mss-services-toggle:focus-visible, .mss-category-toggle:focus-visible,
.site-footer a:focus-visible { outline:2px solid var(--mss-gold); outline-offset:4px; border-radius:2px; }

/* One visual treatment for existing primary quote buttons across templates. */
.button.button-gold { color:var(--mss-navy); background:#c4ab76; border:1px solid #a58b56; border-radius:.25rem; box-shadow:0 3px 10px rgb(20 34 56 / 7%); }
.button.button-gold:hover { color:var(--mss-navy); background:#bba06a; transform:translateY(-2px); box-shadow:0 6px 16px rgb(20 34 56 / 12%); }
.button.button-gold:hover .mss-icon { transform:translateX(3px); }
.button.button-gold:focus-visible { outline:3px solid var(--mss-navy); outline-offset:4px; }

.site-footer { position:relative; overflow:hidden; background:var(--mss-deep-navy); }
.site-footer::before { content:""; position:absolute; right:-10rem; top:-15rem; width:45rem; height:45rem; border:1px solid rgb(215 196 155 / 7%); border-radius:50%; box-shadow:0 0 0 5rem rgb(215 196 155 / 2%),0 0 0 10rem rgb(215 196 155 / 2%); pointer-events:none; }
.site-footer .footer-inner { position:relative; display:grid; grid-template-columns:1.25fr .7fr 1fr 1.05fr; gap:2.5rem; align-items:start; padding-block:3.4rem 2.5rem; }
.footer-branding, .footer-column { min-width:0; }
.footer-branding.has-padded-logo .custom-logo-link { width:170px; height:85px; }
.footer-branding .custom-logo-link { margin-bottom:1rem; }
.footer-brand-statement { margin:0; max-width:29ch; font-size:.82rem; line-height:1.85; color:#c3c9d0; }
.footer-column h2 { margin:.4rem 0 1rem; font:600 .75rem/1.5 var(--mss-font-body, sans-serif); letter-spacing:.12em; text-transform:uppercase; color:var(--mss-soft-gold); }
.footer-links { margin:0; padding:0; list-style:none; }
.footer-links a { display:inline-flex; align-items:center; min-height:38px; padding-block:.3rem; color:#e1e4e7; text-decoration:none; font-size:.8rem; line-height:1.55; }
.footer-links a:hover, .site-footer .contact-action:hover { color:var(--mss-soft-gold); text-decoration:underline; text-underline-offset:4px; }
.footer-contact .contact-action { display:flex; justify-content:flex-start; align-items:center; min-height:42px; padding-block:.35rem; font-size:.8rem; line-height:1.6; color:#e1e4e7; }
.footer-contact .contact-action .mss-icon { flex-shrink:0; color:var(--mss-soft-gold); }
.footer-contact .contact-action span { min-width:0; overflow-wrap:anywhere; }
.site-footer .footer-bottom { position:relative; align-items:center; padding-block:1.25rem; font-size:.7rem; line-height:1.7; }
.footer-legal { display:flex; flex-wrap:wrap; gap:1.5rem; }
.footer-legal a { display:inline-flex; align-items:center; min-height:32px; text-decoration:none; }
.footer-legal a:hover { text-decoration:underline; text-underline-offset:4px; }
body.has-contact-dock .site-footer { padding-bottom:0; }

@media (min-width:1101px) {
	.site-header .menu { align-items:center; }
	.primary-navigation .menu .mss-services-nav { min-height:6rem; }
	.desktop-quote-tab { right:0; color:var(--mss-navy); background:#c4ab76; border:1px solid #a58b56; border-right:0; border-radius:.35rem 0 0 .35rem; box-shadow:-3px 4px 16px rgb(20 34 56 / 12%); transition:width 160ms,background 160ms; }
	.desktop-quote-tab:hover { width:2.35rem; background:#bba06a; color:var(--mss-navy); }
	.desktop-quote-tab:hover .mss-icon { transform:translateY(3px); }
	.desktop-quote-tab:focus-visible { outline:3px solid var(--mss-navy); outline-offset:3px; }
}
@media (min-width:1101px) and (max-width:1250px) {
	.site-header .header-inner { gap:1rem; }
	.site-header .menu { gap:1rem; }
	.header-actions { gap:.35rem; }
	.header-quote { padding-inline:.85rem; }
	.mss-mega-menu { padding-inline:1.25rem; }
	.mss-mega-grid { gap:1rem; }
}
@media (max-width:1100px) {
	.site-header .header-inner, .site-header.is-scrolled .header-inner { min-height:5.5rem; padding-block:.65rem; gap:0 1rem; }
	.site-branding { flex:1 1 auto; }
	.site-branding .custom-logo, .is-scrolled .site-branding .custom-logo { max-width:145px; }
	.site-branding.has-padded-logo .custom-logo-link, .is-scrolled .site-branding.has-padded-logo .custom-logo-link { width:145px; height:64px; }
	.header-actions { margin-left:auto; }
	.header-contacts { display:none; }
	.header-quote { min-height:44px; padding:.65rem 1rem; }
	.menu-toggle { flex:0 0 44px; display:inline-flex; }
	.primary-navigation { max-height:calc(100dvh - 8.5rem - var(--mss-admin-offset, 0px)); overflow:auto; overscroll-behavior:contain; margin:.65rem 0 0; }
	.primary-navigation .menu { max-height:none; overflow:visible; gap:0; padding-block:.65rem; margin-top:.65rem; }
	.primary-navigation .menu > li > a { padding:.75rem .35rem; font-size:.95rem; }
	.primary-navigation .menu .mss-services-nav { display:grid; grid-template-columns:1fr 44px; }
	.mss-services-toggle { width:44px; border-radius:.25rem; background:var(--mss-ivory); }
	.mss-mega-menu { position:static; transform:none; grid-column:1 / -1; width:auto; max-height:none; overflow:visible; padding:.5rem .8rem; margin:.3rem 0 .65rem; border:1px solid var(--mss-border); border-radius:.3rem; box-shadow:none; }
	.site-header:not(.nav-ready) .mss-mega-menu { display:block; }
	.mss-mega-heading { display:none; }
	.mss-mega-grid { display:block; }
	.mss-service-group + .mss-service-group { border-top:1px solid var(--mss-border); }
	.mss-service-group-heading { display:flex; align-items:center; gap:.4rem; }
	.primary-navigation .mss-service-group-heading > a { flex:1; flex-direction:row; align-items:center; gap:.65rem; min-height:52px; padding:.65rem 0; font-size:.85rem; }
	.mss-service-group-heading .mss-icon { flex-shrink:0; }
	.mss-category-toggle { display:flex; align-items:center; justify-content:center; width:44px; height:44px; flex:0 0 44px; border:0; border-radius:.25rem; background:transparent; color:var(--mss-gold-ink); font-size:1.3rem; cursor:pointer; }
	.mss-category-toggle:hover { background:var(--mss-ivory); }
	.mss-category-toggle[aria-expanded="true"] span { transform:rotate(45deg); }
	.primary-navigation .mss-service-children { padding:0 0 .6rem 1.8rem; }
	.primary-navigation .mss-service-children a { min-height:44px; padding:.6rem 0; font-size:.83rem; }
	.mss-service-children a span { opacity:1; }
	.mss-mobile-menu-actions { display:block; padding:.75rem .35rem 1rem; border-top:1px solid var(--mss-border); }
	.mss-mobile-menu-actions > .button { width:100%; }
	.mss-mobile-menu-contacts { display:flex; justify-content:space-around; flex-wrap:wrap; gap:.5rem; margin-top:.65rem; }
	.mss-mobile-menu-contacts .contact-action { min-height:44px; font-size:.75rem; }
	.site-footer .footer-inner { grid-template-columns:1fr 1fr; gap:2rem 3rem; }
	.footer-brand-statement { max-width:38ch; }
	.footer-contact .contact-action { min-height:44px; }
	.footer-links a { min-height:44px; }
}
@media (max-width:782px) {
	.admin-bar { --mss-admin-offset:46px; }
}
@media (max-width:600px) {
	.site-header .header-inner, .site-header.is-scrolled .header-inner { min-height:4.75rem; padding-block:.45rem; gap:0 .55rem; }
	.site-branding .custom-logo, .is-scrolled .site-branding .custom-logo { max-width:110px; }
	.site-branding.has-padded-logo .custom-logo-link, .is-scrolled .site-branding.has-padded-logo .custom-logo-link { width:110px; height:52px; }
	.header-quote { padding:.6rem .65rem; font-size:.72rem; gap:.4rem; }
	.header-quote .mss-icon { width:.85rem; height:.85rem; }
	.primary-navigation { max-height:calc(100dvh - 7rem - var(--mss-admin-offset, 0px)); }
	.site-footer .footer-inner { grid-template-columns:.85fr 1.15fr; gap:1.75rem 1.35rem; padding-block:2rem 1.75rem; }
	.footer-branding, .footer-contact { grid-column:1 / -1; }
	.footer-branding.has-padded-logo .custom-logo-link { width:160px; height:80px; }
	.footer-brand-statement { max-width:46ch; }
	.footer-links a { font-size:.77rem; }
	.footer-column h2 { margin-top:0; font-size:.7rem; }
	.site-footer .footer-bottom { gap:.5rem; font-size:.65rem; }
}
@media (prefers-reduced-motion:reduce) {
	.site-header *, .desktop-quote-tab, .button.button-gold { transition:none; }
}
