@import "jquery.scrollbar.css";

:root {
    --p1 : #252525;
    --p2 : #F2F2F2;
    --p3 : #0021FF;
    --p4 : #FFFFFF;
    --p5 : #DDDDDD;
    --bg1 : #F2F2F2;
    --bg2 : #FFFFFF;
    --t1 : #252525;
    --t2 : #FFFFFF;
}

* { -webkit-text-size-adjust: none; margin: 0; padding: 0; box-sizing: border-box; outline: none; }

li { list-style: none; }
a img { border:none; }
a { text-decoration: none; color: inherit; }
/*table module_program*/
#program { padding: 120px 60px 0; }
@media(max-width: 1500px) and (min-width: 642px) {
    #program { padding: 120px 0 0; }
}
@media(max-width: 1500px) and (min-width: 1301px) {
    #program .view_type_list {
        padding-left: 60px;
        padding-right: 60px;
    }
}
.program > .title { color: var(--t1); margin-bottom: 24px; text-align: center; font-size: 42px; }
.program > p.subtitle { text-align: center;font-size: 24px; font-weight: 600; line-height: 1.3; color: #2C104B; }

.program-page__subtitle.stroke-txt { -webkit-text-stroke-color: var(--t1); }
.module_program_header { display: flex; justify-content: space-between; align-items: center; margin-top: 40px; }
.view_type { display: flex; align-items: center; font-size: 16px; }
.view_type a { font-weight: 500; height: 58px; display: inline-flex; align-items: center; justify-content: center; text-align: center;
    padding: 0 20px; border-radius: 4px; background: var(--bg1); color: var(--t1); margin-left: 20px; }
.view_type a.active { background: var(--p3); color: var(--t2); }
#program a { text-decoration-skip-ink: none; }
.btn { display: inline-flex; align-items: center; justify-content: center; height: 58px; transition: .3s; }
.btn.v1 { border: 1px solid var(--t1); color: var(--t1); border-radius: 5px; padding-top: 10px; }
.btn.v1:hover { background: var(--t1); color: var(--p4); }
.btn.v2 { border: 2px solid var(--p3);background: var(--p3); color: var(--p4); border-radius: 5px; padding-top: 10px; }
.btn.v2:hover { background: transparent; color: var(--p3); }
.p_btn_group { display: flex; margin: -10px; }
.p_btn_group.centered { justify-content: center; }
.module_program_table_box ~ .p_btn_group { padding: 40px 0; }
@media(max-width: 641px) {
    .p_btn_group.m_col { flex-direction: column; }
    .p_btn_group.m_col .btn { width: calc(100% - 20px); }
    .p_btn_group.m_col .btn + .btn { margin-top: 10px; }
}

.p_btn_group .btn { margin: 10px; }

.rotate_box { display: none; }
@media(max-width: 641px) {
    .rotate_box { display: flex; justify-content: space-between; align-items: center; margin-top: 30px; }
    .rotate_box:after { width: 40px; height: 40px; flex: 0 0 auto; content: "";
        background: url(../img_prog/rotate_phone_icon.svg) no-repeat 50% 50% / contain; }
    .rotate_text p { font-size: 12px; max-width: 190px; }
}


@media(max-width: 641px) {
    #program  .btn_border { width: 100%; padding-top: 10px; padding-bottom: 10px; }
}
.module_program_table_box { margin-top: 40px; }
.module_program_table + .module_program_table { margin-top: 40px; }
.module_program_table_header,.module_program_table_row { display: flex; }
/*.module_program_table_row + .module_program_table_row {  margin-bottom: -1px; }*/
.module_program_table_header { position: relative; top: 0; z-index: 5; background: var(--p4); padding-top: 15px; }
.module_program_table_header.is-fixed { padding-top: 0; }
.module_program_table_header.is-fixed .mp_th_item:first-child { align-self: stretch; margin-top: -15px; padding-top: 15px; }
.module_program_table_header.is-fixed .mp_th_item:not(:first-child) { padding-top: 15px; }
.mp_th_item { width: 230px; flex: 1 0 auto; padding-right: 20px; }
.mp_tr_item { width: 210px; flex: 1 0 auto; padding: 20px 15px; border: 1px solid var(--p5); border-radius: 10px; }
.mp_th_item { background: var(--p4); font-size: 16px; border-bottom: 1px solid var(--p5); }
.mp_th_item:last-child { width: 210px; padding-right: 0; }
.mp_th_item p { font-size: 18px; font-weight: 600; margin: 5px 0; }
.mp_th_item p span { font-size: 14px; margin-top: 6px; color: var(--p3); font-weight: 400; display: block; }
.mp_th_item:first-child { background: var(--p3); color: var(--t2); border-radius: 10px;
    font-weight: 700; text-transform: uppercase; font-size: 24px; padding: 20px; margin: 0 10px 0 0;
    display: flex; flex-direction: column; align-items: flex-start; justify-content: center; border: none; }
.mp_th_item:first-child + .mp_th_item { margin-left: 10px; }
.mp_th_item:first-child span { font-weight: 400; font-size: 18px; margin-top: 10px; }
.mp_th_item:first-child,.mp_tr_item:first-child  { width: 208px; position: sticky; left: 0; z-index: 2; flex: 0 0 auto; }
.mp_tr_item.fluid_item { width: auto; flex: 1 1 auto;  padding: 15px; background: var(--bg1); border-color: var(--bg1); }
.mp_tr_item.fluid_item p { display: inline-block; position: sticky; left: 228px; }
.mp_tr_item:first-child { background: var(--p3); color: var(--t2); border-radius: 10px; margin-left: 0;
    padding: 15px 20px; align-self: flex-start; text-align: center; border: none; }
.mp_tr_item:first-child p {  font-size: 18px; font-weight: 700; color: var(--t2); }
.mp_tr_item { margin: 15px 10px; }
.mp_tr_item:last-child { margin-right: 0;  }
.mp_tr_item h6 { font-size: 16px; font-weight: 700; line-height: 1.1; margin-top: 3px; color: var(--t1); }
.mp_tr_item *:first-child { margin-top: 0; }
.mp_tr_item p { font-size: 16px; line-height: 1.25; font-weight: 400; margin-top: 3px; color: var(--t1); overflow-wrap: break-word; }
.mp_tr_item p:first-child { margin-top: 0; }
.mp_tr_item p + h6 { margin-top: 10px; }
.mp_tr_item a { transition: .3s; text-decoration: underline; }
.mp_tr_item a:hover { text-decoration: none; color: var(--p3); }
.mp_tr_item a.prog_name { font-family: inherit; font-weight: inherit; font-size: inherit; margin-bottom: 0; }
.mp_tr_item h6.inner_time { color: var(--p3); }
/*.module_program_table_header + .module_program_table_row:not([data-type="dinner"]) + .module_program_table_row .mp_tr_item:first-child { border-top: none; }*/
/*.module_program_table_header + .module_program_table_row[data-type="dinner"] .mp_tr_item:first-child { border-bottom: none; }*/

.module_program_table_row:last-child .mp_tr_item { padding-bottom: 16px; }

.module_program_table .scroll-element.scroll-x {
    top: auto !important;
    bottom: 0;
    margin-top: 8px;
}
.module_program_table .scroll-element.scroll-x.is-fixed {
    position: fixed !important;
    bottom: 15px;
    top: auto !important;
    left: auto;
    width: auto;
    margin-top: 0;
    z-index: 98;
}


.module_program_halls { display: flex; margin-top: 20px; }
.mp_h { width: 230px; flex: 1 0 auto; padding-right: 20px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center;  }
.mp_h:first-child { background: var(--p3); color: var(--t2); border-radius: 10px; padding: 20px; margin: 0 10px 0 0;
     border: none; align-items: center; font-size: 18px; font-weight: 400; text-align: center; }
.mp_h:first-child + .mp_h { margin-left: 10px; }
.mp_h:not(:first-child) { border-top: 1px solid var(--p5); border-bottom: 1px solid var(--p5); }
.mp_h:first-child { width: 208px; position: sticky; left: 0; z-index: 2; flex: 0 0 auto; }
.mp_h:last-child { width: 210px; padding-right: 0; }
@media(max-width: 1024px) {
    .mp_th_item:first-child { font-size: 18px; }
    .mp_th_item p { font-size: 16px; }
    .mp_tr_item h6 { font-size: 16px; }
    .mp_tr_item p { font-size: 14px; margin-top: 2px; }
    .mp_tr_item:first-child p { font-size: 16px; font-weight: 400; }
}
.mp_tr_item .timing_2doklada { font-size: 16px; font-weight: 700 !important; line-height: 1.1; margin-top: 3px; color: var(--t1); }
.mp_tr_item_mobile_header { display: none; }
.mp_tr_item_timing2 { display: none; }
@media(max-width: 641px) {

    #program { padding: 100px 20px 0; }
    .module_program_table_header { position: relative !important; top: 0 !important; left: auto !important; right: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; transform: none !important; }
    .module_program_table .scroll-element.scroll-x.is-fixed {
        position: absolute !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
    }
    .module_program_table_header,
    .module_program_table_row {
        flex-direction: column;
        position: relative;
    }
    .module_program_table_header { margin-bottom: 8px; }
    .module_program_table_row { padding-left: 110px; }
    .program > p.subtitle { font-size: 20px; }
    .view_type { margin-top: 20px; }
    .module_program_halls { display: none; }
    .mp_tr_item { margin: 8px 0; display: flex; flex-direction: column; align-items: flex-start; position: relative; }
    .mp_th_item:not(:first-child) { display: none; }
    .mp_th_item:first-child { position: relative; width: 100%; }
    .mp_tr_item:first-child { position: absolute; top: 0; left: 0; width: 100px; padding: 15px 0; }
    .mp_tr_item:first-child p { position: sticky; top: 100px; text-align: center; display: block;
        width: 100%; font-size: 14px; font-weight: 700; }
    .mp_th_item:not(:first-child),.mp_tr_item:not(:first-child) { width: 100%; }
    .mp_tr_item.fluid_item p { left: 110px; }


    .mp_tr_item { overflow: hidden; }
    .mp_tr_item p { line-height: 1.15; }

    .mp_tr_item_mobile_header { width: calc(100% + 30px); padding: 10px; margin: -20px -15px 10px -15px!important;
        border-radius: 10px;
        display: flex; justify-content: space-between; align-items: center; background: var(--p3); color: var(--p5); }
    .mp_tr_item_mobile_header p { color: var(--p5); }
    .mp_tr_item_mobile_header p.stream_num { white-space: nowrap; font-size: 12px; margin-right: 20px; }
    .mp_tr_item_mobile_header p.stream_name { text-align: right; font-size: 12px; font-weight: 700; }

    .mp_tr_item_timing2 { display: block; font-weight: 700; color: var(--p5); font-size: 14px; margin-bottom: 5px; }

    /*.mp_tr_item:not(:first-child)[data-stream-name]:before { order: -2; background: #F0F0F0; height: 32px; padding: 0 20px; border-radius: 4px;*/
    /*    content: attr(data-stream-name); font-size: 15px; display: inline-flex; align-items: center; justify-content: center; text-align: center;*/
    /*    color: var(--p3); font-weight: 400; }*/
    /*.mp_tr_item:not(:first-child)[data-hall]:after { order: -1;*/
    /*    padding-left: 14px;*/
    /*    content: attr(data-hall); font-size: 14px; display: block; margin: 6px 0; }*/
    /*.mp_tr_item h6 { position: relative; }*/
    /*.mp_tr_item:not(:first-child)[data-hall] h6:first-child:before { content: ""; position: absolute; top: -54px; bottom: 0; margin: auto; left: 0; width: 6px; height: 6px; border-radius: 8px;*/
    /*    background: var(--p3); }*/

}


/*list module_program*/
.module_program_list_box { margin-top: 40px; display: none; }
.module_program_list { display: flex; }
.module_program_list_nav { width: 416px; flex: 0 0 auto; margin-right: 40px; }
.module_program_list_nav ul { display: flex; flex-direction: column; }
.module_program_list_nav ul li { display: flex; font-size: 24px; font-weight: 400; order: 1;
    border-radius: 10px; padding: 25px 20px; border: 1px solid var(--p5);
    align-items: center; justify-content: center; flex-direction: column; text-align: center; cursor: pointer; }
.module_program_list_nav ul li + li { margin-top: 20px; }
.module_program_list_nav ul li:first-child { order: -1; }
.module_program_list_nav ul li.active { border-color: transparent;
    box-shadow: 4px 4px 20px 0 rgba(54,54,54,.2); background: var(--p3); color: var(--t2); }
.module_program_list_nav ul li span { display: block; font-size: 16px; margin-top: 10px; }
.module_program_list_nav ul li.active span {  }
.module_program_list_body { flex: 1 1 auto; }

.module_program_days { display: flex; }
.module_program_days a { font-size: 24px; font-weight: 700; text-transform: uppercase;
    flex: 1 1 auto; width: 50%; display: flex; flex-direction: column; height: 76px; align-items: flex-start;
    border-bottom: 5px solid #CCC; }
.module_program_days a span { text-transform: none; display: block; font-size: 18px; font-weight: 400; margin-top: 8px; }
.module_program_days a.active { border-color: var(--p3); }

.mpl_item { padding: 20px 0; border-bottom: 1px solid #D6D6D6; }
.mpl_item_stream { background: var(--bg1); color: var(--p3); display: flex; justify-content: space-between;
    align-items: center; padding: 14px 30px; border-radius: 10px; font-size: 18px; max-width: 575px; font-weight: 400; }
.mpl_item_stream > span {  font-size: 12px; display: none;  }
.mpl_item_time { padding: 10px 0; font-size: 18px; font-weight: 400; }
.mpl_item_stream p { display: block; font-size: 18px; color: var(--t1); font-weight: 400; white-space: nowrap;
    position: relative; padding-left: 16px; }
.mpl_item_stream p:before { content: ""; position: absolute; top: 0; bottom: 0; margin: auto; left: 0; width: 6px; height: 6px; border-radius: 8px;
    background: var(--p3); }
.mpl_item_content h6 { font-size: 24px; margin-top: 10px; font-weight: 700; }
.mpl_item_content h6.inner_time { color: var(--p3); }
.mpl_item_content h6 a { text-decoration: underline; }
.mpl_item_content h6 a.prog_name { font-weight: inherit; font-size: inherit; font-family: inherit; }
.mpl_item_content h6 a:hover { text-decoration: none; color: var(--p3); }
.mpl_item_content p { font-size: 16px; font-weight: 400; line-height: 1.25; margin-top: 5px; }
.mpl_item_content p + h6 { margin-top: 12px; }



.prog_obnov { margin-top: 60px; }

@media(max-width: 641px) {
    .module_program_list { flex-direction: column; }
    .module_program_list_nav { width: 100%;  margin: 0 0 40px; position: relative; }
    .scroll_to_btn.left,.scroll_to_btn.right { content: ""; width: 24px; height: 24px;
        position: absolute; bottom: -26px; cursor: pointer;
        -webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none; }
    .scroll_to_btn.left,.scroll_to_btn.right { background: url(../img_prog/prev_icon.svg) no-repeat 50% 50% / 24px auto; }
    .scroll_to_btn.right {  left: 0; }
    .scroll_to_btn.left { right: 0; background: url(../img_prog/next_icon.svg) no-repeat 50% 50% / 24px auto;  }
    .module_program_list_nav ul { flex-direction: row; overflow: auto; margin: 0 -20px; padding-bottom: 8px; padding-right: 20px; }
    .module_program_list_nav ul li { font-size: 18px; height: 48px; padding: 0 10px; white-space: nowrap; margin-left: 10px; }
    .module_program_list_nav ul li + li { margin-top: 0; }
    .module_program_list_nav ul li span { font-size: 12px; margin-top: 4px; }
    .module_program_list_body { margin-top: 10px; }

    .module_program_days a { font-size: 20px; height: 60px; }
    .module_program_days a span { font-size: 16px; }
    .mpl_item_stream { padding: 12px 15px; }
    .mpl_item_stream,.mpl_item_stream p { font-size: 14px; }
    .mpl_item_stream p { display: inline-block; white-space: nowrap; }
    .mpl_item_time { font-size: 14px; padding-bottom: 15px; }
    .mpl_item_content h6 { font-size: 16px; }
    .mpl_item_content > *:first-child { margin-top: 0; }
    .module_program_header { flex-direction: column-reverse; align-items: flex-start; }
    .view_type { margin-top: 15px; }


    .mp_tr_item p { font-size: 12px; }
    .mp_tr_item h6 + p { margin-top: 7px; }
}


.program_nm_footer { display: flex; justify-content: center; padding: 80px 0; }
.program_nm_footer .btn { margin: 0 20px; }

@media(max-width: 767px) {
    .program_nm_footer .btn {
        width: auto;
        padding: 0 20px;
        margin: 0 10px;
    }
}

@media(max-width: 767px) {
    .program-page { padding-top: 20px; }
    .program-page__subtitle { text-align: left !important; }
    .program-page .title { margin-top: 0 !important; }
}

@media(max-width: 480px) {
    .program > .title { font-size: 19px; text-align: center; }
    .program-page__subtitle { text-align: left !important; font-size: 21px !important; line-height: 1.3 !important; }
    .program-page { padding-top: 20px; }
    .program-page .title { margin-top: 0 !important; }
}

/* ============================================================
 * ОБЩИЕ СТИЛИ ДЛЯ СТРАНИЦ ПРОГРАММЫ (SSOT)
 * ============================================================ */

/* Карточка спикера */
.program_expert_item {
    padding: 20px 30px;
    display: block;
    background-color: #fff;
    border: 1px solid #0026fc;
    flex: 0 0 calc(50% - 10px);
    box-sizing: border-box;
}

.program_expert_item h6 {
    margin-top: 5px;
    color: #0026fc;
    font-size: 30px;
    font-family: "Alumni Sans", sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1.3;
}

.program_expert_item p {
    font-size: 18px;
    margin-top: 10px;
    color: #1d1d1f;
    line-height: 1.2;
}

a.program_expert_item h6 {
    text-decoration: underline;
}

a.program_expert_item:hover {
    background-color: #0026fc;
}

a.program_expert_item:hover h6 {
    color: #fff;
    text-decoration: none;
}

a.program_expert_item:hover p {
    color: #fff;
}

.program_expert_item a {
    text-decoration: underline;
    transition: 0.2s;
}

.program_expert_item a:hover {
    color: #0026fc;
    text-decoration: none;
    transition: 0.2s;
}

/* Ссылки на спикеров внутри текста — наследуют цвет родителя, только подчёркивание */
a.program-speaker-link {
    text-decoration: underline;
    text-underline-offset: 3px;
    color: inherit;
}
a.program-speaker-link:hover {
    text-decoration: none;
}

/* Блок обновления */
.renew_box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 30px;
}

.renew_box::before {
    content: "";
    display: block;
    width: 65px;
    height: 58px;
    background-color: #0026fc;
    -webkit-mask: url(../img/renew_icon.svg) no-repeat 50% 50% / contain;
    mask: url(../img/renew_icon.svg) no-repeat 50% 50% / contain;
}

.renew_box h6 {
    font-family: "Montserrat", sans-serif;
    font-size: 32px;
    color: #0026fc;
    line-height: 1.3;
    font-weight: 500;
    margin: 0;
}

/* Кнопка контурная синяя */
.btn_blue_outline {
    border: 2px solid #0026fc;
    background-color: transparent;
    color: #0026fc;
}

.btn_blue_outline:hover {
    background-color: #0026fc;
    color: #fff;
}

/* Сообщение если нет спикеров */
.no_speakers_message {
    text-align: center;
    font-size: 24px;
    color: #0026fc;
    padding: 40px 0;
}

/* Обёртка программы */
.program_wrap {
    margin-top: 0;
}

/* Адаптивность — общие блоки */
@media (max-width: 991px) {
    .program_item_speaker_list {
        width: 100%;
    }
    .program_expert_item {
        flex: 0 0 calc(50% - 10px);
    }
}

@media (max-width: 767px) {
    .program_expert_item h6 {
        font-size: 22px;
    }
    .program_expert_item p {
        font-size: 14px;
    }
    .program_item_speaker_list {
        gap: 5px;
    }
    .program_expert_item {
        flex: 0 0 100%;
    }
    .renew_box {
        flex-direction: column;
        gap: 10px;
    }
    .renew_box h6 {
        font-size: 24px;
    }
    .pp_btn_inner {
        flex-direction: column;
        align-items: center;
    }
    .pp_btn_inner .btn {
        width: 100%;
        max-width: 300px;
    }
}

@media (max-width: 641px) {
    .program_wrap {
        margin-top: 0;
    }
    .program-page .container {
        padding: 0 20px;
    }
    .program_item_potok {
        padding: 25px 15px;
        font-size: 20px;
    }
    .program_expert_item h6 {
        font-size: 22px;
    }
    .program_expert_item p {
        font-size: 14px;
    }
    .program_item {
        gap: 5px;
        margin-bottom: 5px;
    }
    .program_item:last-child {
        margin-bottom: 0;
    }
    .program_item_speaker_list {
        gap: 5px;
    }
    .renew_box {
        flex-direction: column;
        gap: 10px;
    }
    .renew_box h6 {
        font-size: 24px;
    }
    .pp_btn_inner {
        flex-direction: column;
        align-items: center;
    }
    .pp_btn_inner .btn {
        width: 100%;
        max-width: 300px;
    }
}

@media (max-width: 576px) {
    .program_item_speaker_list {
        display: flex;
        flex-wrap: wrap;
    }
    .program_expert_item {
        flex: 0 0 100% !important;
        width: 100%;
    }
}

/* ====== Сердечки — база ====== */
.like-page .heart-container { display: none; }
html.hearts-enabled .like-page .heart-container { display: block; }

.program-page .heart-container { display: none; }
html.hearts-enabled .program-page .heart-container { display: block; }

.heart-container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
    margin: 0;
    padding: 0;
    border: none;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.heart-container {
    position: relative;
    cursor: pointer;
    font-size: 20px;
    user-select: none;
    transition: 100ms;
    opacity: 0.5;
}

.heart-container .checkmark {
    top: 0;
    left: 0;
    height: 2em;
    width: 2em;
    transition: 100ms;
    animation: dislike_effect 400ms ease;
}

.heart-container .checkmark svg {
    width: 100%;
    height: 100%;
}

.heart-container .checkmark path {
    fill: none;
    stroke: #0026fc;
    stroke-width: 20px;
    transition: fill 0.3s, stroke-width 0.3s;
}

.heart-container input:checked ~ .checkmark path {
    fill: #0026fc;
    stroke-width: 0;
}

.heart-container input:checked ~ .checkmark {
    animation: like_effect 400ms ease;
}

.heart-container:hover {
    transform: scale(1.1);
}

@keyframes like_effect {
    0% { transform: scale(0); }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); }
}

