@media only screen and (max-width: 1200px) {
    article {
        margin: 0 auto;
        width: var(--max_width);
        min-width: unset;
    }
    
    body {
        padding-top: var(--max_header_height);
    }
    
    /*== header ==*/
    header {
        min-width: unset;
    }

    header nav {
        width: var(--max_width);
        height: var(--max_header_height);
        line-height: var(--max_header_height);
    }

    header nav>ul>li:nth-of-type(1) img {
        height: 40px;
    }

    header nav>ul>li:not(:nth-of-type(1)) {
        display: none;
    }

    header nav .bars,
    header nav .profile {
        position: relative;
        flex-shrink: 0;
        display: table;
        margin: 15px;
        width: 20px;
        height: 20px;
    }
    header nav .bars>label {
        display: table-cell;
        vertical-align: middle;
        cursor: pointer;
        position: relative;
        transition: all .2s ease-out;
    }
    header nav .bars>label span {
        position: absolute;
        width: 100%;
        height: 2px;
        background-color: #999;
        transition: all .2s ease-out;
    }
    header nav .bars>label span:nth-of-type(1) { top: 0px; }
    header nav .bars>label span:nth-of-type(2) { top: 9px; }
    header nav .bars>label span:nth-of-type(3) { bottom: 0px; }

    header nav .profile>a>img {
        position: absolute;
        right: -3px;
        top: -3px;
    }

    footer {
        position: relative;
        padding: 30px 25px;
        min-width: unset;
        zoom: 0.6;
        background-color: #DADADC;
    }
    footer strong {
        display: block;
    }
    footer ul:last-of-type>li:last-of-type li:last-of-type {
        position: absolute;
        top: 10px;
        right: 5px;
    }
    /**/
    footer>article>ul>li:first-of-type::after { content: unset; }
    footer>article>ul>li:not(:first-of-type, :last-of-type)::after {
        content: '|';
        padding: 0 4px;
    }
    footer>article>ul>li:nth-of-type(1),
    footer>article>ul>li:last-of-type {
        width: 100%;
    }
    /**/

    #login>article input:not([type='checkbox']), #login>article button {
        box-sizing: border-box;
        width: 100%;
        height: 60px;
        font-size: 12pt;
    }
    
    header #drop:checked ~ ul>li:nth-of-type(1) {
        display: none;
    }
    header #drop:checked ~ ul>li:last-of-type {
        order: 1;
        padding-top: 50px;
        height: 120px;
        background-color: #4B4993;
    }
    header #drop:checked ~ ul>li:last-of-type>a {
        display: none;
        pointer-events: none;
        color: #4B4993;
    }
    header #drop:checked ~ ul>li:last-of-type img {
        display: block;
        width: 53px;
        height: 53px;
    }
    header #drop:checked ~ ul>li:last-of-type .sub_menu {
        top: unset;
        display: flex;
        flex-flow: row nowrap;
        margin-top: 35px;
        font-family: 'Poppins';
        font-weight: 400;
        font-size: 12px;
    }
    header #drop:checked ~ ul>li:last-of-type .sub_menu>li {
        margin-right: 5px;
        border-radius: 14px;
        border: 0;
        width: 65px;
        height: 21px;
        line-height: 21px;
        text-align: center;
        text-transform: uppercase;
    }
    header #drop:checked ~ ul>li:last-of-type .sub_menu>li:first-of-type:not(:only-of-type) {
        background-color: #191919;
        color: white;
    }
    header #drop:checked ~ ul>.bars {
        position: absolute;
        z-index: 1;
        color: white;
    }
    header #drop:checked ~ ul>.bars>label span:nth-of-type(1) {
        top: 3px;
        width: 12px;
        transform: translate(-1px, 4px) rotate(-45deg);
    }
    header #drop:checked ~ ul>.bars>label span:nth-of-type(2) {
        top: 11px;
    }
    header #drop:checked ~ ul>.bars>label span:nth-of-type(3) {
        bottom: -2px;
        width: 12px;
        transform: translate(-1px, -5px) rotate(45deg);
    }
    header #drop:checked ~ .navback {
        display: block;
        flex-basis: 100%;
        position: absolute;
        z-index: -1;
        top: 46px;
        left: 0;
        width: 100%;
        height: 100vh;
        background-color: #fff;
        opacity: 0.8;
        box-shadow: 0 5px 10px #ccc;
    }
    header #drop:checked ~ ul {
        flex-direction: column;
        justify-content: flex-start;
        position: absolute;
        border: 1px solid #BEBEBE;
        text-align: unset;
        width: 240px;
        height: 100vh;
        background-color: white;
        /* overflow: auto; */
    }
    header #drop:checked ~ ul>li {
        order: 2;
        display: block;
        border-bottom: 1px solid #BEBEBE;
        padding-left: 25px;
        height: 32px;
        line-height: 32px;
        font-weight: 500;
        font-size: 15px;
        color: #525252;
    }
    
    header #drop:checked ~ ul>li:nth-of-type(5)>a {
        pointer-events: none;
    }
    header #drop:checked ~ ul>li:nth-of-type(5)::before {
        content: '^';
        position: absolute;
        right: 15px;
        color: #BEBEBE;
        transform: rotate(180deg);
    }
    header nav>ul>li:hover:not(:first-child) {
        background-color: unset;
        color: unset;
    }
    header #drop:checked ~ ul>li:nth-of-type(5)>.sub_menu {
        /* position: unset; */
        top: 32px;
        left: 0;
        width: 100%;
        height: 100vh;
        background-color: #E9E9E9;
        font-size: 13px;
        color: #858585;
    }
    header #drop:checked ~ ul>li:nth-of-type(5)>.sub_menu>li {
        border: 0;
        padding-left: 25px;
        height: 26px;
        line-height: 26px;
        background-color: unset;
    }
    
    header #drop:checked ~ ul>.profile {
        position: absolute;
        left: calc(100vw - 50px);
        pointer-events: none;
    }

    ul#step>li>label {
        position: absolute;
        top: 0;
        left: 0;
        padding-top: 20px;
        width: 100%;
        height: 100%;
    }
    ul#step>li>label::before {
        background-position: center 88px;
    }
    
    #vol_panel {
        zoom: 0.5;
        display: flex;
        flex-flow: row nowrap;
        align-items: center
    }
    #vol_panel>ul#vol>li {
        margin: 10px;
    }

    #video_panel>ul {
        flex-wrap: wrap;
        padding: 0;
        background-size: auto;
        width: 100%;
    }
}

