@charset "utf-8";

/* noto-serif-jp-regular - japanese */
@font-face {
	font-family: 'Noto Serif JP';
	font-style: normal;
	font-weight: 400;
	src: local(''),
		 url('fonts/noto-serif-jp-v21-japanese-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
		 url('fonts/noto-serif-jp-v21-japanese-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
	font-display: swap;
}
/* eb-garamond-regular - latin */
@font-face {
	font-family: 'EB Garamond';
	font-style: normal;
	font-weight: 400;
	src: local(''),
		 url('fonts/eb-garamond-v26-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
		 url('fonts/eb-garamond-v26-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
	font-display: swap;
}

/* default style
----------------------------------------------------------- */
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,p,blockquote,
span, object, a, address,  cite, em,  img, ins, q,  strong,  tt, label,
table, caption, tbody, tfoot, thead{
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 1em;
	vertical-align: baseline;
	background: transparent;
}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
li{list-style:none;}
h1,h2,h3,h4,h5,h6, small{font-size:100%;font-weight:normal;}

/* Global */
:root {
	--main-color: #504450;
}
:root {
	--sub-color: #FFFAFA;
}
:root {
	--font-color: #504450;
}
body {
	font-family: 'EB Garamond', 'Noto Serif JP', serif;
	font-display: swap;
	letter-spacing: .06em;
	font-weight: 500;
	font-size: 14px;
	line-height: 2.4;
	-webkit-font-smoothing: antialiased;
	font-feature-settings: "palt";
	color: var(--font-color);
	background-color:#FFF;
	margin: 0;
	padding: 0;
}
img {
	max-width: 100%;
}
a:link {
	color: var(--main-color);
	text-decoration: none;
	transition: .3s;
}
a:hover {
	color: #ab2a2a;
}
a:visited {
	color: #ab2a2a;
	text-decoration: none;
}
span.red{
	color: #D33;
}
/* 画面外にいる状態 */
.fadein {
	opacity : 0;
	transform : translate(0, 50px);
	transition : all 500ms;
}
/* 画面内に入った状態 */
.fadein.scrollin {
	opacity : 1;
	transform : translate(0, 0);
}
.cf{
	clear: both;
}
h2{
	font-size: 26px;
	font-weight: 400;
	text-align: center;
	margin: 0 0 70px 0;
}
h2::after{
	content:"";
	display:block;
	width:80px;
	height:3px;
	background-color: var(--font-color);
	bottom:0;
	margin: 0 auto;
	border-radius: 6px;
}

::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}
::-webkit-scrollbar-thumb {
	background: var(--main-color);
}
/* Firefox用スクロールバー */
html{
	scrollbar-width: thin;
	scrollbar-color: var(--main-color) #FFF;
}
br.br_sp{
	display: none;
}


/* Navigation */

#header {
	position:fixed;
	top: 0;
	width: 100%;
	height: 80px;
	background-color: #FFF;
	z-index: 999;
}
#header_inner{
	width: 100%;
	max-width: 1600px;
	margin: 0 auto;
}
#logo{
	width: 60px;
	margin: 12px 0 12px 2%;
	float: left;
}
#logo a{
	display: block;
	line-height: 0;
}
.logo_sp{
	display: none;
}
#nav-toggle{
	display: none;
}
#nav {
	text-align: right;
	margin: 20px 30px 0 0;
	float: right;
}
.navigation{
	float: right;
	list-style: none;
	margin: 0;
}
.navigation li{
	float: left;
	padding:0 0 0 45px;
}
.navigation li a{
	font-size: 16px;
	color: var(--main-color);
	position: relative;
	display: inline-block;
	transition: .3s;
}
.navigation li a::after {
	position: absolute;
	bottom: 0;
	left: 50%;
	content: '';
	width: 0;
	height: 1px;
	background-color: #ab2a2a;
	transition: .3s;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}
.navigation li a:hover::after {
	width: 100%;
}
.navigation li a:hover{
	color: #ab2a2a;
}
.navigation .active{
	cursor:pointer;
	color: #ab2a2a;
}


/* Topimg */