@keyframes dislike_effect {
    0% { transform: scale(0); }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); }
}

/* ====== Сердечки — карточки экспертов (program-potoki.php) ====== */
.program_expert_item .heart-container {
    position: absolute;
    bottom: 8px;
    right: 8px;
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s, transform 0.1s;
    font-size: 20px;
}

.program_expert_item:hover .heart-container {
    opacity: 1;
}

.program_expert_item .heart-container:has(input:checked) {
    opacity: 0.5;
    transform: scale(0.7);
}

.program_expert_item:hover .heart-container:has(input:checked) {
    opacity: 1;
    transform: scale(1);
}

a.program_expert_item input:checked ~ .checkmark path {
    fill: #0026fc;
    stroke-width: 0;
}

a.program_expert_item:hover .checkmark path {
    stroke: #ffffff;
}

a.program_expert_item:hover input:checked ~ .checkmark path {
    fill: #ffffff;
    stroke-width: 0;
}

div.program_expert_item input:checked ~ .checkmark path {
    fill: #0026fc;
    stroke-width: 0;
}

@media (max-width: 767px) {
    .program_expert_item .heart-container {
        opacity: 0.5;
    }
}

/* ====== Сердечки — like-page (fn/like.php) ====== */
/* Photo view */
.view-photo .like-spiker .heart-container {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 10;
    font-size: 20px;
    opacity: 0.5;
    transition: opacity 0.3s, transform 0.1s;
}

