@media screen and (max-width: 950px) {
    #site-header .mw {
        padding: 0 1rem 1rem;
    }
}

@media screen and (max-width: 800px) {

    .mw40p {
        max-width: 100%;
    }

    .is40p {
        max-width: 100%;
    }
}

@media screen and (max-width: 640px) {

    #main .lb-fl-cap,
    .fl,
    #main .lb-fr-cap,
    .fr {
        float: none;
        display: block;
        margin: 0 auto 20px;
        max-width: 100%;
    }

    #main,
    #side {
        float: none;
        width: 100%;
        margin-bottom: 2em;
    }

    #site-header p {
        margin: 0;
    }

    #site-header>div {
        padding: 1em 25px;
    }

    .toprecommends {
        clear: both;
        float: none;
        margin-bottom: 1em;
        width: 100%;
    }

    .toprecommends .fl {
        float: left;
    }

    .toprecommends::after {
        clear: both;
        content: '';
        display: block;
    }

    #side {
        padding: 2em 0;
        border-top: 2px dotted #595959;
    }

    #side .dashi_pagepart_wrapper p {
        display: inline-block;
        width: 49%;
        vertical-align: top;
    }

    #topmenu ul.menu,
    #topmenu form {
        display: none;
    }

    .spbox {
        display: block;
    }

    .spbox>a {
        display: inline-block;
        padding-right: 1rem;
    }

    .spbox>form {
        display: inline-block;
        border-left: 1px solid #999;
        padding-left: 1rem;
    }

    .sp {
        display: block;
    }

    #mainmenu #ocbt {
        font-size: 1rem;
        padding: 0.5rem;
        cursor: pointer;
        width: auto;
        display: inline-block;
    }

    #ocbt i {
        margin-top: -0.1rem;
        ;
        display: inline-block;
        vertical-align: middle;
    }

    #mainmenu .menu {
        display: block;
        left: -13em;
        top: 0;
        width: 13em;
        height: 100vh;
        position: fixed;
        background: rgba(0, 0, 0, 0.9);
        padding: 0;
        z-index: 1000;
        transition: 0.5s;
    }

    #mainmenu .menu.open {
        left: 0;
    }

    #mainmenu a,
    nav#mainmenu .menu li {
        display: block;
    }

    #mainmenu .menu li a {
        display: block;
        margin: 0;
        border-radius: 0;
        color: #fff;
        text-align: left;
        text-decoration: none;
        background: transparent;
    }

    #mainmenu .menu a {
        background: transparent;
        border-radius: 0;
        padding: 0.75rem;
        border-bottom: 1px solid #ccc;
    }

    #mainmenu li a.on,
    #mainmenu li a:hover {
        background: rgba(0, 51, 102, 0.5);
    }

    #mainmenu li:first-child {
        display: block;
    }

    #closebt {
        font-size: 90%;
        text-align: right;
        cursor: pointer;
    }

    .is240 {
        max-width: 100%;
    }

    .is200 {
        max-width: 100%;
    }

    .layouttable {
        display: block;
        max-width: 100%;
    }
}

@media screen and (max-width: 400px) {

    .alignright,
    .alignleft .fr,
    .fl {
        display: block;
        float: none;
        margin: 0 auto 2rem;
    }

    .frontbox img {
        max-width: 100%;
        float: none;
    }

    .seika td {
        width: 100%;
        display: block;
    }

    .seika td::after {
        clear: both;
        content: '';
        display: block;
    }
}