/* =========================================================
   SCHEDULES PAGE
   TIẾNG TRUNG HERO
========================================================= */

.schedules-page {
    --schedule-blue: #1e73be;
    --schedule-blue-hover: #17639f;
    --schedule-main-blue: #238bb5;

    --schedule-navy: #123d6b;

    --schedule-text: #60778b;
    --schedule-muted: #8192a1;

    --schedule-soft: #eef8fc;
    --schedule-soft-2: #f7fbfd;

    --schedule-border: #d8e7ef;

    width: 100%;
    overflow: hidden;

    background: #ffffff;
}


/* =========================================================
   COMMON
========================================================= */

.schedules-eyebrow {
    display: block;

    color: var(--schedule-blue);

    font-size: 13px;
    font-weight: 800;

    line-height: 1.2;
    letter-spacing: .16em;
}


.schedules-heading-line {
    width: 64px;
    height: 2px;

    display: block;

    margin-top: 11px;

    border-radius: 999px;

    background: var(--schedule-blue);
}


/* =========================================================
   FILTER SECTION
========================================================= */

.schedules-filter-section {
    padding:
        72px 0 76px;

    border-bottom:
        1px solid var(--schedule-border);

    background:
        #ffffff;
}


.schedules-filter-card {
    padding:
        31px 34px;

    border:
        1px solid var(--schedule-border);

    border-radius:
        20px;

    background:
        var(--schedule-soft);

    box-shadow:
        0 15px 38px rgba(18, 61, 107, .055);
}


/* =========================================================
   FILTER HEADING
========================================================= */

.schedules-filter-card__heading {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr) minmax(320px, .78fr);

    align-items: end;

    gap: 50px;

    margin-bottom: 28px;
}


.schedules-filter-card__heading h2 {
    margin:
        9px 0 0;

    color:
        var(--schedule-navy);

    font-size:
        clamp(27px, 2.5vw, 36px);

    font-weight:
        850;

    line-height:
        1.16;

    letter-spacing:
        -.035em;
}


.schedules-filter-card__heading h2 span {
    color:
        var(--schedule-blue);
}


.schedules-filter-card__heading>p {
    max-width:
        520px;

    margin:
        0;

    color:
        var(--schedule-text);

    font-size:
        12.5px;

    line-height:
        1.7;
}


/* =========================================================
   FILTER
========================================================= */

.schedules-filter {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr)) auto;

    align-items: end;

    gap:
        13px;
}


/* =========================================================
   FILTER FIELD
========================================================= */

.schedules-filter__field {
    min-width: 0;

    display: block;
}


.schedules-filter__label {
    display: flex;

    align-items: center;

    gap: 7px;

    margin-bottom:
        8px;

    color:
        #657d8f;

    font-size:
        10.5px;

    font-weight:
        700;
}


.schedules-filter__label i {
    color:
        var(--schedule-blue);

    font-size:
        10px;
}


/* =========================================================
   SELECT
========================================================= */

.schedules-filter__select {
    position: relative;

    display: block;
}


.schedules-filter__select select {
    width:
        100%;

    min-height:
        48px;

    padding:
        0 42px 0 14px;

    border:
        1px solid #c8dfe9;

    border-radius:
        11px;

    outline:
        none;

    appearance:
        none;

    background:
        #ffffff;

    color:
        #49667b;

    font: inherit;

    font-size:
        12px;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}


.schedules-filter__select select:focus {
    border-color:
        var(--schedule-blue);

    box-shadow:
        0 0 0 3px rgba(30, 115, 190, .10);
}


.schedules-filter__select>i {
    position:
        absolute;

    top:
        50%;

    right:
        15px;

    transform:
        translateY(-50%);

    color:
        #8397a6;

    font-size:
        9px;

    pointer-events:
        none;
}


/* =========================================================
   FILTER ACTIONS
========================================================= */

.schedules-filter__actions {
    display:
        flex;

    align-items:
        center;

    gap:
        8px;
}


.schedules-filter__submit {
    min-height:
        48px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    padding:
        0 18px;

    border:
        1px solid var(--schedule-blue);

    border-radius:
        11px;

    background:
        var(--schedule-blue);

    color:
        #ffffff;

    cursor:
        pointer;

    font: inherit;

    font-size:
        11.5px;

    font-weight:
        700;

    white-space:
        nowrap;

    transition:
        background-color .2s ease,
        border-color .2s ease,
        transform .2s ease;
}


