/* SYSTEM V34 — global typography, accessibility and shared page polish */

:root {
  --page-h1: clamp(38px,4.6vw,58px);
  --section-h2: clamp(32px,3.8vw,46px);
  --card-h3: clamp(22px,2.2vw,30px);
}

.skip-link {
  position: fixed;
  z-index: 9999;
  top: 10px;
  left: 12px;
  padding: 11px 16px;
  border-radius: 999px;
  color: #fff;
  background: #171f25;
  text-decoration: none;
  font-weight: 800;
  transform: translateY(-160%);
  transition: transform .2s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

:where(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid color-mix(in srgb,#ab1b14 72%,#fff);
  outline-offset: 4px;
}

body:not(.page-home) :is(.internal-hero,.detail-hero,.project-detail-hero,.services-landing-hero) h1 {
  max-width: 820px;
  font-size: var(--page-h1) !important;
  line-height: 1.04 !important;
  letter-spacing: -.045em !important;
  text-wrap: balance;
}

body:not(.page-home) .section-head h2,
body:not(.page-home) .contact h2,
body:not(.page-home) .contact-sidebar h2,
body:not(.page-home) .legal-title h1 {
  font-size: var(--section-h2) !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
  text-wrap: balance;
}

body:not(.page-home) :is(.card,.value-card,.pricing-card,.compact-service-card,.result-card) h3 {
  font-size: var(--card-h3) !important;
  line-height: 1.12 !important;
  text-wrap: balance;
}

body:not(.page-home) :is(.internal-hero,.detail-hero,.services-landing-hero) p {
  max-width: 650px;
}

.legal-copy {
  max-width: 880px;
}

.legal-copy section + section {
  margin-top: 42px;
}

.legal-copy h2 {
  font-size: clamp(25px,2.8vw,34px) !important;
}

.legal-copy p {
  max-width: 780px;
}

.footer-legal-links {
  display: grid;
  gap: 10px;
}

.form-trap,
.website-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

body {
  overflow-x: hidden;
}

img {
  max-width: 100%;
}

@media (max-width:700px) {
  :root {
    --page-h1: clamp(33px,9.2vw,44px);
    --section-h2: clamp(29px,8vw,39px);
  }

  body:not(.page-home) :is(.internal-hero,.detail-hero,.project-detail-hero,.services-landing-hero) {
    min-height: auto;
  }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
