@charset "utf-8";
::selection {
	background-color: #5411D3;
	color: #ffffff;
}
:root {
	--color--darkgray: #343435;
	--color--gray: #838282;
	--color--creamgray: #F0F0ED;
	--color--dark_creamgray: #D8D8D1;
	--color--yellowgray: #E5E5DE;
	--color--orangegray: #B9B3B0;
	--color--dark_lightgray: #DEDEDE;
	--color--light_darkgray: #797979;
	--color--skyblue: #1E9EB2;
	--color--blue: #2A51A5;
	--color--yellow: #B5AF64;
	--color--red: #B1000F;
	--color--orange_gray: #F7F5F4;

	--color--black: #161616;
	--color--purple: #5411D3;
	--color--white: #ffffff;
	--color--base_white: #F2F2F2;
	--color--lightgray: #C8C8C8;
}
body {
	min-height: 100vh;
	margin: 0px;
	padding: 101px 0 0;
	background-color: var(--color--base_white);
	scroll-behavior: smooth;
	text-rendering: optimizeSpeed;
	color: var(--color--black);
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 16px;
	font-weight: 500;
	font-style: normal;
	line-height: 1.8;
	letter-spacing: 0.0em;
	overflow: hidden;
	smoothing: antialiased;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body.loaded {
	overflow: unset;
}
#wrap {
	opacity: 0;
	transition: opacity .6s;
	overflow: hidden;
}
#wrap.loaded {
	opacity: 1;
}
body.scroll-stop {
	overflow: hidden;
}
.ftsatoshi {
	font-family: 'Satoshi', sans-serif;
}
a {
	color: var(--color--black);
}

#header {
	width: 100%;
	height: 0;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
}
	.header__overlay {
		width: 100%;
		height: 100vh;
		background-color: rgba(200, 200, 200, 0.5);
		position: absolute;
		top: 0;
		left: 0;
		z-index: -1;
		pointer-events: none;
		opacity: 0;
		transition: .4s;
		transition-delay: .2s;
	}
	.header__overlay._show_overlay {
		pointer-events: auto;
		opacity: 1;
		transition: .4s;
		transition-delay: 0s;
	}
	.header__inner {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: calc((1360 / 1440) * 100%);
		height: auto;
		position: absolute;
		top: 28px;
		left: calc((40 / 1440) * 100%);
	}
		.header__logo {
			width: 124px;
			height: auto;
			position: relative;
			z-index: 2;
		}
			.header__logo a {
				display: block;
				width: 100%;
				height: auto;
			}
				.header__logo a img {
					width: 100%;
					height: auto;
				}
		.global_nav {
			width: fit-content;
			height: auto;
		}
			.global_nav__bg {
				width: 100%;
				height: 0;
				position: relative;
			}
				.global_nav__bg::before {
					content: '';
					display: block;
					width: 100%;
					height: 58px;
					border-radius: 9999px;
					border: solid 1px var(--color--white);
					background-color: rgba(255, 255, 255, 0.4);
					backdrop-filter: blur(6px);
					position: absolute;
					top: 0;
					left: 0;
					z-index: -1;
				}
			.global_nav__contents {
				width: fit-content;
				height: auto;
			}
				.global_nav__contents__inner {
					width: fit-content;
					height: auto;
				}
					.header__menu_list {
						display: flex;
						justify-content: flex-end;
						align-items: center;
						gap: 22px;
						width: fit-content;
						height: 58px;
						padding: 0 28px;
						border-radius: 9999px;
					}
						.header__menu_item {
							width: fit-content;
							height: auto;
							font-size: 14px;
							font-weight: 700;
							line-height: 1.5;
							letter-spacing: 0.05em;
						}
							.header__menu_item_link {
								display: flex;
								justify-content: center;
								align-items: center;
								gap: 5px;
								width: fit-content;
								height: auto;
								color: var(--color--black);
							}
								._external .header__menu_item_link::after {
									content: '';
									display: block;
									width: 10px;
									height: 10px;
									background-color: var(--color--purple);
									mask-image: url(../image/icon-external_link.svg);
								}
									.header__menu__child__heading {
										width: 256px;
										height: auto;
										padding: 18px 0 0;
									}
										.header__menu__child__heading_txt {
											display: flex;
											justify-content: flex-start;
											align-items: center;
											gap: 18px;
											width: fit-content;
											height: auto;
											font-size: 16px;
											font-weight: 700;
											line-height: 1.6;
											letter-spacing: 0.05em;
											color: var(--color--black);
										}
											.header__menu__child__heading_txt::after {
												content: '';
												display: block;
												width: 9px;
												height: 9px;
												mask-image: url(../image/icon-arrow.svg);
												mask-size: 100% 100%;
												mask-position: center;
												mask-repeat: no-repeat;
												background-color: var(--color--black);
												transform: rotate(-90deg);
											}
									@media (any-hover: hover) {
										.header__menu__child__heading_txt {
											transition: color .4s;
										}
										.header__menu__child__heading_txt:hover {
											color: var(--color--purple);
										}
											.header__menu__child__heading_txt::after {
												transition: .4s;
												transform: rotate(-90deg);
											}
											.header__menu__child__heading_txt:hover::after {
												background-color: var(--color--purple);
												transform: rotate(-90deg) translateY(4px);
											}
									}
									.header__menu__child__contents {
										flex: 1;
										height: auto;
										padding: 18px 0 18px 50px;
										border-left: solid 1px #DEDEDE;
									}
										.header__grandchild__menu {
											display: grid;
											grid-template-columns: repeat(2, 1fr);
											gap: 20px 55px;
											width: 100%;
											height: auto;
										}
											.header__grandchild__menu__item {
												width: 100%;
												height: auto;
												font-size: 14px;
												font-weight: 700;
												line-height: 1.6;
												letter-spacing: 0.05em;
											}
												.header__grandchild__menu__item_txt {
													display: flex;
													justify-content: space-between;
													align-items: flex-start;
													width: 100%;
													height: auto;
													color: var(--color--black);
													position: relative;
													cursor: pointer;
												}
													.header__grandchild__menu__item_txt:not(._has_g_child)::after {
														content: '';
														display: block;
														mask-size: 100% 100%;
														mask-position: center;
														mask-repeat: no-repeat;
														background-color: var(--color--black);
													}
													.header__grandchild__menu__item_txt:not(._external):not(._has_g_child)::after {
														width: 9px;
														height: 9px;
														mask-image: url(../image/icon-arrow.svg);
														transform: rotate(-90deg);
														position: relative;
														top: 6px;
													}
													.header__grandchild__menu__item_txt._external:not(._has_g_child)::after {
														width: 10px;
														height: 10px;
														mask-image: url(../image/icon-external_link.svg);
														position: relative;
														top: 6px;
													}
													.header__grandchild__menu__item_txt._has_g_child::before,
													.header__grandchild__menu__item_txt._has_g_child::after {
														content: '';
														display: block;
														background-color: var(--color--black);
														position: absolute;
														top: 10px;
														right: 5px;
														transform: translate(50%,-50%);
														transition: .4s;
													}
													.header__grandchild__menu__item_txt._has_g_child::before {
														width: 9px;
														height: 2px;
													}
													.header__grandchild__menu__item_txt._has_g_child::after {
														width: 2px;
														height: 9px;
													}
													._open.header__grandchild__menu__item_txt._has_g_child::after {
														transform: translate(50%,-50%) rotate(90deg);
													}
											@media (any-hover: hover) {
												.header__grandchild__menu__item_txt {
													transition: color .4s;
												}
												.header__grandchild__menu__item_txt:hover {
													color: var(--color--purple);
												}
													.header__grandchild__menu__item_txt::before,
													.header__grandchild__menu__item_txt::after {
														transition: .4s;
													}
													.header__grandchild__menu__item_txt:hover::before,
													.header__grandchild__menu__item_txt:hover::after {
														background-color: var(--color--purple);
													}
													.header__grandchild__menu__item_txt:not(._external):not(._has_g_child):hover::after  {
														transform: rotate(-90deg) translateY(4px);
													}
											}
												.header__great_grandchild__menu {
													display: none;
													width: 100%;
													height: auto;
													padding-left: 15px;
													margin-top: 13px;
												}
													.header__great_grandchild__menu__item {
														width: 100%;
														height: auto;
														font-size: 12px;
														font-weight: 700;
														line-height: 1.6;
														letter-spacing: 0.05em;
													}
													.header__great_grandchild__menu__item:not(:last-of-type) {
														margin-bottom: 10px;
													}
														.header__great_grandchild__menu__item_txt {
															display: flex;
															justify-content: space-between;
															align-items: flex-start;
															width: 100%;
															height: auto;
															color: var(--color--black);
														}
															.header__great_grandchild__menu__item_txt::after {
																content: '';
																display: block;
																width: 9px;
																height: 9px;
																mask-image: url(../image/icon-arrow.svg);
																mask-size: 100% 100%;
																mask-position: center;
																mask-repeat: no-repeat;
																background-color: var(--color--black);
																position: relative;
																top: 6px;
																transform: rotate(-90deg);
															}
														@media (any-hover: hover) {
															.header__great_grandchild__menu__item_txt {
																transition: color .4s;
															}
															.header__great_grandchild__menu__item_txt:hover {
																color: var(--color--purple);
															}
																.header__great_grandchild__menu__item_txt::after {
																	transition: background-color .4s;
																}
																.header__great_grandchild__menu__item_txt:hover::after {
																	background-color: var(--color--purple);
																}
														}

