.oma-program {
    display: flex;
    flex-direction: column;
}

.oma-program > header {
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 0px;
}

.oma-program-description {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    align-items: start;
}

.oma-program-description > * {
    flex: 1;
}

.oma-program-description-video > * {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: contain;
}

.oma-program-description-video > img {
    object-fit: cover;
}

@media (max-width: 992px) {
    .oma-program-description {
        flex-flow: column-reverse;
    }
}

.oma-three-columns-main {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.oma-author-sm > img {
    width: 75px;
    object-fit: cover;
    border-radius: 50%;
    aspect-ratio: 1;
}

.oma-three-columns-main > div {
    display: flex;
    align-items: center;
}

.oma-author-sm > div {
    display: flex;
    flex-direction: column;
    align-items: start;
}

.oma-author-sm > div > a {
    font-weight: bold;
    text-decoration: underline;
}

.oma-three-columns-main > p {
    grid-column: 1 / -1;
}

.oma-program-single-wrapper {
    max-width: var(--oma-site-width);
    margin: 0 auto;
    padding: 4rem 2rem;
}

/* Layout del Héroe */
.oma-program-hero {
    margin-bottom: 6rem;
}

.oma-program-hero-grid {
    display: flex;
    flex-direction: column-reverse;
    gap: 3rem;
}

.oma-program-main-title {
    font-family: var(--oma-font-serif);
    font-size: 2.5rem;
    color: var(--oma-dark);
    line-height: 1.2;
    margin-bottom: 2rem;
    font-weight: normal;
}

.oma-program-rtf-content {
    font-family: var(--oma-font-sans);
    color: var(--oma-text-muted);
    font-size: 1.05rem;
    line-height: 1.7;
}

.oma-program-rtf-content p {
    margin-bottom: 1.5rem;
}

.oma-program-rtf-content strong {
    color: var(--oma-dark);
    font-weight: 600;
}

.oma-program-rtf-content h2, 
.oma-program-rtf-content h3 {
    font-family: var(--oma-font-serif);
    color: var(--oma-dark);
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-weight: normal;
}

/* Contenedor de Imagen de Portada */
.oma-program-hero-media {
    width: 100%;
}

.oma-program-cover {
    width: 100%;
    height: 250px;
    background-size: cover;
    background-position: center;
    border-radius: var(--oma-radius);
    box-shadow: 0 10px 30px rgba(0,0,0,0.02);
}

.oma-program-contents {
    border-top: 1px solid var(--oma-earth);
    padding-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.oma-contents-title {
    font-family: var(--oma-font-serif);
    color: var(--oma-dark);
}

.oma-lesson-card .oma-card-media-wrapper {
    position: relative;
}

.oma-lesson-card > img {
    width: 100%;
}

.oma-lesson-badge {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    background: rgba(253, 253, 251, 0.9);
    color: var(--oma-dark);
    font-family: var(--oma-font-sans);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.25rem 0.5rem;
    border-radius: 2px;
    letter-spacing: 1px;
}

.oma-no-contents {
    font-family: var(--oma-font-sans);
    color: var(--oma-text-muted);
}

@media (min-width: 992px) {
    .oma-program-hero-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: start;
        gap: 5rem;
    }
    
    .oma-program-main-title {
        font-size: 3.2rem;
    }
    
    .oma-program-cover {
        height: 450px;
    }
}

.oma-fixed-btn-container {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    opacity: 1;
    visibility: visible;
    width: auto;
    max-width: 90%;
}

.oma-fixed-btn-container.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.oma-content-type-wrapper h3 {
    padding-left: 0;
}

table.woocommerce-checkout-review-order-table thead {
    display: none !important;
}

.oma-program-contents .oma-program-card {
    flex-basis: 250px;
}

.oma-program-contents .oma-card-overlay {
    padding: 10px 5px;
}

.oma-content-type-wrapper {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.oma-type-title {
    padding-left: 10px;
}

.oma-read-more {
    display: flex;
    flex-direction: column;
}

.oma-read-more-content {
    display: none;
}

.oma-read-more-trigger {
    text-decoration: underline;
    padding-top: 20px;
    display: block;
}

.oma-read-more.open {
    flex-direction: column-reverse;
    padding-top: 20px;
}

.oma-read-more.open > .oma-read-more-content {
    display: block;
}
