/*--------------------------------------------------------------
# Define
--------------------------------------------------------------*/

/*
/*for xs -575px smartphone
@media(max-width: 575px) {

}

/*for sm 576px-767px smartphone
@media(min-width: 576px) and (max-width: 767px) {

}

/*for md 768px-991px tablet
@media(min-width: 768px) and (max-width: 991px) {

}

/*for lg 992px-1199px pc
@media(min-width: 992px) and (max-width: 1199px) {

}

/*for xl 1200px-1399px pc
@media(min-width: 1200px) and (max-width: 1399px) {

}

/*for xxl 1400px- pc
@media(min-width: 1400px) {

}
*/



/*--------------------------------------------------------------
# Const
--------------------------------------------------------------*/

:root {
	/* Fonts */
	--font-default:"Outfit","Noto Sans JP","Montserrat",sans-serif;
	--font-default-size:25px;
	--font-default-size-sp:25px;

	--font-secound:"Dancing Script",sans-serif;

	/* Colors */
	--color-default-font:#000000;
	--color-default-bgcolor:#FFFFFF;

	--color1:#FF9501; /* オレンジ */
	--color2:#95D5D7; /* エメラルドグリーン */
	--color3:#222222; /* 黒灰 */
	--color4:#C1C1C1; /* 灰色 */

	--color-error:#FF0000;

	--color-hover-a:#698DBA;
	--color-hover-btn:#F38F32;
}

/*--------------------------------------------------------------
# Bootstrap Custom
--------------------------------------------------------------*/

.container-fluid {
	margin:0;
	padding:0;
	position:relative;
	z-index:0;
}

.box-center {
	margin:0 auto;
}

div {
	box-sizing:border-box;
}

.row {
	margin:0;
	padding:0;
}

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/

body {
	font-family: var(--font-default);
	font-optical-sizing: auto;
	font-weight:300;
	font-style: normal;
	font-size:var(--font-default-size);
	color: var(--color-default-font);

	background-color:var(--color-default-bgcolor);
	scroll-behavior: smooth;

	position:relative;

}
/* for xs,sm,md -991px sp */
@media(max-width: 991px) {
	font-size:var(--font-default-size-sp);
}

#wrapper {
	max-width:2160px;
	margin:0 auto;
	position:relative;
}

main {
	position:relative;
	z-index:10;
}




a {
	color: var(--color-default-font);
	text-decoration: none;
}

a:hover {
	color: var(--color-hover-a);
	text-decoration: none;
}

h1 {
	font-size:58px;
	font-weight:700;
}
h2 {
	font-size:50px;
	font-weight:700;
}
h3 {
	font-size:32px;
	font-weight:700;
}
h4 {

}

/* for xs,sm,md -991px sp */
@media(max-width: 991px) {

	h1 {
		font-size:40px;
	}
	h2 {
		font-size:30px;
		line-height:55px;
	}
	h3 {

	}
	h4 {

	}

}

.h2area {
	width:100%;
	height:100%;
	padding-left:30px;
	position:relative;
}
.h2area-border1 {
	width:60px;
	height:2px;
	left:30px;
	bottom:0;
	background-color:#000000;
	position:absolute;
	z-index:10;
}
.h2area-border2 {
	width:60px;
	height:2px;
	left:90px;
	bottom:0;
	background-color:var(--color2);
	position:absolute;
	z-index:10;
}


p {

}

i {
	font-size:20px;
}

table {
	width:100%;
	max-width:1000px;
	margin:0 auto;
	border-collapse: collapse;
	border:none;
}

table th {
	width:35%;
	font-weight:300;
	padding:2rem 3rem 2rem 2rem;
	text-align:right;
	vertical-align:top;
}

table td {
	padding:2rem;
	text-align:left;
	vertical-align:top;
}

.extable {
	background-color:#EEEEEE;
	border-radius:10px;
}

/* for xs,sm,md -991px sp */
@media(max-width: 991px) {

table th,table td {
	width:100%;
	padding:1rem;
	text-align:center;
	display:block;
}

}


select {
	width:100%;
	height:50px;
	font-size:var(--font-default-size);
	color:#000000;
}