.view-photo .like-spiker:hover .heart-container {
    opacity: 1;
}

.view-photo .like-spiker .heart-container:has(input:checked) {
    opacity: 0.5;
    transform: scale(0.7);
}

.view-photo .like-spiker:hover .heart-container:has(input:checked) {
    opacity: 1;
    transform: scale(1);
}

.view-photo .like-spiker .checkmark path {
    stroke: #ffffff;
    fill: none;
    transition: stroke 0.3s, fill 0.3s, stroke-width 0.3s;
}

.view-photo .like-spiker:hover .heart-container .checkmark path {
    stroke: #0026fc;
}

.view-photo .like-spiker input:checked ~ .checkmark path {
    fill: #ffffff;
    stroke-width: 0;
    stroke: #ffffff;
}

.view-photo .like-spiker:hover input:checked ~ .checkmark path {
    fill: #0026fc;
    stroke-width: 0;
    stroke: #0026fc;
}

/* List view */
.like-spikers-flex.view-list .like-spiker .heart-container {
    position: absolute;
    bottom: 8px;
    right: 8px;
    z-index: 10;
    font-size: 20px;
    opacity: 0;
    transition: opacity 0.3s, transform 0.1s;
}

.like-spikers-flex.view-list .like-spiker:hover .heart-container {
    opacity: 1;
}

