@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
/* common */
footer {
	padding-bottom: 176px !important;
}
body {
	letter-spacing: 0;
}
@media all and (max-width: 768px) {
	footer {
		padding-bottom: 130px !important;
	}
}
#main {
	margin: 0;
	color: #191919;
	font-size: 22.528px;
	line-height: 1.5;
	letter-spacing: 0;
	font-feature-settings: "palt";
	font-family: "Noto Sans JP", sans-serif;
}

#main p {
	line-height: 1.5;
}
img {
	max-width: 100%;
	height: auto;
	vertical-align: top;
}
@media all and (min-width: 769px) {
	.sp {
		display: none !important;
	}
}
@media all and (max-width: 768px) {
	.pc {
		display: none !important;
	}
}
/*------------------------------------------------------------
	汎用スタイル
------------------------------------------------------------*/
/* 81-JYJ */
/* clearfix */	
.clearfix:after {content: "";display: block;clear: both;}
/* flex */	
.flex,.flexA,.flexB,.flexC {display: flex;flex-wrap: wrap;}
.flexA {justify-content: space-around;}
.flexB {justify-content: space-between;}
.flexC {justify-content: center;}
/*------------------------------------------------------------
	fonts
------------------------------------------------------------*/
.roboto {
	font-family: "Roboto", sans-serif;
}
/*------------------------------------------------------------
	content
------------------------------------------------------------*/
.content {
	margin: 0 auto;
	max-width: calc(100% - 30px);
	width: 1080px;
	box-sizing: border-box;
	background: #fff;
	border-radius: 4px;
}
.content01 {
	margin: 0 auto;
	width: calc(100% - 30px);
	max-width: 804px;
	box-sizing: border-box;
}
@media all and (max-width: 768px) { 
	.content {
		padding: 0 15px;
		width: auto;
	}
	.content01 {
		width: auto;
		max-width: inherit;
	}
}
/*------------------------------------------------------------
	pop
------------------------------------------------------------*/
body.fixed {
    position: fixed;
    width: 100%;
    left: 0;
    overflow: hidden; /* 念のため */
}
button.mfp-close {
	display: none;
}
.mfp-bg {
	/* background: #747474; */
	opacity: 0.8;
}
.mfp-container {
	padding: 0;
}
.mfp-content {
	padding: 30px 0;
}
/*------------------------------------------------------------
	comPopBox
------------------------------------------------------------*/
.comPopBox {
	padding: 74px 0 66px;
	border-radius: 24px;
	font-size: 14px;
	line-height: 1.5;
	position: relative;
}
.comPopBox .popup-close {
	width: 13px;
	height: 13px;
	position: absolute;
	right: 18px;
	top: 18px;
	display: block;
	cursor: pointer;
	transition: 0.3s;
}
.comPopBox .innerBox {
	margin: 0 auto;
	width: 960px;
	max-width: calc(100% - 15px);
}
.comPopBox .innerBox > p + ul {
	margin-top: 15px;
}
.comPopBox .innerBox ul + ul {
	margin-top: 18px;
}
.comPopBox .innerBox > *:last-child {
	margin-bottom: 0;
}
.comPopBox p {
	line-height: 1.5;
}
.comPopBox .tableImg {
	margin: 19px 0 16px;
	width: 468px;
}
.comPopBox .innerBox a {
	font-weight: 500;
	color: #0050C8;
	text-decoration: underline;
}
.comPopBox .heading {
	margin-bottom: 14px;
	font-size: 14px;
	line-height: 1.5;
}
.comPopBox .heading02 {
	margin-bottom: 18px;
	font-size: 18px;
}
.comPopBox li {
	line-height: 1.5;
}
.comPopBox .siteList > li + li {
	margin-top: 21px;
}
.comPopBox .subList li {
	padding-left: 16px;
	text-indent: -16px;
}
.comPopBox .inner {
	margin-top: 20px;
}
.comPopBox .inner p {
	margin-bottom: 15px;
}
.comPopBox .inner .siteList p {
	margin-bottom: 0;
}
.comPopBox .inner .text {
	margin-bottom: 0;
}
.comPopBox .inner .subList + p {
	margin-top: 15px;
}
.comPopBox .inner > *:last-child {
	margin-bottom: 0;
}
.comPopBox h4 {
	margin-bottom: 10px;
}
.comPopBox h4:not(:first-of-type) {
	margin-top: 35px;
}
.comPopBox.comBox {
	padding: 37px 11px 60px;
	border-radius: 16px;
}
.comPopBox.comBox .popup-close {
	width: 32px;
	height: 32px;
	right: 14px;
	top: -14px;
}
.comPopBox.comBox .heading {
	margin-bottom: 35px;
	padding: 0 40px;
	font-size: 27px;
	line-height: 1.222;
	background-size: 25px;
	background-position: left bottom 2px,right bottom 2px;
}
.comPopBox.comBox p {
	font-size: 18px;
	letter-spacing: 0.02em;
	font-weight: 500;
}
.comPopBox.comBox .comBtn + p {
	margin-top: 27px;
}
.comPopBox.comBox .comBtn {
	margin-top: 4px;
}
@media all and (min-width: 769px) { 
	.comPopBox .popup-close:hover {
		opacity: 0.8;
	}
}
@media all and (max-width: 768px) { 
	.comPopBox {
		padding: 40px 17px 30px;
		font-size: 10px;
		min-height: 187px;
	}
	.comPopBox .heading {
		margin-bottom: 4px;
		font-size: 11px;
	}
	.comPopBox .innerBox {
		margin: 0;
		width: auto;
		max-width: 100%;
	}
	.comPopBox .tableImg {
		margin: 10px 0;
		width: 100%;
		max-width: 316px;
	}
	.comPopBox .siteList > li + li {
		margin-top: 15px;
	}
	.comPopBox .subList li {
		padding-left: 10px;
		text-indent: -10px;
	}
	.comPopBox .innerBox > p + ul {
		margin-top: 8px;
	}
	.comPopBox .heading02 {
		margin-bottom: 13px;
		font-size: 12.99px;
		letter-spacing: 0.02em;
	}
	.comPopBox .inner p {
		margin-bottom: 5px;
	}
	.comPopBox .inner p + p {
		margin-top: 15px;
	}
	.comPopBox .inner p + .siteList {
		margin-top: 15px;
	}
	.comPopBox.pop10 h4 {
		font-size: 11px;
	}
	.comPopBox h4:not(:first-of-type) {
		margin-top: 13px;
	}
	.comPopBox.comBox {
		padding: 15px 11px 30px;
		width: calc(100% - 30px);
	}
	.comPopBox.comBox .heading {
		margin-bottom: 14px;
		padding: 0 23px;
		font-size: 18px;
		line-height: 1.222;
		background-size: 17px;
	}
	.comPopBox.comBox p {
		font-size: 12px;
	}
	.comPopBox.comBox .comBtn {
		margin-top: 1px;
	}
	.comPopBox.comBox .comBtn a {
		width: 295px;
	}
	.comPopBox.comBox .comBtn + p {
		margin-top: 11px;
	}
	.comPopBox.comBox .popup-close {
		width: 21px;
		height: 21px;
		right: 10px;
		top: -10px;
	}
}
@media all and (max-width: 374px) { 
	.comPopBox.comBox .heading {
		padding: 0 6vw;
		font-size: 4.6vw;
	}
}
/*------------------------------------------------------------
	comLink
------------------------------------------------------------*/
.comLink {
	margin: 20px auto 17px;
	width: 528px;
}
.comLink a {
	padding: 10px 20px 11px;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-align: center;
	display: block;
	border-radius: 5px;
	border: 1px solid #A0A0A0;
	background: url(../images/icon02.png) no-repeat center right 14px / 10px;
}
@media all and (min-width: 769px) { 
	.comLink a:hover {
		opacity: 0.8;
	}
}
@media all and (max-width: 768px) { 
	.comLink {
		margin: 12px auto 2px;
		width: 75%;
		min-width: 220px;
	}
	.comLink a {
		padding: 7px 10px 8px;
		font-size: 12px;
		letter-spacing: 0.08em;
		background-size: 7px;
		background-position: center right 9px;
	}
}
/*------------------------------------------------------------
	comBox
------------------------------------------------------------*/
.comBox {
	padding: 11px 11px 30px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #fff;
	background: #0050C8;
	text-align: center;
	position: relative;
	z-index: 1;
}
.comBox .colTxt {
	color: #FFF000;
}
.comBox .heading {
	margin: 0 auto 1px;
	padding: 0 25px;
	width: fit-content;
	font-size: 24px;
	letter-spacing: 0.02em;
	line-height: 1.5;
	font-weight: 900;
	background: url(../images/line01.png) no-repeat center left / 15px,url(../images/line02.png) no-repeat center right / 15px;
}
.comBox .heading small {
	font-size: 19px;
	display: inline;
	font-weight: 700;
}
.comBox .comBtn {
	margin-top: 9px;
}
.comBox .posText {
	margin: -47px auto 0;
	width: 518px;
}
.comBox.fixedBtn {
	width: 100%;
	position: fixed;
	left: 0;
	bottom: 0;
	z-index: 10000;
}
@media (max-width: 768px) {
	.comBox {
		padding-bottom: 20px;
		font-size: 10px;
	}
	.comBox .heading {
		padding: 0 18px;
		font-size: 18px;
		line-height: 1.1;
		background-size: 12px;
	}
	.comBox .heading small {
		font-size: 15px;
	}
	.comBox .comBtn {
		margin-top: 5px;
	}
	.comBox .posText {
		margin: -35px auto 5px;
		width: 345px;
		max-width: 100%;
	}
	.comBox.fixedBtn {
		padding-top: 15px;
	}
}
@media (max-width: 374px) {
	.comBox .heading {
		font-size: 4.8vw;
	}
}
/*------------------------------------------------------------
	comBtn
------------------------------------------------------------*/
.comBtn a {
	margin: 0 auto;
	width: 531px;
	height: 60px;
	font-size: 27px;
	letter-spacing: 0.02em;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: #E62E8B;
	border-radius: 12px;
	box-shadow: 0 3px 0 #4C2538;
	transition: 0.3s;
}
.comBtn a::after {
	width: 100%;
	height: 50%;
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	border-radius: 12px 12px 0 0;
	opacity: 0.3;
	background: linear-gradient(to bottom,#fff 0%,rgba(255,255,255,0) 100%);
}
.comBtn span {
	position: relative;
	z-index: 1;
}
.comBtn a small {
	font-size: 21px;
	display: inline;
}
.comBtn02 a {
	background: #FFA000;
	box-shadow: 0 3px 0 #493C25;
}
@media all and (min-width: 769px) {
	.comBtn a:hover {
		opacity: 0.8;
	}
}
@media (max-width: 768px) {
	.comBtn a {
		width: 314px;
		max-width: 100%;
		height: 40px;
		font-size: 18px;
		border-radius: 8px;
		box-shadow: 0 2px 0 #4C2538;
	}
	.comBtn a small {
		font-size: 14px;
	}
	.comBtn a::after {
		top: 1px;
		border-radius: 6px 6px 0 0;
	}
}
/*------------------------------------------------------------
	headLine
------------------------------------------------------------*/
.headLine {
	margin-bottom: 23px;
	text-align: center;
	font-size: 28px;
}
.headLine .topTxt {
	margin: 0 auto 17px;
	padding: 0 28px;
	width: fit-content;
	font-size: 21px;
	letter-spacing: 0.12em;
	line-height: 1.2;
	display: block;
	background: url(../images/line03.png) no-repeat center left / 19px,url(../images/line04.png) no-repeat center right / 19px;
}
.headLine .text {
	padding: 3px;
	display: block;
	border-radius: 12px;
	color: #fff;
	letter-spacing: 0.12em;
	background: #0050C8;
}
@media (max-width: 768px) {
	.headLine {
		margin-bottom: 14px;
		font-size: 14px;
	}
	.headLine .topTxt {
		margin-bottom: 10px;
		padding: 0 18px;
		font-size: 14px;
		background-size: 13px;
	}
	.headLine .text {
		padding: 5px 5px 6px;
		border-radius: 8px;
	}
}
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#main .wrp-contents {
	padding: 0 0 64px;
	max-width: inherit;
	background: #CCEBF5;
}
#main .mainVisual {
	padding-bottom: 50px;
	background: #FFEB5A;
}
#main .mainVisual .textList {
	margin-bottom: 9px;
	padding: 7px 0;
	font-size: 21px;
	font-weight: 700;
	color: #fff;
	background: #0050C8;
	gap: 23px;
	letter-spacing: 0.12em;
	position: relative;
	z-index: 2;
}
#main .mainVisual .textList li {
	position: relative;
}
#main .mainVisual .textList li + li::before {
	width: 1px;
	content: "";
	position: absolute;
	left: -13px;
	top: 8px;
	bottom: 7px;
	background: #fff;
	pointer-events: none;
}
#main .mainVisual .mainImg {
	margin: 0 auto;
	width: 676px;
	position: relative;
	z-index: 1;
}
#main .mainVisual .mainImg::after {
	width: 1367px;
	height: 955px;
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: -1;
	background: url(../images/bg01.png) no-repeat center center / 100%;
	transform: translate(-50%,-28.6%);
}
#main .mainVisual .textBox {
	margin: -18px auto 30px;
	width: 804px;
	max-width: calc(100% - 30px);
	position: relative;
	z-index: 1;
}
#main .mainVisual .textBox .textLink {
	position: absolute;
	right: 29px;
	bottom: 15px;
}
#main .textLink {
	text-align: right;
	font-size: 14px;
	letter-spacing: 0.04em;
	font-weight: 700;
}
#main .textLink li {
	text-align: right;
	line-height: 1.5;
}
#main .textLink li + li {
	margin-top: 5px;
}
#main .textLink a {
	text-decoration: underline;
}
#main .mainVisual .comBox {
	border-radius: 16px;
}
#main .flowBox {
	padding: 110px 0 95px;
}
#main .flowBox .content {
	margin-bottom: 20px;
	overflow: hidden;
}
#main .flowBox .heading {
	margin: 0 auto 47px;
	width: 432px;
	max-width: 100%;
}
#main .flowBox .innerBox {
	padding: 40px 0;
	border-radius: 4px;
}
#main .flowBox .innerBox:last-child {
	margin-bottom: 0;
}
#main .flowBox .textList {
	padding: 10px 20px;
	border-radius: 8px;
	background: #F5F5F5;
}
#main .flowBox .textList li {
	font-size: 14px;
	letter-spacing: 0.04em;
	font-weight: 500;
}
#main .flowBox .textList span {
	margin-right: 17px;
	color: #0050C8;
	font-weight: 900;
}
#main .flowBox .textList strong {
	font-weight: 900;
}
#main .flowBox .bg {
	position: relative;
}
#main .flowBox .bg .swiper::after {
	content: '';
	width: 313px;
	height: 100%;
	position: absolute;
	right: -312px;
	bottom: 0;
	z-index: 99999;
	pointer-events: none;
	background: linear-gradient(to left,#fff 21%,transparent 83%);
}
#main .flowBox .bg .swiper::before {
	content: '';
	width: 313px;
	height: 100%;
	position: absolute;
	left: -312px;
	bottom: 0;
	z-index: 99999;
	pointer-events: none;
	background: linear-gradient(to right,#fff 21%,transparent 83%);
}
/* swiper */
.swiper-slide-next {
	opacity: 0.4;
}
.swiper-slide-prev {
	opacity: 0.4;
}
#main .flowBox .slideBox {
	margin: 30px auto 0;
	width: 457px;
}
#main .flowBox .stepList01 {
	margin-bottom: 30px;
	gap: 29px;
}
#main .flowBox .stepList01 li {
	width: 81px;
	height: 81px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	flex-direction: column;
	line-height: 1;
	font-weight: 700;
	border-radius: 100%;
	color: #93D5EA;
	letter-spacing: 0.02em;
	gap: 5px;
	border: 3px solid #93D5EA;
	position: relative;
}
#main .flowBox .stepList01 li::before {
	content: "";
	width: 9px;
	height: 9px;
	position: absolute;
	left: -22px;
	top: 50%;
	transform: translateY(-50%);
	border-radius: 100%;
	background: #93D5EA;
}
#main .flowBox .stepList01 li:first-child::before {
	display: none;
}
#main .flowBox .stepList01 .on {
	color: #fff;
	border-color: #0050C8;
	background: #0050C8;
}
#main .flowBox .stepList01 .en {
	font-size: 15px;
}
#main .flowBox .stepBox {
	display: flex;
	position: relative;
	z-index: 1;
}
#main .flowBox .stepBox .swiper-slide {
	margin-right: 60px;
	width: 100%;
	padding: 15px 15px 18px;
	border-radius: 12px;
	font-size: 16.5px;
	letter-spacing: 0.04em;
	text-align: center;
	border: 3px solid #0050C8;
	flex-shrink: 0;
	height: auto;
}
#main .flowBox .stepBox p {
	line-height: 1.6;
}
#main .flowBox .stepBox strong {
	display: inline;
}
#main .flowBox .stepBox .image {
	margin-bottom: 11px;
}
#main .flowBox .subBox {
	position: relative;
	overflow: visible;
	z-index: 1 !important;
}
#main .flowBox .arrow {
	margin: 0;
	width: 42px;
	position: absolute;
	left: -42px;
	top: 50%;
	transform: translateY(-50%);
	transition: 0.3s;
	cursor: pointer;
}
#main .flowBox .arrow::before,
#main .flowBox .arrow::after {
	display: none;
}
#main .flowBox .arrow.next {
	left: auto;
	right: -42px;
}
#main .flowBox .innerBox02 {
	padding-bottom: 36px;
}
#main .flowBox .innerBox02 .image {
	margin: 0 auto 30px;
	width: 622px;
}
#main .flowBox .textDl {
	margin-bottom: 16px;
	border-radius: 12px;
	background: #F5F5F5;
	overflow: hidden;
}
#main .flowBox .textDl dt {
	padding: 12px 36px;
	width: 216px;
	font-size: 15px;
	letter-spacing: 0.04em;
	line-height: 1.5;
	font-weight: 700;
	background: #C8C8C8;
	clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
}
#main .flowBox .textDl dt span {
	display: block;
}
#main .flowBox .textDl dd {
	padding: 15px 17px;
	width: calc(100% - 216px);
	font-size: 16.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	display: flex;
	align-items: baseline;
}
#main .flowBox .textDl dd span {
	font-size: 21px;
}
#main .flowBox .innerBox03 .image {
	margin: -2px auto 0;
	width: 639px;
}
#main .flowBox .tabTxt {
	margin: 7px 0 26px;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
}
#main .flowBox .innerBox03 .tabImage {
	margin-bottom: 16px;
}
#main .aboutBox {
	margin: 120px 0 96px;
}
#main .aboutBox .content {
	padding: 1px 0 60px;
}
#main .aboutBox .topText {
	margin: -61px auto 17px;
	width: 256px;
}
#main .aboutBox .image01 {
	margin: 0 auto 28px;
	width: 349px;
}
#main .aboutBox .heading {
	margin: 74px auto 23px;
	text-align: center;
	position: relative;
}
#main .aboutBox .heading::before {
	width: 114px;
	height: 114px;
	content: "";
	left: -120px;
	top: -91px;
	position: absolute;
	background: url(../images/star_icon.png) no-repeat center top / 100%;
}
#main .aboutBox .heading img {
	width: 490px;
}
#main .aboutBox .tabImage {
	margin: 0 auto 24px;
	width: 558px;
}
#main .comTxt {
	margin-bottom: 17px;
	text-align: center;
	font-size: 21px;
	font-weight: 700;
	letter-spacing: 0.08em;
}
#main .aboutBox .roundTxt {
	margin: -21px auto 75px;
	width: 141px;
	height: 141px;
	color: #fff;
	font-size: 24px;
	letter-spacing: 0.12em;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #0050C8;
	border-radius: 100%;
}
#main .aboutBox .heading02 {
	margin: 0 auto 23px;
}
#main .aboutBox .heading02::before {
	left: auto;
	right: -123px;
	top: -151px;
	transform: scale(-1);
}
#main .aboutBox .heading02 img {
	width: 456px;
}
#main .aboutBox .siteList {
	margin: 25px 0 17px;
	padding: 7px;
	border-radius: 9px;
	gap: 10px;
	border: 1.5px solid #C4C9CB;
}
#main .aboutBox .siteList li {
	padding: 12px 12px 20px;
	width: calc(50% - 5px);
	border-radius: 7px;
	text-align: center;
	font-size: 21px;
	line-height: 1.5;
	letter-spacing: 0.11em;
	font-weight: 400;
	background-color: #F5F5F5;
}
#main .aboutBox .siteList .smlTxt {
	margin-top: 2px;
	font-size: 15px;
	letter-spacing: 0.04em;
	font-weight: 700;
}
#main .aboutBox .siteList span {
	color: #E62E8B;
	font-size: 27px;
	font-weight: 900;
}
#main .aboutBox .inner03 .heading {
	margin: 77px auto 23px;
}
#main .aboutBox .inner03 .heading::before {
	top: -83px;
}
#main .aboutBox .inner03 .heading img {
	width: 608px;
}
#main .aboutBox .inner03 p:not(.comTxt) {
	font-size: 18px;
	letter-spacing: 0.08em;
	line-height: 1.75;
	text-align: center;
}
#main .aboutBox .imgList {
	margin: 35px 15px 0;
}
#main .aboutBox .imgList li {
	width: calc(50% - 20px);
	position: relative;
}
#main .aboutBox .imgList li + li::before {
	width: 24px;
	height: 48px;
	content: "";
	position: absolute;
	left: -30px;
	top: 50%;
	transform: translateY(-50%);
	background: url(../images/icon.png) no-repeat center center / 100%;
}
#main .optionBox {
	margin: 60px auto 20px;
	padding: 58px 75px 40px;
}
#main .optionBox .heading {
	margin: 0 auto 46px;
	width: 432px;
}
#main .optionBox .image {
	margin: 0 auto 17px;
	width: 929px;
	max-width: 100%;
}
#main .faqBox {
	padding: 61px 0 64px;
}
#main .faqBox .heading {
	margin: 0 auto 46px;
	width: 327px;
}
#main .faqBox dl {
	padding-bottom: 33px;
	background: #F5F5F5;
	border-radius: 12px;
	position: relative;
	cursor: pointer;
}
#main .faqBox dl::after {
	width: 25px;
	height: 25px;
	content: "";
	position: absolute;
	left: 50%;
	bottom: 9px;
	transform: translateX(-50%) scaleY(-1);
	background: url(../images/icon02.png) no-repeat center top / 100%;
	transition: 0.3s;
}
#main .faqBox dl.on::after {
	transform: translateX(-50%);
}
#main .faqBox dl + dl {
	margin-top: 20px;
}
#main .faqBox dt {
	padding: 32px 40px 29px 87px;
	font-size: 21px;
	line-height: 1.523;
	letter-spacing: 0.02em;
	font-weight: 700;
	color: #0050C8;
	position: relative;
	transition: 0.3s;
}
#main .faqBox dt::before {
	width: 39px;
	height: 46px;
	content: "";
	position: absolute;
	left: 24px;
	top: 24px;
	background: url(../images/q.png) no-repeat center top / 100%;
}
#main .faqBox dd {
	padding: 0 40px 11px 87px;
	font-size: 16px;
	line-height: 1.5;
	display: none;
}
#main .faqBox dd a {
	text-decoration: underline;
}
.swiper-button-next, .swiper-button-prev {
  & svg {
	display: none;
  }
}
@media all and (min-width: 769px) {
	#main .flowBox .arrow:hover {
		opacity: 0.8;
	}
	#main .textLink a:hover {
		opacity: 0.8;
	}
	#main .sec02 .inner .subBox .linkUl li a:hover {
		opacity: 0.8;
	}
	#main .faqBox dd a:hover,
	#main .faqBox dt:hover {
		opacity: 0.8;
	}
}
@media (min-width: 769px) and (max-width: 1366px) {
	#main .aboutBox .siteList li {
		font-size: 1.537vw;
	}
	#main .aboutBox .siteList .smlTxt {
		font-size: 1.098vw;
	}
	#main .aboutBox .siteList span {
		font-size: 1.977vw;
	}
}
@media (min-width: 769px) and (max-width: 1080px) {
	#main .aboutBox .heading {
		max-width: 74.444vw;
		margin-left: auto;
		margin-right: auto;
	}
	#main .aboutBox .heading::before {
		top: -45px;
	}
}
@media all and (max-width: 1079px) {
	#main .wrp-contents {
		padding-top: 50px;
	}
}
@media all and (max-width: 768px) {
	#main .wrp-contents {
		padding: 50px 0 0;
	}
	#main .content img {
		width: 100%;
	}
	#main .mainVisual {
		padding-bottom: 0;
		overflow: hidden;
	}
	#main .mainVisual img {
		width: 100%;
	}
	#main .mainVisual .mainImg::after {
		width: 100vw;
		height: 120vw;
		transform: translate(-50%,-36%);
		background-image: url(../images/bg01_sp.png);
	}
	#main .mainVisual .textList {
		margin-bottom: 31px;
		padding: 8px 0;
		font-size: 14px;
		gap: 16px;
	}
	#main .mainVisual .textList li + li::before {
		left: -9px;
		top: 5px;
		bottom: 5px;
	}
	#main .mainVisual .mainImg {
		width: auto;
	}
	#main .mainVisual .textBox {
		margin: -10px auto 8px ;
		width: 335px;
	}
	#main .mainVisual .textBox .textLink {
		right: 19px;
  		bottom: 7px;
	}
	#main .mainVisual .comBox {
		padding: 62px 10px 20px;
		border-radius: 0;
		clip-path: polygon(50% 50px, 100% 0, 100% 100%, 0 100%, 0 0);
	}
	#main .textLink {
		font-size: 12px;
	}
	#main .flowBox {
		padding: 15px 0 45px;
	}
	#main .flowBox .bg {
		margin: 0 15px;
	}
	#main .flowBox .bg .swiper::before,
	#main .flowBox .bg .swiper::after {
		display: none;
	}
	#main .flowBox .innerBox {
		margin-bottom: 15px;
		padding: 29px 5px 20px;
	}
	#main .flowBox .heading {
		margin-bottom: 20px;
		width: 288px;
	}
	#main .flowBox .textList {
		padding: 8px 5px 8px 15px;
	}
	#main .flowBox .textList li {
		font-size: 11px;
		line-height: 1.46;
	}
	#main .flowBox .textList li + li {
		margin-top: 6px;
	}
	#main .flowBox .textList li span {
		display: block;
	}
	#main .flowBox .slideBox {
		margin-top: 24px;
		width: auto;
	}
	#main .flowBox .stepList01 {
		margin-bottom: 20px;
		gap: 20px;
	}
	#main .flowBox .stepList01 li {
		width: 54px;
		height: 54px;
		font-size: 16px;
		border-width: 2px;
	}
	#main .flowBox .stepList01 .en {
		font-size: 10px;
	}
	#main .flowBox .stepList01 li::before {
		width: 6px;
		height: 6px;
		left: -15px;
	}
	#main .flowBox .stepBox .swiper-slide {
		padding: 9px 10px 18px;
		border-width: 2px;
		border-radius: 8px;
		font-size: 11px;
	}
	#main .flowBox .stepBox .image {
		margin-bottom: 7px;
	}
	#main .flowBox .content {
		overflow: visible;
	}
	#main .flowBox .arrow {
		width: 28px;
		left: -28px;
	}
	#main .flowBox .arrow.next {
		left: auto;
		right: -28px;
	}
	#main .flowBox .innerBox02 .image {
		margin-bottom: 15px;
		width: 277px;
		max-width: 100%;
	}
	#main .flowBox .textDl {
		margin-bottom: 12px;
		border-radius: 8px;
	}
	#main .flowBox .textDl dt {
		padding: 8px 10px;
		width: 118px;
		font-size: 10px;
		line-height: 1.5;
		clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%);
	}
	#main .flowBox .textDl dd {
		padding: 5px 8px 5px 31px;
		width: calc(100% - 118px);
		line-height: 1.25;
		font-size: 11px;
		display: block;
		text-indent: -23px;
	}
	#main .flowBox .textDl dd span {
		font-size: 14px;
	}
	#main .flowBox .innerBox02 {
		padding-bottom: 16px;
	}
	#main .flowBox .innerBox03 .image {
		margin: 16px auto 0;
		width: 285px;
		max-width: 100%;
	}
	#main .flowBox .tabTxt {
		margin: 18px 0 13px;
		font-size: 10px;
	}
	#main .flowBox .innerBox03 .tabImage {
		margin-bottom: 13px;
	}
	#main .textLink li + li {
		margin-top: 7px;
	}
	#main .aboutBox {
		margin: 67px 0 44px;
	}
	#main .aboutBox .topText {
		margin: -38px auto 10px;
		width: 171px;
	}
	#main .aboutBox .image01 {
		margin-bottom: 16px;
		width: 290px;
		max-width: 100%;
	}
	#main .aboutBox .content {
		padding: 1px 5px 20px;
	}
	#main .aboutBox .heading {
		margin: 41px 0 15px;
	}
	#main .aboutBox .heading img {
		width: 188px;
	}
	#main .aboutBox .heading::before {
		width: 78px;
		height: 78px;
		left: -40px;
		top: -21px;
	}
	#main .comTxt {
		font-size: 14px;
	}
	#main .aboutBox .tabImage {
		margin-bottom: 13px;
		width: 304px;
		max-width: 100%;
	}
	#main .aboutBox .roundTxt {
		margin: 23px auto;
		width: 94px;
		height: 94px;
		font-size: 16px;
		letter-spacing: 0.12em;
	}
	#main .aboutBox .heading02 {
		margin: 0 0 16px;
	}
	#main .aboutBox .heading02::before {
		left: auto;
		top: -124px;
		right: -41px;
	}
	#main .aboutBox .heading02 img {
		width: 304px;
		max-width: 100%;
	}
	#main .aboutBox .siteList {
		margin: -1px 0 13px;
		padding: 4px;
		border-radius: 6px;
		display: block;
	}
	#main .aboutBox .siteList li {
		padding: 6px 5px 10px;
		width: 100%;
		font-size: 14px;
	}
	#main .aboutBox .siteList li + li {
		margin-top: 5px;
	}
	#main .aboutBox .siteList .smlTxt {
		margin-top: 0;
		font-size: 10px;
	}
	#main .aboutBox .siteList span {
		font-size: 18px;
	}
	#main .aboutBox .inner03 .heading {
		margin: 35px -7px 15px;
	}
	#main .aboutBox .inner03 .heading::before {
		left: auto;
		right: -34px;
		top: auto;
		bottom: -49px;
		transform: scale(-1);
	}
	#main .aboutBox .inner03 .heading img {
		width: 318px;
	}
	#main .aboutBox .inner03 .comTxt {
		margin-bottom: 10px;
	}
	#main .aboutBox .inner03 p:not(.comTxt) {
		font-size: 12px;
	}
	#main .aboutBox .imgList {
		margin: 17px 0 0;
	}
	#main .aboutBox .imgList li + li::after{
		width: 78px;
		height: 78px;
		content: "";
		left: -40px;
		top: -19px;
		position: absolute;
		background: url(../images/star_icon.png) no-repeat center top / 100%;
	}
	#main .aboutBox .imgList li {
		width: 100%;
	}
	#main .aboutBox .imgList li + li {
		margin-top: 40px;
	}
	#main .aboutBox .imgList li + li::before {
		top: -42px;
		left: 50%;
		transform: translateX(-50%) rotate(90deg);
	}
	#main .optionBox {
		margin: 15px auto 0;
		padding: 31px 20px 23px;
	}
	#main .optionBox .heading {
		margin-bottom: 19px;
		width: 290px;
		max-width: 100%;
	}
	#main .optionBox .image {
		margin-bottom: 13px;
		width: auto;
	}
	#main .bgBox {
		padding-bottom: 20px;
		border-radius: 0 0 4px 4px;
		background: #CCEBF5;
		position: relative;
		z-index: 1;
	}
	#main .faqBox {
		margin-top: -4px;
		padding: 36px 15px 6px;
		max-width: inherit;
		background: #fff;
		border-radius: 0;
	}
	#main .faqBox .heading {
		margin-bottom: 21px;
		width: 219px;
	}
	#main .faqBox dl {
		padding-bottom: 15px;
		border-radius: 8px;
		transition: 0.3s;
	}
	#main .faqBox dl + dl {
		margin-top: 15px;
	}
	#main .faqBox dt {
		padding: 18px 25px 20px 57px;
		font-size: 16px;
		line-height: 1.5;
	}
	#main .faqBox dd {
		padding: 0 15px 19px;
		font-size: 13px;
		line-height: 1.8;
	}
	#main .faqBox dl::after {
		width: 18px;
		height: 18px;
		bottom: 6px;
	}
	#main .faqBox dt::before {
		width: 26px;
		height: 31px;
		left: 16px;
		top: 15px;
	}
}
@media all and (max-width: 374px) {
	#main .flowBox .stepList01 {
		gap: 5.333vw;
	}
	#main .flowBox .stepList01 li {
        width: 14.4vw;
        height: 14.4vw;
        font-size: 4.267vw;
        border-width: 0.533vw;
    }
	#main .flowBox .stepList01 li::before {
        width: 1.6vw;
        height: 1.6vw;
        left: -4vw;
    }
}