@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@100..900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700&display=swap');
::selection {
	background-color: var(--c-main-blue);
	color: var(--c-white);
}
:root {
	--c-white: #FFFFFF;
	--c-black: #343434;
	--c-bg-gray: #F7F7F7;
	--c-light-gray: #C4C4C4;
	--c-gray: #B3B3B3;
	--c-dark-gray: #7B7B7B;
	--c-blue: #0870CA;
	--c-main-blue: #116AF8;
	--c-dark-blue: #1779B6;
	--c-yellow: #CEF811;
	--vw: 1440;
}
@media all and (max-width: 1024px) {
:root {
	--vw: 375;
}
}

/* ページ遷移
   fade in 0.5s / fade out 1.2s (遷移後の余韻を長く) */
.page_transition {
	position: fixed;
	inset: 0;
	z-index: 10000;
	pointer-events: none;
	background-color: var(--c-bg-gray);
	opacity: 0;
	visibility: hidden;
	transition-property: opacity, visibility;
	transition-duration: 1s, 0s;
	transition-timing-function: ease, linear;
	transition-delay: 0s, 1s;
}
.page_transition._show,
html._in_transition .page_transition {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition-duration: 0.5s, 0s;
	transition-delay: 0s, 0s;
}
.page_transition::before {
	content: '';
	background-image: url(../image/bg@pc.webp);
	background-size: 100% auto;
	background-position: top center;
	background-repeat: repeat;
	mix-blend-mode: multiply;
	opacity: .3;
	pointer-events: none;
	position: absolute;
	inset: 0;
}
	.page_transition__inner {
		width: calc((300 / var(--vw)) * 100vw);
		max-width: 300px;
		height: auto;
		aspect-ratio: 100 / 50;
		/* border: solid 1px red; */
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		opacity: 0;
		transition-property: opacity;
		transition-duration: 0.3s;
		transition-timing-function: ease;
		transition-delay: 0s;
	}
	.page_transition._show .page_transition__inner,
	html._in_transition .page_transition .page_transition__inner {
		opacity: 1;
		transition-delay: 0.3s;
	}
		.page_transition__icon {
			width: calc((40 / 300) * 100%);
			position: absolute;
			top: 25%;
			left: 60%;
			transform: translate(-50%, -50%);
		}
		.page_transition__character {
			width: calc((80 / 300) * 100%);
			position: absolute;
			bottom: calc((2 / 50) * 100%);
			left: calc((70 / 300) * 100%);
		}

/* Lenis 推奨 CSS (慣性スクロール用)
   ※ 公式の .lenis-stopped { overflow: clip } は sticky 要素を壊すため不採用。
      代わりに body.scroll-stop でスクロール禁止を担保する */
html.lenis,
html.lenis body {
	height: auto;
}
.lenis.lenis-smooth {
	scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
	overscroll-behavior: contain;
}
.lenis.lenis-smooth iframe {
	pointer-events: none;
}

/* スクロール禁止 (ハンバーガーメニュー / オープニング等で付与) */
body.scroll-stop {
	width: 100%;
	position: fixed;
	overflow: hidden;
}

