.calendar-tab-mobile {
    display: none;
}

@media (max-width: 1079px) {
    body .calendar-template {
        background: #f3f6f8;
        overflow: hidden;
    }

    body .calendar-template .calendar-hero {
        position: relative;
        display: flex;
        align-items: center;
        width: 100%;
        min-height: clamp(98px, 26.2vw, 283px);
        padding: 0;
        overflow: hidden;
        text-align: center;
        background: url("../img/calendar/calendar-hero-mobile.webp") center top / cover no-repeat;
    }

    body .calendar-template .calendar-hero::before {
        display: none;
    }

    body .calendar-template .calendar-hero .container {
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        width: 100%;
        height: 100%;
        padding: 0 18px;
    }

    body .calendar-template .calendar-hero h1 {
        margin: 0 0 clamp(11px, 2.87vw, 31px);
        color: #fff;
        font-size: clamp(19px, 5.19vw, 56px);
        font-weight: 800;
        line-height: 1.22;
        letter-spacing: 0;
    }

    body .calendar-template .calendar-hero p {
        margin: 0;
        color: rgba(255, 255, 255, .9);
        font-size: clamp(11px, 2.96vw, 32px);
        font-weight: 400;
        line-height: 1.45;
    }

    body .calendar-template .calendar-content {
        padding: 0 0 0;
    }

    body .calendar-template .calendar-inner {
        width: 100%;
        max-width: 640px;
        padding-left: 22px;
        padding-right: 22px;
    }

    body .calendar-template .calendar-tabs {
        display: flex;
        flex-wrap: nowrap;
        justify-content: flex-start;
        gap: 8px;
        margin: clamp(25px, 6.57vw, 71px) 0 clamp(31px, 8.15vw, 88px);
        padding: 0;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    body .calendar-template .calendar-tabs::-webkit-scrollbar {
        display: none;
    }

    body .calendar-template .calendar-tab {
        display: flex;
        flex: 0 0 65px;
        align-items: center;
        justify-content: center;
        min-width: 65px;
        min-height: 30px;
        height: 30px;
        padding: 0 6px;
        border: 0;
        border-radius: 0;
        background: #E4EAF9;
        color: #686E7F;
        font-size: clamp(10px, 2.59vw, 28px);
        font-weight: 700;
        line-height: 1;
        white-space: nowrap;
        box-shadow: none;
        transform: none;
        transition: background .16s, color .16s;
    }

    body .calendar-template .calendar-tab:hover,
    body .calendar-template .calendar-tab.is-active {
        background: #044FF6;
        color: #FFFFFF;
        box-shadow: none;
        transform: none;
    }

    body .calendar-template .calendar-tab-desktop {
        display: none;
    }

    body .calendar-template .calendar-tab-mobile {
        display: inline;
    }

    body .calendar-template .calendar-list {
        min-height: 0;
        padding: 0;
    }

    body .calendar-template .calendar-empty {
        min-height: 180px;
        padding: 32px 0;
        color: #999;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.6;
        text-align: center;
    }

    body .calendar-template .calendar-event {
        min-height: 0;
        margin: 0 0 clamp(22px, 5.93vw, 64px);
        padding: 0 0 clamp(22px, 5.83vw, 63px);
        border: 0;
        border-bottom: 1px solid #DCDCDC;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    body .calendar-template .calendar-event-time {
        display: block;
        margin: 0 0 clamp(15px, 4.07vw, 44px);
        color: #999;
        font-size: clamp(9px, 2.41vw, 26px);
        font-weight: 400;
        line-height: 1.2;
    }

    body .calendar-template .calendar-event-title {
        margin: 0 0 clamp(22px, 5.74vw, 62px);
        color: #333;
        font-size: clamp(16px, 4.26vw, 46px);
        font-weight: 800;
        line-height: 1.35;
        letter-spacing: 0;
        word-break: break-word;
        overflow-wrap: anywhere;
    }

    body .calendar-template .calendar-event-meta {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        color: #333;
        font-size: clamp(10px, 2.78vw, 30px);
        font-weight: 400;
        line-height: 1.4;
        white-space: nowrap;
    }

    body .calendar-template .calendar-event-meta span {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    body .calendar-template .calendar-event-meta strong {
        color: #333;
        font-weight: 400;
    }

    body .calendar-template .calendar-event-meta b {
        color: #18c84f;
        font-weight: 400;
    }
}

@media (max-width: 560px) {
    body .calendar-template .calendar-inner {
        max-width: none;
        padding-left: 22px;
        padding-right: 22px;
    }
}

@media (max-width: 374px) {
    body .calendar-template .calendar-inner {
        padding-left: 16px;
        padding-right: 16px;
    }

    body .calendar-template .calendar-tabs {
        gap: 7px;
    }

    body .calendar-template .calendar-tab {
        flex-basis: 61px;
        min-width: 61px;
        font-size: 11px;
    }

    body .calendar-template .calendar-event-meta {
        gap: 6px;
        font-size: 11px;
    }
}
