@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@500;700&display=swap');
:root {
	--color--black: #000000;
	--color--white: #ffffff;
	--color--gray: #888888;
	--color--red: #E50012;
	--color--blue: #004DA0;
	--color--green: #007F41;
}
body {
	min-height: 100vh;
	margin: 0px;
	padding: 0px;
	background-color: #ffffff;
	scroll-behavior: smooth;
	text-rendering: optimizeSpeed;
	color: #000000;
	font-family: YuGothic, "Yu Gothic", "游ゴシック体", "游ゴシック", "Hiragino Kaku Gothic ProN", "HiraKakuPro-W3", "メイリオ", Meiryo, Verdana, sans-serif;
	font-weight: 400;
	font-style: normal;
	line-height: 1.8;
	letter-spacing: 0.05em;
/*	font-feature-settings: "palt";*/
}
body.scroll-stop {
	overflow: hidden;
}

.ft_Jost {
	font-family: 'Jost', sans-serif;
}

header {
	width: 100%;
	height: 60px;
	background-color: var(--color--red);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
}
	.header__inner {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 90%;
		max-width: 1500px;
		height: 100%;
		margin: 0 auto;
	}
		.global_nav {
			width: auto;
			height: auto;
		}
			.global_nav__contents {
				width: auto;
				height: auto;
			}
				.global_nav__list {
					display: flex;
					justify-content: flex-start;
					align-items: center;
					column-gap: 25px;
					font-size: 18px;
					font-weight: 700;
				}
					.global_nav__item {
						width: auto;
						height: auto;
					}
						.global_nav__item a {
							color: var(--color--black);
						}
						.global_nav__item.current_page a {
							color: var(--color--white);
						}
					.global_nav__sns {
						display:none;
						}


footer {
	width: 100%;
	height: auto;
	padding: 58px 0 0;
	background-color: var(--color--black);
}
	.footer__inner {
		width: 90%;
		max-width: 1280px;
		height: auto;
		margin: 0 auto;
	}
		.footer__menu_list {
			display: flex;
			justify-content: space-between;
			align-items: center;
			width: 100%;
			max-width: 1000px;
			height: auto;
			margin: 0 auto;
		}
			.footer__menu_item {
				width: 31.88372%;
				height: auto;
			}
				.footer__menu_item a {
					display: block;
					width: 100%;
					height: auto;
				}
					.footer__menu_item a img {
						width: 100%;
						height: auto;
					}
		.footer__info {
			display: flex;
			justify-content: center;
			align-items: center;
			column-gap: 54px;
			width: 100%;
			height: auto;
			padding: 64px 0 30px;
		}
			.footer__logo {
				width: 15.17%;
				height: auto;
			}
			.footer__company_info {
				width: auto;
				height: auto;
				font-size: 17px;
				font-weight: 500;
				line-height: 1.47;
				letter-spacing: 0.01em;
				color: var(--color--white);
			}
				.footer__company_info__details br.p_code_br {
					display: none;
				}

		.footer__copyright {
			width: 100%;
			height: auto;
			padding: 20px 0 40px;
			border-top: solid 1px var(--color--white);
		}
			.footer__copyright__txt {
				font-size: 15px;
				font-weight: 500;
				line-height: 1;
				letter-spacing: 0.01em;
				text-align: center;
				color: var(--color--white);
			}
			ul.footer__copyright__link{
				display: flex;
				flex-direction: row;
				margin-left: 3%;
				margin-bottom: 20px;
				list-style-type: none;
			}

			ul.footer__copyright__link li a {
				color: var(--color--white);
				padding-right: 40px;
			}

			ul.footer__copyright__link li::marker {
     			content: "➤"; 
				font-size: 12px;
				color: var(--color--white);
			}


		.footer__sns_icon_list {
			margin: 15px 35% 25px;
			padding: 0;
			width: 30%;
			list-style-type: none;
			display: flex;
			flex-direction: row;
			justify-content: center;
			gap:12%;
		}
			.footer__sns_icon_list li {
				display:flex;
				padding: 0;
				width: 33.3%; 
				height: auto;
			}

			.footer__sns_icon_list li img {
				margin: 0;
				padding: 0;
				max-width: 100%;
				max-height: 100%;
			}

