@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

*,
::after,
::before {
	box-sizing: border-box;
}

body {
	margin: 0;
	padding: 0;
	overflow-x: hidden;
	font-family: "Noto Sans JP", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size: 1rem;
    line-height: 1.5;
	color: #222222;
	padding-top: 52px;
}

a {
	color: #000;
	text-decoration: none;
    -webkit-transition: all 0.5s ease-out;
    -moz-transition: all 0.5s ease-out;
    -o-transition: all 0.5s ease-out;
    transition: all 0.5s ease-out;    
}

a:hover{
	opacity: 0.7;
}

img {
	display: block;
	max-width: 100%;
}

figure{
	display: block;
	margin: 0;
}

.red-color{
    color: #FF000B;   
}        


@media screen and (min-width: 720px){
	.zoomable{
		display: block;
		overflow: hidden;
	}
		.zoomable img{
			transition: 0.3s all ease-out;
		}
		.zoomable:hover{
			opacity: 1;
		}
			.zoomable:hover img{
				transform: scale(1.1);
			}
}

h1,
h2,
h3,
p,
ul {
	margin: 0;
	padding: 0;
}

/* レスポンス処理 start */
.u-inner {
	width: 720px;
	margin: auto;
}
@media screen and (max-width: 720px) {
	.u-inner {
		width: 94vw;
		margin: 0 auto;
	}
}

.sp_show {
	display: none !important;
}
.sp_none {
	display: block !important;
}
.pc_flex {
	display: flex !important;
}
.pc_none {
	display: none !important;
}
@media screen and (max-width: 720px) {
	.sp_show {
		display: block !important;
	}
	.sp_none {
		display: none !important;
	}
	.pc_flex {
		display: none !important;
	}
	.pc_none {
		display: flex !important;
	}
}
/* レスポンス処理 end */

/* ヘッダー部分 start */
#topbar{
	position: relative;
	margin: 0 auto;
}
	.header-fix #topbar {
		position: fixed;
		width: 100%;
		top: 0;
		left: 0;
		z-index: 100;
		animation: slide_down_menu 0.5s ease;;
		-webkit-animation: slide_down_menu 0.5s ease;
		box-shadow: -1px 4px 12px 2px rgba(0,0,0,0.5);
		-webkit-box-shadow: -1px 4px 12px 2px rgba(0,0,0,0.5);
		-moz-box-shadow: -1px 4px 12px 2px rgba(0,0,0,0.5);
	}
	@-webkit-keyframes slide_down_menu {
		0% { top:-60px; }
		100% { top:0px; }
	}
	@keyframes slide_down_menu {
		0% { top:-60px; }
		100% { top:0px; }
	}
	.header-fix #topbar .logo_panel{
		height: 60px;
	}
		.header-fix #topbar .logo_panel .logo{
			height: 35px;
		}
	.header-fix #topbar .menu_panel{
		display: none;
	}
	.header-fix #topbar .logo_panel .more_constrol_panel .menu-item{
		font-size: 12px;
	}

.sp-menu {
	display: block;
}
.sp-menu-btn{
	display: block;
	position: relative;
	z-index: 1221;
	-webkit-user-select: none;
	user-select: none;
	cursor: pointer;
}
	.sp-menu-btn.active{
		position: fixed;
		right: 25px;
	}
	.sp-menu-btn span{
		display: block;
		width: 20px;
		height: 2px;
		margin-bottom: 4px;
		position: relative;
		background: #000;
		border-radius: 3px;
		z-index: 1;
		transform-origin: 4px 0px;
	}
	.sp-menu-btn span:first-child{
		transform-origin: 0% 0%;
	}
	.sp-menu-btn span:nth-last-child(2){
		transform-origin: 0% 100%;
	}
	.sp-menu-btn span:last-child{
		margin-bottom: 0;
	}
	.sp-menu-btn.active span{
		opacity: 1;
		transform: rotate(45deg) translate(0, 0);
		background: #fff;
	}
	.sp-menu-btn.active span:nth-child(2){
		opacity: 0;
		transform: rotate(0deg) scale(0.2, 0.2);
	}
	.sp-menu-btn.active span:nth-child(3){
		transform: rotate(-45deg) translate(-1px, -2px);
	}
	.sp-menu .sp-menu-btn:hover {
		opacity: 0.7;
	}

.sp-menu-content {
	visibility: hidden;
	transform: translateY(-100%);
	border-radius: 0;
	position: fixed;
	top: 0;
	right: 0;
	width: 100%;
	height: 100vh;
	z-index: 1200;
	overflow: hidden;
	background-color: rgba(0, 0, 0, 0.8);
	transition: visibility .3s ease-in-out, transform .3s ease-in-out;
	padding: 70px 80px;
	display: flex;
	align-items: center;
	justify-content: center;
}
	.sp-menu-content.show {
		visibility: visible;
		transform: translateY(0);
	}


.sp-menu-header {
	display: flex;
	align-items: center;
}

.sp-menu-close {
	margin-right: 20px;
	cursor: pointer;
}

