:root {
  --h1-font-size-md: 66px;
  --h2-font-size-md: 44px;
  --h3-font-size-md: 27px;
  --h4-font-size-md: 20px;
  --p-font-size-md: 20px;
  --h5-font-size-md: var(--p-font-size-md);
  --h6-font-size-md: var(--p-font-size-md);
  --anchor-font-size-md: 16px;
  --sm-multiplier: 0.9;
  --lg-multiplier: 1.4;
}

body.font-size-sm h1 {
  font-size: calc(var(--h1-font-size-md) * var(--sm-multiplier)) !important;
}

body.font-size-sm h2 {
  font-size: calc(var(--h2-font-size-md) * var(--sm-multiplier)) !important;
}

body.font-size-lg h2 {
  font-size: calc(var(--h2-font-size-md) * var(--lg-multiplier)) !important;
}

body.font-size-sm h3 {
  font-size: calc(var(--h3-font-size-md) * var(--sm-multiplier)) !important;
}

body.font-size-lg h3 {
  font-size: calc(var(--h3-font-size-md) * var(--lg-multiplier)) !important;
}

body.font-size-sm h4 {
  font-size: calc(var(--h4-font-size-md) * var(--sm-multiplier)) !important;
}

body.font-size-lg h4 {
  font-size: calc(var(--h4-font-size-md) * var(--lg-multiplier)) !important;
}

body.font-size-sm h5 {
  font-size: calc(var(--h5-font-size-md) * var(--sm-multiplier)) !important;
}

body.font-size-lg h5 {
  font-size: calc(var(--h5-font-size-md) * var(--lg-multiplier)) !important;
}

body.font-size-sm h6 {
  font-size: calc(var(--h6-font-size-md) * var(--sm-multiplier)) !important;
}

body.font-size-lg h6 {
  font-size: calc(var(--h6-font-size-md) * var(--lg-multiplier)) !important;
}

body.font-size-sm p {
  font-size: calc(var(--p-font-size-md) * var(--sm-multiplier)) !important;
}

body.font-size-lg p {
  font-size: calc(var(--p-font-size-md) * var(--lg-multiplier)) !important;
}

body.font-size-sm a,
body.font-size-sm button {
  font-size: calc(var(--anchor-font-size-md) * var(--sm-multiplier)) !important;
}

body.font-size-lg a,
body.font-size-lg button {
  font-size: calc(var(--anchor-font-size-md) * var(--lg-multiplier)) !important;
}

body.font-size-lg nav.e-n-menu a > span {
  font-size: calc(var(--p-font-size-md) * var(--lg-multiplier)) !important;
  padding: 10px 0 0 0;
  line-height: 20px !important;
}

body.font-size-lg .elementor-widget-n-menu .e-n-menu-heading {
  row-gap: 15px;
  padding: 0 0 10px 0;
}

.font-size-switcher {
  cursor: pointer;
  position: relative;
}

.font-size-switcher.active::before {
  opacity: 1;
}

.font-size-switcher::before {
  content: "";
  width: 100%;
  height: 2px;
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #b9cb48;
  transition: all 0.5s ease;
  opacity: 0;
}

.font-size-switcher:hover::before {
  opacity: 1;
}