.like-spikers-flex.view-list .like-spiker .heart-container:has(input:checked) {
    opacity: 0.5;
    transform: scale(0.7);
}

.like-spikers-flex.view-list .like-spiker:hover .heart-container:has(input:checked) {
    opacity: 1;
    transform: scale(1);
}

.like-spikers-flex.view-list .like-spiker .checkmark path {
    stroke: #0026fc;
    fill: none;
    transition: fill 0.3s, stroke-width 0.3s, stroke 0.3s;
}

.like-spikers-flex.view-list .like-spiker input:checked ~ .checkmark path {
    fill: #0026fc;
    stroke-width: 0;
}

.like-spikers-flex.view-list .like-spiker:hover .checkmark path {
    stroke: #fff;
}

.like-spikers-flex.view-list .like-spiker:hover input:checked ~ .checkmark path {
    fill: #fff;
}

/* Timing block */
.like-timing-block .mp_tr_item[data-potoki] {
    position: relative;
}

.like-timing-block .mp_tr_item[data-potoki] .heart-container {
    position: absolute;
    bottom: 6px;
    right: 6px;
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s, transform 0.1s;
    font-size: 16px;
}

.like-timing-block .mp_tr_item[data-potoki]:hover .heart-container {
    opacity: 1;
}

.like-timing-block .mp_tr_item[data-potoki] .heart-container:has(input:checked) {
    opacity: 0.5;
    transform: scale(0.7);
}

