/*====================================================================================*/
/* Common
/*====================================================================================*/

.pageWrapper{
	width: 100%;
	position:relative;
}
.pageWrapper > .contentsWrapper{
	height:calc((100vh + 1000px) * 6);
}

/*----------------------------
  #TOP向けスタイル
  ----------------------------*/
#top{
	width:100vw;
	height:100vh;
	position: relative;

}
#top > .captionArea{
	display: inline-block;
	width: calc(100vh - (100vh - 340px));
	vertical-align: top;
	position: absolute;
	top: 0px;
	height: 100%;
	text-align: center;
	color: rgba(0, 0, 0, 0.55);
}
#top > .logo{
	position: absolute;
	top: 50%;
	left: 125px;
	width: 240px;
	transform: translateY(-50%);
}

#top > .captionArea > .wrapper {
	text-align: center;
    /* display: inline-block; */
    position: absolute;
    /* bottom: 140px; */
	top: 50%;
    left: 50%;
    width: 100%;
	transform: translate(-50%, -50%);
}
#top > .captionArea > .wrapper > .text{
	writing-mode: vertical-rl;
	display: inline;
	font-size: 145%;
	font-weight: 500;
	text-align: left;
	letter-spacing: 0.35em;
	line-height: 2.6rem;
	margin: 20px 50px 70px 50px;
}
#top > .captionArea > .wrapper > .textEn{
	text-align:left;
    display: inline-block;
    margin-bottom: 50px;

}
#top > .captionArea > .wrapper > .aLink{
	color: rgba(0, 0, 0, 0.5);
}
#top > .captionArea > .wrapper > .aLink > .onlineLink {
    display: inline;
    border: solid 0.5px;
    padding: 11px 15px 13px 15px;
	

    -webkit-transition: all 1s;
    -moz-transition: all 1s;
    -ms-transition: all 1s;
    -o-transition: all 1s;
	transition: all 1s;	
	cursor:pointer;
}


#top > .captionArea > .wrapper > .aLink > .onlineLink:hover {
    background: rgba(0, 0, 0, 0.5);
	color: #c2cfc2;
}
#top > .imageArea{
	display: inline-block;
	width: calc(100% - 420px);
	height: calc(100% - 160px);
	margin: 80px;
    margin-right: 0;
/*	margin-left:300px;	*/
	overflow: hidden;
}
/*-----------------------*/
/*  for scroll           */
/*-----------------------*/
/* 1. 全体のレイアウト */
.scrollWraper {
	/* 位置の固定 */
	position: absolute;
	bottom: 20px;
	right: 20px;

	/* 伸びるのを防ぐための指定 ★重要 */
	top: auto;          /* 上端の固定を強制解除 */
	height: auto;       /* 高さを中身（線と文字）に合わせる */
}

/* 2. スクロールを促す記号（縦線） */
.symbolWrapper {
	position: relative;
	width: 1px;             /* 線の太さ */
	height: 60px;           /* 線の長さ */
	background-color: rgba(0, 0, 0, 0.2); /* 線の色は少し薄めに */
	overflow: hidden;       /* 線からはみ出た○を隠す（好みで調整） */
	display:inline-block;
}

/* 3. 上下に動く○ */
.symbolWrapper::before {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 6px;             /* ○のサイズ */
	height: 6px;
	background-color: #000; /* ○の色はハッキリと */
	border-radius: 50%;
	
	/* アニメーションの指定 */
	animation: scrollSlide 2.2s ease-in-out infinite;
}

/* 4. テキスト（先ほどのフォント設定を活かす） */
.scrollWraper .text {
	font-size: 10px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #000;
	display:inline-block;
	margin-right: 10px;

	color: rgba(0, 0, 0, 0.6) !important;
}

.imageArea video{
	object-fit: cover;
	width: 120%;
	height: 100%;
}
/* 5. スライドアニメーションの定義 */
@keyframes scrollSlide {
	0% {
		transform: translate(-50%, 0);
		opacity: 0;
	}
	20% {
		opacity: 1;
	}
	80% {
		opacity: 1;
	}
	100% {
		/* translateYを使うことで、より滑らかな挙動になります */
		transform: translate(-50%, 50px); /* 線の長さに合わせて調整 */
		opacity: 0;
	}
}

