@charset "utf-8";
@import url("root.css");

.footer_banner {
	padding: 4em 0 10em;
	background: white;
	position: relative;

	@media screen and (max-width: 820px) {
		padding: 2em 0 6em;
	}

	@media screen and (max-width: 480px) {
		padding-bottom: 4em;
	}

	&::after {
		position: absolute;
		content: "";
		background: url(../img/common/wave_footer.svg) no-repeat;
		width: 100%;
		height: 100%;
		background-position: center bottom;
		background-size: contain;
		bottom: -1px;
		left: 0;
		margin: auto;
		z-index: 1;

	}

	ul {
		position: relative;
		z-index: 2;
		display: flex;
		justify-content: flex-start;
		flex-wrap: wrap;

		@media screen and (max-width: 820px) {
			justify-content: space-between;
		}

		li {
			width: calc(100% / 3 - .8em);
			aspect-ratio: 320/90;
			margin-bottom: 1em;
			margin-right: 1.2em;

			&:nth-child(3n) {
				margin-right: 0;
			}

			@media screen and (max-width: 820px) {
				width: 49%;
				margin: 0;
				margin-bottom: 1em;
			}

			@media screen and (max-width: 480px) {
				width: 100%;
				margin-bottom: 0.5em;

				&:last-child {
					margin-bottom: 0;
				}
			}

			a {
				border: 1px #efefef solid;
				width: 100%;
				height: 100%;
				display: block;
				transition: all .1s;

				&:hover {
					opacity: .7;
				}

				img {
					width: 100%;
					height: 100%;
					object-fit: cover;
					object-position: center center;
				}
			}
		}

	}
}



footer {
	background: #155E75;
	color: #fff;

	.footer_box {
		padding: 2em 0 4em;
		display: flex;
		justify-content: space-between;

		@media screen and (max-width: 820px) {
			flex-direction: column;
			padding: 2em 0 4em;

		}

		@media screen and (max-width: 480px) {
			padding: 2em 0;
		}

		.main {
			width: 35%;

			@media screen and (max-width: 480px) {
				width: 100%;
			}

			a {
				display: block;
				width: 100%;
				height: 100%;
				max-width: 320px;
			}

			p {
				font-size: 1.5rem;
				line-height: 1.6;
				margin-top: 1.5em;
			}
		}

		.footer_menu {
			width: 50%;

			@media screen and (max-width: 820px) {
				width: 100%;
				margin-top: 2em;
			}

			ul {
				display: flex;

				li {
					text-align: left;
					width: 50%;

					@media screen and (max-width: 480px) {
						width: 100%;
					}

					a {
						font-size: 1.6rem;
						line-height: 2.4;
						color: white;
						font-weight: 500;
						text-decoration: none;
						transition: all .1s;
						position: relative;
						padding-left: 20px;

						@media screen and (max-width: 480px) {
							font-size: 1.3rem;
						}

						&::after {
							content: "";
							position: absolute;
							left: 0;
							top: 50%;
							width: 7px;
							height: 7px;
							border-top: 2px solid currentColor;
							border-right: 2px solid currentColor;
							transform: translateY(-50%) rotate(45deg);
						}

						&:hover {
							color: var(--yellow);
						}
					}
				}
			}
		}
	}

	.mark_content {
		background: #1E7A96;

		padding: 3em 0;


		ul {
			width: 100%;
			justify-content: space-between;
			align-items: center;

			@media screen and (max-width: 480px) {
				padding-bottom: 45px;
			}

			@media screen and (max-width: 480px) {
				width: 100%;
				padding-bottom: 0;
			}

			li {
				width: 34%;
				background: white;
				padding: 1em;
				border-radius: 10px;

				&:last-child {
					width: 61%;
					background: none;
				}

				@media screen and (max-width: 820px) {
					width: 100%;

					&:last-child {
						margin-top: 45px;
						width: 100%;
					}
				}

				@media screen and (max-width: 480px) {
					&:last-child {
						margin-top: 0.5em;
						width: 100%;
						padding: 0;

						p {
							small {
								font-size: 1rem;
							}
						}
					}
				}
			}
		}

		.trademark_text {
			width: 100%;

			p {
				text-align: left;
			}
		}

		.marks {
			width: 100%;
			display: flex;
			flex-wrap: wrap;
			justify-content: center;

			>div {
				margin: 0 3px;
			}

			.mark_box {
				a {
					color: #333;
					font-size: 1.2rem;
					text-decoration: underline;
					text-align: center;
					display: block;
					margin-bottom: 15px;
					width: 100%;

					@media screen and (max-width: 820px) {
						margin-bottom: 0;

					}

					@media screen and (max-width: 480px) {
						margin-bottom: 4px;

					}
				}

				>div {
					display: flex;
					padding: 5px 10px;
					border: 1px solid gray;
					align-items: center;
					justify-content: space-around;

					img {
						max-height: 75px;
						width: auto;
					}
				}
			}

			>div {
				img {
					max-height: 75px;
					width: auto;
				}
			}
		}
	}



	.corporate_link {
		background: #1E7A96;

		ul {
			padding: 1.5em 0;
			width: 100%;

			border-top: 1px solid White;
			display: inline-flex;
			justify-content: space-between;

			@media screen and (max-width: 480px) {
				flex-direction: column;
			}

			li {
				font-size: 1.2rem;

				@media screen and (max-width: 480px) {
					width: 100%;
					margin-top: 5px;
				}


				a {
					color: white;
				}
			}

		}
	}

	.copyright {
		background: #1E7A96;
		text-align: center;
		padding: 2em 0;
		font-size: 1.3rem;

		@media screen and (max-width: 480px) {
			font-size: 1.1rem;
		}
	}
}

.follow {
	position: fixed;
	bottom: 0;
	right: 0;
	width: 50vw;
	max-width: 400px;
	height: auto;
	text-align: right;
	z-index: 100;

	@media screen and (max-width: 480px) {
		width: 45%;
		max-width: 250px;
	}

	.banner {
		padding: 0;

		a {
			z-index: 101;
			display: block;
			position: relative;
			width: 100%;
			height: 100%;

			&:hover {
				opacity: 1;
			}

			span {
				display: block;

				&.close {
					z-index: 102;
					display: inline-block;
					position: absolute;
					width: 30px;
					height: 30px;
					border-radius: 50%;
					display: grid;
					place-content: center;
					top: 5px;
					right: 5px;
					margin: auto;
					background: #bababa;

					@media screen and (max-width: 820px) {
						width: 20px;
						height: 20px;

					}

					&:hover {
						background: #000;
					}

					i {
						color: white;

						@media screen and (max-width: 820px) {
							font-size: 1.2rem;
						}
					}
				}
			}

			img {
				filter: drop-shadow(-10px -2px 20px rgba(0, 0, 0, 0.1));

				opacity: 1;
				transition: all .2s;

				&.opa {
					opacity: 0.6;
				}
			}

		}

	}
}