#topimg{
	width: 100%;
	height: 100vh;
	margin: auto;
	background-image: url("img/main_img.webp");
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	background-attachment: fixed;
	align-items: center;
	text-align: center;
	display: flex;
}
.topimg_inner{
	width: fit-content;
	margin: auto;
}
.topimg_inner h1{
	font-size: 32px;
	font-weight: bold;
	color: #FFF;
	text-shadow: 1px 1px 1px #111;
}
.marker{
	background: linear-gradient(transparent 70%, #fcd0d7 0%);
	font-size: 110%;
}


/* Intro */

#intro{
	width:100%;
	background-color: #FFF;
	padding: 15% 0 15%;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
}
.intro_inner{
	width: 98%;
	max-width: 1600px;
	margin: 0 auto 0;
	display: flex;
	justify-content: space-around;
	flex-direction: row;
	text-align: center;
}
.intro_inner h1{
	font-size: 24px;
}


/* About */

#about{
	width:100%;
	padding: 10% 0 15%;
	justify-content: center;
	align-items: center;
	background-color: var(--sub-color);
}
.about_inner{
	width: 100%;
	max-width: 1600px;
	margin: 100px auto 0;
	display: flex;
	justify-content: center;
}
.about_inner p{
	margin: 25px 0;
	font-size: 16px;
}
.about_inner_left{
	width: 46%;
	margin: 0 auto;
	padding: 0 2% 0;
}
.about_inner_right{
	width: 46%;
	margin: 0 auto;
	padding: 0 2% 0;
}
.video-wrap {
    width: 100%;
    max-width: 900px;   /* 任意 */
    margin: 0 auto;     /* 任意 */
  }
  .video-wrap iframe {
    width: 100%;
    aspect-ratio: 16 / 9;  /* 比率だけ指定 */
    height: auto;          /* ブラウザが高さを自動計算 */
    border: 0;
  }
#buy-link { 
	display:none; 
	margin-top:60px; 
	text-align: center;
}
a.button {
	background:#ff5c5c; 
	color:#fff; 
	padding:20px 32px;
	border-radius:10px; 
	text-decoration:none;
	font-size: 28px;
}


/* Voice */

#voice{
	width:100%;
	padding: 10% 0 15%;
	background-color: #FFF;
}
.voice_inner{
	width: 100%;
	max-width: 1200px;
	margin: 0 auto 0;
	padding: 0;
}
.voice_box{
	margin: 50px auto 50px;
	padding: 0 0 50px;
	width: 96%;
	border-bottom: 1px solid #504450;
	display: flex;
	justify-content: center;
	align-items: center;
}
.voice_icon{
	width: 6%;
	margin: 0 auto 0;
	padding: 0 2% 0;
}
.voice_content{
	width: 86%;
	padding: 0 2% 0;
	line-height: 1.8;
}


/* Gallery */

#gallery{
	width:100%;
	padding: 10% 0 15%;
	background-color: var(--sub-color);
}
.gallery_inner{
	width: 100%;
	padding: 0;
	display: flex;
	justify-content: center;
}
.gallery_inner h2{
	margin: 0 0 40px 0;
	text-align: center;
}
.gallery_inner ul{
	width: 100%;
	max-width: 1400px;
	margin: 60px auto 0;
	display: flex;
	flex-wrap: wrap;
}
.gallery_inner ul li{
	width: 28%;
	margin: 2.65%;
	border-radius: 12px;
	overflow: hidden;
}
.gallery_inner ul li a{
	display: block;
	line-height: 0;
}
.gallery_inner ul li img{
	-moz-transition: -moz-transform 0.3s linear;
	-webkit-transition: -webkit-transform 0.3s linear;
	-o-transition: -o-transform 0.3s linear;
	-ms-transition: -ms-transform 0.3s linear;
	transition: transform 0.3s linear;
}
.gallery_inner ul li img:hover{
	-webkit-transform: scale(1.1);
	-moz-transform: scale(1.1);
	-o-transform: scale(1.1);
	-ms-transform: scale(1.1);
	transform: scale(1.1);
	cursor:pointer;
}
.gallery_sub{
	display: none;
}


/* Profile */

#profile{
	width:100%;
	min-height: calc(100vh - 280px);
	padding: 100px 0 100px;
	background-color: #FFF;
	display: flex;
	justify-content: center;
	align-items: center;
}
.profile_inner{
	width: 100%;
	padding: 0 0 100px;
	color: var(--main-color);
}
.profile_inner h2{
	margin: 0 0 40px 0;
	text-align: center;
}
.profile_inner_box{
	width: 100%;
	max-width: 1920px;
	margin: 60px auto 0;
	text-align: center;
}
.profile_inner h3 span{
	font-size: 20px;
}
.profile_inner img{
	width: 50%;
	max-width: 500px;
	margin: 0 0 20px;
}
.profile_detail{
	margin: 40px auto 0;
	width: fit-content;
	max-width: 90%;
}
.profile_detail p{
	margin: 20px 0;
}





