lad-website/frontend/src/app/globals.css

1282 lines
30 KiB
CSS

@import "tailwindcss";
/* ========================================== */
/* ROOT VARIABLES & THEME DEFINITIONS */
/* ========================================== */
:root {
/* Brand Colors - consistent across themes */
--color-primary: #13AE3A;
--color-primary-light: #4dc76a;
--color-primary-dark: #0c8429;
/* Brand Colors as HSL for better theme integration */
--primary: 135 80% 38%;
--primary-light: 135 60% 85%;
--primary-dark: 135 60% 18%;
--color-secondary: #7e3af2;
--color-secondary-light: #a78bfa;
--color-secondary-dark: #5b21b6;
--color-accent: #ff9800;
--color-accent-light: #ffca28;
--color-accent-dark: #ff8f00;
/* Bright Daisy Yellow Accent - Dark Theme */
--color-accent-gold: #FFD700;
/* Light Theme Yellow Accents */
--color-accent-amber: #d97706;
--color-accent-mustard: #ca8a04;
--color-accent-honey: #b7791f;
--color-accent-light-bg: #fefce8;
/* Light Theme Variables - Enhanced Modern Design */
--color-text: #0f172a;
--color-text-light: #475569;
--color-text-muted: #64748b;
--color-bg: #ffffff;
--color-bg-secondary: #f8fafc;
--color-bg-tertiary: #f1f5f9;
--color-bg-soft: #ffffff;
--color-bg-warm: #fefefe;
--color-border: #e2e8f0;
--color-border-light: #f1f5f9;
/* Light theme gradients */
--gradient-primary: linear-gradient(135deg, #13AE3A 0%, #0c8429 100%);
--gradient-secondary: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
--gradient-soft: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);
--gradient-cool: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
--gradient-hero: linear-gradient(135deg, #13AE3A 0%, #0c8429 100%);
/* Enhanced shadows */
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
/* Typography */
--font-sans: "Inter", system-ui, sans-serif;
--font-display: "Inter", system-ui, sans-serif;
/* Layout */
--border-radius-sm: 0.25rem;
--border-radius: 0.5rem;
--border-radius-lg: 0.75rem;
--border-radius-xl: 1rem;
--shadow-focus: 0 0 0 3px rgba(19, 174, 58, 0.5);
}
/* ========================================== */
/* DARK THEME VARIABLES */
/* ========================================== */
.dark {
/* Dark theme text colors */
--color-text: #f3f4f6;
--color-text-light: #e5e7eb;
--color-text-muted: #9ca3af;
/* Dark theme backgrounds */
--color-bg: #0f172a;
--color-bg-secondary: #1e293b;
--color-bg-tertiary: #334155;
--color-bg-soft: #1e293b;
--color-bg-warm: #1e293b;
/* Dark theme borders */
--color-border: #475569;
--color-border-light: #374151;
/* Dark theme primary colors */
--color-primary-light: #4dc76a;
/* Dark theme gradients */
--gradient-primary: linear-gradient(135deg, #1e293b 0%, #334155 100%);
--gradient-secondary: linear-gradient(135deg, #374151 0%, #475569 100%);
--gradient-soft: linear-gradient(135deg, #1e293b 0%, #334155 100%);
--gradient-cool: linear-gradient(135deg, #1e293b 0%, #374151 100%);
--gradient-hero: linear-gradient(135deg, #1e293b 0%, #334155 100%);
/* Dark theme shadows */
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3);
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.4), 0 10px 10px -5px rgba(0, 0, 0, 0.3);
}
/* ========================================== */
/* HIGH CONTRAST THEMES */
/* ========================================== */
/* High Contrast Light Theme - Maximum Contrast for Low Vision */
.high-contrast-light {
/* Text colors - Pure black for maximum contrast */
--color-text: #000000;
--color-text-light: #000000;
--color-text-muted: #333333;
/* Background colors - Pure white */
--color-bg: #FFFFFF;
--color-bg-secondary: #FFFFFF;
--color-bg-tertiary: #F5F5F5;
--color-bg-soft: #FFFFFF;
--color-bg-warm: #FFFFFF;
/* Border colors - Strong black borders */
--color-border: #000000;
--color-border-light: #333333;
/* Primary colors - Pure black for maximum contrast */
--color-primary: #000000;
--color-primary-light: #000000;
--color-primary-dark: #000000;
/* Accent colors - Bright yellow for maximum visibility */
--color-accent-gold: #FFFF00;
/* Enhanced shadows for high contrast */
--shadow-sm: 0 2px 4px 0 rgba(0, 0, 0, 0.8);
--shadow-md: 0 4px 8px -1px rgba(0, 0, 0, 0.8), 0 2px 6px -1px rgba(0, 0, 0, 0.6);
--shadow-lg: 0 10px 20px -3px rgba(0, 0, 0, 0.8), 0 4px 8px -2px rgba(0, 0, 0, 0.6);
--shadow-xl: 0 25px 35px -5px rgba(0, 0, 0, 0.8), 0 10px 15px -5px rgba(0, 0, 0, 0.6);
}
/* High Contrast Dark Theme - White on Black */
.high-contrast-dark {
/* Text colors - Pure white for maximum contrast */
--color-text: #FFFFFF;
--color-text-light: #FFFFFF;
--color-text-muted: #CCCCCC;
/* Background colors - Pure black */
--color-bg: #000000;
--color-bg-secondary: #000000;
--color-bg-tertiary: #1A1A1A;
--color-bg-soft: #000000;
--color-bg-warm: #000000;
/* Border colors - Strong white borders */
--color-border: #FFFFFF;
--color-border-light: #CCCCCC;
/* Primary colors - Pure white for maximum contrast */
--color-primary: #FFFFFF;
--color-primary-light: #FFFFFF;
--color-primary-dark: #FFFFFF;
/* Accent colors - Bright yellow */
--color-accent-gold: #FFFF00;
/* Enhanced shadows for high contrast dark */
--shadow-sm: 0 2px 4px 0 rgba(255, 255, 255, 0.3);
--shadow-md: 0 4px 8px -1px rgba(255, 255, 255, 0.3), 0 2px 6px -1px rgba(255, 255, 255, 0.2);
--shadow-lg: 0 10px 20px -3px rgba(255, 255, 255, 0.3), 0 4px 8px -2px rgba(255, 255, 255, 0.2);
--shadow-xl: 0 25px 35px -5px rgba(255, 255, 255, 0.3), 0 10px 15px -5px rgba(255, 255, 255, 0.2);
}
/* ========================================== */
/* GLOBAL FOCUS & ACCESSIBILITY */
/* ========================================== */
*:focus-visible {
outline: none;
box-shadow: var(--shadow-focus);
}
.skip-to-content {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
.skip-to-content:focus {
position: fixed;
top: 16px;
left: 50%;
transform: translateX(-50%);
width: auto;
height: auto;
padding: 0.5rem 1rem;
margin: 0;
overflow: visible;
clip: auto;
white-space: normal;
background-color: var(--color-primary);
color: white;
font-weight: medium;
border-radius: var(--border-radius);
z-index: 9999;
}
/* ========================================== */
/* BUTTON COMPONENTS */
/* ========================================== */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: var(--border-radius);
padding: 0.5rem 1rem;
font-weight: 500;
transition-property: background-color, border-color, color;
transition-duration: 300ms;
}
.btn-primary {
background-color: var(--color-primary);
color: white;
padding: 0.75rem 1.5rem;
border-radius: var(--border-radius-lg);
font-weight: 600;
box-shadow: 0 4px 14px 0 rgba(19, 174, 58, 0.25);
transition: all 0.3s ease;
border: none;
cursor: pointer;
text-decoration: none;
}
.btn-primary:hover {
background-color: var(--color-primary-dark);
box-shadow: 0 6px 20px 0 rgba(19, 174, 58, 0.4);
transform: translateY(-2px);
}
.btn-secondary {
background-color: white;
color: var(--color-primary);
border: 1px solid var(--color-primary);
}
.btn-secondary:hover {
background-color: #f9fafb;
}
.btn-accent {
background-color: var(--color-accent);
color: white;
}
.btn-accent:hover {
background-color: var(--color-accent-dark);
}
.dark .btn-secondary {
background-color: rgba(255, 255, 255, 0.1);
border-color: var(--color-primary-light);
color: var(--color-primary-light);
}
.dark .btn-secondary:hover {
background-color: rgba(255, 255, 255, 0.2);
}
/* ========================================== */
/* CARD COMPONENTS */
/* ========================================== */
.card {
background-color: var(--color-bg-soft);
border-radius: var(--border-radius-lg);
box-shadow: var(--shadow-md);
overflow: hidden;
border: 1px solid var(--color-border-light);
transition: all 0.3s ease;
}
.card:hover {
box-shadow: var(--shadow-lg);
transform: translateY(-2px);
}
.dark .card {
background-color: var(--color-bg-secondary);
border: 1px solid var(--color-border);
box-shadow: var(--shadow-md);
}
.dark .card:hover {
background-color: var(--color-bg-tertiary);
box-shadow: var(--shadow-lg);
transform: translateY(-2px);
}
.card-image-placeholder {
background-color: #f3f4f6;
}
.dark .card-image-placeholder {
background-color: #4b5563;
}
.card-placeholder-text {
color: #9ca3af;
}
.dark .card-placeholder-text {
color: #d1d5db;
}
.card-title {
color: var(--color-text);
}
.card-description {
color: var(--color-text-light);
}
.card-date {
color: var(--color-primary);
}
.dark .card-date {
color: var(--color-primary-light);
}
.card-link {
color: var(--color-primary);
transition: color 0.3s ease;
}
.card-link:hover {
color: var(--color-primary-dark);
}
.dark .card-link {
color: var(--color-primary-light);
}
.dark .card-link:hover {
color: #86efac;
}
/* ========================================== */
/* FORM COMPONENTS */
/* ========================================== */
.form-label {
display: block;
font-size: 0.875rem;
font-weight: 500;
color: #374151;
margin-bottom: 0.5rem;
}
.dark .form-label {
color: #f3f4f6;
}
.form-input {
display: block;
width: 100%;
padding: 0.5rem 0.75rem;
font-size: 1rem;
line-height: 1.5;
color: #111827;
background-color: #ffffff;
border: 1px solid #d1d5db;
border-radius: 0.375rem;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.form-input:focus {
outline: none;
border-color: var(--color-primary);
box-shadow: 0 0 0 3px rgba(19, 174, 58, 0.1);
}
.dark .form-input {
color: #f9fafb;
background-color: #374151;
border-color: #6b7280;
}
.dark .form-input:focus {
border-color: var(--color-primary-light);
box-shadow: 0 0 0 3px rgba(19, 174, 58, 0.2);
}
.file-input {
display: block;
width: 100%;
font-size: 0.875rem;
color: #6b7280;
}
.file-input::file-selector-button {
margin-right: 1rem;
padding: 0.5rem 1rem;
border: 0;
border-radius: 0.375rem;
background-color: var(--color-primary);
color: white;
font-size: 0.875rem;
font-weight: 600;
cursor: pointer;
}
.file-input::file-selector-button:hover {
background-color: var(--color-primary-dark);
}
.dark .file-input {
color: #d1d5db;
}
/* ========================================== */
/* LAYOUT & STRUCTURE */
/* ========================================== */
main {
padding-top: 4rem;
}
.dark h2,
.dark h3 {
color: var(--color-text);
}
.section-heading {
color: var(--color-text);
}
.section-text {
color: var(--color-text-light);
}
/* ========================================== */
/* NAVIGATION COMPONENTS */
/* ========================================== */
.nav-bar {
background-color: transparent;
transition: all 0.3s ease-in-out;
}
.nav-bar-scrolled {
background-color: var(--color-bg);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.dark .nav-bar-scrolled {
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.nav-logo {
color: var(--color-primary);
}
.dark .nav-logo {
color: var(--color-text);
}
.nav-link {
color: var(--color-text);
transition: all 0.2s ease;
padding: 0.5rem 0.75rem;
border-radius: 0.375rem;
font-weight: 500;
}
.nav-link:hover {
background-color: var(--color-bg-secondary);
color: var(--color-primary);
}
.nav-link-active {
background-color: var(--color-primary);
color: white;
font-weight: 700;
}
.nav-mobile-menu {
background-color: var(--color-bg);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.dark .nav-mobile-menu {
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
}
.nav-mobile-button {
color: var(--color-text);
transition: all 0.2s ease;
}
.nav-mobile-button:hover {
background-color: var(--color-bg-secondary);
color: var(--color-primary);
}
/* ========================================== */
/* HIGH CONTRAST NAVIGATION FIXES */
/* ========================================== */
.high-contrast-light .nav-bar,
.high-contrast-light .nav-bar-scrolled {
background-color: #FFFFFF !important;
border-bottom: 3px solid #000000 !important;
}
.high-contrast-light .nav-logo {
color: #000000 !important;
font-weight: 700 !important;
}
.high-contrast-light .nav-link {
background-color: #FFFFFF !important;
color: #000000 !important;
border: 2px solid #000000 !important;
font-weight: 700 !important;
margin: 0 0.25rem !important;
}
.high-contrast-light .nav-link:hover {
background-color: #000000 !important;
color: #FFFFFF !important;
}
.high-contrast-light .nav-link-active {
background-color: #000000 !important;
color: #FFFFFF !important;
border: 2px solid #000000 !important;
}
.high-contrast-dark .nav-bar,
.high-contrast-dark .nav-bar-scrolled {
background-color: #000000 !important;
border-bottom: 3px solid #FFFFFF !important;
}
.high-contrast-dark .nav-logo {
color: #FFFFFF !important;
font-weight: 700 !important;
}
.high-contrast-dark .nav-link {
background-color: #000000 !important;
color: #FFFFFF !important;
border: 2px solid #FFFFFF !important;
font-weight: 700 !important;
margin: 0 0.25rem !important;
}
.high-contrast-dark .nav-link:hover {
background-color: #FFFFFF !important;
color: #000000 !important;
}
.high-contrast-dark .nav-link-active {
background-color: #FFFFFF !important;
color: #000000 !important;
border: 2px solid #FFFFFF !important;
}
.high-contrast-light .nav-mobile-button {
background-color: #FFFFFF !important;
color: #000000 !important;
border: 2px solid #000000 !important;
}
.high-contrast-dark .nav-mobile-button {
background-color: #000000 !important;
color: #FFFFFF !important;
border: 2px solid #FFFFFF !important;
}
.high-contrast-light .nav-mobile-menu {
background-color: #FFFFFF !important;
border: 3px solid #000000 !important;
}
.high-contrast-dark .nav-mobile-menu {
background-color: #000000 !important;
border: 3px solid #FFFFFF !important;
}
/* ========================================== */
/* HERO COMPONENTS */
/* ========================================== */
.hero-section {
background-color: var(--color-bg);
color: var(--color-text);
}
.hero-title {
color: var(--color-text);
}
.hero-subtitle {
color: var(--color-text-light);
}
.hero-subtitle-image {
color: #e5e7eb;
}
.hero-button-gold-accent {
border: 2px solid var(--color-accent-honey);
transition: all 0.3s ease;
}
.hero-button-gold-accent:hover {
box-shadow: 0 0 0 1px var(--color-accent-honey);
}
.dark .hero-button-gold-accent {
border-color: var(--color-accent-gold);
}
.dark .hero-button-gold-accent:hover {
box-shadow: 0 0 0 1px var(--color-accent-gold);
}
.cta-button-primary.hero-button-gold-accent {
background-color: white;
color: var(--color-primary);
border: 2px solid var(--color-accent-honey);
}
.cta-button-primary.hero-button-gold-accent:hover {
background-color: #f9fafb;
box-shadow: 0 0 0 1px var(--color-accent-honey);
}
.dark .cta-button-primary.hero-button-gold-accent {
background-color: rgba(255, 215, 0, 0.1);
color: var(--color-text);
border-color: var(--color-accent-gold);
}
.dark .cta-button-primary.hero-button-gold-accent:hover {
background-color: rgba(255, 215, 0, 0.2);
box-shadow: 0 0 0 1px var(--color-accent-gold);
}
/* ========================================== */
/* CTA COMPONENTS */
/* ========================================== */
.cta-section {
background: linear-gradient(135deg, #13AE3A 0%, #0c8429 100%);
}
.dark .cta-section {
background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
}
.cta-title {
color: white;
}
.cta-description {
color: #dcfce7;
}
.dark .cta-description {
color: var(--color-text-light);
}
.cta-button-primary {
background-color: white;
color: var(--color-primary);
transition: all 0.3s ease;
}
.cta-button-primary:hover {
background-color: #f9fafb;
}
.dark .cta-button-primary {
background-color: #f3f4f6;
color: #1f2937;
}
.dark .cta-button-primary:hover {
background-color: white;
}
.cta-button-secondary {
background-color: transparent;
color: white;
border: 2px solid white;
transition: all 0.3s ease;
}
.cta-button-secondary:hover {
background-color: white;
color: var(--color-primary);
}
.dark .cta-button-secondary {
border-color: var(--color-text-light);
color: var(--color-text-light);
}
.dark .cta-button-secondary:hover {
background-color: var(--color-text-light);
color: var(--color-bg);
}
/* ========================================== */
/* FOOTER COMPONENTS */
/* ========================================== */
.footer {
background-color: var(--color-bg);
border-top: 1px solid var(--color-border);
}
.footer-title {
color: var(--color-primary);
}
.footer-text {
color: var(--color-text-muted);
}
.footer-heading {
color: var(--color-text);
}
.footer-link {
color: var(--color-text-muted);
transition: color 0.3s ease;
}
.footer-link:hover {
color: var(--color-primary);
}
.footer-social-icon {
color: var(--color-text-muted);
transition: color 0.3s ease;
}
.footer-social-icon:hover {
color: var(--color-primary);
}
.footer-copyright {
color: var(--color-text-muted);
border-top: 1px solid var(--color-border);
}
/* ========================================== */
/* VIDEO COMPONENTS */
/* ========================================== */
.video-container {
background-color: var(--color-bg);
}
.dark .video-container {
background-color: #374151;
}
.video-placeholder {
background-color: #f3f4f6;
}
.dark .video-placeholder {
background-color: #4b5563;
}
.video-placeholder-text {
color: var(--color-text-light);
}
.video-container-gold {
border: 2px solid var(--color-accent-honey);
transition: all 0.3s ease;
}
.dark .video-container-gold {
border-color: var(--color-accent-gold);
}
/* ========================================== */
/* MEMBERSHIP COMPONENTS */
/* ========================================== */
.benefit-card-title {
color: var(--color-text);
}
.benefit-card-description {
color: var(--color-text-light);
}
/* ========================================== */
/* GOLD ACCENT SYSTEM */
/* ========================================== */
/* Event Card Gold Accents */
.event-card-gold-border {
border-left: 3px solid transparent;
transition: all 0.3s ease;
}
.event-card-gold-border:hover {
border-left-color: var(--color-accent-honey);
}
.event-card-title-gold {
transition: color 0.3s ease;
}
.event-card-gold-border:hover .event-card-title-gold {
color: var(--color-accent-honey);
}
.dark .event-card-gold-border:hover {
border-left-color: var(--color-accent-gold);
}
.dark .event-card-gold-border:hover .event-card-title-gold {
color: var(--color-accent-gold);
}
/* Light Theme Yellow Accent Classes */
.light-amber-accent {
border: 2px solid transparent;
transition: all 0.3s ease;
}
.light-amber-accent {
border-color: var(--color-accent-amber);
}
.light-amber-border {
border-left: 3px solid transparent;
transition: all 0.3s ease;
}
.light-amber-border:hover {
border-left-color: var(--color-accent-amber);
}
.light-amber-title {
transition: color 0.3s ease;
}
.light-amber-border:hover .light-amber-title {
color: var(--color-accent-amber);
}
.blue-section-yellow-accent {
background: linear-gradient(135deg, #13AE3A 0%, #4dc76a 100%);
color: white;
}
.blue-card-yellow-border {
background-color: var(--color-primary);
color: white;
border: 2px solid var(--color-accent-gold);
transition: all 0.3s ease;
}
.blue-card-yellow-border:hover {
box-shadow: 0 0 0 2px var(--color-accent-gold);
transform: translateY(-2px);
}
.yellow-on-blue-title {
color: var(--color-accent-gold);
}
.yellow-tint-section {
background-color: var(--color-accent-light-bg);
border: 1px solid #fde047;
}
.yellow-tint-card {
background: linear-gradient(135deg, #fefce8 0%, #fef3c7 100%);
border: 1px solid #fbbf24;
transition: all 0.3s ease;
}
.yellow-tint-card:hover {
box-shadow: 0 4px 12px rgba(251, 191, 36, 0.2);
transform: translateY(-2px);
}
.mustard-accent {
border: 2px solid var(--color-accent-mustard);
transition: all 0.3s ease;
}
.mustard-border {
border-left: 3px solid transparent;
transition: all 0.3s ease;
}
.mustard-border:hover {
border-left-color: var(--color-accent-mustard);
}
.mustard-title {
transition: color 0.3s ease;
}
.mustard-border:hover .mustard-title {
color: var(--color-accent-mustard);
}
.honey-accent {
border: 2px solid var(--color-accent-honey);
transition: all 0.3s ease;
}
.honey-border {
border-left: 3px solid transparent;
transition: all 0.3s ease;
}
.honey-border:hover {
border-left-color: var(--color-accent-honey);
}
.honey-title {
transition: color 0.3s ease;
}
.honey-border:hover .honey-title {
color: var(--color-accent-honey);
}
/* ========================================== */
/* DARK THEME OVERRIDES */
/* ========================================== */
.dark .light-amber-accent,
.dark .light-amber-border,
.dark .mustard-accent,
.dark .mustard-border,
.dark .honey-accent,
.dark .honey-border {
border-color: transparent;
}
.dark .light-amber-border:hover,
.dark .mustard-border:hover,
.dark .honey-border:hover {
border-left-color: transparent;
}
.dark .light-amber-border:hover .light-amber-title,
.dark .mustard-border:hover .mustard-title,
.dark .honey-border:hover .honey-title {
color: var(--color-text);
}
.dark .yellow-tint-section {
background-color: var(--color-bg-secondary);
border: 1px solid var(--color-border);
}
.dark .yellow-tint-card {
background: var(--color-bg-secondary);
border: 1px solid var(--color-border);
}
.dark .blue-section-yellow-accent {
background: linear-gradient(135deg, #0c3318 0%, #134d24 100%);
}
/* ========================================== */
/* UTILITY CLASSES */
/* ========================================== */
.bg-color-bg {
background-color: var(--color-bg);
}
.bg-color-bg-secondary {
background-color: var(--color-bg-secondary);
}
/* ========================================== */
/* FEATURED BADGE COMPONENT */
/* ========================================== */
.featured-badge {
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
color: white;
font-weight: 600;
letter-spacing: 0.025em;
box-shadow: 0 2px 8px rgba(19, 174, 58, 0.25);
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
text-transform: uppercase;
font-size: 0.75rem;
}
.featured-badge:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(19, 174, 58, 0.35);
}
.dark .featured-badge {
background: linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-primary) 100%);
box-shadow: 0 2px 8px rgba(19, 174, 58, 0.25);
}
.dark .featured-badge:hover {
box-shadow: 0 4px 12px rgba(19, 174, 58, 0.35);
}
/* ========================================== */
/* HIGH CONTRAST COMPONENT ENHANCEMENTS */
/* ========================================== */
.high-contrast-light .card,
.high-contrast-dark .card {
border: 3px solid var(--color-border);
font-weight: 600;
}
.high-contrast-light .btn-primary,
.high-contrast-dark .btn-primary {
border: 3px solid var(--color-border);
font-weight: 700;
font-size: 1.1rem;
}
.high-contrast-light .card-title,
.high-contrast-dark .card-title {
font-weight: 700;
font-size: 1.3rem;
}
.high-contrast-light *:focus-visible,
.high-contrast-dark *:focus-visible {
outline: 4px solid var(--color-accent-gold);
outline-offset: 2px;
box-shadow: 0 0 0 2px var(--color-bg), 0 0 0 6px var(--color-accent-gold);
}
.high-contrast-light .form-label {
color: #000000 !important;
font-weight: 700 !important;
}
.high-contrast-dark .form-label {
color: #FFFFFF !important;
font-weight: 700 !important;
}
.high-contrast-light input[type="checkbox"] {
border: 3px solid #000000 !important;
background-color: #FFFFFF !important;
}
.high-contrast-dark input[type="checkbox"] {
border: 3px solid #FFFFFF !important;
background-color: #000000 !important;
accent-color: #FFFFFF !important;
}
/* ========================================== */
/* HIGH CONTRAST BUTTON VISIBILITY FIXES */
/* ========================================== */
/* High Contrast Dark Mode Button Fixes */
.high-contrast-dark .btn-primary {
background-color: #FFFFFF !important;
color: #000000 !important;
border: 3px solid #FFFFFF !important;
}
.high-contrast-dark .btn-primary:hover {
background-color: #CCCCCC !important;
color: #000000 !important;
}
.high-contrast-dark .cta-button-primary {
background-color: #FFFFFF !important;
color: #000000 !important;
border: 3px solid #FFFFFF !important;
}
.high-contrast-dark .cta-button-primary:hover {
background-color: #CCCCCC !important;
color: #000000 !important;
}
.high-contrast-dark .btn-secondary {
background-color: #000000 !important;
color: #FFFFFF !important;
border: 3px solid #FFFFFF !important;
}
.high-contrast-dark .btn-secondary:hover {
background-color: #1A1A1A !important;
color: #FFFFFF !important;
}
.high-contrast-dark .cta-button-secondary {
background-color: #000000 !important;
color: #FFFFFF !important;
border: 3px solid #FFFFFF !important;
}
.high-contrast-dark .cta-button-secondary:hover {
background-color: #1A1A1A !important;
color: #FFFFFF !important;
}
/* High Contrast Light Mode Button Fixes */
.high-contrast-light .btn-primary {
background-color: #000000 !important;
color: #FFFFFF !important;
border: 3px solid #000000 !important;
}
.high-contrast-light .btn-primary:hover {
background-color: #333333 !important;
color: #FFFFFF !important;
}
.high-contrast-light .cta-button-primary {
background-color: #000000 !important;
color: #FFFFFF !important;
border: 3px solid #000000 !important;
}
.high-contrast-light .cta-button-primary:hover {
background-color: #333333 !important;
color: #FFFFFF !important;
}
.high-contrast-light .btn-secondary {
background-color: #FFFFFF !important;
color: #000000 !important;
border: 3px solid #000000 !important;
}
.high-contrast-light .btn-secondary:hover {
background-color: #F5F5F5 !important;
color: #000000 !important;
}
.high-contrast-light .cta-button-secondary {
background-color: #FFFFFF !important;
color: #000000 !important;
border: 3px solid #000000 !important;
}
.high-contrast-light .cta-button-secondary:hover {
background-color: #F5F5F5 !important;
color: #000000 !important;
}
/* ========================================== */
/* HIGH CONTRAST CTA SECTION FIXES */
/* ========================================== */
/* High Contrast Light Mode CTA Sections */
.high-contrast-light .cta-section {
background: #FFFFFF !important;
color: #000000 !important;
border: 3px solid #000000 !important;
}
.high-contrast-light .cta-title {
color: #000000 !important;
}
.high-contrast-light .cta-description {
color: #000000 !important;
}
/* High Contrast Dark Mode CTA Sections */
.high-contrast-dark .cta-section {
background: #000000 !important;
color: #FFFFFF !important;
border: 3px solid #FFFFFF !important;
}
.high-contrast-dark .cta-title {
color: #FFFFFF !important;
}
.high-contrast-dark .cta-description {
color: #FFFFFF !important;
}
/* High Contrast Blue Section Overrides */
.high-contrast-light .blue-section-yellow-accent {
background: #FFFFFF !important;
color: #000000 !important;
border: 3px solid #000000 !important;
}
.high-contrast-dark .blue-section-yellow-accent {
background: #000000 !important;
color: #FFFFFF !important;
border: 3px solid #FFFFFF !important;
}
/* ========================================== */
/* NAVIGATION THEME SELECTOR VISIBILITY */
/* ========================================== */
/* Main navigation theme selector button visibility */
.nav-bar button[aria-label*="Theme"],
.nav-bar #theme-selector-button {
color: var(--color-text) !important;
background-color: rgba(0, 0, 0, 0.1) !important;
border: 1px solid var(--color-border) !important;
border-radius: 0.5rem !important;
}
.nav-bar button[aria-label*="Theme"]:hover,
.nav-bar #theme-selector-button:hover {
background-color: var(--color-bg-secondary) !important;
color: var(--color-primary) !important;
}
/* Scrolled navigation theme selector */
.nav-bar-scrolled button[aria-label*="Theme"],
.nav-bar-scrolled #theme-selector-button {
background-color: rgba(0, 0, 0, 0.05) !important;
border: 1px solid var(--color-border) !important;
}
/* Dark theme navigation theme selector */
.dark .nav-bar button[aria-label*="Theme"],
.dark .nav-bar #theme-selector-button {
background-color: rgba(255, 255, 255, 0.15) !important;
color: var(--color-text) !important;
}
.dark .nav-bar button[aria-label*="Theme"]:hover,
.dark .nav-bar #theme-selector-button:hover {
background-color: var(--color-bg-secondary) !important;
}
/* High contrast theme selectors in navigation */
.high-contrast-light .nav-bar button[aria-label*="Theme"],
.high-contrast-light .nav-bar #theme-selector-button {
background-color: #000000 !important;
color: #FFFFFF !important;
border: 3px solid #000000 !important;
}
.high-contrast-dark .nav-bar button[aria-label*="Theme"],
.high-contrast-dark .nav-bar #theme-selector-button {
background-color: #FFFFFF !important;
color: #000000 !important;
border: 3px solid #FFFFFF !important;
}