html {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body {
	min-height: 100vh;
	margin: 0;
	padding: 0;
	background-color: var(--c-bg-gray);
	scroll-behavior: smooth;
	text-rendering: optimizeSpeed;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 400;
	font-style: normal;
	line-height: 1.8;
	letter-spacing: 0em;
	color: var(--c-black);
}
._roboto {
	font-family: "Roboto", sans-serif;
}

/* HEADER */
#header {
	width: 100%;
	height: auto;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
}
	.header__inner {
		width: 100%;
		height: 0;
		position: relative;
	}
		.header__logo {
			width: 60px;
			height: auto;
			position: absolute;
			top: 40px;
			left: calc((60 / var(--vw)) * 100%);
		}
			.header__logo_link {
				display: block;
				width: 100%;
				height: auto;
			}
				.header__logo_link svg {
					fill: var(--c-main-blue);
					transition: fill .2s;
				}
				#header._on_dark .header__logo_link svg {
					fill: var(--c-white);
				}
		.global_nav {
			width: auto;
			height: auto;
			position: absolute;
			top: 30px;
			right: calc((30 / var(--vw)) * 100%);
		}
			.global_nav__inner {
				width: auto;
				height: auto;
			}
				.global_nav__wrap {
					width: auto;
					height: auto;
				}
					.global_nav__menu {
						width: auto;
						height: auto;
						border-radius: 9999px;
						background-color: rgba(255, 255, 255, 0.6);
						border: solid 1px var(--c-white);
						backdrop-filter: blur(4px);
						-webkit-backdrop-filter: blur(4px);
					}
						.global_nav__menu_list {
							display: flex;
							justify-content: flex-end;
							align-items: center;
							gap: 9px;
							width: auto;
							height: auto;
						}
							.global_nav__menu_list__item {
								width: auto;
								height: auto;
							}
							.global_nav__menu_list__item._contact {
								margin-left: 18px;
							}
								.global_nav__menu_list__item__link {
									display: block;
									width: auto;
									height: auto;
									padding: 6px 13px 4px;
									border-radius: 9999px;
									color: var(--c-black);
									position: relative;
								}
								._contact .global_nav__menu_list__item__link {
									display: flex;
									justify-content: space-between;
									align-items: center;
									padding: 7px 13px 5px;
									background-color: var(--c-main-blue);
									background-image: url(/assets/image/header-contact_texture.webp);
									background-size: cover;
									background-position: center;
									background-repeat: no-repeat;
									font-size: 13px;
									font-weight: 700;
									color: var(--c-white);
								}
									.global_nav__menu_list__item__link:not(._contact)::after {
										content: '';
										display: block;
										width: 100%;
										height: 100%;
										border-radius: 9999px;
										background-color: var(--c-main-blue);
										background-image: url(/assets/image/header-contact_texture.webp);
										background-size: cover;
										background-position: center;
										background-repeat: no-repeat;
										opacity: 0;
										position: absolute;
										top: 0;
										left: 0;
										z-index: -1;
									}
									.global_nav__menu_list__item__link__en_text {
										display: block;
									}
									.global_nav__menu_list__item__link__arrow {
										display: block;
										width: 11px;
										height: auto;
										margin-left: 12px;
										position: relative;
										top: -1px;
									}
										.global_nav__menu_list__item__link__arrow svg {
											fill: var(--c-white);
										}
							@media (any-hover: hover) {
								.global_nav__menu_list__item__link {
									transition: .4s;
								}
								.global_nav__menu_list__item:not(._contact) .global_nav__menu_list__item__link:hover {
									color: var(--c-white);
								}
								.global_nav__menu_list__item._contact .global_nav__menu_list__item__link:hover {
									filter: brightness(1.1);
								}
									.global_nav__menu_list__item__link::after {
										transition: .4s;
										transform: scale(0.9);
										will-change: transform;
									}
									.global_nav__menu_list__item:not(._contact) .global_nav__menu_list__item__link:hover::after {
										opacity: 1;
										transform: scale(1);
									}
									.global_nav__menu_list__item__link__arrow {
										transition: .4s;
										transform: translateX(0);
										will-change: transform;
									}
									.global_nav__menu_list__item__link:hover .global_nav__menu_list__item__link__arrow {
										transform: translateX(5px);
									}
							}

main {
	width: 100%;
	overflow-x: clip;
}

section {
	position: relative;
	z-index: 3;
}

