.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: var(--border-radius-none);
    background: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    transition:
        opacity 0.3s ease,
        color 0.3s ease;
    border: none;
    font-family: var(--font-decorative), monospace;
    text-transform: uppercase;
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-xs);
    letter-spacing: var(--letter-spacing-xxl);
    color: var(--color-text-primary);
    border-bottom: var(--border-width-sm) solid var(--border-color-dark);
}

.button[data-hide-on='desktop'] {
    display: none;
}

.inverted {
    color: var(--color-text-primary-inverted);
    border-bottom-color: var(--border-color-invert);
}

.button.button:hover,
.button.button:focus,
.button.button:active,
.button.button:visited {
    color: var(--color-text-primary);
}

.inverted.inverted:hover,
.inverted.inverted:focus,
.inverted.inverted:active,
.inverted.inverted:visited {
    color: var(--color-text-primary-inverted);
}

.button:hover {
    opacity: 0.85;
}

/* Muted variation (designer note 2026-07-10): grey with no underline,
 * primary treatment on hover. Doubled class outranks .button.button:hover. */
.muted.muted {
    color: var(--color-text-primary-disabled);
    border-bottom-color: transparent;
    transition:
        opacity 0.3s ease,
        color 0.3s ease,
        border-bottom-color 0.3s ease;
}

.muted.muted:hover,
.muted.muted:focus,
.muted.muted:active {
    color: var(--color-text-primary);
    border-bottom-color: var(--border-color-dark);
    opacity: 1;
}

.button,
.button:focus,
.button:active,
.button:hover {
    text-decoration: none;
}

.disabled:hover,
.disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.content {
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    flex-wrap: nowrap;
    gap: var(--spacing-8);
    z-index: 1;
}

.lg {
    font-size: var(--font-size-sm);
    min-height: 32px;
}

.sm {
    font-size: var(--font-size-xs);
    min-height: 24px;
}

.sm .content {
    gap: var(--spacing-4);
}

.iconWrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    min-width: 16px;
    max-width: 16px;
    height: 16px;
    max-height: 16px;
    overflow: hidden;

    & > * {
        width: 100%;
        height: 100%;
    }
}

.sm .iconWrap {
    width: 14px;
    min-width: 14px;
    max-width: 14px;
    height: 14px;
    max-height: 14px;
}

@media (width <= 768px) {
    .button[data-hide-on='mobile'] {
        display: none;
    }
    .button[data-hide-on='desktop'] {
        display: inline-flex;
    }
}
