/* Shared image cards */
.card-stack {
  min-width: 0;
}
.card-description {
  max-width: 46ch;
  margin-top: 18px;
  color: var(--muted);
  font-size: var(--body-copy-size);
  line-height: 1.45;
  letter-spacing: -0.018em;
}
.card-stack > .card-description {
  margin-left: 24px;
}
.keyword {
  color: var(--ink);
}
.js:not(.motion-complete) .keyword {
  color: inherit;
  transition: color 0.8s cubic-bezier(0.22, 1, 0.36, 1)
    var(--keyword-delay, 0ms);
}
.js .card-description.keywords-visible .keyword {
  color: var(--ink);
}
.image-card {
  position: relative;
  min-width: 0;
  height: clamp(580px, 58vw, 820px);
  margin: 0;
  overflow: hidden;
  border-radius: var(--card-radius);
  color: #fff;
}
.image-card > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.image-card:hover > img {
  transform: scale(1.018);
}
.image-card figcaption {
  position: absolute;
  z-index: 1;
  left: 24px;
  bottom: 23px;
  color: #fff;
}
.image-card figcaption h3 {
  font-size: clamp(28px, 3vw, 44px);
  line-height: 0.98;
  letter-spacing: -0.04em;
  font-weight: 410;
}

/* Services */
.services {
  padding-top: clamp(110px, 12vw, 180px);
  padding-bottom: clamp(112px, 13vw, 200px);
  background: var(--surface-soft);
}
.service-media {
  margin-top: clamp(120px, 14vw, 210px);
}
.service-media,
.specialty-media,
.care-media {
  display: grid;
  grid-template-columns: var(--media-columns);
  gap: var(--media-gap);
  align-items: start;
}
.service-media > .card-stack:first-child {
  margin-top: clamp(70px, 8vw, 122px);
}
.service-media > .card-stack:first-child img {
  object-position: center bottom;
}
.service-media > .card-stack:last-child img {
  object-position: 51% center;
}
.media-card > img {
  filter: saturate(0.82) contrast(0.96);
}
.service-media > .card-stack:first-child .media-card > img {
  filter: none;
}
.media-card::after,
.specialty-card::after {
  content: "";
  position: absolute;
  inset: 48% 0 0;
  background: linear-gradient(180deg, transparent, rgba(7, 11, 14, 0.58));
}

/* Bike fit and technical wear */
.specialties,
.care {
  position: relative;
  padding: clamp(112px, 13vw, 196px) var(--page-gutter)
    clamp(128px, 15vw, 224px);
  background: var(--ice);
}
.specialty-media > .card-stack:last-child {
  margin-top: clamp(70px, 8vw, 122px);
}
.specialty-card > img {
  filter: saturate(0.88) contrast(0.97);
}
.specialty-media > .card-stack:first-child img {
  object-position: left center;
  transform: scale(1.1) translateX(4%);
}
.specialty-media > .card-stack:first-child .image-card:hover > img {
  transform: scale(1.118) translateX(4%);
}
.specialty-media > .card-stack:last-child img {
  object-position: center top;
}
