/*====================================================================================*/
/* Common
/*====================================================================================*/
body{
	margin:0;
}
.pageWrapper{
	width: 100%;
	position:relative;
}
.pageWrapper > .contents{
}

/*---------------------*/
/* for top style       */
/*---------------------*/
#top{
	position: relative;
	width:100vw;
	height:100vh;
}
#top > .image{
	position:relative;
    width: 100%;
    height: 100%;
}
#top > .image img{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	object-fit:cover;
	
	
}
#top > .copy{
	position:absolute;
	top:50%;
	right:100px;
    transform: translateY(-45%);
}
#top > .copy > .text{
	writing-mode: vertical-rl;
    font-size: 24pt;
    letter-spacing: 1.8rem;
    line-height: 1.8em;
    color: white;
    text-align: right;
}
#top > .copy > .text > .first{
	padding-bottom: 63px;
}
#top > .copy > .text > .second{
	
}
#top > .logo{
	position:absolute;
	top:30px;
	left:30px;
	width:200px;
}
#top > .logo img{
	width:100%;
}

/* for slide start*/
#top > .image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    
    /* フェード設定 */
    opacity: 0;
    visibility: hidden;
    transition: opacity 1.5s ease-in-out, visibility 1.5s ease-in-out;
    z-index: 1;
}

/* 表示時のスタイル */
#top > .image img.active {
    opacity: 1;
    visibility: visible;
    z-index: 2;
}

/* インジケーターのスタイル（前回の記述と同じ） */
.indicator {
    position: absolute;
    bottom: 40px;
    right: 40px;
    z-index: 10;
    display: flex;
    gap: 12px; /* 円が小さくなった分、間隔を 15px -> 12px に微調整 */
}

/* ★ 24px の 75% である 18px に変更 */
.indicator-item {
    width: 18px;
	height: 18px;
	cursor: pointer; /* ★ここに追加 */
}

/* SVG表記などはそのまま */
.circle-svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.circle-bg {
    fill: none;
    stroke: rgba(255, 255, 255, 0.3);
    stroke-width: 1.5; /* 円が小さくなった分、線の太さを少し調整したい場合はここを微調整 */
}

.circle-bar {
    fill: none;
    stroke: #ffffff;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
}

.indicator-item.active .circle-bar {
    animation: circleProgress 6s linear forwards;
}

@keyframes circleProgress {
    0% { stroke-dashoffset: 100; }
    100% { stroke-dashoffset: 0; }
}
/* for slide end */
#concept{
	padding: 180px 260px;
	width: 100%;
	box-sizing: border-box;
	text-align:left;
}

#concept > .copy{
/*	display:inline-block;	*/
	text-align:left;
	margin-bottom: 160px;
	line-height: 4.0em;
	letter-spacing: 0.4em;
}
#concept > .copy > .main{
	font-size: 22pt;
}
#concept > .copy > .sub{
	font-size: 15pt;
}
#concept > .captionArea{
	display:inline-block;
	text-align: justify;
	word-break: break-all;
	line-break: strict;
}
#product{
	padding:0 80px;
}
#news{
	padding:0 80px;
	box-sizing:border-box;
    margin-bottom: 120px;
}
#news > .title{
	display:inline-block;
    vertical-align: top;
	width:175px;
}
#news > .title > .main{
}
#news > .title > .sub{
	font-size:8pt;
}
#news > .body{
	display:inline-block;
	width:calc(100% - 185px);
	box-sizing:border-box;
}
#news > .body > .listWrapper{
}
#news > .body > .listWrapper > a{
	text-decoration:none;
	color:black;
}

#news > .body > .listWrapper .item{
	margin-bottom:10px;
}
#news > .body > .listWrapper .item > .date{
	display:inline-block;
	width:120px;
}
#news > .body > .listWrapper .item > .text{
	display:inline-block;
	width:calc(100% - 130px);

}
/* schedule */
#schedule{
	padding:0 80px;
	box-sizing:border-box;
    margin-bottom: 120px;
}
#schedule > .title{
	display:inline-block;
    vertical-align: top;
	width:175px;
}
#schedule > .title > .main{
}
#schedule > .title > .sub{
	font-size:8pt;
}
#schedule > .body{
	display:inline-block;
	width:calc(100% - 185px);
	box-sizing:border-box;
}
#schedule > .body > .listWrapper{
}
#schedule > .body > .listWrapper > a{
	text-decoration:none;
	color:black;
}