/* Mobile */
@media only screen and (max-width: 420px) {
    header nav>ul>li {
        width: unset;
        height: var(--max_header_height);
    }

    #banner {
        height: 240px;
        background: url('/images/mobile/banner/main.png');
        background-size: cover;
    }
    #banner.step {
        height: 145px;
        background: url('/images/mobile/banner/class.png');
        background-size: cover;
    }
    #banner.video {
        height: 145px;
        background: url('/images/mobile/banner/video.png');
        background-size: cover;
    }
    #banner.kids {
        height: 145px;
        background: url('/images/mobile/banner/kids.png');
        background-size: cover;
    }

    #login>article {
        width: 100vw;
        zoom: 0.95;
    }

    #step_panel {
        margin: 28px auto;
    }
    ul#step {
        flex-wrap: wrap;
        zoom: 0.5;
        margin: 30px;
    }
    ul#step>li {
        position: relative;
        margin: 5px;
        padding-top: calc(50% - 5px *2);
        width: calc(50% - 5px *2)
    }

    #vol_panel>p {
        flex-grow: 2;
        display: block;
        width: calc(100% - 105px * 6);
        color: white;
        font-family: 'Nanum Gothic';
        font-weight: 600;
        font-size: 50px;
        text-align: center;
        text-shadow: 0 3px 2px #00000030;
    }
    
    #vol_panel>ul#vol {
        overflow: hidden;
        flex-grow: 0;
    }
    
    #video_panel>img.close {
        zoom: 0.5;
        top: 20px;
        right: 0;
        margin-top: calc(100% / 4 * 3);
    }
    #video_panel>ul>li:nth-of-type(1) {
        order: 1;
        padding: 0 25px;
        width: 100%;
    }
    #video_panel>ul>li:nth-of-type(2) {
        margin: 0;
        width: 100%;
    }
}

/* Tablet */
@media only screen and (max-width: 1200px) and (min-width: 420px) {
    header nav>ul>li {
        width: var(--max_width);
        height: var(--max_header_height);
    }

    footer>article>ul>li:nth-of-type(5) {
        width: 50%;
    }

    #banner {
        height: 0;
        background: url('/images/mobile/banner/main.png');
    }
    #banner.step {
        height: 0;
        background: url('/images/mobile/banner/class.png');
    }
    #banner.video {
        height: 0;
        background: url('/images/mobile/banner/video.png');
    }
    #banner.kids {
        height: 0;
        background: url('/images/mobile/banner/kids.png');
    }

    #login>article {
        margin-top: unset;
        width: 50vw;
        zoom: 0.7;
    }
    
    #step_panel {
        margin: 20px auto;
    }
    ul#step {
        zoom: 0.5;
        margin: 30px;
    }
    ul#step>li {
        position: relative;
        margin: 5px;
        padding-top: calc(25% - 5px * 4);
        width: calc(25% - 5px * 4)
    }

    #vol_panel>ul#vol {
        margin: 0 20px;
        width: 100%;
    }

    #video_panel>img.close {
        zoom: 0.5;
        top: 10px;
        left: calc((100vw - (100vmin - 50px) / 3 * 4 - 25px) * 2);
        margin-top: 0;
    }

    #video_panel>ul>li:nth-of-type(1) {
        padding: 15px 10px 0 5px;
        width: calc(100vw - (100vmin - 50px) / 3 * 4 - 10px);
    }
    #video_panel>ul>li:nth-of-type(2) {
        position: fixed;
        right: 0;
        z-index: 1;
        margin: 0;
        padding: unset;
        padding-left: calc((100vmin - 50px - 6px * 2) / 3 * 4);
        width: unset;
        height: calc(100vmin - 50px);
    }
    #video_panel>ul {
        justify-content: unset;
    }
}
