.content-102 {
  background-color: var(--content-102--block--background-color);
  padding-bottom: var(--content-102--block--padding-y);
  padding-top: var(--content-102--block--padding-y);
}
.content-102:not(:first-child) {
  margin-top: var(--content-102--block--margin-top);
}

.content-102-header {
  text-align: var(--content-102--header--text-align);
  margin-bottom: var(--content-102--header--margin-bottom);
}

.content-102-subtitle {
  color: var(--content-102--subtitle--color);
  font-family: var(--content-102--subtitle--font-family);
  font-size: var(--content-102--subtitle--font-size);
  font-weight: var(--content-102--subtitle--font-weight);
  line-height: var(--content-102--subtitle--line-height);
  letter-spacing: var(--content-102--subtitle--letter-spacing);
  text-transform: var(--content-102--subtitle--text-transform);
  margin-bottom: var(--content-102--subtitle--margin-bottom);
}

.content-102-heading {
  color: var(--content-102--heading--color);
  font-family: var(--content-102--heading--font-family);
  font-size: var(--content-102--heading--font-size);
  font-weight: var(--content-102--heading--font-weight);
  line-height: var(--content-102--heading--line-height);
  letter-spacing: var(--content-102--heading--letter-spacing);
  text-transform: var(--content-102--heading--text-transform);
  margin: 0;
}

.content-102-swiper .swiper-wrapper {
  align-items: center;
  padding-bottom: var(--content-102--swiper-wrapper--padding-bottom);
}
.content-102-swiper:not(.swiper-initialized) .swiper-wrapper {
  gap: var(--theme--spacing--grid--margin);
  padding-left: var(--theme--spacing--grid--margin);
  padding-right: var(--theme--spacing--grid--margin);
}

.content-102-card {
  position: relative;
}

.content-102-card-link {
  display: block;
  text-decoration: none;
}

.content-102-card--large {
  width: var(--content-102--card-large--width);
}

.content-102-card--small {
  width: var(--content-102--card-small--width);
}

.content-102-card-image {
  border-radius: var(--content-102--card-image--border-radius);
  overflow: hidden;
  aspect-ratio: 3/4;
}
.content-102-card-image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 400ms ease;
}

.content-102-card:hover .content-102-card-image img {
  transform: scale(1.04);
}

.content-102-badge {
  position: absolute;
  bottom: var(--content-102--badge--margin);
  right: var(--content-102--badge--margin);
  z-index: 2;
  display: flex;
  align-items: center;
  background-color: var(--content-102--badge--background-color);
  color: var(--content-102--badge--color);
  border-radius: var(--content-102--badge--border-radius);
  padding-top: var(--content-102--badge--padding-y);
  padding-bottom: var(--content-102--badge--padding-y);
  padding-left: var(--content-102--badge--padding-x);
  padding-right: var(--content-102--badge--padding-x);
  font-family: var(--content-102--badge--font-family);
  font-size: var(--content-102--badge--font-size);
  font-weight: var(--content-102--badge--font-weight);
  pointer-events: none;
}

.content-102-badge-icon {
  width: var(--content-102--badge-icon--width);
  color: var(--content-102--badge-icon--color);
  margin-right: min(var(--content-102--badge--gap), var(--content-102--badge-icon--width) * 1000);
  flex-shrink: 0;
}
.content-102-badge-icon img,
.content-102-badge-icon svg {
  display: block;
  width: 100%;
  height: auto;
}

.content-102-badge-text {
  display: block;
  white-space: nowrap;
}