/* Navigation, local icons and progressive enhancement. */
html { overflow-x: clip; scroll-padding-top: calc(var(--header-h, 76px) + 12px); }
.icon { display: inline-flex; width: 1em; height: 1em; flex: none; vertical-align: -.12em; }
.icon svg { width: 100%; height: 100%; }
.service-list .icon svg { width: 1.1rem; height: 1.1rem; }
.hamburger { display: none; color: #0f1b29; }
:focus-visible { outline: 3px solid #2c8fa6; outline-offset: 5px; }
[data-reveal] { transition: opacity .75s ease, transform .75s ease; }
.reveal-pending { opacity: 0; }
.reveal-pending[data-reveal="up"] { transform: translateY(40px); }
.stat-num[data-count] { min-width: 3ch; }
@media (max-width: 1024px) {
  .js .site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 101; }
  .js body { padding-top: var(--header-h, 60px); }
  .js .hamburger { display: flex; flex-direction: column; justify-content: center; gap: 4px; width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; cursor: pointer; }
  .hamburger span { display: block; width: 24px; height: 2px; background: currentColor; transition: transform .25s, opacity .25s; }
  .nav-open .hamburger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-open .hamburger span:nth-child(2) { opacity: 0; }
  .nav-open .hamburger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .js .main-nav { position: fixed; z-index: 100; top: var(--header-h, 60px); left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 2px; padding: 1.75rem; overflow: auto; visibility: hidden; transform: translateY(-120%); transition: transform .32s ease, visibility .32s; }
  .js .main-nav.nav--open { visibility: visible; transform: translateY(0); }
  body.nav-open { overflow: hidden; }
  html:has(body.nav-open) { overflow: hidden; }
  html:not(.js) .header-inner { flex-wrap: wrap; padding-block: .75rem; }
  html:not(.js) .main-nav { display: flex; flex-wrap: wrap; gap: .75rem; padding: 1rem; width: 100%; }
}
@media (max-width: 380px) {
  .price-list li { gap: .5rem; }
  .p-val { font-size: .9rem; }
  .contact-phone { font-size: 1.45rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal-pending { opacity: 1; transform: none; }
}

/* Make the entire reference statistic a link. */
.stat-reference { color: inherit; text-decoration: none; }
.stat-reference:hover .stat-label,
.stat-reference:focus-visible .stat-label { text-decoration: underline; text-underline-offset: .2em; }