#footer {
	width: 100%;
	height: auto;
	position: relative;
	z-index: 2;
}
	.footer__top_wrap {
		width: 100%;
		height: auto;
		padding: 100px 0 110px;
		background-color: var(--color--base_white);
	}
		.footer__brand {
			width: 100%;
			height: auto;
		}
			.footer__brand__inner {
				width: 95%;
				max-width: 1200px;
				height: auto;
				padding: 0 0 80px;
				margin: 0 auto;
				border-bottom: solid 1px var(--color--lightgray);
			}
				#footer .section_heading__icon {
					transform: translateY(0px);
				}
				#footer .section_heading span {
					transform: translateY(0px);
				}
				.footer__brand__list {
					display: grid;
					grid-template-columns: repeat(6, 1fr);
					gap: 26px;
					width: 100%;
					height: auto;
					margin: 42px auto 0;
				}
					.footer__brand__item {
						width: 100%;
						height: auto;
					}
						.footer__brand__item a {
							display: block;
							width: 100%;
							height: auto;
							overflow: hidden;
						}
							.footer__brand__item a img {
								width: 100%;
								height: auto;
								will-change: transform, opacity;
							}
						@media (any-hover: hover) {
							.footer__brand__item a img {
								transform: scale(1,1);
								opacity: 1;
								transition: .4s;
							}
							.footer__brand__item a:hover img {
								transform: scale(1.05,1.05);
								opacity: .8;
							}
						}
		.footer__banner {
			width: 100%;
			height: auto;
			padding: 70px 0 0;
		}
			.footer__banner__inner {
				width: 95%;
				max-width: 1200px;
				height: auto;
				margin: 0 auto;
			}
				.footer__banner__list {
					display: grid;
					grid-template-columns: repeat(3, 1fr);
					gap: 16px;
					width: 100%;
					height: auto;
				}
					.footer__banner__item {
						width: 100%;
						height: auto;
					}
						.footer__banner__item a {
							display: block;
							width: 100%;
							height: auto;
						}
							.footer__banner__item a img {
								width: 100%;
								height: auto;
							}
						@media (any-hover: hover) {
							.footer__banner__item a img {
								opacity: 1;
								transition: .4s;
							}
							.footer__banner__item a:hover img {
								opacity: .8;
							}
						}
	.footer__bottom_wrap {
		width: 100%;
		height: auto;
		padding: 80px 0 50px;
		background-color: #25292E;
		position: relative;
	}
		.footer__bottom_wrap__contents {
			width: 95%;
			max-width: 1200px;
			height: auto;
			margin: 0 auto;
			position: relative;
			z-index: 2;
		}
			.footer__nav {
				display: flex;
				justify-content: space-between;
				align-items: flex-start;
				width: 100%;
				height: auto;
				padding: 0 0 85px;
				margin: 0 auto;
			}
				.footer__info_wrap {
					width: 200px;
					height: auto;
					padding: 9px 0 0;
				}
					.footer__logo {
						width: 166px;
						height: auto;
						margin-bottom: 26px;
					}
						.footer__logo a {
							display: block;
							width: 100%;
							height: auto;
						}
							.footer__logo a img {
								width: 100%;
								height: auto;
							}
						@media (any-hover: hover) {
							.footer__logo a img {
								opacity: 1;
								transition: .4s;
							}
							.footer__logo a:hover img {
								opacity: .8;
							}
						}
					.footer__address {
						width: 100%;
						height: auto;
						font-size: 14px;
						font-weight: 500;
						letter-spacing: 1.8;
						color: var(--color--white);
					}
				.footer__menu_wrap {
					display: grid;
					grid-template-columns: repeat(4, 1fr);
					gap: 23px 0;
					width: calc(100% - 200px);
					height: auto;
					padding-left: 70px;
				}
					.footer__menu__child_wrap {
						width: 100%;
						height: auto;
					}
						.footer__nav_wrap {
							width: 100%;
							height: auto;
						}
							.footer__nav_hd {
								width: 100%;
								height: auto;
								margin-bottom: 15px;
								font-size: 16px;
								font-weight: 700;
								line-height: 1.8;
								letter-spacing: 0em;
								color: var(--color--white);
							}
								.footer__nav_link {
									color: var(--color--white);
								}
									.footer__nav_link._external_link::after {
										content: '';
										display: inline-block;
										width: 10px;
										height: 10px;
										margin-left: 10px;
										background-color: var(--color--white);
										mask-image: url(../image/icon-external_link.svg);
										mask-size: 100% 100%;
										mask-position: center;
										mask-repeat: no-repeat;
										position: relative;
										top: -1px;
									}
							@media (any-hover: hover) {
								.footer__nav_link:hover {
									text-decoration: underline;
								}
							}
							.footer__nav_link__child {
								display: block;
								width: 100%;
								height: auto;
							}
								.footer__nav__child__item {
									width: 100%;
									height: auto;
									padding-left: 16px;
									font-size: 12px;
									font-weight: 500;
									line-height: 1.8;
									letter-spacing: 0em;
									position: relative;
								}
								.footer__nav__child__item:not(:last-of-type) {
									margin-bottom: 5px;
								}
									.footer__nav__child__item::before {
										content: '';
										display: block;
										width: 8px;
										height: 8px;
										mask-image: url(../image/icon-arrow@sp.svg);
										mask-size: 100% 100%;
										mask-position: center;
										mask-repeat: no-repeat;
										background-color: var(--color--white);
										position: absolute;
										top: 8px;
										left: 0;
									}
									.footer__nav__child__link {
										display: block;
										width: fit-content;
										height: auto;
										color: var(--color--white);
									}
										.footer__nav__child__link._external_link::after {
											content: '';
											display: inline-block;
											width: 10px;
											height: 10px;
											margin-left: 10px;
											background-color: var(--color--white);
											mask-image: url(../image/icon-external_link.svg);
											mask-size: 100% 100%;
											mask-position: center;
											mask-repeat: no-repeat;
										}
								@media (any-hover: hover) {
									.footer__nav__child__link:hover {
										text-decoration: underline;
									}
								}
		.footer__copyright {
			width: 100%;
			height: auto;
			position: relative;
			z-index: 2;
		}
			.footer__copyright_txt {
				width: 100%;
				height: auto;
				font-size: 10px;
				font-weight: 500;
				line-height: 1.8;
				letter-spacing: 0em;
				text-align: center;
				color: var(--color--white);
			}
		.footer__obj {
			width: calc((1476 / 1440) * 100%);
			height: auto;
			opacity: .2;
			position: absolute;
			bottom: calc((75 / 1440) * 100vw);
			left: 50%;
			transform: translate(-50%,0%);
			z-index: 1;
		}
			.footer__obj svg {
				width: 100%;
				height: auto;
			}

