

html,
body {
  width: 100%;
  max-width: 100%;
}

body {
  overflow-x: clip;
}

main,
section,
header,
footer,
nav {
  max-width: 100%;
}

.container,
.container--narrow {
  min-width: 0;
}

.site-header__inner > *,
.site-footer__grid > *,
.hero-slide__inner > *,
.home-about__grid > *,
.home-services__head > *,
.home-services__grid > *,
.home-process__grid > *,
.home-pricing__grid > *,
.home-team__head > *,
.home-faq__grid > *,
.home-contact__shell > *,
.service-hero__inner > *,
.service-intro__grid > *,
.service-capabilities__grid > *,
.service-features__grid > *,
.service-showcase__shell > *,
.service-faq__grid > *,
.legal-main__grid > *,
.legal-hero__inner > * {
  min-width: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
span,
li {
  overflow-wrap: break-word;
}

.site-footer__email,
.home-contact__email,
.mobile-menu__email,
.legal-sidebar__email {
  overflow-wrap: anywhere;
}

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

img,
video {
  height: auto;
}

picture {
  display: block;
}

figure {
  min-width: 0;
}

.home-hero,
.service-hero,
.legal-hero,
.home-parallax,
.service-parallax,
.home-marquee,
.site-footer {
  width: 100%;
}

#about,
#services,
#pricing,
#team,
#faq,
#contact {
  scroll-margin-top:
    calc(var(--header-height) + 22px);
}

.swiper,
.swiper-wrapper,
.swiper-slide {
  min-width: 0;
}

.swiper {
  touch-action: pan-y;
}

.swiper-wrapper {
  box-sizing: border-box;
}

.swiper-slide {
  flex-shrink: 0;
}

.hero-swiper {
  touch-action: pan-y;
}

a,
button,
input,
select,
textarea {
  touch-action: manipulation;
}

.site-header,
.home-faq__intro,
.service-capabilities__intro,
.service-faq__intro,
.legal-sidebar {
  transform: none;
}

.cookie-card {
  position: fixed;

  right: var(--cookie-offset);
  bottom: var(--cookie-offset);

  z-index: var(--z-cookie);

  width:
    min(
      var(--cookie-width),
      calc(100vw - (var(--cookie-offset) * 2))
    );

  visibility: hidden;
  opacity: 0;

  transform: translate3d(0, 18px, 0);

  pointer-events: none;

  transition:
    opacity var(--transition-base),
    visibility var(--transition-base),
    transform var(--transition-base);
}

.cookie-card.is-visible {
  visibility: visible;
  opacity: 1;

  transform: translate3d(0, 0, 0);

  pointer-events: auto;
}

.cookie-card__inner {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    auto;

  align-items: center;

  gap: 22px;

  padding:
    16px
    18px
    16px
    20px;

  color: var(--color-graphite);
  background: rgba(255, 255, 255, 0.98);

  border: 1px solid var(--color-border);
  border-radius: var(--cookie-radius);

  box-shadow:
    0 16px 46px rgba(36, 34, 34, 0.13);
}

.cookie-card__content {
  min-width: 0;
}

.cookie-card__text {
  margin: 0;

  font-size: 12px;
  line-height: 1.55;

  color: var(--color-text-soft);
}

.cookie-card__policy {
  display: inline;

  color: var(--color-graphite);

  text-decoration: underline;
  text-decoration-color: rgba(48, 45, 45, 0.25);
  text-underline-offset: 3px;

  transition:
    color var(--transition-fast),
    text-decoration-color var(--transition-fast);
}

.cookie-card__policy:hover,
.cookie-card__policy:focus-visible {
  color: var(--color-turquoise-dark);

  text-decoration-color: currentColor;
}

.cookie-card__actions {
  display: flex;
  align-items: center;

  flex: 0 0 auto;

  gap: 8px;
}

.cookie-card__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 38px;

  padding-inline: 15px;

  font-size: 11px;
  font-weight: var(--font-weight-semibold);
  line-height: 1;

  white-space: nowrap;

  color: var(--color-graphite);
  background: var(--color-surface-alt);

  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);

  cursor: pointer;

  transition:
    color var(--transition-fast),
    background-color var(--transition-fast),
    border-color var(--transition-fast),
    transform var(--transition-base);
}

