@charset "utf-8";

@font-face {
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 400;
	src: url('NotoSansJP-Regular-Subset.woff2') format('woff2');
}
@font-face {
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 700;
	src: url('NotoSansJP-SemiBold-Subset.woff2') format('woff2');
}

:root{
	--defaultFont:'Noto Sans JP',sans-serif;
	--defaultWeight:400;
	--boldWeight:700;
	--alphabetFont:'Jost',sans-serif;
	--mixFont:'Jost','Noto Sans JP',sans-serif;
	--textColor:#505050;

	--contentsSize:92vw;
	--contentsMaxSize:1200px;
	--contentsPadding:max(4vw,calc((100vw - var(--contentsMaxSize)) * 0.5));
}

html{
	scroll-behavior:smooth;
	scroll-padding-top:var(--headerSize);
}
body{
	overflow-x:clip;
	font-family:var(--defaultFont);
	font-weight:var(--defaultWeight);
	font-feature-settings:"palt";
	font-optical-sizing: auto;
	font-style:normal;
	margin:0;
	padding:0;
	font-size:16px;
	line-height:1.8;
	background:white;
	color:var(--textColor);
}

.contents{
	width:var(--contentsSize);
	max-width:var(--contentsMaxSize);
	margin-left:auto;
	margin-right:auto;
	position:relative;
}

@media (min-width:768px){
	.forMobile{display:none!important;}
}
@media (max-width:767px){
	.forWide{display:none!important;}
}

*,*::before,*::after{
	box-sizing:border-box;
}

img{
	height:auto;
	max-width:100%;
}











header{
	z-index:10000;
}













:root{
	--headerSize:70px;
}

.header{
	width:100%;
	height:var(--headerSize);
	position:fixed;
	left:0;
	top:0;
}
.header .contents{
	max-width:1600px;
	height:100%;
	display:flex;
	align-items:center;
}
.headerLogo{
	margin:0 auto 0 0;
}
.headerLogo h1{
	margin:0;
}
.headerLogo img{
	width:223px;
	display:block;
	filter:brightness(0) contrast(0.5);
}
@media(min-width:769px){
	.headerLogo a:hover{
		opacity:0.8;
	}
}

.headerContact{
	width:160px;
	height:50px;
	margin:0 0 0 auto;
	display:flex;
	justify-content:center;
	align-items:center;
	background:#323232;
	border:1px solid #323232;
	color:white;
	text-decoration:none;
	border-radius:6px;
}
@media(min-width:769px){
	.headerContact:hover{
		opacity:0.8;
	}
}

@media (max-width:768px){
	:root{
		--headerSize:50px;
	}
	.headerLogo{
		margin:0 auto;
	}
	.headerLogo img{
		width:186px;
	}
	.headerContact{
		display:none;
	}
}










.section{
	padding:80px 0;
}
.section.gray{
	background:#F2F2F2;
}
.section.cyan{
	background:#E7F6FD;
}
@media (max-width:768px){
	.section{
		padding:60px 0;
	}
}

.button{
	border-radius:200vw;
	display:flex;
	justify-content:center;
	align-items:center;
	font-size:20px;
	line-height:1.35;
	font-weight:var(--boldWeight);
	text-decoration:none;
}
@media(min-width:769px){
	.button:hover{
		opacity:0.8;
	}
}
.button.primary{
	color:white;
	background:#323232;
}
.button.secondary{
	color:white;
	background:#cccccc;
}
@media (max-width:768px){
	.button{
		font-size:18px;
	}
}







.subpageHeader{
	margin-top:calc(50px + var(--headerSize));
	padding:70px 0;
}
.subpageHeaderTitle{
	margin:0;
	text-align:center;
	white-space:nowrap;
	font-size:70px;
	font-weight:500;
	font-family:var(--alphabetFont);
	color:#65A9C7;
	line-height:1;
}
.subpageHeaderMessage{
	margin-top:20px;
	text-align:center;
	font-size:20px;
}
@media (max-width:768px){
	.subpageHeader{
		margin-top:calc(0px + var(--headerSize));
		padding:60px 0;
	}
	.subpageHeaderTitle{
		font-size:50px;
		line-height:1;
	}
	.subpageHeaderMessage{
		margin-top:15px;
		font-size:16px;
	}
}












.contactTel .contents{
	display:flex;
	justify-content:center;
}

