/* Shared accessible Programas navigation. */
header { overflow: visible; }
.programs-menu { position: relative; }
.programs-menu summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; border-radius: 6px; }
.programs-menu summary::-webkit-details-marker { display: none; }
.programs-menu summary::after { content: ''; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); margin-top: -3px; transition: transform .18s ease; }
.programs-menu[open] summary::after { transform: rotate(225deg); margin-top: 3px; }
.programs-menu summary:focus-visible, .programs-submenu a:focus-visible { outline: 2px solid var(--coral); outline-offset: 5px; }
.programs-submenu { position: absolute; top: calc(100% + 15px); left: -20px; z-index: 100; min-width: 255px; padding: 10px; border: 1px solid #ffffff20; border-radius: 16px; background: var(--navy); box-shadow: 0 16px 40px #071b3833; }
.programs-submenu a { display: block; padding: 12px 14px; border-radius: 9px; color: white; white-space: nowrap; line-height: 1.5; }
.programs-submenu a:hover, .programs-submenu a:focus-visible { background: #ffffff14; }
.programs-submenu a[aria-current="page"] { background: #ffffff14; color: #bde6df; }
@media (max-width: 700px) {
 .mobile-menu.open { flex-direction: column; align-items: stretch; gap: 0; }
 .mobile-menu > a, .mobile-menu .programs-menu > summary { padding: 13px 0; font-size: 16px; }
 .mobile-menu .programs-menu > summary { justify-content: space-between; }
 .mobile-menu .programs-submenu { position: static; min-width: 0; margin: 0 0 6px; padding: 3px 0 3px 14px; border: 0; border-left: 2px solid #ffffff40; border-radius: 0; box-shadow: none; }
 .mobile-menu .programs-submenu a { padding: 11px 12px; font-size: 15px; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) { .programs-menu summary::after { transition: none; } }
