@charset "utf-8";
/* CSS Document */
html { scroll-behavior: smooth;}
html,body{
	font-family: 'Noto Serif JP', serif;
	font-size:16px;
	font-weight: 400;
	line-height: 1.5em;
	padding:0;
	margin: 0;
	background: #FCFCFA;
    transition: background-color 0.4s ease;
}
@media screen and (max-width: 860px) {
    html,body{
        font-size:14px;
    }
    .spsub{
        font-size:12px!important;
    }
}

img {
	max-width: 100%;
}
.gothic{font-family: 'Noto Sans JP', sans-serif;}
.mincho{font-family: 'Noto Serif JP', serif;}
.pc{display: block!important;}
.sp{display: none!important;}
::placeholder{
	color:#ccc;
}
.spicon{display: none;}
a{
	color:#000000;
	text-decoration: none;
}
a:hover{
	opacity: 0.7;
}
h1{
	font-size:20px;
	font-weight:600;
	color:#000000;
	line-height: 22px;
}
h2{
	font-size:26px;
	font-weight: 400;
	color:#000000;

}
h1.link{
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
	line-height: inherit;
}
.vt h2{
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
	line-height: inherit;
}
.main{
	width:1000px;
	margin:0 auto;
	height:auto;
	overflow:hidden;
}
.header {
	position:fixed;
	width:100%;
	height:80px;
	padding:0 30px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	z-index: 100;
	background: #FCFCFAcc;
}
.spacer_head{
	height:80px;
}
.spacer_title{
	height:50px;
}
@media screen and (max-width: 860px) {
    .spacer_title{
        height:150px;
    }
}
.hero{
	zoom:0.7;
	margin:20px auto 0;
}
@media screen and (max-width: 860px) {
    .hero{
        zoom:0.5;
        margin:20px auto 0;
        max-width: calc(100% - 20px);
    }
}
.hero2{
	zoom:0.5;
	margin:20px 0 0;
	float:left;
}
.hero3{
	zoom:0.5;
	margin:20px 0 0;
	float:right;
}

.pic_description {
	font-size:14px;
	margin:-12em 0 0;
    padding-bottom: 12em;
}


.inner {
	width:860px;
	margin:0 auto;
    height: auto;
    overflow: hidden;
}
section{
	margin:150px 0 0;
	height: auto;
	overflow: hidden;
	position: relative;
}
.link{
	width:137px;
	border-bottom: 1px solid #000000;
	padding:8px 0;
}
.link.concept{
	float:right;
}

.vt{
	writing-mode: vertical-rl;
	font-size:24px;
	line-height: 1.6em;
	padding: 30px 40px;
    width:auto;
}
@media screen and (max-width: 860px) {
	.vt{
		padding: 10px 10px;
        font-size:19px;
	}
}
.contact_txt{
	margin: 100px auto;
	width:580px;
    line-height: 2.5em;
}
@media screen and (max-width: 860px) {
	.contact_txt{
        width:calc(100% - 70px);
        max-width:500px;
        line-height: 1.6em;
	}
}

.btn_mail{
	max-width:416px;
	display: block;
	margin:50px auto;
	padding:0 20px;
}
@media screen and (max-width: 860px) {
	.btn_mail{
		max-width:416px;
		display: block;
		margin:50px auto;
		padding:0;
	}
}
.vt .sub{
	margin-right: 1em;
	font-size: 16px;
	line-height: 1.4em;
}
.spc5{letter-spacing: 5px;}
.spc8{letter-spacing: 8px;}
.mgt50{
	margin-top: 50px;
}
.movie{
	width:100%;
	aspect-ratio: 16 / 9; /* ← 高さは自動で決まる */
	display: flex;
	justify-content: center;
	align-items: center;
}
@media screen and (max-width: 860px) {
    .movie{
        width:100%;
        aspect-ratio: 720 / 1000; /* ← 高さは自動で決まる */
        display: flex;
        justify-content: center;
        align-items: center;
    }
}
.floatright{
	float:right;
}
@media screen and (max-width: 860px) {
    .floatright{
        float:right;
    }
    .spright{
        width:calc(100% - 90px)!important;
    }
}
.floatleft{
	float:left;
}

.photography {
	position:absolute;
	bottom:100px;
	right:300px;
}

.film {
	position:absolute;
	bottom:0px;
	left:0px;
}

