@media (min-width:768px) and ( max-width:850px) {

}

@media (max-width: 768px) {
    
    /* 共通 */
    
    *{
        font-size: 12px;
    }
    
    .pc_none{
        display: block;
    }
    
    .sp_none{
        display: none;
    }
    
    .index h2{
        flex-direction: column;
        align-items: center;
    }
    
    .index h2 img:first-of-type{
        height: auto;
        width: 40%;
        padding-bottom: 30px;
    }
    
    .index h2 img:last-of-type{
        height: auto;
        width: 60%;
    }
    
    .index h3{
        font-size: 14px;
    }
    
    .index h4 img{
        height: 30px;
    }
    
    .index h4 span{
        font-size: 12px;
    }
    
    .index h5{
        font-size: 16px;
    }
    
    .container:not(.main .container){
        margin: 0px 20px 0 35px;
        width: calc(100% - 55px) !important;
    }
    

    /* header */
    
    header{
        padding: 20px;
    }
    
    header .company{
        font-size: 12px;
        color: #000;
    }
    
    .sp_menu{
        padding: 20px;
    }
    
    .sp_menu i{
        font-size: 20px;
    }

    
    /* index */
    
    .main{
        padding-bottom: 120px;
    }
    
    .scroll{
        height: fit-content;
    }
    
    .scroll::before{
        width: 70px;
        margin-bottom: 50px;
    }
    
    .planbanner{
        bottom: 20px;
        right: 20px;
    }
    
    .planbanner .getsugaku{
        height: 24px;
    }
    
    .planbanner p{
        font-size: 12px;
        letter-spacing: 0.1em;
    }
    
    .planbanner .number{
        font-size: 30px;
    }
    
    .planbanner .yen,
    .planbanner .kara{
        font-size: 18px;
    }
    
    .about{
        background-size: auto 250px;
        background-position: top 160px right 20%;
    }

    .about .container{
        padding-right: 0;
    }
    
    .about h5{
        padding-top: 295px;
        padding-bottom: 20px;
    }
    
    .service .container > div{
        width: calc((100% - 10px) / 2);
    }
    
    .service .container > div:not(:nth-of-type(4n)) {
        margin-right: 0;
    }
    
    .service .container > div:nth-of-type(-n+4) {
        margin-bottom: 0;
    }
    
    .service .container > div:nth-of-type(even) {
        margin-left: 10px;
    }
    
    .service .container > div:not(:nth-last-of-type(-n+2)){
        margin-bottom: 10px;
    }
    
    .service h6{
        font-size: 14px;
    }
    
    .service h6 + p{
        font-size: 12px;
    }
    
    .feature{
        background-size: cover;
        background-position: center top;
    }
    
    .feature h4{
        background-size: 180px;
        background-position: top 20px right 10%;
        padding-top: 140px;
    }
    
    .feature_box:not(:last-of-type){
        margin-bottom: 0;
    }
    
    .feature .post{
        width: 100%;
    }
    
    .feature_box > div{
        margin-top: 10px;
    }
    
    .feature_box > div:nth-of-type(2){
        order: 1;
    }
    
    .feature_box > div:nth-of-type(3){
        order: 2;
    }
    
    .feature_box > div:nth-of-type(4){
        order: 3;
    }
    
    .feature .list,
    .feature .list:hover,
    .feature .list.active{
        background-position: left 18px center;
        background-size: auto 30px;
        padding-left: 55px;
        display: flex;
        justify-content: space-between;
    }
    
    .feature .list h6{
        font-size: 13px;
    }
    
    .index_work .container{
        flex-direction: column;
        align-items: flex-start;
        margin: 0 !important;
    }
    
    .index_work h4{
        padding: 168px 150px 48px 90px;
    }
    
    .index_work h4 + div{
        width: calc(100% - 55px);
        margin: 0px 20px 0 35px;
    }
    
    .index_work .arrow{
        padding: 0;
    }
    
    .index_works .button a{
        width: calc(100% - 55px);
        margin: 0px 20px 0 35px;
        box-sizing: border-box;
        text-align: center;
        font-size: 14px;
    }
    
    
    /* common */
    
    .common header h1 img{
        height: 24px;
    }
    
    .common h2 img{
        height: 36px;
    }
    
    
    /* works */
    
    .works_list li {
        width: 100%;
        margin-bottom: 40px;
    }
    
    .works h3{
        font-size: 18px;
        padding-bottom: 30px;
    }
    
    .works h3 span{
        font-size: 18px;
    }
    
    .works h3 + div{
        flex-wrap: wrap;
        padding: 30px 0;
    }
    
    .works h3 + div ul{
        margin-right: 0;
        margin-left: auto;
        padding-top: 20px;
    }
    
    .works_contents .container > dl, .works_contents .container .img{
        margin-bottom: 30px;
    }
    
    .works_contents .container .img:nth-last-of-type(2){
        margin-bottom: 30px;
    }
    
    .works dt,
    .works dd{
        font-size: 12px;
    }
    
    .works dt {
        width: 100px;
    }
    
    .works dd{
        width: calc(100% - 100px);
    }
    
    .works .container > dl dt{
        width: 100%;
        padding-bottom: 20px;
    }
    
    .works .container > dl dd{
        width: 100%;
        font-size: 12px;
    }
    
    
    /* contact */
    
    .contact .container{
        padding: 40px 20px;
    }
    
    .contact .tel_info{
        margin-top: 20px;
        margin-bottom: 30px;
    }
    
    .contact .tel_info a{
        margin-left: 0;
        font-size: 26px;
        padding: 20px;
        width: 100%;
        margin-top: 20px;
    }
    
    .contact .tel_info a img{
        width: 14px;
    }
    
    .contact .progress .line{
        min-width: 50px;
    }
    
    #error .error_box{
        padding: 20px;
    }
    
    .contact dl{
        width: 100%;
    }
    
    .contact dt, .contact dd {
        width: 100%;
    }
    
    .contact dt:not(:last-of-type) {
        border-bottom: 0;
        padding-bottom: 5px;
    }
    
    .contact dd {
        padding-top: 0;
    }
    
    .select{
        width: 100%;
    }
    
    .select::after{
        margin-top: -12px;
    }
    
    .button{
        margin-top: 20px;
    }
    
    button#send{
        width: 100%;
        padding: 10px;
    }

    
    /* footer */
    
    .footer_contact{
        background-position: center;
        padding-bottom: 100px;
    }
    
    .footer_contact h4 img{
        height: 36px;
    }
    
    .footer_contact p{
        font-size: 12px;
        text-align: center;
    }
    
    .footer_contact .button{
        flex-direction: column;
    }
    
    .footer_contact .button a:first-of-type{
        margin-right: 0;
        margin-bottom: 10px;
    }
    
    .footer_contact .button a{
        width: 100%;
        font-size: 14px;
        padding: 20px 0;
    }
    
    .footer_contact .button a:last-of-type{
        font-size: 26px;
    }
    
    .footer_contact .button a img{
        width: 14px;
    }
    
    footer{
        flex-direction: column;
        padding: 35px;
    }
    
    footer .logo{
        height: auto;
        width: 100%;
        max-width: 290px;
        box-sizing: border-box;
        padding-bottom: 20px;
        padding-right: 0;
    }
    
    footer .logo img{
        height: auto;
        width: 100%;
    }
    
    footer p{
        width: 100%;
    }

    
    #page_top{
        left: 35px;
        bottom: 20px;
        margin-left: 35px;
        margin-top: -84px;
        margin-bottom: 14px;
    }
}