/* =============================================
   NONPROFIT COMPONENTS CSS
   Common styles for all nonprofit blocks
   ============================================= */

/* =============================================
   HEADER / NAVIGATION
   ============================================= */

.header {
    background: var(--bg-primary, #ffffff);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    position: relative;
    z-index: 100;
    transition: all 0.3s ease;
}

.header.sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    animation: slideDown 0.3s ease;
}

@keyframes slideDown {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Top Bar (Optional - for phone, email, social links) */
.nonprofit-topbar {
    background: var(--bg-secondary, #f9fafb);
    border-bottom: 1px solid var(--border-color, #e5e7eb);
    padding: 8px 0;
    font-size: 0.875rem;
}

.nonprofit-topbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.topbar-contact {
    display: flex;
    gap: 24px;
    align-items: center;
}

.topbar-contact a {
    color: var(--text-secondary, #6b7280);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: color 0.3s ease;
}

.topbar-contact a:hover {
    color: var(--primary-color, #1e40af);
}

.topbar-social {
    display: flex;
    gap: 12px;
}

.topbar-social a {
    color: var(--text-secondary, #6b7280);
    font-size: 1rem;
    transition: color 0.3s ease;
}

.topbar-social a:hover {
    color: var(--primary-color, #1e40af);
}

/* Main Header */
.nonprofit-header {
    padding: 20px 0;
}

.nonprofit-header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Logo */
.site-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
}

.site-logo img {
    height: 50px;
    width: auto;
    object-fit: contain;
}

.site-logo-text {
    display: flex;
    flex-direction: column;
}

.site-logo-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    line-height: 1.2;
}

.site-logo-tagline {
    font-size: 0.875rem;
    color: var(--text-secondary, #6b7280);
}

/* Main Navigation */
.header-nav {
    display: flex;
    align-items: center;
    gap: 40px;
}

.nav-list {
    display: flex;
    align-items: center;
    gap: 32px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-list li {
    position: relative;
}

.nav-link {
    color: var(--text-color, #374151);
    text-decoration: none;
    font-weight: 500;
    font-size: 1rem;
    padding: 8px 0;
    transition: color 0.3s ease;
    display: block;
}



/* Dropdown Menu */
.nav-item.has-dropdown {
    position: relative;
}

.nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    background: white;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    border-radius: 8px;
    padding: 12px 0;
    min-width: 220px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s ease;
    z-index: 1000;
}

.nav-item.has-dropdown:hover .nav-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nav-dropdown li {
    padding: 0;
}

.nav-dropdown .nav-link {
    padding: 10px 20px;
    display: block;
}

.nav-dropdown .nav-link:hover {
    background: var(--bg-accent, #eff6ff);
}

.main-nav .nav-dropdown ul {
    
    list-style: none;
    padding: 0; 
    margin: 0;
}

/* --- Dropdown Icon CSS --- */

.nav-item.has-dropdown > .nav-link {
    position: relative;
    padding-right: 20px; 
}

.nav-item.has-dropdown > .nav-link::after {
    content: "\25BE"; /* Down-pointing caret */
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    font-size: 1.5rem;
    margin-left: 8px;
    color: inherit;
    transition: transform 0.3s ease;
}

.nav-item.has-dropdown:hover > .nav-link::after {
    transform: translateY(-50%) rotate(180deg); 
}


/* --- Active Page Border CSS --- */

.nav-link {
    position: relative; 
    padding: 8px 0 11px 0;
}

.nav-link.active::after {
    content: '';
    position: absolute;
    bottom: 0; 
    left: 0;
    width: 100%; 
    border-bottom: solid #000000 2px;
    height: 3px; 
    background-color: var(--primary-color, #1e40af); 
}

/* CTA Buttons in Header */
.header-cta {
    display: flex;
    align-items: center;
    gap: 12px;
}

.header-cta .btn {
    padding: 10px 24px;
    font-size: 0.9rem;
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
}

.mobile-menu-toggle span {
    width: 25px;
    height: 3px;
    background: var(--text-color, #374151);
    border-radius: 2px;
    transition: all 0.3s ease;
}

.mobile-menu-toggle.active span:nth-child(1) {
    transform: rotate(45deg) translate(7px, 7px);
}

.mobile-menu-toggle.active span:nth-child(2) {
    opacity: 0;
}

.mobile-menu-toggle.active span:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -7px);
}

/* Mobile Menu */
.mobile-menu {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    max-width: 400px;
    height: 100vh;
    background: white;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
    z-index: 9999;
    overflow-y: auto;
    transition: right 0.3s ease;
}

.mobile-menu.active {
    right: 0;
}

.mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    border-bottom: 1px solid var(--border-color, #e5e7eb);
}

.mobile-menu-close {
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--text-color, #374151);
    padding: 8px;
}

.mobile-menu-body {
    padding: 20px;
}

.mobile-nav-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mobile-nav-menu li {
    border-bottom: 1px solid var(--border-color, #e5e7eb);
}

.mobile-nav-menu .nav-link {
    padding: 16px 0;
    display: block;
    font-size: 1.125rem;
}

.mobile-nav-menu .has-dropdown .nav-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.mobile-dropdown-toggle {
    background: none;
    border: none;
    font-size: 1.25rem;
    cursor: pointer;
    padding: 8px;
    color: var(--text-secondary, #6b7280);
}

.mobile-nav-dropdown {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    padding-left: 16px;
}

.mobile-nav-dropdown.active {
    max-height: 500px;
}

.mobile-menu-cta {
    margin-top: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mobile-menu-cta .btn {
    width: 100%;
    justify-content: center;
}

/* Mobile Menu Overlay */
.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.mobile-menu-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* =============================================
   FOOTER
   ============================================= */

.footer {
    background: var(--heading-color, #1f2937);
    color: #f3f4f6;
    padding: 60px 0 0;
}

/* Footer Top (Main Content) */
.footer-main {
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 40px;
}

/* Footer About/Logo Section */
.footer-about {
    max-width: 350px;
}

.footer-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.footer-logo img {
    height: 50px;
    width: auto;
    filter: brightness(0) invert(1); /* Make logo white */
}

.footer-logo-text {
    font-size: 1.5rem;
    font-weight: 700;
    color: white;
}

.footer-description {
    color: #d1d5db;
    line-height: 1.7;
    margin-bottom: 24px;
    font-size: 0.95rem;
}

.footer-social {
    display: flex;
    gap: 12px;
}

.footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.1);
    color: white;
    border-radius: 50%;
    transition: all 0.3s ease;
    text-decoration: none;
}

.footer-social a:hover {
    background: var(--primary-color, #1e40af);
    transform: translateY(-3px);
}

/* Footer Columns */
.footer-column h4 {
    color: white;
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 20px;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 12px;
}

.footer-links a {
    color: #d1d5db;
    text-decoration: none;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

.footer-links a:hover {
    color: var(--accent-color, #f59e0b);
    padding-left: 4px;
}

.footer-links a i {
    font-size: 0.875rem;
    opacity: 0.7;
}

/* Footer Contact Info */
.footer-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    color: #d1d5db;
}

.footer-contact-item i {
    color: var(--accent-color, #f59e0b);
    font-size: 1.25rem;
    margin-top: 2px;
}

.footer-contact-item a {
    color: #d1d5db;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-contact-item a:hover {
    color: var(--accent-color, #f59e0b);
}



/* Footer Bottom */
.footer-bottom {
    padding: 24px 0;
    margin-top: 40px;
}

.footer-bottom-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #9ca3af;
    font-size: 0.9rem;
}

.footer-copyright {
    display: flex;
    align-items: center;
    gap: 4px;
}

.footer-bottom-links {
    display: flex;
    gap: 24px;
}

.footer-bottom-links a {
    color: #9ca3af;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-bottom-links a:hover {
    color: var(--accent-color, #f59e0b);
}

/* Trust Badges / Certifications */
.footer-badges {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 24px;
    flex-wrap: wrap;
}

.footer-badge {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 6px;
    font-size: 0.875rem;
}

.footer-badge img {
    height: 30px;
    width: auto;
}

/* =============================================
   RESPONSIVE
   ============================================= */

@media (max-width: 1024px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
    
    .footer-about {
        grid-column: 1 / -1;
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    /* Header */
    .header-topbar {
        display: none;
    }
    
    .header-main {
        padding: 16px 0;
    }
    
    .main-nav {
        display: none;
    }
    
    .mobile-menu-toggle {
        display: flex;
    }
    
    .site-logo-title {
        font-size: 1.25rem;
    }
    
    .site-logo-tagline {
        font-size: 0.75rem;
    }
    
    /* Footer */
    .footer {
        padding: 40px 0 0;
    }
    
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    
    .footer-about {
        grid-column: 1;
    }
    
    .footer-bottom-content {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }
    
    .footer-bottom-links {
        flex-wrap: wrap;
        justify-content: center;
    }
    
    
    
    .footer-badges {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .mobile-menu {
        max-width: 100%;
    }
    
    .footer-social a {
        width: 36px;
        height: 36px;
        font-size: 0.9rem;
    }
}

/* =============================================
   UTILITY CLASSES FOR HEADER/FOOTER
   ============================================= */

/* Sticky body offset */
body.header-sticky-active {
    padding-top: 80px; /* Adjust based on your header height */
}

/* Hide element on mobile */
.hide-mobile {
    display: block;
}

@media (max-width: 768px) {
    .hide-mobile {
        display: none !important;
    }
}

/* Show only on mobile */
.show-mobile {
    display: none;
}

@media (max-width: 768px) {
    .show-mobile {
        display: block !important;
    }
}


/* =============================================
   BACK TO TOP BUTTON
   ============================================= */
.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    background: var(--primary-color, #1e40af);
    color: white;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    opacity: 0;
    visibility: hidden;
    transform: translateY(100px);
    transition: all 0.3s ease;
    z-index: 999;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.back-to-top:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.2);
}

/* =============================================
   SECTION SPACING
   ============================================= */
.section {
    padding: 80px 0;
}

.section-sm {
    padding: 60px 0;
}

.section-lg {
    padding: 100px 0;
}

@media (max-width: 768px) {
    .section { padding: 60px 0; }
    .section-sm { padding: 40px 0; }
    .section-lg { padding: 80px 0; }
}

/* =============================================
   SECTION HEADINGS
   ============================================= */
.section-header {
    text-align: center;
    margin-bottom: 50px;
}

.section-subtitle {
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--accent-color, #f59e0b);
    margin-bottom: 12px;
}

.section-title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 20px;
    line-height: 1.2;
}

.section-description {
    font-size: 1.125rem;
    color: var(--text-secondary, #6b7280);
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .section-title { font-size: 2rem; }
    .section-description { font-size: 1rem; }
}

/* =============================================
   BUTTONS
   ============================================= */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 32px;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
    transition: all 0.3s ease;
    cursor: pointer;
    border: 2px solid transparent;
}

.btn-primary {
    background: var(--primary-color, #1e40af);
    color: white;
}

.btn-primary:hover {
    background: var(--primary-dark, #1e3a8a);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(30, 64, 175, 0.3);
}

.btn-secondary {
    background: var(--secondary-color, #059669);
    color: white;
}

.btn-secondary:hover {
    background: var(--secondary-dark, #047857);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(5, 150, 105, 0.3);
}

.btn-outline {
    background: transparent;
    color: var(--primary-color, #1e40af);
    border-color: var(--primary-color, #1e40af);
}

.btn-outline:hover {
    background: var(--primary-color, #1e40af);
    color: white;
}

.btn-lg {
    padding: 18px 40px;
    font-size: 1.125rem;
}

.btn-sm {
    padding: 10px 24px;
    font-size: 0.875rem;
}

/* =============================================
   CARDS
   ============================================= */
.card {
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: all 0.3s ease;
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.card-image {
    width: 100%;
    height: 250px;
    object-fit: cover;
}

.card-content {
    padding: 24px;
}

.card-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 12px;
}

.card-text {
    color: var(--text-secondary, #6b7280);
    line-height: 1.6;
    margin-bottom: 20px;
}

/* =============================================
   STATS/COUNTERS
   ============================================= */
.stats-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 32px;
}

.stat-item {
    text-align: center;
    padding: 32px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.stat-icon {
    font-size: 3rem;
    color: var(--accent-color, #f59e0b);
    margin-bottom: 16px;
}

.stat-number {
    font-size: 3rem;
    font-weight: 700;
    color: var(--primary-color, #1e40af);
    margin-bottom: 8px;
    line-height: 1;
}

.stat-label {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 8px;
}

.stat-description {
    font-size: 0.9rem;
    color: var(--text-secondary, #6b7280);
}

/* =============================================
   PROGRESS BARS (for campaigns)
   ============================================= */
.progress-bar {
    height: 10px;
    background: #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    margin: 16px 0;
}

.progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--secondary-color, #059669), var(--accent-color, #f59e0b));
    transition: width 1s ease;
}

.progress-stats {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9rem;
    color: var(--text-secondary, #6b7280);
}

.progress-amount {
    font-weight: 700;
    color: var(--secondary-color, #059669);
    font-size: 1.25rem;
}

/* =============================================
   TESTIMONIALS
   ============================================= */
.testimonial-card {
    background: white;
    padding: 32px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    position: relative;
}

.testimonial-quote {
    font-size: 1.125rem;
    line-height: 1.8;
    color: var(--text-color, #374151);
    margin-bottom: 24px;
    font-style: italic;
}

.testimonial-author {
    display: flex;
    align-items: center;
    gap: 16px;
}

.testimonial-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
}

.testimonial-info h4 {
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 4px;
}

.testimonial-info p {
    color: var(--text-secondary, #6b7280);
    font-size: 0.9rem;
}

.testimonial-stars {
    color: #fbbf24;
    font-size: 1.25rem;
    margin-bottom: 16px;
}

/* =============================================
   ACCORDION (FAQ)
   ============================================= */
.accordion-item {
    border-bottom: 1px solid #e5e7eb;
}

.accordion-header {
    padding: 20px 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    font-size: 1.125rem;
    transition: color 0.3s ease;
}

.accordion-header:hover {
    color: var(--primary-color, #1e40af);
}

.accordion-icon {
    transition: transform 0.3s ease;
    color: var(--accent-color, #f59e0b);
    font-size: 1.25rem;
}

.accordion-item.active .accordion-icon {
    transform: rotate(180deg);
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.accordion-item.active .accordion-content {
    max-height: 1000px;
}

.accordion-body {
    padding: 0 0 20px 0;
    color: var(--text-secondary, #6b7280);
    line-height: 1.8;
}

/* =============================================
   FORMS
   ============================================= */
.form-group {
    margin-bottom: 20px;
}

.form-label {
    display: block;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 8px;
}

.form-input,
.form-textarea,
.form-select {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.form-input:focus,
.form-textarea:focus,
.form-select:focus {
    outline: none;
    border-color: var(--primary-color, #1e40af);
    box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1);
}

.form-textarea {
    min-height: 120px;
    resize: vertical;
}

.form-error {
    color: #dc2626;
    font-size: 0.875rem;
    margin-top: 4px;
}

/* =============================================
   BADGES
   ============================================= */
.badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 6px;
}

.badge-success {
    background: #ecfdf5;
    color: #065f46;
}

.badge-warning {
    background: #fffbeb;
    color: #92400e;
}

.badge-danger {
    background: #fef2f2;
    color: #991b1b;
}

.badge-info {
    background: #eff6ff;
    color: #1e40af;
}

/* =============================================
   IMPACT STORY CARDS
   ============================================= */
.impact-story {
    background: white;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    height: 100%;
}

.impact-story-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
}

.impact-story-photo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
}

.impact-story-text {
    line-height: 1.8;
    color: var(--text-color, #374151);
    margin-bottom: 20px;
}

.impact-story-program {
    color: var(--accent-color, #f59e0b);
    font-weight: 600;
    font-size: 0.9rem;
}

/* =============================================
   EVENT CARDS
   ============================================= */
.event-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
}

.event-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.event-date {
    background: var(--accent-color, #f59e0b);
    color: white;
    padding: 16px;
    text-align: center;
}

.event-day {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.event-month {
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
}

.event-content {
    padding: 24px;
}

.event-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 12px;
}

.event-meta {
    display: flex;
    flex-direction: column;
    gap: 8px;
    color: var(--text-secondary, #6b7280);
    font-size: 0.9rem;
    margin-bottom: 16px;
}

.event-meta i {
    color: var(--accent-color, #f59e0b);
    width: 20px;
}

/* =============================================
   UTILITY CLASSES
   ============================================= */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2rem; }

.mb-1 { margin-bottom: 0.5rem; }
.mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; }
.mb-4 { margin-bottom: 2rem; }

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px;
}

.col {
    flex: 1;
    padding: 0 15px;
}

@media (max-width: 768px) {
    .row { margin: 0; }
    .col { padding: 0; flex: 100%; margin-bottom: 20px; }
}

/* ============================================ */
/* NONPROFIT HERO SECTION                      */
/* ============================================ */

.nonprofit-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    overflow: hidden;
}

.nonprofit-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, 
        var(--hero-gradient-start, rgba(30, 64, 175, 0.9)), 
        var(--hero-gradient-end, rgba(5, 150, 105, 0.85))
    );
}

.nonprofit-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--hero-overlay-bg, rgba(0, 0, 0, 0.3));
    z-index: 1;
}

.nonprofit-hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    color: var(--hero-text-color, white);
    padding: 2rem;
}

.hero-badge {
    display: inline-block;
    padding: 0.5rem 1.25rem;
    background: rgba(255, 255, 255, 0.2);
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--border-radius-full, 50px);
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 1.5rem;
    backdrop-filter: blur(10px);
}

.nonprofit-hero-title {
    font-family: var(--heading-font, 'Montserrat', sans-serif);
    font-size: clamp(2.5rem, 7vw, 4.5rem);
    font-weight: 800;
    margin-bottom: 1.5rem;
    color: var(--hero-title-color, white);
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
    line-height: 1.1;
}

.nonprofit-hero-mission {
    font-family: var(--accent-font, 'Lora', serif);
    font-size: 1.5rem;
    font-weight: 500;
    color: var(--hero-subtitle-color, #fbbf24);
    margin-bottom: 1rem;
    font-style: italic;
}

.nonprofit-hero-description {
    font-size: 1.25rem;
    margin-bottom: 2.5rem;
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
    color: var(--hero-description-color, rgba(255, 255, 255, 0.95));
    line-height: 1.7;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.nonprofit-hero-cta {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 3rem;
}

.nonprofit-hero-cta .btn {
    padding: 1.125rem 2.5rem;
    font-size: 1.1rem;
    border-radius: var(--border-radius-full, 50px);
    font-weight: 600;
    transition: all var(--transition-normal, 0.3s ease);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}

.nonprofit-hero-cta .donate-btn {
    background: var(--hero-btn-donate-bg, #dc2626);
    color: var(--hero-btn-donate-color, white);
    border: 2px solid var(--hero-btn-donate-bg, #dc2626);
    box-shadow: 0 4px 20px rgba(220, 38, 38, 0.4);
}

.nonprofit-hero-cta .donate-btn:hover {
    background: var(--hero-btn-donate-hover, #b91c1c);
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(220, 38, 38, 0.5);
}

.nonprofit-hero-cta .btn-outline-light {
    background: transparent;
    border: 2px solid white;
    color: white;
}

.nonprofit-hero-cta .btn-outline-light:hover {
    background: white;
    color: var(--primary-color, #1e40af);
    transform: translateY(-3px);
}

/* Hero Impact Preview */
.hero-impact-preview {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem;
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius-lg, 20px);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.impact-item {
    text-align: center;
}

.impact-number {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--accent-color, #fbbf24);
    margin-bottom: 0.5rem;
    font-family: var(--heading-font, 'Montserrat', sans-serif);
}

.impact-label {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
}

/* Scroll Arrow */
.nonprofit-hero-scroll {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    font-size: 2rem;
    color: var(--hero-scroll-color, white);
    animation: bounce 2s infinite;
    z-index: 10;
    cursor: pointer;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateX(-50%) translateY(0);
    }
    40% {
        transform: translateX(-50%) translateY(-10px);
    }
    60% {
        transform: translateX(-50%) translateY(-5px);
    }
}

/* Responsive */
@media (max-width: 768px) {
    .nonprofit-hero-title {
        font-size: 2.25rem;
    }
    
    .nonprofit-hero-mission {
        font-size: 1.25rem;
    }
    
    .nonprofit-hero-description {
        font-size: 1.125rem;
    }
    
    .nonprofit-hero-cta {
        flex-direction: column;
        gap: 1rem;
    }
    
    .nonprofit-hero-cta .btn {
        width: 100%;
        justify-content: center;
    }
    
    .hero-impact-preview {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .impact-number {
        font-size: 2rem;
    }
}

/* ===================
   2. IMPACT STATS
   =================== */
.impact-stats-section {
    padding: 5rem 0;
}

.impact-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 3rem;
    margin-top: 3rem;
}

.stat-card {
    text-align: center;
    padding: 2rem;
    background: var(--card-bg, white);
    border-radius: var(--border-radius-md, 12px);
    box-shadow: var(--shadow-md);
    transition: all var(--transition-normal);
}

.stat-card:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-lg);
}

.stat-icon {
    font-size: 3rem;
    color: var(--primary-color, #1e40af);
    margin-bottom: 1rem;
}

.stat-number {
    font-size: 3.5rem;
    font-weight: 800;
    color: var(--stat-number-color, #1e40af);
    font-family: var(--heading-font);
    margin-bottom: 0.5rem;
}

.stat-label {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--text-color);
    margin-bottom: 0.5rem;
}

.stat-description {
    font-size: 0.95rem;
    color: var(--text-muted);
}

/* ===================
   3. PROGRAMS GRID
   =================== */
.programs-grid-section {
    padding: 5rem 0;
}

.programs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2.5rem;
    margin-top: 3rem;
}

.program-card {
    background: var(--card-bg);
    border-radius: var(--border-radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: all var(--transition-normal);
}

.program-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.program-image {
    width: 100%;
    height: 220px;
    overflow: hidden;
}

.program-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
}

.program-card:hover .program-image img {
    transform: scale(1.1);
}

.program-content {
    padding: 2rem;
}

.program-icon {
    width: 60px;
    height: 60px;
    background: var(--primary-color);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    margin-bottom: 1.5rem;
}

.program-title {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: var(--heading-color);
}

.program-description {
    color: var(--text-muted);
    margin-bottom: 1.5rem;
    line-height: 1.7;
}

.program-link {
    color: var(--primary-color);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: gap var(--transition-fast);
}

.program-link:hover {
    gap: 1rem;
}

/* ===================
   4. DONATION TIERS
   =================== */
.donation-tiers-section {
    padding: 5rem 0;
    background: var(--background-light);
}

.donation-tiers-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.donation-tier {
    background: white;
    border: 2px solid var(--tier-border);
    border-radius: var(--border-radius-lg);
    padding: 2.5rem 2rem;
    text-align: center;
    transition: all var(--transition-normal);
    position: relative;
}

.donation-tier.featured {
    border-color: var(--primary-color);
    background: var(--tier-featured-bg);
    transform: scale(1.05);
    box-shadow: var(--shadow-lg);
}

.donation-tier:hover {
    border-color: var(--primary-color);
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.tier-badge {
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--accent-color);
    color: white;
    padding: 0.5rem 1.5rem;
    border-radius: var(--border-radius-full);
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
}

.tier-amount {
    font-size: 3.5rem;
    font-weight: 800;
    color: var(--primary-color);
    margin-bottom: 1rem;
    font-family: var(--heading-font);
}

.tier-frequency {
    color: var(--text-muted);
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
}

.tier-impact {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 1.5rem;
}

.tier-benefits {
    list-style: none;
    padding: 0;
    margin: 1.5rem 0;
    text-align: left;
}

.tier-benefits li {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    align-items: start;
    gap: 0.75rem;
}

.tier-benefits i {
    color: var(--secondary-color);
    margin-top: 0.25rem;
}

/* ===================
   5. IMPACT STORIES
   =================== */
.impact-stories-section {
    padding: 5rem 0;
}

.stories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 2.5rem;
    margin-top: 3rem;
}

.story-card {
    background: white;
    border-radius: var(--border-radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: all var(--transition-normal);
}

.story-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-5px);
}

.story-image {
    width: 100%;
    height: 280px;
    overflow: hidden;
    position: relative;
}

.story-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.story-category {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: var(--primary-color);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: var(--border-radius-full);
    font-size: 0.875rem;
    font-weight: 600;
}

.story-content {
    padding: 2rem;
}

.story-title {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: var(--heading-color);
}

.story-excerpt {
    color: var(--text-muted);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.story-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border-color);
}

.story-location {
    color: var(--text-muted);
    font-size: 0.95rem;
}

/* ===================
   6. VOLUNTEER CTA
   =================== */
.volunteer-cta-section {
    padding: 5rem 0;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    color: white;
    position: relative;
    overflow: hidden;
}

.volunteer-cta-section::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 50%;
    height: 100%;
    background: url('pattern.svg') repeat;
    opacity: 0.1;
}

.volunteer-content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.volunteer-content h2 {
    color: white;
    margin-bottom: 1.5rem;
}

.volunteer-content p {
    font-size: 1.25rem;
    margin-bottom: 2.5rem;
    opacity: 0.95;
}

.volunteer-cta-buttons {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* ===================
   7. TEAM NONPROFIT
   =================== */
.team-nonprofit-section {
    padding: 5rem 0;
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2.5rem;
    margin-top: 3rem;
}

.team-member {
        text-align: center;
    padding: 40px 24px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.team-member:hover {
    transform: translateY(-10px);
}

.team-photo {
    width: 200px;
    height: 200px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 1.5rem;
    border: 4px solid var(--primary-color);
    box-shadow: var(--shadow-md);
}

.team-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.team-name {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
    color: var(--heading-color);
}

.team-role {
    color: var(--primary-color);
    font-weight: 600;
    margin-bottom: 1rem;
}

.team-bio {
    color: var(--text-muted);
    line-height: 1.7;
    margin-bottom: 1rem;
}

.team-social {
    display: flex;
    gap: 1rem;
    justify-content: center;
}

.team-social a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--background-light);
    color: var(--primary-color);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-fast);
}

.team-social a:hover {
    background: var(--primary-color);
    color: white;
    transform: translateY(-3px);
}

/* ===================
   8. MISSION VISION
   =================== */
.mission-vision-section {
    padding: 5rem 0;
    background: var(--background-light);
}

.mission-vision-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 3rem;
    margin-top: 3rem;
}

.mission-box {
    background: white;
    padding: 3rem;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-md);
    text-align: center;
}

.mission-icon {
    width: 80px;
    height: 80px;
    background: var(--primary-color);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    margin: 0 auto 1.5rem;
}

.mission-title {
    font-size: 1.75rem;
    margin-bottom: 1rem;
    color: var(--primary-color);
}

.mission-text {
    color: var(--text-color);
    line-height: 1.8;
    font-size: 1.125rem;
}

/* ===================
   9. TESTIMONIALS
   =================== */
.testimonials-impact-section {
    padding: 5rem 0;
}

.testimonials-slider {
    max-width: 900px;
    margin: 3rem auto 0;
}

.testimonial-item {
    background: var(--testimonial-bg);
    padding: 3rem;
    border-radius: var(--border-radius-lg);
    border-left: 4px solid var(--primary-color);
    position: relative;
}

.quote-icon {
    font-size: 4rem;
    color: var(--primary-color);
    opacity: 0.2;
    position: absolute;
    top: 1rem;
    left: 2rem;
}

.testimonial-content {
    position: relative;
    z-index: 2;
}

.testimonial-text {
    font-size: 1.25rem;
    line-height: 1.8;
    color: var(--text-color);
    margin-bottom: 2rem;
    font-style: italic;
}

.testimonial-author {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.author-photo {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    overflow: hidden;
}

.author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.author-info h4 {
    margin: 0 0 0.25rem;
    color: var(--heading-color);
}

.author-info p {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.95rem;
}


/* =============================================
   IMPACT STORIES SECTION
   ============================================= */
.impact-stories-section {
    padding: 80px 0;
    background: var(--bg-secondary, #f9fafb);
}

.stories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 32px;
    margin-top: 48px;
}

.story-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.story-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.story-image {
    position: relative;
    width: 100%;
    height: 280px;
    overflow: hidden;
}

.story-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.story-card:hover .story-image img {
    transform: scale(1.1);
}

.story-category {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 6px 16px;
    background: var(--accent-color, #f59e0b);
    color: white;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
}

.story-content {
    padding: 28px;
}

.story-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 16px;
}

.story-excerpt {
    color: var(--text-secondary, #6b7280);
    line-height: 1.7;
    margin-bottom: 20px;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.story-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 20px;
    border-top: 1px solid var(--border-color, #e5e7eb);
}

.story-location {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-secondary, #6b7280);
    font-size: 0.9rem;
}

.story-location i {
    color: var(--accent-color, #f59e0b);
}

.btn-link {
    color: var(--primary-color, #1e40af);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: gap 0.3s ease;
}

.btn-link:hover {
    gap: 10px;
}

.btn-link::after {
    content: '→';
}

/* =============================================
   IMPACT STATS SECTION (Enhanced)
   ============================================= */
.impact-stats-section {
    padding: 80px 0;
    background: var(--bg-primary, #ffffff);
}

.impact-stats-section.section-light {
    background: var(--bg-secondary, #f9fafb);
}

.impact-stats-section.section-dark {
    background: var(--heading-color, #1f2937);
    color: white;
}

.impact-stats-section.section-dark .section-title,
.impact-stats-section.section-dark .stat-label {
    color: white;
}

.impact-stats-section.section-dark .section-subtitle {
    color: var(--accent-color, #f59e0b);
}

.impact-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 32px;
    margin-top: 48px;
}

.stat-card {
    text-align: center;
    padding: 40px 24px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.impact-stats-section.section-dark .stat-card {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
}

.stat-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.stat-icon {
    font-size: 3rem;
    color: var(--accent-color, #f59e0b);
    margin-bottom: 20px;
}

.impact-stats-section.section-dark .stat-icon {
    color: var(--accent-color, #f59e0b);
}

.stat-number {
    font-size: 3rem;
    font-weight: 700;
    color: var(--primary-color, #1e40af);
    margin-bottom: 12px;
    line-height: 1;
}

.impact-stats-section.section-dark .stat-number {
    color: white;
}

.stat-label {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 8px;
}

.stat-description {
    font-size: 0.9rem;
    color: var(--text-secondary, #6b7280);
    margin-top: 12px;
}

.impact-stats-section.section-dark .stat-description {
    color: rgba(255, 255, 255, 0.8);
}

/* =============================================
   PROJECTS/CAMPAIGNS SECTION
   ============================================= */
.projects-section {
    padding: 80px 0;
}

.projects-section.section-light {
    background: var(--bg-secondary, #f9fafb);
}

.projects-section.section-dark {
    background: var(--heading-color, #1f2937);
    color: white;
}

.projects-filters {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin: 32px 0 48px;
    flex-wrap: wrap;
}

.filter-btn {
    padding: 10px 24px;
    background: white;
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 24px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    color: var(--text-color, #374151);
}

.filter-btn.active,
.filter-btn:hover {
    background: var(--primary-color, #1e40af);
    color: white;
    border-color: var(--primary-color, #1e40af);
}

.projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 32px;
}

.project-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.project-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.project-image {
    position: relative;
    width: 100%;
    height: 240px;
    overflow: hidden;
}

.project-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.project-card:hover .project-image img {
    transform: scale(1.1);
}

.project-status {
    position: absolute;
    top: 16px;
    right: 16px;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
    backdrop-filter: blur(10px);
}

.project-status.urgent {
    background: rgba(239, 68, 68, 0.95);
    color: white;
}

.project-status.active {
    background: rgba(245, 158, 11, 0.95);
    color: white;
}

.project-status.completed {
    background: rgba(16, 185, 129, 0.95);
    color: white;
}

.project-category {
    position: absolute;
    bottom: 16px;
    left: 16px;
    padding: 6px 16px;
    background: rgba(30, 64, 175, 0.95);
    color: white;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
}

.project-content {
    padding: 28px;
}

.project-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 12px;
}

.project-location {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-secondary, #6b7280);
    font-size: 0.9rem;
    margin-bottom: 16px;
}

.project-location i {
    color: var(--accent-color, #f59e0b);
}

.project-description {
    color: var(--text-secondary, #6b7280);
    line-height: 1.7;
    margin-bottom: 24px;
}

.project-progress {
    margin-bottom: 24px;
}

.progress-stats {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
}

.progress-stats .stat {
    text-align: center;
}

.progress-stats .stat-label {
    font-size: 0.875rem;
    color: var(--text-secondary, #6b7280);
    margin-bottom: 4px;
    display: block;
}

.progress-stats .stat-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--primary-color, #1e40af);
    display: block;
}

.progress-bar-container {
    margin-bottom: 12px;
}

.progress-bar {
    height: 12px;
    background: #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--secondary-color, #059669), var(--accent-color, #f59e0b));
    transition: width 1s ease;
    border-radius: 12px;
}

.progress-remaining {
    text-align: center;
    font-size: 0.9rem;
    color: var(--text-secondary, #6b7280);
    font-weight: 600;
}

.project-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--border-color, #e5e7eb);
}

.meta-item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-secondary, #6b7280);
    font-size: 0.9rem;
}

.meta-item i {
    color: var(--accent-color, #f59e0b);
}

.project-actions {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}

.project-actions .btn {
    flex: 1;
}

.project-share {
    text-align: center;
}

.share-btn {
    background: none;
    border: none;
    color: var(--primary-color, #1e40af);
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: gap 0.3s ease;
}

.share-btn:hover {
    gap: 12px;
}

.projects-cta {
    margin-top: 48px;
    text-align: center;
}

/* =============================================
   NEWS GRID SECTION (Optimized from inline)
   ============================================= */
.news-grid-section {
    padding: 80px 0;
}

.news-grid-section.section-light {
    background: var(--bg-secondary, #f9fafb);
}

.news-grid-section.section-dark {
    background: var(--heading-color, #1f2937);
    color: white;
}

.news-categories {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin: 32px 0 48px;
    flex-wrap: wrap;
}

.category-btn {
    padding: 10px 24px;
    background: white;
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 24px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.3s ease;
    color: var(--text-color, #374151);
}

.category-btn.active,
.category-btn:hover {
    background: var(--primary-color, #1e40af);
    color: white;
    border-color: var(--primary-color, #1e40af);
}

.news-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 32px;
}

.news-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
}

.news-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.news-image {
    width: 100%;
    height: 240px;
    overflow: hidden;
    position: relative;
}

.news-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.news-card:hover .news-image img {
    transform: scale(1.1);
}

.news-badge {
    position: absolute;
    top: 16px;
    right: 16px;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 8px;
    backdrop-filter: blur(10px);
}

.news-badge.featured {
    background: rgba(245, 158, 11, 0.95);
    color: white;
}

.news-content {
    padding: 28px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.news-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 8px;
}

.news-category {
    display: inline-block;
    padding: 6px 14px;
    background: var(--primary-color, #1e40af);
    color: white;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}

.news-category:hover {
    background: var(--primary-dark, #1e3a8a);
}

.news-date {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--text-secondary, #6b7280);
    font-size: 0.9rem;
}

.news-title {
    font-size: 1.5rem;
    margin-bottom: 16px;
    line-height: 1.4;
}

.news-title a {
    color: var(--heading-color, #1f2937);
    text-decoration: none;
    transition: color 0.3s ease;
}

.news-title a:hover {
    color: var(--primary-color, #1e40af);
}

.news-excerpt {
    color: var(--text-secondary, #6b7280);
    line-height: 1.7;
    margin-bottom: 20px;
    flex: 1;
}

.news-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 20px;
    border-top: 1px solid var(--border-color, #e5e7eb);
}

.news-author {
    display: flex;
    align-items: center;
    gap: 12px;
}

.author-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}

.author-avatar-placeholder {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--primary-color, #1e40af);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.news-author span {
    font-size: 0.9rem;
    color: var(--text-secondary, #6b7280);
}

.read-more {
    color: var(--primary-color, #1e40af);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: gap 0.3s ease;
}

.read-more:hover {
    gap: 12px;
}

.no-posts {
    text-align: center;
    padding: 64px 32px;
    color: var(--text-secondary, #6b7280);
}

.no-posts i {
    font-size: 4rem;
    margin-bottom: 16px;
    opacity: 0.3;
}

.news-cta {
    margin-top: 48px;
    text-align: center;
}

/* =============================================
   RESPONSIVE BREAKPOINTS
   ============================================= */
@media (max-width: 1024px) {
    .stories-grid,
    .projects-grid,
    .news-grid {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    }
}

@media (max-width: 768px) {
    .impact-stories-section,
    .impact-stats-section,
    .projects-section,
    .news-grid-section {
        padding: 60px 0;
    }
    
    .stories-grid,
    .impact-stats-grid,
    .projects-grid,
    .news-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    
    .news-meta,
    .news-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    
    .project-actions {
        flex-direction: column;
    }
    
    .progress-stats {
        flex-wrap: wrap;
    }
}

@media (max-width: 480px) {
    .stat-number {
        font-size: 2.5rem;
    }
    
    .stat-icon {
        font-size: 2.5rem;
    }
    
    .story-title,
    .project-title,
    .news-title {
        font-size: 1.25rem;
    }
}
/* =============================================
   EVENTS SECTION
   ============================================= */
.events-section {
    padding: 80px 0;
}

.events-section.section-light {
    background: var(--bg-secondary, #f9fafb);
}

.events-section.section-dark {
    background: var(--heading-color, #1f2937);
    color: white;
}

.events-view-toggle {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin: 32px 0 48px;
}

.view-btn {
    padding: 10px 24px;
    background: white;
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
    color: var(--text-color, #374151);
}

.view-btn.active,
.view-btn:hover {
    background: var(--primary-color, #1e40af);
    color: white;
    border-color: var(--primary-color, #1e40af);
}

.events-container.events-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 32px;
}

.events-container.events-list .event-card {
    display: flex;
    flex-direction: row;
}

.events-container.events-list .event-image {
    width: 300px;
    flex-shrink: 0;
}

.event-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.event-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.event-image {
    position: relative;
    width: 100%;
    height: 220px;
    overflow: hidden;
}

.event-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.event-card:hover .event-image img {
    transform: scale(1.1);
}

.event-badge {
    position: absolute;
    top: 16px;
    right: 16px;
    padding: 6px 16px;
    background: var(--accent-color, #f59e0b);
    color: white;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
}

.event-content {
    padding: 24px;
    display: flex;
    gap: 20px;
}

.event-date-badge {
    flex-shrink: 0;
    width: 70px;
    height: 70px;
    background: var(--primary-color, #1e40af);
    color: white;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.date-day {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.date-month {
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    margin-top: 4px;
}

.event-details {
    flex: 1;
}

.event-category {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    background: var(--bg-accent, #eff6ff);
    color: var(--primary-color, #1e40af);
    border-radius: 16px;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 12px;
}

.event-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 12px;
}

.event-description {
    color: var(--text-secondary, #6b7280);
    line-height: 1.7;
    margin-bottom: 16px;
}

.event-meta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
}

.event-meta-item {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--text-secondary, #6b7280);
    font-size: 0.95rem;
}

.event-meta-item i {
    color: var(--accent-color, #f59e0b);
    width: 16px;
    text-align: center;
}

.event-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 16px;
    border-top: 1px solid var(--border-color, #e5e7eb);
}

.event-price {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--secondary-color, #059669);
}

.events-cta {
    margin-top: 48px;
    text-align: center;
}

/* =============================================
   DONATION FORM SECTION
   ============================================= */
.donation-form-section {
    padding: 80px 0;
}

.donation-form-section.section-primary {
    background: linear-gradient(135deg, var(--primary-color, #1e40af) 0%, var(--primary-dark, #1e3a8a) 100%);
    color: white;
}

.donation-form-section.section-light {
    background: var(--bg-secondary, #f9fafb);
}

.donation-form-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 48px;
    background: white;
    border-radius: 16px;
    padding: 48px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.donation-title {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 16px;
}

.donation-description {
    font-size: 1.125rem;
    color: var(--text-secondary, #6b7280);
    margin-bottom: 32px;
    line-height: 1.7;
}

.donation-form h3 {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 16px;
}

.donation-amounts {
    margin-bottom: 32px;
}

.amount-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

.amount-btn {
    padding: 16px;
    background: var(--bg-secondary, #f9fafb);
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-color, #374151);
    cursor: pointer;
    transition: all 0.3s ease;
}

.amount-btn:hover,
.amount-btn.active {
    background: var(--primary-color, #1e40af);
    color: white;
    border-color: var(--primary-color, #1e40af);
    transform: translateY(-2px);
}

.custom-amount {
    margin-top: 20px;
}

.custom-amount label {
    display: block;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 8px;
}

.amount-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.amount-currency {
    position: absolute;
    left: 16px;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-secondary, #6b7280);
    pointer-events: none;
}

.amount-input-wrapper input {
    width: 100%;
    padding: 16px 16px 16px 40px;
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    font-size: 1.25rem;
    font-weight: 700;
    transition: all 0.3s ease;
}

.amount-input-wrapper input:focus {
    outline: none;
    border-color: var(--primary-color, #1e40af);
    box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1);
}

.donation-frequency {
    margin-bottom: 32px;
}

.frequency-options {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.frequency-option {
    position: relative;
    cursor: pointer;
}

.frequency-option input {
    position: absolute;
    opacity: 0;
}

.frequency-option span {
    display: block;
    padding: 14px;
    text-align: center;
    background: var(--bg-secondary, #f9fafb);
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.frequency-option input:checked + span {
    background: var(--primary-color, #1e40af);
    color: white;
    border-color: var(--primary-color, #1e40af);
}

.donation-impact {
    background: var(--bg-accent, #eff6ff);
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 32px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.donation-impact i {
    font-size: 2rem;
    color: var(--accent-color, #f59e0b);
}

.donation-impact p {
    margin: 0;
    font-weight: 600;
    color: var(--primary-color, #1e40af);
}

.donor-info {
    margin-bottom: 32px;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.form-group {
    margin-bottom: 16px;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"] {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.form-group input:focus {
    outline: none;
    border-color: var(--primary-color, #1e40af);
    box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1);
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.checkbox-label input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
}

.btn-donate {
    width: 100%;
    padding: 18px;
    background: var(--secondary-color, #059669);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 1.125rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: all 0.3s ease;
}

.btn-donate:hover {
    background: var(--secondary-dark, #047857);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(5, 150, 105, 0.3);
}

.donation-security {
    text-align: center;
    color: var(--text-secondary, #6b7280);
    font-size: 0.9rem;
    margin-top: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.donation-sidebar {
    background: var(--bg-secondary, #f9fafb);
    padding: 32px;
    border-radius: 12px;
}

.donation-sidebar h3 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 24px;
}

.impact-example {
    padding: 20px;
    background: white;
    border-radius: 8px;
    margin-bottom: 16px;
    border-left: 4px solid var(--accent-color, #f59e0b);
}

.impact-amount {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--primary-color, #1e40af);
    margin-bottom: 8px;
}

.impact-text {
    color: var(--text-secondary, #6b7280);
    line-height: 1.6;
}

.sidebar-note {
    margin-top: 24px;
    padding: 16px;
    background: var(--bg-accent, #eff6ff);
    border-radius: 8px;
    display: flex;
    gap: 12px;
}

.sidebar-note i {
    color: var(--primary-color, #1e40af);
    font-size: 1.25rem;
    flex-shrink: 0;
}

.sidebar-note p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--text-secondary, #6b7280);
}

/* =============================================
   PROGRAMS GRID SECTION
   ============================================= */
.programs-grid-section {
    padding: 80px 0;
}

.programs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 32px;
    margin-top: 48px;
}

.program-card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.program-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.program-image {
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.program-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.program-card:hover .program-image img {
    transform: scale(1.1);
}

.program-content {
    padding: 32px;
    text-align: center;
}

.program-icon {
    width: 80px;
    height: 80px;
    margin: -56px auto 20px;
    background: var(--primary-color, #1e40af);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    box-shadow: 0 4px 12px rgba(30, 64, 175, 0.3);
}

.program-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 16px;
}

.program-description {
    color: var(--text-secondary, #6b7280);
    line-height: 1.7;
    margin-bottom: 20px;
}

.program-link {
    color: var(--primary-color, #1e40af);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: gap 0.3s ease;
}

.program-link:hover {
    gap: 12px;
}

/* =============================================
   FAQ SECTION
   ============================================= */
.faq-section {
    padding: 80px 0;
}

.faq-section.section-light {
    background: var(--bg-secondary, #f9fafb);
}

.faq-container {
    max-width: 900px;
    margin: 0 auto;
}

.faq-item {
    background: white;
    border-radius: 12px;
    margin-bottom: 16px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    transition: all 0.3s ease;
}

.faq-item:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.faq-question {
    width: 100%;
    padding: 24px 28px;
    background: none;
    border: none;
    text-align: left;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    transition: color 0.3s ease;
}

.faq-question:hover {
    color: var(--primary-color, #1e40af);
}

.faq-icon {
    font-size: 1rem;
    color: var(--accent-color, #f59e0b);
    transition: transform 0.3s ease;
    flex-shrink: 0;
}

.faq-item.active .faq-icon {
    transform: rotate(180deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
}

.faq-item.active .faq-answer {
    max-height: 500px;
    padding: 0 28px 24px;
}

.faq-answer p {
    color: var(--text-secondary, #6b7280);
    line-height: 1.8;
    margin: 0;
}

.faq-cta {
    margin-top: 48px;
    padding: 32px;
    background: var(--bg-accent, #eff6ff);
    border-radius: 12px;
}

.faq-cta p {
    font-size: 1.125rem;
    color: var(--text-color, #374151);
    margin-bottom: 20px;
}

/* =============================================
   DONATION TIERS SECTION
   ============================================= */
.donation-tiers-section {
    padding: 80px 0;
    background: var(--bg-secondary, #f9fafb);
}

.donation-tiers-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 32px;
    margin-top: 48px;
}

.donation-tier {
    background: white;
    border-radius: 12px;
    padding: 40px 32px;
    text-align: center;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    position: relative;
}

.donation-tier:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.donation-tier.featured {
    border: 3px solid var(--accent-color, #f59e0b);
    transform: scale(1.05);
}

.donation-tier.featured::before {
    content: 'Most Popular';
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    padding: 6px 20px;
    background: var(--accent-color, #f59e0b);
    color: white;
    font-size: 0.875rem;
    font-weight: 700;
    border-radius: 20px;
}

.tier-badge {
    display: inline-block;
    padding: 6px 16px;
    background: var(--bg-accent, #eff6ff);
    color: var(--primary-color, #1e40af);
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 20px;
}

.tier-amount {
    font-size: 3.5rem;
    font-weight: 700;
    color: var(--primary-color, #1e40af);
    margin-bottom: 8px;
}

.tier-frequency {
    color: var(--text-secondary, #6b7280);
    font-size: 0.95rem;
    margin-bottom: 20px;
}

.tier-impact {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 24px;
    line-height: 1.5;
}

.tier-benefits {
    list-style: none;
    padding: 0;
    margin: 0 0 32px;
    text-align: left;
}

.tier-benefits li {
    padding: 10px 0;
    color: var(--text-secondary, #6b7280);
    display: flex;
    align-items: center;
    gap: 12px;
}

.tier-benefits i {
    color: var(--secondary-color, #059669);
    font-size: 1rem;
}

.donation-tier .btn {
    width: 100%;
}

/* =============================================
   VOLUNTEER CTA SECTION
   ============================================= */
.volunteer-cta-section {
    padding: 100px 0;
    position: relative;
    overflow: hidden;
}

.volunteer-cta-section.section-gradient {
    background: linear-gradient(135deg, var(--primary-color, #1e40af) 0%, var(--secondary-color, #059669) 100%);
    color: white;
}

.volunteer-cta-section.section-primary {
    background: var(--primary-color, #1e40af);
    color: white;
}

.volunteer-cta-section.section-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.volunteer-cta-section.section-image::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(30, 64, 175, 0.9) 0%, rgba(5, 150, 105, 0.9) 100%);
}

.volunteer-content {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.volunteer-content h2 {
    font-size: 3rem;
    font-weight: 700;
    color: white;
    margin-bottom: 24px;
    line-height: 1.2;
}

.volunteer-content p {
    font-size: 1.25rem;
    color: rgba(255, 255, 255, 0.95);
    margin-bottom: 40px;
    line-height: 1.7;
}

.volunteer-cta-buttons {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

.volunteer-cta-buttons .btn {
    padding: 18px 40px;
    font-size: 1.125rem;
}

/* =============================================
   RESPONSIVE - ALL NEW BLOCKS
   ============================================= */
@media (max-width: 1024px) {
    .donation-form-wrapper {
        grid-template-columns: 1fr;
    }
    
    .donation-sidebar {
        order: -1;
    }
}

@media (max-width: 768px) {
    .events-container.events-list .event-card {
        flex-direction: column;
    }
    
    .events-container.events-list .event-image {
        width: 100%;
    }
    
    .event-content {
        flex-direction: column;
    }
    
    .event-date-badge {
        width: 100%;
        flex-direction: row;
        height: auto;
        padding: 12px;
        justify-content: center;
    }
    
    .date-day {
        font-size: 1.5rem;
    }
    
    .date-month {
        margin-top: 0;
        margin-left: 8px;
    }
    
    .donation-form-wrapper {
        padding: 32px 24px;
    }
    
    .amount-buttons {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .frequency-options {
        grid-template-columns: 1fr;
    }
    
    .form-row {
        grid-template-columns: 1fr;
    }
    
    .volunteer-content h2 {
        font-size: 2rem;
    }
    
    .volunteer-content p {
        font-size: 1.125rem;
    }
    
    .tier-amount {
        font-size: 2.5rem;
    }
}

@media (max-width: 480px) {
    .events-view-toggle {
        flex-direction: column;
    }
    
    .view-btn {
        width: 100%;
        justify-content: center;
    }
    
    .amount-buttons {
        grid-template-columns: 1fr;
    }
    
    .volunteer-cta-buttons {
        flex-direction: column;
    }
    
    .volunteer-cta-buttons .btn {
        width: 100%;
    }
}


.page-section {
  padding: 5rem 0; /* Or use var(--section-padding, 5rem 0); */
}
.page-section.bg-light {
    background-color: var(--background-light);
}
.page-section.section-dark { /* Match class from _testimonials_slider.php */
    background-color: var(--heading-color);
    color: #f3f4f6; /* Light text on dark bg */
}
.page-section .section-title { /* General section title */
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--heading-color);
  margin-bottom: 3rem;
  font-family: var(--heading-font);
  text-align: center; /* Common for these blocks */
}
.page-section.section-dark .section-title {
    color: white;
}


/* =============================================
   1. GALLERIES / PORTFOLIO GRID
   (_galleries_grid.php, _portfolio_grid.php)
   ============================================= */

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem; /* Or use var(--grid-gap, 2rem); */
}

/* Uses .card from existing components.css */
.portfolio-item { /* Specific styles for portfolio/gallery links */
  position: relative;
  overflow: hidden; /* Ensures overlay stays contained */
  display: block; /* Make the link a block */
  text-decoration: none;
}

.portfolio-item img {
  width: 100%;
  height: 250px; /* Adjust height as needed */
  object-fit: cover;
  display: block; /* Remove extra space below image */
  transition: transform 0.5s ease;
}

.portfolio-item:hover img {
    transform: scale(1.1); /* Zoom effect on hover */
}

.portfolio-item-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%);
  padding: 3rem 1.5rem 1.5rem; /* More padding at bottom */
  opacity: 0; /* Hidden by default */
  transition: opacity var(--transition-normal);
}

.portfolio-item:hover .portfolio-item-overlay {
  opacity: 1; /* Show overlay on hover */
}

.portfolio-item-overlay h3 {
  color: white;
  font-size: 1.5rem; /* Or use var(--h3-font-size); */
  margin: 0;
  font-family: var(--heading-font);
  transform: translateY(15px); /* Start slightly lower */
  transition: transform var(--transition-normal);
}

.portfolio-item:hover .portfolio-item-overlay h3 {
    transform: translateY(0); /* Animate title up */
}


/* =============================================
   2. PARTNERS GRID (_partners_grid.php)
   ============================================= */

.partners-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 3rem; /* Or use var(--grid-gap-lg, 3rem); */
  margin-top: 3rem;
}

.partner-logo {
  display: block;
  max-width: 180px; /* Adjust size as needed */
  transition: var(--transition-normal);
  filter: grayscale(100%);
  opacity: 0.7;
}

.partner-logo:hover {
  filter: grayscale(0%);
  opacity: 1;
  transform: scale(1.1); /* Slight zoom on hover */
}

.partner-logo img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* =============================================
   3. SERVICES GRID (_services.php)
   ============================================= */

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2.5rem; /* Or use var(--grid-gap-md, 2.5rem); */
}

/* Uses .card from existing components.css */
.service-card {
  display: flex;
  flex-direction: column; /* Ensure button stays at bottom */
  text-align: center; /* Center content within card */
}

.service-card-image {
  width: 100%;
  height: 200px; /* Adjust as needed */
  overflow: hidden;
}

.service-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-card-content {
  padding: 2rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1; /* Make content area grow */
  align-items: center; /* Center items horizontally */
}

.service-card-content h3 {
  font-size: 1.5rem; /* Or use var(--h3-font-size); */
  margin-top: 0;
  margin-bottom: 1rem;
  color: var(--heading-color);
}

.service-card-content div { /* Target the summary div */
  color: var(--text-muted);
  line-height: 1.7;
  margin-bottom: 1.5rem;
  flex-grow: 1; /* Push button to bottom */
}

.service-card .btn {
    margin-top: auto; /* Aligns button to bottom */
}

/* =============================================
   4. SLIDESHOW (_slideshow.php) - Requires SwiperJS
   ============================================= */
/* Remember to link SwiperJS base CSS in your HTML */
.slideshow {
  width: 100%;
  height: 70vh; /* Adjust height */
  min-height: 500px;
  position: relative;
}

.swiper { /* Swiper container */
  width: 100%;
  height: 100%;
}

.slide {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center; /* Center content by default */
}

.slide-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* Adjust overlay darkness */
  z-index: 1;
}

.slide-content {
  position: relative;
  z-index: 2;
  color: white;
  text-align: center; /* Or adjust alignment based on slide settings */
  max-width: 800px;
  padding: 2rem; /* Add padding for smaller screens */
}

.slide-content h1 {
  font-size: clamp(2.5rem, 6vw, 3.5rem); /* Responsive font size */
  font-weight: 700;
  margin-bottom: 1rem;
  color: white; /* Ensure text is visible */
  font-family: var(--heading-font);
  text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

.slide-content p {
  font-size: clamp(1.1rem, 3vw, 1.5rem); /* Responsive font size */
  margin-bottom: 2rem;
  opacity: 0.9;
  text-shadow: 0 1px 3px rgba(0,0,0,0.5);
  line-height: 1.6;
}

.slide-content .btn {
    /* Uses existing .btn styles */
}

/* Swiper pagination/navigation styling */
.swiper-pagination-bullet {
  background: rgba(255, 255, 255, 0.7);
  opacity: 1;
  width: 10px;
  height: 10px;
}

.swiper-pagination-bullet-active {
  background: white;
}

.swiper-button-prev,
.swiper-button-next {
  color: white;
  opacity: 0.5;
  transition: opacity var(--transition-fast);
  --swiper-navigation-size: 30px; /* Adjust size if needed */
}
.swiper-button-prev:hover,
.swiper-button-next:hover {
    opacity: 1;
}
@media (max-width: 768px) {
    .swiper-button-prev,
    .swiper-button-next {
        display: none; /* Hide arrows on small screens */
    }
}




/* =============================================
   6. TESTIMONIALS SLIDER (_testimonials_slider.php)
   ============================================= */
/* Note: These styles are for the grid layout in the PHP file.
   If you implement a JS slider, you'll need different styles. */
.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem; /* Or use var(--grid-gap, 2rem); */
  max-width: 1100px; /* Limit width */
  margin: 3rem auto 0; /* Center grid */
}

.testimonial-card { /* Different from .testimonial-item in components.css */
  background: var(--card-bg);
  padding: 2.5rem;
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow-md);
  border-left: 5px solid var(--primary-color); /* Accent line */
  transition: var(--transition-normal);
}
.page-section.section-dark .testimonial-card {
    background: rgba(255, 255, 255, 0.1); /* Lighter card on dark bg */
    color: #f3f4f6; /* Light text */
    border-left-color: var(--accent-color);
}
.page-section.section-dark .testimonial-card blockquote::before {
    color: var(--accent-color);
}
.page-section.section-dark .testimonial-card cite strong {
    color: white;
}
.page-section.section-dark .testimonial-card cite {
    color: var(--text-light);
}


.testimonial-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.testimonial-card blockquote {
  font-size: 1.125rem;
  line-height: 1.8;
  color: var(--text-color); /* Use text color from theme */
  margin: 0 0 1.5rem;
  font-style: italic;
  position: relative;
  padding-left: 2rem;
}

.testimonial-card blockquote::before {
    content: '\\201C'; /* Left double quotation mark */
    font-family: var(--heading-font); /* Match heading font */
    font-size: 4rem;
    color: var(--primary-color);
    opacity: 0.15;
    position: absolute;
    left: -0.5rem;
    top: -1rem;
    line-height: 1;
}


.testimonial-card cite {
  font-style: normal;
  display: block;
  text-align: right;
  color: var(--text-muted);
}

.testimonial-card cite strong {
  display: block;
  color: var(--heading-color);
  margin-bottom: 0.25rem;
}

/* =============================================
   7. TEXT WITH IMAGE (_text_with_image.php)
   ============================================= */

.text-image-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem; /* Or use var(--grid-gap-lg, 4rem); */
  align-items: center;
}

/* Class applied when image_align is 'left' */
.text-image-grid.left .image-content {
  order: -1; /* Image comes first visually */
}

.text-content {
  line-height: 1.8;
  color: var(--text-color);
  font-size: 1.05rem; /* Slightly larger text */
}
/* Basic styles for content within the WYSIWYG/textarea */
.text-content h2, .text-content h3 {
    font-family: var(--heading-font);
    color: var(--heading-color);
    margin-bottom: 1rem;
    margin-top: 1.5rem;
}
.text-content p {
    margin-bottom: 1rem;
    color: var(--text-muted); /* Softer paragraph text */
}
.text-content ul {
    list-style: none;
    padding-left: 0;
    margin: 1.5rem 0;
}
.text-content li {
    padding-left: 1.75rem; /* More indent */
    position: relative;
    margin-bottom: 0.75rem;
}
.text-content li::before {
    content: ''; /* Use a custom bullet or FontAwesome */
    position: absolute;
    left: 0;
    top: 0.4em; /* Adjust vertical position */
    width: 8px;
    height: 8px;
    background-color: var(--secondary-color); /* Theme color bullet */
    border-radius: 50%;
    /* Example using FontAwesome checkmark:
    content: '\\f00c';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    color: var(--secondary-color);
    */
}
.text-content a {
    color: var(--primary-color);
    text-decoration: underline;
    font-weight: 600;
}
.text-content a:hover {
    color: var(--primary-dark);
}


.image-content img {
  max-width: 100%;
  height: auto;
  display: block; /* Remove extra space below image */
  border-radius: var(--border-radius-lg); /* Larger radius */
  box-shadow: var(--shadow-lg); /* More pronounced shadow */
}

/* Responsive adjustments */
@media (max-width: 992px) { /* Adjust breakpoint if needed */
  .text-image-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .text-image-grid.left .image-content {
    order: 0; /* Reset order for stacking */
  }
}

/* =============================================
   ADDITIONAL NONPROFIT COMPONENTS CSS
   ============================================= */

/* ===== General Grid/List Shared Styles ===== */
.program-grid,
.campaign-grid,
.opportunity-list, /* Can be grid too, adjust name if needed */
.story-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 32px;
}

.program-item,
.campaign-item,
.opportunity-item,
.story-item {
    /* Uses .card styles from components.css by default */
    display: flex; /* Ensure consistency for items */
    flex-direction: column;
    text-decoration: none; /* If using <a> tag */
}

.program-item img,
.campaign-item img,
.opportunity-item img,
.story-item img {
    width: 100%;
    height: 220px; /* Adjust height as needed */
    object-fit: cover;
    display: block;
}

.program-item-overlay, /* Example if using overlay like portfolio */
.story-item-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
    padding: 40px 20px 20px;
    color: white;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.program-item:hover .program-item-overlay,
.story-item:hover .story-item-overlay {
    opacity: 1;
}
.program-item-overlay h3,
.story-item-overlay h3 {
    margin: 0;
    color: white;
}
.story-item-overlay h4 { /* For person name in stories */
    margin: 5px 0 0;
    font-size: 0.9em;
    font-weight: normal;
    opacity: 0.8;
    color: white;
}


/* ===== Campaigns Specific ===== */
.campaign-content {
    padding: 24px;
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Make content fill card height */
}
.campaign-content h3 {
    margin-top: 0;
    margin-bottom: 12px;
}
.campaign-content h3 a {
    color: var(--heading-color);
    text-decoration: none;
    transition: color 0.3s ease;
}
.campaign-content h3 a:hover {
    color: var(--primary-color);
}
.campaign-progress {
    margin-top: auto; /* Push progress to bottom */
    padding-top: 16px;
    border-top: 1px solid var(--border-color);
}
.campaign-progress p {
    font-size: 0.9rem;
    color: var(--text-secondary);
    margin: 8px 0;
}
.campaign-progress strong {
    color: var(--secondary-color); /* Match progress bar */
    font-size: 1.1em;
}
.campaign-progress .btn {
    margin-top: 16px;
}
/* Progress Bar (Copied & adapted from components.css if needed standalone) */
.campaign-progress .progress-bar {
    height: 10px;
    background: #e5e7eb;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 10px;
}
.campaign-progress .progress-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--secondary-color, #059669), var(--accent-color, #f59e0b));
    transition: width 1s ease;
    border-radius: 10px;
}

/* Campaign Show Page Progress */
.campaign-progress-show {
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border-color);
}
.campaign-progress-show .progress-bar {
    height: 12px;
}
.campaign-progress-show p {
    font-size: 1rem;
    margin: 10px 0;
    color: var(--text-secondary);
}
.campaign-progress-show strong {
     color: var(--secondary-color);
     font-size: 1.25rem;
}

/* ===== Programs/Stories/Events Shared Detail ===== */
.article-layout-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 40px;
    padding: 40px 0;
}
.main-article-content h1 {
    margin-top: 0;
    margin-bottom: 24px;
    font-size: 2.5rem;
}
.article-featured-image {
    width: 100%;
    max-height: 450px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 32px;
    margin-top: 32px;
}
.article-content {
    line-height: 1.8;
    color: var(--text-color);
    text-align: justify;
}
.article-content h2, .main-article-content h3 {
    margin-top: 32px;
    margin-bottom: 16px;
}
.article-sidebar .sidebar-widget {
    background: var(--bg-secondary);
    padding: 24px;
    border-radius: 8px;
    margin-bottom: 32px;
}
.article-sidebar h3 {
    margin-top: 0;
    margin-bottom: 16px;
    font-size: 1.25rem;
    border-bottom: 2px solid var(--accent-color);
    padding-bottom: 8px;
}
.sidebar-nav-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}
.sidebar-nav-menu li a {
    display: block;
    padding: 10px 0;
    color: var(--text-secondary);
    text-decoration: none;
    border-bottom: 1px dashed var(--border-color);
    transition: color 0.3s ease;
}
.sidebar-nav-menu li:last-child a {
    border-bottom: none;
}
.sidebar-nav-menu li a:hover,
.sidebar-nav-menu li.active a {
    color: var(--primary-color);
    font-weight: 600;
}

/* Meta Info (Programs, Events, Stories) */
.program-meta,
.opportunity-meta,
.story-person,
.event-meta { /* Added event-meta */
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px dashed var(--border-color);
    font-size: 0.95rem;
    color: var(--text-secondary);
}
.meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.meta-item i { /* Assuming icons might be added */
    color: var(--accent-color);
}

/* Story Specific */
.story-quote {
    border-left: 4px solid var(--accent-color);
    padding-left: 24px;
    margin: 32px 0;
    font-size: 1.25rem;
    font-style: italic;
    color: var(--heading-color);
}
.story-quote footer {
    margin-top: 12px;
    font-size: 1rem;
    font-style: normal;
    color: var(--text-secondary);
}
.before-after-images { margin: 32px 0; }
.before-after-images h3 { margin-bottom: 16px; }
.before-after-images figure { margin: 0; text-align: center; flex: 1; }
.before-after-images img { max-width: 100%; height: auto; border-radius: 4px; margin-bottom: 8px; }
.before-after-images figcaption { font-size: 0.9rem; color: var(--text-secondary); }
.impact-list { list-style: disc; padding-left: 20px; margin: 16px 0; }

/* ===== Volunteer Opportunities ===== */
.opportunity-list .opportunity-item {
    /* Uses .card styles */
    margin-bottom: 24px; /* If using a list layout */
}
.opportunity-content { padding: 24px; }
.opportunity-meta { /* Reuse meta style */
     margin-top: 16px;
     padding-top: 0;
     border-bottom: none;
}
#apply-section h2 { margin-top: 0; }

/* ===== Financials ===== */
.year-selector { margin-bottom: 32px; }
.financial-summary {
    background: var(--bg-secondary);
    padding: 32px;
    border-radius: 8px;
    margin-bottom: 32px;
}
.financial-summary h2, .financial-summary h3 { margin-top: 0; margin-bottom: 16px; }
.summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
    font-size: 1.1rem;
}
.summary-grid strong { color: var(--heading-color); }
.chart-container {
    background: white;
    padding: 20px;
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
    /* Add specific chart styling here */
    min-height: 200px; /* Placeholder */
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ccc; /* Placeholder text color */
}
.reports-list ul { list-style: none; padding: 0; }
.reports-list li {
    padding: 12px 0;
    border-bottom: 1px solid var(--border-color);
}
.reports-list li:last-child { border-bottom: none; }
.reports-list a { font-weight: 600; }
.financial-trends table {
    width: 100%;
    margin-top: 20px;
    border-collapse: collapse;
}
.financial-trends th, .financial-trends td {
    padding: 10px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}
.financial-trends th { font-weight: 600; background: var(--bg-secondary); }

/* ===== Contact Form ===== */
.contact-form-container { max-width: 700px; margin: 0 auto 40px; }
.contact-info { text-align: center; color: var(--text-secondary); }

/* ===== Admin General ===== */
.admin-header {
    background: var(--heading-color);
    color: white;
    padding: 30px 0;
    margin-bottom: 32px;
}
.admin-header h1 { color: white; margin: 0; }
.admin-actions { margin-top: 10px; }
.admin-table-container table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
.admin-table-container th,
.admin-table-container td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}
.admin-table-container th {
    background: var(--bg-secondary);
    font-weight: 600;
}
.admin-table-container tbody tr:hover {
    background: var(--bg-accent);
}
.admin-table-container .btn-sm { padding: 6px 12px; font-size: 0.8rem; }
.admin-form-container {
    max-width: 900px;
    margin: 0 auto;
    background: white;
    padding: 32px;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.admin-form-container h2,
.admin-form-container h3,
.admin-form-container h4 {
    margin-top: 30px;
    margin-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 8px;
}
.admin-form-container h4 { font-size: 1.1em; }
.admin-form-container .form-group { margin-bottom: 16px; }
.admin-form-container label { display: block; margin-bottom: 6px; font-weight: 600; }
.admin-form-container input[type="text"],
.admin-form-container input[type="email"],
.admin-form-container input[type="url"],
.admin-form-container input[type="tel"],
.admin-form-container input[type="number"],
.admin-form-container input[type="date"],
.admin-form-container textarea,
.admin-form-container select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border-dark);
    border-radius: 4px;
    font-size: 0.95rem;
}
.admin-form-container textarea { min-height: 100px; }
.admin-form-container input[type="file"] { border: none; padding-left: 0; }
.admin-form-container .checkbox-group label { display: inline-block; margin-left: 8px; font-weight: normal; }
.admin-form-container .form-actions { margin-top: 32px; display: flex; gap: 12px; }
.admin-form-container .alert {
    padding: 15px;
    margin-bottom: 20px;
    border: 1px solid transparent;
    border-radius: 4px;
}
.admin-form-container .alert-danger {
    color: #a94442;
    background-color: #f2dede;
    border-color: #ebccd1;
}
.admin-form-container .alert ul { margin: 5px 0 0 20px; padding: 0; }
.admin-form-container small { color: var(--text-secondary); font-size: 0.85em; margin-top: 4px; display: block;}
.sub-form {
    padding: 20px;
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    margin-bottom: 24px;
}

/* Specific Admin View Sections */
.beneficiary-list ul,
.donation-list ul, /* Assuming list view for donations too */
.applications-list ul {
    list-style: none;
    padding: 0;
}
.beneficiary-list li,
.donation-list li,
.applications-list li {
    padding: 10px 0;
    border-bottom: 1px dashed var(--border-color);
}
.donation-list table,
.applications-list table { /* Use table for donations/apps in edit views */
    width: 100%;
    margin-top: 16px;
    font-size: 0.9em;
}
.donation-list th, .donation-list td,
.applications-list th, .applications-list td {
    padding: 8px;
    border-bottom: 1px solid var(--border-color);
}
.donation-list th,
.applications-list th {
     background: var(--bg-accent);
}

.admin-view-container .message-details,
.admin-view-container .application-details {
    background: var(--bg-secondary);
    padding: 24px;
    border-radius: 8px;
    margin-bottom: 24px;
    line-height: 1.7;
}
.admin-view-container .message-details p,
.admin-view-container .application-details p { margin: 0 0 10px; }
.admin-view-container .message-body,
.admin-view-container .admin-notes {
     background: white; padding: 15px; border: 1px solid var(--border-color); border-radius: 4px; white-space: pre-wrap; word-wrap: break-word;
}
.admin-view-container hr { border: none; border-top: 1px solid var(--border-color); margin: 24px 0; }

/* Responsive adjustments for admin */
@media (max-width: 768px) {
    .admin-header .container { flex-direction: column; align-items: flex-start; }
    .admin-table-container th,
    .admin-table-container td { padding: 8px 10px; font-size: 0.9rem; }
    /* Consider stacking table data on small screens if needed */
    .admin-form-container { padding: 20px; }
    .article-layout-grid { grid-template-columns: 1fr; }
    .article-sidebar { margin-top: 32px; }
}

/* =============================================
   PROJECTS SECTION STYLES
   ============================================= */

.projects-filters {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin: 32px 0 48px;
    flex-wrap: wrap;
}

.filter-btn {
    padding: 10px 24px;
    background: white;
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 24px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    color: var(--text-color, #374151);
    text-decoration: none; /* Added for <a> tags */
}

.filter-btn.active,
.filter-btn:hover {
    background: var(--primary-color, #1e40af);
    color: white;
    border-color: var(--primary-color, #1e40af);
}

.projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 32px;
}

.project-card {
    /* Uses .card styles */
    display: flex;
    flex-direction: column;
}

.project-image {
    position: relative;
    width: 100%;
    height: 240px;
    overflow: hidden;
}

.project-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.project-card:hover .project-image img {
    transform: scale(1.1);
}

.project-status {
    position: absolute;
    top: 16px;
    right: 16px;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    display: inline-flex; /* Changed from flex */
    align-items: center;
    gap: 6px;
    backdrop-filter: blur(5px); /* Adjusted blur */
    color: white; /* Default color */
}

/* Status specific colors */
.project-status.active { background: rgba(245, 158, 11, 0.9); } /* Amber */
.project-status.completed { background: rgba(16, 185, 129, 0.9); } /* Green */
.project-status.draft { background: rgba(107, 114, 128, 0.9); color: #fff; } /* Gray */
.project-status.cancelled { background: rgba(239, 68, 68, 0.9); } /* Red */

.project-category {
    position: absolute;
    bottom: 16px;
    left: 16px;
    padding: 6px 16px;
    background: rgba(30, 64, 175, 0.9); /* Primary color semi-transparent */
    color: white;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
}

.project-content {
    padding: 28px;
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Make content fill card height */
}

.project-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 12px;
}
.project-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}
.project-title a:hover {
    color: var(--primary-color);
}


.project-location {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-secondary, #6b7280);
    font-size: 0.9rem;
    margin-bottom: 16px;
}

.project-location i {
    color: var(--accent-color, #f59e0b);
    width: 16px; /* Added width */
    text-align: center; /* Added alignment */
}

.project-description {
    color: var(--text-secondary, #6b7280);
    line-height: 1.7;
    margin-bottom: 24px;
    flex-grow: 1; /* Pushes progress/actions down */
}

.project-progress {
    margin-bottom: 24px;
    margin-top: auto; /* Push to bottom */
    padding-top: 16px; /* Space from description */
    border-top: 1px solid var(--border-color); /* Separator */
}

.progress-stats {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
    flex-wrap: wrap; /* Allow wrapping on small screens */
}

.progress-stats .stat {
    text-align: center;
    flex: 1; /* Distribute space */
    min-width: 80px; /* Prevent too much squishing */
}

.progress-stats .stat-label {
    font-size: 0.875rem;
    color: var(--text-secondary, #6b7280);
    margin-bottom: 4px;
    display: block;
}

.progress-stats .stat-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--primary-color, #1e40af);
    display: block;
}

.progress-bar-container {
    margin-bottom: 12px;
}

.progress-bar { /* Reusing from components.css */
    height: 12px;
    background: #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
}

.progress-fill { /* Reusing from components.css */
    height: 100%;
    background: linear-gradient(90deg, var(--secondary-color, #059669), var(--accent-color, #f59e0b));
    transition: width 1s ease;
    border-radius: 12px;
}

.project-actions {
    display: flex;
    gap: 12px;
    margin-top: 16px; /* Space above buttons */
}

.project-actions .btn {
    flex: 1; /* Make buttons equal width */
}

/* Project Show Page Specific */
.project-progress-show { /* Reuse campaign style */
    margin: 24px 0;
    padding: 24px;
    background: var(--bg-accent);
    border-radius: 8px;
}
.project-progress-show h3 {
    margin-top: 0;
    margin-bottom: 16px;
    font-size: 1.5rem;
}

.project-updates-section {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--border-color);
}
.project-updates-section h2 {
    margin-bottom: 24px;
}
.update-list {
    list-style: none;
    padding: 0;
}
.update-list li {
    padding: 20px 0;
    border-bottom: 1px dashed var(--border-color);
}
.update-list li:last-child {
    border-bottom: none;
}
.update-list h4 {
    margin: 0 0 8px 0;
    font-size: 1.25rem;
}
.update-list h4 small {
    font-size: 0.8em;
    color: var(--text-secondary);
    font-weight: normal;
    margin-left: 8px;
}
.update-list p {
    margin: 0;
    color: var(--text-color);
    line-height: 1.7;
}
.update-list img {
    max-width: 100%; /* Ensure image fits */
    height: auto;
    margin-top: 10px;
    border-radius: 4px;
    max-height: 250px; /* Limit image height */
}

.image-gallery { /* Basic gallery style */
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px;
    margin: 24px 0;
}
.image-gallery img {
    width: 100%;
    height: 100px;
    object-fit: cover;
    border-radius: 4px;
    cursor: pointer;
    transition: opacity 0.3s ease;
}
.image-gallery img:hover {
    opacity: 0.8;
}

/* Sidebar Donate Widget */
.donate-widget {
    background: var(--primary-color);
    color: white;
    text-align: center;
}
.donate-widget h3 {
    color: white;
    border-bottom-color: rgba(255,255,255,0.3);
}
.donate-widget p {
    color: rgba(255,255,255,0.9);
    margin-bottom: 20px;
}
.donate-widget .btn-secondary {
    background: var(--accent-color); /* Or another contrasting color */
    border: none;
}
.donate-widget .btn-secondary:hover {
    background: var(--accent-dark);
}


/* =============================================
   DONATION FORM SECTION STYLES
   ============================================= */

.donation-form-section {
    padding: 60px 0; /* Adjusted padding */
}

.donation-form-section.section-primary {
    background: linear-gradient(135deg, var(--primary-color, #1e40af) 0%, var(--primary-dark, #1e3a8a) 100%);
    color: white;
}
.donation-form-section.section-primary .donation-form-wrapper {
    background: none; /* Remove white background */
    box-shadow: none;
    padding: 0; /* Remove padding */
    color: white;
}
.donation-form-section.section-primary .donation-title,
.donation-form-section.section-primary .donation-form h3,
.donation-form-section.section-primary .custom-amount label,
.donation-form-section.section-primary .donor-info h3,
.donation-form-section.section-primary .payment-method h3 {
    color: white;
}
.donation-form-section.section-primary .donation-description,
.donation-form-section.section-primary .amount-currency,
.donation-form-section.section-primary .checkbox-label,
.donation-form-section.section-primary .donation-security {
    color: rgba(255,255,255,0.85);
}
.donation-form-section.section-primary .amount-btn,
.donation-form-section.section-primary .frequency-option span {
    background: rgba(255,255,255,0.1);
    border-color: rgba(255,255,255,0.3);
    color: white;
}
.donation-form-section.section-primary .amount-btn:hover,
.donation-form-section.section-primary .amount-btn.active,
.donation-form-section.section-primary .frequency-option input:checked + span {
    background: white;
    color: var(--primary-color);
    border-color: white;
}
.donation-form-section.section-primary .amount-input-wrapper input,
.donation-form-section.section-primary .form-group input,
.donation-form-section.section-primary .form-group textarea,
.donation-form-section.section-primary .form-group select {
    background: rgba(255,255,255,0.1);
    border-color: rgba(255,255,255,0.3);
    color: white;
}
.donation-form-section.section-primary input::placeholder,
.donation-form-section.section-primary textarea::placeholder {
    color: rgba(255,255,255,0.6);
}
.donation-form-section.section-primary input:focus,
.donation-form-section.section-primary textarea:focus,
.donation-form-section.section-primary select:focus {
    border-color: white;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2);
    background: rgba(255,255,255,0.15);
}
.donation-form-section.section-primary .donation-impact {
    background: rgba(255, 255, 255, 0.15);
}
.donation-form-section.section-primary .donation-impact p {
    color: var(--accent-light); /* Lighter accent for contrast */
}
.donation-form-section.section-primary .donation-impact i {
    color: var(--accent-light);
}

.donation-form-section.section-light {
    background: var(--bg-secondary, #f9fafb);
}

.donation-form-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 48px;
    background: white;
    border-radius: 16px;
    padding: 40px; /* Adjusted padding */
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); /* Adjusted shadow */
}

.donation-title {
    font-size: 2rem; /* Adjusted size */
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin-bottom: 12px; /* Adjusted margin */
}

.donation-description {
    font-size: 1.05rem; /* Adjusted size */
    color: var(--text-secondary, #6b7280);
    margin-bottom: 28px; /* Adjusted margin */
    line-height: 1.7;
}

.donation-form h3 {
    font-size: 1.15rem; /* Adjusted size */
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 16px;
    padding-bottom: 8px; /* Added padding */
    border-bottom: 1px solid var(--border-color); /* Added border */
}

.donation-amounts {
    margin-bottom: 28px; /* Adjusted margin */
}
.amount-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 16px; /* Adjusted margin */
}
.amount-btn {
    padding: 14px; /* Adjusted padding */
    background: var(--bg-secondary, #f9fafb);
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    font-size: 1.1rem; /* Adjusted size */
    font-weight: 600; /* Adjusted weight */
    color: var(--text-color, #374151);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center; /* Ensure centered */
}
.amount-btn:hover,
.amount-btn.active {
    background: var(--primary-color, #1e40af);
    color: white;
    border-color: var(--primary-color, #1e40af);
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(30, 64, 175, 0.2); /* Added subtle shadow */
}

.custom-amount {
    margin-top: 16px; /* Adjusted margin */
}
.custom-amount label {
    display: block;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 8px;
    font-size: 0.9rem; /* Smaller label */
}
.amount-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}
.amount-currency {
    position: absolute;
    left: 16px;
    font-size: 1.25rem; /* Adjusted size */
    font-weight: 700;
    color: var(--text-secondary, #6b7280);
    pointer-events: none;
}
.amount-input-wrapper input {
    width: 100%;
    padding: 14px 16px 14px 40px; /* Adjusted padding */
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    font-size: 1.1rem; /* Adjusted size */
    font-weight: 600; /* Adjusted weight */
    transition: all 0.3s ease;
}
.amount-input-wrapper input:focus {
    outline: none;
    border-color: var(--primary-color, #1e40af);
    box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1);
}

.donation-frequency {
    margin-bottom: 28px; /* Adjusted margin */
}
.frequency-options {
    display: grid;
    grid-template-columns: 1fr 1fr; /* Adjusted for two options */
    gap: 12px;
}
.frequency-option {
    position: relative;
    cursor: pointer;
}
.frequency-option input { /* Hide radio visually */
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.frequency-option span {
    display: block;
    padding: 12px; /* Adjusted padding */
    text-align: center;
    background: var(--bg-secondary, #f9fafb);
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
    font-size: 0.95rem; /* Adjusted size */
}
.frequency-option input:checked + span {
    background: var(--primary-color, #1e40af);
    color: white;
    border-color: var(--primary-color, #1e40af);
    box-shadow: 0 4px 10px rgba(30, 64, 175, 0.15); /* Added subtle shadow */
}

.donation-impact {
    background: var(--bg-accent, #eff6ff);
    padding: 16px; /* Adjusted padding */
    border-radius: 8px;
    margin-bottom: 28px; /* Adjusted margin */
    display: flex;
    align-items: center;
    gap: 12px;
}
.donation-impact i {
    font-size: 1.75rem; /* Adjusted size */
    color: var(--accent-color, #f59e0b);
    flex-shrink: 0; /* Prevent icon shrinking */
}
.donation-impact p {
    margin: 0;
    font-weight: 600;
    color: var(--primary-color, #1e40af);
    font-size: 0.95rem; /* Adjusted size */
    line-height: 1.5; /* Added line height */
}

.donor-info {
    margin-bottom: 28px; /* Adjusted margin */
}
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px; /* Add margin below rows */
}
.form-group {
    margin-bottom: 16px; /* Consistent margin */
}
.form-group label { /* Reuse from components.css */
    display: block;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 8px;
    font-size: 0.9rem; /* Smaller labels */
}
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group textarea,
.form-group select { /* Reuse from components.css */
    width: 100%;
    padding: 12px 16px;
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    font-size: 1rem;
    transition: all 0.3s ease;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    outline: none;
    border-color: var(--primary-color, #1e40af);
    box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1);
}
.form-group textarea { min-height: 80px; } /* Slightly smaller textarea */

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-weight: normal; /* Normal weight for checkbox labels */
    font-size: 0.95rem;
    color: var(--text-secondary);
}
.checkbox-label input[type="checkbox"] {
    width: 18px; /* Slightly smaller checkbox */
    height: 18px;
    cursor: pointer;
    accent-color: var(--primary-color); /* Style checkbox color */
}

.payment-method { margin-bottom: 28px; }
.payment-method label { display: block; margin-bottom: 10px; } /* Stack radio buttons */

.btn-donate { /* Reuse from components.css if structure matches */
    width: 100%;
    padding: 16px; /* Adjusted padding */
    background: var(--secondary-color, #059669);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 1.1rem; /* Adjusted size */
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: all 0.3s ease;
}
.btn-donate:hover {
    background: var(--secondary-dark, #047857);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(5, 150, 105, 0.3);
}

.donation-security {
    text-align: center;
    color: var(--text-secondary, #6b7280);
    font-size: 0.85rem; /* Adjusted size */
    margin-top: 20px; /* Increased margin */
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.donation-security i { color: var(--secondary-color); } /* Match button */

.donation-sidebar {
    background: var(--bg-secondary, #f9fafb);
    padding: 32px;
    border-radius: 12px;
}
.donation-sidebar h3 {
    font-size: 1.35rem; /* Adjusted size */
    font-weight: 700;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--border-color); /* Added separator */
    padding-bottom: 12px; /* Added padding */
}
.impact-example {
    padding: 16px; /* Adjusted padding */
    background: white;
    border-radius: 8px;
    margin-bottom: 16px;
    border-left: 4px solid var(--accent-color, #f59e0b);
    box-shadow: 0 1px 4px rgba(0,0,0,0.05); /* Added subtle shadow */
}
.impact-amount {
    font-size: 1.5rem; /* Adjusted size */
    font-weight: 700;
    color: var(--primary-color, #1e40af);
    margin-bottom: 8px;
}
.impact-text {
    color: var(--text-secondary, #6b7280);
    line-height: 1.6;
    font-size: 0.95rem; /* Adjusted size */
}
.sidebar-note {
    margin-top: 24px;
    padding: 16px;
    background: var(--bg-accent, #eff6ff);
    border-radius: 8px;
    display: flex;
    gap: 12px;
    align-items: flex-start; /* Align icon top */
}
.sidebar-note i {
    color: var(--primary-color, #1e40af);
    font-size: 1.1rem; /* Adjusted size */
    flex-shrink: 0;
    margin-top: 3px; /* Align icon better */
}
.sidebar-note p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--text-secondary, #6b7280);
    line-height: 1.6; /* Added line height */
}


/* Responsive Adjustments for Donation Form */
@media (max-width: 1024px) {
    .donation-form-wrapper {
        grid-template-columns: 1fr;
    }
    .donation-sidebar {
        order: -1; /* Move sidebar to top */
        margin-bottom: 32px;
    }
}
@media (max-width: 768px) {
    .donation-form-wrapper {
        padding: 32px 24px;
    }
    .amount-buttons {
        grid-template-columns: repeat(2, 1fr);
    }
    .frequency-options {
        grid-template-columns: 1fr; /* Stack frequency options */
    }
    .form-row {
        grid-template-columns: 1fr; /* Stack form inputs */
    }
}
@media (max-width: 480px) {
     .amount-buttons {
        grid-template-columns: 1fr; /* Stack amount buttons */
    }
    .donation-title { font-size: 1.75rem; }
    .impact-amount { font-size: 1.25rem; }
    .btn-donate { font-size: 1rem; padding: 14px; }
}

/* Thank You Page */
.fa-check-circle { /* Style the checkmark icon */
    display: block; /* Center it properly */
    margin-left: auto;
    margin-right: auto;
}

/* =============================================
   LAYOUT & SPACING IMPROVEMENTS
   ============================================= */


/* Page Header */
.page-header {
    background: var(--bg-secondary, #f9fafb);
    padding: 60px 0;
    text-align: center;
    border-bottom: 1px solid var(--border-color, #e5e7eb);
    margin-bottom: 0; /* Remove default margin if container below adds padding */
}
.page-header h1 {
    margin: 0 0 10px 0;
    font-size: 2.5rem;
}
.page-header p {
    font-size: 1.1rem;
    color: var(--text-secondary);
    margin: 0 auto;
    max-width: 600px;
}

/* --- Form Spacing --- */
.form-group {
    margin-bottom: 20px; /* Consistent bottom margin */
}
.form-group label {
    display: block;
    margin-bottom: 8px; /* Space between label and input */
    font-weight: 600;
}
.form-actions {
    margin-top: 32px; /* More space before action buttons */
    padding-top: 20px; /* Space above buttons if bordered */
    /* border-top: 1px solid var(--border-color); */ /* Optional separator */
    display: flex;
    gap: 12px;
    align-items: center;
}

/* Checkbox specific label alignment */
.checkbox-group label {
    display: inline-block;
    margin-bottom: 0;
    margin-left: 8px;
    vertical-align: middle;
    font-weight: normal;
}
.checkbox-group input[type="checkbox"] {
    vertical-align: middle;
}
.checkbox-label { /* Wrapper specifically for checkbox + label text */
     display: flex;
     align-items: center;
     gap: 10px;
     cursor: pointer;
     font-weight: normal;
     font-size: 0.95rem;
     color: var(--text-secondary);
}
.checkbox-label input[type="checkbox"] {
     width: 18px;
     height: 18px;
     cursor: pointer;
     accent-color: var(--primary-color);
}


/* --- Detail Page (Show Views) --- */
.article-layout-grid {
    padding: 40px 0; /* Add vertical padding */
}
.main-article-content h1 {
    font-size: 2.2rem; /* Slightly smaller for article title */
    margin-bottom: 20px;
}
.main-article-content h2 { /* Subheadings within article */
    font-size: 1.8rem;
    margin-top: 40px;
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border-color);
}
.main-article-content h3 { /* Further subheadings */
     font-size: 1.4rem;
     margin-top: 32px;
     margin-bottom: 12px;
}

.article-content {
    margin-bottom: 32px; /* Space after main content block */
}
.article-content p {
    margin-bottom: 1.2em; /* Paragraph spacing */
}

/* Meta sections */
.program-meta,
.opportunity-meta,
.story-person,
.project-meta,
.event-meta {
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px dashed var(--border-color); /* Dashed for meta */
}

/* Sidebar */
.article-sidebar .sidebar-widget {
    margin-bottom: 32px; /* Space between widgets */
}

/* --- Admin Specific Adjustments --- */
.admin-form-container {
    padding: 40px; /* More padding */
}
.admin-view-container {
     padding: 32px; /* Padding for single view pages */
}
.admin-header .container {
    padding-top: 0; /* Remove extra padding inside admin header */
    padding-bottom: 0;
}
.admin-table-container .container {
    padding-top: 20px; /* Less top padding for tables */
}
.current-gallery { margin-bottom: 10px; }
.current-gallery img { margin: 2px; border: 1px solid #ddd; }

/* Alert Messages */
.alert {
    padding: 15px 20px;
    margin: 20px 0;
    border: 1px solid transparent;
    border-radius: 4px;
    display: block; /* Make it block level */
}
.alert-success {
    color: #155724;
    background-color: #d4edda;
    border-color: #c3e6cb;
}
.alert-danger {
    color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
}
.alert ul { margin: 5px 0 0 20px; padding: 0; }

/* Responsive Adjustments */
@media (max-width: 768px) {
    .article-layout-grid {
        grid-template-columns: 1fr;
    }
    .main-article-content h1 { font-size: 1.8rem; }
    .main-article-content h2 { font-size: 1.5rem; }
    .main-article-content h3 { font-size: 1.2rem; }
    .page-header { padding: 40px 0; }
    .page-header h1 { font-size: 2rem; }
    .container { padding-top: 20px; padding-bottom: 20px; }
     section > .container { padding-top: 40px; padding-bottom: 40px; }
}
.payment-type-label, .payment-option {
    display: block;
    padding: 12px;
    margin: 8px 0;
    border: 2px solid #ddd;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s;
}

.payment-type-label:hover, .payment-option:hover {
    border-color: #007bff;
    background: #f8f9fa;
}

.payment-type-label input, .payment-option input {
    margin-right: 10px;
}

.error-text {
    color: #dc3545;
    font-size: 14px;
    display: block;
    margin-top: 5px;
}

input[type="file"] {
    display: block;
    width: 100%;
    padding: 10px;
    border: 2px dashed #ddd;
    border-radius: 5px;
    margin-top: 10px;
}

/* ============================================
   FOOTER BADGES SECTION
   ============================================ */

.footer-badges {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    padding: 2rem 0;
    border-top: 1px solid #1d4390;
    border-bottom: 1px solid #1d4390;
}

.footer-badges .container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.footer-badge {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    background: white;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.footer-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.footer-badge i {
    font-size: 2rem;
    color: #059669;
    opacity: 0.8;
}

.footer-badge div {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}

.footer-badge strong {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 0.25rem;
}

.footer-badge span {
    font-size: 0.85rem;
    color: var(--secondary-color);
    font-weight: 500;
}

/* Tax Notice in Footer About Section */
.tax-notice {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #d1fae5;
    color: var(--primary-color);
    padding: 0.5rem 1rem;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.9rem;
    margin: 1rem 0 0.5rem 0;
}

.tax-notice i {
    color: #059669;
    font-size: 1.1rem;
}

.ein-number {
    font-size: 0.9rem;
    color: var(--primary-color);
    font-weight: 600;
    margin: 0.5rem 0;
}

.tax-deductible {
    font-size: 0.85rem;
    color: var(--secondary-color);
    font-style: italic;
    margin: 0.5rem 0 1rem 0;
    line-height: 1.5;
}

/* Responsive */
@media (max-width: 768px) {
    .footer-badges .container {
        gap: 1rem;
    }
    
    .footer-badge {
        padding: 0.75rem 1rem;
        width: 100%;
        max-width: 280px;
    }
    
    .footer-badge i {
        font-size: 1.5rem;
    }
    
    .footer-badge strong {
        font-size: 0.85rem;
    }
    
    .footer-badge span {
        font-size: 0.8rem;
    }
}

@media (max-width: 480px) {
    .footer-badges {
        padding: 1.5rem 0;
    }
    
    .footer-badge {
        flex-direction: column;
        text-align: center;
        padding: 1rem;
    }
    
    .footer-badge i {
        margin-bottom: 0.5rem;
    }
}

/* Alternative Badge Styles (Optional - choose one) */

/* Style Option 1: Minimal */
.footer-badge.minimal {
    background: transparent;
    border: 2px solid #e5e7eb;
    box-shadow: none;
}

.footer-badge.minimal:hover {
    border-color: #059669;
    background: var(--secondary-color);
}

/* Style Option 2: Colorful */
.footer-badge.colorful:nth-child(1) {
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
}

.footer-badge.colorful:nth-child(2) {
    background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
}

.footer-badge.colorful:nth-child(3) {
    background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
}

.footer-badge.colorful:nth-child(4) {
    background: linear-gradient(135deg, #fce7f3 0%, #fbcfe8 100%);
}

/* Style Option 3: With Icons Background */
.footer-badge.icon-bg {
    position: relative;
    overflow: hidden;
}

.footer-badge.icon-bg::before {
    content: '';
    position: absolute;
    right: -10px;
    top: 50%;
    transform: translateY(-50%);
    width: 80px;
    height: 80px;
    background: var(--primary-color);
    opacity: 0.05;
    border-radius: 50%;
}

.footer-badge.icon-bg i {
    position: relative;
    z-index: 1;
}
/* Badge Pulse Animation */
@keyframes badge-pulse {
    0%, 100% {
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    }
    50% {
        box-shadow: 0 4px 16px rgba(5, 150, 105, 0.2);
    }
}

.footer-badge:hover {
    animation: badge-pulse 2s ease-in-out infinite;
}

/* Icon Spin on Hover */
.footer-badge:hover i {
    animation: icon-spin 0.6s ease-in-out;
}

@keyframes icon-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* =============================================
   CONTACT PAGE STYLES
   ============================================= */

.contact-page-container {
    padding: 80px 20px;
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 48px;
    max-width: 1200px;
    margin: 0 auto;
}

/* ===== Left Column: Contact Info ===== */
.contact-info-column {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.contact-info-card {
    background: var(--card-bg, white);
    padding: 40px;
    border-radius: var(--border-radius-lg, 12px);
    box-shadow: var(--shadow-md, 0 2px 12px rgba(0, 0, 0, 0.08));
    border-left: 4px solid var(--primary-color, #1e40af);
}

.info-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--border-color, #e5e7eb);
}

.info-header i {
    font-size: 2rem;
    color: var(--primary-color, #1e40af);
}

.info-header h3 {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin: 0;
}

.info-tagline {
    color: var(--text-secondary, #6b7280);
    line-height: 1.6;
    margin-bottom: 32px;
    font-size: 0.95rem;
}

.info-item {
    display: flex;
    gap: 20px;
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 1px dashed var(--border-color, #e5e7eb);
}

.info-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.info-icon {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
    background: var(--bg-accent, #eff6ff);
    color: var(--primary-color, #1e40af);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.info-content h4 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin: 0 0 8px 0;
}

.info-content p {
    margin: 0;
    color: var(--text-secondary, #6b7280);
    line-height: 1.6;
}

.info-content a {
    color: var(--primary-color, #1e40af);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.3s ease;
}

.info-content a:hover {
    color: var(--primary-dark, #1e3a8a);
    text-decoration: underline;
}

/* Social Media Card */
.contact-social-card {
    background: linear-gradient(135deg, var(--primary-color, #1e40af) 0%, var(--secondary-color, #059669) 100%);
    padding: 32px;
    border-radius: var(--border-radius-lg, 12px);
    text-align: center;
    box-shadow: var(--shadow-md, 0 2px 12px rgba(0, 0, 0, 0.08));
}

.contact-social-card h4 {
    color: white;
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 24px 0;
}

.social-links {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

.social-link {
    width: 50px;
    height: 50px;
    background: rgba(255, 255, 255, 0.2);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    transition: all 0.3s ease;
    text-decoration: none;
    backdrop-filter: blur(10px);
}

.social-link:hover {
    background: white;
    color: var(--primary-color, #1e40af);
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.social-link.facebook:hover { color: #1877f2; }
.social-link.twitter:hover { color: #1da1f2; }
.social-link.instagram:hover { color: #e4405f; }
.social-link.linkedin:hover { color: #0a66c2; }
.social-link.youtube:hover { color: #ff0000; }

/* ===== Right Column: Contact Form ===== */
.contact-form-column {
    display: flex;
    flex-direction: column;
}

.contact-form-card {
    background: var(--card-bg, white);
    padding: 48px;
    border-radius: var(--border-radius-lg, 12px);
    box-shadow: var(--shadow-md, 0 2px 12px rgba(0, 0, 0, 0.08));
    flex-grow: 1;
}

.contact-form-card h2 {
    font-size: 2rem;
    font-weight: 700;
    color: var(--heading-color, #1f2937);
    margin: 0 0 12px 0;
}

.form-description {
    color: var(--text-secondary, #6b7280);
    margin-bottom: 32px;
    line-height: 1.6;
}

.contact-form .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

.contact-form .form-group {
    margin-bottom: 24px;
}

.contact-form label {
    display: block;
    font-weight: 600;
    color: var(--heading-color, #1f2937);
    margin-bottom: 10px;
    font-size: 0.95rem;
}

.contact-form label .required {
    color: #dc2626;
    margin-left: 4px;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea {
    width: 100%;
    padding: 14px 16px;
    border: 2px solid var(--border-color, #e5e7eb);
    border-radius: var(--border-radius-md, 8px);
    font-size: 1rem;
    font-family: inherit;
    transition: all 0.3s ease;
    background: var(--bg-secondary, #f9fafb);
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
    outline: none;
    border-color: var(--primary-color, #1e40af);
    background: white;
    box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1);
}

.contact-form textarea {
    resize: vertical;
    min-height: 140px;
    line-height: 1.6;
}

.recaptcha-group {
    margin-bottom: 28px;
}

.contact-form .form-actions {
    margin-top: 32px;
}

.contact-form .btn-lg {
    padding: 16px 48px;
    font-size: 1.125rem;
    width: 100%;
    justify-content: center;
}

/* Alert Messages */
.contact-form .alert {
    margin-bottom: 28px;
    padding: 16px 20px;
    border-radius: var(--border-radius-md, 8px);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.contact-form .alert strong {
    display: flex;
    align-items: center;
    gap: 8px;
}

.contact-form .alert ul {
    margin: 0;
    padding-left: 20px;
}

.contact-form .alert-success {
    background: #d1fae5;
    color: #065f46;
    border: 1px solid #a7f3d0;
}

.contact-form .alert-danger {
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

/* ===== Responsive Design ===== */
@media (max-width: 1024px) {
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    
    .contact-info-column {
        order: 2;
    }
    
    .contact-form-column {
        order: 1;
    }
}

@media (max-width: 768px) {
    .contact-page-container {
        padding: 60px 20px;
    }
    
    .contact-form-card {
        padding: 32px 24px;
    }
    
    .contact-info-card {
        padding: 32px 24px;
    }
    
    .contact-form .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }
    
    .contact-form-card h2 {
        font-size: 1.75rem;
    }
    
    .info-header h3 {
        font-size: 1.5rem;
    }
}

@media (max-width: 480px) {
    .contact-page-container {
        padding: 40px 16px;
    }
    
    .contact-grid {
        gap: 24px;
    }
    
    .info-item {
        flex-direction: column;
        text-align: center;
        gap: 12px;
    }
    
    .info-icon {
        margin: 0 auto;
    }
    
    .social-link {
        width: 45px;
        height: 45px;
        font-size: 1.125rem;
    }
}