@layer layout {
  .container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--gutter);
  }

  .container--wide {
    max-width: var(--container-wide);
  }

  .container--reading {
    max-width: var(--reading-max);
  }

  .section {
    padding-block: var(--section-y);
  }

  .section__head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--sp-6);
    margin-bottom: var(--section-gap-inner);
  }

  .grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-cols), minmax(0, 1fr));
    gap: var(--grid-gap);
  }

  .grid--cards {
    display: grid;
    gap: var(--grid-gap);
    grid-template-columns: 1fr;
  }

  .split-sticky {
    display: grid;
    gap: var(--grid-gap);
  }

  .split-sticky__head {
    margin: 0;
  }

  .split-sticky__stack {
    display: flex;
    flex-direction: column;
    gap: var(--stack-gap);
  }

  .bento {
    display: grid;
    gap: var(--grid-gap);
    grid-template-columns: 1fr;
  }

  .hero {
    position: relative;
    display: grid;
    min-height: auto;
    padding-block: var(--sp-14);
    align-items: end;
    overflow-x: clip;
  }

  .hero--slider {
    display: block;
    padding-block: 0;
    min-height: min(72vh, 32rem);
  }

  .hero__slides {
    display: grid;
  }

  .hero__slide {
    grid-area: 1 / 1;
    display: grid;
    min-height: inherit;
    padding-block: var(--sp-14);
    align-items: end;
    pointer-events: none;
    visibility: hidden;
  }

  .hero__slide.is-active {
    pointer-events: auto;
    visibility: visible;
    z-index: 1;
  }

  .hero__copy {
    position: relative;
    z-index: 1;
  }

  .hero--slider .hero__copy {
    padding-inline: calc(var(--gutter) + 2.75rem + var(--sp-2));
  }

  p.lead,
  .hero .lead {
    display: block;
    max-width: 68ch;
  }

  .hero__copy .lead a {
    text-decoration: underline;
    text-decoration-color: var(--color-accent);
    text-underline-offset: 0.18em;
  }

  .hero__copy .btn {
    margin-top: var(--sp-6);
  }

  .usp {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--sp-5) var(--sp-4);
    margin: var(--sp-8) 0 0;
    padding: 0;
    list-style: none;
  }

  .usp li {
    display: grid;
    gap: var(--sp-2);
    align-content: start;
  }

  .usp__icon {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--color-text);
  }

  .usp h3,
  .usp__title {
    font-family: var(--font-display);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    line-height: var(--lh-snug);
    max-width: none;
  }

  .inline-video {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: var(--r-lg);
    overflow: hidden;
    background: var(--color-text);
  }

  .inline-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .inline-video__toggle {
    position: absolute;
    right: var(--sp-4);
    bottom: var(--sp-4);
    z-index: 1;
  }

  .inline-video__pause {
    display: none;
  }

  .inline-video.is-playing .inline-video__play {
    display: none;
  }

  .inline-video.is-playing .inline-video__pause {
    display: block;
  }

  .hero__media {
    aspect-ratio: 16 / 9;
    background: var(--color-surface-sunk);
    border-radius: var(--r-sm);
    overflow: hidden;
  }

  .hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .hero--slider .hero__media {
    position: absolute;
    inset: 0;
    aspect-ratio: auto;
    border-radius: 0;
    opacity: 0.12;
    pointer-events: none;
  }

  .hero--photo {
    overflow: hidden;
  }

  .hero--photo .hero__media {
    position: absolute;
    inset: 0;
    aspect-ratio: auto;
    border-radius: 0;
    height: 100%;
    min-height: 100%;
    opacity: 0.12;
    pointer-events: none;
  }

  .hero--photo .hero__copy {
    max-width: 38rem;
  }

  #feed {
    scroll-margin-top: calc(var(--header-h) + var(--sp-4));
  }

  #partners {
    padding-block: clamp(2.5rem, 4vw, 4rem);
  }

  .hero__arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    transform: translateY(-50%);
  }

  .hero__arrow--prev {
    left: var(--gutter);
  }

  .hero__arrow--next {
    right: var(--gutter);
  }

  .hero__arrow--next svg {
    transform: rotate(180deg);
  }

  .hero__dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: var(--sp-6);
    z-index: 2;
    display: flex;
    justify-content: center;
    gap: var(--sp-2);
  }

  .hero__dot {
    width: 0.5rem;
    height: 0.5rem;
    min-height: 2.75rem;
    min-width: 2.75rem;
    padding: 0;
    border-radius: var(--r-pill);
    background: transparent;
  }

  .hero__dot::after {
    content: "";
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    margin: auto;
    border-radius: var(--r-pill);
    background: var(--c-line-strong);
  }

  .hero__dot[aria-current="true"]::after {
    background: var(--color-text);
  }

  .lead-split {
    display: grid;
    gap: var(--sp-10);
  }

  .filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2);
  }

  .service-cell {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--sp-4);
  }

  .service-cell .card--service {
    width: 100%;
  }

  .marquee__item {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    height: 2.5rem;
    color: var(--color-text);
  }

  .marquee__item img {
    height: 2rem;
    width: auto;
  }

  .marquee__item span {
    font-family: var(--font-display);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    white-space: nowrap;
  }

  .media-ph {
    display: grid;
    place-items: center;
    width: 100%;
    background: var(--color-surface-sunk);
    color: var(--color-text-muted);
    font-size: var(--fs-xs);
    letter-spacing: var(--tracking-chip);
    text-transform: uppercase;
  }

  .lead-block {
    max-width: var(--form-col);
  }

  @media (min-width: 48rem) {
    .grid--cards {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .usp {
      grid-template-columns: 1fr 1fr;
    }

    .grid--cards:has(.service-cell) {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  @media (min-width: 64rem) {
    .grid--cards {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .split-sticky {
      grid-template-columns: repeat(var(--grid-cols), minmax(0, 1fr));
      align-items: start;
    }

    .split-sticky__head {
      grid-column: 1 / span 5;
      position: sticky;
      top: calc(var(--header-h) + var(--sp-8));
    }

    .split-sticky__stack {
      grid-column: 6 / span 7;
    }

    .bento {
      grid-template-columns: 7fr 5fr;
    }

    .bento > :first-child {
      grid-row: span 2;
    }

    .hero,
    .hero__slide {
      grid-template-columns: 1fr 1fr;
      min-height: min(88vh, 780px);
      padding-block: 0;
      align-items: center;
    }

    .hero--slider {
      min-height: min(88vh, 780px);
    }

    .hero__copy,
    .hero--slider .hero__copy {
      padding-inline: var(--gutter);
    }

    .hero__arrow--prev {
      left: calc(50% + var(--sp-4));
    }

    .hero__media,
    .hero--slider .hero__media {
      position: relative;
      inset: auto;
      opacity: 1;
      border-radius: 0;
      height: 100%;
      min-height: min(88vh, 780px);
      clip-path: inset(0 -50vw 0 0);
    }

    .hero--service .hero__media img {
      object-position: right center;
    }

    .hero--compact,
    .hero--compact .hero__media {
      min-height: min(58vh, 36.125rem);
    }

    .hero--photo {
      grid-template-columns: 1fr;
    }

    .hero--photo .hero__media {
      position: absolute;
      inset: 0;
      opacity: 1;
      clip-path: none;
      min-height: 100%;
      height: 100%;
    }

    .hero--photo .hero__media img {
      object-position: right bottom;
    }

    .hero--photo::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background: linear-gradient(
        90deg,
        var(--color-bg) 0%,
        color-mix(in srgb, var(--color-bg) 70%, transparent) 26%,
        color-mix(in srgb, var(--color-bg) 10%, transparent) 46%,
        transparent 58%
      );
    }

    .lead-split {
      grid-template-columns: var(--form-col) minmax(0, 1fr);
      align-items: start;
      gap: var(--sp-14);
    }
  }

  @media (min-width: 90rem) {
    .split-sticky__head {
      grid-column: 1 / span 4;
    }

    .split-sticky__stack {
      grid-column: 6 / span 7;
    }
  }
}