input[type=text],input[type=password],input[type=date] {
	width:100%;
	height:50px;
	font-size:var(--font-default-size);
}

input[type="date"] {
	color:#000000;
}

input[type="checkbox"] {
	width:20px;
	height:20px;
	margin-right:15px;
}

textarea {
	width:100%;
	height:150px;
	font-size:var(--font-default-size);
	color:#000000;
}

.form-btn {
	width:80%;
	max-width:400px;
	margin:0 auto;
	padding:15px 0;

	color:#FFFFFF;
	background-color:#F38F32;
	border:0;
	border-radius:50px;
	display:block;
}

.form-btn:hover {
	filter: brightness(1.2);
}

#form-errorbox {
	display:none;
}


/*--------------------------------------------------------------
# Parts
--------------------------------------------------------------*/

.errorMsg{
	color:#FF0000;
}

.spacer {
	padding-bottom:6rem;
}

.btn {
	width:90%;
	max-width:500px;
	height:70px;

	margin:0 auto;

	color:#FFFFFF;
	font-size:19px;
	font-weight:300;
	line-height:3.0em;

	background-color:var(--color3);
	border:1px solid var(--color3);
	border-radius:0;

	display:block;

	position:relative;
}
.btn:hover {
	color:#000000;
	background-color:var(--color2);
	border-color:var(--color3);
	cursor:pointer;
}
.btn-nohover:hover {
	background-color:#000000;
	cursor:auto;
}

.btn-mark1 {
	width:15px;
	height:1px;
	top:31px;
	right:35px;
	background-color:var(--color4);
	position:absolute;
	z-index:10;
}
.btn-mark2 {
	width:26px;
	height:1px;
	top:38px;
	right:35px;
	background-color:var(--color4);
	position:absolute;
	z-index:10;
}
.btn:hover .btn-mark1,.btn:hover .btn-mark2 {
	background-color:var(--color3);
}


.btn2 {
	width:180px;
	height:32px;

	padding-left:23px;

	color:#000000;
	font-size:15px;
	font-weight:300;
	line-height:2em;

	background-color:#FFFFFF;
	border:1px solid var(--color3);
	border-radius:0;

	display:block;

	position:relative;
}
.btn2:hover {
	background-color:var(--color2);
	cursor:pointer;
}
.btn2-nohover:hover {
	background-color:#FFFFFF;
	cursor:auto;
}

.btn2-mark1 {
	width:15px;
	height:1px;
	top:13px;
	right:12px;
	background-color:var(--color3);
	position:absolute;
	z-index:10;
}
.btn2-mark2 {
	width:24px;
	height:1px;
	top:17px;
	right:12px;
	background-color:var(--color3);
	position:absolute;
	z-index:10;
}



.btn3 {
	width:180px;
	height:32px;

	padding-left:23px;

	color:#FFFFFF;
	font-size:15px;
	font-weight:300;
	line-height:2em;

	background-color:var(--color3);
	border:1px solid var(--color3);
	border-radius:0;

	display:block;

	position:relative;
}
.btn3:hover {
	color:#000000;
	background-color:var(--color2);
	cursor:pointer;
}
.btn3-nohover:hover {
	background-color:#FFFFFF;
	cursor:auto;
}

.btn3-mark1 {
	width:15px;
	height:1px;
	top:13px;
	right:12px;
	background-color:var(--color4);
	position:absolute;
	z-index:10;
}
.btn3-mark2 {
	width:24px;
	height:1px;
	top:17px;
	right:12px;
	background-color:var(--color4);
	position:absolute;
	z-index:10;
}
.btn3:hover .btn3-mark1,.btn3:hover .btn3-mark2 {
	background-color:var(--color3);
}





.list1 {
	width:100%;
	margin: auto;
	padding:0;

	list-style-type:none;

	display:grid;
	grid-template-columns: repeat(1,1fr);


}

.list1 li {
	padding: 10px;
	margin: 10px;

	background-color:var(--color-gray4);
	border-radius:10px;

	cursor: pointer;
}

.list1 li:hover {
	background-color:var(--color-hover-btn-red);
}

