@charset "utf-8";

.colorbox {
	overflow: auto;
}

.red {
	color: #ea0000;
}

.txtLink {
	border-bottom: 1px solid #ea0000;
	color: #ea0000;
}

[id] {
	scroll-margin-top: 80px; /* 固定ヘッダーの高さに応じて調整 */
  }


/*-------------------------------------------------------------------
	mainVisual
-------------------------------------------------------------------*/

#mainVisual {
	background: url("../images/main_h760_pcbg.png") top center no-repeat;
	background-size: 100% auto;
	/*background-size: cover;*//* 画面サイズに合わせる */
	padding: 20px 5% 20px;
	align-items: center;
	text-align: center;
	font-size: 1.8rem;
	font-weight: 500;
}

.mainInner {
	width: 1180px;
	max-width: 90%;;
	margin: 0 auto;
	margin-top: 3%;
	position: relative;
}


.mainIcon01 {
	position: absolute;
	top: -150px;
	left: -290px;
}

.mainIcon02 {
	position: absolute;
	top: -230px;
	right: -325px;
}

.mainImg-container { /* ロゴの部分 */
	align-items: center;
	margin-bottom: 10px;
}

.mainImg-container img {
	width: auto;
	height: auto;
}

/*
.area1 {
	float: left;
	width: 30%;
}	

.area2 {
	float: right;
	width: 70%; 
}

.mainCon {
	padding-left: 15vw;
	padding-left: clamp(0px, 15vw, 370px);
	 padding-left: 23vw;
	padding-left: clamp(0px, 23vw, 370px);	メインロゴ部分が右に寄る 
}*/

.mainFirst {
	font-weight: 700;
	padding-top: 0px;
}

.mainFirst img {
	max-width: 500px;
}

.mainFirst dd {
	font-size: 2.2rem;
	margin-top: -5px;
}

.mainFirst dd .mainBlue {
	font-size: 2.2rem;
	color: #0054a6;
}

.mainLogo {
	width: 45vw;
}

.mainSecond {
	font-weight: 600;
	text-align: center;
	margin-bottom: 30px;
}

.mainSubInner {
	font-size: 1.4rem;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
}

.mainDeco {
	position: absolute;
	bottom: 0;
	left: 0;
}

.mainDeco img {
	width: 21vw;
	max-width: 360px;
}

.mainSubLink {
	display: inline-block;
	margin-top: 20px;
	margin-bottom: 30px;
}

.mainIndTxt {
	text-indent: -2em;
	padding-left: 2em;
}

.dotList {
	position: relative;
	padding-left: 1em;
}

.dotList::before {
	content: "";
	display: block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	position: absolute;
	top: 7px;
	left: 0;
	background: #000;
}

.noteList {
	position: relative;
	padding-left: 1em;
}

.noteList::before {
	content: "\025ce";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
}

.blueBorder.eventImgContents {
	margin: 60px auto 20px;
}

.blueBorder.blueBorderCamp {
	position: relative;
}

.blueBorder.blueBorderCamp .blueBorderCampDeco {
	position: absolute;
	bottom: 130px;
	right: -9%;
	padding: 0;
}

.blueBorder.blueBorderCamp .blueBorderCampDeco img {
	width: 13vw;
	max-width: 230px;
}

.blueBorder .blueBorderInner {
	padding: 40px 50px;
}

.blueBorder.eventImgContents:first-child {
	margin-top: 0px;  /* 2024/10/15up */
}

.blueBorder.eventImgContents dt {
	padding: 18px 5% 18px;
}

.blueBorder.eventImgContents dd {
	padding: 30px 5%;
}

.eventImgText {
	font-size: 1.4rem;
}

.blueBorder.eventImgContents .eventTitle {
	background-color: transparent;
	padding: 20px 5% 0;
	margin-top: -55px;
	pointer-events: none;
}

.blueBorder.eventImgContents .eventCatch {
	text-align: center;
}

.blueBorder.eventImgContents .eventCatch img {
	display: inline-block;
}

.blueBorder.eventImgContents .eventPeriod {
	padding: 0 5%;
}

.blueBorder.eventImgContents .eventBtn {
	text-align: center;
	padding-top: 10px;
}

@media screen and (max-width: 1640px) {
	#mainVisual {
		background: url("../images/main_h760_pcbg.png") top center no-repeat;
		background-size: 100% auto;
	}

	.mainCon {
		padding-left: 28vw;
		padding-left: clamp(0px, 28vw, 250px);  /* 250=370px */
		height: 22vw;
	}

	.mainDeco img {
		width: 27vw;
	}
}

@media screen and (max-width: 1400px) {

	#mainVisual {
		background: url("../images/main_h760_pcbg.png") top center no-repeat;
		background-size: 100% auto;
	}

	.mainIcon01 {
		left: -35%;
		width: 35%;
	}

	.mainIcon02 {
		right: -35%;
		width: 35%;
	}

}

@media screen and (max-width: 1200px) {

	#mainVisual{
		background-size: 100% auto;
	}


	.mainSpBox {
		position: relative;
		padding: 0 12%;
	}

	.mainIcon01 {
		width: 22%;
		top: -50px;
		left: -10%;
	}

	.mainIcon02 {
		width: 22%;
		top: -50px;
		right: -10%;
	}

	.mainFirst {
		padding-top: 0;
	}
	
	.mainFirst dt {
		font-size: 1.6rem;
	}

	.mainFirst dd .mainBlue {
		font-size: 1.8rem;
	}

	.mainSubLink {
		margin-top: 10px;
	}

}

@media screen and (max-width: 1000px) {
	
	#mainVisual{
		background-size: 100% auto;
		padding: 30px 5% 100px;
	}


	.mainCon {
		padding-left: clamp(0px, 27vw, 150px); /* 27=36  150=370 */
		height: 27vw; /* 27=元36 */
	}

	.mainDeco img {
		width: 35vw;
	}

	.mainFirst dd {
		line-height: 1.5;
	}
}

@media screen and (max-width: 767px) {

	#mainVisual {
		background: url("../images/main_h706_spbg.png") top center no-repeat;
		font-size: 1.6rem;
		font-weight: 500;
	}
	

	.mainIcon01 {
		top: 0;
		left: -5%;
	}

	.mainIcon02 {
		top: 0;
		right: -5%;
	}

	.mainCon {
		padding-left: 0;
		height: auto;
	}

	.mainDeco img {
		width: 20vw;
	}

	.mainSubLink {
		height: 10vw;
		margin-left: 60px;
	}

	.mainLogo {
		width: 100%;
	}

	.mainFirst dt {
		font-size: 1.8rem;
	}

	.mainFirst dd {
		font-size: 2.2rem;
		line-height: 1.1;
	}

	.mainLogo {
		margin: 20px auto; /* 5px 0 10px */
	}

	.mainSecond {
		font-weight: 600;
		text-align: center;
		margin-bottom: 30px;
	}

	.blueBorder.eventImgContents {
		margin-top: 30px;
		margin-bottom: 5px;
	}

	.blueBorder.eventImgContents .eventTitle {
		padding: 45px 5% 0;
		margin-bottom: 13px;
	}

	.blueBorder.eventImgContents .eventBtn {
		padding-bottom: 10px;
	}

	.blueBorder.eventImgContents .eventBtn .annotationBtn {
		font-size: 1.6rem;
	}

	.blueBorder .blueBorderInner {
		padding: 20px 5%;
	}

	.blueBorder.blueBorderCamp .blueBorderCampDeco {
		bottom: 14%;
		right: -5%;
	}

	.blueBorder.blueBorderCamp .blueBorderCampDeco img {
		width: 13vw;
	}
}


@media screen and (max-width: 480px) {

	#mainVisual {
		background: url("../images/main_h706_spbg.png") top center no-repeat;
		background-size: 100% auto;
		align-items: center;
	}


	.mainInner{
		margin: 0 auto;
	}

	.mainInner p {
		margin: 0 auto;
		max-width: 300px;
	}

	/*.mainInner img {
		width: auto;
		max-width: 320px;
	}*/

	.mainFirst img {
		max-width: 200px;
	}


	.blueBorder.blueBorderCamp .blueBorderCampDeco {
		bottom: 18%;
		right: -6%;
	}

	.blueBorder.blueBorderCamp .blueBorderCampDeco img {
		width: 14vw;
	}

	.mainFirst dt {
		font-size: 1.4rem;
	}

	.mainFirst dd .mainBlue {
		font-size: 1.6rem;
	}

	.mainDeco img {
		width: 24vw;
	}

	.mainSubLink {
		padding-left: 0;
		height: 27vw;
	}

}

@media screen and (max-width: 390px) {

	.mainInner p {
		max-width: 300px;
	}

	.mainFirst img {
		max-width: 200px;
	}

}


/*-------------------------------------------------------------------
	pointWrap
-------------------------------------------------------------------*/

.pointWrap {
	padding: 0 0 100px;
	background: url("../images/point_leftbg.png") top right no-repeat, url("../images/point_rightbg.png") bottom 200px left no-repeat;
	background-size: 95% auto;
	position: relative;
	top: -50%;
	margin-bottom: 10px; /* 元「-50%」0910編集 */
	justify-content: center; /* 水平方向中央揃え */
	align-items: center;     /* 垂直方向中央揃え */
}

.sec01Title {
	margin: 0 0 80px;
}

.sec01Title dt {
	margin-top: 40px; /* 0910編集 */
	margin-bottom: 40px;
	text-align: center;
}

.sec01Title dd {
	text-align: center;
}

.sec01Title .pointLinkTxt {
	margin-top: 20px;
	font-weight: 500;
}

.sec01Title .pointLinkTxt a {
	border-bottom: 1px solid #0054a6;
    color: #0054a6 !important;
    line-height: 1.2;
}

.pointWrapper {
	margin-bottom: 50px;
}

.pointWrapper {
	text-align: center;
}

.pointWrapper .pointNote {
	margin-top: 20px;
}


.blueBorder {
	background: #fff;
	border: 5px solid #0054a6;
	border-radius: 7px;
	margin: 0 0 10px;
}

