.visual {
	position: relative;
	padding: 140px 0 40px;
	box-sizing: border-box;
}
.visual:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(0deg, rgba(5, 0, 87, 0.50) 0%, rgba(5, 0, 87, 0.50) 100%);
	z-index: 1;
}
.visual .video video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.visual .txt_box {
	position: relative;
	gap: 56px;
	z-index: 2;
}
.visual .txt_box .title {
	gap: 20px;
}
.visual .txt_box .title .badge {
	display: inline-block;
	border-radius: 100px;
	background: rgba(5, 0, 87, 0.60);
	backdrop-filter: blur(10px);
	padding: 16px 20px;
	font-size: 24px;
	line-height: 1.2;
	word-break: keep-all;
	box-sizing: border-box;
}
.visual .txt_box .title h2 {
	font-size: 96px;
	text-shadow: 0 0 30px rgba(5, 0, 87, 0.90);
	word-break: keep-all;
	line-height: 1.2;
}
.visual .txt_box .title h2 span {
	display: block;
	font-weight: 400;
}
.visual .txt_box .title strong {
	font-size: 32px;
	line-height: 1.4;
	text-shadow: 0 0 30px rgba(5, 0, 87, 0.90);
	word-break: keep-all;
}
.visual .txt_box .grid {
	max-width: 560px;
	gap: 20px;
	margin: 0 auto;
}
.visual .txt_box .grid > div {
	flex: 1;
	border-radius: 20px;
	border: 1px solid var(--white);
	background: rgba(255, 255, 255, 0.20);
	backdrop-filter: blur(10px);
	padding: 16px 10px;
	gap: 10px;
	font-size: 20px;
	box-sizing: border-box;
}
.visual .txt_box .grid > div strong {
	font-size: 24px;
}
.visual .txt_box .btn_area {
	gap: 30px;
}
.visual .txt_box .btn_area strong {
	font-size: 24px;
	line-height: 1.4;
}


.link a {
	position: relative;
	width: max-content;
	font-size: 32px;
	border-radius: 100px;
	background: rgba(255, 255, 255, 0.15);
	backdrop-filter: blur(10px);
	padding: 20px 36px;
	gap: 16px;
	margin: 0 auto;
	transition: all .3s;
	box-sizing: border-box;
}
.link a:after {
	content: '';
	position: relative;
	right: 0;
	width: 24px;
	height: 15px;
	background: url("../images/arrow-right-white.svg")no-repeat 50% 50% / 100%;
	transition: all .3s;
}
.link a:hover {
	background: var(--point);
}
.link a:hover:after {
	right: -10px;
}


.sec {
	padding: 160px 0;
}
.sec > .inner {
	gap: 80px;
	max-width: 1360px;
}


.sec01 .list {
	gap: 30px;
}
.sec01 .list .item {
	width: calc(50% - 15px);
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.10);
	padding: 40px 60px;
	gap: 30px;
	box-sizing: border-box;
}
.sec01 .list .item p {
	flex: 1;
	width: 100%;
	font-size: 24px;
	line-height: 1.2;
}


.sec02 > .inner {
	gap: 20px;
}
.sec02 .tit_box h3 {
	font-weight: 400;
}


.sec03 .list {
	gap: 30px;
}
.sec03 .list .item {
	width: calc(33.333% - 20px);
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.10);
	padding: 60px 40px;
	gap: 30px;
	box-sizing: border-box;
}
.sec03 .list .item p {
	font-size: 24px;
}
.sec03 .list .item h4 {
	font-size: 96px;
	font-weight: 600;
}


.sec04 .list {
	gap: 30px;
}
.sec04 .list .item {
	width: calc(33.333% - 20px);
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.10);
	padding: 40px;
	gap: 16px;
	line-height: 1.2;
	box-sizing: border-box;
}
.sec04 .list .item .img {
	margin-bottom: 14px;
}
.sec04 .list .item strong {
	font-size: 32px;
}
.sec04 .list .item p {
	font-size: 20px;
}



.sec05 {
	padding: 120px 0;
}
.sec05 .form {
	border-radius: 30px;
	background: rgba(255, 255, 255, 0.07);
	overflow: hidden;
	box-sizing: border-box;
}
.sec05 .form .img {
	position: relative;
	width: 600px;
	overflow: hidden;
}
.sec05 .form .img img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.sec05 .form .box {
	flex: 1;
	padding: 80px;
	gap: 50px;
	box-sizing: border-box;
}
.sec05 .form .box .tit_box {
	font-size: 32px;
}
.sec05 .form .box .tit_box h3 {
	font-weight: 400;
	word-break: keep-all;
}
.sec05 .form .box .tit_box p {
	font-size: 20px;
	word-break: keep-all;
}
.sec05 .form .box .list {
	gap: 20px;
}
.sec05 .form .box .list .item {
	width: calc(50% - 10px);
	padding: 20px 40px;
	gap: 20px;
}



