@charset "utf-8";

@media only screen and (max-width: 1024px) {
	.tab {
		display: block;
	}
	
	/*-----------------------------------------------------
		header
	-----------------------------------------------------*/
	header nav {
		display: none;
	}	
	header:not(.fixed):not(.fixed_sp) {
		position: relative;
		padding: 5vw 4%;
		border-radius: 0 0 3vw 3vw;
	}
	header:not(.fixed):not(.fixed_sp):not(.ws) {
		position: absolute;
	}
	header.fixed,
	header.fixed_sp {
		position: fixed;
		z-index: 10001;
		top: 0;
		left: 0;
		right: 0;
		border-radius: 0 0 10px 10px;
		padding: 15px 4%;
	}
	header::before {
		z-index: 3;
		border-radius: 0 0 10px 10px;
	}
	header .inner {
		height: auto;
	}
	header .site-logo {
		max-width: 165px;
	}
	header .sp_menu {
		position: relative;
		z-index: 2;
	}
	header .search_menu,
	header .link_menu{
		display: inline-block;
		width: 3.5em;
		text-align: center;
		height: 2em;
		border-radius: 2em;
	}
	header .search_menu{
		background: #E9F3F4;
		position: absolute;
		z-index: 3;
		top: 0;
		bottom: 0;
		margin: auto;
		right: calc(3% + 65px);
	}
	header .link_menu{
		background: #E7839A;
		position: absolute;
		z-index: 3;
		top: 0;
		right: 3%;
		bottom: 0;
		margin: auto;
	}
	header .search_menu i,
	header .link_menu i {
		position: absolute;
		left: 27%;
		width: 46%;
		height: 3px;
		transition: all .4s;
	}
	header .search_menu i {
		background-color: #399C90;
	}
	header .link_menu i {
		background-color: #FFF;
	}
	header .search_menu i:nth-of-type(1),
	header .link_menu i:nth-of-type(1) {
		top: 32%;
	}
	header .search_menu i:nth-of-type(2),
	header .link_menu i:nth-of-type(2) {
		top: 57%;
	}
	header .search_menu.open i:nth-of-type(1),
	header .link_menu.open i:nth-of-type(1) {
		transform: translateY(130%) rotate(-45deg);
	}
	header .search_menu.open i:nth-of-type(2),
	header .link_menu.open i:nth-of-type(2) {
		transform: translateY(-130%) rotate(45deg);
	}
	header .search_menu i {
		display: none;
	}
	header .search_menu.open i {
		display: block;
	}
	header .search_menu.open img {
		opacity: 0;
	}
	header .menu_content {
		padding: 93px 5vw 20vw;
	}
	header .menu_content nav{
		display: block;
	}
	header .menu_content nav .main {
		margin-top: 10vw;
	}
	header .menu_content nav .main > li p.btn,
	header .menu_content nav .main > li > a{
		border-bottom:1px solid #67BEB5;
	}
	header .menu_content nav .main > li p.btn {
		padding: 0;
	}
	header .menu_content nav .main > li p.btn::after {
		content: none;
	}
	header .menu_content nav .main > li p.btn a {
	font-size: 16px;
	}
	header .menu_content nav .main > li:nth-child(n+2){
		margin: 0;
	}
	header .menu_content nav .main .sub{
		opacity: 1;
		display: block;
		position: static;
		box-shadow: none;
		background: none;
		margin-top: 5px;
	}
	header nav .main > li:hover .sub {
		display: block;
	}
	header nav .sub li {
		margin: 0;
	}
	header nav .sub li a {
		display: block;
		padding: 4px 0;
	}
	header .menu_content.search .article{
		display: none;
	}

	.search_content .search_form p {
		font-size: 16px;
	}
	.search_content .search_form form {
		position: relative;
		padding: 0;
	}
	header .search_content .search_form form input,
	.search_content .search_form form input {
		font-size: 16px;
		width: 100%;
		padding: 18px 75px 18px 20px;
	}
	header .search_content .search_form form button,
	.search_content .search_form form button{
		border:none;
		background: #FFF;
		text-indent:-100%;
		overflow: hidden;
		text-indent: -1000%;
		border-radius: 17px;
		padding:0.3em 0.9em;
		background: url('../img/common/search_icon.webp') center no-repeat #FFF;
		background-size: auto 60%;
		cursor: pointer;
		position: absolute;
		right: 20px;
		margin-left: 0;
		width: 54px;
	}
	.search_content dl dt {
		font-size: 16px;
	}
	
	/* サイドメニュー */
	*:has(> aside){
		display: block;
	}
	aside{
		margin-top: 5em;
		/* display:none; */
	}
	*:has(> aside) > *:not(aside) h1 + .exp{
		margin: 0;
	}
}