.blueBorder.ver02 {
	margin-bottom: 20px;
}

.blueBorder dt {
	position: relative;
	background: #ffd700;
	padding: 18px 250px 18px 130px;
	font-size: 3.6rem;
	line-height: 1.4;
	font-weight: 600;
}

.blueBorder dt sub {
	font-size: 0.4em;
	padding-left: 5px;
}

.blueBorder .pointText {
	padding: 20px 5% 0;
}

.absPoint {
	position: absolute;
	left: 20px;
	top: -50px;
}

.absCircle {
	position: absolute;
	right: 50px;
	top: -52px;
}

.blueBorder dd {
	padding: 10px 0;
	text-align: center;
}

.blueBorder dd.pd40 {
	padding: 40px 10px;
}

.blueBorder.ver02 dd {
	padding: 50px 30px;
}

.cautionArea {
	font-size: 1.4rem;
	text-align: center;
}

.borderFlex {
	display: block;
}

.borderFlex li {
	width: 100%;/* width: auto; */
	box-sizing: border-box;
	padding: 20px 5% 30px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.borderFlex li:nth-child(n + 2) {
	border-top: 2px dashed #cfcfcf;
	padding-top: 20px;
	margin-top: 20px;
}

.sec01SubTitle {
	font-weight: 600;
	font-size: 2.4rem;
	line-height: 1.4;
	margin-bottom: 15px;
	letter-spacing: .05em;
}

.sec01SubTitleLogo {
	margin-bottom: 20px;
}

.sec01CenterBold {
	text-align: center;
	font-weight: 600;
	font-size: 3.6rem;
	line-height: 1.4;
	margin-bottom: 15px;
}

.redBorder {
	background: #fff;
	border: 5px solid #ea0000;
	border-radius: 7px;
}

.redBorder dt {
	position: relative;
	background: #ea0000;
	color: #fff;
	padding: 10px 0 12px;
	font-size: 2.4rem;
	line-height: 1.0;
	font-weight: 600;
	text-align: center;
}

.redBorder dd.rbFlex {
	display: flex;
	justify-content: center;
	padding: 20px 5%;
}

.redBorder dd.rbFlex figure:nth-child(n + 2) {
	margin-left: 100px;
}

.redBorder dd.yellowBg {
	padding: 0 0 10px;
	background: #ffd700;
	text-align: center;
	font-size: 1.4rem;
	font-weight: 500;
}

.ybTime {
	font-size: 2.1rem;
	font-weight: 600;
}

.fontsS30 {
	font-size: 3.0rem;
}

@media screen and (max-width: 1200px) {

	.blueBorder dt {
		padding: 18px 130px 18px 130px;
	}

	.absCircle {
		top: -10px;
		right: 2%;
		width: 15%;
	}

}

@media screen and (max-width: 767px) {

	.pointWrap {
		padding: 0;
		background: url("../images/point_leftbg.png") top center no-repeat, url("../images/point_rightbg.png") bottom 25% center no-repeat;
		background-size: 150% auto;
		position: static;
		top: 0;
		margin-bottom: 0;
	}

	.sec01Title {
		margin: 0 0 60px;
	}

	.sec01Title dt {
		margin-bottom: 30px;
		text-align: center;
	}

	.sec01Title dd {
		text-align: center;
	}

	.pointWrapper {
		margin-bottom: 30px;
	}

	.pointWrapper .pointNote {
		margin-top: 5px;
	}
	.pointNote {
		text-align: left;
	}

	.blueBorder {
		border: 3px solid #0054a6;
		margin-bottom: 5px;
	}

	.blueBorder.ver02 {
		margin-bottom: 5px;
	}

	.blueBorder dt {
		position: relative;
		background: #ffd700;
		padding: 18px 10% 18px 20%;
		font-size: 2.4rem;
		line-height: 1.4;
		font-weight: 600;
	}

	.blueBorder.verP01 dt {
		padding: 18px 5% 18px 20%;
	}

	.blueBorder.ver02 dt {
		padding: 18px 5% 18px 20%;
	}

	.blueBorder .pointText {
		padding: 20px 0 0;
	}

	.absPoint {
		position: absolute;
		left: 10px;
		top: -40px;
		width: 20%;
	}

	.absCircle {
		position: absolute;
		right: 5px;
		top: -20px;
		width: 30%;
	}

	.blueBorder dd {
		padding: 20px 5%;
	}

	.blueBorder dd.pd40 {
		padding: 20px 5%;
	}

	.blueBorder dd.pd30 {
		padding: 20px 5%;
	}

	.blueBorder.ver02 dd {
		padding: 20px 5%;
	}

	.borderFlex {
		display: block;
	}

	.borderFlex li {
		width: auto;
		box-sizing: border-box;
		padding: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.borderFlex li:nth-child(n + 2) {
		border-top: 1px solid #cfcfcf;
		padding-top: 20px;
		margin-top: 20px;
	}

	.sec01SubTitle {
		font-weight: 600;
		font-size: 1.8rem;
		line-height: 1.4;
		margin-bottom: 20px;
		letter-spacing: .05em;
	}

	.sec01SubTitleLogo {
		margin-bottom: 10px;
	}

	.sec01CenterBold {
		text-align: center;
		font-weight: 600;
		font-size: 2.4rem;
		line-height: 1.4;
		margin-bottom: 10px;
	}

	.redBorder {
		background: #fff;
		border: 3px solid #ea0000;
		border-radius: 7px;
	}

	.redBorder dt {
		font-size: 1.8rem;
	}

	.redBorder dd.rbFlex {
		display: block;
		padding: 20px 5%;
		text-align: center;
	}

	.redBorder dd.rbFlex figure:nth-child(n + 2) {
		margin-left: 0;
		margin-top: 30px;
	}

	.redBorder dd.yellowBg {
		padding: 10px 3%;
		background: #ffd700;
		text-align: left;
		font-size: 1.2rem;
		font-weight: 500;
	}

	.ybTime {
		font-size: 1.8rem;
		text-align: center;
		margin-bottom: 10px;
	}

	.fontsS30 {
		line-height: 1.0;
	}

}

@media screen and (max-width: 630px) {
	.absPoint {
		top: -30px;
	}
}

/*-------------------------------------------------------------------
	planWrap
-------------------------------------------------------------------*/

.planWrap {
	padding: 60px 0; /* 元「120px」0910編集 */
	background: url(../images/point_leftbg.png) top 200px right no-repeat, url(../images/point_rightbg.png) bottom 700px left no-repeat #FFFDE1;
}

.planWrap .planTitle {
	margin-bottom: 55px;
	text-align: center;
}

.planWrap .planTitle img {
	display: inline-block;
}

.planWrap .flowContainer .TabBtnList li {
	width: 300px;
	display: block;
}

.planWrap .colorfull th {
	font-size: 2.2rem;
}

.planWrap .colorfull th .small {
	font-size: 1.4rem;
}

.planRow {
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.planRow .chara img {
	width: 16vw;
}

.planRow .planBox {
	margin-left: 40px;
}

.planRow .planBox ul {
	margin-top: 35px;
	margin-bottom: 10px;
}

.planRow .planBox ul li {
	font-size: 2.4rem;
	font-weight: 700;
	text-indent: -1em;
	padding-left: 1em;
}

.planRow .planBox ul li::before {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	background: #FFD914;
	border-radius: 50%;
	margin-right: 8px;
}

.planCamp {
	margin-top: 80px;
}

.planCamp .planCampLogo {
	margin-bottom: 30px;
}

.planCamp .planCampPeriod {
	margin-bottom: 60px;
}

.planCamp .planCmapBenefits {
	padding: 20px 40px;
	background-color: #F7F7F7;
}

.planCamp .planCampBenefitsTitle {
	margin-bottom: 20px;
	text-align: center;
}

.planCamp .planCampBenefitsTitle img {
	display: inline-block;
}

.planCamp .planCampflex {
	display: flex;
	justify-content: space-between;
	letter-spacing: 0.04em;
}

.planCamp .planCampflex .small {
	text-indent: -1em;
	padding-left: 1em;
	display: block;
}

.planCamp .planCampflex .planCampPicSp {
	display: none;
}

.planCamp .planCampCon {
	width: 65%;
	font-size: 1.8rem;
}

.planCamp .planCampCon ul li {
	text-indent: -1em;
	padding-left: 1em;
}

.planCamp .planCampCon .red {
	font-weight: 700;
}

.planCamp .planCampCon .small {
	font-size: 1.4rem;
	text-indent: -1em;
	padding-left: 1em;
	margin-top: 15px;
}


.planCamp .planCampphoto {
	width: 30%;
}

.planLine {
	margin-top: 80px;
}

.planLine .alignRight {
	margin-bottom: 60px;
}

.planLine dt {
	text-align: center;
	background-color: #0054a6;
	color: #fff;
}

.planLine .planLineAccordion {
	position: relative;
	cursor: pointer;
	padding: 18px 130px 18px 130px;;
}

.planLine .planLineAccordion::before {
	width: 25px;
	height: 25px;
	border: 1px solid;
	border-color: transparent transparent #fff #fff;
	transform: rotate(-45deg) translateY(-50%);
	content: '';
	position: absolute;
	top: 40%;
	right: 15px;
}

.planLine .planLineAccordion.open::before {
	transform: rotate(135deg) translateY(-50%);
	right: 30px;
	top: 35%;
}

@media screen and (max-width: 767px) {
	.planWrap {
		padding: 35px 0 50px;
		background-size: 150% auto;
	}

	.planWrap .colorfull th {
		font-size: 1.6rem;
	}

	.planRow {
		display: block;
	}

	.planRow .planBox {
		margin: 0;
	}

	.planRow .planBox figure {
		text-align: center;
	}

	.planRow .planBox figure img {
		display: inline-block;
	}

	.planRow .planBox ul {
		width: fit-content;
		margin-left: auto;
		margin-right: auto;
	}

	.planRow .planBox ul li {
		font-size: 1.6rem;
	}

	.planCamp {
		margin-top: 30px;
	}

	.planCamp .planCampLogo {
		margin-bottom: 10px;
	}

	.planCamp .planCampPeriod {
		margin-bottom: 20px;
	}

	.planCamp .planCmapBenefits {
		padding: 20px 10px;
	}

	.planCamp .planCampflex {
		display: block;
	}

	.planCamp .planCampflex .planCampPicPc {
		display: none;
	}

	.planCamp .planCampflex .planCampPicSp {
		display: block;
	}

	.planCamp .planCampCon {
		width: 100%;
		font-size: 1.6rem;
		margin-bottom: 16px;
	}

	.planCamp .planCampphoto {
		width: 100%;
		margin-bottom: 10px;
	}

	.planLine {
		margin-top: 30px;
	}

	.planLine .alignRight {
		margin-bottom: 30px;
	}

	.planLine.blueBorder.ver02 dt {
		padding: 18px 10% 18px 10%;
	}

	.planLine .planLineAccordion::before {
		width: 15px;
		height: 15px;
	}
}

/*-------------------------------------------------------------------
	campWrap
-------------------------------------------------------------------*/

.campWrap {
	padding: 120px 0;
	background: url(../images/point_leftbg.png) top 100px right no-repeat;
}

.campWrap .planCamp {
	margin-top: 0;
}

.campWrap .campWrap {
	margin: 0 auto;
}

.campWrap .campWrapInner {
	padding: 0 30px;
}

@media screen and (max-width: 767px) {
	.campWrap {
		padding: 35px 0 50px;
		background-size: 150% auto;
	}

	.campWrap .campWrapInner {
		padding: 0;
	}
}

/*-------------------------------------------------------------------
	mustseeWrap
-------------------------------------------------------------------*/

.mustseeWrap {
	background: url("../images/mustsee_pcbg.jpg") bottom center no-repeat;
	background-size: cover;
	padding: 70px 0;
}

.mustseettl03 {
	font-size: 3.6rem;
	font-weight: 600;
	line-height: 1;
	color: #ff0071;
	text-align: center;
	margin-bottom: 25px;
}

.mustseeRow {
	display: flex;
	justify-content: space-evenly;
	align-items: flex-end;
}

.mustseeChara {
	margin-top: -20px;
}

.mustseeItem {
	padding: 35px 0 40px;
}

.mustseeItem .msFlex .bigcontainer {
	padding: 0;
}

.mustseeItem .msFlex .bigcontainer .soudanFlex {
	align-items: flex-start;
}

.mustseeItem .alignCenter {
	text-align: left;
}

.mustseeItem .msBold01 {
	text-align: left;
}

.msInner {
	width: 1100px;
	max-width: 90%;
	margin: 0 auto;
	background: #fff;
	box-shadow: 0px 0px 20px 5px rgba(0, 0, 0, 0.2);
	box-sizing: border-box;
	/* padding: 35px 0 40px; */
	border-radius: 7px;
}

.msFlex .bigcontainer {
	padding: 0 3%;
	margin-bottom: 20px;
}

.msFlex .bigcontainer figure {
	height: fit-content;
}

.msFlex .bigcontainer .soudanFlex {
	display: flex;
	align-items: center;
	flex-flow: column;
	margin: 0 10px;
}

.msFlex .bigcontainer .soudanFlex h4 {
	max-width: 100%;
	margin-bottom: 30px;
}

.msFlex .bigcontainer .soudanList {
	font-size: 2.4rem;
	font-weight: 600;
}

.msFlex .bigcontainer .soudanList li {
	text-indent: -1.4em;
	padding-left: 1.4em;
}

.msFlex .bigcontainer .soudanList li::before {
	content: "●";
	color: #ffd914;
}

.msFlex .miniContainer {
	width: calc(50% - 6%);
	box-sizing: border-box;
	margin: 0 3%;
	border: 5px #0054a6 solid;
	border-radius: 10px;
}

.msFlex .miniContainer .ttl03 {
	max-width: 100%;
	font-size: 2.2rem;
	font-weight: 500;
	line-height: 1;
	color: #fff;
	background: #0054a6;
	padding: 13px 0 18px;
	margin: 0;
}

.msFlex .miniContainer .whiteArea {
	padding: 0 15px;
}

.msFlex .miniContainer .formBtn {
	margin: 45px auto 10px;
}

.msFlex .miniContainer .w64 {
	width: 64%;
	margin: 0 auto 20px;
}

.msFlex .miniContainer .whiteArea.item02 {
	padding: 30px 15px;
}

.mustseeWrap .subContainer {
	max-width: 90%;
	margin: 0 auto;
	padding-top: 45px;
}

.mustseeWrap .subContainer .ttl05 {
	max-width: 100%;
	margin: 0 auto 25px;
}

.mustseeWrap .subContainer .textbox {
	font-size: 1.3rem;
	font-weight: 500;
	max-width: 100%;
	margin: 15px auto 0;
}

.msBold01 {
	font-size: 1.4rem;
	font-weight: 500;
	text-align: center;
	line-height: 1.6;
	text-indent: -1em;
	padding-left: 1em;
}

.msBold02 {
	font-size: 1.6rem;
	font-weight: 600;
	text-align: center;
	margin-bottom: 10px;
}

@media screen and (max-width: 1024px) {
	.mustseeWrap .alignCenter {
		max-width: 90%;
		margin: 0 auto;
	}
}

@media screen and (max-width: 767px) {

	.mustseeWrap {
		background: url("../images/mustsee_spbg.jpg") bottom center no-repeat;
		background-size: cover;
		padding: 35px 0 50px;
	}

	.mustseeWrap h3 {
		font-size: 2.8rem;
		max-width: 90%;
		margin: 0 auto 20px;
		letter-spacing: 0.05em;
	}

	.mustseeItem {
		padding: 0;
	}

	.mustseeItem .msBold01 {
		margin-top: 10px;
	}

	.msInner {
		padding: 20px 3% 10px;
	}

	.msFlex {
		display: block;
	}

	.msFlex .bigcontainer .soudanFlex {
		margin: 0;
	}

	.msFlex .bigcontainer .soudanFlex h4 {
		margin-bottom: 20px;
	}

	.msFlex .bigcontainer h4 {
		max-width: 100%;
	}

	.msFlex .bigcontainer .soudanList {
		font-size: 1.8rem;
	}

	.msFlex .bigcontainer .soudanList li {
		font-size: 1.6rem;
	}

	.msFlex .bigcontainer .soudanList li::before {
		margin-right: 5px;
	}

	.msFlex .miniContainer {
		width: auto;
		box-sizing: border-box;
		padding: 0;
		margin: 0;
		margin-bottom: 20px;
	}

	.msFlex .miniContainer:last-of-type {
		margin-bottom: 0;
	}

	.msFlex .miniContainer .ttl03 {
		font-size: 1.6rem;
	}

	.msFlex .bearSPnone {
		display: none;
	}

	.msFlex .miniContainer .whiteArea.item02 {
		padding: 15px 0 0;
	}

	.msFlex .bigcontainer {
		margin-bottom: 15px;
	}

	.msFlex .miniContainer figure {
		margin-bottom: 10px;
	}

	.msFlex .miniContainer .alignCenter.mb30 {
		margin-bottom: 10px !important;
	}

	.msFlex .miniContainer .formBtn {
		width: 100%;
		max-width: 100%;
		margin: 15px auto 10px;
	}

	.msFlex .miniContainer .w64 {
		width: 100%;
		max-width: 90%;
		margin-bottom: 10px;

	}

	.msBold01 {
		margin-bottom: 15px !important;
	}

	.mustseeWrap .subContainer {
		padding-top: 35px;

	}

	.mustseeWrap .subContainer .ttl05 {
		max-width: 55%;
		margin: 0 auto 15px;
	}

	.mustseeWrap .subContainer .textbox {
		margin: 10px auto 0;
	}
}


/*-------------------------------------------------------------------
	pointWrap02
-------------------------------------------------------------------*/

.pointWrap02 {
	padding: 150px 0 120px;
	background: url("../images/point_pcbg02.png") left top 40% no-repeat;
	background-size: 100% auto;
}

.pointWrap02 .noteText {
	margin-bottom: 30px;
}

.pointWrap02 .blueBorder.ver02 dt {
	padding: 18px 130px 18px 130px;;
}


.titleFlex {
	display: flex;
	align-items: center;
	margin-bottom: 25px;
}

.titleFlex .titleIcon {
	margin-right: 20px;
}

.titleArea {
	font-size: 2.4rem;
	font-weight: 600;
}

.titleArea span {
	font-size: 2.8rem;
}

.titleArea span.greenTxt {
	color: #329724;
}

.titleArea span.blueTxt {
	color: #00b0ec;
}

.tableArea {
	padding-left: 40px;
	margin-bottom: 50px;
}

.titleCatch {
	font-size: 3.2rem;
	font-weight: 700;
	margin-bottom: 5px;
}

.titleCatch span {
	font-size: 1.4rem;
	font-weight: 400;
}

.greenCap {
	background: #c7ecc3;
	line-height: 1.0;
	display: inline-block;
	padding: 5px 15px 7px;
	font-size: 1.8rem;
	font-weight: 600;
}

.blueCap {
	background: #e0ffff;
	line-height: 1.0;
	display: inline-block;
	padding: 5px 15px 7px;
	font-size: 1.8rem;
	font-weight: 600;
}

table.colorfull {
	width: 100%;
	border-collapse: separate
}

table.colorfull th,
table.colorfull td {
	text-align: center;
	vertical-align: middle;
	font-weight: 600;
	padding: 20px 0;
	box-sizing: border-box;
	border: 1px solid #fff;
	font-size: 1.8rem;
	line-height: 1.4;
}

table.colorfull .fs34 {
	font-size: 34px;
	padding-left: 5px;
	padding-right: 5px;
}

table.colorfull .px10 {
	padding-left: 10px;
	padding-right: 10px;
}

table.colorfull .wdt38 {
	width: 38%;
}

table.colorfull .wdt41 {
	width: 41%;
}

table.colorfull th {
	color: #fff;
}

table.colorfull td {
	background: #ecf0f3;
}

table.colorfull .darkBlue {
	background: #0054a6;
}

table.colorfull .orange01 {
	background: #f4a200;
}

table.colorfull .orange02 {
	background: #ea6b00;
}

.tableCaution {
	margin-top: 20px;
	font-size: 1.4rem;
	font-weight: 600;
}

.figureBox {
	margin-top: 80px;
}

.figureBox .figureBoxItem {
	margin-bottom: 28px;
}

.figureBox figure {
	text-align: center;
}

.figureBox figure img {
	display: inline-block;
}

.pocaWrap {
	padding: 20px 0 0;
	font-size: 1.4rem;
}

.dbText {
	color: #0054a6;
}

.pointBoldText {
	font-size: 3.0rem;
	font-weight: 600;
	line-height: 1.4;
	margin-bottom: 30px;
	letter-spacing: 0.05em;
}

.pointBoldText .small {
	font-size: 1.4rem;
}

.point03Flex {
	margin-bottom: 80px;
}

.point03Flex .point03Img {
	width: 30%;
	text-align: right;
}

.arrowFlex {
	display: flex;
	justify-content: space-between;
	margin-bottom: 10px;
	position: relative;
}

.arrowFlex::after {
	border-style: solid;
	border-width: 35px 0 35px 30px;
	border-color: transparent transparent transparent #0053a6;
	content: '';
	position: absolute;
	top: 50%;
	left: 35.5%;
	transform: translateY(-50%);
}

.arrowFlex .arrowLeft {
	width: 35%;
}

.arrowFlex .arrowRight {
	width: 60%;
}

@media screen and (max-width: 1400px) {

	.arrowFlex::after {
		left: 36%;
	}

}

@media screen and (max-width: 1024px) {

	.tableArea {
		padding-left: 0;
	}
}

@media screen and (max-width: 767px) {

	.pointWrap02 {
		padding: 60px 0;
		background: url("../images/point_pcbg02.png") left top 40% no-repeat;
		background-size: 100% auto;
	}

	.pointWrap02 .noteText {
		margin-bottom: 10px;
	}

	.pointWrap02 .blueBorder.ver02 dt {
		padding: 18px 10% 18px 10%;
	}

	.titleFlex {
		display: flex;
		align-items: center;
		margin-bottom: 25px;
	}

	.titleFlex .titleIcon {
		margin-right: 20px;
		width: 12%;
	}

	.titleCatch {
		font-size: 2.4rem;
	}

	.titleArea {
		font-size: 1.8rem;
		font-weight: 600;
	}

	.titleArea span {
		font-size: 2.0rem;
	}

	.tableArea {
		padding-left: 0;
		margin-bottom: 20px;
	}

	.greenCap {
		font-size: 1.6rem;
	}

	.blueCap {
		font-size: 1.6rem;
	}

	table.colorfull th,
	table.colorfull td {
		text-align: center;
		vertical-align: middle;
		font-weight: 600;
		padding: 20px 3%;
		box-sizing: border-box;
		border: 1px solid #fff;
		font-size: 1.4rem;
		line-height: 1.4;
	}

	table.colorfull .fs34 {
		font-size: 1.8rem;
	}

	table.colorfull .wdt41 {
		width: 38%;
	}

	table.colorfull .wdt38 {
		width: 35%;
	}

	.tableCaution {
		margin-top: 10px;
	}

	.figureBox {
		margin-top: 30px;
	}

	.pocaWrap {
		padding: 0;
		font-size: 1.4rem;
		margin-top: 20px;
	}

	.pointBoldText {
		font-size: 2.0rem;
		font-weight: 600;
		line-height: 1.4;
		margin-bottom: 20px;
	}

	.point03Flex {
		display: block;
		justify-content: space-between;
		margin-bottom: 20px;
	}

	.point03Flex .point03Text {
		width: auto;
		margin-bottom: 30px;
	}

	.point03Flex .point03Text .mb20 {
		margin-bottom: 10px !important;
		font-weight: 700;
	}

	.point03Flex .point03Img {
		display: none;
	}

	.js-scrollable {
		padding-bottom: 10px;
	}

	.js-scrollable img {
		max-width: inherit;
	}

	.arrowFlex {
		display: block;
		justify-content: space-between;
		margin-bottom: 10px;
		position: relative;
	}

	.arrowFlex::after {
		display: none;
	}

	.arrowFlex .arrowLeft {
		width: auto;
		position: relative;
	}

	.arrowFlex .arrowLeft::after {
		border-left: 30px solid transparent;
		border-right: 30px solid transparent;
		border-top: 30px solid #0053a6;
		content: '';
		position: absolute;
		bottom: -42px;
		left: 50%;
		transform: translateX(-50%);
	}

	.arrowFlex .arrowRight {
		margin-top: 50px;
		width: auto;
	}

	.figureBox .figureBoxItem {
		margin-bottom: 18px;
	}

}


/*-------------------------------------------------------------------
	optionWrap
-------------------------------------------------------------------*/

.optionWrap {
	padding: 140px 0;
	background: url("../images/point_rightbg.png") top left no-repeat #d8fbfb;
	background-size: 95% auto;
}

.optionHeading {
	text-align: center;
	margin-bottom: 30px;
}

.opWhite {
	padding: 60px 40px;
	background: #fff;
	border-radius: 7px;
	margin-bottom: 20px;
}

.optionTitle {
	display: flex;
	margin-bottom: 40px;
}

.optionTitle .opIcon {
	margin-right: 10px;
}

.optionTitle .opText {
	padding-top: 15px;
	line-height: 1.4;
	font-size: 3.6rem;
	font-weight: 600;
}

.optionTitle .opText sub {
	font-size: 0.4em;
	padding-left: 5px;
}

.darkBlueBorder {
	background: #fff;
	border: 5px solid #37bad6;
	border-radius: 7px;
}

.darkBlueBorder dt {
	position: relative;
	background: #37bad6;
	padding: 20px 60px 20px 40px;
	font-weight: 600;
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: #fff;
	font-size: 2.8rem;
	line-height: 1.0;
}

.darkBlueBorder dd {
	padding: 15px 10px;
}

.dbbFlex {
	display: flex;
}

.dbbFlex li {
	width: 50%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 20px 30px;
}

.dbbFlex li:nth-child(n + 2) {
	border-left: 2px solid #cfcfcf;
}

.op01Blue {
	color: #37bad6;
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.0;
	margin-bottom: 10px;
}

.op02Flex {
	display: flex;
	justify-content: center;
}

.op02Flex .op02Blue {
	width: 380px;
	background: #fff;
	border: 5px solid #37bad6;
	border-radius: 7px;
}

.op02Flex .op02Blue:nth-child(n + 2) {
	margin-left: 40px;
}

.op02Flex .op02Blue dt {
	background: #37bad6;
	padding: 20px 0 25px;
	font-weight: 600;
	color: #fff;
	font-size: 2.4rem;
	line-height: 1.0;
	text-align: center;
}

.op02Flex .op02Blue dd {
	text-align: center;
	padding: 30px 3%;
}

.op02Bold {
	font-size: 1.8rem;
	line-height: 1.0;
	font-weight: 600;
	margin-bottom: 20px;
}

@media screen and (max-width: 1024px) {

	.darkBlueBorder dt {
		display: block;
	}

	.darkBlueBorder dt figure {
		text-align: right;
		margin-top: 10px;
	}

	.op02Flex .op02Blue dt {
		font-size: 2.0rem;
	}

}

@media screen and (max-width: 767px) {

	.optionWrap {
		padding: 30px 0;
		background: url("../images/point_rightbg.png") top 100px left no-repeat #d8fbfb;
		background-size: 150% auto;
	}

	.optionHeading {
		width: 80%;
		margin: 0 auto 10px;
	}

	.opWhite {
		padding: 30px 5%;
		margin-bottom: 5px;
	}

	.optionTitle {
		margin-bottom: 30px;
	}

	.optionTitle .opIcon {
		width: 20%;
	}

	.optionTitle .opText {
		font-size: 2.4rem;
		width: 80%;
	}

	.optionTitle .opText sub {
		font-size: 0.6em;
		padding-left: 5px;
	}


	.darkBlueBorder {
		border: 3px solid #37bad6;
	}

	.darkBlueBorder dt {
		padding: 15px 5%;
		font-weight: 600;
		color: #fff;
		font-size: 2.0rem;
		line-height: 1.0;
	}

	.darkBlueBorder dt figure img {
		max-width: 80%;
	}

	.darkBlueBorder dd {
		padding: 20px 5%;
	}

	.dbbFlex {
		display: block;
	}

	.dbbFlex li {
		width: auto;
		box-sizing: border-box;
		display: block;
		padding: 0;
	}

	.dbbFlex li:nth-child(n + 2) {
		border-left: none;
		border-top: 2px solid #cfcfcf;
		margin-top: 20px;
		padding-top: 20px;
	}

	.op01Blue {
		font-size: 2.0rem;
	}

	.op02Flex {
		display: block;
	}

	.op02Flex .op02Blue {
		width: auto;
		background: #fff;
		border: 3px solid #37bad6;
		border-radius: 7px;
	}

	.op02Flex .op02Blue:nth-child(n + 2) {
		margin: 30px 0 0;
	}

	.op02Flex .op02Blue dt {
		background: #37bad6;
		padding: 15px 3% 20px;
		font-weight: 600;
		color: #fff;
		font-size: 2.0rem;
		line-height: 1.0;
		text-align: left;
	}

	.op02Flex .op02Blue dd {
		text-align: center;
		padding: 20px 3%;
	}

	.op02Bold {
		font-size: 1.6rem;
		line-height: 1.0;
		font-weight: 600;
		margin-bottom: 15px;
	}

}

/*-------------------------------------------------------------------
	internetWrap
-------------------------------------------------------------------*/
.internetWrap {
	padding: 140px 0 60px;
	background: url("../images/point_leftbg.png") top right no-repeat #edf6c7;
	background-size: 95% auto;
}

.internetLead {
	text-align: center;
	margin: 30px 0 65px;
}

.greenBorder {
	background: #fff;
	border: 5px solid #00651a;
	border-radius: 7px;
	margin: 0 0 80px;
	padding-bottom: 50px;
}

.greenBorder dt {
	position: relative;
	background: #d8e851;
	padding: 18px 20px 18px 130px;
	font-size: 3.6rem;
	line-height: 1.6;
	font-weight: 600;
}

.greenBorder dt sub {
	font-size: 0.4em;
	padding-left: 5px;
}

.greenBorder dd figure {
	padding: 0 5%;
}

.greenBorder .pointText {
	padding: 20px 5% 0;
}

.greenBorder .pointRow {
	margin: 50px 0 40px 0;
	padding: 0 5%;
	display: flex;
	justify-content: space-between;
}

.greenBorder .pointItem:nth-child(1) {
	padding-right: 40px;
}

.greenBorder .pointItem:nth-child(2) {
	padding: 0 40px;
	border-left: 1px solid #CFCFCF;
	border-right: 1px solid #CFCFCF;
}

.greenBorder .pointItem:nth-child(3) {
	padding-left: 40px;
}

.greenBorder .pointItem .router {
	margin-bottom: 30px;
}


.greenBorder .pointItem p {
	text-align: center;
	font-size: 2.6rem;
	font-weight: 700;
}

.greenBorder .pointItem p span {
	font-size: 2.0rem;
	font-weight: 400;
}

.greenBorder .pointItem figure {
	padding: 0;
}

.greenBorder .spAbsolute{
	line-height: 1.4;
}

@media screen and (max-width: 767px) {
	.internetWrap {
		padding: 60px 0 5px;
	}

	.greenBorder {
		border-width: 3px;
		padding-bottom: 30px;
		margin: 0;
	}

	.greenBorder+.greenBorder {
		margin-top: 60px;
	}

	.greenBorder dt {
		padding-left: 20%;
		font-size: 2.4rem;
	}

	.greenBorder .pointRow {
		flex-direction: column;
		margin: 20px 0;
	}

	.greenBorder .pointRow .pointItem {
		padding: 0 0 20px 0;
		margin-bottom: 20px;
		border-left: none;
		border-right: none;
		border-bottom: 1px solid #CFCFCF;
	}

	.greenBorder .pointRow .pointItem:last-child {
		padding: 0;
		margin-bottom: 0;
		border-bottom: none;
	}

	.greenBorder .pointRow .pointItem figure {
		width: 80%;
		margin-left: auto;
		margin-right: auto;
	}
}

.connecter {
	padding: 80px 0;
	background: url("../images/point_rightbg.png") bottom 40px left no-repeat;
	background-size: 95% auto;
}

@media screen and (max-width: 767px) {
	.connecter {
		background-position: top left;
		background-size: 200% auto;
	}
}

/*-------------------------------------------------------------------
	movieWrap
-------------------------------------------------------------------*/

.movieWrap {
	padding: 120px 0;
}

.movieWrap iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
}

@media screen and (max-width: 767px) {
	.movieWrap {
		padding: 80px 0;
	}
}

/*-------------------------------------------------------------------
	flowWrap
-------------------------------------------------------------------*/

.flowWrap {
	padding: 0px 0 120px;
	background: url("../images/flow_bg.png") top 0px center no-repeat;
}

.flowFlex {
	display: flex;
	justify-content: space-between;
}

.flowFlex li {
	max-width: 19%;
}

@media screen and (max-width: 767px) {

	.flowWrap {
		padding: 20px 0 40px;
		background: url("../images/flow_bg.png") top center no-repeat;
		background-size: 150% auto;
	}

	.flowFlex {
		display: block;
	}

	.flowFlex li {
		max-width: 100%;
	}

	.flowFlex li:nth-child(n + 2) {
		margin-top: 30px;
	}

}


/*-------------------------------------------------------------------
	faqWrap
-------------------------------------------------------------------*/

.faqWrap {
	margin-bottom: 90px;
}

.acWrap {
	margin-bottom: 30px;
}

.acTop {
	cursor: pointer;
	position: relative;
	padding: 10px 60px 10px 65px;
	background: #e8f4b3 url("../images/faq_icon.png") left 20px center no-repeat;
	font-size: 2.1rem;
	font-weight: 500;
}

.acTop::before {
	width: 15px;
	height: 15px;
	border: 1px solid;
	border-color: transparent transparent #333 #333;
	transform: rotate(-45deg) translateY(-50%);
	content: '';
	position: absolute;
	top: 40%;
	right: 15px;
}

.acTop.acOpen::before {
	transform: rotate(135deg) translateY(-50%);
	right: 30px;
	top: 35%;
}

.faqBox {
	margin-top: 10px;
}

.faqTop {
	cursor: pointer;
	position: relative;
	padding: 10px 60px 10px 65px;
	background: #fce0e7 url("../images/q_icon.png") left 20px center no-repeat;
	font-size: 2.1rem;
	font-weight: 500;
}

.faqTop::before {
	width: 15px;
	height: 15px;
	border: 1px solid;
	border-color: transparent transparent #333 #333;
	transform: rotate(-45deg) translateY(-50%);
	content: '';
	position: absolute;
	top: 40%;
	right: 15px;
}

.faqTop.faqOpen::before {
	transform: rotate(135deg) translateY(-50%);
	right: 30px;
	top: 35%;
}

.acBtm {
	padding-top: 5px;
	display: none;
}

.faqBtm {
	display: none;
	padding: 20px 50px 20px 140px;
	background: url("../images/a_icon.png") left 80px top 25px no-repeat;
	font-weight: 500;
}

.acBtm.opened,
.faqBtm.opened {
	display: block;
}

.indTxt {
	text-indent: -1.1em;
	padding-left: 1.1em;
}

@media screen and (max-width: 767px) {

	.faqWrap {
		margin-bottom: 60px;
	}

	.acWrap {
		margin-bottom: 20px;
	}

	.acTop {
		font-size: 1.8rem;
	}

	.faqTop {
		cursor: pointer;
		position: relative;
		padding: 10px 60px 10px 65px;
		background: #fce0e7 url("../images/q_icon.png") left 20px center no-repeat;
		font-size: 1.8rem;
		font-weight: 500;
	}

	.faqBtm {
		display: none;
		padding: 20px 20px 20px 50px;
		background: url("../images/a_icon.png") left 15px top 25px no-repeat;
	}

}


/*-------------------------------------------------------------------
	telWrap
-------------------------------------------------------------------*/
.telWrap {
	border-radius: 12px;
	border: 5px solid #0054a6;
	overflow: hidden;
}

.telWrap_ttl {
	color: #fff;
	text-align: center;
	background: #0054a6;
	font-size: 2.2rem;
	font-weight: bold;
	line-height: 1;
	padding: 10px 20px 15px;
}

.telWrap_inner {
	padding: 20px 0;
	display: flex;
	position: relative;
}

.telWrap_inner::before {
	content: "";
	display: block;
	width: 2px;
	height: calc(100% - 40px);
	background: #7a7878;
	position: absolute;
	top: 20px;
	left: calc(50% - 1px);
}

.telWrap_item {
	display: grid;
	place-content: center;
	padding: 0 20px;
	width: 50%;
	font-weight: 500;
}

.telWrap_item img {
	max-width: 100%;
}

@media screen and (max-width: 767px) {
	.telWrap_ttl {
		font-size: 1.8rem;
	}

	.telWrap_inner {
		display: block;
		padding: 0;
	}

	.telWrap_inner::before {
		display: none;
	}

	.telWrap_item {
		width: 100%;
		padding: 20px;
		position: relative;
	}

	.telWrap_item:first-of-type::before {
		content: "";
		display: block;
		width: calc(100% - 40px);
		height: 2px;
		background: #7a7878;
		position: absolute;
		bottom: -1px;
		left: 20px;
	}
}

/*-------------------------------------------------------------------
	notesWrap
-------------------------------------------------------------------*/

.notesWrap {
	padding-bottom: 50px;
	margin-top: 80px;
}

.notesWrap2 {
	text-align: left;
	margin-top: 50px;
}

/*.notesWrap_ttl {
	font-size: 3.0rem;
	font-weight: 600;
	line-height: 1.4;
	margin-bottom: 20px;
	letter-spacing: 1em;
}*/

.grayArea {
	box-sizing: border-box;
	padding: 25px 40px;
	margin-bottom: 10%; /* 2024/10/15up */
	background: #edeeea;
}

.tateScroll {
	width: 100%;
	box-sizing: border-box;
	height: 200px; /* 2024/10/15up */
	overflow-y: auto;
	padding-right: 20px;
}

.notesIndent {
	text-indent: -1.8em;
	padding-left: 1.8em;
}

.smpImg {
	display: none;
}



@media screen and (max-width: 767px) {
	.notesWrap {
		margin-top: 50px;
	}

	.notesWrap2 {
		margin-top: 50px;
	}

	/*.notesWrap_ttl {
		font-size: 2.4rem;
	}*/

	.smpImg {
		display: block;
	}

	.notesWrap {
		padding-bottom: 30px;
	}

	.grayArea {
		box-sizing: border-box;
		padding: 20px 5%;
		margin-bottom: 10%; /* 2024/10/15up */
		background: #edeeea;
	}

	.tateScroll {
		padding-right: 10px;
	}

	.notesIndent {
		text-indent: -1.6em;
		padding-left: 1.6em;
	}

}


.urlText {
	color: #175ca9 !important;
	text-decoration: underline !important;
}

.urlText:hover {
	color: #175ca9 !important;
	text-decoration: none !important;
}

/*-------------------------------------------------------------------
	hikariFix
-------------------------------------------------------------------*/

body {
	padding-bottom: 135px;
}

#hikariFix {
	position: fixed;
	left: 0;
	bottom: 0;
	background: #ffd90d;
	width: 100%;
	z-index: 100;
	font-weight: 500;
}

.hikariTitle {
	display: none;
}

#hikariFix .hikariFlex {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	width: 940px;
	max-width: 90%;
	margin: 0 auto;
}

