/* Shared interaction details; the navy and brass design stays quiet. */
:root { --header-offset: 116px; scroll-padding-top: var(--header-offset); }
html { scroll-behavior: smooth; }
body { overflow-wrap: break-word; }
main { min-width: 0; }
.skip, .skip-link { z-index: 100; }
main .text-link, .back-top, .footer-navigation a, .contact-email {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
main .text-link { gap: 12px; }
main .text-link span { margin-left: 0; }
.button, .button-small, .sign-in, .portfolio-filters button,
.photo-viewer button, .installation-nav a { min-height: 44px; }
.installation-nav a { display: inline-flex; align-items: center; }
.portfolio-filters button { line-height: 1.4; }
.photo-expand { width: 40px; height: 40px; }
.button, .service-card, .gallery-link, .portfolio-open img, .sign-in {
  transition-duration: 220ms;
  transition-timing-function: cubic-bezier(.22, 1, .36, 1);
}
.service-card p:not(.eyebrow):not(.service-number), .precision-details p,
.principle-grid p, .process-list p, .small-project-list p,
.realtor-card p:not(.eyebrow), .certified-brand > p:not(.certification-label) {
  font-size: 13px;
}
.photo-viewer { overscroll-behavior: contain; }
.viewer-navigation { flex-wrap: wrap; }
.inquiry-form-frame { color-scheme: light; }
@media (hover: hover) and (pointer: fine) {
  .service-card:hover, .gallery-link:hover, .button:hover, .sign-in:hover {
    transform: translateY(-2px);
  }
}
@media (hover: none) {
  .service-card:hover, .gallery-link:hover, .button:hover, .sign-in:hover,
  .portfolio-open:hover img { transform: none; }
}
@media (max-width: 960px) {
  :root { --header-offset: 94px; }
  .site-header nav { overscroll-behavior: contain; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .button:hover, .service-card:hover, .gallery-link:hover, .sign-in:hover,
  .portfolio-open:hover img { transform: none; }
}