#schedule > .body > .listWrapper .item{
	margin-bottom:10px;
}
#schedule > .body > .listWrapper .item > .date{
	display:inline-block;
	width:120px;
}
#schedule > .body > .listWrapper .item > .text{
	display:inline-block;
	width:calc(100% - 130px);

}
#contact{
	padding:0 80px;
	box-sizing:border-box;
    margin-bottom: 120px;
}
#contact > .title{
    display: inline-block;
	width:150px;
	vertical-align:top;
}
#contact > .title > .main{
}
#contact > .title > .sub{
	font-size:8pt;
}
#contact > .body{
    display: inline-block;
	width:calc(100% - 160px);
	box-sizing:border-box;
}

.readMoreBtnWrapper{
	width:100%;
	text-align:right;
}
.readMoreBtn{
	display: inline-block;
	cursor: pointer;
	padding: 5px 10px;
	border: solid 1px;
}
/*_ form style_*/
.contactForm{
	
}
.contactForm > .item{
	margin-bottom:20px;
}
.contactForm > .item > label{
	display:inline-block;
	width:200px;
    vertical-align: top;
}
input[type="text"],input[type="email"] {
    background: rgb(255, 255, 255, 0.5);
    border: 0.5px solid;
	padding: 10px;padding: 10px;
    font-family: "YakuHanMP", "Zen Old Mincho", "Hiragino Mincho ProN", "MS Mincho", serif;
    letter-spacing: 0.2rem;
}
textarea {
    background: rgb(255, 255, 255, 0.5);
    padding: 5px;
    width: 480px;
    height: 280px;
    border: solid 0.5px;
	box-sizing: border-box;
}
button {
    padding: 15px 23px;
    letter-spacing: 0.15em;
    background: white;
    border: solid 0.5px;
    color: black;
    cursor: pointer;
    font-family: "YakuHanMP", "Zen Old Mincho", "Hiragino Mincho ProN", "MS Mincho", serif;
}
/*====================================================================================*/
/* スマフォ縦表示
/*====================================================================================*/
@media only screen and (max-width: 1024px) and (orientation:portrait){
	
	.pageWrapper {
	}
	/* concept */
	#concept {
		padding: 40px;
	}
	#concept > .copy {
		margin-bottom: 40px;
	}
	#concept > .copy > .main {
        font-size: 15.5pt;
        letter-spacing: 0.1em;
	}
	/* contact */
	#contact {
		padding: 0 40px;
	}
	
	#contact > .body {
		width: 100%;
	}
	#news {
		padding: 0 40px;
	}
	#news > .title {
		width: 100%;
		width: 100%;
        margin-bottom: 20px;
        line-height: 2;
	}
	#news > .body {
		width: 100%;
	}
	#news > .body > .listWrapper{
		
	}
	#news > .body > .listWrapper .item {
		margin-bottom: 10px;
		padding-bottom: 10px;
		border-bottom: solid 0.5px #CCCCCC;
	}
	
	#news > .body > .listWrapper .item > .date {
		width: 100%;
	}
	#news > .body > .listWrapper .item > .text {
		width: 100%;
	}
	
	#schedule {
		padding: 0 40px;
	}
	#schedule > .title {
		width: 100%;
		width: 100%;
        margin-bottom: 20px;
        line-height: 2;
	}
	#schedule > .body {
		width: 100%;
	}
	#schedule > .body > .listWrapper{
		
	}
	#schedule > .body > .listWrapper .item {
		margin-bottom: 10px;
		padding-bottom: 10px;
		border-bottom: solid 0.5px #CCCCCC;
	}
	
	#schedule > .body > .listWrapper .item > .date {
		width: 100%;
	}
	#schedule > .body > .listWrapper .item > .text {
		width: 100%;
	}
	.contactForm > .item > label {
		width: 100%;
	}
	#contact > .title {
		width: 150px;
		margin-bottom: 30px;
	}
	textarea {
		width: 100%;
	}
}
/*====================================================================================*/
/* スマフォ　横表示
/*====================================================================================*/
@media only screen and (max-width: 1024px) and (orientation:landscape){


}

/* EndMobile */
