:root {
  --icon-sparkle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5 14.7 9l6.5 2.7-6.5 2.7L12 21l-2.7-6.6L2.8 11.7 9.3 9 12 2.5Z' fill='black'/%3E%3C/svg%3E");
  --icon-tool: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m21.3 19.9-6.4-6.4a6 6 0 0 1-7.8-7.8l3.1 3.1 2.8-.7.7-2.8-3.1-3.1a6 6 0 0 1 7.8 7.8l6.4 6.4a1 1 0 0 1 0 1.4l-2 2a1 1 0 0 1-1.4 0Z' fill='black'/%3E%3C/svg%3E");
  --icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20Zm4.7 6.8-6 6-2.4-2.4-1.4 1.4 3.8 3.8 7.4-7.4-1.4-1.4Z' fill='black'/%3E%3C/svg%3E");
  --icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 2h3.3l1.1 5-2 1.7a16 16 0 0 0 6.2 6.2l1.7-2 5 1.1v3.3a2 2 0 0 1-2.2 2 18.8 18.8 0 0 1-17-17A2 2 0 0 1 6.6 2Z' fill='black'/%3E%3C/svg%3E");
  --icon-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 4.5 5v5.8c0 5.1 3.2 9.8 7.5 11.2 4.3-1.4 7.5-6.1 7.5-11.2V5L12 2Zm-1 13.1-3-3 1.4-1.4 1.6 1.6 3.6-3.6 1.4 1.4-5 5Z' fill='black'/%3E%3C/svg%3E");
  --icon-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20Zm1 5h-2v6l5 3 .9-1.6-3.9-2.3V7Z' fill='black'/%3E%3C/svg%3E");
  --icon-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22s7-6.5 7-12a7 7 0 1 0-14 0c0 5.5 7 12 7 12Zm0-9a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z' fill='black'/%3E%3C/svg%3E");
  --icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13.2 5.8 1.4-1.4 7.6 7.6-7.6 7.6-1.4-1.4 5.2-5.2H2v-2h16.4l-5.2-5.2Z' fill='black'/%3E%3C/svg%3E");
  --icon-air: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9c2.5 0 2.9-2 5.3-2 2.2 0 2.8 1.5 4.8 1.5 1.8 0 2.6-.9 4.3-.9 1.5 0 2.6.6 3.6 1.4l-1.1 1.5c-.7-.5-1.4-.9-2.6-.9-1.6 0-2.4.9-4.2.9-2 0-2.9-1.5-4.9-1.5-1.8 0-2.5 2-5.2 2V9Zm0 5c2.2 0 2.9-1.4 4.9-1.4 1.9 0 2.8 1 4.8 1 2 0 2.7-1 4.5-1 1.3 0 2.1.4 3.1 1l-1 1.6c-.8-.4-1.3-.6-2.2-.6-1.5 0-2.3 1-4.4 1-2.1 0-3-1-4.8-1-1.6 0-2.4 1.4-4.9 1.4V14Z' fill='black'/%3E%3C/svg%3E");
  --icon-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 3 10.2V21h6v-6h6v6h6V10.2L12 3Z' fill='black'/%3E%3C/svg%3E");
  --icon-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.8 2.7 5.5 6.1.9-4.4 4.3 1 6-5.4-2.9-5.4 2.9 1-6-4.4-4.3 6.1-.9L12 2.8Z' fill='black'/%3E%3C/svg%3E");
  --icon-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2Zm0 2v.5l9 5.6 9-5.6V7H3Zm18 10V9.9l-8.5 5.3a1 1 0 0 1-1 0L3 9.9V17h18Z' fill='black'/%3E%3C/svg%3E");
  --icon-map: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m15 3 6 2v16l-6-2-6 2-6-2V3l6 2 6-2Zm-1 2.7-4 1.3v11.3l4-1.3V5.7Zm-6 .6-3-1v11.9l3 1V6.3Zm8-.9v11.9l3 1V6.4l-3-1Z' fill='black'/%3E%3C/svg%3E");
  --icon-leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.5 3.5c-7.8.4-13 4.8-14.6 10.6-.6 2.2-.4 4.3.5 6 1.7-.4 3.4-1.5 4.9-3 2.8-2.8 4.1-6.3 4.7-8.7.2 2.6-.5 6.9-3.8 10.2-1.2 1.2-2.5 2.1-3.9 2.7 4.3 1.4 9.6-.2 12.3-4.7 2.8-4.8 1.4-10.3-.1-13.1Z' fill='black'/%3E%3C/svg%3E");
  --icon-filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18v2H3V5Zm3 6h12v2H6v-2Zm3 6h6v2H9v-2Z' fill='black'/%3E%3C/svg%3E");
}

