body {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-dark);
    background-color: var(--color-white);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: var(--spacing-16);
    color: var(--color-primary);
}

h1 { font-size: clamp(2rem, 5vw, 3rem); }
h2 { font-size: clamp(1.8rem, 4vw, 2.5rem); }
h3 { font-size: clamp(1.5rem, 3.5vw, 2rem); }
h4 { font-size: clamp(1.25rem, 3vw, 1.5rem); }
h5 { font-size: clamp(1.1rem, 2.5vw, 1.25rem); }
h6 { font-size: clamp(1rem, 2vw, 1rem); }

p {
    margin-bottom: var(--spacing-16);
    word-wrap: break-word;
}

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.color-primary { color: var(--color-primary); }
.color-secondary { color: var(--color-secondary); }
.color-white { color: var(--color-white); }
.color-gray { color: #666; } /* Darker gray for text readability */

/* Template Specific Typography Classes */
.section-title {
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    color: var(--color-primary);
    margin-bottom: var(--spacing-24);
}

.section-subtitle {
    font-size: 1rem;
    color: var(--color-secondary);
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 600;
    margin-bottom: var(--spacing-8);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-16);
}

.section-subtitle::before,
.section-subtitle::after {
    content: '';
    height: 1px;
    width: 40px;
    background-color: var(--color-secondary);
}

/* General Link Styling for Content Areas */
.site-main a, 
.avs-sidebar-widget a {
    color: var(--color-secondary);
    text-decoration: underline;
    text-decoration-color: rgba(246, 184, 70, 0.4);
    text-underline-offset: 3px;
    font-weight: 500;
    transition: all 0.3s ease;
}

.site-main a:hover, 
.avs-sidebar-widget a:hover {
    color: var(--color-primary);
    text-decoration-color: var(--color-primary);
}

/* Ensure buttons are not affected by link styling */
.site-main a.btn,
.avs-sidebar-widget a.btn {
    text-decoration: none;
    font-weight: 600; /* reset from 500 */
}

/* Fix link hover visibility on dark backgrounds (Donation/Bank component) */
.section-donation-bank a:hover {
    color: var(--color-white);
    text-decoration-color: var(--color-white);
}