/* CONTACT_SEC */
#contact_sec {
	width: 100%;
	height: auto;
	background-color: var(--c-blue);
	position: relative;
	z-index: 1;
}
	#contact_sec::after {
		content: '';
		display: block;
		width: 100%;
		height: 10vh;
		background-color: var(--c-blue);
		position: absolute;
		top: 1px;
		left: 0;
		transform: translateY(-100%);
		z-index: -1;
	}
	.contact_sec__inner {
		width: 100%;
		/* height: 100vh; */
		height: auto;
		padding: 0 0 max(calc((50 / var(--vw)) * 100vw), 50px);
	}
		.contact_sec__contents_wrap {
			width: calc((1740 / var(--vw)) * 100vw);
			height: auto;
			/* margin-top: -100vh; */
			position: relative;
			left: 50%;
			transform: translateX(-50%);
		}
			.contact_sec__contents {
				display: flex;
				flex-direction: column;
				justify-content: center;
				align-items: center;
				width: 100%;
				/* height: calc(100vh - 50px); */
				height: auto;
				/* padding: 0 0 calc((12 / 722) * 100vh); */
				padding: calc((230 / var(--vw)) * 100vw) 0 calc((256 / var(--vw)) * 100vw);
				margin: 0 auto;
				border-radius: 0 0 50% 50% / 0 0 525px 525px;
				/* background-color: var(--c-bg-gray); */
				position: relative;
				z-index: 2;
				backface-visibility: hidden;
			}
				.contact_sec__contents_bg {
					width: 100%;
					height: calc(100% + calc((50 / var(--vw)) * 100vw));
					border-radius: 0 0 50% 50% / 0 0 525px 525px;
					background-color: var(--c-bg-gray);
					box-shadow: inset 0 0 10px color-mix(in srgb, var(--c-black) 40%, transparent);
					position: absolute;
					top: calc((-50 / var(--vw)) * 100vw);
					left: 50%;
					transform: translateX(-50%);
					z-index: -1;
					will-change: transform;
				}
				.contact_sec__balloon {
					display: flex;
					justify-content: center;
					align-items: center;
					width: max(calc((375 / var(--vw)) * 100vw), 375px);
					height: max(calc((60 / var(--vw)) * 100vw), 60px);
					margin-bottom: max(calc((54 / var(--vw)) * 100vw), 54px);
					border-radius: 9999px;
					background-color: var(--c-white);
					border: solid max(calc((1 / var(--vw)) * 100vw), 1px) var(--c-black);
					position: relative;
					transform: translateY(0.5vw);
					opacity: 0;
					transition: .2s;
				}
				._run.contact_sec__balloon {
					transform: translateY(0);
					opacity: 1;
					transition: .6s;
				}
					.contact_sec__balloon__text {
						font-size: max(calc((12 / var(--vw)) * 100vw), 12px);
						font-weight: 500;
						line-height: 1.5;
						letter-spacing: 0.1em;
						color: var(--c-black);
						overflow: hidden;
					}
						.contact_sec__balloon__text span {
							display: inline-block;
							transform: translateY(100%);
							transition: .2s;
						}
						._run .contact_sec__balloon__text span {
							transform: translateY(0);
							transition: .4s var(--delay);
						}
					.contact_sec__balloon__line {
						display: block;
						width: max(calc((1 / var(--vw)) * 100vw), 1px);
						height: max(calc((20 / var(--vw)) * 100vw), 20px);
						background-color: var(--c-black);
						position: absolute;
						bottom: max(calc((-11 / var(--vw)) * 100vw), -11px);
						left: 50%;
						transform: translateX(-50%);
					}
				.contact_sec__heading {
					width: fit-content;
					height: auto;
				}
					.contact_sec__heading__main_text_wrap {
						display: flex;
						justify-content: center;
						align-items: flex-end;
						width: fit-content;
						height: auto;
						padding-right: max(calc((10 / var(--vw)) * 100vw), 10px);
						margin-bottom: max(calc((31 / var(--vw)) * 100vw), 31px);
					}
						.contact_sec__heading__main_text.cmn_heading__main_text {
							width: max(calc((413 / var(--vw)) * 100vw), 413px);
							height: auto;
							margin-right: max(calc((38 / var(--vw)) * 100vw), 38px);
							transform: translateY(0);
							opacity: 1;
							transition: initial;
							transition-delay: initial;
						}
							.contact_sec__heading__main_text svg {
								fill: var(--c-black);
							}
						.contact_sec__heading__arrow.cmn_arrow {
							width: max(calc((51 / var(--vw)) * 100vw), 51px);
							height: max(calc((36 / var(--vw)) * 100vw), 36px);
							padding-top: max(calc((1 / var(--vw)) * 100vw), 1px);
							margin-bottom: max(calc((7 / var(--vw)) * 100vw), 7px);
							border-radius: 50%;
							border: solid max(calc((1 / var(--vw)) * 100vw), 1px) var(--c-main-blue);
						}
							.contact_sec__heading__arrow.cmn_arrow svg {
								fill: var(--c-main-blue);
							}
					@media (any-hover: hover) {
							.contact_sec__heading__main_text svg {
								transition: .4s;
							}
							.contact_sec__contents:hover .contact_sec__heading__main_text svg {
								fill: var(--c-main-blue);
							}
						.contact_sec__contents:hover .contact_sec__heading__arrow.cmn_arrow {
							background-color: var(--c-main-blue);
						}
							.contact_sec__contents:hover .contact_sec__heading__arrow.cmn_arrow svg {
								fill: var(--c-white);
							}
					}
					.contact_sec__heading__sub_text {
						width: 100%;
						height: auto;
						font-size: max(calc((14 / var(--vw)) * 100vw), 14px);
						font-weight: 300;
						line-height: 1.5;
						letter-spacing: 0.05em;
						text-align: center;
						color: var(--c-black);
					}
						.contact_sec__heading__sub_text.cmn_heading__sub_text span {
							opacity: 1;
							transform: translateY(0);
							transition: initial;
						}
			.contact_sec__character {
				width: max(calc((68 / var(--vw)) * 100vw), 68px);
				height: auto;
				opacity: 0;
				transform-origin: center bottom;
				position: absolute;
				bottom: calc((-24 / var(--vw)) * 100vw);
				left: 50%;
				z-index: 3;
				pointer-events: none;
			}