.pa-process-icon i,
.estimate-icon,
.trust-icon-main,
.duct-trust-row .trust-text > span,
.circle-arrow,
.fan-circle,
.duct-benefits span,
.promo-icons span,
.quality-icon-dark,
.counter-icon-dark,
.ribbon-icon,
.ribbon-circle > span,
.ribbon-location span,
.gallery-caption b,
.system-icon,
.contact-info-box > span,
.pa-process-card a span {
  font-size: 0 !important;
  line-height: 1;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pa-process-icon i::before,
.estimate-icon::before,
.trust-icon-main::before,
.duct-trust-row .trust-text > span::before,
.circle-arrow::before,
.fan-circle::before,
.duct-benefits span::before,
.promo-icons span::before,
.quality-icon-dark::before,
.counter-icon-dark::before,
.ribbon-icon::before,
.ribbon-circle > span::before,
.ribbon-location span::before,
.gallery-caption b::before,
.system-icon::before,
.contact-info-box > span::before,
.pa-process-card a span::before,
.promo-badge::before,
.promo-call::before,
.promo-estimate::before {
  content: "";
  display: inline-block;
  background-color: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.pa-process-icon i::before {
  width: 32px;
  height: 32px;
}

.pa-process-row > div:nth-child(1) .pa-process-icon i { --icon: var(--icon-sparkle); }
.pa-process-row > div:nth-child(2) .pa-process-icon i { --icon: var(--icon-tool); }
.pa-process-row > div:nth-child(3) .pa-process-icon i { --icon: var(--icon-check); }

.pa-process-card a span::before {
  width: 14px;
  height: 14px;
  --icon: var(--icon-arrow);
}

.estimate-icon { --icon: var(--icon-phone); }
.estimate-icon::before {width: 35px;
  height: 72px;}

.trust-icon-main { --icon: var(--icon-shield); }
.trust-icon-main::before { width: 36px; height: 36px; }

.duct-trust-row > .trust-text:nth-child(2) > span { --icon: var(--icon-check); }
.duct-trust-row > .trust-text:nth-child(3) > span { --icon: var(--icon-clock); }
.duct-trust-row > .trust-text:nth-child(4) > span { --icon: var(--icon-pin); }
.duct-trust-row .trust-text > span::before { width: 18px; height: 18px; }

.circle-arrow { --icon: var(--icon-arrow); }
.circle-arrow::before { width: 24px; height: 24px; }

.fan-circle { --icon: var(--icon-sparkle); }
.fan-circle::before { width: 32px; height: 32px; }

.duct-benefits > div:nth-child(1) span { --icon: var(--icon-home); }
.duct-benefits > div:nth-child(2) span { --icon: var(--icon-check); }
.duct-benefits > div:nth-child(3) span { --icon: var(--icon-air); }
.duct-benefits span::before { width: 20px; height: 20px; }

.promo-badge,
.promo-call,
.promo-estimate {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0 !important;
}

.promo-badge { --icon: var(--icon-clock); }
.promo-badge::before { width: 15px; height: 15px; }
.promo-badge::after { content: "Limited Time Offer"; font-size: 0.95rem; }

.promo-icons > div:nth-child(1) span { --icon: var(--icon-air); }
.promo-icons > div:nth-child(2) span { --icon: var(--icon-home); }
.promo-icons > div:nth-child(3) span { --icon: var(--icon-clock); }
.promo-icons > div:nth-child(4) span { --icon: var(--icon-check); }
.promo-icons span::before { width: 22px; height: 22px; }

.promo-call { --icon: var(--icon-phone); }
.promo-call::before,
.promo-estimate::before { width: 16px; height: 16px; }
.promo-call::after { content: "Call 281-715-7208"; font-size: 1rem; }

.promo-estimate { --icon: var(--icon-check); }
.promo-estimate::after { content: "Get Free Estimate"; font-size: 1rem; }

.quality-icon-dark { --icon: var(--icon-air); }
.quality-icon-dark::before,
.counter-icon-dark::before,
.ribbon-icon::before,
.ribbon-circle > span::before,
.ribbon-location span::before,
.gallery-caption b::before,
.system-icon::before,
.contact-info-box > span::before { width: 24px; height: 24px; }

.counter-box-dark .counter-item-dark:nth-child(1) .counter-icon-dark { --icon: var(--icon-home); }
.counter-box-dark .counter-item-dark:nth-child(2) .counter-icon-dark { --icon: var(--icon-air); }
.counter-box-dark .counter-item-dark:nth-child(3) .counter-icon-dark { --icon: var(--icon-star); }
.counter-box-dark .counter-item-dark:nth-child(4) .counter-icon-dark { --icon: var(--icon-check); }

.ribbon-wrapper > .ribbon-card:first-child .ribbon-icon { --icon: var(--icon-leaf); }
.ribbon-wrapper > .ribbon-center .ribbon-circle > span { --icon: var(--icon-shield); }
.ribbon-wrapper > .ribbon-card:last-child .ribbon-icon { --icon: var(--icon-filter); }
.ribbon-location span { --icon: var(--icon-pin); }

.gallery-caption b { --icon: var(--icon-arrow); }

.system-benefits-grid .system-card:nth-child(1) .system-icon { --icon: var(--icon-shield); }
.system-benefits-grid .system-card:nth-child(2) .system-icon { --icon: var(--icon-star); }
.system-benefits-grid .system-card:nth-child(3) .system-icon { --icon: var(--icon-air); }

.contact-info-card .contact-info-box:nth-of-type(1) > span { --icon: var(--icon-phone); }
.contact-info-card .contact-info-box:nth-of-type(2) > span { --icon: var(--icon-pin); }
.contact-info-card .contact-info-box:nth-of-type(3) > span { --icon: var(--icon-mail); }
.contact-info-card .contact-info-box:nth-of-type(4) > span { --icon: var(--icon-clock); }
.contact-info-card .contact-info-box:nth-of-type(5) > span { --icon: var(--icon-map); }

.estimate-icon::before,
.trust-icon-main::before,
.duct-trust-row .trust-text > span::before,
.circle-arrow::before,
.fan-circle::before,
.duct-benefits span::before,
.promo-icons span::before,
.quality-icon-dark::before,
.counter-icon-dark::before,
.ribbon-icon::before,
.ribbon-circle > span::before,
.ribbon-location span::before,
.gallery-caption b::before,
.system-icon::before,
.contact-info-box > span::before {
  flex-shrink: 0;
}
