.modular-card-grid-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-flow: row dense;
  gap: var(--spacing-base-space-200);
  list-style: none;
  margin: 0;
  padding: 0;
}

.modular-card-grid-card {
  background-color: var(--palette-default-bg-base);
  color: var(--palette-default-fg-base);
  border-radius: var(--radius-radius-120);
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
  aspect-ratio: 305 / 397;
}

.modular-card-grid-card.emphasize {
  grid-column: span 2;
  aspect-ratio: 626 / 397;
}

.modular-card-grid-info-card .modular-card-grid-card-inner {
  display: flex;
  flex-direction: column;
  padding: var(--spacing-base-space-300) var(--spacing-base-space-400);
  block-size: 100%;
}

.modular-card-grid-info-card .modular-card-grid-card-title {
  font-family: var(--typography-family-title-slab);
  font-size: var(--typography-font-size-headlines-48);
  font-weight: var(--typography-weight-regular);
  line-height: var(--typography-line-height-lh-53);
  letter-spacing: var(--typography-letter-spacing-0-5);
  color: var(--palette-default-fg-interactive);
  margin: 0;
  transition: color 0.2s ease;
}

.modular-card-grid-info-card .modular-card-grid-card-description {
  font-family: var(--typography-family-body-sans);
  font-size: var(--typography-font-size-headlines-28);
  line-height: var(--typography-line-height-lh-34);
  color: var(--palette-default-fg-interactive);
  font-weight: var(--typography-weight-regular);
  letter-spacing: var(--typography-letter-spacing-0);
  flex: 1;
  transition: color 0.2s ease;
}

.modular-card-grid-info-card .modular-card-grid-card-description > * {
  margin: 0;
}

.modular-card-grid-info-card .modular-card-grid-card-cta,
.modular-card-grid-info-card .modular-card-grid-card-link-text {
  font-family: var(--typography-family-body-sans);
  font-size: var(--typography-font-size-headlines-18);
  font-weight: var(--typography-weight-medium);
  color: var(--palette-default-fg-interactive);
  line-height: var(--typography-line-height-lh-27);
  margin-block: auto 0;
  display: block;
}

.modular-card-grid-info-card.card-has-link .modular-card-grid-card-cta {
  color: var(--palette-default-fg-interactive);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.15em;
  transition: text-decoration-color 0.2s ease;
  padding-block: var(--spacing-base-space-100);
}

.modular-card-grid-lightbox-close span {
  display: flex;
  align-items: center;
  justify-content: center;
}

.modular-card-grid-info-card .modular-card-grid-card-cta > span {
  white-space: nowrap;
}

.modular-card-grid-info-card .modular-card-grid-card-link-wrapper {
  display: flex;
  flex-direction: column;
  flex: 1;
  color: inherit;
  text-decoration: none;
}

.modular-card-grid-info-card.card-has-link {
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.modular-card-grid-info-card.card-has-link:hover .modular-card-grid-card-title,
.modular-card-grid-info-card.card-has-link:hover .modular-card-grid-card-description,
.modular-card-grid-info-card.card-has-link:focus-within .modular-card-grid-card-title,
.modular-card-grid-info-card.card-has-link:focus-within .modular-card-grid-card-description {
  color: var(--color-primary-white);
}

.modular-card-grid-info-card.card-has-link:hover .modular-card-grid-card-cta,
.modular-card-grid-info-card.card-has-link:focus-within .modular-card-grid-card-cta {
  color: var(--color-primary-light-teal);
  text-decoration-color: var(--color-primary-light-teal);
}

.modular-card-grid-info-card.card-has-link:hover,
.modular-card-grid-info-card.card-has-link:focus-within {
  background-color: var(--color-secondary-mgb-blue);
}

.modular-card-grid-info-card .modular-card-grid-card-link-wrapper:focus {
  outline: 0.1875rem solid var(--palette-default-stroke-focused);
  outline-offset: -0.1875rem;
  border-radius: inherit;
}

.modular-card-grid-info-card .modular-card-grid-card-link-wrapper:focus:not(:focus-visible) {
  outline: none;
}

.modular-card-grid-media-card .modular-card-grid-image-wrapper {
  inline-size: 100%;
  overflow: hidden;
  border-radius: inherit;
  flex: 1;
}

.modular-card-grid-media-card picture {
  display: block;
  block-size: 100%;
  inline-size: 100%;
  border-radius: inherit;
}

.modular-card-grid-media-card img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: inherit;
}

.modular-card-grid-media-caption {
  font-family: var(--typography-family-body-sans);
  font-size: var(--typography-font-size-body-16);
  line-height: var(--typography-line-height-lh-24);
  color: var(--palette-default-fg-base);
  font-weight: var(--typography-weight-regular);
  letter-spacing: var(--typography-letter-spacing-0);
  padding: var(--spacing-base-space-200) var(--spacing-base-space-200);
  margin: 0;
  background-color: var(--palette-default-bg-secondary);
}