/* FOOTER */
#footer {
	width: 100%;
	height: auto;
	padding: 50px 0 90px;
	background-color: var(--c-blue);
	position: relative;
	z-index: 2;
}
	.footer__inner {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		width: calc((1200 / var(--vw)) * 100vw);
		height: auto;
		margin: 0 auto;
		position: relative;
	}
		.footer__logo {
			width: 60px;
			height: auto;
		}
			.footer__logo__link {
				display: block;
				width: 100%;
				height: auto;
			}
				.footer__logo__link svg {
					fill: var(--c-white);
				}
		.footer__menu {
			width: fit-content;
			height: auto;
			padding: 46px 46px 46px 28px;
			border-radius: 20px;
			background-color: var(--c-white);
		}
			.footer__menu__list {
				display: flex;
				flex-direction: column;
				justify-content: flex-start;
				align-items: flex-start;
				gap: 10px;
				width: auto;
				height: auto;
			}
				.footer__menu__list__item {
					width: auto;
					height: auto;
				}
					.footer__menu__list__item__link {
						display: flex;
						justify-content: flex-start;
						align-items: center;
						color: var(--c-main-blue);
					}
						.footer__menu__list__item__arrow {
							display: block;
							width: 11px;
							height: auto;
							margin-right: 16px;
							position: relative;
							top: -1px;
						}
							.footer__menu__list__item__arrow svg {
								fill: var(--c-main-blue);
							}
						.footer__menu__list__item__en_text {
							display: block;
							width: 97px;
							height: auto;
							font-size: 14px;
							font-weight: 500;
							line-height: 1.5;
							letter-spacing: 0.05em;
						}
						.footer__menu__list__item__ja_text {
							display: block;
							width: fit-content;
							height: auto;
							font-size: 10px;
							font-weight: 700;
							line-height: 1.5;
							letter-spacing: 0.05em;
						}
				@media (any-hover: hover) {
					.footer__menu__list__item__link {
						transition: .4s;
					}
					.footer__menu__list__item__link:hover {
						color: var(--c-black);
					}
						.footer__menu__list__item__arrow {
							transition: .4s;
							transform: translateX(0);
						}
						.footer__menu__list__item__link:hover .footer__menu__list__item__arrow {
							transform: translateX(5px);
						}
							.footer__menu__list__item__arrow svg {
								transition: .4s;
							}
							.footer__menu__list__item__link:hover .footer__menu__list__item__arrow svg {
								fill: var(--c-black);
							}
				}
		.footer__copyright {
			width: fit-content;
			height: auto;
			font-size: 10px;
			font-weight: 700;
			line-height: 1.5;
			letter-spacing: 0.05em;
			color: var(--c-white);
			position: absolute;
			bottom: 4px;
			left: 0;
		}

