@media (max-width: 450px) {
    .mobile_s{
        display: block;
    }
    .mobile_m{
        display: none;
    }
}

@media (max-width: 1024px) {
    
    /* 共通 */
    
    *{
        font-size: 13px;
    }
    
    .sp_none{
        display: none;
    }
    
    .pc_none{
        display: block;
    }
    
    .container{
        width: 90%;
        margin: 0 auto;
    }
    
    
    /* spmenu */
    
    header{
        display: none;
        align-items: center;
        justify-content: center;
        position: fixed;
        background: #fff;
        width: 100vw;
        background-image: url(../images/header.png);
        background-size: 70% auto;
        background-repeat: no-repeat;
        background-position: top -50% center;
    }
    
    body.active{
        overflow: hidden;
    }
    
    body.active header{
        display: flex;
    }
    
    header .menu{
        margin-top: 40px;
    }
    
    header .header_name{
        font-size: 16px;
    }
    
    .menu .container{
        width: auto;
    }
    
    .spmenu_button{
        background: #000;
        position: fixed;
        z-index: 999;
        top: 20px;
        right: 20px;
        width: 60px;
        height: 60px;
        border-radius: 50%;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    
    .spmenu_button.active{
        background: var(--red);
    }
    
    .spmenu_button .icon{
        position: relative;
        width: 20px;
        height: 16px;
    }
    
    .spmenu_button .icon span{
        position: absolute;
        width: 100%;
        height: 1px;
        background: #fff;
        display: block;
    }
    
    .spmenu_button .icon span:first-of-type{
        top: 0;
    }
    .spmenu_button .icon span:nth-of-type(2){
        top: 7px;
    }
    .spmenu_button .icon span:last-of-type{
        bottom:0;
    }
    
    .spmenu_button.active span:first-of-type{
        transform: rotate(45deg);
        top: 7px;
    }
    .spmenu_button.active span:last-of-type{
        top: 7px;
        transform: rotate(-45deg);
    }
    .spmenu_button.active span:nth-of-type(2){
        opacity: 0;
    }
    
    
    /* 共通 */
    
    body{
        background-size: auto 100%;
        background-position: right top;
    }
    
    body.lower{
        background-image: url(../images/lower_bg.png);
        background-size: 100% auto;
        background-position: top 200px center;
    }
    
    section{
        padding-bottom: 80px;
    }
    
    .lower section.title{
        padding-bottom: 60px;
    }
    
    .right_contents{
        width: 100%;
        padding-right: 0;
    }
    
    .index h3,
    .lower h2,
    .lower h3{
        font-size: 26px;
        margin-bottom: 30px;
    }

    .index h3 span,
    .lower h2 span,
    .lower h3 span{
        font-size: 10px;
    }

    .index h3 .icon-scale::before,
    .lower h2 .icon-scale::before,
    .lower h3 .icon-scale::before{
        font-size: 8px;
    }
    
    .lower .title .container{
        padding: 60px;
        border-radius: 40px;
        margin-top: 30px;
    }
    
    .lower .title img{
        height: 150px;
        bottom: -20px;
    }
    
    .button{
        font-size: 14px;
        padding: 24px 30px;
        width: 100%;
        box-sizing: border-box;
    }
    
    
    /* index */
    
    main{
        padding-bottom: 330px;
    }
    
    main .container{
        padding-top: 30px;
    }
    
    main .img{
        height: 330px;
        border-radius: 40px;
    }
    
    main .main_copy{
        width: 100%;
        height: 190px;
        padding-left: 0;
        right: auto;
        left: 2px;
        background-repeat: no-repeat;
        background-position: right center;
    }
    
    main h2{
        font-size: 18px;
        text-align: center;
    }
    
    main .en{
        font-size: 11px;
        margin-bottom: 20px;
        text-align: center;
    }
    
    main .caption{
        margin-bottom: -250px;
        text-align: center;
    }
    
    .index_topics .container{
        flex-direction: column;
        align-items: flex-start;
    }
    
    .index_topics .button{
        margin-top: 30px;
    }
    
    .index_topics dl{
        max-width: none;
    }
    
    .index_topics dt{
        width: 100%;
        border-bottom: 0;
        padding-bottom: 0;
    }
    
    .index_topics dd {
        width: 100%;
        line-height: 1.8em;
        padding-top: 0;
    }
    
    .index_topics .pc_none{
        display: block;
    }
    
    .index_about .container{
        flex-direction: column;
        align-items: flex-start;
        box-sizing: border-box;
        padding: 70px 40px 40px 40px;
        border-radius: 40px;
    }
    
    .index_about .container > div{
        margin-right: 0;
    }
    
    .index_about .button{
        margin-top: 30px;
    }
    
    .service ul{
        flex-wrap: wrap;
    }
    
    .service li{
        width: calc((100% - 30px) / 3);
        font-size: 13px;
        padding: 26px 0;
        border-radius: 20px;
    }
    
    .service li div {
        height: 50px;
        width: 52px;
    }
    
    .service .button{
        width: 100%;
        margin-top: 30px;
    }
    
    .process .container{
        flex-direction: column;
    }
    
    .process .img{
        max-width: 100%;
        margin-right: 0;
        height: 350px;
        margin-bottom: 30px;
        border-radius: 40px;
    }
    
    .process ul{
        padding-left: 17px;
    }
    
    .process li{
        padding-left: 30px;
    }
    
    .process li:not(:last-of-type){
        padding-bottom: 20px;
    }
    
    .process h4{
        font-size: 16px;
    }
    
    .process h4::before{
        font-size: 13px;
        width: 34px;
        height: 34px;
        left: -48px;
    }
    
    .index_recruit .container{
        background-size: cover;
        border-radius: 40px;
    }
    
    .index_recruit .container > div{
        padding: 70px 40px 40px 40px;
        background: rgb(255 255 255 / .7);
        max-width: none;
    }
    
    .info_link{
        background-size: auto 80%;
    }
    
    .information .container{
        flex-direction: column;
        align-items: flex-start;
    }
    
    .information .button_block{
        padding: 0;
        padding-top: 50px;
        width: 100%;
    }
    
    .information .button_block a{
        height: 63px;
        font-size: 15px;
        max-width: none;
    }
    
    .information .button_block img{
        width: 26px;
    }
    
    .link .container{
        flex-direction: column;
    }
    
    .link a{
        width: 100%;
        box-sizing: border-box;
        padding: 40px;
        border-radius: 30px;
    }
    
    .link h4{
        font-size: 24px;
    }
    
    .link h4 span{
        font-size: 11px;
    }
    
    .link h4 .icon-scale::before{
        font-size: 10px;
    }
    
    .link p{
        font-size: 13px;
    }
    
    
    /* topics */
    
    .topics .post{
        flex-direction: column;
        padding-bottom: 40px;
        margin-bottom: 40px;
    }
    
    .topics .post .img{
        width: 100%;
        height: 250px;
        margin-right: 0;
        border-radius: 40px;
    }
    
    .topics .post .text{
        width: 100%;
    }
    
    .topics h3{
        margin-top: 30px;
        font-size: 14px;
    }
    
    .topics .pager{
        flex-wrap: wrap;
    }
    
    .topics .pager li a{
        font-size: 12px;
        width: 30px;
        height: 30px;
    }
    
    .topics .pager li:not(:last-of-type){
        margin-right: 10px;
    }
    
    
    /* about */
    
    .about .message h4{
        font-size: 16px;
        margin-bottom: 40px;
        margin-left: 0;
    }
    
    .about .message .flex{
        flex-direction: column;
    }
    
    .about .message .img{
        max-width: none;
        min-width: 0;
        margin-right: 0;
        height: 400px;
        margin-bottom: 40px;
        border-radius: 30px;
    }
    
    .about .message .img img{
        object-position: top center;
    }
    
    .about .mission .container{
        padding: 60px 10px;
        border-radius: 40px;
        flex-direction: column;
        align-items: center;
        box-sizing: border-box;
    }
    
    .about .mission h4, .about .mission li{
        font-size: 12px;
    }
    
    .about .mission h4::before{
        height: 1px;
        width: 20px;
        margin-bottom: 0;
        margin-right: 10px;
    }
    
    .about .mission h4{
        align-self: center;
        -ms-writing-mode: horizontal-tb;
        writing-mode: horizontal-tb;
        margin-bottom: 20px;
    }
    
    .about .company .img{
        border-radius: 30px;
    }
    
    .about .company .member dl{
        width: 100%;
    }
    
    .about .lm{
        flex-direction: column;
        gap: 60px;
    }
    
    .about .lm .container{
        width: 90%;
    }
    
    .about .zeb .container,
    .zeb_about .container:nth-of-type(2){
        flex-direction: column;
        box-sizing: border-box;
        padding: 40px;
        gap: 30px;
        border-radius: 40px;
    }
    
    .about .zeb .img, .zeb_about .container:nth-of-type(2) .img{
        max-width: 200px;
        min-width: 0;
    }
    
    .about .zeb h3, .zeb_about .container:nth-of-type(2) h4{
        text-align: center;
    }
    
    .about .helth .flex{
        gap: 10px;
    }
    
    .about .smile_img{
        margin-top: 30px;
        border-radius: 40px;
    }

    .about .smile_img img{
        height: 200px;
    }
    
    th{
        width: auto;
        font-size: 12px;
        line-height: 1.5em;
    }
    
    td{
        font-size: 12px;
    }
    
    th, td {
        padding: 5px 10px;
    }
    
    /* zeb */
    
    .zeb .note{
        width: 90%;
        margin: 30px auto 0;
    }
    
    .zeb .note p{
        font-size: 12px;
    }
    
    .zeb .attempt .container{
        flex-direction: column;
    }
    
    .zeb .attempt .img {
        max-width: 100%;
        margin-right: 0;
        height: 350px;
        margin-bottom: 30px;
        border-radius: 40px;
    }
    
    .zeb .attempt .img img{
        object-position: top center;
    }
    
    .zeb .attempt .button{
        line-height: 1.5em;
    }
    
    .zeb .attempt h4,
    .zeb .result h4{
        margin-bottom: 22px;
        font-size: 16px;
    }
    
    .zeb .scroll table td{
        white-space: nowrap;
    }
    
    .zeb .result .note{
        width: 100%;
    }
    
    
    /* achieve */
    
    .achieve .list_block{
        gap: 20px;
    }
    
    .achieve .list_block > div{
        width: 100%;
        border-radius: 30px;
    }
    
    .achieve_list .flex a{
        margin-bottom: 36px;
        padding: 0 24px 0 18px;
        font-size: 12px;
        margin-left: 14px;
    }
    
    .achieve_list .flex a::after{
        top: 11px;
        right: 13px;
    }
    
    .achieve h4{
        font-size: 16px;
    }
    
    .achieve .text li,
    .modal .service_list li{
        font-size: 11px;
    }
    
    .achieve .achieve_list .img{
        height: 140px;
    }
    
    .modal .vertical p{
        -ms-writing-mode: horizontal-tb;
        writing-mode: horizontal-tb;
        margin-bottom: 0;
    }
    
    .modal .vertical p:not(:last-of-type){
        margin-right: 4px;
    }
    
    .modal .container{
        border-radius: 40px;
    }
    
    .modal .container > div{
        flex-direction: column;
        padding: 30px;
    }
    
    .modal .vertical{
        flex-direction: row;
        flex-wrap: wrap;
        margin-right: 0;
        margin-bottom: 10px;
    }
    
    .modal .vertical .category{
        padding: 4px 10px;
        font-size: 10px;
    }
    
    .modal .vertical .line{
        display: none;
    }
    
    .modal .vertical p{
        font-size: 12px;
    }
    
    .modal .vertical .en{
        font-size: 10px;
    }
    
    .modal .img{
        border-radius: 30px;
        height: 180px;
        margin-bottom: 20px;
        margin-top: 14px;
    }
    
    .modal .day{
        width: 50px;
        height: 50px;
        font-size: 11px;
        margin-right: 18px;
    }
    
    .modal .address{
        font-size: 11px;
    }
    
    .modal .close{
        width: 50px;
        height: 50px;
        top: auto;
        bottom: -25px;
        left: 50%;
        transform: translateX(-50%);
    }
    
    .modal .close span{
        width: 16px;
    }
    
    
    /* recruit */
    
    .recruit .message .container{
        width: 90%;
    }
    
    .recruit .message .container div{
        padding: 30px 0 40px 0;
    }
    
    .recruit .message .bg{
        position: static;
        height: 350px;
        width: 100%;
        border-radius: 0 0 0 0;
        background-position: top center;
    }
    
    .recruit .ideal .container{
        padding: 70px 40px 40px 40px;
        border-radius: 40px;
    }
    
    .recruit .ideal h4 span{
        font-size: 18px;
        line-height: 2.5em;
    }
    
    .recruit .grid{
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }
    
    .recruit .grid > div{
        padding: 10px 20px;
        box-sizing: border-box;
        width: calc((100% - 10px)/2);
        border-radius: 10px;
    }
    
    .recruit .grid .box-big{
        width: 100%;
        flex-direction: row;
        justify-content: center;
        align-items: center;
    }
    
    .recruit .grid h4{
        text-align: left;
    }
    
    .recruit .grid .img{
        width: 100px;
        margin-right: 30px;
    }
    
    .recruit .employee .flex{
        gap: 80px;
    }
    
    .recruit .employee .flex > div{
        width: 100%;
    }
    
    .recruit .employee .flex > div:nth-of-type(n+3){
        margin-top: 0;
    }
    
    .recruit .employee .img,
    .recruit .employee .affiliat{
        border-radius: 30px;
    }
    
    .recruit .employee .text{
        border-radius: 0 0 30px 30px;
    }
    
    .recruit .benefits .container{
        flex-direction: column;
        padding: 50px 40px 40px 40px;
        gap: 20px;
        border-radius: 40px;
    }
    
    .about .company dt, .job dt{
        width: 100%;
        border-bottom: 0;
        padding-bottom: 0;
        font-size: 14px;
    }
    
    .about .company dd, .job dd{
        padding: 0 0 10px 0;
        width: 100%;
    }
    
    .recruit .job .button{
        min-width: 0;
        width: 100%;
        margin: 50px auto 0;
    }
    
    
    /* access */
    
    .access h3{
        font-size: 20px;
    }
    
    .access iframe{
        border-radius: 0 40px 0 0;
    }
    
    
    /* contact */
    
    .contact dl{
        margin: 40px 0 30px 0;
    }
    
    .contact dt{
        width: 100%;
        margin-bottom: 0;
    }
    
    .contact dt label{
        font-size: 13px;
    }
    
    .contact dd{
        width: 100%;
    }
    
    .contact dd.radio{
        flex-direction: column;
        align-items: flex-start;
    }
    
    .contact dd.radio .flex:not(:first-of-type){
        margin-left: 0;
    }
    
    .contact.check dt{
        margin-bottom: 10px;
    }
    
    .contact.check dd{
        line-height: 2em;
    }
    
    
    /* policy */
    
    .policy h3{
        font-size: 16px;
        margin-bottom: 10px;
    }
    
    .policy .contents .container{
        box-sizing: border-box;
        padding-left: 20px;
    }
    
    .policy .contents p, .policy .contents li{
        font-size: 11px;
    }
    
    
    /* footer */
    
    footer{
        margin-bottom: 80px;
    }
    
    footer .container{
        padding: 20px 0;
        width: 90%;
        flex-direction: column;
        align-items: flex-start;
    }
    
    footer .img{
        top: 40px;
        width: 160px;
    }
    
    footer .img:first-of-type img{
        height: 118px;
    }
    
    footer address{
        margin-top: 10px;
        font-size: 11px;
        line-height: 1.5em;
    }
    
    /* page top */

    .cta{
        position: fixed;
        width: 100%;
        right: 0;
        flex-direction: row;
    }

    #page_top{
        cursor: pointer;
        background: #000;
        border-radius: 0;
        width: 50%;
        height: 70px;
    }

    #page_top a{
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        color: #fff;
    }

    #recruit_button{
        width: 50%;
        height: 70px;
        border-radius: 0;
        margin-bottom: 0;
    }

    #recruit_button a{
        flex-direction: row;
    }

    #recruit_button a img{
        margin-bottom: 0;
        margin-top: -6px;
        margin-right: 10px;
        width: 50px;
    }

    
}