.button{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border:2px solid transparent;border-radius:4px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.button--primary{background-color:var(--button-primary-bg);color:var(--button-primary-text)}.button--primary:hover:not(:disabled){background-color:var(--button-primary-hover);color:var(--button-primary-hover-text);transform:translateY(-1px);box-shadow:var(--shadow-md)}.button--primary:active:not(:disabled){transform:translateY(0)}.button--secondary{background-color:var(--bg-tertiary);color:var(--text-primary)}.button--secondary:hover:not(:disabled){background-color:var(--bg-secondary);transform:translateY(-1px)}.button--outline{background-color:transparent;border-color:var(--button-secondary-border);color:var(--button-secondary-text)}.button--outline:hover:not(:disabled){background-color:var(--bg-secondary);transform:translateY(-1px)}.button--read-more{text-transform:uppercase;letter-spacing:0.5px}.button:disabled{opacity:0.5;cursor:not-allowed}.button--loading{position:relative;color:transparent}.button--loading::after{content:'';position:absolute;width:16px;height:16px;top:50%;left:50%;margin-left:-8px;margin-top:-8px;border:2px solid var(--button-primary-text);border-radius:50%;border-top-color:transparent;animation:button-loading-spinner 0.6s linear infinite}@keyframes button-loading-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}