/* 共通パーツ */
.cmn_heading__main_text {
	height: auto;
	transform: translateY(0.5vw);
	opacity: 0;
	transition: .6s;
}
._run .cmn_heading__main_text {
	transform: translateY(0);
	opacity: 1;
}
.cmn_heading__sub_text {
	width: 100%;
	height: auto;
	font-family: "Roboto", sans-serif;
	font-size: max(calc((14 / var(--vw)) * 100vw), 14px);
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0.05em;
	overflow: hidden;
}
	.cmn_heading__sub_text span {
		display: inline-block;
		opacity: 0;
		transform: translateY(100%);
		transition: .4s;
	}
	._run > .cmn_heading__sub_text span {
		opacity: 1;
		transform: translateY(0);
	}

.cmn_arrow {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 39px;
	height: 26px;
	border-radius: 50%;
	border: solid 1px var(--c-main-blue);
	transition: .4s;
}
	.cmn_arrow svg {
		width: 13px;
		fill: var(--c-main-blue);
		transition: .4s;
	}
*:hover > .cmn_arrow {
	background-color: var(--c-main-blue);
}
*:hover > .cmn_arrow svg {
	fill: var(--c-white);
}

.cmn_btn_wrap {
	width: 360px;
	height: 70px;
}
	.cmn_btn {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
		height: 100%;
		border-radius: 9999px;
		background-image: url(../image/btn-bg.webp);
		background-size: 404px auto;
		background-position: 54.1111% 50%;
		background-repeat: no-repeat;
		position: relative;
		user-select: none;
	}
		.cmn_btn__text {
			font-size: 18px;
			font-weight: 500;
			line-height: 2.2;
			letter-spacing: 0.1em;
			color: var(--c-white);
		}
		.cmn_btn__arrow {
			padding-top: 1px;
			border-color: var(--c-white);
			position: absolute;
			top: 50%;
			right: 19px;
			transform: translateY(-50%);
			z-index: 2;
		}
			.cmn_btn__arrow svg {
				width: 11px;
				fill: var(--c-white);
			}
	@media (any-hover: hover) {
		.cmn_btn:hover .cmn_btn__arrow {
			background-color: var(--c-white);
		}
			.cmn_btn:hover .cmn_btn__arrow svg {
				fill: var(--c-black);
			}
	}
		.cmn_btn__external_icon {
			width: 13px;
			height: 13px;
			position: absolute;
			top: 50%;
			right: 34px;
			transform: translateY(-50%);
			z-index: 2;
		}
			.cmn_btn__external_icon svg {
				fill: var(--c-white);
			}

/* ================================================== PC */
@media all and (min-width: 1025px) {
body::after {
	background-image: url(/assets/image/bg@pc.webp);
}
.sp      { display: none; }
.pc      { display: inline-block; }
.view_sp { display: none; }
.view_pc { display: block; }

/* header */
						.global_nav__menu_list {
							padding: 7px 7px 7px 27px;
							border-radius: 9999px;
							font-family: "Roboto", sans-serif;
							font-size: 14px;
							font-weight: 500;
							line-height: 1.5;
							letter-spacing: 0.05em;
						}
								._contact .global_nav__menu_list__item__link {
									display: flex;
									justify-content: space-between;
									align-items: center;
									padding: 7px 13px 5px;
									background-color: var(--c-main-blue);
									background-image: url(/assets/image/header-contact_texture.webp);
									background-size: cover;
									background-position: center;
									background-repeat: no-repeat;
									font-size: 13px;
									font-weight: 700;
									color: var(--c-white);
								}
									.global_nav__menu_list__item__link:not(._contact)::after {
										content: '';
										display: block;
										width: 100%;
										height: 100%;
										border-radius: 9999px;
										background-color: var(--c-main-blue);
										background-image: url(/assets/image/header-contact_texture.webp);
										background-size: cover;
										background-position: center;
										background-repeat: no-repeat;
										opacity: 0;
										position: absolute;
										top: 0;
										left: 0;
										z-index: -1;
									}


}

