/* ========== LISTADO GENERAL DE PROGRAMAS ========== */
.programas-grouped-wrapper,
.programas-list-simple {
margin-inline:auto;
}

.programas-grouped-wrapper .programas-category-block {
margin-bottom:2.25rem;
}

.programas-grouped-wrapper 
.programas-category-block + .programas-category-block {
margin-top:2.75rem;
}

.programas-grouped-wrapper .programas-category-title {
font-size:1.25rem;
font-weight:800;
margin:0 0 1.5rem 0;
line-height:1.2;
position:relative;
display:inline-block;
}

.programas-grouped-wrapper .programas-category-title::after {
content:"";
display:block;
width:100%;
height:2px;
background:#E81212;
margin-top:.35rem;
}

.programas-grouped-wrapper .programas-category-title a {
text-decoration:none;
color:inherit;
transition:color .2s ease;
}

.programas-grouped-wrapper .programas-category-title a:hover {
color:#E81212;
}

.programas-grouped-wrapper .programas-count {
font-weight:600;
color:#111;
font-size: 1rem;
margin-bottom:1.5rem;
position: relative;
display: inline-block;
}

.programas-grouped-wrapper .programas-count::after {
content: "";
display: block;
width: clamp(40px, 100%, 100%);
height: 3px;
background-color: #E81212;
margin-top: 8px;
opacity: 0.8;
transition: width 0.3s ease;
}

.programas-grouped-wrapper .programas-list,
.programas-list-simple {
display:flex;
flex-direction:column;
margin:0;
padding:0;
}

.programas-grouped-wrapper .programa-item,
.programas-list-simple .programa-item {
border: 1px solid #ccc;
border-radius: 8px;
margin: .75rem 0;
padding: 1.5rem 1rem;
position:relative;
cursor:pointer;
box-shadow: 0 2px 6px rgba(0, 0, 0, .05);
transition:background .15s ease;
}

.programas-grouped-wrapper .programa-item:hover,
.programas-list-simple .programa-item:hover {
background:#F4F4F4;
}

.programas-grouped-wrapper .programa-title,
.programas-list-simple .programa-title {
font-size:.95rem;
font-weight:600;
margin:0 0 .25rem 0;
line-height:1.2;
transition:color .2s ease;
}

.programa-link {
text-decoration:none;
color:inherit;
display:inline-block;
}

.programas-grouped-wrapper .programa-excerpt,
.programas-list-simple .programa-excerpt {
font-size:.85rem;
color:#777676;
line-height:1.3;
margin:0;
max-width:85ch;
}

.programas-grouped-wrapper .programa-item::after,
.programas-list-simple .programa-item::after {
content:"→";
position:absolute;
right:5px;
top:50%;
transform:translateY(-50%);
font-size:1.5rem;
color:#E81212;
opacity: .9;
transition:transform .2s ease, opacity .2s ease;
}

.programas-grouped-wrapper .programa-item:hover::after,
.programas-list-simple .programa-item:hover::after {
transform:translate(5px,-50%);
opacity:.8;
}

.programas-grouped-wrapper .programa-item:hover .programa-title,
.programas-list-simple .programa-item:hover .programa-title {
color:#E81212;
text-decoration:underline;
}

.programa-link:focus {
outline:2px solid #E81212;
outline-offset:3px;
}

/* ========== LISTADO DE PROGRAMAS SOLO MAESTRÍAS ========== */
.programas-grouped-wrapper.programas-parent .programa-item {
border:none;
box-shadow:none;
background:none;
border-radius:0;
border-bottom: 1px solid #eee;
margin:0;
padding:.8rem 0 .8rem;
}

.programas-grouped-wrapper.programas-parent .programa-item:hover {
background:none;
text-decoration: underline;
} 

.programas-grouped-wrapper.programas-parent .programa-title {
margin:0;
font-size:.95rem;
font-weight:400;
line-height:1.2;
padding-left: 1rem;
}

.programas-grouped-wrapper.programas-parent .programa-excerpt {
display:none;
}

.programas-grouped-wrapper.programas-parent .programa-item::before {
content:"→";
top: .3rem;
color:#E81212;
font-size:1.25rem;
position: absolute;
}

.programas-grouped-wrapper.programas-parent .programa-item::after {
display:none;
}

