@charset "UTF-8";

.page-banner {
	&:after {
		content: "";
		position: absolute;
		top: 50%;
		right: 0;
		transform: translateY(-50%);
		width: 100rem;
		height: 60rem;
		background: url("../../img/page/training/banner-img.png") no-repeat center left / contain;

		@media screen and (max-width: 767px) {
			width: 35.7rem;
			height: 21.4rem;
			top: unset;
			transform: unset;
			bottom: 0;
		}
	}
}

#training {
	padding-top: 19.2rem;
	padding-bottom: 20rem;

	@media screen and (max-width: 767px) {
		padding-top: 6rem;
		padding-bottom: 6rem;
	}

	.block1 {
		background: url("../../common/img/general/red-bg.jpg") no-repeat center center / 100% 100%;
		margin-bottom: 9.1rem;
		padding-top: 19.2rem;
		padding-bottom: 11.2rem;

		@media screen and (max-width: 767px) {
			margin-bottom: 6rem;
			padding-top: 6rem;
			padding-bottom: 6rem;
			background: radial-gradient(128.55% 331.8% at 0% -115.3%, rgba(255, 177, 183, 0.8) 0%, rgba(230, 0, 18, 0.8) 100%);
		}

		.white-card {
			background-color: #fff;
			border-radius: 2rem;
			padding: 6.4rem;
			box-sizing: border-box;

			@media screen and (max-width: 767px) {
				padding: 3.2rem 2rem;
			}

			.title {
				font-family: var(--zen);
				font-style: normal;
				font-weight: 700;
				font-size: 3rem;
				line-height: 150%;
				letter-spacing: 0.15em;
				color: #e60012;
				margin-bottom: 2.4rem;

				@media screen and (max-width: 767px) {
					font-size: 1.8rem;
					margin-bottom: 1rem;
				}
			}

			& p {
				font-family: var(--zen);
				font-style: normal;
				font-weight: 500;
				font-size: 2rem;
				line-height: 180%;
				letter-spacing: 0.07em;
				color: #000000;

				@media screen and (max-width: 767px) {
					font-size: 1.4rem;
					line-height: 160%;
				}
			}
		}
	}

	.block2 {
		.gray-container {
			background-color: #f3f5f6;
			width: 100%;
			padding: 8rem 16rem;
			box-sizing: border-box;
			border-radius: 5rem;
			margin-bottom: 20rem;

			@media screen and (max-width: 767px) {
				padding: 4rem 2rem;
				border-radius: 2rem;
				padding: 4rem 2rem;
				border-radius: 2rem;
				margin-bottom: 6rem;

				display: block;
				overflow-x: auto;
				-webkit-overflow-scrolling: touch;
				width: 100%;
				position: relative;

				&::before {
					content: '←';
					position: absolute;
					right: 0;
					top: 0;
					animation: moveArrow 3s linear infinite;
					font-size: 20px;
					color: #e60012;
					border: 4px solid #e60012;
					border-radius: 50%;
					width: 40px;
					height: 40px;
					display: flex;
					align-items: center;
					justify-content: center;
					transition: opacity 0.3s ease-in-out;
					opacity: 1;
					pointer-events: none;
				}

				.scrolling:before {
					opacity: 0 !important;
				}
			}

			.full-img {
				width: 100%;

				@media screen and (max-width: 767px) {
					width: 88rem;
				}

				& img {
					width: 100%;
					vertical-align: top;
				}
			}
		}
	}

	.block3 {
		.flex-contents {
			display: flex;
			flex-direction: column;
			gap: 4.8rem;

			@media screen and (max-width: 767px) {
				gap: 4rem;
			}

			.flex {
				display: flex;
				gap: 11.2rem;

				@media screen and (max-width: 767px) {
					flex-direction: column-reverse;
					gap: 1rem;
				}

				.text-cont {
					width: 64.8rem;

					@media screen and (max-width: 767px) {
						width: 100%;
					}

					.title {
						margin-bottom: 2.4rem;
						font-family: var(--zen);
						font-style: normal;
						font-weight: 700;
						font-size: 2.6rem;
						line-height: 150%;
						letter-spacing: 0.08em;
						color: #e60012;

						@media screen and (max-width: 767px) {
							font-size: 1.8rem;
							margin-bottom: 1rem;
						}
					}

					& p {
						font-family: var(--zen);
						font-style: normal;
						font-weight: 400;
						font-size: 1.8rem;
						line-height: 180%;
						letter-spacing: 0.1em;
						color: #000000;

						@media screen and (max-width: 767px) {
							font-size: 1.4rem;
						}

						& a {
							color: #4099ff;
							font-weight: bold;
							text-decoration: underline;
							transition: all .3s ease-in;
						}

						& a:hover {
							opacity: .75;
							text-decoration: none;
						}
					}
				}

				.img-cont {
					width: 60rem;
					flex: 1;

					@media screen and (max-width: 767px) {
						width: 100%;
					}

					& img {
						width: 100%;
						vertical-align: top;
					}
				}
			}
		}
	}
}


@keyframes moveArrow {
	0% {
		right: 0;
	}

	100% {
		right: 100%;
	}
}