#hikariFix .hikariSmall {
	font-size: 1.2rem;
	text-align: center;
	margin-bottom: 15px;
}

#hikariFix .hikariFlex .lists {
	position: relative;
}

#hikariFix .hikariFlex .lists a img {
	max-height: 83px;
}

#hikariFix .hikariFlex .lists:first-of-type {
	margin-left: 25px;
}

#hikariFix .hikariFlex .lists:nth-of-type(2) {
	margin-right: 25px;
}

#hikariFix .hikariFlex .hikariFixBubble {
	width: 940px;
	max-width: 100%;
	position: absolute;
	top: -9px;
	left: 50%;
	transform: translate(-50%, -100%);
	transition: .5s;
	opacity: 0;
	pointer-events: none;
}

#hikariFix .hikariFlex .hikariFixBubble.bubbleOn {
	animation: hikariFixBubble 11s ease;
	animation-iteration-count: 1;
}

#hikariFix .hikariFlex .hikariFixBubble.none {
	animation: hikariFixBubbleClose .5s ease;
}

@keyframes hikariFixBubble {
	0% {
		opacity: 1;
		pointer-events: all;
	}

	95% {
		opacity: 1;
		pointer-events: all;
	}

	100% {
		opacity: 0;
		pointer-events: none;
	}
}

