/* Canonical button component, shared by every section. */
.pf-btn {
    align-items: center;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    gap: 9px;
    justify-content: center;
    line-height: 1.2;
    min-height: 46px;
    padding: 0 22px;
    text-decoration: none;
    transition: background-color var(--transition), border-color var(--transition), color var(--transition), transform var(--transition), box-shadow var(--transition);
}

.pf-btn:active { transform: translateY(1px); }
.pf-btn:focus-visible { box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.24); outline: 0; }

.pf-btn-primary { background: var(--primary); color: #fff; }
.pf-btn-primary:hover { background: var(--primary-dark); color: #fff; }

.pf-btn-dark { background: var(--text); color: #fff; }
.pf-btn-dark:hover { background: var(--primary); color: #fff; }

.pf-btn-outline { background: #fff; border: 1px solid var(--border); color: var(--text); }
.pf-btn-outline:hover { border-color: var(--primary); color: var(--primary); }

.pf-btn-ghost { background: transparent; color: var(--text); padding-inline: 4px; }
.pf-btn-ghost:hover { color: var(--primary); }

.pf-btn-light { background: #fff; color: var(--text); }
.pf-btn-light:hover { background: var(--surface-tint); color: var(--primary); }

.pf-btn-sm { font-size: 13px; min-height: 38px; padding: 0 16px; }
.pf-btn-lg { font-size: 15px; min-height: 52px; padding: 0 28px; }

.pf-btn-block { width: 100%; }

.pf-btn-icon { border-radius: 50%; min-height: 40px; min-width: 40px; padding: 0; }

.pf-btn[disabled],
.pf-btn.disabled { cursor: not-allowed; opacity: 0.6; pointer-events: none; }
