@charset "utf-8";
/*メガメニュー配置時の記述部分「メガメニュー」で検索
非表示解除PC1箇所/SP1箇所*/
:root {
	--main-color: #004EA8;
	--sub-color: #1696D5;
	--text-color: #222222;
	--text-font: "noto-sans-cjk-jp", sans-serif;
	--point-font: "Red Hat Display";
}
section{
	width: 100%;
    padding: 80px 0;
	position: relative;
	overflow: hidden;
}
.inner{
	width: 90%;
	max-width: 1130px;
	margin: 0 auto;
    position: relative;
}
h1,h2,h3,h4,h5,h6{
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: 0.05em;
}
h2,h3{
	color: #383838;
}
p{
	font-size: 15px;
	line-height: 1.8;
    letter-spacing: 0.1em;
}
.bg{
	background: #F2F9FF;
}
.bg-gray{
	background: #FAFAFA;
}
@media screen and (max-width: 820px) {
	section{
	    padding: 30px 0;
	}
	.inner{
		width: 86%;
		max-width: 520px;
	}
	h1,h2,h3,h4,h5,h6{
		line-height: 1.3;
	}
}
/*==================================================================================================*/
.title{
    font-size: 32px;
	text-align: center;
	margin: 0 0 40px;
}
.title span{
	font-size: 34px;
	letter-spacing: 0.03em;
    color: var(--main-color);
}
#front .title span{
	position: relative;
}
#front .title span::before,
#front .title span::after{
	display: inline-block;
	content: "";
	width: 15px;
    height: 10px;
	background: center / contain no-repeat url("../img/double-quotation01.svg");
	position: relative;
    top: -20px;
}
#front .title span::after{
	background: center / contain no-repeat url("../img/double-quotation02.svg");
}
.title b{
	font-weight: 700;
}
.title-h3A{
	display: flex;
	align-items: center;
	font-size: 22px;
}
.title-h3A::before{
	display: inline-block;
	content: "";
	width: 4px;
	height: 20px;
	background: #1696D5;
	margin: 0 10px 0 0;
}
.title-h3B{
	font-size: 28px;
	padding: 0 0 10px;
	border-bottom: solid 2px #CCCCCC;
	position: relative;
	margin: 0 0 20px;
}
.title-h3B::after{
	display: block;
	content: "";
	width: 120px;
	border-bottom: solid 3px var(--sub-color);
	position: absolute;
	bottom: -2.5px;
	left: 0;
}
.title-h3C{
	font-size: 28px;
	padding: 0 0 15px;
	margin: 0 0 15px;
	border-bottom: solid 1px #EDEDED;
}
.title-h3C span{
	display: block;
	font-family: var(--point-font);
	font-size: 16px;
	font-weight: normal;
	color: var(--sub-color);
	margin: 0 0 5px;
}
@media screen and (max-width: 1000px) {
	.title{
		font-size: 3vw;
	}
	.title span{
		font-size: 3.5vw;
	}
	.title-h3A{
		font-size: 2vw;
	}
	.title-h3B{
		font-size: 2.5vw;
	}
}
@media screen and (max-width: 820px) {
	.title{
		font-size: 20px;
		margin: 0 0 15px;
	}
	.title span{
		font-size: 22px;
	}
	#front .title span::before, #front .title span::after {
		width: 10px;
		height: 7px;
		top: -12px;
	}
	.title b{
		font-size: 26px;
	}
	.title-h3A{
		font-size: 18px;
		justify-content: center;
	}
	.title-h3A::before{
		display: none;
	}
	.title-h3B{
		font-size: 20px;
		margin: 0 0 15px;
	}
	.title-h3C{
		font-size: 20px;
	}
	.title-h3C span{
		font-size: 14px;
		margin: 0 0 5px;
	}
}
/*=================================================*/
.btn{
	display: flex;
	justify-content: center;
	align-items: center;
    width: 300px;
	height: 62px;
	font-size: 14px;
	font-weight: 700;
	color: var(--main-color);
	border: solid 1px var(--main-color);
	border-radius: 8px;
	position: relative;
	transition: .5s;
}
.btn::after{
	display: block;
	content: "";
	width: 30px;
	height: 30px;
	background: center / contain no-repeat url("../img/icon-arrow.svg");
	position: absolute;
	right: 10px;
}
.btn.white{
	height: 65px !important;
	justify-content: flex-start;
	color: #FFF;
	font-weight: 600;
	letter-spacing: 0.08rem;
	border: solid 1px #FFF;
	padding: 0 30px;
}
@media screen and (min-width: 821px) {
	.btn:hover{
		color: #FFF;
		background: var(--main-color);
	}
	.btn:hover::after{
		background: center / contain no-repeat url("../img/icon-arrow-w.svg");
	}
	.btn.white:hover{
		background: var(--sub-color);
	}
}
.btn.white::after{
	background: center / contain no-repeat url("../img/icon-arrow-w.svg");
}
.btn.white::before{
	display: inline-block;
	content: "";
	width: 18px;
	height: 18px;
	margin: 0 10px 0 0;
}
.btnLine::before{
	background: center / contain no-repeat url("../img/icon-line.svg");
}
.btnDownload::before{
	background: center / contain no-repeat url("../img/icon-download.svg");
}
.btnContact::before{
	background: center / contain no-repeat url("../img/icon-mail-w.svg");
}
/**/
.btnA{
	display: flex;
	align-items: center;
	width: 100%;
	height: 70px;
	font-size: 18px;
	font-weight: 700;
	color: #FFF;
	padding: 0 20px;
	border-radius: 5px;
	background: linear-gradient(#296ED3, #1D55AE);
	position: relative;
	top: 0;
	transition: .5s;
}
@media screen and (min-width: 821px) {
	.btnA:hover{
		top: 2px;
	}
}
.btnA::after{
	display: block;
	content: "";
	width: 5.5px;
	height: 14px;
	background: center / contain no-repeat url("../img/icon-arrow-normal.svg");
	position: absolute;
	top: 50%;
    transform: translateY(-50%);
	right: 15px;
}
.genremenu01::before,
.genremenu02::before,
.genremenu03::before{
	display: inline-block;
	content: "";
	width: 28px;
	height: 28px;
	margin: 0 10px 0 0;
	background: center / contain no-repeat url("../img/icon-genremenu01.svg");
}
.genremenu02::before{
	background: center / contain no-repeat url("../img/icon-genremenu02.svg");
}
.genremenu03::before{
	background: center / contain no-repeat url("../img/icon-genremenu03.svg");
}
.btnB{
	display: flex;
	align-items: center;
    width: 360px;
	height: 70px;
	font-size: 18px;
	color: #FFF;
	padding: 0 30px;
	border-radius: 10px;
	position: relative;
}
.btnB::before{
	display: inline-block;
	content: "";
	width: px;
	height: px;
	margin: 0 10px 0 0;
}
@media screen and (max-width: 1000px) {
	.btnA{
		font-size: 16px;
	}
}
@media screen and (max-width: 820px) {
	.btn{
	    width: 100%;
	}
	.btnA{
		height: 60px;
	}
	.btnA::after{
		width: 4px;
		height: 9px;
	}
}
/*=================================================*/
article{
	padding: 54px 20px 60px;
	background: #F4F4F4;
}
.cta{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	max-width: 860px;
	margin: 0 auto;
}
.cta li{
	width: 49%;
	max-width: 400px;
	position: relative;
}
.cta p{
	width: fit-content;
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	padding: 1px 15px;
	background: #FFF;
	border-radius: 20px;
	position: absolute;
	top: -20px;
	left: 50%;
    transform: translateX(-50%);
	z-index: 1;
}
.cta p::before,
.cta p::after{
	display: block;
    content: "";
    border-top: 9px solid #FFF;
    border-right: 6px solid transparent;
    border-left: 6px solid transparent;
    position: absolute;
    bottom: -7px;
    left: 50%;
    transform: translateX(-50%);
    z-index: -10;
}
.cta p::after{
	bottom: -10px;
	z-index: -100;
}
.btnline p::after{
	border-top: 9px solid #1EAD68;
}
.btndownload p::after{
	border-top: 9px solid #F76A0C;
}
.ctabtn{
	color: #FFF;
	font-size: 18px;
	letter-spacing: 0.08rem;
	font-weight: 500;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 62px;
	border-radius: 5px;
	position: relative;
	top: 0;
	transition: .5s;
}
@media screen and (min-width: 821px) {
	.ctabtn:hover{
		top: 2px;
	}
}
article .ctabtn{
	padding: 8px 0 0;
}
.ctabtn::before{
	display: block;
	content: "";
	width: 20px;
	height: 20px;
	margin: 0 8px 0 0;
}
.btnline .ctabtn::before{
	background: center / contain no-repeat url("../img/icon-line.svg");
}
.btndownload .ctabtn::before{
	background: center / contain no-repeat url("../img/icon-download.svg");
}
.btnapplication .ctabtn::before{
	background: center / contain no-repeat url("../img/icon-mail.svg");
}
.ctabtn::after{
	display: block;
	content: "";
	width: 5.5px;
	height: 14px;
	background: center / contain no-repeat url("../img/icon-arrow-normal.svg");
	position: absolute;
	top: 50%;
    transform: translateY(-50%);
	right: 15px;
}
.btnapplication .ctabtn::after{
	background: center / contain no-repeat url("../img/icon-arrow-normal-orange.svg");
}
article .ctabtn::after{
	top: auto;
	bottom: 13.5px;
}
.btnline p{
	border: solid 2px #1EAD68;
	color: #1EAD68;
}
.btnline .ctabtn{
	background: linear-gradient(#31C96E, #21A560);
}
.btndownload p{
	border: solid 2px #F76A0C;
	color: #F76A0C;
}
.btndownload .ctabtn{
	background: linear-gradient(#FF8C3E, #F76A0C);
}
.btnapplication .ctabtn{
	color: #F76A0C;
	border: solid 2px #F76A0C;
	background: #FFF;
}
@media screen and (max-width: 768px) {
	article{
		padding: 45px 0 40px;
	}
	.cta{
		flex-direction: column-reverse;
		max-width: 300px;
	}
	.cta li{
		width: 100%;
	}
	.cta li:nth-child(2){
		margin: 0 0 35px;
	}
	.cta p{
		width: 150px;
		font-size: 13px;
		letter-spacing: 0;
		padding: 1px 0;
		top: -15px;
	}
	.ctabtn{
		font-size: 16px;
	}
}
/*==================================================================================================*/
.column{
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}
.column2-imageBox{
	width: 46%;
	max-width: 520px;
}
.column2-textBox{
	width: 48%;
	max-width: 550px;
}
.column h2{
	font-size: 30px;
	margin: 0 0 24px;
}
.column h2 span{
	font-size: 32px;
}
.column .btn,
.column.template2 .btn,
.column .btnline,
.column .btncta{
	margin: 30px 0 0;
}
/**/
.column3{
	width: 32%;
	max-width: 345px;
	margin: 0 0 64px;
}
.column4{
	width: 32%;
	max-width: 360px;
	margin: 0 0 64px;
}
.template1{
	align-items: flex-start;
}
.template1 .img{
	border-radius: 5px;
	margin: 0 0 15px;
	overflow: hidden;
}
 .fs-img{
	 border-radius: 5px;
 }
.template1 .img span{
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: var(--sub-color);
	padding: 5px 10px;
    border-radius: 0 0 8px 0;
	background: #FFF;
	position: absolute;
	top: -1px;
	left: 0;
	z-index: 1;
}
.template1 h3{
	font-size: 22px;
	text-align: center;
	line-height: 1.4;
	margin: 0 0 10px;
}
.template1 p{
	font-size: 14px;
}
.column3 .title-h3A{
	margin: 0 0 10px;
}
.column3 .btn{
	width: 100%;
	height: 50px;
	margin: 16px 0 0;
}
/**/
.template2{
	align-items: stretch;
}
.template2 li{
	border-radius: 8px;
	background: #FFF;
	overflow: hidden;
}
.template2 li .textBox{
	padding: 20px 20px 30px;
}
.template2 h3{
	font-size: 22px;
	margin: 0 0 5px;
}
.template2 h3 span{
	display: block;
	font-family: var(--point-font);
	font-size: 13px;
	font-weight: normal;
	line-height: 1.2;
	color: var(--sub-color);
}
.template2 p{
	font-size: 14px;
}
/*fv*/
.column .title{
	font-size: 30px;
	text-align: left;
}
.column .title span{
	font-size: 32px;
}
@media screen and (max-width: 1000px) {
	.template2 h3 {
    	font-size: 20px;
	}
}
@media screen and (max-width: 820px) {
	.column2-imageBox{
		width: 100%;
		margin: 0 0 15px;
	}
	.column2-textBox{
		width: 100%;
	}
	.column h2{
		font-size: 20px;
		text-align: center;
	}
	.column h2 span{
		font-size: 22px;
	}
	/**/
	.column3, .column4{
		width: 100%;
		max-width: 100%;
		margin: 0 0 35px;
	}
	.column3:last-child{
		margin: 0;
	}
	.column .btn, .column.template2 .btn, .column .btnline, .column .btncta {
		margin: 15px 0 0;
	}
	.template1 .img span{
		font-size: 10px;
	}
	.template1 h3{
		font-size: 18px;
	}
	.template2 h3{
		font-size: 22px;
		text-align: center;
	}
}
/*==================================================================================================*/
/*price-料金*/
.price .inner{
	max-width: 1070px;
}
.table table{
 width: 100%;
 text-align: center;
 border-collapse: collapse;
 border-spacing: 0;
}
.table table tr:nth-child(2n+1) {
 background: #EEF6FB;
}
.table table th,
.table table td {
 padding: 20px;
}
.table table tr:nth-child(1) th,
.table table tr:nth-child(1) td {
 padding: 10px 20px;
}
.table table tr:nth-child(1) th:nth-child(1) {
    width: 180px;
}
.table table th{
	color: #FFF;
	border: solid 1px #FFF;
	background: var(--sub-color);
}
.table table td {
	border: solid 1px #D6D6D6;
}
.table table tr:nth-child(2) td:nth-child(1){
	text-align: left;
}
.table table + table{
	margin: 40px 0 0;
}
.table table + table th{
	background: var(--main-color);
}
table + p{
	font-size: 11px;
	line-height: 1.75;
	text-align: right;
	color: #888888;
	margin: 5px 0 0;
}
@media screen and (max-width: 900px) {
	.price .inner{
		width: 100%;
		max-width: 100%;
	}
	.table{
		padding: 0 5%;
		overflow-x: scroll;
	}
	.table table{
		width: 1000px;
	}
	table + p {
    	width: 1000px;
	}
	.price .btn{
		width: 90%;
		max-width: 520px;
	}
}
@media screen and (max-width: 820px) {
	.price{
		padding-bottom: 30px 0 40px;
	}
}
/*==================================================================================================*/
/*データリスト-料金案内&会社概要*/
.dataList dl{
	display: flex;
	flex-wrap: wrap;
	border-bottom: solid 1px #EEEEEE;
}
.dataList dl:nth-child(2){
	border-top: solid 1px #EEEEEE;
}
.dataList dl dt,
.dataList dl dd{
	display: flex;
	align-items: center;
	height: 72px;
}
.dataList dl dt{
	justify-content: center;
	width: 185px;
	font-size: 15px;
	font-weight: 500;
	background: #F2F9FF;
}
.dataList dl dd{
	width: calc( 100% - 185px );
	font-size: 16px;
	padding: 0 40px;
}
@media screen and (max-width: 520px) {
	.dataList .inner{
		max-width: 520px;
	}
	.dataList dl{
		border: solid 1px #EEEEEE;
	}
	.dataList dl dt{
		width: 100%;
		height: 40px;
	}
	.dataList dl dd{
		width: 100%;
		height: auto;
		padding: 15px 20px;
	}
}
/*==================================================================================================*/
/*faq-よくある質問*/
.faq .inner{
	max-width: 960px;
}
.toggle {
	display: none;
}
.Label {
	display: flex;
	align-items: center;
	min-height: 70px;
	border: solid 1px #D6D6D6;
	border-radius: 8px;
	padding: 10px 30px;
	position: relative;
}
.Label h3{
	font-size: 15px;
	line-height: 1.5;
	letter-spacing: 0.1em;
}
.Label::before{
	display: inline-block;
	content: "";
	width: 32px;
	height: 32px;
	background: center / contain no-repeat url("../img/icon-q.svg");
	margin: 0 10px 0 0;
}
.Label::after{
	display: block;
	content:"";
	width: 8px;
	height: 4px;
	background: center / contain no-repeat url("../img/icon-arrow-faq.svg");
	position: absolute;
	top: calc( 50% - 3px );
	right: 30px;
	transition: .5s;
}
.Label,
.content {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	transform: translateZ(0);
	transition: all 0.3s;
}
.content {
	display: flex;
	height: 0;
	margin-bottom: 20px;
	padding: 0 20px;
	overflow: hidden;
	position: relative;
}
.content::before {
	display: inline-block;
	content: "";
	width: 32px;
	height: 32px;
	background: center / contain no-repeat url("../img/icon-a.svg");
}
.content p{
	width: calc( 100% - 32px );
	line-height: 2;
	padding: 0 10px;
}
.content:last-child{
	margin-bottom: 0;
}
.toggle:checked + .Label + .content {
	height: auto;
	padding: 20px 30px;
	transition: all .3s;
}
.toggle:checked + .Label::after {
	transform: rotate(180deg) !important;
}
@media screen and (max-width: 1000px) {
	.Label {
		font-size: 1.8vw;
	}
}
@media screen and (max-width: 820px) {
	.Label {
		min-height: 67px;
		font-size: 14px;
		padding: 5px 30px 5px 10px;
	}
	.Label h3{
		line-height: 1.4;
	}
	.Label::before {
		width: 30px;
		height: 30px;
		margin: 0 7px 0 0;
	}
	.Label::after{
		right: 10px;
	}
	.content {
		padding: 0 10px;
	}
	.toggle:checked + .Label + .content {
		padding: 10px;
	}
	.content p{
		width: 100%;
		padding: 0;
		line-height: 1.6;
	}
	.content::before{
		display: none;
	}
}
/*==================================================================================================*/
/*==================================================================================================*/
/*==================================================================================================*/
/*header-ヘッダー*/
header{
	position: fixed;
	top: 0;
	z-index: 999;
}
header .inner{
	width: 100%;
	max-width: 100%;
	height: 85px;
	background: #FFF;
	padding: 0 3%;
	z-index: 1;
}
header h1,
header div.logo{
	width: fit-content;
	z-index: 1;
}
header h1 a,
header div.logo a{
	width: 297px;
	font-size: 13px;
	letter-spacing: 0;
	color: var(--text-color);
}
header h1 a img,
header div.logo a img{
	width: 146px;
}
header h1 a span,
header div.logo a span{
	font-size: 13px;
}
@media screen and (max-width: 820px) {
	header .inner{
		padding: 0;
		box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	}
	header h1,
	header div.logo{
		width: calc( 100% - 300px - 75px);
	}
	header h1 a,
	header div.logo a{
		width: 100%;
		position: relative;
        left: 5%;
	}
	header h1 a img,
	header div.logo a img{
		width: 160px;
	}
	header h1 a span,
	header div.logo a span{
		display: none ;
	}
}
@media screen and (max-width: 520px) {
	header .inner{
		height: 65px;
	}
	header h1,
	header div.logo{
		width: fit-content;
	}
	header h1 a img,
	header div.logo a img{
		width: 108px;
	}
}
/*cta-LINE&資料請求&見積もりボタン*/
header .cta{
	width: calc( 100% - 300px );
	max-width: 563px;
	margin: 0;
	z-index: 1;
}
header .cta li{
	width: 32%;
	max-width: 180px;
}
header .ctabtn{
	width: 100%;
	height: 45px;
	font-size: 14px;
	border-radius: 0;
}
header .ctabtn::before{
	width: 14px;
	height: 14px;
	margin: 0 5px 0 0;
}
header .ctabtn::after{
	width: 4px;
	height: 7px;
	right: 5px;
}
@media screen and (max-width: 930px) {
	header .cta{
		max-width: 380px;
	}
	header .cta li{
		width: 48%;
	}
	header .cta li.btnapplication{
		display: none;
	}
}
@media screen and (max-width: 820px) {
	header .cta {
        flex-direction: initial;
		width: 300px;
        max-width: 300px;
    }
	header .btnline .ctabtn span{
		display: none;
	}
}
@media screen and (max-width: 768px) {
	header .cta li:nth-child(2){
		margin: 0;
	}
}
@media screen and (max-width: 560px) {
	header .cta{
		width: 100%;
		max-width: 100%;
		position: fixed;
		bottom: 0;
	}
	header .cta li{
		width: 50%;
		max-width: 50%;
	}
	header .ctabtn{
		height: 62px;
		font-size: 16px;
	}
	header .btnline .ctabtn span{
		display: inline-block;
	}
	header .ctabtn::before {
		width: 20px;
		height: 20px;
		margin: 0 5px 0 0;
	}
	header .ctabtn::after {
		width: 5.5px;
		height: 14px;
		right: 10px;
	}
}
/*nav-メインメニュー*/
nav{
	width: 100%;
	background: #FFF;
}
nav .menu{
  display: flex;
}
nav .menu > li{
  border: 1px solid #EEEEEE;
  position: relative;
}
nav .menu > li.btnapplication{
	display: none;
}
nav .menu li > a{
	display: flex;
	align-items: center;
	justify-content: center;
	height: 68px;
	font-size: 14px;
	font-weight: 700;
	color: #222222;
	transition: .5s;
	position: relative;
}
#about nav .menu li:nth-child(1) > a,
#schoolbulding nav .menu li:nth-child(2) > a,
#course nav .menu li:nth-child(3) > a,
#price nav .menu li:nth-child(4) > a,
#voice nav .menu li:nth-child(5) > a,
#column nav .menu li:nth-child(6) > a,
#company nav .menu li:nth-child(7) > a{
	color: var(--main-color);
}
nav .menu li > a::before{
	display: block;
	content: "";
	width: 100%;
	height: 3px;
	background: var(--main-color);
	position: absolute;
	top: 0;
	transition: .5s;
	opacity: 0;
}
nav .menu li > a:hover::before{
	opacity: 1;
}
#about nav .menu li:nth-child(1) > a::before,
#schoolbulding nav .menu li:nth-child(2) > a::before,
#course nav .menu li:nth-child(3) > a::before,
#price nav .menu li:nth-child(4) > a::before,
#voice nav .menu li:nth-child(5) > a::before,
#column nav .menu li:nth-child(6) > a::before,
#company nav .menu li:nth-child(7) > a::before{
	opacity: 1;
}
nav .menu .sub-menu li a::before{
	display: none;
}
@media screen and (min-width: 821px) {
	nav .menu li > a:hover{
		color: var(--main-color);
		background: #F4F4F4;
	}
}
/* サブメニューのスタイル */
.sub-menutitle + span{
	position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
}
.sub-menutitle + span::before{
	display: inline-block;
	content: "";
	width: 10px;
	height: 4px;
	background: center / contain no-repeat url("../img/icon-arrow-faq.svg");
	position: relative;
	top: -2px;
}
.sub-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	width: 100vw;
	padding: 36px 0;
	background-color: #FFF;
	box-shadow: 0 2px 5px rgba(0,0,0,0.5);
	position: fixed;
	transition: 1s;
	top: -270px;
	left: 0;
	z-index: -1;
}
.submenudown .sub-menu{
	top: 155px;
}
nav .menu .sub-menu{
	display: flex;
	justify-content: center;
}
nav .menu .sub-menu ul{
	width: 42%;
	max-width: 500px;
}
nav .menu .sub-menu ul:nth-child(1){
	margin-right: 4%;
}
nav .menu .sub-menu li{
	margin: 0 0 36px;
}
nav .menu .sub-menu li a{
	width: 100%;
	height: auto;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 10px 0;
	border-bottom: solid 1px #EEEEEE;
	position: relative;
}
.sub-menu img {
	width: 115px;
	height: 60px;
	border-radius: 5px;
	margin-right: 20px;
}
.sub-menu span {
	font-size: 14px;
}
.sub-menu a::after{
	display: block;
	content: "";
	width: 30px;
	height: 30px;
	background: center / contain no-repeat url("../img/icon-arrow-w.svg");
	position: absolute;
	right: 10px;
	top: 50%;
    transform: translateY(-50%);
}
@media screen and (max-width: 930px) {
	nav .menu li > a{
		font-size: 12px;
	}
}
@media screen and (max-width: 820px) {
	.pcNav main{
		filter: brightness(30%) blur(3px);
	}
	header nav{
		width: 300px;
		height: 100vh;
		padding: 75px 0 0;
		position: fixed;
		top: 0;
		right: -100vw;
		background: #FFF;
		transition: .5s;
		overflow: scroll;
	}
	.pcNav header nav{
		right: 0;
	}
	nav .menu{
		width: 100%;
		flex-wrap: wrap;
	}
	nav .menu > li{
		width: 100%;
	}
	nav .menu > li a{
		justify-content: flex-start;
		font-size: 14px;
		text-align: left;
		padding: 20px 30px;
		background: #FFF;
	}
	/*
	.sub-menutitle{
		width: calc( 100% - 54px );
	}*/
	.sub-menutitle + span{
		display: block;
		width: 54px;
		height: 68px;
		margin: 0;
		position: absolute;
		top: 0;
		right: 0;
		transform: none;
		z-index: 1;
	}
	.sub-menutitle + span:hover{
		cursor: pointer;
	}
	.sub-menutitle + span::before{
		position: absolute;
		top: 50%;
		right: 20px;
		transform: translateY(-50%);
	}
	nav .menu .sub-menu{
		flex-wrap: wrap;
		width: 100%;
		padding: 0;
		position: absolute;
		top: -397px;
		box-shadow: none;
		transition: none;
	}
	.submenudown nav .menu .sub-menu{
		position: relative;
		top: 0;
		z-index: 1;
	}
	nav .menu .sub-menu ul{
		width: 100%;
	}
	nav .menu .sub-menu ul:nth-child(1){
		margin-right: 0;
	}
	.sub-menu img{
		display: none;
	}
	nav .menu .sub-menu li{
		margin: 0;
	}
	nav .menu .sub-menu li a{
		padding: 20px 30px 20px 50px;
	}
	nav .menu .sub-menu ul:nth-child(1) li:first-child a{
		border-top: solid 1px #EEEEEE;
	}
	nav .menu .sub-menu ul:nth-child(2) li:last-child a{
		border-bottom: none;
	}
	.sub-menu a::after{
		display: none;
	}
	/*スマホ時メニュー内お見積もり申し込みボタン*/
	nav .menu > li.btnapplication{
		display: block;
		padding: 20px 30px;
		border-bottom: none;
	}
	nav .menu > li.btnapplication .ctabtn{
		justify-content: center;
		width: 100%;
		max-width: 100%;
		height: 44px;
	}
	nav .menu > li.btnapplication .ctabtn::before{
		width: 14px;
        height: 14px;
        margin: 0 5px 0 0;
	}
	nav .menu > li.btnapplication .ctabtn::after{
		width: 4px;
		height: 7px;
		right: 5px;
	}
}
@media screen and (max-width: 520px) {
	header nav{
		padding: 65px 0 0;
	}
}
/*openbtn-ハンバーガーメニュー*/
.openbtn1{
	display: none;
}
@media screen and (max-width: 820px) {
	.openbtn1{
		display: block;
		cursor: pointer;
		width: 70px;
		height: 75px;
		position: relative;
		z-index: 1;
	}
	.openbtn1 span:nth-of-type(1),
	.openbtn1 span:nth-of-type(2),
	.openbtn1 span:nth-of-type(3){
		display: inline-block;
		transition: all .4s;
		width: 30px;
		height: 2px;
		border-radius: 2px;
		background: #383838;
		position: absolute;
		left: 20px;
	}
	.openbtn1 span:nth-of-type(1) { top:28px;}
	.openbtn1 span:nth-of-type(2) { top:35px;}
	.openbtn1 span:nth-of-type(3) { top:42px;}

	.openbtn1.active span:nth-of-type(1) {
		top: 35px;
		transform: rotate(-30deg);
	}
	.openbtn1.active span:nth-of-type(2){
		opacity: 0;
	}
	.openbtn1.active span:nth-of-type(3){
		top: 35px;
		transform: rotate(30deg);
	}
}
@media screen and (max-width: 520px) {
	.openbtn1{
		height: 65px;
	}
	.openbtn1 span:nth-of-type(1) { top:22px;}
	.openbtn1 span:nth-of-type(2) { top:30px;}
	.openbtn1 span:nth-of-type(3) { top:38px;}
	.openbtn1.active span:nth-of-type(1),
	.openbtn1.active span:nth-of-type(3){
		top: 31px;
	}
}

