@font-face {
  font-family: "Gotham";
  src: url("fonts/gotham-book-webfont.woff2") format("woff2"),
       url("fonts/gotham-book-webfont.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Gotham";
  src: url("fonts/gotham-bookitalic-webfont.woff2") format("woff2"),
       url("fonts/gotham-bookitalic-webfont.woff") format("woff");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Gotham";
  src: url("fonts/gotham-medium-webfont.woff2") format("woff2"),
       url("fonts/gotham-medium-webfont.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Gotham";
  src: url("fonts/gotham-mediumitalic-webfont.woff2") format("woff2"),
       url("fonts/gotham-mediumitalic-webfont.woff") format("woff");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Gotham";
  src: url("fonts/gotham-bold-webfont.woff2") format("woff2"),
       url("fonts/gotham-bold-webfont.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Gotham";
  src: url("fonts/gotham-bolditalic-webfont.woff2") format("woff2"),
       url("fonts/gotham-bolditalic-webfont.woff") format("woff");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Gotham";
  src: url("fonts/gotham-black-webfont.woff2") format("woff2"),
       url("fonts/gotham-black-webfont.woff") format("woff");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Gotham";
  src: url("fonts/gotham-blackitalic-webfont.woff2") format("woff2"),
       url("fonts/gotham-blackitalic-webfont.woff") format("woff");
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

:root {
  --font-sans: "Gotham", "Helvetica Neue", Arial, sans-serif;
}

html,
body,
body *:not([class^="swiper-button"]):not([class*=" swiper-button"]):not(.swiper-notification),
button,
input,
select,
textarea {
  font-family: var(--font-sans) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.site-header,
.main-nav,
.button,
.round-cta,
.service-card span,
.event-card h3,
.news-card h3,
.subscribe h4,
.footer-col h5 {
  font-family: var(--font-sans);
}

.media-columns .service-child-grid__wrapper {
  align-items: stretch;
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr;
}

.media-columns .service-child-grid {
  margin-top: 30px;
  padding: 0 20px;
}

.media-columns .service-child-grid__wrapper .media-columns__swiper-slide {
  display: flex;
  height: auto;
  width: auto !important;
}

.media-columns .service-child-grid__wrapper .media-columns__swiper-slide > * {
  flex: 1;
}

.service-child-grid .media-card__content {
  margin-bottom: 25px;
}

.about-team .archive-team__intro {
  margin-bottom: 40px;
  max-width: 760px;
}

.about-team .archive-team__heading + .archive-team__content {
  margin-top: 15px;
}

.about-team-card__excerpt {
  margin-top: 15px;
}

.about-team-card__excerpt p {
  font-size: 14px;
  line-height: 1.5;
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .media-columns .service-child-grid__wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (min-width: 1024px) {
  .media-columns .service-child-grid__wrapper {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media screen and (min-width: 1280px) {
  .media-columns .service-child-grid {
    margin-top: 60px;
  }
}

.ccw-gallery {
  padding-bottom: 80px;
  padding-top: 80px;
}

.ccw-gallery__grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.ccw-gallery__item {
  aspect-ratio: 1;
  background: #f2f2f2;
  display: block;
  overflow: hidden;
}

.ccw-gallery__image {
  display: block;
  height: 100%;
  object-fit: cover;
  transition: transform 300ms ease;
  width: 100%;
}

.ccw-gallery__item:hover .ccw-gallery__image,
.ccw-gallery__item:focus-visible .ccw-gallery__image {
  transform: scale(1.025);
}

.ccw-gallery__item:focus-visible {
  outline: 3px solid #006b3c;
  outline-offset: 3px;
}

@media (max-width: 991px) {
  .ccw-gallery {
    padding-bottom: 60px;
    padding-top: 60px;
  }

  .ccw-gallery__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 575px) {
  .ccw-gallery {
    padding-bottom: 40px;
    padding-top: 40px;
  }

  .ccw-gallery__grid {
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Keep desktop testimonial slides proportional to their content instead of
   reserving the height of the longest quote for every customer. */
@media (min-width: 1024px) {
  .testimonials-page .testimonials__swiper-wrapper {
    align-items: flex-start !important;
  }

  .testimonials-page .testimonials__swiper-slide,
  .testimonials-page .testimonials__row,
  .testimonials-page .testimonials__col--image,
  .testimonials-page .testimonials__col--testimonial {
    height: auto !important;
  }

  .testimonials-page .testimonials__row {
    min-height: 320px !important;
  }

  .testimonials-page .testimonials__figure {
    aspect-ratio: auto !important;
  }

  .testimonials-page .testimonials__figure,
  .testimonials-page .testimonials__image {
    height: 100% !important;
  }

  .testimonials-page .testimonials__quote {
    font-size: 28px;
    line-height: 1.25;
  }

  .testimonials-page .testimonials__wrap--card {
    padding: 45px 55px !important;
  }

  .testimonials-page .testimonials__author {
    margin-top: 28px;
    padding-bottom: 0 !important;
  }
}
