.button,
button,
input[type="submit"],
input[type="button"] {
    background: var(--color-hilaire-navy);
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    font-size: 0.86rem;
    font-weight: 600;
    letter-spacing: var(--button-tracking);
    min-height: 42px;
    padding: 0.7rem 1.08rem;
    text-transform: uppercase;
    transition: transform var(--duration-fast) var(--easing-luxury), background-color var(--duration-fast) var(--easing-luxury), border-color var(--duration-fast) var(--easing-luxury);
}

.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
    background: var(--color-hilaire-navy-mid);
    transform: translateY(-1px);
}

.button:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible,
input[type="button"]:focus-visible {
    border-color: var(--color-accent);
}

.button--ghost {
    background: transparent;
    border-color: var(--color-hilaire-navy);
    color: var(--color-hilaire-navy);
}

.button--ghost:hover {
    border-color: var(--color-accent);
    color: var(--color-link-hover);
}

/* ─── Editorial over-titles (section tags, feature badges, portal tag) ─── */
.section-tag,
.client-portal__tag,
.philosophy-eyebrow {
    display: block;
    font-family: var(--font-overtitle);
    font-size: var(--overtitle-size);
    font-weight: var(--overtitle-weight);
    letter-spacing: var(--overtitle-tracking);
    text-transform: uppercase;
    color: var(--color-hilaire-navy);
    margin-bottom: 12px;
}
