.button {
    display: inline-block;
    -webkit-appearance: none;
    line-height: 1;
    padding: 1em 2em;
    letter-spacing: 0.04em;
    border-width: thin;
    border-style: solid;
    text-align: center;
    margin: 5px;
    opacity: 1;
    transition: opacity 0.4s ease-out, background-color 0.4s ease-out, border-color 0.4s ease-out, color 0.4s ease-out;
}

.button__text {
    position: relative;
}

.button:hover {
    opacity: 0.9;
}

/* ------- color classes ------- */
.button--white {
    background: var(--button-white-background);
    border-color: var(--button-white-border);
    color: var(--button-white-text);
}

/* --default is a button with no colour picked */
.button--primary,
.button--default {
    background: var(--button-primary-background);
    border-color: var(--button-primary-border);
    color: var(--button-primary-text);
    border-radius: var(--button-border-radius);
}

.button--primary:hover,
.button--default:hover {
    background: var(--button-primary-hover-background);
    border-color: var(--button-primary-hover-border);
    color: var(--button-primary-hover-text);
}

.button--black {
    background: var(--button-black-background);
    border-color: var(--button-black-border);
    color: var(--button-black-text);
}

.button--transparent {
    background: transparent;
    border-color: var(--button-transparent-border);
    color: var(--button-transparent-text);
}

/* ------- display as link ------- */
.button--link {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    margin: 5px 1.5em 5px 0;
    letter-spacing: normal;
    text-align: left;
    color: var(--button-link-primary-text);
}

.button--link:hover {
    opacity: 1;
}

.button--link:hover .button__text {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.button--link-white {
    color: var(--button-link-white-text);
}

.button--link-black {
    color: var(--button-link-black-text);
}

.button--link-transparent {
    color: inherit;
}