.cookie-card__button:hover {
  transform: translateY(-1px);
}

.cookie-card__button--accept {
  color: var(--color-white);
  background: var(--color-graphite);

  border-color: var(--color-graphite);
}

.cookie-card__button--accept:hover {
  background: #211f1f;
}

.cookie-card__button--decline:hover {
  border-color: rgba(48, 45, 45, 0.25);
}

@media (max-width: 1544px) {
  .container,
  .container--narrow,
  .hero-slide__inner,
  .hero-services__inner,
  .service-hero__inner {
    max-width:
      calc(100% - (var(--container-padding) * 2));
  }
}

@media (max-width: 1280px) {
  .section-heading__title {
    max-width: 900px;
  }

  .hero-slide__title,
  .service-hero__title {
    max-width: 660px;
  }

  .site-footer__grid {
    column-gap: 36px;
  }
}

@media (max-width: 1080px) {
  

  h1,
  h2 {
    text-wrap: balance;
  }

  

  .section-heading {
    max-width: 820px;
  }

  

  .hero-slide__content,
  .service-hero__content {
    min-width: 0;
  }

  

  .home-faq__intro,
  .service-capabilities__intro,
  .service-faq__intro,
  .legal-sidebar {
    top:
      calc(var(--header-height) + 28px);
  }

  

  .button,
  .site-nav__link,
  .site-footer__link {
    white-space: normal;
  }
}

@media (max-width: 900px) {
  

  h1,
  h2 {
    margin-left: auto;
    margin-right: auto;

    text-align: center;
  }

  

  .section-heading,
  .section-heading__title,
  .section-heading__text {
    margin-left: auto;
    margin-right: auto;

    text-align: center;
  }

  .section-heading .heading-rule {
    margin-left: auto;
    margin-right: auto;
  }

  

  .site-header {
    width: 100%;
  }

  

  .hero-slide__content,
  .service-hero__content {
    text-align: center;
  }

  .hero-slide__title,
  .hero-slide__copy,
  .service-hero__title,
  .service-hero__text {
    margin-left: auto;
    margin-right: auto;
  }

  

  .home-faq__intro,
  .service-capabilities__intro,
  .service-faq__intro,
  .legal-sidebar {
    position: static;
  }

  

  .home-parallax__image,
  .service-parallax__image {
    inset: -5% 0;

    height: 110%;
  }

  

  .site-footer__cta-title {
    max-width: 760px;
  }

  

  .cookie-card {
    right: 16px;
    bottom: 16px;

    width:
      min(
        620px,
        calc(100vw - 32px)
      );
  }
}