/* 共通 */
.section_heading {
	width: 100%;
	height: auto;
	padding-left: 23px;
	font-family: 'Satoshi', sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: var(--color--black);
	position: relative;
	overflow: hidden;
}
	.section_heading__icon {
		display: block;
		width: 10px;
		height: 11px;
		border-radius: 0 0 5px 5px;
		background-color: var(--color--purple);
		position: absolute;
		top: 5px;
		left: 0;
		transform: translateY(-21px);
		/* transition: transform 1s cubic-bezier(.85,0,.15,1); */
		transition-property: transform;
		transition-duration: 1s;
		transition-timing-function: cubic-bezier(.85,0,.15,1);
	}
	.run.section_heading__icon,
	.run .section_heading__icon {
		transform: translateY(0);
	}
	.section_heading__row {
		display: block;
		overflow: hidden;
	}
		.section_heading__row span {
			display: block;
			transform: translateY(21px);
			/* transition: transform 1s cubic-bezier(.85,0,.15,1); */
			transition-property: transform;
			transition-duration: 1s;
			transition-timing-function: cubic-bezier(.85,0,.15,1);
		}
		/* .section_heading__row:nth-of-type(1) span {
			transition-delay: .5s;
		}
		.section_heading__row:nth-of-type(2) span {
			transition-delay: .57s;
		}
		.section_heading__row:nth-of-type(3) span {
			transition-delay: .64s;
		} */
		.run.section_heading__row span,
		.run .section_heading__row span {
			transform: translateY(0);
		}

