/* Modern SVG icon system */
.icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.icon svg {
  width: 100%;
  height: 100%;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.icon--sm { width: 20px; height: 20px; }
.icon--md { width: 24px; height: 24px; }
.icon--lg { width: 28px; height: 28px; }
.icon--xl { width: 32px; height: 32px; }

.logo__icon .icon svg {
  stroke: white;
}

.logo__icon {
  font-size: 0;
}

.feature__icon .icon,
.service-block__icon .icon {
  stroke: white;
}

.step__icon .icon {
  stroke: currentColor;
}

.service-strip__icon .icon {
  stroke: white;
  width: 26px;
  height: 26px;
}

.service-hero__card-icon .icon,
.hero-slide .stat-card__num .icon {
  stroke: var(--color-primary);
}

.service-hero__badge .icon {
  stroke: #ffb380;
  margin-right: 6px;
}

.hero-slide .stat-card__num {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
}

.hero-slide .stat-card__num .icon {
  color: var(--color-primary);
}

.header__phone .icon {
  display: none;
}

.footer__phone .icon {
  stroke: var(--color-primary);
  margin-right: 6px;
}

.hero-slide__badge .icon {
  stroke: #ffb380;
  margin-right: 6px;
  vertical-align: -4px;
}

.page-header__badge .icon {
  stroke: #ffb380;
}

.service-hero__badge,
.hero-slide__badge,
.page-header__badge {
  display: inline-flex;
  align-items: center;
}

.contact-card__icon .icon {
  stroke: white;
}

.contact-card__icon,
.contacts-map__icon,
.contacts-info__icon {
  font-size: 0;
}

.contacts-map__icon .icon {
  stroke: #ffb380;
}

.contacts-info__icon .icon {
  stroke: currentColor;
}

.step__icon {
  font-size: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin: 16px auto 12px;
  color: var(--color-primary);
}

.feature__icon {
  font-size: 0;
}

.service-block__icon {
  font-size: 0;
}

.service-strip__icon {
  font-size: 0;
  width: 52px;
  height: 52px;
  margin: 0 auto 14px;
}

.service-hero__card-icon {
  font-size: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  margin-bottom: 6px;
  color: var(--color-primary);
}

.service-hero__card-icon .icon {
  width: 28px;
  height: 28px;
}