@keyframes hikariFixBubbleClose {
	0% {
		opacity: 1;
		pointer-events: all;
	}

	100% {
		opacity: 0;
		pointer-events: none;
	}
}

#hikariFix .hikariFlex .hikariFixBubble::after {
	content: "";
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 18px solid transparent;
	border-left: 18px solid transparent;
	border-top: 18px solid #ea0000;
	border-bottom: 0;
	margin-left: auto;
	margin-right: calc(412px / 2);
	transform: translateY(-1px);
}

#hikariFix .hikariFlex .hikariFixBubbleContainer {
	width: 650px;
	max-width: 100%;
	margin: 0 auto;
	position: relative;
}

#hikariFix .hikariFixBubbleContainer .hikariFixBubbleContents {
	background: #ea0000;
	border-radius: 17px;
	border: #ea0000 5px solid;
	overflow: hidden;
}

#hikariFix .hikariFixBubbleContainer .hikariFixBubbleContents dt {
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 1;
	color: #fff;
	text-align: center;
	padding: 10px 0;
}

#hikariFix .hikariFixBubbleContainer .hikariFixBubbleContents dd {
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1;
	background: #fff;
	padding: 10px 0;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}

#hikariFix .hikariFixBubbleContents dd .redText {
	font-size: 2.6rem;
	color: #ea0000;
	padding-bottom: 3px;
	border-bottom: #ea0000 3px solid;
}

