@charset "UTF-8";

/* =============================================================================

Common CSS

・ヘッダー、フッター等のページ共通で使用される要素「.g-×××」

上記はここに記述する

============================================================================= */

/* 追従フッター
----------------------------------------------------------------------------- */
.flowbottomSP {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 44px;
	display: table;
	text-align: center;
	transition: transform 1.0s;
	transform: translateY(100%);
	z-index: 999;
	a {
		display: table-cell;
		background-color: #FFF;
		vertical-align: middle;
		&:nth-child(2) {
			background-color: #FFFEB7;
		}
	}
	span {
		font-size: 1.1rem;
	}

	.state_fewscroll & {
		transform: none;
	}
}

/* ページトップボタン
----------------------------------------------------------------------------- */
.pagetopbtn {
	display: block;
	position: fixed;
	bottom: 60px;
	right: 10px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	filter: opacity(0%);
	pointer-events: none;
	background-color: #fff;
	z-index: 999;
	margin-bottom: env(safe-area-inset-bottom);
	&:before {
		content: "";
		display: block;
		position: absolute;
		top: 7px;
		bottom: 0;
		right: 0;
		left: 0;
		width: 12px;
		height: 12px;
		margin: auto;
		border-top: 1px solid #000;
		border-right: 1px solid #000;
		transform: rotate(-45deg);
	}

	@media(hover) {
		& {
			transition: 0.2s;
		}
		&:hover {
			opacity:.6;
		}
	}

	.state_screenheightscroll & {
		filter: opacity(100%);
		pointer-events: auto;
	}
}

/* ナビゲーション
----------------------------------------------------------------------------- */
.c-navCnt{
	position: relative;
	letter-spacing: .05em;
	.c-navCnt__head{
		margin-bottom: 2.3rem;
		.logo{
			display: block;
			width: 25.8rem;
			img{
				width: 100%;
			}
		}
	}
	.c-navCnt__in{
		display: flex;
		font-weight: 700;
		line-height: 1;
		font-size: 1.6rem;
		padding: 0 1.3rem;
		flex-direction: column;
	}

	.navBlock1{
		margin-bottom: 1.9rem;
	}
	
	.navBlock2{
		.navBlock2__cnt{
			display: flex;
			flex-direction: column;
			gap: 1rem;
			margin-top: .6rem;
		}
	}
	.nav__col{
		display: flex;
		flex-direction: column;
		gap: 2.8rem;
	}

	.navList{
		display: flex;
		flex-direction: column;
		gap: .8rem;
		&.-peopleList{
			line-height: 1.5;
			padding-left: 1.6rem;
			gap: .2rem;
			li{
				a{
					display: inline-block;
					text-indent: -.5em;
					padding-left: .5em;
					&:before {
						content: "・";
					}
				}
			}
		}
	}
	.-indent{
		padding-left: 1em;
	}
	.-sub{
		font-size: 1.4rem;
	}
	.-navTop{
		position: relative;
		&:before{
			position: absolute;
			content: '';
			background: #fff;
			top: .7rem;
			left: 0;
			width: 100%;
			height: .1rem;
		}
		span{
			background: var(--cc-black-A);
			position: relative;
			padding-right: 1rem;
		}
	}
	.igIcon{
		position: absolute;
		right: 1.5rem;
		bottom: -5rem;
		width: 5.2rem;
		img{
			width: 100%;
		}
	}
}