.sec06 .step_box {
	gap: 20px;
}
.sec06 .step_box > div {
	width: calc(20% - 16px);
	padding: 40px 10px;
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.07);
	gap: 24px;
	box-sizing: border-box;
}
.sec06 .step_box > div .num {
	width: 50px;
	height: 50px;
	line-height: 50px;
	border-radius: 50%;
	background: #7B7B7B;
	font-size: 24px;
	font-weight: 900;
	margin: 0 auto;
	transition: all .3s;
}
.sec06 .step_box > div h4 {
	font-size: 32px;
	color: #D8D8D8;
	transition: all .3s;
}
.sec06 .step_box > div .icon img {
	filter: grayscale(1);
	transition: all .3s;
}
.sec06 .step_box > div.active .num {
	background: var(--key-color);
}
.sec06 .step_box > div.active h4 {
	color: var(--white);
}
.sec06 .step_box > div.active .icon img {
	filter: grayscale(0);
}




.sec07 {
	padding: 120px 0;
}
.sec07 .inner {
	gap: 40px;
}
.sec07 .list {
	border-top: 1px solid rgba(255,255,255,0.5);
}
.sec07 .list .item {
	border-bottom: 1px solid rgba(255,255,255,0.5);
	box-sizing: border-box;
}
.sec07 .list .item .ques_btn {
	position: relative;
	width: 100%;
	font-size: 24px;
	line-height: 1.2;
	text-align: left;
	padding: 40px 80px 40px 40px;
	background: transparent;
	transition: all .3s;
	box-sizing: border-box;
}
.sec07 .list .item .ques_btn:hover {
	background: rgba(255, 255, 255, 0.07);
}
.sec07 .list .item .ques_btn:after {
	content: '';
	position: absolute;
	top: 39px;
    right: 30px;
	display: block;
	width: 32px;
	height: 32px;
	background: url("../images/ic_plus.svg")no-repeat 50% 50% / 100%;
}
.sec07 .list .item.open {
	background: rgba(255, 255, 255, 0.07);
}
.sec07 .list .item.open .ques_btn:after {
	background-image: url("../images/ic_minus.svg");
}
.sec07 .list .item .answer {
	display: none;
	border-top: 1px dashed rgba(255,255,255,0.5);
	padding: 40px;
	font-size: 24px;
	line-height: 1.4;
	box-sizing: border-box;
}
.sec07 .list .item.open .answer {
	display: block;
}


.sec08 {
	padding: 120px 0;
}
.sec08 .box {
	border-radius: 30px;
	background: rgba(255, 255, 255, 0.07);
	gap: 60px;
	padding: 80px 20px;
	box-sizing: border-box;
}
.sec08 .box h3 {
	min-height: 230px;
	font-size: 96px;
	word-break: keep-all;
	line-height: 1.2;
}



