/* Shared controls use the approved homepage dimensions. */
.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--button-gap);
  border: 1px solid currentColor;
  padding: var(--button-padding);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  transition: .25s;
}
.btn:hover { background: var(--ink); color: var(--white); }
.btn.light:hover { background: var(--white); color: var(--ink); }
.cta-arrow {
  display: inline-block;
  width: 16px;
  height: 12px;
  flex: 0 0 auto;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: middle;
  transition: transform .2s ease;
}
a:hover .cta-arrow { transform: translateX(3px); }
.contact-link { display: block; margin: 17px 0; }
/* JavaScript adds .js-nav only after the disclosure is initialized.
   Without JavaScript, the complete navigation stays available. */
.menu { display: none; }
@media(max-width:1200px) {
  html:not(.js-nav) .nav { flex-wrap: wrap; }
  html:not(.js-nav) .navlinks { display: flex; flex-basis: 100%; flex-wrap: wrap; gap: 8px 24px; }
}

.navlinks{display:flex;align-items:center;gap:22px;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.nav-item{position:relative}.nav-parent{display:flex;align-items:center}.submenu-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:32px;border:0;background:transparent;color:inherit;cursor:pointer}.submenu-toggle svg{width:9px;fill:none;stroke:currentColor;stroke-width:1.25}.services-submenu{position:absolute;top:calc(100% + 12px);left:-20px;width:255px;padding:16px 20px;background:#111;color:#fff;border:1px solid #ffffff30;box-shadow:0 18px 45px #0003;display:none}.services-submenu a{display:block;padding:8px 0;font-size:10px;line-height:1.35}.services-submenu.submenu-open,.nav-residential:focus-within .services-submenu{display:block}@media(hover:hover) and (pointer:fine){.nav-residential:hover .services-submenu{display:block}}
.social-links{display:flex;align-items:center;gap:12px}.social-link{display:inline-flex;width:18px;height:18px;color:#fff;opacity:.78}.social-link svg{width:100%;height:100%;fill:currentColor}.social-link svg rect,.social-link svg circle{fill:none;stroke:currentColor;stroke-width:1.6}.social-link svg .social-dot{fill:currentColor;stroke:none}.social-pending{cursor:help}.social-links-footer{margin-top:22px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nav-label-mobile{display:none}
.menu{border:0;background:none;color:inherit;font-size:24px}
@media(max-width:1200px){
 .js-nav .menu{display:block}
 .js-nav .navlinks{display:none}
 .js-nav .navlinks.mobile-open{display:flex;position:absolute;top:100%;left:18px;right:18px;background:var(--ink);padding:22px;flex-direction:column;align-items:stretch;gap:10px;border:1px solid #ffffff30;max-height:calc(100svh - 150px);overflow:auto}
 .nav-parent{justify-content:space-between}.nav-parent>a{flex:1}.submenu-toggle{width:44px;height:44px}.services-submenu{position:static;width:auto;padding:4px 0 10px 20px;border:0;border-left:1px solid #ffffff36;box-shadow:none;background:transparent}.services-submenu a{padding:9px 0}.nav-residential:focus-within .services-submenu{display:none}.nav-residential .services-submenu.submenu-open{display:block}.social-links-header{padding-top:14px;margin-top:8px;border-top:1px solid #ffffff26}.nav-label-desktop{display:none}.nav-label-mobile{display:inline}
}

.site-header{
  position:absolute;z-index:20;top:0;left:0;width:100%;color:white;
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:27px 0;border-bottom:1px solid rgba(255,255,255,.25)}
footer{background:#111;color:white;padding:54px 0 32px}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:60px}
.footer-title{font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:#aaa;margin-bottom:14px}
.copyright{border-top:1px solid rgba(255,255,255,.15);margin-top:44px;padding-top:22px;font-size:10px;color:#777;display:flex;justify-content:space-between}
@media(max-width:700px){.nav{padding:19px 0}.footer-grid{grid-template-columns:1fr;gap:30px}.copyright{flex-direction:column;gap:8px}}

@media(max-width:1200px){html:not(.js-nav) .site-header{position:relative;background:var(--ink)}}