/* FAQ */

#faq{
	width:100%;
	padding: 8% 0 8%;
	background-color: #FFF;
}
.faq_inner{
	width: 92%;
	max-width: 1000px;
	margin: 0 auto 0;
}
.faq_inner_box{
	margin: 50px 0;
}
.faq_inner_box h3{
	font-size: 110%;
	text-decoration: underline;
	margin: 0 0 20px;
}



/* Footer */

#footer{
	width: 100%;
	padding: 50px 0;
	background-color: var(--main-color);
	text-align: center;
}
#footer ul{
	width: fit-content;
	margin: 0 auto 30px;
	display: flex;
}
#footer ul li{
	margin: 0 20px;
}
#footer ul li a{
	font-size: 13px;
	color: #FFF;
	position: relative;
	display: inline-block;
	transition: .3s;
}
#footer ul li a:before{
	content: "> ";
}
#footer ul li a::after {
	position: absolute;
	bottom: 0;
	left: 50%;
	content: '';
	width: 0;
	height: 1px;
	background-color: #ab2a2a;
	transition: .3s;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}
#footer ul li a:hover::after {
	width: 100%;
}
#footer ul li a:hover{
	color: #ab2a2a;
}
#footer p{
	clear: both;
	height: 100%;
	font-size: 13px;
	color: #FFF;
}


/* Toplink */ 

#page-top{
	position: fixed;
	bottom: 20px;
	right: 20px;
	width: 40px;
	height: 40px;
	border-radius: 8px;
	background:#FFF;
	text-align: center;
}
#page-top a{
	display: block;
}
#page-top svg{
	width: 40px;
	fill: var(--main-color)
}