/* PC ================================================== */
@media all and (min-width:1101px){
		.hamburger {
			display: none;
		}
/* メニュー */
						@media (any-hover: hover) {
							.header__menu_item_link {
								transition: color .4s;
							}
							.header__menu_item:hover .header__menu_item_link {
								color: var(--color--purple);
							}
						}
								.has_child .header__menu_item_link::after {
									content: '';
									display: block;
									width: 9px;
									height: 9px;
									mask-image: url(../image/icon-arrow.svg);
									mask-size: 100% 100%;
									mask-position: center;
									mask-repeat: no-repeat;
									background-color: var(--color--purple);
								}
							.header__menu__child {
								width: 100%;
								height: auto;
								border-radius: 10px;
								background-color: var(--color--white);
								position: absolute;
								top: 88px;
								left: 0;
								pointer-events: none;
								clip-path: inset(calc(0% - 49px) 0% calc(100% + 49px) 0% round 0px 0px 10px 10px);
								transition: .4s;
							}
							.header__menu__child._show {
								pointer-events: auto;
								clip-path: inset(calc(0% - 49px) 0% 0% 0% round 0px 0px 10px 10px);
							}
								.header__menu__child::after {
									content: '';
									display: block;
									width: 100%;
									height: 49px;
									position: absolute;
									top: 0;
									right: 0;
									transform: translate(0%,-100%);
								}
								.header__menu__child__wrap {
									display: flex;
									justify-content: flex-start;
									align-items: flex-start;
									width: 90%;
									max-width: 898px;
									height: auto;
									padding: 30px 60px 30px 0;
									margin: 0 auto;
									opacity: 0;
									transition: .4s;
								}
								._show .header__menu__child__wrap {
									opacity: 1;
								}
								.footer__menu__child_wrap._contact {
									display: none;
								}
}