.contactTelLink{
	display:flex;
	justify-content:center;
	align-items:center;
	flex-direction:column;
	color:var(--textColor);
	text-decoration:none;
	gap:12px;
}
@media(min-width:769px){
	.contactTelLink:hover{
		opacity:0.8;
	}
}
.contactTelLink > span:nth-of-type(1){
	font-size:24px;
	line-height:1.5;
}
.contactTelLink > span:nth-of-type(2){
	font-size:34px;
	line-height:1;
	white-space:nowrap;
	font-family:var(--alphabetFont);
	font-weight:500;
}
.contactTelLink > span:nth-of-type(3){
	font-size:18px;
	line-height:1.5;
}
@media (max-width:768px){
	.contactTelLink > span:nth-of-type(1){
		font-size:20px;
		line-height:1.5;
	}
	.contactTelLink > span:nth-of-type(2){
		font-size:30px;
		line-height:1;
	}
	.contactTelLink > span:nth-of-type(3){
		font-size:16px;
		line-height:1.5;
	}
}

.contactHeader{
	text-align:center;
	font-size:24px;
	line-height:1.5;
	display:flex;
	justify-content:center;
	align-items:center;
	flex-direction:column;
}
.contactHeader img{
	display:block;
	margin-bottom:12px;
}
@media (max-width:768px){
	.contactHeader{
		font-size:20px;
	}
}

.contactForm{
	margin:60px auto 0 auto;
	width:1000px;
	max-width:100%;
	--rowHeight:60px;
}
.contactForm p{
	margin:0;
	display:contents;
}
.contactFormRow{
	display:flex;
	align-items:flex-start;
	gap:15px;
	width:100%;
}
.contactFormRow:not(:first-child){
	margin-top:20px;
}
.contactFormRow.wideMargin{
	margin-top:40px;
}
.contactFormHeader{
	font-size:18px;
	line-height:1;
	white-space:nowrap;
	width:calc(7em + 44px + 10px);
	flex-shrink:0;
	position:relative;
}
.contactFormHeader .required{
	width:auto;
	max-width:44px;
	padding:0 0.3em;
	height:20px;
	font-size:14px;
	line-height:20px;
	font-weight:bold;
	background:#65A9C7;
	color:white;
	display:inline-block;
	text-align:center;
	position:absolute;
	right:0;
}
.contactFormHeader.oneLine{
	padding-top:calc((var(--rowHeight) - 18px) * 0.5);
}
.contactFormColumn{
	width:100%;
}
.contactForm input[type="text"],
.contactForm input[type="email"],
.contactForm input[type="tel"]{
	appearance:none;
	width:100%;
	height:var(--rowHeight);
	padding:0 1em;
	font-size:18px;
	line-height:1;
	border:none;
	border-radius:0;
	outline-color:#65A9C7;
}
.contactForm textarea{
	appearance:none;
	width:100%;
	height:calc(var(--rowHeight) * 3);
	padding:1em;
	font-size:18px;
	line-height:1.8;
	border:none;
	border-radius:0;
	outline-color:#65A9C7;
}
.contactForm .wpcf7-checkbox{
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:15px;
}
.contactForm .wpcf7-list-item{
	display:block;
	margin:0;
}
.contactForm label{
	display:flex;
	align-items:center;
	font-size:18px;
}
.contactForm input[type="checkbox"],.contactForm input[type="radio"]{
	margin:0;
	border:1px solid #dcdcdc;
	border-radius:0;
	width:20px;
	height:20px;
	margin-right:20px;
}
.contactFormButtons{
	position:relative;
}
.contactFormButtons .wpcf7-submit{
	margin:60px auto 0 auto;
	width:350px;
	height:80px;
	appearance:none;
}
.wpcf7 form .wpcf7-response-output{
	border:0 !important;
	margin:0 !important;
	padding:0 !important;
	text-align:center;
	font-size:18px;
	line-height:1.8;
}
.wpcf7 form.invalid .wpcf7-response-output{
	color:#dd3000;
}

.contactSubmittedMessage{
	text-align:center;
	font-size:20px;
}

@media (max-width:768px){
	.contactForm{
		margin-top:45px;
		--rowHeight:50px;
	}
	.contactFormRow{
		flex-direction:column;
		gap:10px;
	}
	.contactFormRow:not(:first-child){
		margin-top:15px;
	}
	.contactFormRow.wideMargin{
		margin-top:30px;
	}
	.contactFormHeader{
		font-size:16px;
		line-height:1;
		width:100%;
	}
	.contactFormHeader.oneLine{
		padding-top:0;
	}
	.contactForm input[type="text"],
	.contactForm input[type="email"],
	.contactForm input[type="tel"]{
		padding:0 0.5em;
		font-size:16px;
	}
	.contactForm textarea{
		padding:0.3em 0.5em;
		font-size:16px;
		line-height:1.5;
	}
	.contactForm .wpcf7-checkbox{
		display:flex;
		flex-direction:column;
		align-items:flex-start;
		gap:10px;
	}
	.contactForm .wpcf7-list-item{
		display:block;
		margin:0;
	}
	.contactForm label{
		display:flex;
		align-items:center;
		font-size:16px;
	}
	.contactForm input[type="checkbox"],.contactForm input[type="radio"]{
		margin:0;
		border:1px solid #dcdcdc;
		border-radius:0;
		width:20px;
		height:20px;
		margin-right:20px;
	}
	.contactFormButtons{
		position:relative;
	}
	.contactFormButtons .wpcf7-submit{
		margin-top:30px;
		width:270px;
		height:60px;
	}
	.wpcf7 form .wpcf7-response-output{
		font-size:16px;
		line-height:1.8;
	}
	.contactSubmittedMessage{
		text-align:center;
		font-size:18px;
	}
}























