.list1 .list1sec {
	background-color:var(--color-hover-btn-red);
}

/* for xs,sm,md -991px sp */
@media(max-width: 991px) {

.list1 {
	display: block;
}

.list1 li {
	margin: 15px 0 15px 0;
}

}

.list2 {
	width:100%;
	margin: auto;
	padding:0;

	list-style-type:none;

	display:grid;
	grid-template-columns: 1fr 3fr;


}

.list2 li {
	padding: 10px;
	margin: 10px;
}

/* for xs,sm,md -991px sp */
@media(max-width: 991px) {

.list2 {
	display: block;
}

.list2 li {
	margin: 15px 0 15px 0;
}

}



#errorMsgBox ul {
	width:100%;
	padding:25px;

	color:var(--color-red1);
	list-style-type:none;

	border-radius:10px;
	background-color:#EEEEEE;
}

#errorMsgBox li {
	display:block;
}





/*--------------------------------------------------------------
# Section
--------------------------------------------------------------*/

.backBox {
	width:0px;
	height:100%;
	right:0;
	top:0;
	background-color:var(--color1);
	position:absolute;
	z-index:10;
}
.boxUp {
	position:relative;
	z-index:100;
}

/*--------------------------------------------------------------
# Modal
--------------------------------------------------------------*/





/*--------------------------------------------------------------
# SpMenu
--------------------------------------------------------------*/

#spmenuBack {
	width:100%;
	height:100%;
	left:0;
	top:0;

	background-color:#000000;
	opacity:0.6;

	position:fixed;
	z-index:1000;

	display:none;
}

#spmenuBase {
	width:400px;
	height:100%;
	left:-400px;
	top:0;

	overflow-y: scroll;

	background-color:#000000;

	position:fixed;
	z-index:2000;

}

#spmenuArea {
	width:100%;
	height:auto;

	color:#FFFFFF;
}

#spmenuArea a {
	color:#FFFFFF;
}

#spmenuArea a:hover {
	color:#FFFFFF;
}

#spmenuArea ul {
	width:100%;
	padding:0 15px 10px 15px;
	list-style:none;
}

#spmenuArea #fst {
	margin-top:22px;
}

#spmenuArea li {
	margin-bottom:11px;
}

#spmenuArea ul .tp {
	border-bottom:1px solid #FFFFFF;
}

#spmenuArea #snsmark i {
	font-size:26px;
	margin-right:23px;
}

/*--------------------------------------------------------------
# Preloader
--------------------------------------------------------------*/

#preloader {
	width: 100vw;
	height: 100vh;
	top: 0;

	background-color:#FFFFFF;
	align-items: center;
	justify-content: center;

	position: fixed;
	z-index:3000;

	display: flex;
}

#preloader span {
	display:inline-block;
	transition: transform 0.5s ease-in-out;
	perspective: 500px;
}

#preloaderMark {
	font-size:38px;
	font-weight:700;
	overflow:hidden;
}

#preloader2 {
	width: 100vw;
	height: 100vh;
	top: 0;

	background-color:var(--color2);
	align-items: center;
	justify-content: center;

	position: fixed;
	z-index:2999;

	display: flex;
}


/*--------------------------------------------------------------
# PagetopLink
--------------------------------------------------------------*/

#page-top {
	width:40px;
	height:183px;

	right:30px;
	bottom:30px;

	color:#FFFFFF;

	background-color:var(--color3);
	border:1px solid #FFFFFF;

	opacity: 0;

	position: fixed;
	z-index: 1000;

}
#page-top:hover{
	color:var(--color3);
	background-color:var(--color2);
	border-color:var(--color3);
	cursor:pointer;
}
#page-topBorder {
	width:1px;
	height:60px;
	margin:0;

	left:19px;
	top:14px;
	position:absolute;
	z-index:10;
	background-color:#FFFFFF;
}
#page-top:hover #page-topBorder{
	background-color:var(--color3);
}
#page-top p {
	width:100%;
	height:110px;

	margin:0;

	left:0;
	bottom:0;

	font-size:15px;
	font-weight:300;
	line-height:2.5em;
	text-align:center;
	writing-mode: vertical-rl;

	position:absolute;
	z-index:10;
}