/* 共通要素 */
.cmn__page_heading {
	width: 100%;
	height: auto;
	padding: 43px 0 0;
	margin: 0 auto 60px;
}
	.cmn__page_heading__inner {
		width: 90%;
		max-width: 1126px;
		height: auto;
		margin: 0 auto;
		position: relative;
	}
		.cmn__page_heading__wrap {
			width: 100%;
			height: auto;
		}
			.cmn__page_heading__en {
				display: flex;
				justify-content: flex-start;
				align-items: flex-start;
				width: 100%;
				height: auto;
			}
				.cmn__page_heading__icon {
					width: 38px;
					height: auto;
					margin-top: 1px;
					margin-right: 9px;
				}
				.cmn__page_heading__txt {
					height: auto;
					margin: 0 auto 0 0;
				}
			.cmn__page_heading__ja {
				width: 100%;
				height: auto;
				margin-top: 15px;
				font-size: 20px;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0em;
			}
		.cmn__page_heading__logomark {
			width: 179.17px;
			height: auto;
			position: absolute;
			top: 0;
			right: 0;
			z-index: 1;
		}
.cmn__h3_heading {
	width: 100%;
	height: auto;
	padding-bottom: 12px;
	margin-bottom: 18px;
	border-bottom: solid 4px var(--color--black);
	font-size: 26px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.04em;
	position: relative;
}
	.cmn__h3_heading::before {
		content: '';
		display: block;
		width: 70px;
		height: 4px;
		background-color: var(--color--red);
		position: absolute;
		bottom: -4px;
		left: 0;
	}
.cmn__small_heading {
	width: 90%;
	max-width: 1126px;
	height: auto;
	margin: 0 auto 42px;
	position: relative;
}
	.cmn__small_heading__txt {
		width: 100%;
		height: auto;
		overflow: hidden;
	}

.cmn__pageback_area {
	width: 100%;
	height: auto;
	margin-top: 85px;
}
	.cmn__pageback_btn {
		display: block;
		width: 130px;
		height: auto;
		margin: 0 auto;
	}

/* PC ================================================== */
@media all and (max-width:1280px){
/* footer */
				.footer__company_info__details br.p_code_br {
					display: inline-block;
				}
}

@media all and (max-width:1040px){
	.footer__info {
		flex-wrap: wrap;
		padding: 59px 0 28px;
	}
		.footer__info::before,
		.footer__info::after {
			content: '';
			display: block;
			width: 20%;
			height: 0px;
		}
		.footer__info::before {
			order: 1;
		}
		.footer__info::after {
			order: 3;
		}
		.footer__logo {
			width: 57.2%;
			max-width: 180px;
			margin: 0 auto 45px;
			order: 2;
		}
		.footer__company_info {
			width: auto;
			margin: 0;
			font-size: 15px;
			line-height: 1.6;
			order: 4;
		}
		.footer__company_info:not(:last-of-type) {
			margin-bottom: 18px;
		}
}

@media all and (min-width:720px){
.sp {display: none;}
.pc {display: inline-block;}
.sp_small {display: none;}
.view_sp {display: none;}
.view_pc {display: block;}
body {}
h1{}
h2{}
h3{}
h4{}
h5{}

/* header */
		.hamburger {
			display: none;
		}
						.global_nav__item a {
							transition: .4s;
						}
						.global_nav__item a:hover {
							color: var(--color--white);
						}

	.header__btn{
		max-width: 227px;
		width: 100%;
		height: 45px;
		text-align: center;
		color: var(--color--red);
		background: var(--color--white);
		padding: 6px 15px 6px;
		transition: all 0.3s;
		line-height: 1.2;
		font-family: 'Jost', sans-serif;
		font-size:18px;
		font-weight:700;
		border-radius: 30px;
	}

	a.header__btn:hover{
		color: var(--color--white);
		background: var(--color--red);
		opacity: 1;
		transition: all 0.3s;
		border: 2px solid var(--color--white);
	}


/* footer */
				.footer__menu_item a {
					transform: scale(1);
					transition: .4s;
				}
				.footer__menu_item a:hover {
					transform: scale(1.03);
				}

	.cmn__pageback_btn {
		transform: scale(1);
		transition: .25s;
	}
	.cmn__pageback_btn:hover {
		transform: scale(1.03);
	}
}