@media all and (max-width:1100px){
body {
	padding: 78px 0 0;
}

/* header */
	.header__overlay {
		display: none;
	}
	.header__inner {
		width: 100%;
		height: 80px;
		top: 0;
		left: 0;
		pointer-events: none;
	}
		.header__logo {
			width: auto;
			height: 27px;
			pointer-events: auto;
			position: absolute;
			top: 27px;
			left: 20px;
		}
			.header__logo a {
				width: auto;
				height: 100%;
			}
				.header__logo a img {
					width: auto;
					height: 100%;
				}
		.hamburger {
			width: 50px;
			height: 50px;
			border-radius: 9999px;
			border: solid 1px var(--color--white);
			background-color: rgba(255, 255, 255, 0.4);
			backdrop-filter: blur(6px);
			position: absolute;
			top: 15px;
			right: 15px;
			z-index: 2;
			pointer-events: auto;
		}
			.hb_btn {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 100%;
				height: 100%;
				border-radius: 9999px;
				padding: 0;
				outline: none;
				background: none;
				cursor: pointer;
			}
				.hb_btn__line {
					display: block;
					width: 14px;
					height: 2px;
					background-color: var(--color--purple);
					position: relative;
					transition: .4s;
				}
				.hb_btn__line::before,
				.hb_btn__line::after {
					content: '';
					display: block;
					width: 100%;
					height: 100%;
					background-color: var(--color--purple);
					position: absolute;
					transition: .4s;
				}
				.hb_btn__line::before {
					top: -6px;
				}
				.hb_btn__line::after {
					bottom: -6px;
				}
				.close_effect .hb_btn__line {
					background-color: rgba(84, 17, 211, 0);
				}
				.open_effect .hb_btn__line {
					transition: .2s;
					transition-delay: .2s;
				}
				.open_effect .hb_btn__line::before {
					animation: open-line_top .4s ease 1 forwards;
				}
				@keyframes open-line_top {
					0% {
						top: 0px;
						transform: rotate(45deg);
					}
					60% {
						top: 0px;
						transform: rotate(0deg);
					}
					61% {
						top: 0px;
						transform: rotate(0deg);
					}
					100% {
						top: -6px;
						transform: rotate(0deg);
					}
				}
				.open_effect .hb_btn__line::after {
					animation: open-line_bottom .4s ease 1 forwards;
				}
				@keyframes open-line_bottom {
					0% {
						bottom: 0px;
						transform: rotate(-45deg);
					}
					60% {
						bottom: 0px;
						transform: rotate(0deg);
					}
					61% {
						bottom: 0px;
						transform: rotate(0deg);
					}
					100% {
						bottom: -6px;
						transform: rotate(0deg);
					}
				}
				.close_effect .hb_btn__line::before {
					animation: close-line_top .4s ease 1 forwards;
				}
				@keyframes close-line_top {
					0% {
						top: -6px;
						transform: rotate(0deg);
					}
					60% {
						top: 0px;
						transform: rotate(0deg);
					}
					61% {
						top: 0px;
						transform: rotate(0deg);
					}
					100% {
						top: 0px;
						transform: rotate(45deg);
					}
				}
				.close_effect .hb_btn__line::after {
					animation: close-line_bottom .4s ease 1 forwards;
				}
				@keyframes close-line_bottom {
					0% {
						bottom: -6px;
						transform: rotate(0deg);
					}
					60% {
						bottom: 0px;
						transform: rotate(0deg);
					}
					61% {
						bottom: 0px;
						transform: rotate(0deg);
					}
					100% {
						bottom: 0px;
						transform: rotate(-45deg);
					}
				}
		.global_nav {
			display: none;
			width: 100%;
			height: 100vh;
			padding: 98px 0 0;
			position: absolute;
			top: 0;
			left: 0;
			z-index: 1;
			pointer-events: auto;
		}
			.global_nav__bg {
				width: 100%;
				height: 100%;
				position: absolute;
				top: 0;
				left: 0;
				background-color: var(--color--base_white);
			}
				.global_nav__bg::before {
					display: none;
				}
			.global_nav__contents {
				width: 100%;
				height: calc(100dvh - 98px);
				overflow: auto;
				position: relative;
				z-index: 2;
			}
				.global_nav__contents__inner {
					width: calc((334 / 375) * 100%);
					height: auto;
					padding: 0 0 46px;
					margin: 0 auto;
				}
					.header__menu_list {
						flex-direction: column;
						justify-content: flex-start;
						align-items: stretch;
						gap: 0px;
						width: 100%;
						height: auto;
						padding: 0;
						border-radius: 0px;
						border-bottom: solid 1px var(--color--gray);
					}
						.header__menu_item {
							width: 100%;
							height: auto;
							font-size: 16px;
							line-height: 1.8;
							letter-spacing: 0em;
							border-top: solid 1px var(--color--gray);
						}
							.header__menu_item_link {
								justify-content: space-between;
								gap: 0px;
								width: 100%;
								height: auto;
								padding: 10px 0 9px;
								position: relative;
							}
						@media (any-hover: hover) {
							.header__menu_item_link {
								transition: color .4s;
							}
							.header__menu_item_link:hover {
								color: var(--color--purple);
							}
						}
								.has_child .header__menu_item_link::before,
								.has_child .header__menu_item_link::after {
									content: '';
									display: block;
									background-color: var(--color--purple);
									position: absolute;
									top: 50%;
									right: 6px;
									transform: translate(50%,-50%);
								}
								.has_child .header__menu_item_link::before {
									width: 12px;
									height: 1px;
								}
								.has_child .header__menu_item_link::after {
									width: 1px;
									height: 12px;
									transition: .4s;
								}
								.has_child .header__menu_item_link.side_open::after {
									transform: translate(50%,-50%) rotate(90deg);
								}
							.header__menu__child {
								display: none;
								width: 100%;
								height: auto;
								padding: 5px 0 15px;
							}
								.header__menu__child__wrap {
									width: 100%;
									height: auto;
								}
									.header__menu__child__heading {
										width: calc(50% - 15px);
										height: auto;
										padding: 0;
										margin: 0 auto 12px 0;
									}
										.header__menu__child__heading_txt {
											justify-content: space-between;
											gap: 0;
											width: 100%;
											font-size: 16px;
											letter-spacing: 0em;
										}
									.header__menu__child__contents {
										flex: initial;
										width: 100%;
										padding: 0;
										border-left: initial;
									}
										.header__grandchild__menu {
											gap: 10px 30px;
										}
											.header__grandchild__menu__item {
												font-size: 14px;
												line-height: 1.8;
											}
												.header__great_grandchild__menu {
													padding-left: 10px;
													padding-bottom: 5px;
													margin-top: 10px;
												}

/* footer */
	.footer__top_wrap {
		padding: 60px 0;
	}
			.footer__brand__inner {
				padding: 0 0 40px;
			}
				.footer__brand__list {
					gap: 14px;
					margin: 20px auto 0;
				}
		.footer__banner {
			padding: 30px 0 0;
		}
				.footer__banner__list {
					grid-template-columns: repeat(1, 1fr);
					gap: 10px;
					width: 333px;
					margin: 0 auto;
				}
	.footer__bottom_wrap {
		padding: 32px 0 10px;
	}
				.footer__info_wrap {
					width: 180px;
				}
					.footer__logo {
						width: 130px;
						margin-bottom: 20px;
					}
					.footer__address {
						font-size: 12px;
					}
			.footer__nav {
				padding: 0 0 64px;
			}
				.footer__menu_wrap {
					grid-template-columns: repeat(3, 1fr);
					gap: 30px 10px;
					width: calc(100% - 180px);
					padding-left: 40px;
				}
}

@media all and (min-width:1025px){
.tablet,.sp {display: none;}
.pc {display: inline-block;}
.view_sp {display: none;}
.view_tablet {display: none;}
.view_pc {display: block;}

#wrap {
	overflow: hidden;
}
h1{}
h2{}
h3{}
h4{}
h5{}

a.pdf_link::after {
	content: 'PDF';
	display: inline-block;
	width: 55px;
	height: 17px;
	margin-left: 14px;
	border-radius: 8.5px;
	background-color: var(--color--black);
	font-family: 'Satoshi', sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 17px;
	letter-spacing: 0em;
	color: #fff;
	text-align: center;
	position: relative;
	top: -1px;
}

