/* Base */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; padding: 0; font-family: 'Inter', sans-serif; font-size: 17px; background-color: #f8f9fa; color: #010101; scroll-behavior: smooth; }

/* Global font scale-up */
p, li, span, label, td, th { font-size: 1.05rem; }
h1 { font-size: clamp(2.8rem, 6vw, 5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.2rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.6rem); }
h4 { font-size: 1.15rem; }
a, button { font-size: inherit; }

/* Nav hover bg utility */
.hover\:bg-tchf-purple\/8:hover { background-color: rgba(92,49,89,0.08); }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #5c3159; border-radius: 3px; }

/* Nav scroll effect */
#navbar { background: rgba(255,255,255,0.95); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(0,0,0,0.06); }
#navbar.scrolled { box-shadow: 0 4px 24px rgba(0,0,0,0.08); }

/* Glass panel */
.glass-panel {
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,0.3);
}

/* Hero gradient overlay */
.hero-overlay {
    background: linear-gradient(135deg, rgba(248,249,250,0.97) 0%, rgba(248,249,250,0.80) 50%, rgba(248,249,250,0.60) 100%);
}

/* Program card hover */
.program-card { transition: all 0.3s ease; }
.program-card:hover { transform: translateY(-4px); }
.program-card img { transition: transform 0.5s ease; }
.program-card:hover img { transform: scale(1.05); }

/* Stat counter animation */
.stat-number { transition: opacity 0.5s ease; }

/* Testimonial fade */
.testimonial-slide { transition: opacity 0.4s ease; }

/* Form focus ring */
input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: #5c3159 !important;
    box-shadow: 0 0 0 3px rgba(92,49,89,0.1);
}

/* Btn pulse on donate */
@keyframes pulse-green {
    0%, 100% { box-shadow: 0 0 0 0 rgba(46,125,50,0.4); }
    50%       { box-shadow: 0 0 0 10px rgba(46,125,50,0); }
}
.btn-donate-pulse { animation: pulse-green 2.5s infinite; }

/* Section fade-in on scroll */
.fade-in-section { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease, transform 0.6s ease; }
.fade-in-section.visible { opacity: 1; transform: translateY(0); }

/* Impact number */
.impact-num { font-variant-numeric: tabular-nums; }

/* Badge tag */
.program-badge {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* Mobile menu transition */
#mobile-menu { transition: all 0.2s ease; }

/* Gradient text */
.gradient-text {
    background: linear-gradient(135deg, #5c3159, #2e7d32);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* CTA section */
.cta-purple { background: linear-gradient(135deg, #5c3159 0%, #3d1f3b 100%); }

/* Alert messages */
.alert-success { background: #e8f5e9; color: #2e7d32; border: 1px solid #c8e6c9; border-radius: 8px; padding: 12px 16px; font-size: 14px; }
.alert-error   { background: #ffebee; color: #c62828; border: 1px solid #ffcdd2; border-radius: 8px; padding: 12px 16px; font-size: 14px; }