:root {
    /* --- colors --- */

    /* functional */
    --danger-red: #FF0000;
    --form-selects: #191919;

    /* mono / greys */
    --white: #FFFFFF;
    --light-grey: #F5F5F5;
    --mid-grey: #D8D8D8;
    --dark-grey: #999999;
    --text-black: #2a2a2a;
    --greyest : #353535;
    --black: #000000;
}


/* Functional */
.danger-red {
    color: var(--danger-red);
}
.danger-red_background {
    background-color: var(--danger-red);
}



/* Monotones */
.white {
    color: var(--white);
}
.white_background {
    background-color: var(--white);
}

.light-grey {
    color: var(--light-grey);
}
.light-grey_background {
    background-color: var(--light-grey);
}

.mid-grey {
    color: var(--mid-grey);
}
.mid-grey_background {
    background-color: var(--mid-grey);
}

.dark-grey {
    color: var(--dark-grey);
}
.dark-grey_background {
    background-color: var(--dark-grey);
}
.text-black {
    color: var(--text-black);
}
.text-black_background {
    background-color: var(--text-black);
}
.black {
    color: var(--black);
}
.black_background {
    background-color: var(--black);
}
.greyest {
    color: var(--greyest);
}
.greyest_background {
    background-color: var(--greyest);
}





/* Text Color Selection */
::selection {
    background: var(--black); /* WebKit/Blink Browsers */
    color: var(--white);
}
::-moz-selection {
    background: var(--black); /* Gecko Browsers */
    color: var(--white);
}






/* default fonts */
p {
    color: var(--black);
}
a:not(.button) {
    color: var(--black);
}






/* Color Overrides */
/* --- black_background --- */
.black_background h1,
.black_background h2,
.black_background h3,
.black_background h4,
.black_background h5,
.black_background h6,
.black_background .h1style,
.black_background .h2style,
.black_background .h3style,
.black_background .h4style,
.black_background .h5style,
.black_background .h6style,
.black_background ul li,
.black_background ul li a {
    color: var(--white);
}
.black_background p {
    color: var(--white);
}
.black_background p.sub-heading,
.black_background div.sub-heading p {
    color: var(--white);
}
.black_background p.accent-text,
.black_background div.accent-text p {
    color: var(--white);
}
/* primary button */
.black_background a.button.primary,
.black_background button.primary,
.black_background .wpcf7 input[type="submit"] {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--black);
}
.black_background a.button.primary:hover,
.black_background button.primary:hover,
.black_background .wpcf7 input[type="submit"] {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--black);
}
/* secondary button */
.black_background a.button.secondary,
.black_background button.secondary {
    border-color: var(--white);
    color: var(--white);
}
.black_background a.button.secondary:hover,
.black_background button.secondary:hover {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--black);
}
/* tertiary button */
.black_background a.button.tertiary,
.black_background button.tertiary {
    color: var(--white);
}
.black_background a.button.tertiary:before,
.black_background button.tertiary:before {
    background-color: var(--white);
}
.black_background a.button.tertiary:after,
.black_background button.tertiary:after {
    background-image: url('../buttons/assets/tertiary/white_arrow.svg');
}
/* tab button */
.black_background a.button.tab,
.black_background button.tab,
.black_background .wpcf7 button[type="submit"].tab,
.black_background .wpcf7 input[type="submit"].tab {
    color: var(--white);
}
.black_background a.button.tab::after,
.black_background button.tab::after,
.black_background .wpcf7 button[type="submit"].tab::after,
.black_background .wpcf7 input[type="submit"].tab::after {
    background-color: var(--white);
}
/* tag button */
.black_background a.button.tag,
.black_background button.tag,
.black_background .wpcf7 button[type="submit"].tag,
.black_background .wpcf7 input[type="submit"].tag {
    background-color: var(--black);
    border-color: var(--mid-grey);
    color: var(--white);
}
.black_background a.button.tag.active,
.black_background button.tag.active,
.black_background .wpcf7 button[type="submit"].tag.active,
.black_background .wpcf7 input[type="submit"].tag.active {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--black);
}
/* arrow */
.black_background a.button.arrow,
.black_background div.button.arrow,
.black_background button.arrow {
    background-image: url('../buttons/assets/arrow/white_arrow.svg');
}