/* ========== FILTRO LISTADO DE PROGRAMAS ========== */
.programas-filter {
display: flex;
padding: 1rem;
margin-bottom: 1rem;
border-radius: 8px;
position: relative;
background: #F4F4F4;
flex-wrap: wrap;
}

.programas-filter-toggle {
display:flex;
align-items:center;
gap: inherit;
width:350px;
background:#fff;
border:1px solid #ccc;
padding:.5rem 1rem;
font-size: 1rem;
font-weight: 500;
cursor:pointer;
border-radius:4px;
justify-content: space-between;
}

.programas-filter-toggle:hover {
border-color:#E81212;
}

.programas-filter-selected {
font-size:.85rem;
}

.programas-filter-arrow {
width:0;
height:0;
border-left:5px solid transparent;
border-right:5px solid transparent;
border-top:6px solid #E81212;
}

.programas-filter-dropdown {
display:none;
position:absolute;
top:100%;
margin-top:.3rem;
background:#fff;
border:1px solid #DDD;
padding:.75rem;
width:350px;
box-shadow:0 4px 12px rgba(0,0,0,.08);
z-index:10000;
}

.programas-filter-dropdown.open {
display:block;
}

.programas-filter-controls {
display:flex;
justify-content:space-between;
margin-bottom:.6rem;
font-size:.75rem;
}

.programas-filter-controls button {
background:none;
border:none;
color:#E81212;
cursor:pointer;
}

.programas-filter-option {
display:flex;
align-items:center;
gap:.45rem;
font-size:.85rem;
margin-bottom:.35rem;
cursor:pointer;
}

.programas-filter-option span {
display:flex;
justify-content:space-between;
width:100%;
}

.programas-filter-option input {
cursor:pointer;
}

.programas-filter-apply {
margin-top:.5rem;
background:#E81212;
color:#fff;
border:none;
padding:.4rem .6rem;
font-size:.8rem;
cursor:pointer;
border-radius:3px;
width:100%;
}

.programas-empty {
display:none;
font-size:.9rem;
color:#777676;
padding:1rem 0;
}

/* ========== CARGAR MÁS PROGRAMAS ========== */
.programas-load-more {
display:none;
margin:1.75rem auto 0;
padding:.5rem 1.25rem;
font-size:.85rem;
font-weight: 700;
text-transform: uppercase;
background:#E81212;
color:#fff;
border:none;
border-radius:4px;
cursor:pointer;
}

.programas-load-more.loading {
pointer-events:none;
opacity:.7;
}

.programas-load-more.loading::after {
content:"";
display:inline-block;
width:14px;
height:14px;
margin-left:.5rem;
border:2px solid #fff;
border-top-color:transparent;
border-radius:50%;
animation:programas-spin .6s linear infinite;
}

.js .programa-hidden {
display:none;
}

.programas-progress {
text-align:center;
font-size:.8rem;
color:#777676;
margin-top:.75rem;
}

@keyframes programas-spin {
to{transform:rotate(360deg);}
}

@media (max-width:768px) {
.programas-grouped-wrapper .programas-category-title {
font-size:1.15rem;
}

.programas-grouped-wrapper .programa-item, .programas-list-simple .programa-item {
margin: .5rem 0;
padding: .85rem;
}

.programas-grouped-wrapper .programa-item::after,
.programas-list-simple .programa-item::after {
top:auto;
font-size: 1rem;
}

.programas-grouped-wrapper .programa-title,
.programas-grouped-wrapper.programas-parent .programa-title {
font-size:.8rem;
margin: 0 0 .5rem 0;
}

.programas-grouped-wrapper.programas-parent .programa-title {
font-size:.8rem;
margin: 0;
}

.programas-grouped-wrapper .programa-excerpt,
.programas-list-simple .programa-excerpt {
font-size:.75rem;
}

.programas-filter {
justify-content:stretch;
}

.programas-filter-toggle {
width:100%;
justify-content:space-between;
}

.programas-filter-dropdown {
position:fixed;
left:0;
right:0;
bottom:0;
top:auto;
width:100%;
max-height:70vh;
overflow:auto;
border-radius:12px 12px 0 0;
padding:1rem;
}

.programas-grouped-wrapper .programas-count {
margin-bottom: 1rem;
font-size: .8rem;
text-align: center;
display: block;
}

.programas-grouped-wrapper .programas-count::after {
width: clamp(40px, 50%, 120px);
margin-left: auto;
margin-right: auto;
}
}