/* Base Button Styles */ .button, .cta-button, .submit-button, .icon-button { display: inline-flex; align-items: center; justify-content: center; padding: var(--space-sm) var(--space-lg); border-radius: var(--border-radius-md); font-weight: 600; transition: all var(--transition-base); border: none; cursor: pointer; font-family: var(--font-primary); position: relative; overflow: hidden; } /* CTA Button */ .cta-button { background: var(--accent-color); color: white; font-size: var(--font-size-lg); padding: var(--space-md) var(--space-xl); text-decoration: none; gap: var(--space-sm); } .cta-button:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(21, 52, 209, 0.2); } .cta-button:active { transform: translateY(0); } .cta-button i { transition: transform var(--transition-base); } .cta-button:hover i { transform: translateX(4px); } /* Submit Button */ .submit-button { background: var(--accent-color); color: white; width: 100%; padding: var(--space-md); position: relative; } .submit-button:hover { background: var(--accent-blue); } .submit-button:disabled { background: var(--border-color); cursor: not-allowed; } .submit-button .button-text { transition: opacity var(--transition-base); } .submit-button .loading-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } /* Icon Button */ .icon-button { background: transparent; color: var(--text-color); padding: var(--space-sm); border-radius: var(--border-radius-full); width: 40px; height: 40px; } .icon-button:hover { background: var(--card-bg); } .icon-button i { font-size: var(--font-size-lg); } /* Cookie Consent Buttons */ .cookie-button { font-size: var(--font-size-sm); padding: var(--space-sm) var(--space-lg); border-radius: var(--border-radius-sm); font-weight: 500; transition: var(--transition-base); } .cookie-button.accept { background: var(--accent-color); color: white; } .cookie-button.accept:hover { background: var(--accent-blue); } .cookie-button.reject { background: transparent; border: 1px solid var(--border-color); color: var(--text-color); } .cookie-button.reject:hover { background: var(--card-bg); } /* Footer Links */ .footer-link { color: var(--text-color); text-decoration: none; padding: var(--space-xs) var(--space-sm); border-radius: var(--border-radius-sm); transition: var(--transition-base); } .footer-link:hover { background: var(--card-bg); } /* Button Ripple Effect */ .button::after, .cta-button::after, .submit-button::after { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: rgba(255, 255, 255, 0.2); border-radius: 50%; transform: translate(-50%, -50%); transition: width 0.3s ease-out, height 0.3s ease-out; } .button:active::after, .cta-button:active::after, .submit-button:active::after { width: 200%; height: 200%; opacity: 0; } /* Focus States */ .button:focus-visible, .cta-button:focus-visible, .submit-button:focus-visible, .icon-button:focus-visible { outline: 2px solid var(--accent-color); outline-offset: 2px; } /* Loading State */ .submit-button[aria-busy="true"] { cursor: progress; } .submit-button[aria-busy="true"] .button-text { opacity: 0; } .submit-button[aria-busy="true"] .loading-spinner { display: block; } /* Responsive Adjustments */ @media (max-width: 768px) { .cta-button { padding: var(--space-sm) var(--space-lg); font-size: var(--font-size-base); } .cookie-button { padding: var(--space-xs) var(--space-md); } } /* High Contrast Mode Support */ @media (forced-colors: active) { .button, .cta-button, .submit-button, .icon-button { border: 1px solid currentColor; } }