/* パンクズ */
#pankuzu {
	width: 100%;
	height: 50px;
}
	.pankuzu__inner {
		width: 90%;
		max-width: 1086px;
		height: 100%;
		margin: 0 auto;
		display: flex;
		justify-content: flex-start;
		align-items: center;
	}
		.pankuzu__list {
			width: auto;
			height: auto;
			display: flex;
			justify-content: flex-start;
			align-items: center;
		}
			.pankuzu__item {
				max-width: 350px;
				margin-right: 38px;
				font-size: 0.6875rem;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0.05em;
				color: var(--color--gray);
				position: relative;
			}
			.pankuzu__item.pankuzu__item_home {
				padding-left: 24px;
			}
			.pankuzu__item:first-of-type {
				font-family: 'Satoshi', sans-serif;
			}
			.pankuzu__item:last-of-type {
				margin-right: 0;
			}
				.pankuzu__home_icon {
					width: 13px;
					height: auto;
					fill: var(--color--gray);
					position: absolute;
					top: -1px;
					left: 0;
				}
				.pankuzu__item_icon {
					width: 5px;
					height: auto;
					position: absolute;
					top: 2px;
					right: -22px;
					fill: var(--color--gray);
				}
				.pankuzu__item:last-of-type .pankuzu__item_icon {
					display: none;
				}
				.pankuzu__item a {
					display: inline-block;
					vertical-align: bottom;
					color: var(--color--gray);
				}
				.pankuzu__item.pankuzu__item_home a {
					position: relative;
					top: 1px;
				}
				.pankuzu__item a:hover {
					text-decoration: underline;
				}
				.now_page {
					display: inline-block;
					width: 100%;
					height: auto;
					padding-top: 1px;
					overflow: hidden;
					white-space: nowrap;
					text-overflow: ellipsis;	
					color: var(--color--darkgray);
					vertical-align: bottom;
				}

/* ページ見出し */
.page_heading {
	width: 100%;
	height: auto;
	padding: 80px 0px 120px;
	position: relative;
}
	.page_heading__inner {
		width: 90%;
		max-width: 1086px;
		height: auto;
		margin: 0 auto;
	}
		.page_heading__txt_wrap {
			width: 100%;
			height: auto;
		}
			.page_heading__txt_main {
				width: 100%;
				height: auto;
				margin-bottom: 14px;
				font-size: 3rem;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0.1em;
				text-indent: -.03em;
				color: var(--color--black);
			}
			.page_heading__txt_sub {
				width: 100%;
				height: auto;
				font-size: 0.75rem;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0.1em;
				color: var(--color--gray)
			}
	.page_heading__entxt {
		font-size: 10.625rem;
		font-weight: 700;
		line-height: 1;
		letter-spacing: 0em;
		color: #fff;
		white-space: nowrap;
		position: absolute;
		bottom: 55px;
		right: 0;
		z-index: -1;
	}

/* インデックスページ */
#index {
	width: 100%;
	height: auto;
}
.index_page {
	position: relative;
}
	.index__inner {
		width: 90%;
		max-width: 1086px;
		height: auto;
		padding: 0 0 80px;
		margin: 0 auto;
	}
		.index__list {
			width: 100%;
			height: auto;
			display: flex;
			justify-content: space-between;
			align-items: stretch;
			flex-wrap: wrap;
			row-gap: 60px;
		}
		.index__list::after {
			content: '';
			display: block;
			width: 30.9%;
			height: 0;
		}
			.index__item {
				width: 30.9%;
				height: auto;
			}
				.index__item a {
					display: flex;
					flex-direction: column;
					width: 100%;
					height: 100%;
				}
					.index__image {
						width: 100%;
						height: auto;
						overflow: hidden;
					}
						.index__image img {
							width: 100%;
							height: auto;
							transition: .3s;
						}
						.index__item a:hover .index__image img {
							transform: scale(1.02);
						}
					.index__details {
						width: 100%;
						flex: 1;
						background-color: #fff;
						padding: 18px 35px 20px 18px;
						position: relative;
					}
						.index__details_wrap {
							width: 100%;
							height: auto;
						}
							.index__details_ttl {
								width: 100%;
								height: auto;
								font-size: 1.25rem;
								font-weight: 700;
								line-height: 1.5;
								letter-spacing: 0.07em;
								position: relative;
							}
							.index__details_txt {
								width: 100%;
								height: auto;
								font-size: 0.875rem;
								font-weight: 500;
								line-height: 1.6;
								letter-spacing: 0.03em;
							}
							.index__details_ttl + .index__details_txt {
								margin-top: 8px;
							}
						.index__item__arrow {
							width: 7px;
							height: auto;
							position: absolute;
							top: 50%;
							right: 13px;
							transform: translate(0%,-50%);
							transition: .3s;
						}
						.index__item a:hover .index__item__arrow {
							right: 11px;
						}
}

@media all and (max-width:799px){
				.footer__menu_wrap {
					grid-template-columns: repeat(2, 1fr);
					gap: 30px 10px;
					padding-left: 20px;
				}
}

/* Tablet ================================================== */
@media all and (min-width:600px) and (max-width:1024px){
.pc,.sp {display: none;}
.tablet {display: inline-block;}
.view_pc {display: none;}
.view_sp {display: none;}
.view_tablet {display: block;}
body {
	padding: 70px 0px 0px;
}
#wrap {
	overflow: hidden;
}
h1{}
h2{}
h3{}
h4{}
h5{}

a.pdf_link::after {
	content: 'PDF';
	display: inline-block;
	width: 55px;
	height: 17px;
	margin-left: 14px;
	border-radius: 8.5px;
	background-color: var(--color--black);
	font-family: 'Satoshi', sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 17px;
	letter-spacing: 0em;
	color: #fff;
	text-align: center;
	position: relative;
	top: -1px;
}

/* パンクズ */
#pankuzu {
	display: none;
}

