/** Buttons and text links. */
.button {
    display: inline-flex; min-height: 48px; padding: 13px 25px; align-items: center; justify-content: center; gap: 8px;
    border: 1px solid transparent; border-radius: var(--radius-sm); background: var(--color-secondary-strong);
    color: var(--color-white); font-size: var(--text-sm); font-weight: 750; line-height: 1.2; cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.button:hover { color: var(--color-white); background: var(--color-secondary-strong-hover); transform: translateY(-1px); box-shadow: 0 12px 28px rgba(47,125,50,.23); }
.button--navy { background: var(--color-primary); }
.button--navy:hover { background: #07162F; }
.button--outline { border-color: rgba(11,29,58,.28); background: transparent; color: var(--color-primary); }
.button--outline:hover { border-color: var(--color-primary); background: var(--color-primary); color: #fff; box-shadow: none; }
.text-link { display: inline-flex; align-items: center; gap: 7px; color: var(--color-primary); font-weight: 750; font-size: var(--text-sm); }
.text-link:hover { color: var(--color-secondary-text-hover, #4C833C); }


/* Keyboard focus only: avoids a persistent green border after mouse clicks. */
.button:focus:not(:focus-visible) {
    outline: 0;
    box-shadow: none;
}
.button:focus-visible {
    outline: 2px solid rgba(11, 29, 58, .72);
    outline-offset: 3px;
    box-shadow: none;
}

.button:active { outline: 0; box-shadow: none; }