/* ================================================== SP */
@media all and (max-width: 1024px) {
.page_transition::before {
	background-image: url(../image/bg@sp.webp);
}

body::after {
	background-image: url(/assets/image/bg@sp.webp);
}
.pc      { display: none; }
.sp      { display: inline-block; }
.view_pc { display: none; }
.view_sp { display: block; }

/* header */
		.header__logo {
			width: 40px;
			top: 21px;
			left: 21px;
			z-index: 2;
		}
			.header__logo svg {
				transition: .4s;
			}
			.header__logo._opened svg {
				fill: var(--c-white);
			}
		.global_nav {
			width: 100%;
			height: 100vh;
			top: 0;
			right: 0;
			z-index: 1;
			opacity: 0;
			visibility: hidden;
			transition: .4s;
		}
		.global_nav._opened {
			opacity: 1;
			visibility: visible;
		}
			.global_nav__inner {
				width: 100%;
				min-height: 100svh;
				padding: 164px 0 107px;
				background-color: var(--c-blue);
				position: relative;
			}
				.global_nav__wrap {
					width: calc((288 / var(--vw)) * 100%);
					margin: 0 auto;
					position: relative;
					z-index: 2;
				}
					.global_nav__character {
						width: 100%;
						height: 0;
						position: relative;
					}
						.global_nav__character__wrap {
							width: 135px;
							height: auto;
							position: absolute;
							top: -44px;
							left: calc((121 / 288) * 100%);
							z-index: 2;
						}
							.global_nav__character__image {
								width: 46px;
								height: auto;
								position: absolute;
								top: 0;
								left: 0;
								z-index: 1;
							}
							.global_nav__character__lines {
								width: 80px;
								height: auto;
								position: absolute;
								top: 1px;
								left: 55px;
								z-index: 2;
							}
					.global_nav__menu {
						width: 100%;
						padding: 40px 54px;
						border-radius: 20px;
						background-color: var(--c-white);
						border: initial;
						backdrop-filter: initial;
						-webkit-backdrop-filter: initial;
					}
						.global_nav__menu_list {
							flex-direction: column;
							justify-content: flex-start;
							align-items: flex-start;
							gap: 20px;
							width: 100%;
						}
							.global_nav__menu_list__item {
								width: 100%;
							}
							.global_nav__menu_list__item._contact {
								margin-left: 0;
							}
								.global_nav__menu_list__item__link {
									width: 100%;
									padding: 0;
									border-radius: 0;
								}
								._contact .global_nav__menu_list__item__link {
									display: block;
									padding: 0;
									background-color: transparent;
									background-image: none;
									color: var(--c-main-blue);
									font-size: inherit;
									font-weight: inherit;
								}
									.global_nav__menu_list__item__link__en_text {
										font-size: 20px;
										font-weight: 400;
										line-height: 1.5;
										letter-spacing: 0.05em;
										color: var(--c-main-blue);
									}
									.global_nav__menu_list__item__link__ja_text {
										display: block;
										font-size: 10px;
										font-weight: 500;
										line-height: 1.5;
										letter-spacing: 0.05em;
										color: var(--c-main-blue);
									}
									.global_nav__menu_list__item__link__arrow {
										margin-left: 0;
										position: absolute;
										top: 11px;
										right: 0;
									}
										.global_nav__menu_list__item__link__arrow svg {
											fill: var(--c-main-blue);
										}
				.global_nav__bottom {
					width: 100%;
					height: 0;
					position: absolute;
					bottom: 0;
					left: 0;
					z-index: 1;
				}
					.global_nav__bottom__image {
						width: 136px;
						height: auto;
						position: absolute;
						bottom: 0;
					}
					.global_nav__bottom__image._01 {
						left: 0;
					}
					.global_nav__bottom__image._02 {
						right: 0;
					}
		.header__hamburger {
			width: 50px;
			height: 50px;
			position: absolute;
			top: 21px;
			right: 20px;
			z-index: 2;
		}
			.hbg_btn {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 100%;
				height: 100%;
				outline: none;
				padding: 0;
				border-radius: 9999px;
				background-color: rgba(255, 255, 255, 0.6);
				border: solid 1px var(--c-white);
				backdrop-filter: blur(4px);
				-webkit-backdrop-filter: blur(4px);
				cursor: pointer;
			}
				.hbg_btn_line {
					display: block;
					width: 28px;
					height: 2px;
					position: relative;
				}
					.hbg_btn_line::before,
					.hbg_btn_line::after {
						content: '';
						display: block;
						width: 100%;
						height: 100%;
						background-color: var(--c-main-blue);
						position: absolute;
						left: 0;
					}
					.hbg_btn_line::before {
						top: -3px;
					}
					.hbg_btn_line::after {
						bottom: -3px;
					}
					._open .hbg_btn_line::before {
						animation: hbg_btn-line_before-open .5s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
					}
					._open .hbg_btn_line::after {
						animation: hbg_btn-line_after-open .5s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
					}
						@keyframes hbg_btn-line_before-open {
							0% {
								top: -3px;
								transform: translate(0%,0%);
							}
							60% {
								top: 0px;
								transform: translate(0%,0%) rotate(0deg);
							}
							61% {
								top: 0px;
							}
							100% {
								top: 0px;
								transform: translate(0%,0%) rotate(12deg);
							}
						}
						@keyframes hbg_btn-line_after-open {
							0% {
								bottom: -3px;
								transform: translate(0%,0%);
							}
							60% {
								bottom: 0px;
								transform: translate(0%,0%) rotate(0deg);
							}
							61% {
								bottom: 0px;
							}
							100% {
								bottom: 0px;
								transform: translate(0%,0%) rotate(-12deg);
							}
						}
					._close .hbg_btn_line::before {
						animation: hbg_btn-line_before-close .5s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
					}
					._close .hbg_btn_line::after {
						animation: hbg_btn-line_after-close .5s cubic-bezier(0.65, 0, 0.35, 1) 1 forwards;
					}
						@keyframes hbg_btn-line_before-close {
							0% {
								top: 0px;
								transform: translate(0%,0%) rotate(12deg);
							}
							60% {
								top: 0px;
							}
							61% {
								top: 0px;
								transform: translate(0%,0%) rotate(0deg);
							}
							100% {
								top: -3px;
								transform: translate(0%,0%);
							}
						}
						@keyframes hbg_btn-line_after-close {
							0% {
								bottom: 0px;
								transform: translate(0%,0%) rotate(-12deg);
							}
							60% {
								bottom: 0px;
							}
							61% {
								bottom: 0px;
								transform: translate(0%,0%) rotate(0deg);
							}
							100% {
								bottom: -3px;
								transform: translate(0%,0%);
							}
						}

/* CONTACT_SEC */
	.contact_sec__inner {
		height: auto;
	}
		.contact_sec__contents_wrap {
			width: calc((487 / var(--vw)) * 100vw);
			margin-top: 0;
		}
			.contact_sec__contents {
				padding: calc((80 / var(--vw)) * 100vw) 0 calc((168 / var(--vw)) * 100vw);
				border-radius: 0 0 50% 50% / 0 0 calc((166 / var(--vw)) * 100vw) calc((166 / var(--vw)) * 100vw);
			}
				.contact_sec__contents_bg {
					border-radius: 0 0 50% 50% / 0 0 calc((166 / var(--vw)) * 100vw) calc((166 / var(--vw)) * 100vw);
				}
				.contact_sec__balloon {
					flex-direction: column;
					width: 100%;
					height: auto;
					margin-bottom: calc((16 / var(--vw)) * 100vw);
					border-radius: 0px;
					background-color: initial;
					border: none;
				}
					.contact_sec__balloon__text {
						width: 100%;
						height: auto;
						font-size: calc((12 / var(--vw)) * 100vw);
						text-align: center;
						margin: 0 auto calc((13 / var(--vw)) * 100vw);
					}
					.contact_sec__balloon__line {
						width: calc((1 / var(--vw)) * 100vw);
						height: calc((17 / var(--vw)) * 100vw);
						margin: 0 auto;
						position: initial;
					}
				.contact_sec__heading {
					width: 100%;
				}
					.contact_sec__heading__main_text_wrap {
						width: 100%;
						flex-direction: column;
						justify-content: center;
						align-items: center;
						padding-right: 0;
						margin: 0 auto calc((36 / var(--vw)) * 100vw);
						position: relative;
					}
						.contact_sec__heading__main_text.cmn_heading__main_text {
							width: calc((162 / var(--vw)) * 100vw);
							margin: 0 auto;
						}
						.contact_sec__heading__arrow.cmn_arrow {
							width: calc((51 / var(--vw)) * 100vw);
							height: calc((36 / var(--vw)) * 100vw);
							margin: 0;
							border: solid calc((1 / var(--vw)) * 100vw) var(--c-main-blue);
							position: absolute;
							top: calc((100 / var(--vw)) * 100vw);
							left: 50%;
							transform: translateX(-50%);
						}
					.contact_sec__heading__sub_text {
						font-size: calc((14 / var(--vw)) * 100vw);
					}
				.contact_sec__character {
					width: calc((64 / var(--vw)) * 100vw);
					bottom: calc((-22 / var(--vw)) * 100vw);
				}

/* FOOTER */
#footer {
	padding: 58px 0 20px;
	margin-top: -1px;
}
	.footer__inner {
		flex-direction: column;
		justify-content: flex-start;
		align-items: center;
		width: 100%;
	}
		.footer__logo {
			margin: 0 auto 58px;
		}
		.footer__menu {
			width: calc((274 / var(--vw)) * 100vw);
			height: auto;
			padding: 46px 0 46px 28px;
			margin: 0 auto 80px;
		}
		.footer__copyright {
			width: 100%;
			font-size: 12px;
			font-weight: 500;
			text-align: center;
			position: initial;
		}

