html,
body {
  max-width: 100%;
  min-width: 320px;
  overflow-x: hidden;
}

@supports (overflow: clip) {
  html,
  body {
    overflow-x: clip;
  }
}

img,
svg {
  max-width: 100%;
}

img {
  height: auto;
}

a,
button,
summary {
  -webkit-tap-highlight-color: rgba(28, 154, 148, .2);
}

.hero > *,
.section-intro > *,
.growth-signature > *,
.expertise-card > *,
.approach > *,
.about-card > *,
.fit > * {
  min-width: 0;
}

section[id],
article[id] {
  scroll-margin-top: 110px;
}

.button,
.nav-cta,
.menu-button,
.text-link,
.card-link,
.expertise-link,
.faq-list summary {
  min-height: 44px;
}

.text-link,
.card-link,
.expertise-link {
  display: inline-flex;
  align-items: center;
}

.faq-list summary {
  display: flex;
  align-items: center;
  padding-block: .15rem;
}

.brand-copy,
.contact-email,
.about h2 {
  overflow-wrap: anywhere;
}

@supports (padding: max(0px)) {
  .site-header {
    padding-left: max(clamp(1.25rem, 5vw, 5.5rem), env(safe-area-inset-left));
    padding-right: max(clamp(1.25rem, 5vw, 5.5rem), env(safe-area-inset-right));
  }

  footer {
    padding-left: max(clamp(1.25rem, 5vw, 5.5rem), env(safe-area-inset-left));
    padding-right: max(clamp(1.25rem, 5vw, 5.5rem), env(safe-area-inset-right));
    padding-bottom: max(2.5rem, env(safe-area-inset-bottom));
  }
}

@media (max-width: 900px) {
  .menu-button {
    display: grid;
    place-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 50%;
  }

  .site-header nav {
    max-height: calc(100vh - 75px);
    max-height: calc(100dvh - 75px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .site-header nav a {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  .site-header nav .nav-cta {
    justify-content: center;
  }
}

@media (max-width: 600px) {
  .contact-actions,
  .about-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .contact .contact-actions .button,
  .about-actions .button {
    width: 100%;
  }

  .about-actions .text-link {
    justify-content: center;
    text-align: center;
  }

  .contact-email {
    padding-inline: 1rem;
  }
}

@media (max-width: 420px) {
  .site-header {
    gap: .65rem;
  }

  .brand {
    min-width: 0;
  }

  .brand-mark {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
  }

  .brand-copy {
    font-size: .68rem;
    letter-spacing: .065em;
  }

  .hero h1 {
    font-size: clamp(2.75rem, 14vw, 4rem);
  }
}

@media (max-width: 350px) {
  .site-header {
    padding-inline: .8rem;
  }

  .brand-copy {
    font-size: .62rem;
  }
}

@media (hover: none) {
  .button:hover {
    transform: none;
  }
}

@media (forced-colors: active) {
  .button,
  .nav-cta,
  .values span,
  .growth-principles span {
    border: 1px solid ButtonText;
  }
}
