@media (max-width: 768px) {
    
    /* 共通 */
    
    .pc_none{
        display: block;
    }
    
    .sp_none{
        display: none;
    }
    
    .scroll_lock{
        overflow: hidden;
    }
    
    section:first-of-type{
        padding: 40px 0;
    }

    section{
        padding-bottom: 40px;
    }
    
    .container {
        width: 90%;
    }
    
    h3.page_title div{
        font-size: 22px;
    }
    
    h3.page_title div span{
        font-size: 14px;
    }
    
    h3.page_title .icon-bracket:before{
        font-size: 50px;
        padding-left:20px;
    }
    
    h3.page_title .icon-flag:before{
        font-size: 14px;
    }
    
    dl{
        padding: 20px;
        display: block;
    }
   
    dt,
    dd{
        width: 100%;
    }
    
    dt{
        border-bottom: 0;
        padding-bottom: 5px;
    }
    
    dd{
        padding-top: 0;
    }
    
    .button button{
        font-size: 12px;
        padding: 8px 30px;
    }
    
    
    /* プログレス */
    
    .progress{
        padding: 0;
        flex-wrap: wrap;
        padding-top: 40px;
    }
    
    .progress div span{
        display: inline;
        font-size: 12px;
        padding-right: 5px;
    }
    
    .progress div:not(:last-child):after{
        font-size: 12px;
    }
    
    
    /* header */
    
    header .sp_menu{
        display: block;
        position: fixed;
        right: 20px;
        top: 20px;
        background-color: rgba(255,255,255,0.8);
        z-index: 999999;
        padding: 10px;
        line-height: 0;
        border-radius: 5px;
        cursor: pointer;
    }
    
    header .sp_menu i{
        font-size: 16px;
    }
    
    header .sp_menu:hover{
        background-color: #fff;
    }
    
    header .sp_menu:hover i{
        color: #999;
    }

    header > div{
        padding: 20px 5% 50px 5%;
        justify-content: center !important;
    }
    
    header .icon-logo:before{
        font-size: 17px;
    }
    
    header .switch{
        padding: 0 20px;
    }
    
    header .switch a{
        font-size: 14px;
    }
    
    header .switch span{
        font-size: 10px;
    }
    
    header .icon-bracket:before{
        padding: 0 10px;
        font-size: 24px;
    }
    
    .sp_menu_content.active{
        width: 100%;
    }
    
    .sp_menu_content{
        display: block;
        position: fixed;
        z-index: 99999;
        background-color: #fff;
        width: 0;
        height: 100%;
        top: 0;
        left: 0;
        overflow: hidden;
        transition: all 0.3s ease-out;
    }
    
    .sp_menu_content.active + .sp_menu .fa-bars:before {
        content: "\f00d";
    }
    
    .sp_menu_content > div{
        display: flex!important;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 100%;
    }
    
    header .sp_menu_content div div:first-of-type{
        align-items: flex-start;
    }
    
    header .sp_menu_content div div:first-of-type ul{
        flex-direction: column;
    }

	header li a{
		font-size: 14px;
	}

    header li{
        margin-bottom: 15px;
    }
    
    .header_login{
        position: absolute;
        bottom: 70px;
        left: auto;
        right: auto;
        align-self: center;
    }
    
    header div.sns{
        position: absolute;
        filter:none;
        left: auto;
        right: auto;
        top: auto;
        bottom: 0;
        background-color:transparent;
    }
    
    header .sns:after{
        display: none;
    }
    
    header .sns_list{
        flex-direction: row;
    }
    
    header .sns li{
        width: 30px;
        height: 30px;
    }
    
    header .sns li i{
        font-size: 15px;
    }
    
    
        /* index */
    
    .index .main{
        margin: 50px 0;
    }
    
    .index h2,
    .index h2 .icon-flag{
        font-size: 16px;
    }
    
    .index h3.caption{
        font-size: 12px;
    }
    
    .index .contents .line_box,
    .index .contents .service{
        display: none;
    }
    
    .index .contents .event,
    .index .contents .omiai{
        width: 90%;
    }
    
    .index .contents .event{
        margin-bottom: 20px;
    }
    
    .index .contents h4{
        font-size: 30px;
    }
    
    .index .contents h4 span{
        font-size: 14px;
        letter-spacing: 0.2em;
    }
    
    .index .contents h4 span i{
        font-size: 12px;
        padding-right: 4px;
        padding-left: 0;
    }
    
    .index .contents .hukidashi{
        padding: 30px;
        font-size: 12px;
    }
    
    .index .banner > .container{
        padding-top: 40px;
    }
    
    .index .banner .banner_img {
        width: 100%;
        max-width: 500px;
    }
    
    .index .banner .banner_img:nth-of-type(odd){
        padding-right: 0;
    }
    
    .index .blog a{
        flex-wrap: wrap;
    }
    
    .index .blog a:not(:last-of-type){
        border-bottom: 1px solid #e6e6e6;
        padding-bottom: 30px;
        margin-bottom: 30px;
    }
    
    .index .blog .post{
        width: calc(100% - 82px);
        padding-left: 20px;
        padding-right: 0;
        padding-bottom: 40px;
    }
    
    .index .blog .post div{
        display: none;
    }
    
    .index .blog .day{
        width: 50px;
        height: 70px;
    }
    
    .index .blog .img{
        width: 100%;
        transform: rotate(0deg);
    }
    
    .index .blog .all a{
        font-size: 12px;
    }

	/* ログイン */
    
    .old_comment{
        padding: 20px;
    }
    
    /* Q&A */
    
    .qa h3 + p{
        padding-top: 20px;
    }
    
    .qa .qa_box{
        padding: 20px;
    }
    
    .qa .qa_box h4{
        font-size: 14px;
        letter-spacing: 0.15em;
    }
    
    .qa .qa_box h4 span.icon-flag,
    .qa .qa_box h4 span.icon-bracket{
        font-size: 12px;
    }
    
    .qa .list{
        padding-right: 20px;
        display: flex;
        line-height: 1.5em;
    }
    
    .qa .list span{
        line-height: 1.3em;
    }
    
    .qa .list::before, .qa .list::after{
        margin-top: 5px;
    }
    
    .qa .text{
        margin-top: 10px;
    }

	.qalink {
		margin-top: 50px;
		margin-bottom: 20px;
	}

	.qalink a {
		margin: 0 10px;
		padding: auto 30px;
		width: auto;
	}

    .tab-label{
        width: 50%;
        width: calc((100% - 20px)/2);
        box-sizing: border-box;
        font-size: 12px;
        letter-spacing: 0.1em;
        line-height: 1.5em;
        padding: 10px 10px;
        text-align: center;
        display: flex;
        justify-content: center;
        flex-direction: column;
    }
    
    .tab-label span{
        font-size: 10px;
    }
    
    .tab-label:not(:last-of-type){
        margin-right: 0;
    }
    
    .tab-label:nth-of-type(odd){
        margin-right: 10px;
    }
    
    .tab-label:nth-of-type(-n+2){
        margin-bottom: 10px;
    }
    
    
    /* お問い合わせ */
    
    .contact_form .tab{
        margin-bottom: 0;
        padding: 0;
        text-align: center;
        margin-bottom: 20px;
    }
    
    .contact_form .tab button{
        padding: 7px 14px;
        border-radius: 5px;
    }
    
    .contact_form .tab button.active{
        padding: 7px 14px;
        border-radius: 5px;
    }
    
    .contact_form .tab button:not(:last-child){
        margin-right: 0;
    }
    
    .contact_form .tab button:nth-child(odd){
        margin-right: 4px;
    }
    
    .contact_form .tab button:nth-child(-n+2){
        margin-bottom: 10px;
    }

    .contact_form .contact_ibox {
		min-width: 120px;
		font-size: 14px;
	}
	
	.contact_form a.contact_ibox img {
		width: 60px;
	}

	.caption .attention{
        padding: 30px 20px 20px 20px;
    }
    
    .contact_form dl{
        padding-top: 30px;
    }
    
    .contact_form dd.sex{
        flex-direction: column;
    }
    
    .contact_form dd.sex label{
        padding-right: 0;
    }
    
    .contact_form dd .select{
        width: 100%;
    }
    
    .contact_form .done_comment h6, .contact_form .done_comment h6 i{
        font-size: 14px;
    }
    
    .contact_form .done_comment{
        padding: 30px;
        padding-bottom: 40px;
    }
 
	.contact_form .howtoline_box {
	}

	.contact_form .howtoline_box:first-child {
		width: 100%;
		margin-right: 0;
	}

	.contact_form .howtoline_box:last-child{
		width: 100%;
		margin-top: 30px;
		margin-left: 0;
	}

	.contact_form .howtoline_box .linetitle3{
		font-size: 28px;
	}
    
    /* 規約 */
    
    .kiyaku section .container{
        width: 90%;
    }
    
    .kiyaku h3.page_title{
        flex-wrap: wrap;
    }
    
    .kiyaku h3 p{
        font-size: 14px;
    }
    
    .kiyaku h3 span.sub{
        display: block;
        font-size: 12px;
    }
    
    .kiyaku h4{
        font-size: 12px;
    }
    
    .kiyaku .text{
        padding: 20px;
    }
    
    .kiyaku h5{
        font-size: 14px;
    }
    
    
    /* footer */
    
    .contact{
        flex-direction: column;
        align-items: center;
    }
    
    .contact .container.contact1{
		width: 100%;
	}

    .contact h3{
        font-size: 12px;
    }
    
    .contact2{
        position: static;
    }
    
    .contact a.tel{
        font-size: 30px;
    }
    
    
    .footer_menu ul{
        flex-direction: column;
    }
    
    footer{
        background: #333;
    }
    
    footer .container{
        padding: 40px 5%;
    }
    
    #page_top{
        width: 40px;
        height: 40px;
    }

    #page_top a{
        width: 40px;
        height: 40px;
    }

    #page_top a::before{
        font-size: 15px;
    }

	.contact_box .line {
		margin: 10px 0;
		padding: 0 15px;
	}
	
	.contact_box .line img {
		width: 150px;
		height: auto;
	}
	
	.contact_box .line > div {
		font-size: 14px;
	}

	/* トップページ下部のバナー */
	.bunner_a {
		width: 100%;
		max-width: auto;
		margin: 60px auto 0 auto;
	}
	.bunner_a.flex {
		display: block;
	}
	.bunner_a div{
		width: 90%;
		margin: 0 auto 20px auto;
	}
	.bunner_a div a:hover{
		opacity: 0.6;
	}

	/* 活動実績 */
	.index .achievement .container.flex{
		display: block;
	}
	.index .achievement .container div {
		width: 100%;
	}

}
    
    
@media (max-width: 600px) {
	.contact_form .banner {
		padding: 0 15px;
	}
	.contact_form .banner img {
		width: 100%;
	}
}


@media (max-width: 380px) {
	.contact_form .contact_ibox {
		min-width: 100px;
		font-size: 14px;
	}

	.contact_form a.contact_ibox img {
		width: 50px;
	}
	
	.contact_box .line img {
		width: 120px;
	}
	
	.contact_box .line > div {
		font-size: 12px;
	}

	.contact_form .howtoline_box .linetitle3{
		font-size: 24px;
	}
}