/* 共通パーツ */
.cmn_heading__main_text {
	height: auto;
}
.cmn_heading__sub_text {
	font-size: calc((14 / var(--vw)) * 100vw);
}

.cmn_arrow {
	width: calc((30 / var(--vw)) * 100vw);
	height: calc((20 / var(--vw)) * 100vw);
	border-width: calc((1 / var(--vw)) * 100vw);
}
	.cmn_arrow svg {
		width: calc((13 / var(--vw)) * 100vw);
	}
	.cmn_btn .cmn_arrow svg {
		width: calc((11 / var(--vw)) * 100vw);
	}

.cmn_btn_wrap {
	width: calc((310 / var(--vw)) * 100vw);
	height: calc((54 / var(--vw)) * 100vw);
}
	.cmn_btn {
		background-size: calc((404 / 310) * 100%) auto;
	}
		.cmn_btn__text {
			font-size: calc((14 / var(--vw)) * 100vw);
		}
		.cmn_btn__arrow {
			padding-top: calc((1 / var(--vw)) * 100vw);
			right: calc((19 / var(--vw)) * 100vw);
		}
			.cmn_btn__arrow svg {
				width: calc((11 / var(--vw)) * 100vw);
			}
		.cmn_btn__external_icon {
			width: calc((12 / var(--vw)) * 100vw);
			height: calc((12 / var(--vw)) * 100vw);
			right: calc((26 / var(--vw)) * 100vw);
		}
}

@media all and (max-width: 768px) {
	
}