/* ==========================================================================
   transformis® · Icon-Boxen
   --------------------------------------------------------------------------
   Flexible Iconboxen mit SVG-Icons, Titeln und Text.
   Orientiert am "Anderes Wissen" Design (--tm-blue Hintergrund, weiß).
   Boxen strecken sich je nach Anzahl.
   ========================================================================== */

/* ── Container (Content-Breite, kein Full-Width) ── */
.tm-icon-boxes {
  margin-top: 48px !important;
  margin-bottom: 48px !important;
  box-sizing: border-box;
}

/* ── Inner Container ── */
.tm-icon-boxes__inner {
  max-width: 100%;
  margin: 0 auto;
  container-type: inline-size;
  container-name: tm-icon-boxes;
}

/* ── Heading ── */
.tm-icon-boxes__heading {
  font-family: var(--tm-font-heading, "Open Sans", sans-serif) !important;
  font-weight: var(--tm-fw-extrabold, 800) !important;
  font-size: clamp(28px, 3.5vw, 40px) !important;
  line-height: 1.3 !important;
  color: var(--tm-blue-dark, #05132C) !important;
  margin: 0 0 48px !important;
  text-align: center;
}

/* ── Grid ── */
.tm-icon-boxes__grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

/* Explizite Spaltenanzahl je nach Boxen-Anzahl */
.tm-icon-boxes__grid--cols-1 { grid-template-columns: 1fr; max-width: 400px; margin: 0 auto; }
.tm-icon-boxes__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.tm-icon-boxes__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.tm-icon-boxes__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
.tm-icon-boxes__grid--cols-6 { grid-template-columns: repeat(6, 1fr); }

/* 5 Boxen: 3 oben + 2 unten linksbündig (6-Spalten-Grid, Box 4/5 ohne Offset) */
.tm-icon-boxes__grid--cols-5 {
  grid-template-columns: repeat(6, 1fr);
}
.tm-icon-boxes__grid--cols-5 > .tm-icon-boxes__box {
  grid-column: span 2;
}

/* ── Einzelne Box ── */
.tm-icon-boxes__box {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 40px 24px;
  background: var(--tm-blue, #05132C);
}

/* ── Icon ── */
.tm-icon-boxes__icon-wrap {
  margin-bottom: 24px;
}

.tm-icon-boxes__icon {
  width: 80px !important;
  height: 80px !important;
  display: block;
  object-fit: contain;
  margin: 0 !important;
}

/* ── Title (tm-body-m-bold: 18px/1.6/700) ── */
.tm-icon-boxes__title {
  font-family: var(--tm-font-body, "Open Sans", sans-serif) !important;
  font-weight: var(--tm-fw-bold, 700) !important;
  font-size: 18px !important;
  line-height: 1.6 !important;
  letter-spacing: 0.03em;
  color: var(--tm-white-soft, #FAFCFC) !important;
  margin: 0 0 12px !important;
}

/* ── Text ── */
.tm-icon-boxes__text {
  font-family: var(--tm-font-body, "Open Sans", sans-serif) !important;
  font-weight: var(--tm-fw-regular, 400) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: var(--tm-white-soft, #FAFCFC) !important;
  margin: 0 !important;
  opacity: 0.85;
}


/* ==========================================================================
   Responsive
   ========================================================================== */

/* ── Container-basiert: Grid reagiert auf tatsächliche Container-Breite
   (wichtig z.B. im Editor oder in schmalen Spalten-Layouts) ── */

/* Ab ≤1100px Container: 5er → 4-Spalten-Grid mit 2+2+1 linksbündig, 6er → 3 Spalten */
@container tm-icon-boxes (max-width: 1100px) {
  .tm-icon-boxes__grid--cols-5 {
    grid-template-columns: repeat(4, 1fr);
  }
  .tm-icon-boxes__grid--cols-5 > .tm-icon-boxes__box {
    grid-column: span 2;
  }

  .tm-icon-boxes__grid--cols-6 {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Ab ≤900px Container: 4er auf 2×2 */
@container tm-icon-boxes (max-width: 900px) {
  .tm-icon-boxes__grid--cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Ab ≤720px Container: 3/4/6 auf 2 Spalten, 5er auf 2 Spalten mit letzter Box full-width */
@container tm-icon-boxes (max-width: 720px) {
  .tm-icon-boxes__grid--cols-3,
  .tm-icon-boxes__grid--cols-4,
  .tm-icon-boxes__grid--cols-6 {
    grid-template-columns: repeat(2, 1fr);
  }

  .tm-icon-boxes__grid--cols-5 {
    grid-template-columns: repeat(2, 1fr);
  }
  .tm-icon-boxes__grid--cols-5 > .tm-icon-boxes__box {
    grid-column: auto;
  }

  .tm-icon-boxes__box {
    padding: 32px 20px;
  }

  .tm-icon-boxes__icon {
    width: 64px !important;
    height: 64px !important;
  }
}

/* Ab ≤480px Container: alles einspaltig */
@container tm-icon-boxes (max-width: 480px) {
  .tm-icon-boxes__grid,
  .tm-icon-boxes__grid--cols-1,
  .tm-icon-boxes__grid--cols-2,
  .tm-icon-boxes__grid--cols-3,
  .tm-icon-boxes__grid--cols-4,
  .tm-icon-boxes__grid--cols-5,
  .tm-icon-boxes__grid--cols-6 {
    grid-template-columns: 1fr;
  }
  .tm-icon-boxes__grid--cols-5 > .tm-icon-boxes__box {
    grid-column: auto;
  }

  .tm-icon-boxes__box {
    padding: 24px 16px;
  }

  .tm-icon-boxes__icon {
    width: 48px !important;
    height: 48px !important;
  }

  .tm-icon-boxes__icon-wrap {
    margin-bottom: 16px;
  }
}

/* ── Viewport-basiert: Typografie/Heading ── */
@media (max-width: 900px) {
  .tm-icon-boxes__heading {
    margin-bottom: 40px !important;
  }

  .tm-icon-boxes__title {
    font-size: 18px !important;
  }

  .tm-icon-boxes__text {
    font-size: 18px !important;
  }
}

@media (max-width: 560px) {
  .tm-icon-boxes__heading {
    font-size: 26px !important;
    margin-bottom: 32px !important;
  }

  .tm-icon-boxes__title {
    font-size: 18px !important;
    margin-bottom: 8px !important;
  }

  .tm-icon-boxes__text {
    font-size: 16px !important;
  }
}


/* ==========================================================================
   Editor-Only Styles
   ========================================================================== */
.tm-icon-boxes__upload-btn {
  margin-top: 8px;
}

.tm-icon-boxes__remove {
  margin-top: 12px;
}

.tm-icon-boxes__add-wrap {
  text-align: center;
  margin-top: 24px;
}
