.syntax--base {
  color: @base1;
}

.syntax--sec {
  color: @base2;
}

.syntax--comment {
  color: @base3;
}

.syntax--orange {
  color: @orange-text;
  background-color: @orange-bg;
}

.syntax--orange-sec {
  color: @orange-text-sec;
}

.syntax--green {
  color: @green-text;
  background-color: @green-bg;
}

.syntax--green-sec {
  color: @green-text-sec;
}

.syntax--teal {
  color: @teal-text;
  background-color: @teal-bg;
}

.syntax--teal-sec {
  color: @teal-text-sec;
}

.syntax--blue {
  color: @blue-text;
  background-color: @blue-bg;
}

.syntax--blue-sec {
  color: @blue-text-sec;
}

.syntax--purple {
  color: @purple-text;
  background-color: @purple-bg;
}

.syntax--purple-sec {
  color: @purple-text-sec;
}

.syntax--reset {
  color: inherit;
  background-color: transparent;
}

.reset_all {
  .syntax--keyword.syntax--control,
  .syntax--string.syntax--quoted,
  .syntax--string.syntax--regexp,
  .syntax--constant.syntax--numeric,
  .syntax--constant.syntax--keyword,
  .syntax--constant.syntax--symbol,
  .syntax--constant.syntax--language,
  .syntax--entity.syntax--name.syntax--tag,
  .syntax--meta.syntax--embedded {
    .syntax--reset();
  }

  .syntax--meta.syntax--embedded {
    .syntax--punctuation.syntax--embedded {
      .syntax--reset;
    }

    .syntax--string.syntax--quoted {
      .syntax--punctuation.syntax--definition {
        .syntax--reset;
      }
    }
  }
}

// Global Highlighting

.syntax--keyword.syntax--control {
  .syntax--purple();
}

.syntax--constant.syntax--keyword,
.syntax--constant.syntax--symbol {
  .syntax--blue();
}

.syntax--constant.syntax--numeric,
.syntax--constant.syntax--language {
  .syntax--teal();
}

.syntax--string.syntax--quoted,
.syntax--string.syntax--regexp {
  .syntax--green();
  .reset_all();

  .syntax--punctuation.syntax--definition {
    color: @green-text-sec;
  }
}

.syntax--comment {
  color: @base3;
  font-style: italic;
}

.syntax--meta.syntax--embedded:not(.syntax--php) {
  .settings-embedded-mix();
}

.syntax--bold {
  font-weight: bold;
}

.syntax--italic {
  font-style: italic;
}

.syntax--invalid {
  &.syntax--deprecated {
    color: @syntax-deprecated-fg !important;
    background-color: @syntax-deprecated-bg !important;
  }
  &.syntax--illegal {
    color: @syntax-illegal-fg !important;
    background-color: @syntax-illegal-bg !important;
  }
}

// Mixins

.syntax--attribute-mix {
  .syntax--sec();
  font-style: italic;
}

.embedded-simple-mix {
  .syntax--orange();
  .reset_all();

  .syntax--punctuation.syntax--embedded {
    color: @orange-text-sec;
  }
}

.embedded-full-mix {
  .syntax--punctuation.syntax--embedded {
    .syntax--orange();
  }
}
