/* Programs and donation updates, using the site's existing green/blue palette. */
#programas, #donaciones { scroll-margin-top: 94px; }
.nav-menu { gap: 1.4rem; align-items: center; }
.nav-menu .nav-donate {
    display: inline-flex; align-items: center; gap: .45rem;
    padding: .55rem 1rem; border-radius: 50px;
    background: #ffdb69; color: #253422; font-weight: 700;
    box-shadow: 0 4px 14px rgba(0,0,0,.12);
}
.nav-menu .nav-donate:hover { color: #253422; background: #ffe79a; }
.nav-menu .nav-donate::after { display: none; }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.hero-actions .cta-button { padding: 14px 26px; }
.hero-actions .cta-programs { background: white; color: #167a56; box-shadow: 0 10px 30px rgba(0,0,0,.12); }
.hero-actions .cta-programs:hover { background: #e8fff3; }
.programs { background: #f5f9f7; }
.program-category { color: #157c54; font-size: .82rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .7rem; }
.program-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; align-items: start; }
.program-card { background: white; border: 1px solid #ddebe2; border-radius: 24px; overflow: hidden; box-shadow: 0 12px 32px rgba(24,87,59,.06); min-width: 0; }
.program-card-heading { padding: 2rem 2rem 1.4rem; background: linear-gradient(135deg,#eaf8ee,#ecf5ff); }
.program-icon { color: #1d9662; font-size: 2rem; margin-bottom: .9rem; }
.program-card h3 { font-size: 1.75rem; line-height: 1.3; color: #193d32; }
.program-card-body { padding: 1.75rem 2rem 2rem; }
.program-card-body > p { color: #52635c; margin-bottom: 1.25rem; }
.program-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin: 1.5rem 0; }
.program-fact { background: #f5f9f7; border-radius: 12px; padding: .9rem; min-width: 0; }
.program-fact dt { color: #53655c; font-size: .8rem; margin-bottom: .3rem; }
.program-fact dd { color: #174d37; font-size: 1.1rem; font-weight: 700; overflow-wrap: anywhere; }
.program-fact small { display: block; font-size: .75rem; font-weight: 400; }
.program-details { border-top: 1px solid #e3ebe6; margin: 1.5rem 0; }
.program-details summary { padding: 1rem 0; cursor: pointer; color: #176c4b; font-weight: 600; }
.program-details summary:hover { color: #0075a9; }
.program-details h4 { color: #244e3e; font-size: 1rem; margin: 1.4rem 0 .55rem; }
.program-details p, .program-details li { color: #52635c; font-size: .92rem; overflow-wrap: anywhere; }
.program-details ul { padding-left: 1.25rem; }
.program-details li { margin-bottom: .55rem; }
.program-photos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin: .4rem 0 1.75rem; }
.program-photo { display: block; min-width: 0; border: 1px solid #dce8e0; border-radius: 12px; overflow: hidden; color: #355547; text-decoration: none; background: #f2f7f4; }
.program-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #e7eeea; }
.program-photo-caption { display: block; padding: .65rem .8rem; font-size: .78rem; line-height: 1.5; }
[aria-labelledby="program-bach-title"] .program-photo:last-child { grid-column: 1 / -1; }
[aria-labelledby="program-bach-title"] .program-photo:last-child img { aspect-ratio: 16 / 9; }
.program-photo:hover { border-color: #21834f; }
.program-photo:focus-visible { outline: 3px solid #ffcc34; outline-offset: 4px; }
.social-program .program-photos { margin-top: 1.5rem; }
.program-course-list { display: grid; gap: .6rem; padding-left: 1.25rem; }
.program-contact { display: grid; gap: .7rem; margin-top: 1.25rem; }
.program-contact a { display: flex; justify-content: center; align-items: center; gap: .6rem; border-radius: 12px; padding: .8rem 1rem; text-decoration: none; font-size: .9rem; font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.program-whatsapp { background: #18834a; color: white; }
.program-whatsapp:hover { background: #116f3c; }
.program-email { background: #eef6ff; color: #08618a; }
.program-email:hover { background: #e0efff; }
.program-email span { min-width: 0; }
.program-closing { max-width: 850px; text-align: center; color: #52635c; margin: 2rem auto 3rem; }
.social-program { padding: 2.5rem; border: 1px solid #d7e8e0; border-radius: 24px; background: white; }
.social-program h3 { font-size: clamp(1.5rem,2.6vw,2rem); line-height: 1.35; color: #193d32; max-width: 950px; margin-bottom: 1.25rem; }
.social-program > p { color: #52635c; margin-bottom: 1rem; }
.social-areas { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin: 1.75rem 0; }
.social-area { padding: 1.5rem; border-radius: 16px; background: #f5f9f7; min-width: 0; }
.social-area > i { color: #1d9662; font-size: 1.5rem; margin-bottom: .7rem; }
.social-area h4 { color: #244e3e; margin-bottom: .5rem; font-size: 1rem; }
.social-area p { color: #52635c; font-size: .9rem; }
.social-program blockquote { border-left: 4px solid #23a46c; padding: .75rem 1.25rem; color: #176c4b; font-weight: 600; margin: 1.5rem 0; }
.social-program .cta-button { font-size: 1rem; padding: .8rem 1.4rem; margin-top: .5rem; }
.donation-methods { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; margin-top: 2rem; }
.donation-method { padding: 1.5rem; border: 1px solid rgba(255,255,255,.15); border-radius: 16px; text-align: center; min-width: 0; }
.donation-icon { font-size: 2rem; color: #ffdb69; margin-bottom: .65rem; }
.donation-method h4 { font-size: 1.2rem; color: #7ce397; margin-bottom: .6rem; }
.donation-method p { color: #e5e7ed; font-size: .9rem; margin-bottom: 1rem; }
.donation-method .donation-link { display: inline-block; padding: .8rem 1.1rem; border-radius: 50px; text-decoration: none; font-size: .9rem; font-weight: 600; background: #0084bd; color: white; }
.donation-method .donation-link:hover { background: #006e9e; }
.donation-account { color: #fff; background: rgba(255,255,255,.09); border-radius: 12px; padding: 1rem; }
.donation-account span { display: block; color: #e5e7ed; font-size: .85rem; }
.donation-account strong { display: block; font-size: clamp(1.35rem,3vw,1.85rem); letter-spacing: .06em; color: #ffdb69; user-select: all; }
.contact-emails a { color: inherit; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.contact-emails { min-width: 0; }
.contact-item > div { min-width: 0; }
.program-contact a:focus-visible, .program-details summary:focus-visible, .donation-link:focus-visible, .nav-donate:focus-visible, .hero-actions a:focus-visible { outline: 3px solid #ffcc34; outline-offset: 4px; }
@media (min-width: 769px) and (max-width: 1100px) {
    .nav-menu { gap: .8rem; }
    .nav-menu a { font-size: .85rem; }
    .logo { font-size: 1.4rem; }
    .language-selector { margin-left: .75rem; }
    .language-btn { padding: 6px 8px; }
    .nav-menu .nav-donate { padding: .45rem .65rem; }
}
@media (max-width: 768px) {
    .hero .slide2 { background-position: 35% center; }
    .hero .slide4 { background-position: 72% center; }
    .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .stat-item { min-width: 0; padding: 1rem .5rem; }
    .stat-label { overflow-wrap: anywhere; }
    .nav-menu { align-items: stretch; max-height: calc(100dvh - 70px); overflow-y: auto; gap: .6rem; padding: 1rem; }
    .nav-menu a { display: block; padding: .7rem 1rem; }
    .nav-menu .nav-donate { justify-content: center; color: #253422 !important; background: #ffdb69; padding: .7rem 1rem; }
    .hero-actions { flex-direction: column; align-items: center; gap: .75rem; }
    .hero-actions .cta-button { font-size: .95rem; width: 100%; max-width: 330px; padding: 12px 18px; }
    .program-grid, .donation-methods { grid-template-columns: minmax(0,1fr); }
    .program-card-heading, .program-card-body { padding: 1.5rem; }
    .program-card h3 { font-size: 1.5rem; }
    .social-program { padding: 1.5rem; }
    .social-areas { grid-template-columns: minmax(0,1fr); }
    #donaciones { padding: 1.25rem !important; }
    .contact-emails { overflow-wrap: anywhere; }
}
@media (max-width: 380px) {
    .logo { font-size: 1.35rem; }
    .mobile-menu { flex-shrink: 0; }
    .program-card-heading, .program-card-body, .social-program { padding: 1.1rem; }
    .program-facts { grid-template-columns: minmax(0,1fr); }
    .program-email { font-size: .78rem !important; padding: .8rem .5rem !important; }
}
@media (max-width: 480px) {
    .program-photos { grid-template-columns: minmax(0,1fr); }
}
