.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;
}

.button__text {
    position: relative;
}

.button:hover {
    opacity: 0.9;
}

/* ------- color classes ------- */
/* --default is a button with no colour picked */
.button--white,
.button--default {
    background: var(--white);
    border-color: var(--white);
    color: var(--text-dark);
}

.button--primary {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--white);
    border-radius: var(--button-border-radius);
}

.button--black {
    background: var(--black);
    border-color: var(--black);
    color: var(--text-light);
}

.button--transparent {
    background: transparent;
    border-color: var(--text-dark);
    color: var(--text-dark);
}

/* ------- 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(--primary);
}

.button--link:hover {
    opacity: 1;
}

.button--link:hover .button__text {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.button--link-white {
    color: var(--white);
}

.button--link-black {
    color: var(--black);
}

.button--link-transparent {
    color: inherit;
}