/* ヘッダー
----------------------------------------------------------------------------- */
#menuopenstate {
	display: none;
}
.mod_header {
	z-index: 1000;
	position: fixed;
	width: 100%;
	top: 0;
	left: 0;

	.row01 {
		background: var(--cc-black-A);
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		box-sizing: border-box;
		z-index: 1000;
		
		@media (width <= 767px) {/* SP */
			padding: 0 2.8rem;
		}
		.in {
			width: 100%;
			max-width: 130rem;
			height: 8rem;
			margin: auto;
			display: flex;
			align-items: center;
			justify-content: space-between;
			@media (width <= 767px) {/* SP */
				height: 6rem;
			}
		}
		.headerLogo{
			img{
				width: 33.9rem;
				@media (width <= 767px) {/* SP */
					width: 25.9rem;
				}
			}
		}
		.logoLine{
			display: flex;
			align-items: center;
			gap: 1.6rem;
			@media(hover) {
				& {
					transition: 0.2s;
				}
				&:hover {
					opacity: 0.6;
				}
			}
			@media (width <= 767px) {/* SP */
				gap: 1.2rem;
			}
		}
		.hTxt{
			width: 15.9rem;
			@media (width <= 767px) {/* SP */
				width: 12.5rem;
			}
		}
		.logo {
			display: block;
			
			.logoimg {
				@media (width > 767px) {/* PC */
					width: 14.4rem;
				}
				@media (width <= 767px) {/* SP */
					width: 11rem;
				}
			}
		}
		.link {
		}
		.one {
			display: inline-block;
			padding: 4px;
			font-size: 1.8rem;
			@media(hover) {
				& {
				}
				&:hover {
					text-decoration: underline;
				}
			}
		}
	}

	.headNavBlock{
		background-color:var(--cc-black-A);
		color: #FFF;
		position: fixed;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		top:8rem;
		right: 0;
		width: 37.5rem;
		opacity: 0;
		z-index: 1000;
		pointer-events: none;
		transition: opacity 0.4s;
		display: flex;
		align-items: center;
		@media (width <= 767px) {/* SP */
			top: 6rem;
		}
		body:has(#menuopenstate:checked) & {
			opacity: 1;
			pointer-events: auto;
		}
		.headNavBlock__in{
			width: 100%;
			padding: 1.4rem 3rem 8rem;
		}
		.-peopleList{
			li._pc{
				display: none;
			}
		}
		@media (width <= 767px) {/* SP */
			.c-navCnt__head{
				display: none;
			}
		}
	}
	.menu {
		position: relative;
		cursor: pointer;
		width: 4.2rem;
		height: 3.3rem;
		z-index: 1000;
		/* background-color: #000; */
		@media (width <= 767px) {/* SP */
			width: 3.2rem;
			height: 2.6rem;
		}
		.open{
			display: block;
			position: relative;
			width: 100%;
			height: 100%;
		}
		.open .bar {
			display: block;
			position: absolute;
			/* top: 0; */
			left: 0;
			/* bottom: 0; */
			right: 0;
			width: 100%;
			height: .3rem;
			margin: 0 auto;
			/* margin: auto; */
			background-color: var(--cc-blue-2);
			transition: 0.3s;
			@media (width <= 767px) {/* SP */
				height: .2rem;
			}
			&:nth-child(1) {
				top: 0;
			}
			&:nth-child(2) {
				top: 1.5rem;
				@media (width <= 767px) {/* SP */
					top: 1.2rem;
				}
			}
			&:nth-child(3) {
				bottom:0;
			}
		}
		.close {
			display: block;
		}
		.close .bar {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			bottom: 0;
			right: 0;
			width: 0;
			height: .3rem;
			margin: auto;
			background-color: var(--cc-blue-2);
			transition: 0.3s;
			&:nth-child(1) {
				transform: rotate(45deg);
			}
			&:nth-child(2) {
				transform: rotate(-45deg);
			}
		}
		body:has(#menuopenstate:checked) & {
			.open .bar {
				width: 0;
			}
			.close .bar {
				width: 4rem;
			}
		}
	}

	._nav{
		display: flex;
		font-weight: 700;
		line-height: 1;
		font-size: 1.6rem;
		@media (width > 767px) {/* PC */
			width: 100rem;
			margin: 0 auto;
		}
		@media (width <= 767px) {/* SP */
			flex-direction: column;
			font-size: 1.5rem;
			gap: 3.5rem;
		}
		.nav__col{
			display: flex;
			flex-direction: column;
			margin-left: auto;
			margin-right: auto;

			gap: 3.2rem;
			@media (width <= 767px) {/* SP */
				gap: 3.5rem;
				width: 31.1rem;
			}
			ul{
				display: flex;
				flex-direction: column;
				gap: .9rem;
				@media (width <= 767px) {/* SP */
					gap: .9rem;
				}
			}
			@media (width > 767px) {/* PC */
				
			}
		}
		.-sub{
			padding-left: 1em;
		}
		.-navTop{
			@media (width <= 767px) {/* SP */
				position: relative;
				&:before{
					position: absolute;
					content: '';
					background: #fff;
					top: 50%;
					left: 0;
					width: 100%;
					height: .1rem;
				}
				span{
					background: var(--cc-black-A);
					position: relative;
					padding-right: 1rem;
				}
			}
		}
	}
}


/* フッター
----------------------------------------------------------------------------- */
.mod_footer {
	background: var(--cc-black-A);
	color: #FFF;
	padding: 4.4rem 0 7.8rem;
	@media (width <= 767px) {/* SP */
		padding: 2rem 0 8rem;
	}
	.mod_footer_in{
		position: relative;
		margin: 0 auto;
		@media (width > 767px) {/* PC */
			width: 102rem;
		}
		@media (width <= 767px) {/* SP */
			flex-direction: column;
			width: 31.5rem;
		}
	}

	.c-navCnt{
		.c-navCnt__in{
			@media (width > 767px) {/* PC */
				flex-direction: row;
				padding: 0;
			}
		}

		.navBlock1{
			@media (width > 767px) {/* PC */
				width: 23rem;
				padding-left: 1.6rem;
				margin-bottom: 0;
			}
		}
		
		.navBlock2{
			@media (width > 767px) {/* PC */
				margin-left: 8.5rem;
				width: 56rem;
				margin-top: 1.7rem;
			}
			.navBlock2__cnt{
				@media (width > 767px) {/* PC */
					gap: 0;
					flex-direction: row;
					justify-content: space-between;
				}
			}
		}
		.nav__col{
			@media (width > 767px) {/* PC */
				gap: 2.8rem;
				gap: 3.2rem;
			}
		}

		.navList{
			&.-peopleList{
				@media (width > 767px) {/* PC */
					padding-left: 0;
					gap:0rem;
					br{
						display: none;
					}
					li{
						padding-left: 0;
						text-indent: 0;
					}
				}
			}
		}

		.-navTop{
			&:before{
				@media (width > 767px) {/* PC */
					top: .4rem;
				}
			}
		}
		.igIcon{
			@media (width > 767px) {/* PC */
				right: auto;
				left: .5rem;
				bottom: -.5rem;
			}
		}
	}
}

.mod_main{
	@media (width > 767px) {/* PC */
		padding-top: 8rem;
	}
	@media (width <= 767px) {/* SP */
		padding-top: 6rem;
	}
}

.c-ttlArw{
	padding-left: 3.2rem;
	padding-bottom: 6rem;
	@media (width <= 767px) {/* SP */
		padding-left: 1.4rem;
		padding-bottom: 2.6rem;
	}
	&:before{
		background: url(../images/common/arw-ttl.svg) left bottom /100% auto no-repeat;
		position: absolute;
		content:'';
		left: 0;
		bottom: 0;
		height: 100%;
		width: 1.5rem;
		@media (width <= 767px) {/* SP */
			width: .66rem;
		}
	}
}