.dik-info-karten {
  --dik-body-bg: #f0f0f0;
  --dik-gap: 28px;
  --dik-cols-desktop: 3;
  --dik-cols-tablet: 2;
  --dik-cols-mobile: 1;
  --dik-icon-size: 72px;
  --dik-image-ratio: 16 / 10;
  --dik-body-padding: 28px;

  width: 100%;
  box-sizing: border-box;
}

.dik-info-karten *,
.dik-info-karten *::before,
.dik-info-karten *::after {
  box-sizing: border-box;
}

.dik-info-karten__grid {
  display: grid;
  /* Direkt --dik-cols-*: nested var(--dik-cols) in repeat() wird oft ignoriert. */
  grid-template-columns: repeat(var(--dik-cols-desktop), minmax(0, 1fr));
  gap: var(--dik-gap);
  align-items: stretch;
}

/* Divi-Child-Wrapper im Grid */
.dik-info-karten__grid > .et_pb_module,
.dik-info-karten__grid > .dik_info_karte,
.dik-info-karten__grid > [class*='dik_info_karte'] {
  min-width: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  display: flex;
  flex-direction: column;
}

.dik-info-karten__grid > .et_pb_module > .et_pb_module_inner,
.dik-info-karten__grid > .dik_info_karte > .et_pb_module_inner {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  height: 100%;
  min-height: 0;
}

.dik-info-karten__card {
  --dik-button-bg: #5eb8b0;
  --dik-button-color: #ffffff;
  --dik-button-size: 16px;
  --dik-button-width: 100%;
  --dik-button-align: flex-start;

  display: flex;
  flex-direction: column;
  height: 100%;
  min-width: 0;
  overflow: hidden;
  background: transparent;
}

.dik-info-karten__grid > .et_pb_module .dik-info-karten__card,
.dik-info-karten__grid > .dik_info_karte .dik-info-karten__card {
  flex: 1 1 auto;
}

.dik-info-karten__media {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #e8e8e8;
  aspect-ratio: var(--dik-image-ratio);
}

.dik-info-karten__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.dik-info-karten--ratio-auto .dik-info-karten__media {
  aspect-ratio: auto;
}

.dik-info-karten--ratio-auto .dik-info-karten__image {
  height: auto;
  object-fit: contain;
}

.dik-info-karten__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  background: var(--dik-body-bg);
  padding: var(--dik-body-padding);
  gap: 1.5rem;
}

.dik-info-karten__body-inner {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.875rem 1rem;
  flex: 0 0 auto;
  min-width: 0;
  width: 100%;
}

.dik-info-karten__text {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 1.5em;
  width: 100%;
}

.dik-info-karten__text > *:first-child {
  margin-top: 0;
}

.dik-info-karten__text > *:last-child {
  margin-bottom: 0;
}

.dik-info-karten__icon {
  position: static;
  flex: 0 0 min(var(--dik-icon-size), 36%);
  width: min(var(--dik-icon-size), 36%);
  height: auto;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  align-self: flex-start;
}

.dik-info-karten__icon img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
}

.dik-info-karten__content {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.dik-info-karten__content > *:first-child {
  margin-top: 0;
}

.dik-info-karten__content > *:last-child {
  margin-bottom: 0;
}

.dik-info-karten__content :is(h1, h2, h3, h4, h5, h6) {
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}

.dik-info-karten__card-name {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.dik-info-karten__button-wrap {
  display: flex;
  flex: 0 0 auto;
  align-self: stretch;
  justify-content: var(--dik-button-align, flex-start);
  width: 100%;
  max-width: 100%;
  margin-top: auto;
  box-sizing: border-box;
}

.dik-info-karten__button-wrap .et_pb_button,
.dik-info-karten__button-wrap .dik-info-karten__button,
.dik-info-karten__button-wrap a.dik-info-karten__button,
.dik-info-karten__button-wrap a.et_pb_button,
.dik-info-karten__button,
a.dik-info-karten__button,
.dik-info-karten__card .et_pb_button,
.dik-info-karten__card a.et_pb_button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: var(--dik-button-width, 100%) !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
  box-sizing: border-box !important;
  margin-top: 0;
  padding: 0.9rem 1.25rem;
  background-color: var(--dik-button-bg) !important;
  background-image: none !important;
  color: var(--dik-button-color) !important;
  font-size: var(--dik-button-size) !important;
  text-align: center;
  text-decoration: none !important;
  font-weight: 700;
  line-height: 1.3;
  border: 0;
  border-radius: 0;
  transition: filter 0.2s ease, opacity 0.2s ease;
  cursor: pointer;
}

.dik-info-karten__body > .dik-info-karten__button,
.dik-info-karten__body > a.dik-info-karten__button,
.dik-info-karten__body > .et_pb_button {
  align-self: var(--dik-button-align, flex-start);
  margin-top: auto;
}

.dik-info-karten__button-wrap .et_pb_button:hover,
.dik-info-karten__button-wrap .et_pb_button:focus,
.dik-info-karten__button:hover,
.dik-info-karten__button:focus,
.dik-info-karten__card .et_pb_button:hover,
.dik-info-karten__card .et_pb_button:focus {
  filter: brightness(0.95);
  color: var(--dik-button-color) !important;
  text-decoration: none !important;
}

.dik-info-karten__button--static {
  cursor: default;
}

/* Tablet (Divi: 768–980px) */
@media (max-width: 980px) {
  .dik-info-karten__grid {
    grid-template-columns: repeat(var(--dik-cols-tablet), minmax(0, 1fr));
  }

  .dik-info-karten__body {
    gap: 1rem;
  }
}

/* Mobil */
@media (max-width: 767px) {
  .dik-info-karten {
    --dik-icon-size: min(56px, var(--dik-icon-size));
    --dik-body-padding: max(20px, calc(var(--dik-body-padding) * 0.85));
  }

  .dik-info-karten__grid {
    grid-template-columns: repeat(var(--dik-cols-mobile), minmax(0, 1fr));
    gap: max(20px, calc(var(--dik-gap) * 0.85));
  }

  .dik-info-karten__body-inner {
    gap: 0.75rem;
  }

  .dik-info-karten__icon {
    flex-basis: min(var(--dik-icon-size), 30%);
    width: min(var(--dik-icon-size), 30%);
  }

  .dik-info-karten__button,
  .dik-info-karten__card .et_pb_button {
    padding: 0.85rem 1rem;
  }
}

@media (max-width: 480px) {
  .dik-info-karten {
    --dik-icon-size: min(48px, var(--dik-icon-size));
  }

  .dik-info-karten__grid {
    grid-template-columns: repeat(var(--dik-cols-mobile), minmax(0, 1fr));
  }

  .dik-info-karten__body-inner {
    gap: 0.625rem;
  }

  .dik-info-karten__icon {
    flex-basis: min(var(--dik-icon-size), 28%);
    width: min(var(--dik-icon-size), 28%);
  }
}

/*
 * Divi Visual Builder: Gerätevorschau nutzt oft Landscape-Breiten > 980px
 * und setzt stattdessen Body-Klassen (et_fb_*_mode).
 */
body.et_fb_tablet_mode .dik-info-karten__grid,
.et-fb-root-ancestor.et_fb_tablet_mode .dik-info-karten__grid {
  grid-template-columns: repeat(var(--dik-cols-tablet), minmax(0, 1fr)) !important;
}

body.et_fb_phone_mode .dik-info-karten__grid,
.et-fb-root-ancestor.et_fb_phone_mode .dik-info-karten__grid {
  grid-template-columns: repeat(var(--dik-cols-mobile), minmax(0, 1fr)) !important;
}
