/* HuntBee shared UI utilities. */

:root {
  --hb-icon-gap: .45em;
}

/*
 * Give Font Awesome icons consistent breathing room when they sit beside text.
 * Icon-only controls and components already using flex/grid gap are reset below.
 */
.hb-theme :where(a, button, .btn, label) > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands):first-child:not(:only-child) {
  margin-right: var(--hb-icon-gap);
}

.hb-theme :where(a, button, .btn, label) > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands):last-child:not(:only-child) {
  margin-right: 0;
  margin-left: var(--hb-icon-gap);
}

/* Currency symbols are text rather than Font Awesome, so give them the same rhythm. */
.hb-theme #form-currency .dropdown-toggle strong {
  margin-right: var(--hb-icon-gap);
}

/* Components where spacing is already handled explicitly or the icon is standalone. */
.hb-theme .hb-utility-link > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands),
.hb-theme .hb-header-icon > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands),
.hb-theme .hb-search-submit > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands),
.hb-theme .hb-mini-cart .cartToggle > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands),
.hb-theme .hb-mobile-account-links a > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands),
.hb-theme #top-links-menu-container a > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands),
.hb-theme .offcanvas-caret :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands),
.hb-theme .close-btn > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands),
.hb-theme .back-to-top > :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands),
.hb-theme .social :is(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands) {
  margin-left: 0;
  margin-right: 0;
}
