.ar-icon-heading {
  margin-bottom: 2rem;
}

/* Control alignment of the entire group */
.ar-icon-heading.align-left {
  text-align: left;
}

.ar-icon-heading.align-center {
  text-align: center;
}

.ar-icon-heading.align-right {
  text-align: right;
}

/* This wraps the icon and heading vertically */
.ar-icon-heading .icon-heading-inner {
  display: inline-flex;
  flex-direction: column;
  align-items: center; /* Always center icon above heading */
}

/* Icon styles */
.ar-icon-heading .icon-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  transition: all 0.3s ease;
}

/* Shape options */
.ar-icon-heading .icon-wrapper.shape-circle {
  border-radius: 50%;
}
.ar-icon-heading .icon-wrapper.shape-square {
  border-radius: 0;
}
.ar-icon-heading .icon-wrapper.shape-rounded {
  border-radius: 12px;
}

/* Icon itself */
.ar-icon-heading .icon-wrapper i {
  display: inline-block;
  line-height: 1;
  transition: all 0.3s ease;
}

/* Heading text */
.ar-icon-heading .heading-text {
  font-size: 1.5rem;
  margin: 0;
  font-size: 22px !important;
  margin-bottom: 10px;
}
/* Container + alignment */
.ar-icon-heading { margin-bottom: 2rem; }
.ar-icon-heading.align-left   { text-align: left; }
.ar-icon-heading.align-center { text-align: center; }
.ar-icon-heading.align-right  { text-align: right; }

.ar-icon-heading .icon-heading-inner {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}

/* Use CSS variables coming from inline style on .icon-wrapper */
.ar-icon-heading .icon-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  width: var(--ar-ih-bg-size, 64px) !important;
  height: var(--ar-ih-bg-size, 64px) !important;
  background: var(--ar-ih-bg, transparent) !important;
  border-radius: var(--ar-ih-radius, 0) !important;
  overflow: hidden;
}

/* Icon (FA5 <i> + FA6 <svg>) — force color/size */
.ar-icon-heading .icon-wrapper i,
.ar-icon-heading .icon-wrapper svg {
  color: var(--ar-ih-icon-color, #000) !important;
  fill: var(--ar-ih-icon-color, #000) !important;
  font-size: var(--ar-ih-icon-size, 32px) !important;
  width: var(--ar-ih-icon-size, 32px) !important;
  height: var(--ar-ih-icon-size, 32px) !important;
  line-height: 1;
  display: inline-block;
}

/* Image fallback (when symbolType = image) */
.ar-icon-heading .icon-wrapper .icon-image {
  width: var(--ar-ih-icon-size, 32px) !important;
  height: var(--ar-ih-icon-size, 32px) !important;
  object-fit: cover;
  border-radius: var(--ar-ih-radius, 0) !important;
}

/* Headings */
.ar-icon-heading .heading-text {
  font-size: 22px !important;
  margin: 0 0 10px 0;
}
.ar-icon-heading .subheading-text {
  margin: 0;
}