#page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
	from {
		opacity: 0;
		transform: translateY(100px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

#page-top.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
	from {
		opacity: 1;
		transform: translateY(0);
	}
	to {
		opacity: 0;
		transform: translateY(100px);
	}
}

/* for md -991px tablet */
@media(max-width: 991px) {
	#page-top {
		height:140px;
	}
	#page-topBorder {
		height:20px;
	}
}



/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/

header {
	width:100%;
	height:70px;
	margin:0;
	padding:0;
	left:0;
	top:0;
	position:absolute;
	z-index:100;
}

header #logo {
	width:308px;
	height:48px;
	left:50px;
	top:11px;
	position:absolute;
}

header #logo img {
	width:100%;
	height:100%;
}

header #langMark {
	right:30px;
	top:10px;
	position:absolute;
}
header #langMark i {
	font-size:19px;
}


/* for md -991px tablet */
@media(max-width: 991px) {

	header {
		height:69px;
	}

	header #logo {
		width:216px;
		height:34px;
		left:19px;
		top:13;
	}

	header #langMark {
		right:15px;
	}
}





/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/

footer {
	color:#FFFFFF;
	font-size:16px;
	background-color:var(--color3);
}

footer a {
	color:#FFFFFF;
}
footer a:hover {
	color:var(--color4);
}


footer h2 {
	font-size:25px;
	font-weight:600;
}
/* for md -991px tablet */
@media(max-width: 991px) {

	#footerH2Sp {
		margin-left:25px;
	}
}

.footerLink {
	line-height:2em;
}


#footerContact {
	background-color:#000000;
}

#footerEnd {
	height:130px;
	background-color:#000000;
}



/*--------------------------------------------------------------
# index sec
--------------------------------------------------------------*/

/* topimage */

#topimage .container-fluid {
	height:100vh;
	min-height:700px;
	overflow:hidden;
	position:relative;
	z-index:10;
}

#topimage #topimageTxt {
	width:100%;
	height:500px;
	left:100px;
	top:calc(50% - 200px);
	position:absolute;
	z-index:100;
}

#topimage h1 {
	margin:44px 0 50px 50px;
	font-size:55px;
	font-weight:900;
	line-height:1.5em;
	position:relative;
	z-index:20;
}

.topimageH1En {
	margin-top:36px !important;
	line-height:1.3em !important;
}

/* for md -991px tablet */
@media(max-width: 991px) {
	#topimage #topimageTxt {
		height:284px;
		left:15px;
		top:calc(50% - 45px);
	}
	#topimage h1 {
		margin:30px 0 30px 20px;
		font-size:30px;
	}
}

#topimage #topimageTxtBox {
	width:0px;
	height:100%;
	left:0;
	top:0;
	background-color:var(--color1);
	opacity:0.8;
	position:absolute;
	z-index:10;
}


#topimageImg1 img,#topimageImg2 img {
	width:100%;
	height:100%;
}

#topimageImg1 {
	width:2376px;
	height:1320px;
	top:0;
	left:calc(50% - 1080px);
	position:absolute;
	z-index:10;
}
#topimageImg2 {
	width:2376px;
	height:1320px;
	bottom:0;
	left:calc(50% - 1080px);
	position:absolute;
	z-index:20;
}

/* for md -991px tablet */
@media(max-width: 991px) {
	#topimageImg1,#topimageImg2 {
		width:1090px;
		height:1650px;
		left:calc(50% - 495px);
	}
}


/* about us */

#aboutusTxtbox {
	width:100%;
	height:185px;
	text-align:center;
	position:relative;
}

#aboutus h1 {
	width:100%;
	height:auto;
	top:29px;
	font-size:85px;
	font-weight:700;
	position:absolute;
	z-index:20;
}
#aboutusEngtxt {
	width:100%;
	height:auto;
	top:0;
	color:var(--color2);
	font-size:108px;
	font-family:"Dancing Script", serif;
	transform: rotate(-10deg);
	position:absolute;
	z-index:10;
}

/* for md -991px tablet */
@media(max-width: 991px) {
	#aboutus h1 {
		font-size:70px;
	}
	#aboutusEngtxt {
		font-size:90px;
	}
}