.schedules-filter__reset {
    min-height:
        48px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        7px;

    padding:
        0 13px;

    border:
        1px solid #c7dde8;

    border-radius:
        11px;

    background:
        #ffffff;

    color:
        #61798b;

    font-size:
        10.5px;

    font-weight:
        650;

    white-space:
        nowrap;

    text-decoration:
        none;
}


@media (hover: hover) {

    .schedules-filter__submit:hover {
        transform:
            translateY(-2px);

        border-color:
            var(--schedule-blue-hover);

        background:
            var(--schedule-blue-hover);
    }


    .schedules-filter__reset:hover {
        border-color:
            var(--schedule-blue);

        color:
            var(--schedule-blue);
    }

}


/* =========================================================
   RESULTS SECTION
========================================================= */

.schedules-results {
    padding:
        82px 0 92px;

    background:
        var(--schedule-soft);
}


/* =========================================================
   RESULT HEADING
========================================================= */

.schedules-results__heading {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap:
        30px;

    margin-bottom:
        34px;
}


.schedules-results__heading h2 {
    margin:
        19px 0 0;

    color:
        var(--schedule-navy);

    font-size:
        clamp(31px, 2.8vw, 42px);

    font-weight:
        850;

    line-height:
        1.14;

    letter-spacing:
        -.04em;
}


.schedules-results__heading h2 span {
    color:
        var(--schedule-blue);
}


.schedules-results__count {
    margin:
        0 0 3px;

    color:
        var(--schedule-text);

    font-size:
        11.5px;
}


.schedules-results__count strong {
    color:
        var(--schedule-blue);

    font-size:
        14px;

    font-weight:
        800;
}


/* =========================================================
   SCHEDULE GRID
========================================================= */

.schedules-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        20px;
}


/* =========================================================
   SCHEDULE CARD
========================================================= */

.schedule-card {
    min-width: 0;

    display: flex;

    flex-direction: column;

    padding:
        25px;

    border:
        1px solid rgba(30, 115, 190, .16);

    border-radius:
        20px;

    background:
        #ffffff;

    box-shadow:
        0 14px 34px rgba(18, 61, 107, .06);

    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}


@media (hover: hover) {

    .schedule-card:hover {
        transform:
            translateY(-5px);

        border-color:
            rgba(30, 115, 190, .28);

        box-shadow:
            0 23px 46px rgba(18, 61, 107, .105);
    }

}


/* =========================================================
   CARD HEADER
========================================================= */

.schedule-card__header {
    display: flex;

    align-items: flex-start;
    justify-content: space-between;

    gap:
        20px;

    padding-bottom:
        20px;

    border-bottom:
        1px solid #e5edf2;
}


.schedule-card__course {
    min-width:
        0;
}


.schedule-card__course>span {
    display:
        block;

    margin-bottom:
        5px;

    color:
        var(--schedule-blue);

    font-size:
        8.5px;

    font-weight:
        800;

    letter-spacing:
        .11em;
}


.schedule-card__course h2 {
    margin:
        0;

    color:
        var(--schedule-navy);

    font-size:
        19px;

    font-weight:
        800;

    line-height:
        1.35;
}


/* =========================================================
   STATUS
========================================================= */

.schedule-status {
    flex:
        0 0 auto;

    min-height:
        29px;

    display:
        inline-flex;

    align-items:
        center;

    gap:
        6px;

    padding:
        0 10px;

    border:
        1px solid transparent;

    border-radius:
        999px;

    font-size:
        9.5px;

    font-weight:
        750;

    white-space:
        nowrap;
}


.schedule-status__dot {
    width:
        6px;

    height:
        6px;

    display:
        block;

    border-radius:
        50%;

    background:
        currentColor;
}


/* Còn chỗ */
.schedule-status--recruiting {
    border-color:
        #bfe5d6;

    background:
        #effaf5;

    color:
        #137657;
}


/* Sắp đủ */
.schedule-status--nearly-full {
    border-color:
        #ead9aa;

    background:
        #fffaf0;

    color:
        #9a6b18;
}


/* Đã đủ */
.schedule-status--full {
    border-color:
        #e7c6c6;

    background:
        #fff3f3;

    color:
        #a34a4a;
}


/* Đã khai giảng */
.schedule-status--started {
    border-color:
        #bfd9e7;

    background:
        #edf7fb;

    color:
        #34718e;
}


/* Tạm hoãn */
.schedule-status--postponed {
    border-color:
        #d8dce0;

    background:
        #f5f6f7;

    color:
        #707b84;
}


.schedule-status--default {
    border-color:
        #d6e3ea;

    background:
        #f6fafc;

    color:
        #728695;
}