.like-timing-block .mp_tr_item[data-potoki]:hover .heart-container:has(input:checked) {
    opacity: 1;
    transform: scale(1);
}

.like-timing-block .mp_tr_item[data-potoki] input:checked ~ .checkmark path {
    fill: #0026fc;
    stroke-width: 0;
}

/* Program list box */
.like-program-list-box .module_program_list_box {
    display: block;
    position: relative;
}

.like-program-list-box .mpl_item {
    position: relative;
}

.like-program-list-box .mpl_item .heart-container {
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%);
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s, transform 0.1s;
    font-size: 18px;
}

.like-program-list-box .mpl_item:hover .heart-container {
    opacity: 1;
}

.like-program-list-box .mpl_item .heart-container:has(input:checked) {
    opacity: 0.5;
    transform: translateY(-50%) scale(0.7);
}

.like-program-list-box .mpl_item:hover .heart-container:has(input:checked) {
    opacity: 1;
    transform: translateY(-50%) scale(1);
}

.like-program-list-box .mpl_item input:checked ~ .checkmark path {
    fill: #0026fc;
    stroke-width: 0;
}

/* Mobile overrides */
@media (max-width: 767px) {
    .like-timing-block .mp_tr_item[data-potoki] .heart-container {
        opacity: 0.5;
    }
    .like-program-list-box .mpl_item .heart-container {
        opacity: 0.5;
        transform: translateY(-50%) scale(0.7);
    }
    .like-program-list-box .mpl_item:hover .heart-container {
        opacity: 0.5;
        transform: translateY(-50%) scale(0.7);
    }
}