#aboutusBoxWrapper {
	max-width:1900px;
	margin:0 auto;
}

.aboutusBox {
	width:500px;
	height:500px;
	margin:0 auto;
	padding:70px 25px 0 25px;
	color:#FFFFFF;
	background-color:#000000;
}
/* for md -991px tablet */
@media(max-width: 991px) {
	.aboutusBox {
		width:100%;
	}
}

.aboutusBoxInTop {
	width:100%;
	height:21px;
}
.aboutusBoxInTopLine1 {
	width:30px;
	height:1px;
	margin-top:10px;
	background-color:#FFFFFF;
	float:left;
}
.aboutusBoxInTopLine2 {
	width:30px;
	height:1px;
	margin-top:10px;
	background-color:var(--color2);
	float:left;
}
.aboutusBoxInTop p {
	height:100%;
	margin-left:20px;
	font-size:16px;
	line-height:1.25em;
	float:left;
}

.aboutusBoxInTitle {
	width:100%;
	margin-top:51px;
	font-size:33px;
	font-weight:300;
}

.aboutusBoxInTextEn {
	margin-top:0 !important;
}

.aboutusBoxInTitleEn {
	margin-top:20px;
}

.aboutusBoxInText {
	width:100%;
	margin-top:50px;
	font-size:19px;
	font-weight:300;
	line-height:2.25em;
}

/* business */

.businessArea {
	height:300vh;
	margin:0;
	padding:0;
}
/* for md -991px tablet */
@media(max-width: 991px) {
	.businessArea {
		height:350vh;
	}
}

.businessText {
	height:100vh;
	padding:110px;
	top:0;
	left:0;
	background-color:#FFFFFF;
	position:sticky;
	z-index:20;
}
/* for md -991px tablet */
@media(max-width: 991px) {
	.businessText {
		padding:40px;
	}
}

.businessBoxInTop {
	width:100%;
	height:21px;

}
.businessBoxInTopLine1 {
	width:30px;
	height:1px;
	margin-top:10px;
	background-color:#000000;
	float:left;
}
.businessBoxInTopLine2 {
	width:30px;
	height:1px;
	margin-top:10px;
	background-color:var(--color2);
	float:left;
}
.businessBoxInTop p {
	height:100%;
	margin-left:20px;
	font-size:16px;
	line-height:1.25em;
	float:left;
}

.businessText h1 {
	font-size:50px;
	margin-top:50px;
}
/* for md -991px tablet */
@media(max-width: 991px) {
	.businessText h1 {
		font-size:43px;
	}
}

.businessBoxDetail {
	margin-top:50px;
	font-size:20px;
	line-height:3em;
}

.businessImage {
	height:100vh;
	top:0;
	right:0;
	position:sticky;
	z-index:10;
	overflow:hidden;
}

.businessImageCover {
	width:100%;
	height:100%;
	top:0;
	left:0;
	background-color:var(--color2);
	position:absolute;
	z-index:100;
opacity:0.8;
}

.businessImage img {
	height:100%;
	top:0;
	left:0;
	position:absolute;
	z-index:10;
}

/* company */

.companyArea {
	padding:0;
	position:relative;
	display:flex;
	align-items:center;
}
.companyArea:hover {
	cursor:pointer;
}

.companyArea h2 {
	width:100%;
	margin:0;
	color:#FFFFFF;
	font-size:50px;
	position:absolute;
	z-index:100;
	display:inline-block;
	transition:transform 0.3s ease;
}
.companyArea:hover h2 {
	transform:translateY(-10px);
}

.companyArea div {
	width:100%;
	height:0%;
	bottom:0;
	left:0;
	background-color:var(--color2);
	position:absolute;
	z-index:10;
	transition: height 0.3s ease;
	opacity:0.8;
}
.companyArea:hover div {
	height:100%;
}

.companyArea img {
	position:relative;
	z-index:1;
}

/* member */

.memberAreaCover {
	max-width:1500px;
	margin:0 auto;
}

.memberArea {
	padding:30px 50px 100px 50px;
}

