/* Lightweight local icon fallback.
   Replaces FontAwesome webfont rendering with inline SVG masks, so the project
   does not request missing font files and does not show tofu squares. */
.fa, .fas, .far, .fab {
  display: inline-block;
  width: 1em;
  height: 1em;
  line-height: 1;
  font-style: normal;
  font-weight: normal;
  text-align: center;
  text-rendering: auto;
  vertical-align: -0.125em;
  flex-grow: 0;
  flex-shrink: 0;
}
.fa::before, .fas::before, .far::before, .fab::before {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask: var(--fa-fallback-icon, none) no-repeat center / contain;
  mask: var(--fa-fallback-icon, none) no-repeat center / contain;
}
.fa-angle-down.sub, .fa-angle-up.sub, .fa-chevron-up.current {
  width: .75em;
  height: .75em;
  vertical-align: -0.02em;
}
.fa-angle-down.sub::before, .fa-angle-up.sub::before, .fa-chevron-up.current::before {
  width: .75em;
  height: .75em;
}
.menu-container i.fa-bars {
  width: 1em;
  height: 1em;
}

.fa-angle-down::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M2.2%205.2%208%2011l5.8-5.8%201.4%201.4L8%2013.8.8%206.6z%22/%3E%3C/svg%3E"); }
.fa-angle-up::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M13.8%2010.8%208%205%202.2%2010.8.8%209.4%208%202.2l7.2%207.2z%22/%3E%3C/svg%3E"); }
.fa-chevron-up::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M13.8%2010.8%208%205%202.2%2010.8.8%209.4%208%202.2l7.2%207.2z%22/%3E%3C/svg%3E"); }
.fa-long-arrow-down::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M7%201h2v10.2l3.4-3.4%201.4%201.4L8%2015%20.2%209.2l1.4-1.4L7%2011.2z%22/%3E%3C/svg%3E"); }
.fa-bars::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M1%203h14v2H1zm0%204h14v2H1zm0%204h14v2H1z%22/%3E%3C/svg%3E"); }
.fa-close::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M3.4%202%208%206.6%2012.6%202%2014%203.4%209.4%208l4.6%204.6-1.4%201.4L8%209.4%203.4%2014%202%2012.6%206.6%208%202%203.4z%22/%3E%3C/svg%3E"); }
.fa-times::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M3.4%202%208%206.6%2012.6%202%2014%203.4%209.4%208l4.6%204.6-1.4%201.4L8%209.4%203.4%2014%202%2012.6%206.6%208%202%203.4z%22/%3E%3C/svg%3E"); }
.fa-file-text-o::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M3%201h6l4%204v10H3zm6%201.8V6h3.2zM5%208h6V7H5zm0%202h6V9H5zm0%202h5v-1H5z%22/%3E%3C/svg%3E"); }
.fa-newspaper-o::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M1%203h14v10H1zm2%202v6h10V5zm1%201h4v2H4zm5%200h3v1H9zm0%202h3v1H9zm-5%202h8v1H4z%22/%3E%3C/svg%3E"); }
.fa-envelope-o::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M1%203h14v10H1zm2.2%202L8%208.3%2012.8%205zm9.8%206V6.6l-5%203.5-5-3.5V11z%22/%3E%3C/svg%3E"); }
.fa-envelope::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M1%203h14v10H1zm2.2%202L8%208.3%2012.8%205zm9.8%206V6.6l-5%203.5-5-3.5V11z%22/%3E%3C/svg%3E"); }
.fa-compass::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M8%201a7%207%200%201%200%200%2014A7%207%200%200%200%208%201zm0%202a5%205%200%201%201%200%2010A5%205%200%200%201%208%203zm3.5%201.5-1.8%205.2-5.2%201.8%201.8-5.2zM8%207.1%207.1%208.9%208.9%208z%22/%3E%3C/svg%3E"); }
.fa-bullhorn::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M12%202v12l-5-3H4a3%203%200%200%201%200-6h3zm-7%209%201.1%203H4l-1-3zM14%205a3%203%200%200%201%200%206z%22/%3E%3C/svg%3E"); }
.fa-shield::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M8%201%2014%203v4.2c0%203.8-2.5%206.4-6%207.8-3.5-1.4-6-4-6-7.8V3z%22/%3E%3C/svg%3E"); }
.fa-sitemap::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M6%201h4v3H6zM7%205h2v2h5v2h-2v2H9V9H7v2H4V9H2V7h5zM1%2012h4v3H1zm5.5%200h3v3h-3zm4.5%200h4v3h-4z%22/%3E%3C/svg%3E"); }
.fa-wifi::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22m8%2012.8%201.4-1.4a2%202%200%200%200-2.8%200zm-4-4%201.4%201.4a3.7%203.7%200%200%201%205.2%200L12%208.8a5.7%205.7%200%200%200-8%200zm-3-3%201.4%201.4a8%208%200%200%201%2011.2%200L15%205.8a10%2010%200%200%200-14%200z%22/%3E%3C/svg%3E"); }
.fa-mobile::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M5%201h6a1%201%200%200%201%201%201v12a1%201%200%200%201-1%201H5a1%201%200%200%201-1-1V2a1%201%200%200%201%201-1zm1%202v9h4V3zm2%2011a.8.8%200%201%200%200-1.6.8.8%200%200%200%200%201.6z%22/%3E%3C/svg%3E"); }
.fa-code::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M5.5%204%201.5%208l4%204%201.4-1.4L4.3%208l2.6-2.6zm5%200L9.1%205.4%2011.7%208l-2.6%202.6%201.4%201.4%204-4z%22/%3E%3C/svg%3E"); }
.fa-shopping-cart::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M1%202h2l1.2%207.2A2%202%200%200%200%206.2%2011h5.9a2%202%200%200%200%201.9-1.4L15%205H5l-.3-2H1zm5%2013a1.3%201.3%200%201%201%200-2.6A1.3%201.3%200%200%201%206%2015zm6.5%200a1.3%201.3%200%201%201%200-2.6%201.3%201.3%200%200%201%200%202.6z%22/%3E%3C/svg%3E"); }
.fa-user-secret::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M3%204h10l-1-2H4zm-2%202h14v2H1zm3%203h8l1%206-3-2-2%202-2-2-3%202zm2%20.5a1%201%200%201%200%200%202%201%201%200%200%200%200-2zm4%200a1%201%200%201%200%200%202%201%201%200%200%200%200-2z%22/%3E%3C/svg%3E"); }
.fa-bolt::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M9%201%203%209h4l-1%206%207-9H9z%22/%3E%3C/svg%3E"); }
.fa-search::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M7%201a6%206%200%200%201%204.7%209.7l3.1%203.1-1.4%201.4-3.1-3.1A6%206%200%201%201%207%201zm0%202a4%204%200%201%200%200%208%204%204%200%200%200%200-8z%22/%3E%3C/svg%3E"); }
.fa-map-marker::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M8%201a5%205%200%200%200-5%205c0%204%205%209%205%209s5-5%205-9a5%205%200%200%200-5-5zm0%207.2A2.2%202.2%200%201%201%208%203.8a2.2%202.2%200%200%201%200%204.4z%22/%3E%3C/svg%3E"); }
.fa-phone::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M3%201h3l1%204-2%201a9%209%200%200%200%205%205l1-2%204%201v3a2%202%200%200%201-2%202A12%2012%200%200%201%201%203a2%202%200%200%201%202-2z%22/%3E%3C/svg%3E"); }
.fa-id-card::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M1%203h14v10H1zm2%202v6h4V5zm5%201h5V5H8zm0%202h5V7H8zm0%202h4V9H8zM5%206.2a1.2%201.2%200%201%200%200%202.4%201.2%201.2%200%200%200%200-2.4zM3.8%2010h2.4A1.4%201.4%200%200%200%205%209.2%201.4%201.4%200%200%200%203.8%2010z%22/%3E%3C/svg%3E"); }
.fa-list-alt::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M2%202h12v12H2zm2%203h2V4H4zm3-1v1h5V4zM4%208h2V7H4zm3-1v1h5V7zm-3%204h2v-1H4zm3-1v1h5v-1z%22/%3E%3C/svg%3E"); }
.fa-wrench::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M10.8%201a4%204%200%200%200-4%204l-5.5%205.5%204.2%204.2L11%209.2a4%204%200%200%200%204-4l-2.7%202.7-2.2-2.2L12.8%203A4%204%200%200%200%2010.8%201z%22/%3E%3C/svg%3E"); }
.fa-expand::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M1%201h6L5%203H3v2L1%207zm8%200h6v6l-2-2V3h-2zM3%2011v2h2l2%202H1V9zm10%200%202-2v6H9l2-2h2z%22/%3E%3C/svg%3E"); }
.fa-close::before { --fa-fallback-icon: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2016%2016%22%3E%3Cpath%20fill=%22black%22%20d=%22M3.4%202%208%206.6%2012.6%202%2014%203.4%209.4%208l4.6%204.6-1.4%201.4L8%209.4%203.4%2014%202%2012.6%206.6%208%202%203.4z%22/%3E%3C/svg%3E"); }

/* Icon sizing used by existing card/box styles. */
.card i.fa::before, .box-icon > i.fa::before, .btn-icon i.fa::before {
  margin: auto;
}