/*----------------------------
  slideContents向けスタイル
  ----------------------------*/
.pageWrapper > .contentsWrapper > .slideContents{

    position: sticky;
    top: 0px;
    width: calc(100vw - 0px);
    height: calc(100vh - 0px);

}

.pageWrapper > .contentsWrapper > .slideContents > .contents{
	position:absolute;
	top:0;
	width:100%;
	height:calc(100vh + 1000px);
	overflow:hidden;

	background:white;
}

.defaultBrightness{
	filter: brightness(100%);
}
.pageWrapper > .contentsWrapper > .slideContents > .contents > .image{
    width: calc(100vw - 0px);
	height: calc(100vh - 0px);
	overfllow:hidden;
}

.pageWrapper > .contentsWrapper > .slideContents > .contents > .image img{
    position: absolute;
}
.pageWrapper > .contentsWrapper > .slideContents > .contents img{
    width: calc(100vw - 0px);
    height: calc(100vh - 0px);
	object-fit:cover;
	
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.imageBgColor{
	position:absolute;
	top:0;
	width: calc(100vw - 100px);
    height: calc(100vh - 100px);
	background:white;
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea{
	position:absolute;
    top: 0;
    width: 100%;
	height: calc(100vh - 0px);
	color:white;
	font-size: 80%;
	
    -webkit-transition: all 1s;
    -moz-transition: all 1s;
    -ms-transition: all 1s;
    -o-transition: all 1s;
	transition: all 1s;
}
	#slide1 > .captionArea{
		 opacity:1;
	}	
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper{
	position: absolute;
	width: 100%;
	height: 85vh;
	top: 15%;
	left:40px;
	-webkit-transition: all 2s;
	-moz-transition: all 2s;
	-ms-transition: all 2s;
	-o-transition: all 2s;
	transition: all 2s;
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper a{
	color:white;
}

.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .title{
	font-size: 300%;
    writing-mode: vertical-rl;
    vertical-align: middle;
	letter-spacing: 0.1em;
    display: inline-block;
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .title:before{
    display: inline-block;
    width: 1px;
    height: 20vh;
    background: white;
    content: " ";
    transform: translate(-80px, calc(-20vh - 20px));
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .title > .JpTxt{
    letter-spacing: 0.3rem;
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .title > .EnTxt{
	transform: translateX(10px);
    font-size: 60%;
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .text{
    display: inline-block;
    vertical-align: bottom;
	vertical-align: middle;
	font-size:120%;
	text-align: left;
	position: absolute;
	bottom: 70px;
	left: 20px;
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .text > .content{
	margin-bottom:50px;
    width: calc(100vw - 50px);
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .text .readmore{
    border: solid 0.5px;
    display: inline-block;
	padding: 10px 15px 10px 15px;
	cursor:pointer;
	
	-webkit-transition: all 1s;
    -moz-transition: all 1s;
    -ms-transition: all 1s;
    -o-transition: all 1s;
	transition: all 1s;
}
.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .text .readmore:hover{
	background:white;
	color:black;
}
.pageWrapper > .contentsWrapper > .slideContents > .contents > .guideNumber{
	position:absolute;
	top: calc(100vh - 60px);
	right: 30px;
	color:white;
	font-size:120%;
}
.pageWrapper > .contentsWrapper > .slideContents > .logo{
	width: 200px;
	position: absolute;
	top: 50px;
	left: 50px;
}
.pageWrapper > .contentsWrapper > .slideContents > .logo img{
}

#textContents{
	height:initial;
	display:inline-block;
    padding: 50px 80px;
    width: 100%;
}
#textContents > .contents{
	padding:30px 0;
    margin-bottom: 100px;
}
#textContents > .contents > .title{
	display:inline-block;
	width:200px;
	vertical-align: top;

}
#textContents > .contents > .body{
	display:inline-block;
	width:calc(100% - 220px);
    border-left: solid 0.5px black;
    padding-left: 80px;
}

#textContents > .contents > .body > .image{
	width:480px;
	display:inline-block;
	margin-right:40px;
}
#textContents > .contents > .body > .text{
    width: calc(100% - 580px);
	display:inline-block;
	vertical-align: top;
}

#textContents > .contents > .body > .text > .aLink{
	color:rgba(0, 0, 0, 0.85) !important;
}
#textContents > .contents > .body > .text > .aLink > .parts{
	margin-bottom:10px;
}
#textContents > .contents > .body > .text > .aLink > .parts > .label{
    width: 120px;
    display: inline-block;}