/* Tablet */
@media screen and (max-width: 1000px) {

	#logo {
		width: 100%;
		text-align: center;
		margin: 5px 0 15px;
	}
	#logo img{
		width: 56px;
	}
	#header {
		height: 70px;
	}
	#header_inner {
		z-index: 999;
		background-color: #FFF;
		width: 100%;
		height: 70px;
	}
	#nav {
		position: absolute;
		/* 開いてないときは画面外に配置 */
		top: -500px;
		background: #FFF;
		width: 100%;
		text-align: center;
		margin: 0;
		padding: 10px 0;
		z-index: -300;
		float: none;
		-webkit-transition: .5s ease-in-out;
		-moz-transition: .5s ease-in-out;
		transition: .5s ease-in-out;
	}
	#nav ul {
		list-style: none;
		position: static;
		right: 0;
		bottom: 0;
		font-size: 14px;
	}
	#nav ul li {
		float: none;
		position: static;
	}
	.navigation{
		float: none;
	}
	.navigation li{
		padding: 0;
	}
	#header #nav ul li a {
		width: 100%;
		display: block;
		color: var(--main-color);
		line-height: 2.4;
		padding: 10px 0;
	}
	#navigation li a::after {
		display: none;
	}
	#navigation li a:hover::after {
		display: none;
	}
	#header #nav ul li a:hover {
		color: #ab2a2a;
	}
	#nav-toggle {
		display: block;
		position: absolute;
		right: 20px;
		top: 24px;
		width: 34px;
		height: 36px;
		cursor: pointer;
		z-index: 200;
	}
	#nav-toggle div {
		position: relative;
	}
	#nav-toggle span {
		display: block;
		position: absolute;
		height: 2px;
		width: 100%;
		background: var(--main-color);
		left: 0;
		-webkit-transition: .35s ease-in-out;
		-moz-transition: .35s ease-in-out;
		transition: .35s ease-in-out;
	}
	#nav-toggle span:nth-child(1) {
		top: 0;
	}
	#nav-toggle span:nth-child(2) {
		top: 11px;
	}
	#nav-toggle span:nth-child(3) {
		top: 22px;
	}
	/* #nav-toggle 切り替えアニメーション */
	.open #nav-toggle span:nth-child(1) {
		top: 11px;
		-webkit-transform: rotate(315deg);
		-moz-transform: rotate(315deg);
		transform: rotate(315deg);
	}
	.open #nav-toggle span:nth-child(2) {
		width: 0;
		left: 50%;
	}
	.open #nav-toggle span:nth-child(3) {
		top: 11px;
		-webkit-transform: rotate(-315deg);
		-moz-transform: rotate(-315deg);
		transform: rotate(-315deg);
	}
	/* #nav スライドアニメーション */
	.open #nav {
		/* #nav top + #mobile-head height */
		-moz-transform: translateY(570px);
		-webkit-transform: translateY(570px);
		transform: translateY(570px);
	}
	.navigation li a::after {
		display: none;
	}
	.navigation li a:hover::after {
		display: none;
	}
	#topimg {
		background-attachment: initial;
	}
	.topimg_inner h1 {
		font-size: 4.4vw;
		padding: 6% 30px;
	}
	#intro{
		height: 100%;
		padding: 150px 0 150px;
	}
	.intro_inner {
		display: block;
	}
	.intro_inner_left {
		width: 100%;
	}
	.intro_inner_right {
		width: 100%;
		max-width: 1000px;
		margin: 60px 0 0;
	}
	#about{
		background-image: none;
	}
	.about_inner {
		width: 96%;
		margin: 0 auto;
		padding: 60px 2% 60px;
		display: block;
	}
	.about_inner_left{
		width: 96%;
		margin: 0 auto;
		padding: 0 2% 0;
	}
	.about_inner_right{
		width: 96%;
		margin: 50px auto 0;
		padding: 0 2% 0;
	}
	.voice_box{
	display: block;
	}
	.voice_icon{
		display: none;
	}
	.voice_content{
		width: 96%;
	}
	.gallery_inner ul li {
		width: 48%;
		margin: 1%;
	}
	.gallery_inner ul li img{
		-moz-transition: unset;
		-webkit-transition: unset;
		-o-transition: unset;
		-ms-transition: unset;
		transition: unset;
	}
	.gallery_inner ul li img:hover{
		-webkit-transform: none;
		-moz-transform: none;
		-o-transform: none;
		-ms-transform: none;
		transform: none;
		cursor:pointer;
	}	
	#profile{
		height: 100%;
	}
	.profile_split{
		width: 100%;
		display: block;
	}
	.profile_inner img{
		width: 60%;
	}
	.profile_inner_left{
		width: 100%;
		padding: 0 0 100px;
		background-color: #FFF;
	}
	.profile_inner_right{
		width: 100%;
		padding: 0 0 100px;
		background-color: #FFF;
	}
	#case{
		background-image: none;
		padding: 0;
	}
	.case_inner {
		width: 96%;
		margin: 0 auto;
		padding: 60px 2% 60px;
	}
	.case_inner ul li {
		width: 48%;
		margin: 1%;
	}
	.case_inner ul li img{
		-moz-transition: unset;
		-webkit-transition: unset;
		-o-transition: unset;
		-ms-transition: unset;
		transition: unset;
	}
	.case_inner ul li img:hover{
		-webkit-transform: none;
		-moz-transform: none;
		-o-transform: none;
		-ms-transform: none;
		transform: none;
		cursor:pointer;
	}	
	br.br_pc{
		display: none;
	}
	h2{
		text-align: center;
	}
	
}


@media screen and (max-width: 800px) {

	#topimg {
		height: 76vh;
	}
	#shutter_logo img{
		width: 200px;
	}
	#slider_logo img{
		width: 200px;
	}
	.concept_anime{
		padding: 0;
	}
	#concept .start{
		background-image: none;
	}
	#footer ul{
		display: block;
	}
	#footer ul li{
		width: 100%;
		margin: 10px 0;
	}
	.sp_text:after {
		content:attr(data-label);
		font-size: 28px;
	}
	.sp_text img {
		display:none;
	}
	br.br_sp{
		display: block;
	}
	#apply table.formTable th,#apply table.formTable td {
		font-size: 14px;
		display: block;
		border-right: none;
	}
	#apply table.formTable th:before {
		width: 6px;
		height: 6px;
		margin: 6px 3px 0 0;
	}
	#apply table.formTable th {
		padding: 10px 2%;
		width: 96%;
		text-align: left;
	}
	#apply table.formTable td {
		padding: 15px 2%;
	}

}
/* / Tablet */



/* Mobile */
@media screen and (max-width: 700px) {

	.sp_img{
		display: block;
		width: 100%;
		max-width: 450px;
		margin: 0 auto;
	}

}

@media screen and (max-width: 640px) {

	#logo img{
		margin: 0 auto;
	}

}

@media screen and (max-width: 480px) {


}
/* / Mobile */




