.tm-block-icon {
  --tm-icon-size: 28px;
  --tm-icon-color: currentColor;
  margin-top: var(--tm-icon-margin-top, 0);
  margin-bottom: var(--tm-icon-margin-bottom, 20px);
}

.tm-block-icon__inner {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  color: var(--tm-icon-color);
  text-decoration: none;
}

.tm-block-icon__inner--link:hover {
  color: var(--tm-icon-color);
  filter: brightness(.97);
}

.tm-block-icon--align-left .tm-block-icon__inner {
  align-items: flex-start;
  text-align: left;
}

.tm-block-icon--align-center .tm-block-icon__inner {
  align-items: center;
  text-align: center;
}

.tm-block-icon--align-right .tm-block-icon__inner {
  align-items: flex-end;
  text-align: right;
}

.tm-block-icon__symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.tm-block-icon__symbol i {
  font-size: var(--tm-icon-size);
  line-height: 1;
}

.tm-block-icon__caption {
  font-size: .96rem;
  line-height: 1.45;
  color: inherit;
}

.tm-block-icon--size-small { --tm-icon-size: 20px; }
.tm-block-icon--size-normal { --tm-icon-size: 28px; }
.tm-block-icon--size-medium { --tm-icon-size: 40px; }
.tm-block-icon--size-large { --tm-icon-size: 56px; }
.tm-block-icon--size-huge { --tm-icon-size: 76px; }

.tm-block-icon--color-default { --tm-icon-color: currentColor; }
.tm-block-icon--color-accent { --tm-icon-color: var(--tm-accent); }
.tm-block-icon--color-muted { --tm-icon-color: #64748b; }
.tm-block-icon--color-dark { --tm-icon-color: #0f172a; }
.tm-block-icon--color-light { --tm-icon-color: #ffffff; }
.tm-block-icon--color-custom { --tm-icon-color: var(--tm-icon-custom-color, currentColor); }