#hikariFix .hikariFlex .hikariFixBubble .hikariFixBubbleClose {
	width: 19px;
	aspect-ratio: 1 / 1;
	background: url(../images/bubble_close.png) no-repeat;
	background-size: cover;
	cursor: pointer;
	position: absolute;
	top: 7px;
	right: 7px;
}

.hikariTop {
	cursor: pointer;
}

.hikariBtm {
	display: none;
	width: 100%;
	position: absolute;
	left: 0;
	top: -210px;
	background: #fff;
	box-sizing: border-box;
	border: 2px solid #ff0072;
	height: 210px;
	transition: all, .5s;
}

.hikariBtm.opened {
	display: block;
}

.hikariList li {
	height: 70px;
	border-bottom: 2px solid #ff0072;
}

.hikariList li.hlTex {
	height: auto;
	padding: 18px 30px 18px;
	border-bottom: 2px solid #ff0072;
	text-align: center;
}

.hlBolds {
	line-height: 1.0;
	font-weight: 600;
	font-size: 1.6rem;
	margin-bottom: 20px;
}

.hikariList li .nmlLink {
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #ff0072;
	line-height: 1.0;
	font-size: 2.0rem;
	font-weight: 600;
	text-decoration: none;
	transition: all, .2s;
}

.hikariList li .nmlLink:hover {
	background: #ffd90d;
}