/* =========================================================
   CARD DETAILS
========================================================= */

.schedule-card__details {
    display:
        grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    margin:
        0;

    padding:
        6px 0;
}


.schedule-card__details>div {
    min-width:
        0;

    padding:
        15px 0;
}


.schedule-card__details>div:nth-child(odd) {
    padding-right:
        18px;

    border-right:
        1px solid #e9eff3;
}


.schedule-card__details>div:nth-child(even) {
    padding-left:
        18px;
}


.schedule-card__details>div:nth-child(-n + 2) {
    border-bottom:
        1px solid #e9eff3;
}


.schedule-card__details dt {
    display:
        flex;

    align-items:
        center;

    gap:
        8px;

    margin-bottom:
        7px;

    color:
        #8193a2;

    font-size:
        9.5px;

    font-weight:
        700;
}


.schedule-card__details dt>span {
    width:
        27px;

    height:
        27px;

    display:
        grid;

    place-items:
        center;

    flex:
        0 0 auto;

    border-radius:
        8px;

    background:
        #e7f4fa;

    color:
        var(--schedule-blue);

    font-size:
        9px;
}


.schedule-card__details dd {
    margin:
        0;

    color:
        #506b7e;

    font-size:
        12px;

    font-weight:
        600;

    line-height:
        1.5;
}


.schedule-card__date {
    color:
        var(--schedule-blue) !important;

    font-weight:
        750 !important;
}


/* =========================================================
   CARD FOOTER
========================================================= */

.schedule-card__footer {
    display:
        flex;

    align-items:
        center;
    justify-content:
        space-between;

    gap:
        20px;

    margin-top:
        auto;

    padding-top:
        18px;

    border-top:
        1px solid #e5edf2;
}


.schedule-card__note {
    display:
        flex;

    align-items:
        center;

    gap:
        7px;

    color:
        #8193a2;

    font-size:
        9.5px;

    line-height:
        1.5;
}


.schedule-card__note i {
    color:
        var(--schedule-blue);
}


.schedule-card__register {
    min-height:
        42px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    padding:
        0 14px;

    border:
        1px solid var(--schedule-blue);

    border-radius:
        10px;

    background:
        var(--schedule-blue);

    color:
        #ffffff;

    font-size:
        10.5px;

    font-weight:
        700;

    white-space:
        nowrap;

    text-decoration:
        none;

    transition:
        transform .2s ease,
        background-color .2s ease;
}


@media (hover: hover) {

    .schedule-card__register:hover {
        transform:
            translateY(-2px);

        background:
            var(--schedule-blue-hover);

        color:
            #ffffff;
    }

}


/* =========================================================
   EMPTY STATE
========================================================= */

.schedules-empty {
    width:
        min(100%, 760px);

    margin-inline:
        auto;

    padding:
        52px 35px;

    border:
        1px solid var(--schedule-border);

    border-radius:
        20px;

    background:
        #ffffff;

    text-align:
        center;

    box-shadow:
        0 16px 40px rgba(18, 61, 107, .06);
}


.schedules-empty__icon {
    width:
        68px;

    height:
        68px;

    display:
        grid;

    place-items:
        center;

    margin:
        0 auto 19px;

    border-radius:
        18px;

    background:
        #e5f3f9;

    color:
        var(--schedule-blue);

    font-size:
        23px;
}


.schedules-empty__eyebrow {
    display:
        block;

    color:
        var(--schedule-blue);

    font-size:
        9.5px;

    font-weight:
        800;

    letter-spacing:
        .13em;
}


.schedules-empty h2 {
    max-width:
        560px;

    margin:
        10px auto 12px;

    color:
        var(--schedule-navy);

    font-size:
        27px;

    font-weight:
        800;

    line-height:
        1.25;
}


.schedules-empty p {
    max-width:
        580px;

    margin:
        0 auto;

    color:
        var(--schedule-text);

    font-size:
        12.5px;

    line-height:
        1.75;
}


.schedules-empty__actions {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex-wrap:
        wrap;

    gap:
        10px;

    margin-top:
        23px;
}


.schedules-empty__primary,
.schedules-empty__secondary {
    min-height:
        45px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    padding:
        0 17px;

    border-radius:
        10px;

    font-size:
        11px;

    font-weight:
        700;

    text-decoration:
        none;
}


.schedules-empty__primary {
    border:
        1px solid var(--schedule-blue);

    background:
        var(--schedule-blue);

    color:
        #ffffff;
}


.schedules-empty__secondary {
    border:
        1px solid #bdd8e6;

    background:
        #ffffff;

    color:
        var(--schedule-navy);
}