.text-black_background h1,
.text-black_background h2,
.text-black_background h3,
.text-black_background h4,
.text-black_background h5,
.text-black_background h6,
.text-black_background .h1style,
.text-black_background .h2style,
.text-black_background .h3style,
.text-black_background .h4style,
.text-black_background .h5style,
.text-black_background .h6style,
.text-black_background ul li,
.text-black_background ul li a {
    color: var(--white);
}
.text-black_background p {
    color: var(--white);
}
.text-black_background p.sub-heading,
.text-black_background div.sub-heading p {
    color: var(--white);
}
.text-black_background p.accent-text,
.text-black_background div.accent-text p {
    color: var(--white);
}
/* primary button */
.text-black_background a.button.primary,
.text-black_background button.primary,
.text-black_background .wpcf7 input[type="submit"] {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--black);
}
.text-black_background a.button.primary:hover,
.text-black_background button.primary:hover,
.text-black_background .wpcf7 input[type="submit"] {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--black);
}
/* secondary button */
.text-black_background a.button.secondary,
.text-black_background button.secondary {
    border-color: var(--white);
    color: var(--white);
}
.text-black_background a.button.secondary:hover,
.text-black_background button.secondary:hover {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--black);
}
/* tertiary button */
.text-black_background a.button.tertiary,
.text-black_background button.tertiary {
    color: var(--white);
}
.text-black_background a.button.tertiary:before,
.text-black_background button.tertiary:before {
    background-color: var(--white);
}
.text-black_background a.button.tertiary:after,
.text-black_background button.tertiary:after {
    background-image: url('../buttons/assets/tertiary/white_arrow.svg');
}
/* tab button */
.text-black_background a.button.tab,
.text-black_background button.tab,
.text-black_background .wpcf7 button[type="submit"].tab,
.text-black_background .wpcf7 input[type="submit"].tab {
    color: var(--white);
}
.text-black_background a.button.tab::after,
.text-black_background button.tab::after,
.text-black_background .wpcf7 button[type="submit"].tab::after,
.text-black_background .wpcf7 input[type="submit"].tab::after {
    background-color: var(--white);
}
/* tag button */
.text-black_background a.button.tag,
.text-black_background button.tag,
.text-black_background .wpcf7 button[type="submit"].tag,
.text-black_background .wpcf7 input[type="submit"].tag {
    background-color: var(--black);
    border-color: var(--mid-grey);
    color: var(--white);
}
.text-black_background a.button.tag.active,
.text-black_background button.tag.active,
.text-black_background .wpcf7 button[type="submit"].tag.active,
.text-black_background .wpcf7 input[type="submit"].tag.active {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--black);
}
/* arrow */
.text-black_background a.button.arrow,
.text-black_background div.button.arrow,
.text-black_background button.arrow {
    background-image: url('../buttons/assets/arrow/white_arrow.svg');
}
.greyest_background h1,
.greyest_background h2,
.greyest_background h3,
.greyest_background h4,
.greyest_background h5,
.greyest_background h6,
.greyest_background .h1style,
.greyest_background .h2style,
.greyest_background .h3style,
.greyest_background .h4style,
.greyest_background .h5style,
.greyest_background .h6style,
.greyest_background ul li,
.greyest_background ul li a {
    color: var(--white);
}
.greyest_background p {
    color: var(--white);
}
.greyest_background p.sub-heading,
.greyest_background div.sub-heading p {
    color: var(--white);
}
.greyest_background p.accent-text,
.greyest_background div.accent-text p {
    color: var(--white);
}
/* primary button */
.greyest_background a.button.primary,
.greyest_background button.primary,
.greyest_background .wpcf7 input[type="submit"] {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--greyest);
}
.greyest_background a.button.primary:hover,
.greyest_background button.primary:hover,
.greyest_background .wpcf7 input[type="submit"] {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--greyest);
}
/* secondary button */
.greyest_background a.button.secondary,
.greyest_background button.secondary {
    border-color: var(--white);
    color: var(--white);
}
.greyest_background a.button.secondary:hover,
.greyest_background button.secondary:hover {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--greyest);
}
/* tertiary button */
.greyest_background a.button.tertiary,
.greyest_background button.tertiary {
    color: var(--white);
}
.greyest_background a.button.tertiary:before,
.greyest_background button.tertiary:before {
    background-color: var(--white);
}
.greyest_background a.button.tertiary:after,
.greyest_background button.tertiary:after {
    background-image: url('../buttons/assets/tertiary/white_arrow.svg');
}
/* tab button */
.greyest_background a.button.tab,
.greyest_background button.tab,
.greyest_background .wpcf7 button[type="submit"].tab,
.greyest_background .wpcf7 input[type="submit"].tab {
    color: var(--white);
}
.greyest_background a.button.tab::after,
.greyest_background button.tab::after,
.greyest_background .wpcf7 button[type="submit"].tab::after,
.greyest_background .wpcf7 input[type="submit"].tab::after {
    background-color: var(--white);
}
/* tag button */
.greyest_background a.button.tag,
.greyest_background button.tag,
.greyest_background .wpcf7 button[type="submit"].tag,
.greyest_background .wpcf7 input[type="submit"].tag {
    background-color: var(--greyest);
    border-color: var(--mid-grey);
    color: var(--white);
}
.greyest_background a.button.tag.active,
.greyest_background button.tag.active,
.greyest_background .wpcf7 button[type="submit"].tag.active,
.greyest_background .wpcf7 input[type="submit"].tag.active {
    background-color: var(--white);
    border-color: var(--white);
    color: var(--greyest);
}
/* arrow */
.greyest_background a.button.arrow,
.greyest_background div.button.arrow,
.greyest_background button.arrow {
    background-image: url('../buttons/assets/arrow/white_arrow.svg');
}