#textContents > .contents > .body > .text > .aLink > .parts > .text{
    width: calc(100% - 130px);
    display: inline-block;
    vertical-align: top;
}

#textContents > .contents > .body > .text > .title{
	
    width: 60%;
    /* display: inline-block; */
    vertical-align: top;
    /*writing-mode: tb-rl;*/
    margin-bottom: 40px;
}
#textContents > .contents > .body > .text > .caption{
}
#textContents > .contents > .body > .text > .caption > .works{
	margin-top: 10px;
    padding-top: 30px;
    border-top: solid 0.5px;	
}
#textContents > .contents > .body > .text > .caption > .works > .wrapper{
	margin-bottom:20px;
}
#textContents > .contents > .body > .text > .caption > .works > .wrapper > .title{
	width:100%;
	display:inline-block;
	vertical-align: top;
}
#textContents > .contents > .body > .text > .caption > .works > .wrapper > .listWrapper{
	width: calc(100%);
    padding-left: 20px;
	display:inline-block;
}

#textContents > .contents > .body > .text > .caption > .works > .wrapper > .listWrapper .list{
	position: relative;
    /* 1. 横棒20px + 隙間(例:10px) = 30px の余白を作る */
    padding-left: 10px; 
    /* 2. 1行目だけ、作った余白分マイナスして左に突き出させる */
    text-indent: -23px; 
    
    line-height: 1.8; /* 読みやすくするために行間を調整 */
	margin-bottom: 10px;
	color:black;
}
#textContents > .contents > .body > .text > .caption > .works > .wrapper > .listWrapper > .aLink > .list{
	
}
#textContents > .contents > .body > .text > .caption > .works > .wrapper > .listWrapper > .list:before{
	width:6px;
	height:1px;
	display:inline-block;
	background:black;
	content:" ";
	/* 3. 縦位置を文字の真ん中に合わせる */
    vertical-align: middle;
    /* 4. 横棒と文字の間の隙間 */
    margin-right: 10px;
}

#textContents > .contents > .body > .text > .caption > .works > .wrapper > .listWrapper > .aLink> .list:before{
	width:6px;
	height:1px;
	display:inline-block;
	background:black;
	content:" ";
	/* 3. 縦位置を文字の真ん中に合わせる */
    vertical-align: middle;
    /* 4. 横棒と文字の間の隙間 */
    margin-right: 10px;	
}
#textContents > .contents > .body video{
	width:100%;
    padding-right: 50px;
}
#news > .body > .text > .parts > .label {
    width: 120px;
	vertical-align: top;
}

#essay > .body > .text > .parts > .label {
    width: 120px;
	vertical-align: top;
}
/*-----------------------*/
/*  for concept           */
/*-----------------------*/
#concept{
	width:100vw;
	height:100%;
	position:relative;
}

#concept > .captionArea{
    text-align: left;
    width: 100%;
    height: 100%;
    padding-left: 120px;
    padding-top: 120px;
}

#concept > .captionArea > .title{
	font-size:100%;
	font-weight:300;
	margin-bottom:20px;
	width: 100%;
	display: inline-block;
	vertical-align: top;
    margin-bottom: 80px;
    margin-left: 110px;
	
	display: none;
}
#concept > .captionArea > .title img{
	width:220px;
}
#concept > .captionArea > .text{
	width: calc(100% - 36px);
	text-align: left;
	vertical-align: top;
	display: inline-block;
}
#concept > .captionArea > .JpTxt{
	/*	padding: 0 100px 0 160px;	*/
	margin-left: 100px;
    margin-bottom: 100px;
}
#concept > .captionArea > .EnTxt{
	/*	padding: 0 160px 0 100px;	*/
	margin-left: 40%;
    width: 60%;
    padding-right: 220px;
    margin-bottom: 100px;
}
#concept > .captionArea > .text > .concept{
	font-size:150%;
}

