@charset "utf-8";

/* 汎用 */
a:hover img { opacity: 0.8; filter: alpha(opacity=80); -moz-opacity: 0.8; }
.mb10 { margin-bottom: 10px; }
.mb15 { margin-bottom: 15px; }
.mb20 { margin-bottom: 20px; }
.mb30 { margin-bottom: 30px; }
.mb40 { margin-bottom: 40px; }
.mb45 { margin-bottom: 45px; }
.mb50 { margin-bottom: 50px; }
.mb60 { margin-bottom: 60px; }
.mb70 { margin-bottom: 70px; }
.mb80 { margin-bottom: 80px; }
.mb90 { margin-bottom: 90px; }
.mb100 { margin-bottom: 100px; }
.mr40 { margin-right: 40px; }
.tal { text-align: left; }
.tac { text-align: center; }
.tar { text-align: right; }
.st { font-weight: bold; }
.fl { float: left; }
.fr { float: right; }
.fs16 { font-size: 16px; }
.fs18 { font-size: 18px; }
.fs24 { font-size: 24px; }
.fs_50 { font-size: 50%; }
.fs_80 { font-size: 80%; }
.fw300{font-weight: 300;}
.fw400{font-weight: 400;}
.fw500{font-weight: 500;}
.fw600{font-weight: 600;}
.fw700{font-weight: 700;}
.fw800{font-weight: 800;}
.flex { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; justify-content: space-between; }
.flex_no_justify { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; }