/* 以下テザー専用 */

.firstView{
	width:100%;
	min-height:100lvh;
	position:relative;
	overflow:hidden;
}
.firstViewBackground{
	display:block;
	position:absolute;
	width:100%;
	height:100%;
	left:0;
	top:0;
	object-fit:cover;
	object-position:center top;
}
.firstView .contents{
	margin:0 auto;
	min-height:100svh;
	display:flex;
	align-items:center;
	justify-content:flex-end;
	flex-direction:column;
	padding-bottom:6%;
}
.firstViewTitle{
	margin:0;
	text-align:center;
	white-space:nowrap;
	color:#65A9C7;
	font-family:var(--alphabetFont);
	font-style:normal;
	font-weight:500;
	font-size:70px;
	line-height:1;
}
.firstViewSubtitle{
	margin-top:20px;
	text-align:center;
	white-space:nowrap;
	font-family:var(--alphabetFont);
	font-weight:300;
	font-size:18px;
	line-height:1;
}
.firstViewMessage{
	margin-top:30px;
	width:100%;
	text-align:center;
	font-size:20px;
	line-height:2.25;
}
@media (max-width:768px){
	.firstView{
		min-height:157.6vw;
	}
	.firstView .contents{
		min-height:157.6vw;
	}
	.firstView .contents{
		padding-bottom:25%;
	}
	.firstViewTitle{
		font-size:12vw;
		line-height:1;
	}
	.firstViewSubtitle{
		margin-top:0.8em;
		font-size:3.2vw;
		line-height:1;
	}
	.firstViewMessage{
		margin-top:30px;
		font-size:15px;
		line-height:1.8;
	}
}



.aboutTitle{
	margin:0;
	text-align:center;
	white-space:nowrap;
	font-weight:var(--boldWeight);
	font-size:32px;
}
.aboutMovie{
	margin:45px auto 0 auto;
	width:800px;
	max-width:100%;
	height:auto;
	position:relative;
}
.aboutMovie > iframe{
	width:100% !important;
	height:100% !important;
	position:absolute;
	left:0;
	top:0;
}
.aboutMessageHeader{
	margin-top:30px;
	text-align:center;
	font-size:24px;
	font-weight:var(--boldWeight);
}
.aboutMessage{
	margin-top:20px;
	text-align:center;
	font-size:20px;
}
.aboutContact{
	margin:60px auto 0 auto;
	width:350px;
	max-width:100%;
	height:80px;
}
@media (max-width:768px){
	.aboutTitle{
		white-space:normal;
		font-size:22px;
	}
	.aboutMovie{
		margin-top:30px;
	}
	.aboutMessageHeader{
		margin-top:15px;
		font-size:22px;
	}
	.aboutMessage{
		margin-top:15px;
		font-size:15px;
	}
	.aboutContact{
		margin-top:30px;
		width:270px;;
		height:60px;
	}
}



.teaserFooter{
	padding:70px 0;
}
.teaserFooter .contents{
	position:relative;
}
.teaserFooterLogo{
	width:223px;
	margin:0 auto;
	display:block;
}
.teaserFooterAddress{
	margin-top:15px;
	font-size:16px;
	line-height:2.25;
	text-align:center;
}
.teaserFooterCredit{
	margin-top:15px;
	text-align:center;
	font-size:12px;
	font-family:var(--alphabetFont);
	font-weight:300;
}
.teaserFooterSNS{
	position:absolute;
	right:0;
	bottom:0;
	display:flex;
	gap:15px;
}
.teaserFooterSNS a,
.teaserFooterSNS a > svg{
	width:34px;
	height:34px;
	display:block;
	color:var(--textColor);
}
@media(min-width:769px){
	.teaserFooterSNS a:hover{
		opacity:0.8;
	}
}

@media (max-width:768px){
	.teaserFooter{
		padding:50px 0;
	}
	.teaserFooterLogo{
		width:186px;
	}
	.teaserFooterAddress{
		margin-top:15px;
		font-size:16px;
		line-height:1.8;
	}
	.teaserFooterCredit{
		margin-top:15px;
	}
	.teaserFooterSNS{
		margin-top:15px;
		position:relative;
		right:auto;
		bottom:auto;
		justify-content:center;
	}
	.teaserFooterSNS a,
	.teaserFooterSNS a > svg{
		width:34px;
		height:34px;
	}
}