.hikariList li.pinkCaution {
	background: #f2d7e3;
	font-size: 1.2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 68px;
	text-align: center;
	line-height: 1.4;
	border-bottom: 2px solid #ff0072;
}

.hikariList li.pinkCaution.longSp {
	height: 74px;
	line-height: 1.3;
}

/* 2023.11.28 */
#hikaripopWindow {
	background: none;
	padding: 30px 0 45px;
	background-image: url(../images/mustsee_pcbg.jpg);
	background-position: center bottom;
	background-size: cover;
}

#hikariFix {
	padding-top: 10px;
}

#hikariFix .hikariFlex {
	align-items: flex-start;
	flex-wrap: wrap;
}

#hikariFix .linkbtn {
	display: block;
	width: fit-content;
	margin: 0 auto;
}

#hikariFix .hikariNote {
	font-size: 1.3rem;
	text-align: center;
	letter-spacing: 0;
	width: 100%;
}

#hikariFix .hikariNote .redText {
	color: #ea0000;
}

#hikariFix .popContent {
	border-radius: 15px;
	background: url("../images/mustsee_pcbg.jpg") bottom center no-repeat;
	background-size: cover;
}

#cboxOverlay {
	background: rgba(0, 0, 0, 0.8);
}

#cboxLoadedContent {
	overflow: hidden !important;
}

#colorbox {
	background: none;
	border-radius: 15px;
	position: fixed !important;
	overflow: visible !important;
}

#cboxContent {
	border-radius: 15px;
	box-sizing: border-box;
}

.poptitle {
	font-size: 3.6rem;
	font-weight: 700;
	color: #ff0071;
	text-align: center;
	line-height: 1;
	margin-bottom: 30px;
}

.popWhiteContent {
	padding: 40px;
	background-color: #fff;
	border-radius: 15px;
}

.popWhiteContent .content01 {
	display: flex;
	justify-content: space-between;
	margin-bottom: 30px;
}

.popWhiteContent .content01 .popSubttl {
	margin-bottom: 30px;
	text-align: center;
}

.popWhiteContent .content01 .yellowList li {
	font-size: 2.4rem;
	font-weight: 700;
}

.popWhiteContent .content01 .yellowList li .dot {
	color: #ffd914;
}

.popWhiteContent .content02 {
	display: flex;
	justify-content: space-between;
}

.popWhiteContent .content02 .blueborder {
	width: 46%;
	height: 265px;
	border-radius: 15px;
	border: 5px solid #0054a6;
	overflow: hidden;
}

.popWhiteContent .content02 .blueborder .bluettl {
	font-size: 2.2rem;
	font-weight: 700;
	color: #fff;
	text-align: center;
	line-height: 1;
	background-color: #0054a6;
	padding: 10px 0 15px 0;
}

.popWhiteContent .content02 .blueborder .flexArea {
	display: flex;
	height: calc(100% - 47px);
	flex-flow: column;
	justify-content: center;
	align-items: center;
}

.popWhiteContent .content02 .blueborder .teltitle {
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: 0;
	margin-bottom: 10px;
}

.popWhiteContent .content02 .blueborder .note {
	font-size: 1.3rem;
	font-weight: 500;
	text-align: center;
	letter-spacing: 0;
	line-height: 1.4;
}

/* --- */

#cboxContent,
#colorbox,
#cboxOverlay,
#cboxWrapper {
	overflow: visible;
}

#cboxContent {
	background: none;
}

#cboxLoadedContent {
	margin-bottom: 0;
}

#cboxClose {
	background-image: url(../images/controls.png);
	background-size: contain;
	background-position: 0 0;
	width: 61px;
	height: 61px;
	top: 10px;
	bottom: auto;
	right: 0;
	transform: translate(50%, -50%);
}

#cboxClose:hover {
	background-position: 0 0;
}

.ttl03Caption {
	width: fit-content;
	margin: 0 auto 30px;
}

.flowContainer .TabBtnList {
	display: flex;
	justify-content: center;
	align-items: end;
}

.flowContainer .TabBtnList li {
	width: 200px;
	height: fit-content;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 2.4rem;
	line-height: 1.4;
	font-weight: 600;
	text-align: center;
	border-radius: 8px 8px 0 0;
	padding: 15px 0 20px;
	cursor: pointer;
	transition: .3s;
	margin-top: 15px;
}

.flowContainer .TabBtnList li .small {
	font-size: 14px;
}

.flowContainer .TabBtnList li.openBtn {
	padding: 15px 0 35px;
	margin-top: 0;
}

.flowContainer .TabBtnList li:hover {
	opacity: .7;
}

.flowContainer .TabBtnList li.flets {
	background: #ffd700;
}

.flowContainer .TabBtnList li.collab {
	background: #f9be4a;
}

.flowContainer .TabBtnList li.sinki {
	background: #f4a200;
}

.flowContainer .TabBtnList li.high {
	background: #37BAD6;
	color: #fff;
}

.flowContainer .TabBtnList li.low {
	background: #0054A6;
	color: #fff;
}

.flowContainer .TabMainBox {
	border-radius: 10px;
	background: #fff;
	padding: 55px 5% 50px 80px;
}

.flowContainer .TabMainBox.flets {
	border: #ffd700 5px solid;
}

.flowContainer .TabMainBox.collab {
	border: #f9be4a 5px solid;
}

.flowContainer .TabMainBox.sinki {
	border: #f4a200 5px solid;
}

.flowContainer .TabMainBox.high {
	border: #37BAD6 5px solid;
}

.flowContainer .TabMainBox.low {
	border: #0054A6 5px solid;
}


.flowContainer .TabMainBox .TabMainBoxItem {
	display: none;
}

.flowContainer .TabMainBox.flets .TabMainBoxItem.flets,
.flowContainer .TabMainBox.collab .TabMainBoxItem.collab,
.flowContainer .TabMainBox.sinki .TabMainBoxItem.sinki,
.flowContainer .TabMainBox.high .TabMainBoxItem.high,
.flowContainer .TabMainBox.low .TabMainBoxItem.low {
	display: block;
}

#collabList {
	display: block;
	width: fit-content;
	margin: 0 auto 40px;
	padding: 19px 100px 22px;
	border: 1px solid #8a8a8a;
	border-radius: 9999px;
	line-height: 1;

}