.centertxt{
	text-align: center;
}
.centerimg{
    display: block;
    margin:0 auto;
}
.centerbox{
    margin:0 auto;
}
h2.ft{
	font-size:13px;
}
h3.ft{
	margin-top: 10px;
	font-size:15px;
}
@media screen and (max-width: 860px) {
	h2.ft{
		font-size:13px;
	}
	h3.ft{
		margin-top: 10px;
		font-size:16px;
	}
}
.cpt01{
    zoom:0.5;
    margin-top: 200px;
}
@media screen and (max-width: 860px) {
    .cpt01{
        zoom:0.5;
        display: block;
        margin: 150px auto 0;
        max-width: 100%;
        
    }
}
@media screen and (max-width: 860px) {
	.pc{display: none!important;}
	.sp{display: block!important;}
	h1{
		font-size:18px;
		font-weight:600;
		color:#000000;
		line-height: 20px;
	}

	.main{
		width:100%;
		padding:0 10px;
	}
	.inner{
		width:100%;
		padding:0 10px;
	}
	.pic_description {
		margin:60px 0 0;
        padding-bottom: 0;
	}
	.photography {
/*
		position:absolute;
		top:0px;
		left:0px;
*/
        margin-top:-440px;   
		bottom:auto;
		right:auto;
	}
	.hero2{
		zoom:0.5;
		margin:20px auto 0;
		float:none;
	}
	.hero3{
		zoom:0.5;
		margin:20px auto 0;
		float:none;
        width:100%;
	}
	.film {
		position:absolute;
		top:0px;
		bottom:auto;
		left: max(calc((100% - 352px) / 2), 10px); 
	}    
}
.txtbox {
    margin-top: 200px;
    width:580px;
    line-height: 2.5em;
}
@media screen and (max-width: 860px) {
    .txtbox {
        margin: 150px auto 150px;
        width:calc(100% - 70px);
        max-width:500px;
        line-height: 1.6em;
    }

}
.cpt02{
    zoom:0.5;
}
@media screen and (max-width: 860px) {
    .cpt02{
        display: block;
        margin: 200px auto 0;
    }
}
.zerotop{
    padding-top: 0;
}
.mzero{
	margin-top: 0;
}
.left{
    width:300px;
}
.padtop {
    padding-top: 200px;
}
@media screen and (max-width: 860px) {
    .padtop {
        padding-top: 100px;
    }
}
.cpt03 {
    zoom:0.5;
    float: left;
}
@media screen and (max-width: 860px) {
    .cpt03 {
        width:100%;
        margin: 200px auto 50px;
    }
}
.footinfo {
    width:700px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin:50px auto 0;
}
@media screen and (max-width: 860px) {
	.footinfo {
		width:100%;
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		flex-flow: column;
		margin:50px auto 0;
		gap:50px;
	}
}
.office {
    width:500px;
    line-height: 2.2em;
}
@media screen and (max-width: 860px) {
	.office {
		width:100%;
		text-align: left;
	}
}
.footmenu {
    width:200px;
    line-height: 2.5em;
}
@media screen and (max-width: 860px) {
	.footmenu {
		width:100%;
		line-height: 2.5em;
	}
}
.footer {
	height:100vh;
	display: flex;
	align-items: center;
}
body.footer-visible {
  background-color: #ddd8d0!important;
}

.film01 {
    zoom:0.5;
    margin-top: 200px;
}
.about01{
    zoom:0.5;
}
.about02 {
    zoom:0.5;    
}

.about03 {
    zoom:0.5;    
}
@media screen and (max-width: 860px) {
    .film01 {
        display: block;
        margin:0 auto;
    }
    .about01{
        
    }
    .about02 {

    }

    .about03 {

    }
}
.photo{
	margin:80px 0;
}
.logo{
    width:120px;
}
.ftlogo{
    width:100px;
}
.ftwrap {
    
}
@media screen and (max-width: 860px) {
    .ftwrap {
        max-width:  350px;
        margin:0 auto;
    }
    .snslink{
        width:100%;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        gap:30px;
    }
    .catchsp {
        margin:150px 0 100px;
    }
}
.sptitle{
    display: none;
}
@media screen and (max-width: 860px) {
    .sptitle{
        display: flex;
        width:354px;
/*        max-width:500px;*/
        margin: 0 auto;
        justify-content: flex-start;

    }
    
    .rightsp {
        justify-content: flex-end;
        
    }
}
.venue{
    font-size:15px;
    line-height: 2em;
}


.kaijotit {
    font-size:19px;
}

.kaijo {
    text-align: center;
    padding:50px 0;
    line-height: 2.5em;
}

.venues {
    font-size: 24px;
}

.area {
    width:132px;
    fonr-size:19px;
    display: flex;
    justify-content: center;
    align-items: center;
    border:1px solid #999;
    margin:10px auto;
    line-height: 1.8em;
}

.faqmenu {
    margin:0;
    list-style-type: disc;
    list-style-position: outside;
    text-indent: -5px;
    padding-left: 2em;
    line-height: 2.5em;
    color:#ccc;
    float:left;
    width:200px;
}
.faqmenu li {
    cursor: pointer;
}
.faqmenu li.active {
    color:#000;
}
@media screen and (max-width: 1000px) {
    .faqmenu{
        float:none;
        display: flex;
        justify-content: center;
        align-items: center;
        gap:10px 50px;
        flex-wrap: wrap;
        width:100%;
        max-width: 350px;
        margin: 0 auto;
        
    }
}

.faq {
    width:100%;
    height: auto;
    overflow: hidden;
    padding:100px 0;
    position: relative;
}

.faq-item {
    border-bottom: 1px solid #666;
}

.q-tit {
    width:100%;
    height:80px;
    display: flex;
    align-items: center;
    position: relative;
    padding-right: 2em;
    box-sizing: border-box;
    cursor: pointer;
}
.q-tit::after {
    content: "＋";
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2em;
}
.q-tit.open::after {
    content: "－";
}

.list {
    width:535px;
    height:auto;
    overflow: hidden;
    margin:0px 0 0 auto;
}
@media screen and (max-width: 1000px) {
    .list {
        max-width:535px;
        width:100%;
        position: relative;
        margin:0 auto;
        top:0;
    }
}

.list-group {
    display: none;
}
.list-group.active {
    display: block;
}

.q-ans {
    display: none;
    padding: 1em 2em;
    line-height: 2.2em;

}