@media screen and (max-width: 1440px) {
	.visual .txt_box .title h2 {
    	font-size: 78px;
	}

	.sec03 .list .item h4 {
		font-size: 78px;
	}

	.sec05 .form .img {
		width: 540px;
	}
	.sec05 .form .box {
		padding: 60px;
	}

	.sec08 .box h3 {
		min-height: 190px;
		font-size: 78px;
	}
}
@media screen and (max-width: 1280px) {
	.visual .txt_box .title h2 {
    	font-size: 64px;
	}
	.visual .txt_box .title strong {
		font-size: 26px;
	}


	.link a {
		font-size: 26px;
	}


	.sec01 .list .item {
		padding: 30px;
		gap: 20px;
	}


	.sec03 .list .item h4 {
		font-size: 64px;
	}


	.sec05 .form .img {
        width: 480px;
    }
	.sec05 .form .box {
        padding: 40px;
    }
	.sec05 .form .box .tit_box {
		font-size: 24px;
		gap: 14px;
	}
	.sec05 .form .box .tit_box p {
		font-size: 18px;
	}
	.sec05 .form .box .list .item {
		padding: 20px;
	}
	.sec01 .list .item p {
		font-size: 20px;
	}


	.sec06 .step_box > div h4 {
		font-size: 24px;
	}
	.sec06 .step_box > div .num {
		width: 40px;
		height: 40px;
		line-height: 40px;
		font-size: 20px;
	}
	.sec06 .step_box > div .icon img {
		width: 80px;
	}


	.sec07 .list .item .ques_btn {
		font-size: 20px;
		padding: 25px 55px 25px 25px;
	}
	.sec07 .list .item .ques_btn:after {
		top: 26px;
		right: 20px;
		width: 20px;
		height: 20px;
	}
	.sec07 .list .item .answer {
		padding: 25px;
		font-size: 20px;
	}


	.sec08 .box h3 {
        min-height: 155px;
        font-size: 64px;
    }
}
@media screen and (max-width: 1024px) {
	.visual {
		padding: 80px 0 40px;
	}
	.visual .txt_box .title .badge {
		font-size: 20px;
	}
	.visual .txt_box .title h2 {
        font-size: 48px;
    }
	.visual .txt_box .title strong {
        font-size: 20px;
    }
	.visual .txt_box {
		gap: 38px;
	}
	.visual .txt_box .grid > div {
		font-size: 16px;
	}
	.visual .txt_box .grid > div strong {
		font-size: 20px;
	}
	.visual .txt_box .btn_area {
		gap: 15px;
	}
	.visual .txt_box .btn_area strong {
		font-size: 20px;
	}


	.sec {
		padding: 100px 0;
	}
	.sec > .inner {
		gap: 40px;
	}

	.link a {
        font-size: 20px;
    }


	.sec01 .list {
		gap: 15px;
	}
	.sec01 .list .item {
    	width: calc(50% - 8px);
		padding: 20px;
		gap: 15px;
		border-radius: 10px;
	}
	.sec01 .list .item .icon > * {
		width: 20px!important;
		height: 20px!important;
	}
	.sec01 .list .item p {
        font-size: 16px;
    }


	.sec03 .list {
		gap: 15px;
	}
	.sec03 .list .item {
		width: calc(33.333% - 10px);
		padding: 40px 20px;
		gap: 20px;
	}
	.sec03 .list .item p {
		font-size: 20px;
	}
	.sec03 .list .item h4 {
        font-size: 48px;
    }


	.sec04 .list {
		gap: 15px;
	}
	.sec04 .list .item {
    	width: calc(50% - 8px);
		padding: 30px;
		gap: 8px;
	}
	.sec04 .list .item strong {
		font-size: 26px;
	}
	.sec04 .list .item p {
		font-size: 16px;
	}


	.sec05 {
		padding: 70px 0;
	}
	.sec05 .form .img {
        width: 300px;
    }
	.sec05 .form .box {
		gap: 30px;
		padding: 30px;
	}
	.sec05 .form .box .tit_box {
        font-size: 20px;
	}
	.sec05 .form .box .tit_box p {
        font-size: 16px;
    }
	.sec05 .form .box .list {
		gap: 10px;
	}
	.sec05 .form .box .list .item {
		width: calc(50% - 5px);
        padding: 15px;
        gap: 10px;
    }


	.sec06 .step_box {
		justify-content: center;
	}
	.sec06 .step_box > div {
    	width: calc(33.333% - 14px);
	}


	.sec07 {
		padding: 70px 0;
	}
	.sec07 .list .item .ques_btn {
        font-size: 16px;
        padding: 20px 40px 20px 15px;
    }
	.sec07 .list .item .ques_btn:after {
        top: 22px;
        right: 15px;
        width: 15px;
        height: 15px;
    }
	.sec07 .list .item .answer {
        padding: 15px;
        font-size: 16px;
    }


	.sec08 {
		padding: 70px 0;
	}
	.sec08 .box {
		gap: 30px;
		padding: 50px 20px;
	}
	.sec08 .box h3 {
        min-height: 115px;
        font-size: 48px;
    }
}
@media screen and (max-width: 768px) {
	.visual .txt_box .title {
		gap: 15px;
	}
	.visual .txt_box .title .badge {
        font-size: 16px;
		padding: 10px 16px;
    }
	.visual .txt_box .title h2 {
        font-size: 34px;
    }
	.visual .txt_box .title strong {
        font-size: 16px;
    }
	.visual .txt_box .grid {
		gap: 10px;
	}
	.visual .txt_box .grid > div {
        font-size: 14px;
		gap: 6px;
		padding: 10px;
		border-radius: 10px;
    }
	.visual .txt_box .grid > div strong {
        font-size: 16px;
    }
	.visual .txt_box .btn_area {
        gap: 10px;
    }
	.visual .txt_box .btn_area strong {
        font-size: 16px;
    }


	.link a {
        font-size: 16px;
		padding: 14px 24px;
		gap: 10px;
    }
	.link a:after {
		width: 17px;
	}


	.sec {
        padding: 80px 0;
    }


	.sec01 .list .item {
		width: 100%;
	}


	.sec03 .list .item {
		width: 100%;
		padding: 30px 20px;
	}
	.sec03 .list .item p {
        font-size: 16px;
    }
	.sec03 .list .item h4 {
        font-size: 36px;
    }


	.sec04 .list .item {
		width: 100%;
		text-align: center;
	}


	.sec05 {
		padding: 50px 0;
	}
	.sec05 .form .img {
        width: 100%;
        height: 0;
        padding-bottom: 75%;
    }
	.sec05 .form .box {
		padding: 20px;
	}
	.sec05 .form .box .tit_box p br {
		display: none;
	}
	.sec05 .form .box .list .item {
		width: 100%;
	}


	.sec06 .step_box > div {
        width: 100%;
		gap: 16px;
		padding: 30px 10px;
    }
	.sec06 .step_box > div .num {
        width: 34px;
        height: 35px;
        line-height: 35px;
        font-size: 16px;
    }
	.sec06 .step_box > div h4 {
        font-size: 20px;
    }
	.sec06 .step_box > div .icon img {
        width: 60px;
    }

	.sec07 {
		padding: 50px 0;
	}

	.sec08 {
		padding: 50px 0;
	}
	.sec08 .box h3 {
        min-height: 75px;
        font-size: 30px;
    }
}
@media screen and (max-width: 480px) {
}
@media screen and (max-width: 380px) {
	.visual .txt_box .grid {
		max-width: 200px;
	}
	.visual .txt_box .grid > div {
		flex: none;
		width: 100%;
	}
}