#collabListContents {
	width: fit-content;
	max-width: 90%;
	height: 90vh;
	margin: 0 auto;
	border-radius: 10px;
	padding: 40px 2.5%;
	background: #fff;
}

#collabListContents .scrollcontainer {
	height: 100%;
	overflow: auto;
}

#collabListContents .scroll {
	width: 480px;
	max-width: 100%;
	padding-bottom: 40px;
}

#collabListContents .bigText {
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1.2;
	margin-bottom: 30px;
}

#collabListContents .addressContainer {
	margin-bottom: 25px;
}

.collabpopup #cboxClose {
	display: none;
}

.flowContainer .NumberList .NumberListItem {
	display: flex;
}

.flowContainer .NumberList .NumberListItem::before {
	content: "";
	height: 46px;
	background: url(../images/frow_number_bg01.png);
	background-size: cover;
	background-repeat: no-repeat;
	aspect-ratio: 54 / 46;
}

.flowContainer .NumberList .NumberListItem:nth-of-type(1):before {
	background: url(../images/frow_number_bg01.png);
}

.flowContainer .NumberList .NumberListItem:nth-of-type(2):before {
	background: url(../images/frow_number_bg02.png);
}

.flowContainer .NumberList .NumberListItem:nth-of-type(3):before {
	background: url(../images/frow_number_bg03.png);
}

.flowContainer .NumberList .NumberListItem:nth-of-type(4):before {
	background: url(../images/frow_number_bg04.png);
}

.flowContainer .NumberList .NumberListItem:nth-of-type(5):before {
	background: url(../images/frow_number_bg05.png);
}

.flowContainer .NumberList .NumberListItem:nth-of-type(6):before {
	background: url(../images/frow_number_bg06.png);
}

.flowContainer .NumberList .NumberListItem:nth-of-type(7):before {
	background: url(../images/frow_number_bg07.png);
}

.flowContainer .NumberList .NumberListItem:nth-of-type(8):before {
	background: url(../images/frow_number_bg08.png);
}

.flowContainer .NumberListItem:nth-last-of-type(2) {
	margin-bottom: 50px;
}

.flowContainer .NumberListItem .NumberListItemContainer {
	width: 100%;
	margin-top: 5px;
}

.flowContainer .NumberListItem .NumberListItemContainer::after {
	content: "";
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 25px solid transparent;
	border-left: 25px solid transparent;
	border-top: 25px solid #f4a200;
	border-bottom: 0;
	margin: 40px auto 45px;
}

.flowContainer .NumberListItem:nth-last-of-type(2) .NumberListItemContainer::after {
	content: "";
	display: none;
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 25px solid transparent;
	border-left: 25px solid transparent;
	border-top: 25px solid #f4a200;
	border-bottom: 0;
	margin: 40px auto 45px;
}

.flowContainer .NumberListItem h4 {
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.4;
	padding-right: 37px;
	position: relative;
	cursor: pointer;
}

.flowContainer .NumberListItem h4.arrowNone {
	cursor: revert;
}

.flowContainer .NumberListItem h4::after {
	content: "";
	width: 28px;
	height: 15px;
	background: url(../images/arrow.png);
	background-position: center;
	background-repeat: no-repeat;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}

.flowContainer .NumberListItem h4.arrowNone::after {
	display: none;
}

.flowContainer .NumberListItem h4.hikariOpen::after {
	transform: translateY(-50%) rotate(180deg);
}

.flowContainer .NumberListItem .DescriptionList {
	display: none;
}

.flowContainer .NumberListItem .DescriptionList li {
	margin-top: 30px;

}

.flowContainer .NumberListItem .DescriptionList li {
	display: inline-block;
	font-size: 1.6rem;
	text-indent: -1.1em;
	padding-left: 1.1em;
	margin-bottom: 25px;
}

.flowContainer .NumberListItem .DescriptionList li:last-of-type {
	margin-bottom: 0;
}

.flowContainer .NumberListItem .DescriptionList li::before {
	content: "・";
}

.flowContainer .NumberListItem .DescriptionList li.kome::before {
	content: "※";
}

.flowContainer .NumberListItem .DescriptionList li.nodot {
	display: block;
}

.flowContainer .NumberListItem .DescriptionList li .TelAnchor {
	color: rgb(51, 51, 51);
	text-decoration: none;
}

.flowContainer .NumberListItem .DescriptionList li.nodot::before {
	content: "・";
	opacity: 0;
	user-select: none;
	margin-right: 0;
}

.flowContainer .NumberListItem .DescriptionList li.nomb {
	margin-bottom: 0;
}

.flowContainer .NumberListItem .DescriptionList li a {
	color: #175ca9;
	text-decoration: underline;
}

.flowContainer .NumberListItem .DescriptionList li a:hover {
	text-decoration: none;
}

.flowContainer .NumberListItem .DescriptionList li .underline {
	text-decoration: underline;
}

.flowContainer .NumberListItem .DescriptionList li .indentText {
	display: inline-block;
}

.flowContainer .frowTopBtn {
	width: calc(100% - 54px);
	display: flex;
	justify-content: center;
	margin-left: 54px;
}

.flowContainer .frowTopBtn a,
#btn_close {
	width: fit-content;
	font-size: 2.2rem;
	font-weight: 600;
	line-height: 1;
	background: #fff;
	border: #ffd700 4px solid;
	padding: 15px 100px 17px;
	border-radius: 9999px;
	transition: .3s;
	box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.2);
}

#btn_close {
	display: block;
	margin: 80px auto 0;
	cursor: pointer;
}

hikariFixBubble bubbleOn .flowContainer .frowTopBtn a:hover,
#btn_close:hover {
	opacity: .7;
}

@media screen and (max-width: 1024px) {
	.hikariTitle {
		display: none;
		text-align: center;
		font-size: 2.0rem;
		font-weight: 600;
		position: absolute;
		top: 15px;
		left: 0;
		width: 100%;
	}

	#hikariFix .hikariFlex {
		display: flex;
		align-items: start;
		justify-content: center;
		height: 100%;
		box-sizing: border-box;
		padding: 0 0 5px;
	}

	#hikariFix .hikariSmall {
		margin-bottom: 10px;
	}

	#hikariFix .hikariFlex .lists {
		width: calc(48.5% - 25px);
		position: relative;
	}

	#hikariFix .hikariFlex .lists:nth-child(n + 2) {
		margin-left: 3%;
	}

	#hikariFix .hikariFlex .lists .spBl img {
		max-height: 70px;
	}

	#hikariFix .hikariFlex .hikariFixBubble::after {
		margin-right: calc(calc(50% - 25px) / 2);
	}

}

@media screen and (max-width: 885px) {
	#hikariFix .hikariFixBubbleContainer .hikariFixBubbleContents dt {
		font-size: 1.4rem;
		line-height: 1.2;
	}

	#hikariFix .hikariFixBubbleContainer .hikariFixBubbleContents dd {
		font-size: 1.6rem;
		line-height: 1.2;
	}

	#hikariFix .hikariFixBubbleContents dd .redText {
		font-size: 2.2rem;
	}
}

@media screen and (max-width: 767px) {
	#hikariFix .hikariFixBubble {
		display: none;
	}

	#cboxClose {
		width: 40px;
		height: 40px;
		top: 0px;
		right: 1%;
	}

	.flowContainer .TabBtnList {
		margin: 0 8px;
	}

	.flowContainer .TabBtnList li {
		font-size: 1.4rem;
	}

	.flowContainer .TabBtnList li:hover {
		opacity: 1;
	}

	.flowContainer .TabMainBox {
		padding: 28px 5% 35px;
	}

	.flowContainer .NumberList .NumberListItem {
		position: relative;
	}

	.flowContainer .NumberList .NumberListItem::before {
		position: absolute;
	}

	.flowContainer .NumberListItem:nth-last-of-type(2) {
		margin-bottom: 25px;
	}

	.flowContainer .NumberListItem .DescriptionList li::before {
		margin-right: 10px;
	}

	.flowContainer .NumberListItem h4 {
		min-height: 46px;
		font-size: 1.8rem;
		margin-bottom: 15px;
		margin-left: 54px;
	}

	.flowContainer .NumberListItem .NumberListItemContainer::after {
		margin: 30px auto 45px;
	}

	.flowContainer .NumberListItem .DescriptionList li {
		margin-left: 6px;
	}

	.flowContainer .frowTopBtn {
		width: 100%;
		margin-left: 0;
	}

	.flowContainer .frowTopBtn a,
	#btn_close {
		font-size: 1.8rem;
		width: 100%;
		max-width: 340px;
		text-align: center;
		padding: 15px 0 17px
	}

	#collabList {
		width: 100%;
		padding: 19px 0 22px;
		text-align: center;
	}

	#collabListContents {
		height: 82vh;
		padding: 20px 5%;
	}

	#collabListContents .bigText {
		font-size: 1.8rem;
		margin-bottom: 15px;
	}

	#collabListContents .addressContainer {
		margin-bottom: 15px;
	}

	#btn_close {
		margin: 30px auto 5px;
	}

	#cboxLoadedContent {
		overflow: visible !important;
		border-radius: 15px;
	}

	#cboxLoadedContent {
		overflow-x: unset !important;
		overflow-y: auto !important;
		/*スクロールバー非表示（IE・Edge）*/
		-ms-overflow-style: none;
		/*スクロールバー非表示（Firefox）*/
		scrollbar-width: none;
	}

	/*スクロールバー非表示（Chrome・Safari）*/
	#cboxLoadedContent::-webkit-scrollbar {
		display: none;
	}

	#cboxLoadedContent.height100MAX {
		max-height: 100% !important;
	}

	#hikaripopWindow {
		padding: 15px 0 25px;
	}

	#hikariFix .hikariNote {
		width: 100%;
		margin-right: 0;
		display: block;
		text-align: left;
	}

	#hikariFix .hikariNote p {
		width: auto;
	}

	#hikariFix .hikariFixBubbleContainer .hikariFixBubbleContents dt {
		width: fit-content;
		display: flex;
		flex-flow: column;
		margin: 0 auto;
		text-align: left;
		padding: 5px 22px 10px 5px;
	}

	#hikariFix .hikariFixBubbleContainer .hikariFixBubbleContents dd {
		display: block;
		padding: 7.5px 0 15px;
	}

	.spAbsolute {
		position: relative;
	}

	.spAbsolute sub {
		margin-top: auto;
		bottom: 0px;
	}

}