.modular-card-grid-statement-card .modular-card-grid-card-inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--spacing-base-space-300) var(--spacing-base-space-400);
  block-size: 100%;
}

.modular-card-grid-statement-icon {
  display: flex;
  align-items: center;
}

.modular-card-grid-statement-icon svg {
  inline-size: 3rem;
  block-size: 3rem;
  color: var(--palette-default-fg-base);
  fill: currentcolor;
}

.modular-card-grid-info-card .modular-card-grid-card-cta svg {
  vertical-align: middle;
  margin-inline-start: var(--spacing-base-space-075, 6px);
}

.modular-card-grid-statement-text {
  font-family: var(--typography-family-body-sans);
  font-size: var(--typography-font-size-headlines-28);
  font-weight: var(--typography-weight-regular);
  line-height: var(--typography-line-height-lh-34);
  color: var(--palette-default-fg-base);
}

.modular-card-grid-statement-card .modular-card-grid-statement-text > * {
  margin: 0;
}

@media (width < 1024px) {
  .modular-card-grid-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--spacing-base-space-150, 0.75rem);
  }
}

@media (width < 768px) {
  .modular-card-grid-info-card .modular-card-grid-card-title {
    font-size: var(--typography-font-size-headlines-36);
    line-height: var(--typography-line-height-lh-40);
    letter-spacing: var(--typography-letter-spacing-0-4);
  }

  .modular-card-grid-info-card .modular-card-grid-card-description {
    font-size: var(--typography-font-size-headlines-24);
    line-height: var(--typography-line-height-lh-29);
    letter-spacing: var(--typography-letter-spacing-0-2);
  }

  .modular-card-grid-statement-text {
    font-size: var(--typography-font-size-headlines-24);
    line-height: var(--typography-line-height-lh-29);
    letter-spacing: var(--typography-letter-spacing-0-2);
  }
}

@media (width < 520px) {
  .modular-card-grid-cards {
    grid-template-columns: 1fr;
    gap: var(--spacing-base-space-150, 0.75rem);
  }

  .modular-card-grid-card {
    aspect-ratio: auto;
  }

  .modular-card-grid-media-card {
    aspect-ratio: 343 / 446;
  }

  .modular-card-grid-card.emphasize {
    grid-column: span 1;
    aspect-ratio: auto;
  }

  .modular-card-grid-statement-icon {
    margin-block-end: var(--spacing-base-space-400);
  }
}

@media (prefers-reduced-motion: reduce) {
  .modular-card-grid-info-card .modular-card-grid-card-cta,
  .modular-card-grid-info-card.card-has-link,
  .modular-card-grid-info-card .modular-card-grid-card-title,
  .modular-card-grid-info-card .modular-card-grid-card-description {
    transition: none;
  }
}

/* Clickable media cards - hover state */
.modular-card-grid-image-wrapper.lightbox-trigger {
  cursor: pointer;
  position: relative;
  pointer-events: auto;
  transition: filter 0.2s ease;
}

.modular-card-grid-image-wrapper.lightbox-trigger:not(.video-card):hover {
  filter: brightness(0.9);
}

/* Video card with poster and play button */
.modular-card-grid-image-wrapper.video-card {
  position: relative;
  overflow: hidden;
  background: #000;
  transition: filter 0.2s ease;
}

.modular-card-grid-image-wrapper.video-card.lightbox-trigger:hover {
  filter: brightness(0.85);
}

.modular-card-grid-image-wrapper.video-card.grid-video-player {
  width: 100%;
  height: 100%;
}

.modular-card-grid-image-wrapper.video-card.grid-video-player .video-js .vjs-tech {
  object-fit: cover;
}

.modular-card-grid-image-wrapper.video-card.grid-video-player .video-js {
  width: 100%;
  height: 100%;
  max-width: unset;
  max-height: unset;
}

.modular-card-grid-image-wrapper.video-card.grid-video-player .video-js:not(.vjs-paused) .vjs-poster {
  display: none !important;
}

.modular-card-grid-image-wrapper.video-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.modular-card-grid-image-wrapper.video-card.video-placeholder {
  background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.video-play-button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6.25rem;
  height: 6.25rem;
  background: #8BFFCD;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgb(0 0 0 / 30%);
  transition: all 0.3s ease;
  cursor: pointer;
  border: none;
  pointer-events: none;
}

.modular-card-grid-image-wrapper.video-card:hover .video-play-button {
  transform: scale(1.15);
  background: #8BFFCD;
  box-shadow: 0 8px 20px rgb(0 0 0 / 50%);
}

.video-play-button .play-icon {
  width: 2.5rem;
  height: 2.5rem;
  fill: none;
  stroke: #036;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (width <= 900px) {
  .video-play-button {
    width: 3.125rem;
    height: 3.125rem;
  }

  .video-play-button .play-icon {
    width: 1.562rem;
    height: 1.562rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .modular-card-grid-image-wrapper.clickable.has-image {
    animation: none;
    transition: none;
  }
}
