@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400..500&display=swap');
* {
		margin: 0;
		padding: 0;
}
html {
		overflow-y: scroll;
		overscroll-behavior: none;
}
img {
		border: none;
		vertical-align: top;
}
.container {
		overflow: hidden
}
body {
		font-family: YakuHanMP, "Noto Serif JP", serif;
		font-size: 16px;
		font-weight: 500;
		overscroll-behavior: none;
		background: #9FCAFC;
		background: linear-gradient(180deg, rgba(159, 202, 252, 1) 0%, rgba(255, 255, 255, 1) 70%);
		color: #000;
		position: relative;
		transition: background 0.8s;
}
@media(max-width: 767px) {
		body {
				font-size: 15px;
		}
}
body.step3 {
		background: #ffdbe4;
		background: linear-gradient(180deg, rgba(255, 219, 228, 1) 0%, rgba(255, 255, 255, 1) 70%);
}
body.step5 {
		background: #C3DBBC;
		background: linear-gradient(180deg, rgba(195, 219, 188, 1) 0%, rgba(255, 255, 255, 1) 70%);
}
body.step7 {
		background: #C8CAEF;
		background: linear-gradient(180deg, rgba(200, 202, 239, 1) 0%, rgba(255, 255, 255, 1) 70%);
}
h1, h2, h3, h4, h5, p, li {
		font-feature-settings: "palt";
		letter-spacing: 0.03em;
}
.header_logo {
		position: fixed;
		width: 225px;
		left: 40px;
		top: 35px;
		z-index: 3000
}
.header_logo img {
		width: 100%;
		height: auto;
}
.header_nav {
		width: 420px;
		position: fixed;
		right: 40px;
		top: 35px;
		z-index: 100
}
.header_nav ul {
		display: flex;
		justify-content: space-between;
		align-items: center;
		list-style: none;
		font-family: "Times New Roman", Times, "serif";
		font-size: 16px;
}
.header_nav li a {
		color: #000;
		text-decoration: none;
}
.header_nav li span {
		display: inline-block;
		position: relative;
}
.header_nav li:not(.contact_btn) span::after {
		content: '';
		display: block;
		position: absolute;
		bottom: -3px;
		left: 0;
		width: 100%;
		height: 1px;
		background: #000;
		transform-origin: left center;
		transform: scaleX(0);
		transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
.header_nav li.contact_btn a, .navBoard li.contact_btn a {
		height: 32px;
		display: flex;
		justify-content: center;
		align-items: center;
		border: 1px solid #000;
		border-radius: 60px;
		box-sizing: border-box;
		padding: 0 10px;
		transition: background 0.3s;
}
.navBoard li.contact_btn a {
		height: 40px;
		padding: 0 15px;
}
.navBoard li.contact_btn a span {
		transform: translateY(-2px);
}
@media (hover: hover) {
		.header_nav li:not(.contact_btn) a:hover span::after {
				transform: scaleX(1)
		}
		li.contact_btn a:hover {
				background: #000;
				color: #fff;
		}
}
@media(max-width: 767px) {
		.header_logo {
				width: 120px;
				left: 20px;
				top: 25px;
		}
		.header_nav {
				display: none
		}
}
main {
		padding-top: 150px;
}
@media(max-width: 767px) {
		main {
				padding-top: 130px;
		}
}
.second_cont {
		background: #fff;
		position: relative;
		z-index: 10;
		margin-top: 15vw;
		padding-bottom: 200px;
}
.second_cont.single {
		margin-top: calc(15vw + 50px);
}
.second_wrap {
		max-width: 1000px;
		margin: 0 auto;
		padding: 0 40px;
		position: relative;
		z-index: 10
}
.second_wrap.first {
		position: relative;
		top: calc(-14vw + 190px);
		margin-bottom: calc(-14vw + 190px);
}
.pagetitle {
		margin-bottom: 100px;
		position: relative;
		z-index: 100;
}
.pagetitle.why {
		margin-bottom: 145px;
}
.pagetitle h1 {
		width: 350px;
}
.pagetitle.why h1 {
		width: 660px;
}
.pagetitle.policy h1 {
		width: 620px;
}
.pagetitle h1 img {
		width: 100%;
		height: auto;
}
.second_cont::before {
		content: '';
		display: block;
		position: absolute;
		top: -16vw;
		left: 0;
		width: 100%;
		background-repeat: no-repeat;
		background-position: center top;
		background-size: 100%;
		background-image: url("../images/second_wht_bg_pc.svg");
		height: 16.5vw;
		min-height: 200px;
		z-index: 10;
		box-sizing: border-box;
		pointer-events: none;
}
@media(max-width: 1800px) {
		.second_cont::before {
				background-size: 1800px;
		}
}
@media(max-width: 767px) {
		.second_cont {
				margin-top: 15vw;
				padding-bottom: 120px;
		}
		.second_cont.single {
				margin-top: 50px;
				padding-bottom: 80px;
		}
		.second_wrap {
				padding: 0 20px;
		}
		.second_cont::before {
				top: -14vw;
				background-image: url("../images/second_wht_bg_sp.png");
				height: 15vw;
				min-height: inherit;
				background-size: 100%;
		}
		.second_wrap.first {
				top: calc(-14vw + 80px);
				margin-bottom: calc(-14vw + 80px);
		}
		.pagetitle {
				margin-bottom: 80px;
		}
		.pagetitle.why {
				margin-bottom: 100px;
		}
		.pagetitle h1 {
				width: 175px;
		}
		.pagetitle.why h1 {
				width: 275px;
		}
		.pagetitle.policy h1 {
				width: 260px;
		}
}
@keyframes fadeIn {
		0% {
				opacity: 0;
		}
		100% {
				opacity: 1;
		}
}
@keyframes fadeOut {
		0% {
				opacity: 1;
		}
		99% {
				opacity: 0;
		}
		100% {
				display: none
		}
}
.kv_inner {
		display: flex;
		align-items: center;
		aspect-ratio: 10 / 4.2;
}
canvas {
		position: fixed;
		top: 0;
		left: 0;
		transition: filter 2s;
		opacity: 0.8;
		width: 100%;
		height: 100vh;
}
@media(max-width: 767px) {
		canvas {
				height: 100vh;
				height: 100svh;
		}
}
.step1 canvas {
		filter: hue-rotate(-10deg);
}
.step2 canvas {
		filter: hue-rotate(35deg);
}
.step3 canvas {
		filter: hue-rotate(80deg);
}
.step4 canvas {
		filter: hue-rotate(125deg);
}
.step5 canvas {
		filter: hue-rotate(170deg);
}
.step6 canvas {
		filter: hue-rotate(215deg);
}
.step7 canvas {
		filter: hue-rotate(260deg);
}
.step8 canvas {
		filter: hue-rotate(305deg);
}
footer {
		padding: 45px 0px;
		background: #fff;
		text-align: center;
		position: relative;
		z-index: 15
}
.news_all footer {
		background: none !important;
}
.footer_logo {
		max-width: 465px;
		margin: 0 auto 35px;
}
.footer_logo img {
		width: 100%;
		height: auto;
}
.copy_wrap {
		max-width: 460px;
		margin: 0 auto;
}
.copyright {
		text-align: left;
		font-family: "Times New Roman", Times, "serif";
		font-weight: 500;
		font-size: 14.8px;
}
@media(max-width: 767px) {
		footer {
				padding: 40px 0;
				position: relative;
		}
		.footer_logo {
				max-width: 200px;
				margin: 0 auto 30px;
		}
		.copyright {
				font-size: 10px;
				position: relative;
				z-index: 5;
				text-align: center;
		}
}
.kerning {
		letter-spacing: -0.15em;
		margin-right: 0.15em;
}
@media(min-width: 768px) {
		.navBoard {
				display: none !important
		}
		.sp_nav {
				display: none;
		}
}
@media(max-width: 767px) {
		.sp_nav {
				position: fixed;
				top: 14px;
				right: 16px;
				width: 40px;
				height: 40px;
				z-index: 100;
				cursor: pointer;
		}
		.sp_nav .sp_nav_trigger {
				width: 40px;
				height: 40px;
		}
		.sp_nav_trigger .sp_nav_trigger_bar {
				position: absolute;
				left: 4px;
				width: 32px;
				height: 1px;
				background: #000;
		}
		.sp_nav_trigger .sp_nav_trigger_bar:nth-child(1) {
				top: 11.5px;
		}
		.sp_nav_trigger .sp_nav_trigger_bar:nth-child(2) {
				top: 19.5px;
		}
		.sp_nav_trigger .sp_nav_trigger_bar:nth-child(3) {
				top: 27.5px;
		}
		.navClose .sp_nav_trigger .sp_nav_trigger_bar:nth-child(1) {
				transform: translateY(0) rotate(0deg);
		}
		.navClose .sp_nav_trigger .sp_nav_trigger_bar:nth-child(3) {
				transform: translateY(0) rotate(0deg);
		}
		.navBoard .sp_nav_trigger .sp_nav_trigger_bar:nth-child(1) {
				transform: translateY(8px) rotate(45deg);
				background: #ccc;
		}
		.navBoard .sp_nav_trigger .sp_nav_trigger_bar:nth-child(3) {
				transform: translateY(-8px) rotate(-45deg);
				background: #ededed;
		}
		.navBoard .sp_nav_trigger .sp_nav_trigger_bar:nth-child(2) {
				opacity: 0
		}
		.navBoard .sp_nav_trigger .sp_nav_trigger_bar:nth-child(1)::after, .navBoard .sp_nav_trigger .sp_nav_trigger_bar:nth-child(3)::after {
				content: '';
				display: block;
				position: absolute;
				top: 0;
				left: 0;
				width: 32px;
				height: 1px;
				background: #000;
				transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
				transition-delay: 0.5s;
				transform: scaleX(0);
		}
		.navBoard .sp_nav_trigger .sp_nav_trigger_bar:nth-child(1)::after {
				transform: scaleX(0);
				transform-origin: left center;
		}
		.navBoard .sp_nav_trigger .sp_nav_trigger_bar:nth-child(3)::after {
				transform: scaleX(0);
				transform-origin: right center;
		}
		.navBoard .navOpen .sp_nav_trigger .sp_nav_trigger_bar:nth-child(1)::after, .navBoard .navOpen .sp_nav_trigger .sp_nav_trigger_bar:nth-child(3)::after {
				animation: scale-1 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
		}
		.navBoard .navOpen .sp_nav_trigger .sp_nav_trigger_bar:nth-child(1)::after {
				animation-delay: 0.2s
		}
		.navBoard .navOpen .sp_nav_trigger .sp_nav_trigger_bar:nth-child(3)::after {
				animation-delay: 0.4s
		}
		.navBoard {
				position: fixed;
				top: 0;
				left: 0;
				width: 100%;
				z-index: 2000;
				padding: 20px;
				box-sizing: border-box;
				background: #fff;
				display: none;
		}
		.navBoard_inner {
				display: flex;
				align-items: center;
				justify-content: flex-end;
				padding: 0 40px;
		}
		.navBoard_inner li {
				list-style: none;
				margin: 0 0 20px;
				font-size: 20px;
				letter-spacing: 0 !important
		}
		.navBoard_inner li:last-child {
				margin-bottom: 0;
				margin-top: 30px;
		}
		.navBoard_inner li a {
				color: #000;
				text-decoration: none;
		}
}
@keyframes scale-1 {
		0% {
				transform: scaleX(0)
		}
		100% {
				transform: scaleX(1)
		}
}
/* ============ */
@media(min-width: 768px) {
		.spobj {
				display: none
		}
		.spbr {
				display: none
		}
}
@media(min-width: 841px) {
		.largebr {
				display: none
		}
}
@media(max-width: 767px) {
		.pcobj {
				display: none
		}
		.pcbr {
				display: none
		}
}