.sp-menu-list {
	width: fit-content;
	display: flex;
	flex-direction: row;	
}

.sp-menu-list .column:nth-child(2n+1){
	margin-right: 60px;
}

.sp-menu-item {
	padding-bottom: 16px;
	padding-top: 16px;
	width: fit-content;
}
	.sp-menu-item > a{
		font-size: 20px;
		font-weight: 700;
		color: #fff;
		display:block;
		width:fit-content;
	}
	.sp-menu-list .sub_menu{
		margin-bottom: 20px;
	}
		.sp-menu-list .sub_menu .item{
			margin-bottom: 25px;
		}
			.sp-menu-list .sub_menu .item:last-child{
				margin-bottom: 0;
			}
			.sp-menu-list .sub_menu .item a{
				font-size: 15px;
				/* font-weight: 500; */
				color: #fff;
			}
	@media screen and (max-width: 720px) {
		.sp-menu-content {
			padding: 68px 27px;
		}
		.sp-menu-list .column:nth-child(2n+1){
			margin-right: 20px;
		}
		.sp-menu-item {
			padding-bottom: 12px;
			padding-top: 12px;
		}
			.sp-menu-item > a{
				font-size: 18px;
			}
		.sp-menu-list .sub_menu{
			margin-bottom: 12px;
		}
		.sp-menu-list .sub_menu .item{
			margin-bottom: 16px;
		}
		.sp-menu-list .sub_menu .item a{
			font-size: 15px;
		}
		.header-fix #topbar {
			animation: slide_down_menu 1s ease; animation: slide_down_menu 1s ease;
			-webkit-animation: slide_down_menu 1s ease; animation: slide_down_menu 1s ease;
		}
	
	}	
			
body.sp-menu-content-active {
	overflow: hidden;
}

.screen-darken {
	height: 100%;
	width: 0%;
	z-index: 30;
	position: fixed;
	top: 0;
	right: 0;
	opacity: 0;
	visibility: hidden;
	background-color: rgba(34, 34, 34, 0.6);
	transition: opacity .2s linear, visibility 0.2s, width 2s ease-in;
}
	.screen-darken.active {
		z-index: 10;
		transition: opacity .3s ease, width 0s;
		opacity: 1;
		width: 100%;
		visibility: visible;
	}

header .logo_panel{
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 52px;
	background-color: #fff;
	padding-left: 16px;
	padding-right: 16px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1001;
	transition: -webkit-transform .3s ease;
    transition: transform .3s ease;
    transition: transform .3s ease, -webkit-transform .3s ease;
}
header .logo_panel.is-hide {
	-webkit-transform: translateY(-100%);
	transform: translateY(-100%);
}
	@media screen and (max-width: 1100px) {
		header .logo_panel{
			padding-left: 24px;
			padding-right: 24px;
		}
	}
	header .logo_panel .more_constrol_panel{
		display: flex;
		align-items: center;
	}
		header .logo_panel .more_constrol_panel .menu-item{
			font-size: 14px;
			font-weight: bold;
			margin-left: 28px;
		}
		header .logo_panel .more_constrol_panel .menu-item:first-child{
			margin-left: 0;
		}
		@media screen and (max-width: 720px) {
			header .logo_panel .more_constrol_panel .menu-item{
				font-size: max(2.2vw, 11px);
				margin-left: 24px;
			}
		}

/* ヘッダー部分 end */


/* フッター部分 start */
footer{
	background-color: #9F9F9F;
}

#totop {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 15;
}
	#totop .on{
		display: block;
	}
	#totop .off{
		display: none;
	}
	#totop:hover .on{
		display: none;
	}
	#totop:hover .off{
		display: block;
	}	

@media screen and (max-width: 720px) {
	#totop {
		bottom: 16px;
		right: 16px;
	}
}

/* フッター部分 end */

/* Show Animation */
 /* .fadeInAnim {
	opacity: 0;
	-webkit-transform: translateY(30px);
	transform: translateY(30px);
	-webkit-transition: opacity .8s ease-out, transform 1.2s ease-out .2s;
	transition: opacity .8s ease-out, transform 0.8s ease-out;
  }
  
  .fadeInAnim.visible {
	opacity: 1;
	-webkit-transform: translateY(0px);
	transform: translateY(0px);
  } */

.fadeInAnim {
	opacity: 0;
}
	.fadeInAnim.visible {
		animation: fadeIn 1s ease-out 0.5s forwards;
	}
	.fadeInAnim.second.visible {
		animation: fadeIn 1s ease-out 1s forwards;
	}
	.fadeInAnim.third.visible {
		animation: fadeIn 1s ease-out 1.5s forwards;
	}
	@keyframes fadeIn {
		0% {
		opacity: 0; 
		}
		100% {
		opacity: 1; 
		} 
	}

.logo_panel .logo{
	width: 103px;
	margin-right: 12px;
}

.logo_panel .logo_link{
	display: flex;
	flex-direction: row;
	align-items: center;
	font-size: 10px;
	font-weight: 700;
}