@media (max-width: 640px) {
  

  body {
    overflow-x: clip;
  }

  :root {
    --container-padding: 18px;
    --section-space-xl: 64px;
    --section-space-lg: 58px;
    --section-space-md: 48px;
    --section-space-sm: 38px;
    --button-height: 46px;
    --button-height-small: 44px;
    --button-padding: 0 20px;
  }

  

  h1,
  h2 {
    width: 100%;

    text-align: center;

    text-wrap: balance;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  h3 {
    text-wrap: balance;
  }

  

  .section,
  .section--large,
  .section--medium,
  .section--small {
    overflow-x: clip;
  }

  

  .section-heading__text,
  .home-about__text,
  .home-services__description,
  .home-team__intro,
  .home-faq__text,
  .home-contact__text,
  .service-intro__lead,
  .service-intro__text,
  .service-capabilities__text,
  .service-features__intro,
  .service-faq__text,
  .legal-content__intro {
    max-width: 560px;

    margin-left: auto;
    margin-right: auto;
  }

  

  .hero-slide__actions,
  .service-hero__actions,
  .home-about__actions,
  .service-intro__actions {
    justify-content: center;
  }

  

  .button {
    width: fit-content;
    max-width: 100%;
    min-height: 44px;

    padding-inline: 20px;

    white-space: normal;
  }

  

  .hero-slide__visual,
  .service-hero__visual,
  .home-about__visual,
  .service-intro__visual,
  .service-card__media {
    margin-left: auto;
    margin-right: auto;
  }

  

  .work-swiper,
  .team-swiper,
  .service-process-swiper {
    width: 100%;

    overflow: visible;
  }

  .work-swiper .swiper-slide,
  .team-swiper .swiper-slide,
  .service-process-swiper .swiper-slide {
    min-width: 0;
  }

  

  .card:hover,
  .process-card:hover,
  .service-card:hover,
  .pricing-card:hover,
  .service-feature-card:hover {
    transform: none;
  }

  

  .home-parallax__image,
  .service-parallax__image {
    inset: 0;

    width: 100%;
    height: 100%;

    will-change: auto;
  }

  

  input,
  textarea,
  select {
    font-size: 16px;
  }

  

  .cookie-card {
    right: 12px;
    bottom: 12px;

    width:
      calc(100vw - 24px);
  }

  .cookie-card__inner {
    grid-template-columns:
      minmax(0, 1fr)
      auto;

    gap: 12px;

    padding:
      13px
      13px
      13px
      16px;

    border-radius: 15px;
  }

  .cookie-card__text {
    font-size: 11px;
    line-height: 1.45;
  }

  .cookie-card__actions {
    gap: 6px;
  }

  .cookie-card__button {
    min-height: 36px;

    padding-inline: 12px;

    font-size: 10px;
  }

  

  .site-footer__brand,
  .site-footer__column {
    min-width: 0;
  }

  

  .legal-table-wrap {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  

  .site-brand {
    max-width:
      calc(100vw - 92px);
  }

  .site-brand__text {
    min-width: 0;
  }

  .site-brand__name {
    overflow: hidden;

    text-overflow: ellipsis;
    white-space: nowrap;
  }

  

  .hero-slide__content,
  .service-hero__content {
    width: 100%;
  }

  

  .hero-services__inner,
  .service-quick-nav__inner {
    -webkit-overflow-scrolling: touch;
  }

  

  .contact-form__row {
    gap: 14px;
  }

  

  .cookie-card__inner {
    grid-template-columns: 1fr;

    gap: 10px;

    padding: 14px 15px;
  }

  .cookie-card__content {
    padding-right: 4px;
  }

  .cookie-card__actions {
    justify-content: flex-end;
  }

  .cookie-card__button {
    min-height: 34px;
  }
}

@media (max-width: 390px) {
  .container,
  .container--narrow {
    width:
      calc(100% - 32px);
  }

  .hero-slide__inner,
  .hero-services__inner,
  .service-hero__inner {
    width:
      calc(100% - 32px);
  }

  

  .cookie-card {
    right: 8px;
    bottom: 8px;

    width:
      calc(100vw - 16px);
  }

  .cookie-card__inner {
    padding: 13px;
  }

  .cookie-card__actions {
    width: 100%;
  }

  .cookie-card__button {
    flex: 1;

    min-width: 0;
  }
}

@media
  (max-width: 900px)
  and (orientation: landscape)
  and (max-height: 560px) {

  .hero-slide__inner,
  .service-hero__inner {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(260px, 0.7fr);

    min-height: auto;

    gap: 36px;

    padding-top: 38px;
    padding-bottom: 96px;

    text-align: left;
  }

  .hero-slide__content,
  .service-hero__content {
    text-align: left;
  }

  .hero-slide__title,
  .hero-slide__copy,
  .service-hero__title,
  .service-hero__text {
    margin-left: 0;

    text-align: left;
  }

  .hero-slide__actions,
  .service-hero__actions {
    align-items: flex-start;
    justify-content: flex-start;

    flex-direction: row;
  }

  .hero-slide__actions .button,
  .service-hero__actions .button {
    width: auto;
  }

  .hero-slide__visual,
  .service-hero__visual {
    min-height: 280px;
  }

  .hero-slide__art,
  .service-hero__art {
    width: min(38vw, 370px);
  }
}

@media (hover: hover) and (pointer: fine) {
  .cookie-card__button:hover {
    transform: translateY(-1px);
  }
}

@media (hover: none), (pointer: coarse) {
  .button:hover,
  .menu-trigger:hover,
  .slider-button:hover,
  .cookie-card__button:hover {
    transform: none;
  }

  .swiper {
    cursor: default;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cookie-card {
    transform: none;

    transition: none;
  }

  .home-parallax__image,
  .service-parallax__image {
    transform: none !important;
    will-change: auto;
  }

  .hero-slide__content,
  .hero-slide__art {
    transform: none !important;
  }
}