@media only screen and (max-width: 767px) {
    /*-----------------------------------------------------
        common
    -----------------------------------------------------*/
    body {
        font-size: 16px;
    }
    .pc {
        display: none;
    }
    .sp {
        display: block;
    }
    img.sp,
    span.sp {
        display: inline-block;
    }
	.content-inner {
		padding: 27px 6% 94px;
	}
    .inner {
        padding-left: 0;
        padding-right: 0;
        width: auto;
    }
	.flex_sp {
		display: -webkit-box;
		display: -webkit-flex;
		display: flex;
		justify-content: space-between;
	}
    .btn_efc a:hover img {
        transform: translateY(1vw);
    }
    .tbl01,
    #contact table {
        font-size: 14px;
    }
    .tbl01 th,
    .tbl01 td,
    #contact th,
    #contact td {
        display: block;
        padding: 15px !important;
        width: 100% !important;
        font-size: 13px;
        border: 0;
    }
	.tbl01 th,
    #contact th {
        padding: 8px 15px !important;
	}
	header a,
    .cv a,
    .floatbox a {
        display: block;
	}

    /* ラジオボタン
    -----------------------------------------------------*/
    input[type="radio"] + label::before {
        top: 1px;
    }
    input[type="radio"]:checked + label::after {
        top: 4px;
        left: 3px;
        width: 8px;
        height: 8px;
    }

    /* チェックボックス
    -----------------------------------------------------*/
    input[type="checkbox"] + span:before {
        top: 4px;
    }
	input[type="checkbox"]:checked + span:after {
		top: 4px;
	}
	#reserve input[type="radio"] + span::before, #reserve input[type="checkbox"]:not([name="accept[]"]) + span:before {
		top: 29px;
		left: 38px;
		width: 16px;
		height: 16px;
	}
	#reserve input[type="radio"] + span:hover::after,
	#reserve input[type="radio"]:checked + span::after,
	#reserve input[type="checkbox"]:not([name="accept[]"]) + span:hover::after,
	#reserve input[type="checkbox"]:not([name="accept[]"]):checked + span::after {
		top: 32px;
		left: 41px;
		width: 10px;
		height: 10px;
	}
	#reserve .wpcf7-form-control-wrap[data-name="accept"] .wpcf7-list-item input[type="checkbox"] + span:before {
	top: 4px;
	}
	#reserve .wpcf7-form-control-wrap[data-name="accept"] .wpcf7-list-item input[type="checkbox"] + span:after {
		top: 3px;
	}

	
	/*-----------------------------------------------------
		h1
	-----------------------------------------------------*/
	h1 {
	padding: 27px 7% 30px;
	margin: 0 -6vw;
	background-size: 87px auto;
	background-position: left 5px top;
	}
	h1 .ja {
	    font-size: 31px;
	    margin-bottom: .3em;
	    line-height: 1.2;
	}
	h1 .en {
	    font-size: 13px;
	}
	h1.lng {
		padding-top: 31px;
	}
	h1.lng .ja {
		font-size: 27px;
	}
	h1 + .exp {
		margin-bottom: 30px;
		line-height: 1.8;
		letter-spacing: .15em;
		font-size: 14px;
	}
	
    /*-----------------------------------------------------
		content
	-----------------------------------------------------*/
	.bcnbox {
		font-size: 10px;
		margin-bottom: 2.5em;
	}
	main article .inner {
		margin-top: 0;
	}
	*:has(> aside) > *:not(aside) h1 + * {
		margin-top: 0;
	}
	
	/* 記事一覧 */
	#article_list aside{
		display: block;
		margin-top: 20vw;
	}
	.article_list > li {
		width: 100%;
		margin-left: 0;
	}
	.article_list > li:nth-child(2n+1) {
		margin-left: 0 !important;
	}
	.article_list > li:nth-child(n+2) {
    	margin-top: 50px;
	}
	.article_list li .date,
	.single-post .recommend .slick-slide .date {
	    margin-top: 1.5em;
	    font-size: 10px;
	}
	.article_list li .title,
	.single-post .recommend .slick-slide .title {
		font-size: 18px !important;
		margin: .15em 0 !important;
		padding: 0 !important;
	}
	.article_list a p:first-of-type{
		border-radius: 25px;
		position: relative;
		overflow: hidden;
	}
	.article_list a p:first-of-type::after{
		content:"";
		background: url('../img/common/arrow_circle2.svg') center no-repeat;
		background-size:70%;
		display: inline-block;
		position: absolute;
		border-radius: 20px 0 0;
		bottom: 0;
		right: 0;
		width: 3em;
		height: 3em;
		z-index: 2;
	}
	.article_list + .more {
	}
	.article_list .img:first-of-type::after,
	.single-post .recommend .slick-slide .img:first-of-type::after {
	right: -5px;
	bottom: -5px;
	}

	/* カテゴリ一覧 */
	.category_list ,
	.tag_list {
		margin-top: 5vw;
	}
		
	/* 投稿詳細 */
	.post-content-single {
		padding-bottom: 41px;
	}
	.post-content-single * {
		letter-spacing: .05em;
	}
	.post-content-single .blog_detail_thumbnail{
    	border-radius: 3vw;
	}
	.post-content-single .article_title{
		font-size: 1.6rem;
		font-weight: bold;
		padding: 6vw 5vw 4vw;
	}
	.post-content-single .article_lead{
		font-size: 1rem;
	}
	.post-content-single .date{
		margin-top: 1rem;
		font-size: 0.7rem;
	}
	.post-content-single .supervisor{
		margin-top: 10vw;
		padding: 6vw 6vw 5vw;
		border:1px solid #67BEB5;
		border-radius: 15px;
	}
	.post-content-single .supervisor .supervisor_info{
		margin-top: 17px;
		gap: 3vw;
	}
	.post-content-single .supervisor .supervisor_info .image {
		flex: 0 0 40%;
		border-radius: 2vw;
		overflow: hidden;
	}
	.post-content-single .supervisor .supervisor_info .name{
		font-size:1.4rem;
	}
	.post-content-single .supervisor .supervisor_info .prof{
		font-size: 0.8rem;
		margin: 0.7em 0 0;
	}
	.post-content-single .supervisor .txt{
		font-size: .9rem;
		margin-top: 1em;
	}
	.post-content-single .supervisor .btn {
		text-align: center;
		margin-top: 1em;
	}
	.post-content-single .supervisor .btn a {
		font-size: .9rem;
		display: inline-block;
		padding: .9em 2em .9em 1em;
		width: 100%;
		position: relative;
	}
	.post-content-single .supervisor .btn a:after {
		content:"";
		display: inline-block;
		width:1.4em;
		height:1.4em;
		margin-left: 0.2em;
		position: absolute;
		right: 1.4em;
	}
	.post-content-single dl.article-menu{
		margin: 6vw 0 0;
		border-radius: 2vw;
	}
	.post-content-single dl.article-menu dt{
		font-size: 1.1rem;
	}
	.post-content-single dl.article-menu > dt{
		padding: .8em 1em;
	}
	.post-content-single dl.article-menu > dt + dd{
		padding-top: 1.5em;
	}
	.post-content-single dl.article-menu > dd:last-of-type{
		padding-bottom: 1.5em;
	}
	.post-content-single dl.article-menu > dd{
		padding: 0.5em 1.5em
	}
	.post-content-single dl.article-menu > dd dt{
		padding-bottom: 0.3em;
	}
	.post-content-single dl.article-menu > dd dd{
		padding: 0.2em 0.7em ;
	}
	.post-content-single .article_link {
		line-height: 1.5;
	}
	.post-content-single .article_link a .img{
		flex: 0 0 36%;
	}
	.post-content-single .article_link a .img img{
		width:100%;
		height:auto;
	}
	.post-content-single .article_link a {
    	font-size: 14px;
    	padding: 19px 4%;
    	line-height: 1.25;
	}
	.post-content-single h2.section_title{
		margin: 1.5em 0 1.2em;
		padding: 0 0 0.1em 0;
		font-size: 1.3rem;
		position:relative;
		line-height: 1.5;
	}
	.post-content-single .subsection h3{
		margin-top: 2em;
		font-size:1.15rem;
	}
	.post-content-single .sub_contents > ol,
	.post-content-single .sub_contents > ul:not(.talk){
		padding: 15px;
	}
	.post-content-single .sub_contents.table {
		overflow: scroll;
	}
	.post-content-single .sub_contents.table table {
		width: 150%;
	}
	.post-content-single .talk li {
		flex-wrap:wrap;
	}
	.post-content-single .talk li .person{
		display: flex;
		gap:4vw;
		align-items: center;
	}
	.post-content-single .talk li:nth-of-type(2n) .person{
		flex-direction: row-reverse;
	}
	.post-content-single .talk li {
		flex-wrap:wrap;
	}
	.post-content-single .talk li .person{
		display: flex;
		gap:4vw;
		align-items: center;
	}
	.post-content-single .talk li .talk_body:before,
	.post-content-single .talk li .talk_body:after{
		transform:rotate(90deg) !important;
	}
	.post-content-single .talk li .talk_body:before{
		top:unset;
		bottom:98%;
		left:2.5em;
	}
	.post-content-single .talk li .talk_body:after{
		top:unset;
		bottom:99%;
		left:2.5em;
	}
	.post-content-single .talk li:nth-of-type(2n) .talk_body:before{
		top:unset;
		bottom:98%;
		left:unset;
		right:2.5em;
	}
	.post-content-single .talk li:nth-of-type(2n) .talk_body:after{
		top:unset;
		bottom:99%;
		left:unset;
		right:2.5em;
	}
	.single-post article .cv {
	    border-radius: 20px;
	    background: url(../img/sp/common/cv01_bg.webp) no-repeat center top / cover;
	}
	.single-post article .cv::after {
		content: none;
	}
	.single-post article .cv .inner {
		padding: 39px 7.5% 39px;
	}
	.single-post article .cv .txtbox {
		position: static;
		z-index: 2;
		top: 41px;
		left: 4.5%;
		right: 4.5%;
		width: auto;
	}
	.single-post article .cv .txtbox .catch .lrg {
		margin-top: .1em;
		font-size: 31px;
		line-height: 1.4;
	}
	.single-post article .cv .txtbox .catch .lrg br {
		display: block;
	}
	.single-post article .cv .txtbox .txt {
		width: auto;
	}
	.single-post article .cv .icnbox {
		flex-direction: column;
		padding-top: 0;
		margin-top: 18px;
	}
	.single-post article .cv .icnbox .pic {
		width: 100%;
		padding: 0 3% 0 10%;
	}
	.single-post article .cv .icnbox .cclbox {
		margin-top: -30px;
		width: 100%;
		max-width: 100%;
	}
	.single-post article .cv .icnbox .cclbox li {
		width: 24vw;
		height: 24vw;
		font-size: 14px;
	}
	.single-post article .cv .mail {
		margin-top: 35px;
		width: 100%;
	}
	.single-post article .cv .tel {
		margin-top: 6px;
		width: 100%;
	}
	.single-post article .cv .tel a::before {
		width: 19px;
	}
	.single-post article .cv .tel .num {
		font-size: 20px;
		letter-spacing: .15em;
	}
	.single-post article .to-about {
		border-radius: 20px;
		background-position: right -6px top -21px;
		padding: 40px 7%;
		background-size: 52% auto;
	}
	.single-post article .to-about .txtbox .catch .min {font-size: 18px;}
	.single-post article .to-about .txtbox .catch .lrg {font-size: 31px;}
	.single-post article .to-about .txtbox .txt {font-size: 13.5px;margin-top: 22px;}
	.single-post article .to-about .mail {margin-top: 22px;}
	.single-post article .to-about .mail a {font-size: 16px;padding: 23px 60px 23px 34px;text-align: center;}

	.single-post article .to-about .mail a::before{
	left: inherit;
	right: 20px;
	}
	.single-post article .to-about .mail a::after{
	right: 30px;
	}
	.single-post .shere {
	    margin-top: 30px;
	}
	.single-post .shere dt {
	    margin-bottom: 10px;
	}
	.single-post .shere dd {
	    width: 49%;
	}
	.single-post .shere dd:nth-of-type(n+3) {
	margin-top: 6px;
	}
	.single-post .shere dd a,
	.single-post .shere dd button {
		display: block;
		padding: 14px 10px;
		background: #E9F3F4;
		border-radius: 28px;
	}
	.single-post .shere dd a:hover,
	.single-post .shere dd button:hover {
		background: rgba(103, 190, 181, .1);
	}
	.single-post .shere dd a img {
		width: 28px;
	}
	.single-post .shere dd button {
		border: 0;
		width: 100%;
	    height: 56px;
	}
	.single-post .shere dd button img {
		width: 14px;
		vertical-align: text-top;
		margin-right: 10px;
	}
	
	.single-post .cat-tag {
	    margin-top: 38px;
	    padding: 25px 7.5%;
	}
	.single-post .cat-tag dt {
	    width: 100%;
	    margin-bottom: 10px;
	}
	.single-post .cat-tag dd {
	    width: auto;
	}
	.single-post .cat-tag .catbox {
	    margin-bottom: 30px;
	}
	.single-post .cat-tag .catbox,
	.single-post .cat-tag .tagbox {
	    flex-direction: column;
	}
	.single-post .cat-tag dd ul {
	    flex-wrap: wrap;
	    gap: 5px;
	    justify-content: flex-start;
	}
	/* recommend */
	.single-post .recommend {
	    position: relative;
	    margin-top: 40px;
	}
	.single-post .recommend::before {
	    content: '';
	    position: absolute;
	    top: 0;
	    right: 100%;
	    bottom: 0;
	    width: 100%;
	    background: #FFF;
	    z-index: 2;
	}
	.single-post .recommend h3 {
	    font-size: 21px;
	    margin-bottom: 1em;
	}
	.single-post .recommend h3::before {
	    content: '';
	    position: absolute;
	    left: 0;
	    top: 10px;
	    width: 16px;
	    height: 16px;
	    border: 4px solid #67BEB5;
	    border-radius: 100%;
	}
	.single-post .recommend h3::after {
		content: '';
		position: absolute;
		left: 0;
		width: 1320px;
		border-bottom: 1px solid #67BEB5;
		bottom: 0;
	}
	#voice .slick-list,
	.single-post .recommend .slick-list {
	    cursor: grab;
	    overflow: inherit;
	}
	.single-post .recommend .article_list {
	    width: 79%;
	}
	.single-post .recommend .slick-slide {
	    margin-right: 15px;
	}
		
	/* 監修者一覧 */
	.supervisor_list li {
		margin-top: 4vw;
	}
	.supervisor_list li a{
		padding: 4vw;
		gap: 4vw 4%;
		display: block;
	}
	.supervisor_list li a .right{
	}
	.supervisor_list li a .image{
	float: left;
	width: 39%;
	margin-right: 4%;
	margin-bottom: 10px;
	}
	.supervisor_list li a .image img{
        width: 100%;
        height: auto;
	}
	.supervisor_list li .name{
		font-size:1.2rem;
	}
	.supervisor_list li .name:after {
		margin-left: .5em;
	}
	.supervisor_list li a .right .prof{
		margin-top: .6em;
		font-size: 0.8rem;
		line-height: 1.2;
	}
	.supervisor_list li a .right div{
		clear: both;
	}
	/* 監修者詳細 */
	.supervisor-content-single .supervisor_info{
		flex-direction: column;
		gap: 15px;
	}
	.supervisor-content-single .supervisor_info h1{
		margin:0;
		font-size: 24px;
	}
	.supervisor-content-single .supervisor_info .prof {
	    margin-top: 8px;
	    font-size: 14px;
	}
	.supervisor-content-single .supervisor_info ul {
	    margin-top: 12px;
	    gap: 11px;
	    flex-wrap: wrap;
	    line-height: 1;
	}
	.supervisor-content-single .supervisor_info ul li a {
	    padding: 4px;
	    width: 32px;
	}
	.supervisor-content-single .supervisor_info ul li a img {
	    height: 24px;
	}
	.supervisor-content-single .supervisor_info ul li a.site {
		width: auto;
		padding: 7px 10px;
	}
	.supervisor-content-single .supervisor_info ul li a.site img {
	    height: 16px;
	    vertical-align: middle;
	}
	.supervisor-content-single .supervisor_text {
		line-height: 1.7;
	}
	.supervisor-content-single .supervisor_history,
	.supervisor-content-single .supervisor_credential{
		margin-top: 7vw;
		border-radius: 2vw;
		padding: 6vw 7% 4vw;
	}
	.supervisor-content-single .supervisor_history dt,
	.supervisor-content-single .supervisor_credential dt{
		font-size: 1.1rem;
		margin-bottom: 0.7em;
	}

	.supervisor-content-single .supervisor_history dd,
	.supervisor-content-single .supervisor_credential dd{
		line-height: 1.55;
	}
	.supervisor-content-single .supervisor_info .photo {
		width: 100%;
	}

	/* section セクション
	-----------------------------------------------------*/
	.ttlbox h2{
		font-size: 7vw;
	}
	.cntbox h3{
		font-size: 5vw;
	}

    /* .cv コンバージョンエリア
    -----------------------------------------------------*/
	.cv01 {
		min-height: inherit;
		background-image: url(../img/sp/common/cv01_bg.webp);
		background-size: 100% auto;
	}
	.cv01::after {
		bottom: -29px;
		height: 75px;
		background-image: url(../img/sp/common/cv01_bg-b.webp);
		background-size: 100% 100%;
	}

	.cv01 .inner {
		padding: 39px 6% 76px;
		flex-direction: column;
	}
	.cv01 .txtbox {
		width: auto;
		max-width: 360px;
		margin: 0 auto;
	}
	.cv01 .txtbox .catch .min {
		font-size: 17.5px;
	}
	.cv01 .txtbox .catch .lrg {
		margin-top: .1em;
		font-size: 35px;
		line-height: 1.2;
	}
	.cv01 .txtbox .txt {
		font-size: 13.3px;
	}
	.cv01 .icnbox {
		width: 100%;
		margin-top: 22px;
	}
	.cv01 .icnbox .pic {
		max-width: 270px;
	}
	.cv01 .icnbox .cclbox {
		font-size: 17px;
		margin: -26px auto 0;
		max-width: 330px;
		flex-direction: row;
	}
	.cv01 .icnbox .cclbox li {
		width: 105px;
		height: 105px;
	}
	.cv01 .mail {
		margin: 31px auto 0;
		width: 100%;
	}
	.cv01 .tel {
		margin: 8px auto 0;
		width: 100%;
		max-width: 480px;
	}

	/* #ctm 新型コロナウィルス感染拡大防止対策について
	-----------------------------------------------------*/
	#ctm .ttlbox .inner {
		padding: 10vw 4% 10vw;
	}
	#ctm .ttlbox h2 {
		font-weight: bold;
		font-size: 4vw;
	}
	#ctm .ttlbox h2 .lrg {
		display: block;
		font-size: 5vw;
	}
	#ctm .cntbox .inner {
		padding: 0 4% 10vw;
	}
	#ctm .ctmbox {
		margin-left: -1vw;
		margin-right: -1vw;
	}
	#ctm .ctmbox li {
		padding-left: 1vw;
		padding-right: 1vw;
	}
	#ctm .ctmbox li:nth-child(n+4) {
		margin-top: 2vw;
	}
	#ctm .ctmbox li .frm {
		padding: 3vw 3%;
	}
	#ctm .ctmbox li .title {
		margin-bottom: 5vw;
		font-size: 3.4vw;
	}
	#ctm .ctmbox li .pic {
		margin-bottom: 5vw;
	}
	#ctm .ctmbox li .txt {
		font-size: 2.8vw;
	}

	/* #reason 選ばれる理由
	-----------------------------------------------------*/
	#reason .ttlbox .inner {
		padding: 10vw 4% 10vw;
	}
	#reason .cntbox .inner {
		padding: 10vw 4% 10vw;
	}
	#reason .exp {
		margin-bottom: 10vw;
	}
	#reason .rsnbox .rsn {
		flex-direction: column;
		flex: 0 0 100%;
		max-width: 100%;
		padding-top: 53vw;
	}
	#reason .rsnbox .rsn:nth-of-type(n+2) {
		margin-top: 10vw;
	}
	#reason .rsnbox .rsn .txtbox {
		flex: 0 0 100%;
		max-width: 100%;
	}
	#reason .rsnbox .rsn .txtbox .title {
		margin-bottom: 5vw;
	}
	#reason .rsnbox .rsn .txtbox .title dt {
		flex: 0 0 20%;
		max-width: 20%;
	}
	#reason .rsnbox .rsn .txtbox .title dd {
		font-size: 5vw;
	}
	#reason .rsnbox .rsn .txtbox .txt {
	    font-size: 3.5vw;
	}

	/* タイプ別スタイル */
	#reason .rsnbox.type-b .rsn:nth-of-type(n+2) {
		margin-top: 10vw;
	}
	#reason .rsnbox.type-b .rsn .pic {
		flex: 0 0 100%;
		max-width: 100%;
		margin-top: 5vw;
	}
	#reason .rsnbox.type-b .rsn .txtbox {
		flex: 0 0 100%;
		max-width: 100%;
	}
	#reason .rsnbox.type-b .rsn .txtbox .title {
		margin-bottom: 5vw;
	}
	#reason .rsnbox.type-b .rsn .txtbox .title dt {
		flex: 0 0 15%;
		max-width: 15%;
		margin-right: 5%;
	}
	#reason .rsnbox.type-b .rsn .txtbox .title dd {
		flex: 0 0 80%;
		max-width: 80%;
	}
	#reason .rsnbox.type-b.altn .rsn:nth-of-type(2n) .txtbox {
		order: 1;
	}
	#reason .rsnbox.type-b.altn .rsn:nth-of-type(2n) .pic {
		order: 2;
	}
	#reason .rsnbox.type-b.rep-sp .rsn .txtbox {
		order: 2 !important;
		margin-top: 5vw;
	}
	#reason .rsnbox.type-b.rep-sp .rsn .pic {
		order: 1 !important;
		margin-top: 0;
	}

	/* #caution 悪徳業者に注意
	-----------------------------------------------------*/
	#caution .ttlbox .inner {
		padding: 10vw 4% 5vw;
	}
	#caution .cntbox .inner {
		padding: 0 4% 10vw;
	}
	#caution .exp {
		margin-bottom: 10vw;
	}

	/* タイプ別スタイル */
	#caution.type-b {
		margin: 0 4% 10vw;
	}

    /* #service サービス紹介
    -----------------------------------------------------*/
    #service .ttlbox .inner {
		padding: 10vw 4% 10vw;
	}
	#service .cntbox .inner {
		padding: 10vw 4% 10vw;
    }
    #service .srv {
		flex: 0 0 49%;
		max-width: 49%;
        border-width: 2px;
        padding: 25px 1.5% 20px;
    }
    #service .srv:nth-child(n+3) {
        margin-top: 6vw;
    }
    #service .srv .picbox {
        text-align: center;
    }
    #service .srv .picbox .txt {
        position: static;
        margin-bottom: 2vw;
    }
    #service .srv .picbox .ini {
        position: absolute;
        top: -36px;
        left: 0;
        right: 0;
        margin: auto;
        padding: 1px 5px 2px;
        width: 110px;
        font-size: 13px;
        border-radius: 11px;
    }
    #service .srv .picbox .title {
        font-size: 5vw;
    }
    #service .srv .picbox .title.spmin {
        padding: 0.533333333vw 0;
        font-size: 4vw;
    }
    #service .srv:nth-child(4) .picbox .title {
        font-size: 4.5vw;
    }
    #service .srv .inn {
        padding: 3vw 0 0;
    }
    #service .srv ul {
        padding-bottom: 4.3vw;
    }
    #service .srv ul li {
        font-size: 3vw;
        padding-left: 10%;
        background-size: 7% auto;
        background-position: left top 1vw;
    }

	/* #maker 取り扱いメーカー
	-----------------------------------------------------*/
	#maker .ttlbox .inner {
		padding: 10vw 4% 10vw;
	}
	#maker .cntbox .inner {
		padding: 10vw 4% 10vw;
	}
	#maker .mkbox li {
		flex: 0 0 32%;
		max-width: 32%;
	}
	#maker .mkbox li,
	#maker .mkbox li:nth-child(5n+1) {
		margin-left: 2%;
	}
	#maker .mkbox li:nth-child(3n+1) {
		margin-left: 0;
	}
	#maker .mkbox li:nth-child(n+4) {
		margin-top: 2vw;
	}

	/* タイプ別スタイル */
	#maker .mkbox.txt li {
		flex: 0 0 49%;
		max-width: 49%;
		margin-left: 2%;
		height: 15vw;
	}
	#maker .mkbox.txt li:nth-child(2n+1) {
		margin-left: 0;
	}
	#maker .mkbox.txt li:nth-child(n+3) {
		margin-top: 2vw;
	}

	/* #voice お客様の声
	-----------------------------------------------------*/
	#voice .ttlbox .inner {
		padding: 10vw 4% 10vw;
	}
	#voice .cntbox .inner {
		padding: 10vw 4% 10vw;
	}
	#voice .exp {
		margin-bottom: 10vw;
	}
	#voice .psn {
        padding: 0;
    }
    #voice .psn:nth-of-type(n+2) {
        margin-top: 10vw !important;
    }
    #voice .psn .blc {
        align-items: flex-start;
        margin-bottom: 5vw;
    }
    #voice .psn .txtbox {
        flex: 0 0 62%;
        max-width: 62%;
    }
    #voice .psn .cat {
        font-size: 2.8vw;
        padding: 2px 7px;
        border-radius: 3px;
        margin-bottom: 2vw;
    }
    #voice .psn .title {
        font-size: 3.6vw;
        margin-bottom: 2vw;
        line-height: 1.45;
    }
    #voice .psn .prf {
        font-size: 2.8vw;
    }
    #voice .psn .pic {
        flex: 0 0 34%;
        max-width: 34%;
    }
    #voice .psn .txt {
        font-size: 3.5vw;
        line-height: 1.5;
    }

	/* タイプ別スタイル */
	#voice .psnbox.type-col {
		display: block;
	}
	#voice .psnbox.type-col .psn {
		flex: 0 0 100%;
		max-width: 100%;
	}
	#voice .psnbox.frmbox .psn {
		padding: 5vw 5%;
	}
	#voice .psnbox.frmbox .psn:nth-of-type(n+2) {
		margin-top: 5vw !important;
	}
    #voice .altn-sp .psn:nth-of-type(2n) .txtbox {
        order: 2;
    }
	#voice .altn-sp .psn:nth-of-type(2n) .pic {
        order: 1;
    }

	/* #flow ～の流れ
	-----------------------------------------------------*/
	#flow .ttlbox .inner {
		padding: 10vw 4% 10vw;
	}
	#flow .cntbox .inner {
		padding: 10vw 4% 10vw;
	}
	#flow .exp {
		margin-bottom: 10vw;
	}
	#flow ol li:nth-child(n+2) {
		margin-top: 5vw;
	}
	#flow ol li:after {
		top: 50px;
		left: 22px;
		width: 2px;
	}
	#flow ol li .ini {
		padding: 3px 10px;
		width: 50px;
	    font-size: 13px;
	}
	#flow ol li .ini .min {
		font-size: 11px;
	}
	#flow ol li .flex {
	    padding: 5vw 3%;
	}
	#flow ol li .flex .txtbox {
		flex: 0 0 60%;
		max-width: 60%;
	}
	#flow ol li .flex .txtbox .title {
		margin-bottom: 2vw;
		font-size: 4.2vw;
    }
	#flow ol li .flex .txtbox .txt {
		font-size: 2.8vw;
	}
	#flow ol li .flex .pic {
		flex: 0 0 36%;
		max-width: 36%;
	}

	/* タイプ別スタイル */
	#flow ol.type-b li,
	#flow ol.type-d li {
		padding: 45px 0 0 50px;
	}
	#flow ol.type-b li .ini,
	#flow ol.type-c li .ini,
	#flow ol.type-d li .ini,
	#flow ol.type-e li .ini {
		width: 46px;
		height: 46px;
	}
	#flow ol.type-b li,
	#flow ol.type-d li {
		padding: 23px 0 0 23px;
	}
	#flow ol.type-c li,
	#flow ol.type-e li {
		padding: 0 0 0 23px;
	}
	#flow ol.type-b li .flex,
	#flow ol.type-d li .flex {
		padding: 7vw 5%;
	}
	#flow ol.type-c li .flex,
	#flow ol.type-e li .flex {
		padding: 30px 3% 30px 10%;
	}

	/* #area 対応エリア
	-----------------------------------------------------*/
	#area .ttlbox .inner {
		padding: 10vw 4% 10vw;
	}
	#area .cntbox .inner {
		padding: 10vw 4% 10vw;
	}
	#area .exp {
		margin-bottom: 10vw;
	}

	/* type-a */
	#area .pref .cap {
		font-size: 6vw;
		margin-bottom: 3vw;
	}
	#area .pref dl {
		margin-top: 3.2vw;
	}
	#area .pref dl:first-child {
		margin-top: 0;
	}
	#area .pref dl dt {
		font-size: 3.8vw;
		padding: 3vw 4.5vw;
	}
	#area .pref dl dd {
		font-size: 2.8vw !important;
		padding: 4vw 4.5vw;
		line-height: 1.525;
	}

	/* .wpcf7 ステップフォーム
	-----------------------------------------------------*/
	#reserve .wpcf7 .form-container {
		width: auto;
	}

	.wpcf7 .form-slider {
		width: 500%;
	}
	.wpcf7 .form-step {
		width: 20%;
	}
	.form-step .intro {
		font-size: 20px;
		min-height: 27vw;
		display: flex;
		justify-content: center;
		align-items: center;
		line-height: 1.3;
	}
	.form-step .intro::after {
		width: 34%;
		height: 27vw;
		margin: 0;
		min-width: 112px;
	}
	.form-step .intro.sp-m {
		font-size: 17px;
	}
	.wpcf7 .btn-group {
		max-width: 250px;
	}
	.wpcf7 .button,
	.wpcf7 .sbmbox input[type="submit"] {
		width: 210px;
		height: 70px;
		font-size: 16px;
		padding: 10px 20px 10px 10px;
	}
	.wpcf7 .button:hover,
	.wpcf7 .sbmbox input[type="submit"]:hover {
	    background-color: rgba(103, 190, 181, .8);
	}
	.wpcf7 .button::before, .wpcf7 .sbmbox::before {
	    right: 23px;
	}
	.wpcf7 .button::after,
	.wpcf7 .sbmbox::after {
	    right: 33px;
	}
	.wpcf7 .button.prevStep {
		padding: 10px 10px 10px 70px;
	}
	.wpcf7 .button.prevStep::before {
		left: 23px;
	}
	.wpcf7 .button.prevStep::after {
		left: 33px;
	}
	.wpcf7 .button.prevStep:hover,
	footer .btnbox li a:hover,
	footer .outbox a:hover {
	    background-color: rgba(103, 190, 181, .1);
	}
	
	.wpcf7 .button.disabled,
	.wpcf7 .sbmbox.disabled input[type="submit"] {
	     /* クリック無効 */
	}
	.wpcf7 .button.disabled::after,
	.wpcf7 .sbmbox.disabled::after {
	}
	
	#reserve .wpcf7 .box .label {
	    font-size: 15px;
	}
	#reserve .wpcf7 .box .label .req {
	    width: 45px;
	    font-size: 12px;
	}
	#reserve .wpcf7-radio .wpcf7-list-item,
	#reserve .wpcf7-checkbox .wpcf7-list-item {
		font-size: 15.5px;
	}
	#reserve .wpcf7-radio .wpcf7-list-item + .wpcf7-list-item,
	#reserve .wpcf7-checkbox .wpcf7-list-item + .wpcf7-list-item {
		margin-top: 10px;
	}
	#reserve .wpcf7-radio .wpcf7-list-item span,
	#reserve .wpcf7-checkbox .wpcf7-list-item input:not([name="accept[]"]) + span {
		padding: 24px 10px 25px 65px;
	}
	#reserve .wpcf7 .box input[type="text"],
	#reserve .wpcf7 .box input[type="tel"],
	#reserve .wpcf7 .box input[type="email"],
	#reserve .wpcf7 .box textarea {
	    padding: 11px 10px;
	    font-size: 15px;
	}
	#reserve .wpcf7 .button,
	#reserve .wpcf7 .sbmbox input[type="submit"] {
	    padding: 10px 50px 10px 10px;
	    width: auto;
	    height: 50px;
	    min-width: 120px;
	    box-shadow: 4px 4px 2px rgba(0, 0, 0, .06);
	}
	#reserve .wpcf7 .button.prevStep {
        padding: 10px 10px 10px 50px;
    }
	
	/* プログレスバー */
	.statusbox {
		margin-bottom: 37px;
	}
	
    /* #contact フォーム
    -----------------------------------------------------*/
    #contact .cntbox .inner {
        padding: 10vw 4%;
        min-height: 400px;
    }
    #contact .title {
		font-size: 24px;
	}
	#contact .exp {
        margin-bottom: 10vw;
    }
    #contact table {
        margin-bottom: 30px;
    }
    #contact tr {
        margin-bottom: 20px;
        padding: 0;
    }
    #contact tr:last-child {
        margin-bottom: 0;
    }
    #contact tr {
        display: block;
        margin: 0;
    }
    #contact th,
    #contact td {
        display: block;
        width: 100%;
    }
    #contact td input,
    #contact td input.lng,
    #contact td textarea {
        width: 100%;
    }
    .wpcf7 .box select {
        padding: 15px 8px;
    }
	.wpcf7 .box input[name="postcode"] {
		width: 120px;
	}
	.wpcf7 .box select[name="pref"] {
		width: 120px;
	}
	.wpcf7-form-control-wrap[data-name="city"] {
	    margin-top: 10px;
	    display: inline-block;
	}
	.wpcf7 .box input[name="city"] {
		margin-left: 0;
		width: 100%;
	}
    #contact button[type="submit"],
    #contact button[type="button"] {
        width: auto !important;
    }

    #contact td .note {
        font-size: 13px;
    }

	/* #review 口コミ一覧
	-----------------------------------------------------*/
	#review .ttlbox .inner {
		padding-top: 14vw;
	}
	#review .cntbox .inner  {
		padding-top: 10vw;
		padding-bottom: 14vw;
	}
	#review .review_list li {
		margin-left: 5vw;
		margin-right: 5vw;
	}
	/* #ancher_section アンカーリンク付きコンテンツ
	-----------------------------------------------------*/
	#ancher_section .ttlbox .inner {
		padding-top: 14vw;
	}
	#ancher_section .cntbox .inner {
		padding-top: 10vw;
		padding-bottom: 8vw;
	}
	#ancher_section .cntbox .inner .ancher {
		padding-bottom: 10vw;
	}
	#ancher_section .cntbox .inner .ancher a {
		padding: 5vw;
	}

	/* #store 店舗紹介
	-----------------------------------------------------*/
	#store .ttlbox .inner {
		padding-top: 14vw;
	}
	#store .cntbox .inner  {
		padding-top: 10vw;
		padding-bottom: 14vw;
	}
	/* #representative 代表者
	-----------------------------------------------------*/
	#representative .cntbox .inner .person p{
		font-size: 8vw;
	}
	#representative .cntbox .inner .history ul{
		column-count: 1;
		margin: 10vw auto 0;
		width: fit-content;
	}

	/* #info 運営会社情報 / #law 特定商取引法に基づく表示
	-----------------------------------------------------*/
	#info .ttlbox .inner {
		padding: 10vw 4% 6vw;
	}
	#info .cntbox .inner {
		padding: 10vw 4% 6vw;
	}
	#law .ttlbox .inner {
		padding: 6vw 4% 8vw;
	}
	#law .cntbox .inner {
		padding: 0 4% 10vw;
	}

	/*-----------------------------------------------------
		company 会社概要
	-----------------------------------------------------*/
	#company .cntbox .inner {
		padding: 10vw 4% 10vw;
	}

	/*-----------------------------------------------------
		privacy プライバシーポリシー
	-----------------------------------------------------*/
	#privacy .ttlbox .inner {
		padding: 10vw 4% 10vw;
	}
	#privacy .cntbox .inner {
		padding: 10vw 4% 10vw;
	}

	/*-----------------------------------------------------
		.error404
	-----------------------------------------------------*/
	.error404 h1 {
		font-size: 24px;
		padding-top: 1.25em;
		font-weight: 700;
		text-align: center;
		padding-bottom: 1.25em;
		line-height: 1.4;
	}
	.error404 .post-content {
		text-align: left;
	}

    /*-----------------------------------------------------
        footer
    -----------------------------------------------------*/
	footer .cv01 {
		border-radius: 5vw 5vw 0 0;
	}
	footer .btmbox .content-inner {
		padding-top: 25px;
		display: block;
		padding-bottom: 95px;
	}
	footer .site-logo {
		text-align: center;
	}
	footer .btnbox {
		margin-top: 33px;
		display: flex;
		justify-content: space-between;
	}
	footer .btnbox li {
		width: 49%;
		margin: 0 !important;
	}
	footer nav,
	footer .cmpbox,
	footer .outbox {
		margin-left: auto;
		margin-right: auto;
		max-width: 360px;
	}
	footer .outbox {
		margin-top: 60px;
	}
	footer .copyright {
		justify-content: center;
		font-size: 9.5px;
		margin-top: 3.5em;
	}

	/* .btnbox */
	footer .btnbox li:nth-child(n+2) {
		margin-top: 8px;
	}
	footer .btnbox li a {
		border-radius: 12px;
		padding: 5px;
		height: 108px;
		display: flex;
		justify-content: center;
		align-items: center;
		text-align: center;
	}

	/* nav */
	footer nav {
		margin-top: 41px;
	}
	footer nav li a:hover,
	footer .cmpbox li a:hover {
		color: #399C90;
	}
	footer nav .main {
		display: block;
	}
	footer nav .main > li:nth-child(n+2) {
		border-top: 1px solid #B4E1DC;
	}
	footer nav .main > li .btn,
	footer nav .main > li > a {
		font-size: 15px;
	}
	footer nav .main > li > a {
		padding: 15px 30px 15px 0;
	}
	footer nav .main > li .btn::before,
	footer nav .main > li > a::before {
		top: 0;
		bottom: 0;
		margin: auto;
	}
	footer nav .main > li .btn::after,
	footer nav .main > li > a::after {
		top: 0;
		bottom: 0;
		margin: auto;
	}
	footer nav .main > li:nth-child(n+3) {
		margin-top: 0;
	}
	footer nav .sub {
		margin-top: 7px;
		margin-bottom: 17px;
	}
	footer nav .sub li {
		margin-top: 0;
		font-size: 14px;
	}
	footer .btmbox .sub li a {
		padding: 5px 0;
		display: block;
	}

	/* cmpbox */
	footer .cmpbox {
		margin-top: 22px;
	}
	footer .cmpbox li:nth-child(n+2) {
		margin-top: 1.25em;
	}

	/* outbox */
	footer .outbox a {
		padding: 15px 40px 15px 20px;
		font-size: 13px;
		max-width: 240px;
		text-align: center;
	}
	
	footer .copyright .inner {
		padding-top: 12px;
		padding-bottom: 12px;
	}
    #page-top {
        bottom: 80px;
	}
	#page-top span {
        width: 48px;
        height: 48px;
    }
	
	.floatlink {
		bottom: 15px;
	}
	.floatlink a {
		padding: 10px 10px;
		width: 185px;
	}
	.floatlink a .min {
		font-size: 11px;
	}
	.floatlink a .lrg {
		font-size: 14px;
	}

    .floatbox:not(.fixed):not(.fixed_sp) {
        position: static;
    }
    .floatbox.fixed,
    .floatbox.fixed_sp {
        position: fixed;
        z-index: 9999;
        bottom: 0;
        left: 0;
        right: 0;
    }

	/* タイプ別スタイル */
	footer .inner.type-col {
		flex-direction: column;
	}

    /*-----------------------------------------------------
        confirm 内容確認 / thanks 送信完了
    -----------------------------------------------------*/
    .thanks header h1 {
	    padding: 1vw 0;
	}
	.confirm #contact .exp,
    .thanks #contact .exp {
        text-align: left;
    }
    .confirm #contact .btnbox {
        display: block;
    }
    .confirm #contact button[type="submit"] {
        order: 1;
        margin-left: auto;
        margin-right: auto;
    }
    .confirm #contact button[type="button"] {
        order: 2;
        margin-top: 10px;
        margin-left: auto;
        margin-right: auto;
    }

	/*-----------------------------------------------------
		modal
	-----------------------------------------------------*/
	#modalForm {
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		width: auto !important;
		height: auto !important;
		padding: 8vw 3.5vw 12vw;
	}
	/*スクロールバー全体*/
	#modalForm::-webkit-scrollbar {
		width: 2.5vw;
	}
	#modalCloseArea span.modalClose {
		top: 0;
		right: 0;
		width: 12vw;
		max-width: 45px;
	}
}