/* =========================================================
   CONSULTATION
========================================================= */

.schedules-consultation {
    padding:
        72px 0;

    border-top:
        1px solid var(--schedule-border);

    background:
        #ffffff;
}


.schedules-consultation__inner {
    display:
        grid;

    grid-template-columns:
        minmax(0, 1fr) auto;

    align-items:
        center;

    gap:
        60px;

    padding:
        38px 42px;

    border:
        1px solid var(--schedule-border);

    border-radius:
        20px;

    background:
        var(--schedule-soft);

    box-shadow:
        0 15px 38px rgba(18, 61, 107, .055);
}


.schedules-consultation__eyebrow {
    display:
        block;

    margin-bottom:
        10px;

    color:
        var(--schedule-blue);

    font-size:
        10px;

    font-weight:
        800;

    letter-spacing:
        .12em;
}


.schedules-consultation__content h2 {
    max-width:
        680px;

    margin:
        0 0 11px;

    color:
        var(--schedule-navy);

    font-size:
        clamp(27px, 2.4vw, 36px);

    font-weight:
        850;

    line-height:
        1.18;

    letter-spacing:
        -.035em;
}


.schedules-consultation__content h2 span {
    color:
        var(--schedule-blue);
}


.schedules-consultation__content p {
    max-width:
        650px;

    margin:
        0;

    color:
        var(--schedule-text);

    font-size:
        13px;

    line-height:
        1.7;
}


.schedules-consultation__actions {
    display:
        flex;

    align-items:
        center;

    gap:
        10px;
}


.schedules-consultation__primary,
.schedules-consultation__secondary {
    min-height:
        49px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        9px;

    padding:
        0 19px;

    border-radius:
        11px;

    font-size:
        12px;

    font-weight:
        650;

    white-space:
        nowrap;

    text-decoration:
        none;
}


.schedules-consultation__primary {
    border:
        1px solid #f4bd32;

    background:
        #f4bd32;

    color:
        #173d53;
}


.schedules-consultation__secondary {
    border:
        1px solid #bdd8e6;

    background:
        #ffffff;

    color:
        var(--schedule-navy);
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1100px) {

    .schedules-filter-card__heading {
        grid-template-columns:
            1fr;

        gap:
            15px;
    }


    .schedules-filter {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .schedules-filter__actions {
        align-self:
            end;
    }


    .schedules-consultation__inner {
        grid-template-columns:
            1fr;

        gap:
            28px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 720px) {

    .schedules-filter-section,
    .schedules-results {
        padding:
            56px 0 60px;
    }


    .schedules-filter-card {
        padding:
            24px 18px;
    }


    .schedules-filter {
        grid-template-columns:
            1fr;
    }


    .schedules-filter__actions {
        align-items:
            stretch;

        flex-direction:
            column;
    }


    .schedules-filter__submit,
    .schedules-filter__reset {
        width:
            100%;
    }


    /* =============================================
       RESULT
    ============================================== */

    .schedules-results__heading {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            12px;
    }


    .schedules-grid {
        grid-template-columns:
            1fr;
    }


    /* =============================================
       CARD
    ============================================== */

    .schedule-card {
        padding:
            20px;
    }


    .schedule-card__header {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            12px;
    }


    .schedule-card__details {
        grid-template-columns:
            1fr;
    }


    .schedule-card__details>div,
    .schedule-card__details>div:nth-child(odd),
    .schedule-card__details>div:nth-child(even) {
        padding:
            13px 0;

        border-right:
            0;

        border-bottom:
            1px solid #e9eff3;
    }


    .schedule-card__details>div:last-child {
        border-bottom:
            0;
    }


    .schedule-card__footer {
        align-items:
            stretch;

        flex-direction:
            column;
    }


    .schedule-card__register {
        width:
            100%;
    }


    /* =============================================
       EMPTY
    ============================================== */

    .schedules-empty {
        padding:
            38px 20px;
    }


    .schedules-empty__actions {
        align-items:
            stretch;

        flex-direction:
            column;
    }


    .schedules-empty__primary,
    .schedules-empty__secondary {
        width:
            100%;
    }


    /* =============================================
       CONSULTATION
    ============================================== */

    .schedules-consultation {
        padding:
            48px 0;
    }


    .schedules-consultation__inner {
        padding:
            28px 20px;
    }


    .schedules-consultation__actions {
        align-items:
            stretch;

        flex-direction:
            column;
    }


    .schedules-consultation__primary,
    .schedules-consultation__secondary {
        width:
            100%;
    }

}