@media screen and (max-width: 500px) {

	#hikariFix .hikariFlex .lists .spBl img {
		max-height: inherit;
	}
}

@media screen and (max-width: 450px) {
	#hikariFix .hikariFlex {
		max-width: 100%;
	}

	#hikariFix .hikariFlex .lists:first-of-type {
		margin-left: calc(2.5%);
	}

	#hikariFix .hikariFlex .lists:nth-of-type(2) {
		margin-right: calc(2.5%);
	}

	#hikariFix .hikariNote {
		max-width: 95%;
		font-size: 1.2rem;
	}

	#hikariFix .hikariFlex .hikariFixBubble {
		max-width: 90%;
		right: 5%;
	}

	#hikariFix .hikariFlex .hikariFixBubble::after {
		margin-right: calc(calc(42vw - 25px) / 2);
	}

	#hikariFix .hikariFixBubbleContainer .hikariFixBubbleContents dt {
		font-size: 3.6vw;
		display: block;
	}

	#hikariFix .hikariFixBubbleContainer .hikariFixBubbleContents dd {
		font-size: 4vw;
	}

	#hikariFix .hikariFixBubbleContents dd .redText {
		font-size: 5vw;
	}

}

@media screen and (max-width: 375px) {
	#hikariFix .hikariNote {
		font-size: 1.1rem;
	}
}

.annotationBtnWrapper {
	font-size: 1.6rem;
	font-weight: 500;
}

.annotationBtn {
	border-bottom: 1px solid #0054a6;
	color: #0054a6 !important;
	margin-right: 10px;
	font-size: 1.4rem;
	line-height: 1.2;
}

.annotation {
	background: #edeeea;
	padding: 25px 40px;
	height: 100%;
	overflow-y: scroll;
}

.annotation-inner {
	padding-left: 2em;
	font-size: 1.4rem;
}

@media screen and (max-width: 767px) {
	.annotationBtnWrapper {
		font-size: 1em;
		line-height: 1.4;
	}
	.annotationBtn{
		font-size: 1rem;
	}
	.annotation {
		padding: 20px;
	}
}

.checkList {
	margin-bottom: 40px;
}

.checkList_ttl {
	font-size: 1.8rem;
	font-weight: 500;
}

.checkList_item {
	padding-left: 20px;
	position: relative;
}

.checkList_item a {
	font-weight: bold;
	color: #0054a6;
	border-bottom: 1px solid #0054a6;
}

.checkList_item::before {
	content: "";
	width: 16px;
	height: 16px;
	background: #0054a6;
	display: block;
	position: absolute;
	top: 5px;
	left: 0;
}

@media screen and (max-width: 767px) {
	.checkList_ttl {
		font-size: 1.6rem;
	}
}

#pageTop {
	position: fixed;
	right: 10px;
	bottom: 150px;
	pointer-events: none;
	opacity: 0;
	transition: opacity .3s ease;
	width: 100px;
}

#pageTop.appear {
	opacity: 1;
	visibility: visible;
	pointer-events: revert;
}

#pageTop.stop {
	bottom: 215px;
}

@media screen and (max-width: 767px) {
	#pageTop {
		max-width: 60px;
	}
}

/*--------------------------------------------------------
  グリッドメニュー（四角）
--------------------------------------------------------*/

.box-menu {
	display: grid; /* CSS Gridレイアウトを適用 */
	gap: 20px;    /* 各ボックス間の余白 */
	width: 95%;
	margin: 0 auto; /* 中央揃え */
  }
  
  /* PC (画面幅が768px以上の場合) */
  @media screen and (min-width: 768px) {
	.box-menu {
	  grid-template-columns: repeat(4, 1fr); /* 4列で表示 */
	  /* grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); /* 最小幅150pxで、可能な限り均等な列数 (3列または4列になるように調整) */
	}
  }
  
  /* スマートフォン (画面幅が767px以下の場合) */
  @media screen and (max-width: 767px) {
	.box-menu {
	  grid-template-columns: repeat(2, 1fr); /* 2列で表示 */
	}
  }
  
  .box-menu a {
	display: flex;          /* 内部要素をフレックスボックスで配置 */
	justify-content: center; /* 水平方向中央揃え */
	align-items: center;     /* 垂直方向中央揃え */
	min-height: 150px;       /* ボックスの最小の高さ (適宜調整) */
	padding: 15px;
	text-decoration: none;
	background-color: #f0f0f0; /* 背景色 (適宜変更) */
	color: #333;             /* 文字色 (適宜変更) */
	border-radius: 10px;      /* 角丸 (適宜変更) */
	box-sizing: border-box;  /* paddingとborderをwidth/heightに含める */
	box-shadow: 0px 15px 30px -15px rgba(52, 76, 83, 0.4);
	transition: background-color 0.2s ease-in-out, box-shadow 0.1s ease-in-out; /* ホバー時の変化を0.3秒かけて滑らかに */
  }
  
  .box-menu a:hover {
	background-color: #d4eefb; /* ホバー時の背景色 (適宜変更) */
	box-shadow: none;
  }

  .box-menu-txt {
	display: flex;
	flex-direction: column; /* アイコンとテキストを縦に並べる場合 */
	justify-content: center; /* 水平方向中央揃え */
	align-items: center;    /* 垂直方向中央揃え */
	text-align: center;      /* テキストを中央揃え (念のため) */
  }


  /*--------------------------------------------------------
  グリッドメニュー（〇）
--------------------------------------------------------*/

.circle-menu {
	display: grid; /* CSS Gridレイアウトを適用 */
	grid-template-columns: repeat(auto-fit, minmax(280px, auto)); /* 3つの要素を均等幅で配置 */
	justify-content: center; /* 中央揃え */
	gap: 5%;     /* 各ボックス間の余白 */
	margin-bottom: 5%;
  }
  
  .circle-menu a {
	display: flex;          /* 内部要素をフレックスボックスで配置 */
	justify-content: center; /* 水平方向中央揃え */
	align-items: center;     /* 垂直方向中央揃え */
	width: 280px;          /* 幅を高さと同じ値に設定 */
	height: 280px;         /* 高さを幅と同じ値に設定 */
	padding: 20px;
	text-decoration: none;
	background-color: #fff; /* 背景色 (適宜変更) */
	color: #333;            /* 文字色 (適宜変更) */
	border: solid #0054a6 5px;
	border-radius: 50%;    /* 角丸 (適宜変更) */
	box-sizing: border-box; /* paddingとborderをwidth/heightに含める */
	box-shadow: 0px 15px 30px -15px rgba(52, 76, 83, 0.4);
	transition: background-color 0.2s ease-in-out, box-shadow 0.1s ease-in-out; /* ホバー時の変化を0.3秒かけて滑らかに */
  }
  
  .circle-menu a:hover {
	background-color: #fff100; /* ホバー時の背景色 (適宜変更) */
	box-shadow: none;
  }
  
  .circle-menu-subtitle {
	font-size: 1.3em;
	font-weight: 700;
	padding-bottom: 2%;
	max-width: 70%;
  }

  .circle-menu-txt {
	display: flex;
	flex-direction: column; /* アイコンとテキストを縦に並べる場合 */
	justify-content: center; /* 水平方向中央揃え */
	align-items: center;     /* 垂直方向中央揃え */
	text-align: center;      /* テキストを中央揃え (念のため) */
  }


/* スマホ版 */
@media screen and (max-width: 767px) {
	.pointWrap img.circle-menu-subtitle:first-of-type {
		margin-top: 5%;
		margin-bottom: 4%;
	  }
	  .pointWrap img.circle-menu-subtitle:nth-of-type(2) {
		width: 60%;
		margin-bottom: 0%;
	  }

	.circle-menu {
		width: 100%;
		grid-template-columns: repeat(3, 1fr); /* 3つの要素を均等幅で配置 */
		gap: 2%;     /* 各ボックス間の余白 */
		margin-bottom: 3%;
	  }
	  
	.circle-menu a {
		border: solid #0054a6 3px;
		padding: 10px;
		max-width: 115px;          /* 幅を高さと同じ値に設定 */
		max-height: 115px;         /* 高さを幅と同じ値に設定 */
	  }

	  .circle-menu-txt {
		display: flex;
		flex-direction: column; /* アイコンとテキストを縦に並べる場合 */
		justify-content: center; /* 水平方向中央揃え */
		align-items: center;     /* 垂直方向中央揃え */
		text-align: center;      /* テキストを中央揃え (念のため) */
		font-size: 0.7em;
		line-height: 1.3;
		font-weight: 700;
	  }

	  .circle-menu a:active {
		background-color: #fff100; /* タップ時の色 */
	  }
	
}


.tab-container {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.tab-nav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    background-color: #e9e9e9;
    border-bottom: 1px solid #ccc;
}

.tab-item {
    padding: 15px 20px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    border-right: 1px solid #ccc; /* タブ間の区切り線 */
	text-align: center;
}

.tab-item:last-child {
    border-right: none; /* 最後のタブの右線は不要 */
}

.tab-item:hover {
    background-color: #ddd;
}

.tab-item.active {
    background-color: #fff;
    color: #333;
    font-weight: bold;
    border-bottom: 2px solid #007bff; /* アクティブなタブの下線 */
    margin-bottom: -1px; /* コンテナの境界線と重なるように調整 */
}

.tab-content-area {
    padding: 20px;
	text-align: center;
}

.tab-content {
    display: none; /* 初期状態では非表示 */
}

.tab-content.active {
    display: block; /* アクティブなコンテンツのみ表示 */
    animation: fadeIn 0.5s ease-in-out; /* 表示時のアニメーション */
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}