.program-accordion-section,
.program-accordion-section * {
    box-sizing: border-box;
}

.program-accordion-section {
    --program-accordion-red: #da291c;
    --program-accordion-red-dark: #bb2016;
    --program-accordion-text: #111111;
    --program-accordion-panel: #fafafa;
    padding: 0px;
    background-color: transparent;
}

.program-accordion {
    display: grid;
    width: 100%;
    gap: 15px;
    border-radius: 5px;
}

.program-accordion__item {
    overflow: hidden;
    background-color: #ffffff;
    box-shadow: 0 7px 20px rgba(0, 0, 0, 0.07);
}

.program-accordion__summary {
    display: flex;
    min-height: 90px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 26px;
    color: var(--program-accordion-text);
    background-color: #ffffff;
    line-height: 1.4;
    list-style: none;
    cursor: pointer;
    transition: color 180ms ease, background-color 180ms ease;
}

.program-accordion__summary::-webkit-details-marker {
    display: none;
}

.program-accordion__summary::marker {
    content: "";
}

.program-accordion__summary:hover {
    background-color: #f7f7f7;
}

.program-accordion__summary:focus-visible {
    position: relative;
    z-index: 1;
    outline: 3px solid #ffb81c;
    outline-offset: -3px;
}

.program-accordion__item[open] > .program-accordion__summary {
    color: #ffffff;
    background-color: var(--program-accordion-red);
}

.program-accordion__item[open] > .program-accordion__summary:hover {
    background-color: var(--program-accordion-red-dark);
}

.program-accordion__chevron {
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    margin-right: 4px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
    transition: transform 180ms ease;
}

.program-accordion__item[open] .program-accordion__chevron {
    transform: translateY(3px) rotate(225deg);
}

.program-accordion__content {
    padding: 36px 30px 31px;
    color: var(--program-accordion-text);
    background-color: var(--program-accordion-panel);
    animation: program-accordion-reveal 180ms ease-out;
}



.program-accordion__button {
    display: inline-flex;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    padding: 15px 30px;
    border: 2px solid var(--program-accordion-red);
    border-radius: 5px;
    color: #ffffff;
    background-color: var(--program-accordion-red);
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.program-accordion__button:hover,
.program-accordion__button:focus-visible {
    border-color: var(--program-accordion-red-dark);
    color: #ffffff;
    background-color: var(--program-accordion-red-dark);
}

.program-accordion__button:focus-visible {
    outline: 3px solid #ffb81c;
    outline-offset: 3px;
}

@keyframes program-accordion-reveal {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 640px) {
    .program-accordion-section {
        padding: 20px 12px;
    }

    .program-accordion {
        gap: 18px;
    }

    .program-accordion__summary {
        min-height: 72px;
        padding: 18px 20px;
    }

    .program-accordion__content {
        padding: 26px 20px 24px;
    }

    .program-accordion__content p {
        margin-bottom: 26px;
    }


}

@media (prefers-reduced-motion: reduce) {
    .program-accordion__summary,
    .program-accordion__chevron,
    .program-accordion__button {
        transition: none;
    }

    .program-accordion__content {
        animation: none;
    }
}