/* メインの日本語フォント */
.f_min { font-family: "游明朝", "Yu Mincho","Hiragino Mincho Pro", serif; }
.f_hira { font-family:"Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", sans-serif; }
.f_gothic { font-family:"游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "Yu Gothic M", "YuGothic", sans-serif; }
.f_hirago { font-family: "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",sans-serif; }

/* メインの日本語フォント 太字 */
.f_min_bold { font-family: "游明朝", "Yu Mincho","Hiragino Mincho Pro", serif; font-weight: 600;}
.f_hira_bold { font-family:"Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", sans-serif; font-weight: 600;}
.f_gothic_bold { font-family:"游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "Yu Gothic M", "YuGothic", sans-serif; font-weight: 600;}
.f_hirago_bold { font-family: "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",sans-serif; font-weight: 600; }


/* 英字用フォント */
.f_times { font-family: TimesNewRoman, "Times New Roman", Times, Baskerville, Georgia, serif; }
.f_arial { font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; }

/* 画像フィット用 */
.fit_img { display: flex; justify-content: center; align-items: center; /*IE用*/ flex-direction: column; }
.fit_img img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
.regacy_fit_img { display: relative; overflow: hidden; }
.regacy_fit_img img { position: absolute; left: -50%; right: -50%; top: -50%; bottom: -50%; margin: auto; max-width: 100%; max-height: 100%; width: auto; height: auto; }
.ofi {object-fit: cover;font-family: 'object-fit: cover;';}

/*PC用*/
@media print, screen {
	.pc { display: block !important }
	.sp { display: none !important }
	.h_menu, #sp_global_nav { display: none; }
		
	/*------------------------------
	
	#top トップページ
	
	------------------------------*/
	#top {
		max-height: 100vh;
		overflow: hidden;
	}
	
	#top header {
		padding: 3vw 0 0;
	}
	
	#top header h1 {
		animation: fadein 1s ease-in 0s 1 normal forwards;
		opacity:0;
		padding: 0 7vw 20px 3.125vw;
		border-bottom: 3px solid #000;
	}
	
	#top header nav {
		animation: fadein 1s ease-in 0.5s 1 normal forwards;
		opacity:0;
		width: 200px;
		padding: 0 3.125vw;
	}
	
	#top header nav ul {
		padding: 0 0 0 45px;
		border-left: 3px solid #000;
	}
	
	#top header nav li:not(:last-child) {
		margin-bottom: 1em;
	}
	
	#top header nav a {
		font-size: 28px;
	}
	
	#top header nav a:hover {
		opacity: 0.5;
	}
	
	#top .container {
		max-width: none;
		padding: 0 3.125vw;
	}
	
	#top .mv {
		animation: fadein 1s ease-in 1.5s 1 normal forwards;
		opacity:0;
		text-align: center;
	}
	
	#top .mv img {
		width: 77.3vw;
		margin: 0 auto;
	}
	
	#top #next {
		animation: fadein 1s ease-in 2s 1 normal forwards;
		opacity:0;
	}	

	/*------------------------------
	
	#about
	
	------------------------------*/
	#about .container {
		background: url("../../images/src/common/bg_01.svg") no-repeat center bottom -100px;
	}
	
	#about .inner {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: flex-end;
	}
	
	#about .inner .text p {
		margin-bottom: 1em;
		line-height: 2;
	}
	
	#about .inner figure {
		padding-right: 6.25vw;
	}
	
	#about .inner figure img {
		width: 100%;
		max-width: 168px;
	}
	
	#about .inner figcaption {
		margin-top: 0.5em;
		font-size: 20px;
	}
	
	#about .inner figcaption span {
		font-size: 16px;
	}


	/*------------------------------
	
	#plan
	
	------------------------------*/
	#plan .container {
		background: url("../../images/src/common/bg_02.svg") no-repeat right calc(20px + 6.25vw) bottom -100px;
	}
	
	#plan .inner {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	
	#plan .detail {
		width: 48%;
	}
	
	#plan .detail dl {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	
	#plan .detail dt {
		width: 60%;
		margin-bottom: 0.5em;
		font-size: 20px;
		line-height: 1.2;
	}
	
	#plan .detail dt span {
		font-size: 16px;
	}
	
	#plan .detail dd {
		width: 100%;
		margin-bottom: 0.5em;
	}
	
	#plan .detail dd.price {
		width: 40%;
		font-size: 24px;
		text-align: right;
		line-height: 1.2;
	}
	
	#plan .item {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 48%;
	}
	
	#plan .item figure {
		width: 210px;
	}
	
	#plan .item img {
		width: 100%;
		max-width: 208px;
		margin-bottom: 0.5em;
	}

	#plan .item dl {
		width: calc(100% - 210px - 2vw);
	}
	
	#plan .item dt {
		font-size: 20px;
	}
	
	#plan .item dt span {
		font-size: 14px;
	}
	
	#plan .item .price {
		margin-bottom: 0.5em;
		font-size: 24px;
	}
	#plan .kessai {
		margin: 5px 0 0 -8px;
	}
	
	/*------------------------------
	
	#access
	
	------------------------------*/
	#access .container {
		background: url("../../images/src/common/bg_03.svg") no-repeat left 40vw bottom -80px;
	}
	
	#access .inner {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	
	#access figure img {
		max-width: 100%;
	}
	
	#access .detail {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 50%;
	}
	
	#access .detail .inbox {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	
	#access .detail .text {
		width: 100%;
	}
	
	#access .detail .inbox .text {
		width: 48%;
	}
	
	#access .detail .inbox .text address {
		margin-bottom: 0.5em;
		font-size: 24px;
	}
	
	#access .detail .inbox .text a {
		display: inline-block;
		margin: 0.5em 0;
		font-size: 20px;
		text-decoration: underline;
	}
	
	#access .detail .inbox figure {
		width: 48%;
	}
	
	#access .map {
		width: calc(50% - 2.5vw);
		padding: 0 0 0 2.5vw;
	}
	
	#access .map img {
		max-width: 100%;
	}
	
	/*------------------------------
	
	#contact
	
	------------------------------*/
	#contact .container {
		max-width: 100%;
		padding: 3vw 3.125vw;
		text-align: center;
		background: url("../../images/src/common/bg_04.svg") no-repeat right -100px bottom -150px;
	}
	
	#contact p {
		margin-bottom: 0.8em;
		font-size: 20px;
		line-height: 1.8;
	}
	
	#contact p span {
		display: inline-block;
	}
	
	#contact .lead {
		margin-bottom: 0;
		font-size: 28px;
	}

	#contact .sns {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
	}

	#contact .sns .tel {
		display: inline-block;
		margin: 0 1.5625vw;
		font-size: 66px;
	}

	#contact .sns .line {
		margin: 0 1.5625vw;
		padding: 15px 40px;
		color: #ffffff;
		font-size: 18px;
		background: #06C755;
	}

}

@keyframes fadein{
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}