#event > .body > .text{
	width:100% !important;
}
#event > .body > .text > .parts{
	margin-bottom:15px;
}
#event > .body > .text > .parts > .label{
    width: 120px;;
	display:inline-block;
}
#event > .body > .text > .parts > .text{
	width:calc(100% - 170px);
	display:inline-block;
    vertical-align: top;
}

#news > .body > .text, #essay > .body > .text{
	width:100% !important;
}
#news > .body > .text .parts, #essay > .body > .text .parts{
	margin-bottom:15px;
}
#news > .body > .text > .aLink, #essay > .body > .text a{
	color:black;
}
#news > .body > .text .parts > .label, #essay > .body > .text .parts > .label{
	width:150px;
	display:inline-block;
}
#news > .body > .text .parts > .text, #essay > .body > .text .parts > .text{
	width:calc(100% - 170px);
	display:inline-block;
}
.formArea{
	
}
.formArea{
	
}
.formArea > .contactForm{
	
}
.formArea > .contactForm > .parts{
	margin-bottom:15px;
}
.formArea > .contactForm > .parts > .label{
	margin-bottom: 5px;
}
.formArea > .contactForm > .parts > .data{
	
}

.resultArea{
	padding-right:10%;
}

/* form parts style*/
textarea {
    width: 400px;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-appearance: none;
    border-radius: 0;
    border: 1px solid #000000;
    border-color: #dddddd;
    background-color: white !important;
    color: #555555;
    padding-bottom: 10px;
    padding-top: 10px;
    padding-left: 10px;
    margin-right: 20px;
    font-size: 12pt;
    letter-spacing: 0.1em;
    /* overflow: auto; */
    padding: 2px 6px;
    line-height: 1.42857143;
    resize: vertical;
    width: 400px;
    height: 250px;
    margin-bottom: 5px;
}


button:hover{

	/* Design */
	border-style:solid;
	border-width:0.5px;
	background-color:#ffffff !important;
	color:black !important;
	text-align:center;
	cursor:pointer;
}
button {
    display: inline-block;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 20px;
    padding-right: 20px;
    /* width: 150px; */
    border-style: solid;
    border-width: 0.5px;
    background-color: black;
    border: solid 1px #dddddd;
    color: white !important;
    text-align: center;
    transition: background-color 0.75s ease;
    transition: color 0.75s ease;
    font-size: 12pt;
    letter-spacing: 0.1em;
}

input[type="text"],
input[type="email"],
textarea{
	background: #d2d4d11f !important;
	border: solid 0.5px black !important;
}
button, [type="button"], [type="reset"], [type="submit"] {
    font-size: 80% !important;
    letter-spacing: 0.3em !important;
}

