@charset "utf-8";

/*adstaff*/
body:not(.loaded) {
	opacity: 0;
}
@media (min-width:768px){
	#gHeader {
		position: fixed;
		top:0;
		left:0;
		width: 100%;
		z-index: 10000;
		background-color: #fff;
		box-shadow: 0px 0px 5px #ccc;
		box-sizing: border-box;
	}
	#container {
		padding-top: 111px;
	}
}
@media (max-width:767px){
	#gHeader {
		position: fixed;
		top:0;
		left:0;
		width: 100%;
		z-index: 10000;
		background-color: #fff;
		    box-shadow: 0px 0px 5px #ccc;
		box-sizing: border-box;

	}
	#container {
		padding-top: 52px;
	}
}


/*------------------------------------------------------------
	汎用スタイル
	------------------------------------------------------------*/
	/* clearfix */
	.clearfix:after {
		content: "";
		display: block;
		clear: both;
	}
	/* flex */
	.flex, .flexA, .flexB, .flexC {
		display: flex;
		flex-wrap: wrap;
	}
	.flexA {
		justify-content: space-around;
	}
	.flexB {
		justify-content: space-between;
	}
	.flexC {
		justify-content: center;
	}
/*------------------------------------------------------------
	common
	------------------------------------------------------------*/
	.en, .ios .en {
		font-family: "Times New Roman",'Noto Serif JP', Times, "serif";
	}
	@media all and (-ms-high-contrast:none){
		.en {
			font-family: "Times New Roman",'Noto Serif JP', Times, "serif";
		}
	}
	/* comBox */
	.comBox {
		margin: 0 auto;
		padding: 0 20px;
		max-width: 1362px;
	}
	@media all and (max-width: 767px) {
		.comBox {
			padding: 0 16px;
		}
	}
	/* headLine01 */
	.headLine01 {
		margin-bottom: 100px;
		font-size: 2.1rem;
		line-height: 1.3;
		text-align: center;
	}
	.headLine01 .en {
		display: block;
		font-size: 8rem;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 4px;
	}
	@media all and (max-width: 767px) {
		.headLine01 {
			margin-bottom: 35px;
			font-size: 1.4rem;
		}
		.headLine01 .en {
			font-size: 4rem;
			letter-spacing: 1px;
		}
	}
	/* headLine02 */
	.headLine02 {
		margin-bottom: 133px;
		text-align: center;
		font-size: 6rem;
		letter-spacing: 12px;
	}
	.headLine02 .en {
		display: block;
		font-size: 2.4rem;
		letter-spacing: 2px;
	}
	@media all and (max-width: 1420px) {
		.headLine02 {
			letter-spacing: 5px;
		}
	}
	@media all and (max-width: 767px) {
		.headLine02 {
			margin-bottom: 35px;
			font-size: 3rem;
			letter-spacing: 6px;
		}
		.headLine02 .en {
			font-size: 1.2rem;
			letter-spacing: 1px;
		}
	}
	/* mainVisual */
	.mainVisual {
		margin-bottom: 14px;
		padding: 75px 0 143px;
		position: relative;
	}
	body:not(.generalShadowOff) .mainVisual:before {
		position: absolute;
		left: 0;
		top: 0;
		width: 71.2%;
		height: 100%;
		background-color: #E3E3E3;
		content: "";
	}
	.mainVisual .comBox {
		position: relative;
		z-index: 1;
	}
	.mainVisual .headLine01 {
		margin-bottom: -105px;
		position: relative;
		font-size: 2.4rem;
		text-align: left;
		letter-spacing: 2.4px;
		z-index: 1;
	}
	.mainVisual .headLine01 .en {
		margin-bottom: 24px;
		font-size: 14rem;
		font-weight: 500;
		letter-spacing: 9px;
	}
	.mainVisual .mainImg {
		margin: 0 -6% 0 8.5%;
	}
	.mainVisual .mainImg img {
		width: 100%;
	}
	@media all and (max-width: 767px) {
		.mainVisual {
			margin-bottom: 35px;
			padding: 43px 0 20px;
		}
		.mainVisual .comBox {
			padding-right: 0;
		}
		.mainVisual:before {
			width: 75.5%;
		}
		.mainVisual .headLine01 {
			margin-bottom: -78px;
			font-size: 1.4rem;
			letter-spacing: 1.4px;
		}
		.mainVisual .headLine01 .en {
			margin-bottom: 5px;
			font-size: 4rem;
			letter-spacing: 3px;
		}
		.mainVisual .mainImg {
			margin: 0 0 0 16.5%;
		}
	}
	/* comNavi */
	.comNavi {
		margin: 0 3% 210px;
		display: flex;
		justify-content: center;
	}
	.comNavi li {
		margin-right: 2.93%;
		width: 22.8%;
	}
	.comNavi li:nth-child(4n) {
		margin-right: 0;
	}
	.comNavi li a {
		position: relative;
		display: flex;
		font-size: 1.8rem;
		font-weight: bold;
		line-height: 1.2;
		align-items: center;
		text-align: center;
		justify-content: center;
		height: 70px;
		border: 1px solid #000;
	}
	.comNavi li a:after {
		position: absolute;
		left: 50%;
		bottom: -30px;
		width: 13px;
		height: 42px;
		background: url("../../img/common/arrow01.png") no-repeat left top;
		background-size: 13px auto;
		content: "";
	}
	@media all and (min-width: 768px) {
		.comNavi li a:hover {
			opacity: 0.7;
		}
	}
	@media all and (max-width: 767px) {
		.comNavi {
			margin: -33px 4.5% 60px;
			flex-wrap: wrap;
			justify-content: space-between;
		}
		.comNavi li {
			margin: 33px 0 0;
			width: 47%;
		}
		.comNavi li a {
			font-size: 1.1rem;
			height: 35px;
			text-align: center;
			line-height: 1;
		}
		.comNavi li a:after {
			bottom: -14px;
			width: 5px;
			height: 21px;
			background-size: 6px 21px;
		}
	}
	/* おすすめバナー */
	.suggest > div{
		padding: 10px 5px 0;
	}
	.suggest > div > a{
		display: flex;
		gap: 0 3%;
    text-align: center;
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: .08em;
    justify-content: center;
    align-items: center;
    border: 1px solid #333;
    box-sizing: border-box;
		height: 175px;
		margin-bottom: 150px;
	}
	.suggest > div > a:hover{
		opacity: 0.7;
	}
	.suggest > div > a > p{
		display: flex;
		flex-direction: column;
    align-items: flex-start;
	}
	.suggest > div > a > p .en{
		font-size: 4.5rem;
		letter-spacing: .06em;
	}
	.suggest > div > a > p .ja{
		font-size: 1.5rem;
		letter-spacing: .22em;
	}
	.suggest > div > a > p.arrow img{
		max-width: 214px;
		padding-top: 12px;
	}
	@media all and (max-width: 767px) {
		.suggest > div{
			padding: 0;
		}
		.suggest > div > a{
			margin-bottom: 80px;
		}
		.suggest > div > a{
			display: grid;
			grid-template-columns: 21.46% 20% auto;
			grid-template-rows: 30.65% auto;
			gap: 4px 0;
			font-size: 1.2rem;
		}
		.suggest > div > a > p:nth-child(1){
			grid-column-start: 2;
			font-size: 1rem;
			/* padding-top: 16.37%; */
			margin: auto 0 0 0;
		}
		.suggest > div > a > p:nth-child(2){
			grid-column-start: 3;
			letter-spacing: 2px;
			margin: auto 0 0 0;
		}
		.suggest > div > a > p:nth-child(2) img{
			width: 54.34%;
		}
		.suggest > div > a > p:nth-child(3){
			grid-column: span 2 / span 2;
			grid-column-start: 2;
			grid-row-start: 2;
			width: 100%;
			margin: 0 0 auto 0;
		}
		.suggest > div > a > p .en{
			font-size: 2.25rem;
			line-height: 1;
			margin-top: 4.624%;
		}
		.suggest > div > a > p .ja{
			font-size: 1rem;
			letter-spacing: 4px;
			margin-top: 12px;
		}
	}
	@media all and (max-width: 480px) {
		.suggest > div > a{
			grid-template-columns: 21.46% 26.6% auto;
			height: 32vw;
		}
	}
	@media all and (max-width: 375px) {
		.suggest > div > a{
			grid-template-columns: 21.46% 30% auto;
		}
	}