/* ====== Love-heart toggle (выбрать всё) ====== */
.love-heart {
    box-sizing: border-box;
    position: relative;
    margin-left: 14px;
    transform: rotate(-45deg) translate(-50%, -33px) scale(3);
    display: block;
    border: 1px solid hsl(231deg 28% 86%);
    cursor: pointer;
    top: 0;
    border-top-left-radius: 100px;
    border-top-right-radius: 100px;
    width: 10px;
    height: 8px;
    border-bottom: 0;
}

.love-heart::after {
    content: "";
    display: block;
    box-sizing: border-box;
    position: absolute;
    right: -9px;
    transform: rotate(90deg);
    top: 7px;
    border: 1px solid hsl(231deg 28% 86%);
    border-top-left-radius: 100px;
    border-top-right-radius: 100px;
    width: 10px;
    height: 8px;
    border-bottom: 0;
}

.love-heart .bottom {
    content: "";
    display: block;
    box-sizing: border-box;
    position: absolute;
    width: 11px;
    height: 11px;
    border-left: 1px solid hsl(231deg 28% 86%);
    border-bottom: 1px solid hsl(231deg 28% 86%);
    left: -1px;
    top: 5px;
    border-radius: 0px 0px 0px 5px;
}

.round {
    position: absolute;
    z-index: 1;
    width: 8px;
    height: 8px;
    background: hsl(0deg 0% 100%);
    box-shadow: rgb(0 0 0 / 24%) 0px 0px 4px 0px;
    border-radius: 100%;
    left: 0px;
    bottom: -1px;
    transition: all .5s ease;
    animation: check-animation2 .5s forwards;
}

input:checked + .love-heart,
input:checked + .love-heart::after,
input:checked + .love-heart .bottom {
    border-color: #0026fc;
    box-shadow: inset 6px -5px 0px 2px #4d7fff;
}

input:checked + .love-heart .round {
    transform: translate(0px, 0px);
    animation: check-animation .5s forwards;
    background-color: hsl(0deg 0% 100%);
}

@keyframes check-animation {
    0% { transform: translate(0px, 0px); }
    50% { transform: translate(0px, 7px); }
    100% { transform: translate(7px, 7px); }
}

@keyframes check-animation2 {
    0% { transform: translate(7px, 7px); }
    50% { transform: translate(0px, 7px); }
    100% { transform: translate(0px, 0px); }
}