main{
	padding: 155px 0 0;
	filter: brightness(100%) blur(0px);
	transition: 1s;
}
/*メガメニュー
.submenudown main{
	filter: brightness(30%) blur(3px);
}*/
@media screen and (max-width: 820px) {
	main{
		padding: 85px 0 0;
	}
}
@media screen and (max-width: 520px) {
	main{
		padding: 65px 0 0;
	}
}
/*==================================================================================================*/
/*footer-フッター*/
footer{
	background: var(--main-color)
}
footer .inner{
	padding: 100px 0 140px;
}
footer p,
footer a{
	color: #FFF;
}
footer .inner div{
	width: fit-content;
}
footer .inner div img{
	display: block;
	width: 210px;
	margin: 0 0 30px;
}
footer .inner div p{
	font-family: var(--point-font);
	font-size: 14px;
	letter-spacing: 0.16rem;
	line-height: 1.4;
	margin: 0 0 20px;
}
footer .inner div a{
	letter-spacing: 0.16rem;
}
footer .inner div p:nth-child(2){
	font-size: 16px;
	margin: 0 0 10px;
}
footer .inner div a{
	display: flex;
	align-items: center;
	opacity: 1;
	transition: .5s;
}
footer .inner div a span{
	display: flex;
	align-items: center;
}
footer .inner div a span::after{
	display: block;
	content: "";
	width: 1px;
	height: 22px;
	background: #FFF;
	margin: 0 20px;
}
footer .inner div a img{
	display: block;
	width: 22px;
	height: 22px;
	margin: 0;
}
.ftNav{
	width: calc(100% - 300px);
    max-width: 605px;
	display: flex;
	justify-content: space-between;
	align-content: flex-start;
	flex-wrap: wrap;
}
.ftNav li{
	width: fit-content;
}
.ftNav li a{
	display: block;
	width: 100%;
	font-size: 15px;
 	letter-spacing: 0.08rem;
	margin: 0 0 35px;
	transition: .5s;
	opacity: 1;
}
@media screen and (min-width: 821px) {
	footer .inner div a:hover{
		opacity: .8;
	}
	.ftNav li a:hover{
		opacity: .8;
	}
}
.ftNav li.ftsubmenutitle a{
	margin: 0 0 5px;
}
.ftNav li p{
	margin: 0 0 5px;
}
.ftNav li .ftNavSub li{
	width: 100%;
}
.ftNav li .ftNavSub a{
	display: flex;
	align-items: center;
	font-size: 14px;
	padding: 0 0 0 10px;
	margin: 0 0 10px;
}
.ftNav li .ftNavSub a::before{
	display: block;
	content: "";
	width: 3px;
	height: 7px;
	background: center / contain no-repeat url(../img/icon-arrow-normal.svg);
	margin: 0 7px 0 0;
}
.ftNav + .column{
	margin: 120px auto 0;
}
/**/
footer .column3{
	margin: 0;
}
/**/
footer .last{
	background: #023C6F;
}
footer .last .inner{
	padding: 10px 0;
}
footer small{
	font-family: "Roboto";
	font-size: 10px;
	color: #6A767F;
}
@media screen and (max-width: 820px) {
	footer .inner {
		width: 100%;
		padding: 30px 0 60px;
	}
	footer .inner div{
		width: 100%;
		margin: 0 0 40px;
	}
	footer .inner div img{
		width: 137px;
		margin: 0 auto 20px;
	}
	footer .inner div p{
		text-align: center;
	}
	footer .inner div p{
		font-size: 13px;
	}
	footer .inner div p:nth-child(2){
		font-size: 14px;
	}
	footer .inner div a{
		width: fit-content;
		margin: 0 auto;
	}
	footer .inner div a span,
	footer .inner div a span::after{
		display: none;
	}
	/**/
	.ftNav{
		width: 100%;
        max-width: 360px;
        margin: 0 auto;
	}
	.ftNav li{
		width: 100%;
	}
	.ftNav li a{
		padding: 20px 30px;
		border-bottom: solid 1px #467CB2;
		margin: 0;
	}
	.ftNav li.ftsubmenutitle a{
		margin: 0;
	}
	.ftNav li:nth-child(1) a{
		border-top: solid 1px #467CB2;
	}
	.btn.white {
    	height: 60px !important;
			margin-top: 20px;
	}
	.ftNavSub{
		display: none;
	}
	.ftNav + .column{
		width: 90%;
		max-width: 320px;
		margin: 0 auto;
	}
	/**/
	footer .last .inner{
		justify-content: center;
		padding: 15px 0;
	}
	footer .last .inner a{
		display: block;
		font-size: 12px;
		margin: 0 0 5px;
	}
	small{
		width: 100%;
		text-align: center;
	}
}
@media screen and (max-width: 560px) {
	footer .last{
		padding: 0 0 62px;
	}
}
@media screen and (max-width: 520px) {
	.ftNav{
        max-width: 100%;
	}
	.ftNav + .column{
		max-width: 90%;
	}
}
/*==================================================================================================*/
/*form-入力フォーム*/
.formAll{
	padding: 0 0 100px;
}
.formAll::before,
.formAll::after{
	display: block;
	content: "";
	width: 100%;
	position: absolute;
	z-index: -1;
}
.formAll::before{
	height: 200px;
	background: #F2F9FF;
	top: 0;
}
.formAll::after{
	border-bottom: 500px solid transparent;
	border-left: 3000px solid #F2F9FF;
	top: 200px;
}
.form{
	width: 90%;
	max-width: 940px;
	margin: 0 auto;
	border-radius: 30px;
    background: #FFF;
    padding: 60px 20px;
	box-shadow: 0 2px 20px rgba(0,0,0,0.1);
}
.form .inner{
	max-width: 480px;
}
.form dl{
	margin: 0 auto 30px;
}
.form dl dt{
	font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
	margin: 0 0 5px 0;
}
.form dl dd{
	position: relative;
}
.form dl dd p{
	font-size: 14px;
}
.form dl dd input,
.form dl dd select,
.form dl dd textarea{
	width: 100%;
	height: 52px;
	font-size: 14px;
	border: solid 1px #ECECEC;
	display: flex;
    align-items: center;
    border-radius: 5px;
	padding: 0 20px;
}
.form dl dd.short input,
.form dl dd.short select,
.form dl dd.short span{
	max-width: 250px;
}
.form dl dd.select span,
.form dl dd.address p span.add03select{
	display: block;
    position: relative;
}
.form dl dd.select span::before,
.form dl dd.date p span::before,
.form dl dd.address p span.add03select::before{
    display: block;
    content: "";
	border-top: 5px solid #999;
	border-right: 4px solid transparent;
	border-left: 4px solid transparent;
    position: absolute;
    top: 24px;
    right: 20px;
}
/*年月日*/
.form dl dd.date p{
	display: flex;
	justify-content: space-between;
}
.form dl dd.date p span{
	display: block;
	width: 32%;
}
/*ご住所*/
.form dl dd.address p{
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
.form dl dd.address p span{
	width: fit-content;
}
.form dl dd.address p span .add01,
.form dl dd.address p span .add02{
	width: 110px;
	margin: 0 6.5px 10px;
}
.form dl dd.address p span .add03{
	width: 269px;
	margin: 0 0 10px;
}
.form dl dd.address p span .add04{
	width: 370px;
}
/*チェックボックス*/
.form dl dd.radio .wpcf7-list-item{
    line-height: 1;
	margin: 0 !important;
}
.form dl dd.radio .wpcf7-list-item input[type="radio"]{
	width: 20px;
	height: 20px;
	position: absolute;
	z-index: 1;
	opacity: 0;
}
.form dl dd.radio .wpcf7-list-item + .wpcf7-list-item {
    margin-left: 10px !important;
}
.form dl dd.radio .wpcf7-list-item-label {
    position: relative;
    height: 20px;
    line-height: 20px;
    padding-left: 25px;
    display: inline-block;
}
.form dl dd.radio .wpcf7-list-item-label::before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    border: solid 1px #ECECEC;
	border-radius: 50%;
    background: #fff;
    position: absolute;
    left: 0;
    top: 0;
    box-sizing: border-box;
}
.form dl dd.radio input[type="radio"]:checked + .wpcf7-list-item-label::after {
    content: "";
    display: block;
    width: 12px;
    height: 12px;
	background: var(--main-color);
	border-radius: 50%;
    position: absolute;
    left: 4px;
    top: 4px;
}
/*テキストエリア*/
.form dl dd.textarea textarea{
	height: 174px;
	padding: 20px 30px;
}
/*プラポリ案内*/
.form dl + p{
    margin: 25px auto 15px;
    font-size: 13px;
}
.form dl + p a{
    font-size: 13px;
    color: var(--sub-color);
	text-decoration: underline;
}
/*承認ボタン*/
.form .check span.wpcf7-form-control-wrap{
	margin: 0 auto 40px;
    display: block;
    width: fit-content;
}
.form .check .wpcf7-list-item{
	margin: 0;
}
.form .check label {
    display: flex;
    align-items: center;
}
.form .check label input {
    width: fit-content;
    margin: 0 10px 0 0;
}
/*ボタン各種*/
.form [type="button"], .form [type="reset"], .form [type="submit"]{
	display: block;
	max-width: 260px;
	font-size: 14px;
	text-align: center;
	color: #FFF;
	padding: 20px 10px;
    background: linear-gradient(#FF8C3E, #F76A0C);;
    border-radius: 30px;
	position: relative;
	transition: .5s;
	margin: 0 auto 20px;
}
.form [type="button"]{
    background: #999;

}
span.wpcf7-not-valid-tip {
    font-size: 11px;
}
/*確認画面*/
form.custom-wpcf7c-confirmed dl dd input,
form.custom-wpcf7c-confirmed dl dd select,
form.custom-wpcf7c-confirmed dl.textarea dd textarea{
    border: none;
    background: #eee;
    border-radius: 0;
}
.custom-wpcf7c-confirmed [type="submit"]{
	background: linear-gradient(#296ED3, #1D55AE);
}
/*必須項目*/
.form dt.required p::after{
	display: inline-block;
	content: "*";
	color: #e70000;
	margin: 0 0 0 -3px;
}
/*プレースホルダー*/
input[type="text"].p-postal-code {
  width: auto;
}
::-webkit-input-placeholder { color: rgba(34,34,34,0.20); }
:-ms-input-placeholder { color: rgba(34,34,34,0.20) !important; }
::-moz-placeholder { color: rgba(34,34,34,0.20); opacity: 1; }
::placeholder {
  color: rgba(34,34,34,0.20);
  opacity: 1;
}
:focus::-webkit-input-placeholder { color: transparent; }
:focus:-ms-input-placeholder { color: transparent; }
:focus::-moz-placeholder { color: transparent; }
:focus::placeholder {
  color: transparent;
}
/*必須項目不足*/
.wpcf7-response-output {
    max-width: 500px;
    width: 90%;
    display: flex;
    text-align: center;
    justify-content: center;
    font-size: 12px;
    margin: -20px auto 30px!important;
}
/*入力確認の時の▼削除*/
.form dl dd.select span.wpcf7-not-valid-tip::before{
    display: none;
}
/*ファイル*/
.wpcf7 input[type="file"]{
    height: auto;
    padding: 0;
    border: none;
    border-radius: 0;
}




@media screen and (max-width: 520px) {
	.form {
		border-radius: 10px;
		padding: 20px 0;
	}
	.form .inner{
		width: 90%;
		max-width: 90%;
	}
	.form .check span.wpcf7-form-control-wrap{
		margin: 0 auto 20px;
	}
}