/* ページ見出し */
.page_heading {
	width: 100%;
	height: auto;
	padding: 60px 0px 80px;
	position: relative;
}
	.page_heading__inner {
		width: 90%;
		height: auto;
		margin: 0 auto;
	}
		.page_heading__txt_wrap {
			width: 100%;
			height: auto;
		}
			.page_heading__txt_main {
				width: 100%;
				height: auto;
				margin-bottom: 12px;
				font-size: 2rem;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0.1em;
				text-indent: -.03em;
				color: var(--color--black);
			}
			.page_heading__txt_sub {
				width: 100%;
				height: auto;
				font-size: 0.75rem;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0.1em;
				color: var(--color--gray)
			}
	.page_heading__entxt {
		font-size: 4rem;
		font-weight: 700;
		line-height: 1;
		letter-spacing: 0em;
		color: #fff;
		white-space: nowrap;
		position: absolute;
		bottom: 52px;
		right: 0;
		z-index: -1;
	}

/* インデックスページ */
#index {
	width: 100%;
	height: auto;
}
.index_page {
	position: relative;
}
	.index__inner {
		width: 90%;
		height: auto;
		padding: 0 0 100px;
		margin: 0 auto;
	}
		.index__list {
			width: 100%;
			height: auto;
			display: flex;
			justify-content: space-between;
			align-items: stretch;
			flex-wrap: wrap;
		}
			.index__item {
				width: 49%;
				height: auto;
				margin-bottom: 2%;
			}
				.index__item a {
					display: flex;
					flex-direction: column;
					width: 100%;
					height: 100%;
				}
					.index__image {
						width: 100%;
						height: auto;
					}
						.index__image img {
							width: 100%;
							height: auto;
						}
					.index__details {
						width: 100%;
						flex: 1;
						background-color: #fff;
						padding: 16px 40px 18px 20px;
						position: relative;
					}
						.index__details_wrap {
							width: 100%;
							height: auto;
						}
							.index__details_ttl {
								width: 100%;
								height: auto;
								font-size: 1.125rem;
								font-weight: 700;
								line-height: 1.5;
								letter-spacing: 0.1em;
							}
							.index__details_txt {
								width: 100%;
								height: auto;
								font-size: 0.875rem;
								font-weight: 500;
								line-height: 1.6;
								letter-spacing: 0.03em;
							}
							.index__details_ttl + .index__details_txt {
								margin-top: 4px;
							}
						.index__item__arrow {
							width: 7px;
							height: auto;
							position: absolute;
							top: 50%;
							right: 13px;
							transform: translate(0%,-50%);
						}
}

/* SP ================================================== */
@media all and (max-width:599px){
.pc,.tablet {display: none;}
.sp {display: inline-block;}
.view_pc {display: none;}
.view_tablet {display: none;}
.view_sp {display: block;}

#wrap {
	overflow: hidden;
}
h1{}
h2{}
h3{}
h4{}
h5{}

a.pdf_link::after {
	content: 'PDF';
	display: inline-block;
	width: 55px;
	height: 17px;
	margin-left: 14px;
	border-radius: 8.5px;
	background-color: var(--color--black);
	font-family: 'Satoshi', sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 17px;
	letter-spacing: 0em;
	color: #fff;
	text-align: center;
	position: relative;
	top: -1px;
}

/* header */
									.header__menu__child__heading {
										width: 100%;
										padding-left: 8px;
										margin: 0 auto 10px 0;
									}
										.header__menu__child__heading_txt {
											font-size: 14px;
										}
											.header__menu__child__heading_txt::after {
												width: 8px;
												height: 8px;
												background-color: var(--color--purple);
												mask-image: url(../image/icon-arrow@sp.svg);
												transform: rotate(0deg);
											}
										.header__grandchild__menu {
											grid-template-columns: repeat(1, 1fr);
											gap: 5px 0;
											padding-left: 17px;
										}
											.header__grandchild__menu__item {
												font-size: 12px;
												font-weight: 500;
											}
													.header__grandchild__menu__item_txt:not(._external):not(._has_g_child)::after {
														width: 8px;
														height: 8px;
														background-color: var(--color--purple);
														mask-image: url(../image/icon-arrow@sp.svg);
														top: 7px;
														transform: rotate(0deg);
													}
													.header__grandchild__menu__item_txt._external:not(._has_g_child)::after {
														background-color: var(--color--purple);
														position: relative;
														top: 5px;
													}
													.header__grandchild__menu__item_txt._has_g_child::before,
													.header__grandchild__menu__item_txt._has_g_child::after {
														background-color: var(--color--purple);
														top: 10px;
														right: 5px;
													}
													.header__grandchild__menu__item_txt._has_g_child::before {
														height: 1px;
													}
													.header__grandchild__menu__item_txt._has_g_child::after {
														width: 1px;
													}
											@media (any-hover: hover) {
													.header__grandchild__menu__item_txt:not(._external):not(._has_g_child):hover::after  {
														transform: rotate(0deg) translateX(4px);
													}
											}
												.header__great_grandchild__menu {
													margin-top: 5px;
												}
													.header__great_grandchild__menu__item {
														font-weight: 500;
														line-height: 1.8;
														letter-spacing: 0em;
													}
													.header__great_grandchild__menu__item:not(:last-of-type) {
														margin-bottom: 5px;
													}
															.header__great_grandchild__menu__item_txt::after {
																width: 8px;
																height: 8px;
																background-color: var(--color--purple);
																mask-image: url(../image/icon-arrow@sp.svg);
																top: 7px;
																transform: rotate(0deg);
															}