.memberArea p {
	margin:50px 0 0 20px;
	font-size:20px;
	line-height:2em;
}
.memberArea div {
	margin:30px 0 50px 20px;
}


/*--------------------------------------------------------------
# inside page
--------------------------------------------------------------*/

#defcont .boxUp {
	padding:1px 0 120px 0;
}
/* for md -991px tablet */
@media(max-width: 991px) {
	#defcont .boxUp {
		width:95%;
	}
}


/* insideImage */

#insideImage .container-fluid {
	height:100vh;
	min-height:700px;
	overflow:hidden;

	align-items: center;
	justify-content: center;
	display: flex;

	position:relative;
	z-index:10;
}

#insideImage #insideImageTxt {
	text-align:center;
	position:absolute;
	z-index:100;
}

#insideImage h1 {
	font-size:98px;
	font-weight:900;
	color:#FFFFFF;
	position:relative;
	z-index:20;
}

#insideImage span {
	color:#FFFFFF;
	font-size:53px;
	font-family:"Dancing Script", serif;
	position:relative;
	z-index:20;
}

#insideImage #insideImageTxtBox {
	width:0px;
	height:100%;
	left:0;
	top:0;
	background-color:var(--color1);
	opacity:0.8;
	position:absolute;
	z-index:10;
}


#insideImageImg1 img,#insideImageImg2 img {
	width:100%;
	height:100%;
}

#insideImageImg1 {
	width:2376px;
	height:1320px;
	top:0;
	left:calc(50% - 1080px);
	position:absolute;
	z-index:10;
}
#insideImageImg2 {
	width:2376px;
	height:1320px;
	bottom:0;
	left:calc(50% - 1080px);
	position:absolute;
	z-index:20;
}

/* for md -991px tablet */
@media(max-width: 991px) {
	#insideImage h1 {
		margin:0;
		font-size:70px;
	}
	#insideImage span {
		font-size:47px;
	}
	#insideImageImg1,#insideImageImg2 {
		width:1090px;
		height:1650px;
		left:calc(50% - 495px);
	}
}




/* inside Def */

.insideTitle {
	margin-top:60px;
	padding-top:30px;
	background-color:#FFFFFF;
}
.insideBody {
	padding:30px 30px 60px 30px;
	background-color:#FFFFFF;
}
.insideBodyNosp {
	padding:0;
	background-color:#FFFFFF;
}
.insideBodyNosp > div {
	padding:0;
}

.insideBody h3 {
	margin:30px 0;
	font-size:32px;
	font-weight:500;
}
.insideBody p {
	line-height:2em;
}

.insideBodyMap {
	height:800px;
	padding:0;
}
.insideBodyMap > div {
	padding:0;
}
.insideBodyMap iframe {
	width:100%;
	height:100%;

}


/* for md -991px tablet */
@media(max-width: 991px) {
	.insideBody h3 {
		font-size:30px;
		font-weight:400;
	}
	.insideBody p {
		font-size:20px;
		line-height:2em;
	}
	.insideBodyMap {
		height:500px;
	}
}


/* inside AboutUS*/

.insideAboutusBox {
	margin:113px auto;
	padding:60px 0;
	background-color:#FFFFFF;
}
.insideAboutusBox span {
	color:var(--color2);
	font-size:30px;
	font-family:"Dancing Script", serif;
	position:relative;
	z-index:20;
}
.insideAboutusBox h2 {
	font-size:42px;
	font-weight:400;
}
.insideAboutusBox p {
	margin-top:30px;
	font-weight:300;
	line-height:2.5em;
}

.insideAboutusBoxLast {
	margin-bottom:300px;
}

/* for md -991px tablet */
@media(max-width: 991px) {
	.insideAboutusBox {
		width:95%;
	}
	.insideAboutusBox span {
		font-size:26px;
	}
	.insideAboutusBox h2 {
		font-size:34px;
	}
	.insideAboutusBox p {
		font-size:20px;
		line-height:2em;
	}
}


/* inside Member */

.insideMemberImg {
	max-width:700px;
}

/* for md -991px tablet */
@media(max-width: 991px) {
	.insideMemberImg {
		max-width:100%;
	}
}