/*====================================================================================*/
/* スマフォ縦表示
/*====================================================================================*/
/* ipad pro? */
@media only screen and (max-width: 1024px) and (orientation:portrait){
	
	.pageWrapper {
		width: 100%;
		position: relative;
	}
	#top > .captionArea {
		width: calc(100%);
	}
	#top > .imageArea {
		position: absolute;
		display: inline-block;
		width: calc(100% - 60px);
		height: auto;
        bottom: 95px;
		margin: 0 30px;
		margin-right: 0;
		/* margin-left: 300px; */
		overflow: hidden;
	}
	#top > .imageArea img{
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		opacity: 0.2;
		
	}
	#top > .captionArea > .wrapper{
		color:black;
        position: initial;
        transform: initial;
	}
	#top > .captionArea > .wrapper > .aLink {
    color: rgba(0, 0, 0, 1);
	}
	#top > .captionArea > .wrapper > .aLink > .onlineLink{
		position: absolute;
		bottom: 45px;
		left: 40px;
		font-size: 90%;
		display: inline;
		border: solid 0.5px;
		padding: 5px 15px 8px 15px;
	}
	#top > .captionArea > .wrapper > .text{
		font-size: 125%;
	}
	#top > .logo {
		position: absolute;
		top: 30px;
		left: 30px;
		width: 180px;
		transform: initial;
		opacity: 0.7;
	}
	#top > .captionArea > .wrapper > .text {
		font-size: 115%;
		position: absolute;
		top: 70px;
		right: 40px;
		line-height: 2.0rem;
		/* margin-right: 50px; */
		margin: 20px 0 70px 50px;
	}
	#top > .captionArea > .wrapper > .textEn {
		text-align: left;
		display: inline-block;
		position: absolute;
		left: 40px;
        bottom: 350px;
		margin-bottom: 0;
	}
	.scrollWraper {
		position: absolute;
		bottom: 45px;
        right: 15px;
	}
	.scrollWraper .text {
		color: black !important;
	}
	.symbolWrapper::before{
	}
	.symbolWrapper {
	}
	
	#textContents > .contents > .title {
		width: 100%;
		display:block;
	}
	#textContents > .contents > .body{
		padding-left:0;
	}
	#textContents > .contents > .body {
		border-left: initial;
		width: 100%;
	}
	#textContents{
		padding: 50px 30px;
        width: 100vw;
	}
	#textContents > .contents > .body > .image {
		width: 100%;
		margin: 0;
        margin-bottom: 10px;
	}
	
	#concept {
		width: 100vw;
        height: 100%;
	}
	#concept > .captionArea{
		padding-left: 40px;
		padding-top: 60px;
        padding-right: 40px;
		position: initial;
	}
	
	#concept > .captionArea > .title{
		margin-left:0;
		margin-bottom:40px;
	}
	
	#concept > .captionArea > .title img {
		width: 160px;
	}
	#concept > .captionArea > .text{
		font-size:95%;
        width: 100%;
	}
	#concept > .captionArea > .text > .concept {
		font-size: 125%;
	}
	#concept > .captionArea > .JpTxt{
		margin:0;
        margin-bottom: 50px;
	}
	#concept > .captionArea > .EnTxt{
		margin:0;
        margin-bottom: 60px;
        width: 100%;
        padding-right: 0;
	}
	textarea{
		width:100%;
	}
	.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper{
		top: 60px;
		left: 20px;
	}
	.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .title {
		font-size: 210%;
	}
	.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .title:before{
		transform: translate(-70px, calc(-20vh - 20px));
	}
	.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .text {
		bottom: 0px;
	}	
	.pageWrapper > .contentsWrapper > .slideContents > .contents >.captionArea > .captionWrapper > .text > .content {
		width: calc(100vw - 80px);
        margin-bottom: 30px;
	}
	#event > .body > .text > .parts > .label {
		width: 100%;
	}
	
	#textContents > .contents > .body > .text{
		padding-right:0;
	}
	#textContents > .contents > .body > .text > .title {
		width: 100%;
	}
	#event > .body > .text > .parts > .text {
		width: calc(100%);
	}
	#textContents > .contents > .body > .text {
        padding-right: 0;
		width: 100%;
	}
	#news > .body > .text .parts > .label, #essay > .body > .text .parts > .label, #event > .body > .text .parts > .label  {
		width: 100%;
		vertical-align:top;
	}
	#news > .body > .text > .parts > .text, #essay > .body > .text .parts > .text, #event > .body > .text .parts > .text {
		width: 100%;
		vertical-align:top;
        overflow-wrap: break-word;
	}
	#textContents > .contents > .body > .text > .caption > .works > .title {
		width: 100%;
		margin-bottom: 10px;
	}
	#textContents > .contents > .body > .text > .caption > .works > .listWrapper {
		width: 100%;
		padding-left: 23px;
	}
	
	#textContents > .contents > .body > .text  > .parts {
			margin-bottom: 15px;
			border-bottom: solid 0.5px #cccccc;
			padding-bottom: 15px;
	}	
	#textContents > .contents > .body > .text > .aLink > .parts {
			margin-bottom: 15px;
			border-bottom: solid 0.5px #cccccc;
			padding-bottom: 15px;
	}	
	#textContents > .contents > .body > .text > .aLink > .parts > .label {
		width: 100%;
	}
	
	#textContents > .contents > .body > .text > .aLink > .parts > .text {
		width: 100%;
	}
	#textContents > .contents > .body > .text > .caption > .works > .wrapper > .listWrapper {
		width: calc(100%);
	}
}
/*====================================================================================*/
/* スマフォ　横表示
/*====================================================================================*/
@media only screen and (max-width: 1024px) and (orientation:landscape){


}

/* EndMobile */