/* footer */
			.footer__brand__inner {
				width: 100%;
				padding: 0 0 30px;
				border-bottom: none;
			}
				#footer .section_heading {
					width: calc((334 / 375) * 100%);
					margin: 0 auto;
				}
				.footer__brand__list {
					display: grid;
					grid-template-columns: repeat(3, 1fr);
					gap: 1px;
					margin: 20px auto 0;
					background-color: var(--color--base_white);
				}
		.footer__banner {
			padding: 0;
		}
			.footer__banner__inner {
				width: calc((334 / 375) * 100%);
				padding: 30px 0 0;
				border-top: solid 1px var(--color--lightgray);
			}
				.footer__banner__list {
					width: 100%;
					max-width: 334px;
				}
		.footer__bottom_wrap__contents {
			width: calc((334 / 375) * 100%);
		}
			.footer__nav {
				flex-direction: column;
				justify-content: flex-start;
				align-items: stretch;
				gap: 28px;
				padding: 0 0 64px;
			}
				.footer__info_wrap {
					width: 100%;
					padding: 0;
				}
					.footer__logo {
						width: 111px;
						margin-bottom: 0;
					}
					.footer__address {
						display: none;
					}
				.footer__menu_wrap {
					display: block;
					width: 100%;
					padding-left: 0;
					border-bottom: solid 1px var(--color--gray);
				}
					.footer__menu__child_wrap {
						border-top: solid 1px var(--color--gray);
					}
							.footer__nav_hd {
								margin-bottom: 0;
							}
								.footer__nav_link {
									display: flex;
									justify-content: space-between;
									align-items: center;
									padding: 10px 0;
									position: relative;
								}
							@media (any-hover: hover) {
								.footer__nav_link:hover {
									text-decoration: none;
								}
							}
									.footer__nav_hd:not(._has_child) .footer__nav_link:not(._external_link)::after {
										content: '';
										display: block;
										width: 11px;
										height: 11px;
										background-color: var(--color--white);
										mask-image: url(../image/icon-arrow@sp.svg);
										mask-size: 100% 100%;
										mask-position: center;
										mask-repeat: no-repeat;
										position: relative;
										top: 1px;
									}
									.footer__nav_link._external_link::after {
										display: block;
										margin-left: 0;
										position: relative;
										top: 0px;
									}
									._has_child .footer__nav_link::before,
									._has_child .footer__nav_link::after {
										content: '';
										display: block;
										background-color: var(--color--white);
										position: absolute;
										top: 50%;
										right: 6px;
										transform: translate(50%,-50%);
									}
									._has_child .footer__nav_link::before {
										width: 12px;
										height: 1px;
									}
									._has_child .footer__nav_link::after {
										width: 1px;
										height: 12px;
										transition: .4s;
									}
									._has_child .footer__nav_link.side_open::after {
										transform: translate(50%,-50%) rotate(90deg);
									}
							.footer__nav_link__child {
								display: none;
								width: 100%;
								height: auto;
								padding: 5px 0 10px;
							}
									.footer__nav__child__item::before {
										top: 8px;
										left: auto;
										right: 0;
									}
									.footer__nav__child__item:has(._external_link)::before {
										display: none;
									}
									.footer__nav__child__link {
										width: 100%;
									}
										.footer__nav__child__link._external_link::after {
											display: inline-block;
											margin-left: 10px;
										}
		.footer__obj {
			width: calc((384.22 / 375) * 100%);
			bottom: calc((-19 / 375) * 100vw);
		}

/* パンクズ */
#pankuzu {
	display: none;
}

/* ページ見出し */
.page_heading {
	width: 100%;
	height: auto;
	padding: 18px 0px 80px;
	position: relative;
}
	.page_heading__inner {
		width: 90%;
		height: auto;
		margin: 0 auto;
	}
		.page_heading__txt_wrap {
			width: 100%;
			height: auto;
		}
			.page_heading__txt_main {
				width: 100%;
				height: auto;
				margin-bottom: 6px;
				font-size: 20px;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0.1em;
				text-indent: -.03em;
				color: var(--color--black);
			}
			.page_heading__txt_sub {
				width: 100%;
				height: auto;
				font-size: 11px;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0.1em;
				color: var(--color--gray)
			}
	.page_heading__entxt {
		font-size: 50px;
		font-weight: 700;
		line-height: 1.5;
		letter-spacing: 0em;
		color: #fff;
		white-space: nowrap;
		position: absolute;
		top: 10px;
		bottom: auto;
		right: 0;
		z-index: -1;
	}

/* インデックスページ */
#index {
	width: 100%;
	height: auto;
}
.index_page {
	position: relative;
}
	.index__inner {
		width: 90%;
		height: auto;
		padding: 0 0 80px;
		margin: 0 auto;
	}
		.index__list {
			width: 100%;
			height: auto;
		}
			.index__item {
				width: 100%;
				height: auto;
				margin-bottom: 40px;
			}
				.index__item a {
					display: block;
					width: 100%;
					height: auto;
				}
					.index__image {
						width: 100%;
						height: auto;
					}
						.index__image img {
							width: 100%;
							height: auto;
						}
					.index__details {
						width: 100%;
						height: auto;
						background-color: #fff;
						padding: 16px 40px 18px 20px;
						position: relative;
					}
						.index__details_wrap {
							width: 100%;
							height: auto;
						}
							.index__details_ttl {
								width: 100%;
								height: auto;
								font-size: 1.125rem;
								font-weight: 700;
								line-height: 1.5;
								letter-spacing: 0.1em;
							}
							.index__details_txt {
								width: 100%;
								height: auto;
								font-size: 0.875rem;
								font-weight: 500;
								line-height: 1.6;
								letter-spacing: 0.03em;
							}
							.index__details_ttl + .index__details_txt {
								margin-top: 4px;
							}
						.index__item__arrow {
							width: 7px;
							height: auto;
							position: absolute;
							top: 50%;
							right: 13px;
							transform: translate(0%,-50%);
						}

/* 共通 */

}

@media all and (max-width:429px){
/* footer */
				.footer__brand__list {
					grid-template-columns: repeat(2, 1fr);
				}
}