/**
 * ION Energy public typography.
 * Thai and Latin glyphs share one role-based family, so mixed-language lines
 * choose the approved face per Unicode range without client-side scripting.
 */

@font-face {
  font-family: "ION Energy Heading";
  src: url("../fonts/prompt-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0E00-0E7F;
}

@font-face {
  font-family: "ION Energy Heading";
  src: url("../fonts/sonny-gothic-condensed-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0000-024F, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2100-214F, U+2190-21FF;
}

@font-face {
  font-family: "ION Energy Body";
  src: url("../fonts/prompt-light.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0E00-0E7F;
}

@font-face {
  font-family: "ION Energy Body";
  src: url("../fonts/sonny-gothic-condensed-book.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0000-024F, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2100-214F, U+2190-21FF;
}

/* Font Awesome Free 6.4.0 (SIL OFL 1.1): local replacement for two cdnjs pages. */
@font-face {
  font-family: "Font Awesome 6 Free";
  src: url("../fonts/fa-solid-900.woff2") format("woff2");
  font-style: normal;
  font-weight: 900;
  font-display: block;
}

@font-face {
  font-family: "Font Awesome 6 Brands";
  src: url("../fonts/fa-brands-400.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: block;
}

.fas,
.fa-solid {
  display: var(--fa-display, inline-block);
  font-family: "Font Awesome 6 Free" !important;
  font-style: normal;
  font-variant: normal;
  font-weight: 900 !important;
  line-height: 1;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.fab,
.fa-brands {
  display: var(--fa-display, inline-block);
  font-family: "Font Awesome 6 Brands" !important;
  font-style: normal;
  font-variant: normal;
  font-weight: 400 !important;
  line-height: 1;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.fa-check-circle::before,
.fa-circle-check::before { content: "\f058"; }
.fa-circle-nodes::before { content: "\e4e2"; }
.fa-microchip::before { content: "\f2db"; }
.fa-server::before { content: "\f233"; }
.fa-times-circle::before { content: "\f057"; }
.fa-arrows-up-down::before { content: "\f07d"; }
.fa-bolt::before { content: "\f0e7"; }
.fa-bolt-lightning::before { content: "\e0b7"; }
.fa-border-all::before { content: "\f84c"; }
.fa-border-style::before { content: "\f853"; }
.fa-certificate::before { content: "\f0a3"; }
.fa-circle-exclamation::before { content: "\f06a"; }
.fa-circle-half-stroke::before { content: "\f042"; }
.fa-clock::before { content: "\f017"; }
.fa-cloud-sun::before { content: "\f6c4"; }
.fa-compass::before { content: "\f14e"; }
.fa-hand-sparkles::before { content: "\e05d"; }
.fa-history::before { content: "\f1da"; }
.fa-map-marker-alt::before { content: "\f3c5"; }
.fa-headset::before { content: "\f590"; }
.fa-phone-alt::before { content: "\f879"; }
.fa-envelope::before { content: "\f0e0"; }
.fa-map-marked-alt::before { content: "\f5a0"; }
.fa-directions::before { content: "\f5eb"; }
.fa-layer-group::before { content: "\f5fd"; }
.fa-plug::before { content: "\f1e6"; }
.fa-ranking-star::before { content: "\e561"; }
.fa-shield-halved::before { content: "\f3ed"; }
.fa-smog::before { content: "\f75f"; }
.fa-solar-panel::before { content: "\f5ba"; }
.fa-sun::before { content: "\f185"; }
.fa-th::before { content: "\f00a"; }
.fa-wave-square::before { content: "\f83e"; }
.fa-instagram::before { content: "\f16d"; }
.fa-line::before { content: "\f3c0"; }
.fa-facebook-f::before { content: "\f39e"; }

:root {
  --ion-font-heading: "ION Energy Heading", Tahoma, Arial, sans-serif;
  --ion-font-body: "ION Energy Body", Tahoma, Arial, sans-serif;
  --ion-font-main: var(--ion-font-body);
  --ion-font-th: var(--ion-font-body);
  --ion-font-en: var(--ion-font-body);
  --ion-header-font-main: var(--ion-font-heading);
  --ion-header-font-th: var(--ion-font-heading);
  --ion-header-font-en: var(--ion-font-heading);
}

body:not(.wp-admin):not(#ion-font-override) {
  font-family: var(--ion-font-body) !important;
  font-synthesis: none !important;
}

body:not(.wp-admin):not(#ion-font-override) > .skip-link {
  font-family: var(--ion-font-body) !important;
  font-synthesis: none !important;
}

body:not(.wp-admin):not(#ion-font-override) > :not(#wpadminbar) :where(
  div,
  p,
  a,
  li,
  dt,
  dd,
  blockquote,
  caption,
  figcaption,
  label,
  input,
  textarea,
  select,
  option,
  button,
  summary,
  table,
  th,
  td,
  address,
  time,
  small,
  strong,
  b,
  em,
  mark,
  span:not(.dashicons):not([class*="eicon"]):not([class*="fa-"]):not([class*="icon"])
),
body:not(.wp-admin):not(#ion-font-override) > .ion-lead-popup :where(div, p, a, label, button, strong, span:not([class*="icon"])) {
  font-family: var(--ion-font-body) !important;
  font-synthesis: none !important;
}

body:not(.wp-admin):not(#ion-font-override) > :not(#wpadminbar) svg text {
  font-family: var(--ion-font-body) !important;
  font-synthesis: none !important;
}

body:not(.wp-admin):not(#ion-font-override) > :not(#wpadminbar) :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  [role="heading"],
  .elementor-heading-title
),
body:not(.wp-admin):not(#ion-font-override) > :not(#wpadminbar) :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  [role="heading"],
  .elementor-heading-title
) :where(a, span:not([class*="icon"]), strong, b, em),
body:not(.wp-admin):not(#ion-font-override) > .ion-lead-popup :where(h1, h2, h3, h4, h5, h6, [role="heading"]),
body:not(.wp-admin):not(#ion-font-override) > .ion-lead-popup :where(h1, h2, h3, h4, h5, h6, [role="heading"]) :where(a, span, strong, b, em) {
  font-family: var(--ion-font-heading) !important;
  font-weight: 400 !important;
  font-synthesis: none !important;
}

/*
 * Responsive heading contract. Repeating the existing override guard gives
 * this final site-owned layer enough specificity to beat legacy page-level
 * ID rules without changing markup or relying on clipped/hidden text.
 */
@media (min-width: 1026px) {
  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h1 {
    font-size: 28px !important;
    line-height: 1.18 !important;
  }

  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h2 {
    font-size: 22px !important;
    line-height: 1.22 !important;
  }

  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h3,
  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h4,
  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h5,
  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h6 {
    font-size: 16px !important;
    line-height: 1.3 !important;
  }
}

@media (max-width: 1025px) {
  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) :is(h1, h2, h3, h4, h5, h6) {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h1 {
    font-size: 22px !important;
    line-height: 1.28 !important;
  }

  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h2 {
    font-size: 18px !important;
    line-height: 1.34 !important;
  }

  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h3,
  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h4,
  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h5,
  html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) h6 {
    font-size: 16px !important;
    line-height: 1.4 !important;
  }
}

html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) :is(h1, h2, h3, h4, h5, h6) br {
  display: none !important;
}

html body:not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(#ion-font-override):not(.wp-admin) :is(h1, h2, h3, h4, h5, h6) > span {
  display: inline !important;
}

@media (max-width: 767px) {
  body:not(.wp-admin):not(#ion-font-override) > :not(#wpadminbar) :where(
    p,
    a,
    li,
    dt,
    dd,
    blockquote,
    caption,
    figcaption,
    label,
    input,
    textarea,
    select,
    option,
    button,
    summary,
    th,
    td,
    address,
    time,
    small,
    strong,
    b,
    em,
    mark,
    span:not(.dashicons):not([class*="eicon"]):not([class*="fa-"]):not([class*="icon"])
  ),
  body:not(.wp-admin):not(#ion-font-override) > .ion-lead-popup :where(p, a, label, input, textarea, select, button, strong, span:not([class*="icon"])),
  body:not(.wp-admin):not(#ion-font-override) :where(.v1-popular-badge, .ion-v5-badge-rec, .ion-card-badge, .badge-tag, .ion-inverter-intro-v1__diagram-head),
  body:not(.wp-admin):not(#ion-font-override) svg text {
    font-size: max(15px, 1em) !important;
  }
}