/* SP ================================================== */
@media all and (max-width:719px){
.pc {display: none;}
.sp {display: inline-block;}
.sp_small {display: none;}
.view_pc {display: none;}
.view_sp {display: block;}
body {}
h1{}
h2{}
h3{}
h4{}
h5{}

/* header */
	.header__inner {
		width: 100%;
		max-width: initial;
		height: 100%;
	}
		.hamburger {
			width: 60px;
			height: 60px;
			position: absolute;
			top: 0;
			right: 0;
			z-index: 11;
		}
			.hbg_btn {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 100%;
				height: 100%;
				padding: 0;
				margin: 0;
			}
				.hbg_btn_line {
					display: block;
					width: 24px;
					height: 2px;
					background: var(--color--black);
					position: relative;
				}
				.hbg_btn_line::before,
				.hbg_btn_line::after {
					content: '';
					display: block;
					width: 100%;
					height: 2px;
					background-color: var(--color--black);
					position: absolute;
				}
				.hbg_btn_line::before {
					top: -8px;
				}
				.hbg_btn_line::after {
					bottom: -8px;
				}
				/* 開く時の処理 */
				.open .hbg_btn_line {
					animation: hbg_btn-line-open .4s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
				}
					@keyframes hbg_btn-line-open {
						0% {
							background-color: rgba(60, 70, 80, 1);
						}
						60% {
							background-color: rgba(60, 70, 80, 1);
						}
						61% {
							background-color: rgba(60, 70, 80, 0);
						}
						100% {
							background-color: rgba(60, 70, 80, 0);
						}
					}
					.open .hbg_btn_line::before {
						animation: hbg_btn-line_before-open .4s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
					}
					.open .hbg_btn_line::after {
						animation: hbg_btn-line_after-open .4s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
					}
						@keyframes hbg_btn-line_before-open {
							0% {
								top: -8px;
								transform: translate(0%,0%);
							}
							60% {
								top: 0px;
								transform: translate(0%,0%) rotate(0deg);
							}
							61% {
								top: 0px;
							}
							100% {
								top: 0px;
								transform: translate(0%,0%) rotate(45deg);
							}
						}
						@keyframes hbg_btn-line_after-open {
							0% {
								bottom: -8px;
								transform: translate(0%,0%);
							}
							60% {
								bottom: 0px;
								transform: translate(0%,0%) rotate(0deg);
							}
							61% {
								bottom: 0px;
							}
							100% {
								bottom: 0px;
								transform: translate(0%,0%) rotate(-45deg);
							}
						}
				/* 閉じる時の処理 */
				.close .hbg_btn_line {
					animation: hbg_btn-line-close .4s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
				}
					@keyframes hbg_btn-line-close {
						0% {
							background-color: rgba(60, 70, 80, 0);
						}
						60% {
							background-color: rgba(60, 70, 80, 0);
						}
						61% {
							background-color: rgba(60, 70, 80, 1);
						}
						100% {
							background-color: rgba(60, 70, 80, 1);
						}
					}
					.close .hbg_btn_line::before {
						animation: hbg_btn-line_before-close .4s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
					}
					.close .hbg_btn_line::after {
						animation: hbg_btn-line_after-close .4s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
					}
						@keyframes hbg_btn-line_before-close {
							0% {
								top: 0px;
								transform: translate(0%,0%) rotate(45deg);
							}
							60% {
								top: 0px;
							}
							61% {
								top: 0px;
								transform: translate(0%,0%) rotate(0deg);
							}
							100% {
								top: -8px;
								transform: translate(0%,0%);
							}
						}
						@keyframes hbg_btn-line_after-close {
							0% {
								bottom: 0px;
								transform: translate(0%,0%) rotate(-45deg);
							}
							60% {
								bottom: 0px;
							}
							61% {
								bottom: 0px;
								transform: translate(0%,0%) rotate(0deg);
							}
							100% {
								bottom: -8px;
								transform: translate(0%,0%);
							}
						}
		.global_nav {
			display: none;
			width: 100vw;
			height: 100vh;
			height: 100svh;
			padding-top: 60px;
			background-color: var(--color--red);
			position: fixed;
			top: 0;
			left: 0;
			z-index: 10;
		}
			.global_nav__contents {
				width: 100%;
				height: 100%;
				padding: 20px 0 0;
			}
				.global_nav__list {
					display: block;
					width: 85%;
					height: auto;
					margin: 0 auto;
					font-size: 20px;
					font-weight: 700;
				}
					.global_nav__item {
						width: 100%;
						height: auto;
					}
					.global_nav__item:not(:last-of-type) {
						margin-bottom: 10px;
					}

		.global_nav__btn.sp {
    			margin: 15% 7.5%;
    			width: 85%;
    			text-align: left;
		}

		.header__btn{
			max-width: 227px;
			width: 100%;
			height: 45px;
			text-align: center;
			color: var(--color--red);
			background: var(--color--white);
			padding: 6px 15px 6px;
			transition: all 0.3s;
			line-height: 1.2;
			font-family: 'Jost', sans-serif;
			font-size:18px;
			font-weight:700;
			border-radius: 30px;
			
		}

		a.header__btn:hover{
			color: var(--color--white);
			background: var(--color--red);
			opacity: 1;
			transition: all 0.3s;
			border: 2px solid var(--color--white);
		}

		.global_nav__sns {
			margin: 30% 15% 5%;
			padding: 0;
			width: 70%;
			list-style-type: none;
			display: flex;
			flex-direction: row;
			justify-content: center;
			gap: 8%;
			position: absolute;
			bottom: 5%
		}
			.global_nav__sns li {
				display:flex;
				padding: 0;
				width: 33.3%; 
				height: auto;
			}

			.global_nav__sns li img {
				margin: 0;
				padding: 0;
				max-width: 100%;
				max-height: 100%;
			}

footer {
	padding: 40px 0 0;
}
	.footer__inner {
		width: 83%;
		max-width: initial;
	}
		.footer__info::before,
		.footer__info::after {
			display: none;
		}
		.footer__menu_list {
			display: block;
			width: 91.12422%;
			max-width: 340px;
		}
			.footer__menu_item {
				width: 100%;
			}
			.footer__menu_item:not(:last-of-type) {
				margin-bottom: 19px;
			}
		.footer__info {
			display: block;
			padding: 59px 0 28px;
		}
			.footer__logo {
				width: 57.2%;
				max-width: 180px;
				margin: 0 auto 45px;
			}
			.footer__company_info {
				width: 100%;
				font-size: 15px;
				line-height: 1.6;
			}
			.footer__company_info:not(:last-of-type) {
				margin-bottom: 18px;
			}
		.footer__copyright {
			padding: 15px 0 24px;
		}
			.footer__copyright__txt {
				font-size: 12px;
				line-height: 1.6;
			}
			ul.footer__copyright__link{
				display: flex;
				flex-direction: row;
				margin: 0 10px 20px 30px;
				justify-content: space-around;
			}

.footer__sns_icon_list {
    margin: 15px 10% 25px;
    padding: 0;
    width: 80%;
    list-style-type: none;
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 8%;
}

/* 共通要素 */
.cmn__page_heading {
	padding: 21px 0 0;
	margin: 0 auto 30px;
}
	.cmn__page_heading__inner {
		width: 87.44%;
		max-width: initial;
	}
				.cmn__page_heading__icon {
					width: 29.25px;
					margin-top: 1px;
					margin-right: 6px;
				}
			.cmn__page_heading__ja {
				margin-top: 12px;
				font-size: 16px;
			}
		.cmn__page_heading__logomark {
			width: 89.585px;
		}
.cmn__h3_heading {
	max-width: initial;
	padding-bottom: 9px;
	margin-bottom: 14px;
	border-bottom: solid 3px var(--color--black);
	font-size: 20px;
}
	.cmn__h3_heading::before {
		width: 50px;
		height: 3px;
		bottom: -3px;
	}

.cmn__small_heading {
	width: 87.44%;
	max-width: initial;
	margin: 0 auto 21px;
}

}
/* SP_small ================================================== */
@media all and (max-width:575px){
.sp_small {display: inline-block;}
}