@charset "UTF-8";

/**
 * オリジナルcss
 */

.footer {
	background: var(--c3);
}

.footer_page_top_area {
	display: none;
	padding-top: 60px;
	padding-bottom: 30px;
	text-align: center;
}

/* --- footer contact section --- */

.footer_contact_section {
	padding: 92px 0 80px;
	position: relative;

	.contact_cta_image_wrapper {
		position: absolute;
		top: 0;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		max-width: 1120px;
		width: 100%;
		z-index: 2;
		pointer-events: none;
	}

	.contact_cta_image {
		width: clamp(120px, 15vw, 180px);
		aspect-ratio: 1;
		display: block;
		position: absolute;
		top: 20px;
		left: 40px;
	}

	.footer_contact_cta_top {
		background-image: url('../images/footer/contact_cta_top.png');
		background-size: cover;
		background-repeat: no-repeat;
		background-position: center;
		width: 100%;
		aspect-ratio: 1440 / 37;
		margin-bottom: -1px;
	}

	.footer_contact_cta_area {
		background-color: var(--c2);
		color: #fff;
		padding: 30px 0 64px;
		position: relative;
		z-index: 1;

		.footer_contact_header {
			text-align: center;
			font-weight: 400;

			.top_title {
				font-size: clamp(2.2rem, 2.84vw, 2.8rem);
			}
		}
	}

	.footer_contact_body {
		text-align: center;

		.contact_body_note {
			margin-top: 8px;
			font-size: clamp(1.6rem, 2.16vw, 2.2rem);
		}

		.contact_body_buttons {
			flex-wrap: wrap;
			gap: 24px 3%;
			justify-content: center;

			.contact_body_tel {
				margin-top: 8px;
				font-family: var(--en);
				font-size: clamp(2.8rem, 4.27vw, 4rem);
				font-weight: 700;
				align-items: baseline;
				gap: 0.5em;
				color: #fff;
				transition: color 0.2s;

				img {
					display: inline-block;
					height: 0.8em;
				}

				&:hover {
					color: #FFEE54;
				}
			}
		}
	}

	@media screen and (max-width: 480px) {
		.contact_cta_image {
			top: 12px;
			left: 8px;
		}

		.footer_contact_cta_top {
			background-image: url(../images/footer/contact_cta_top_sp.png);
			aspect-ratio: 390 / 37;
			margin-bottom: -2px;
		}

		.footer_contact_cta_area {
			padding-top: 8px;
			padding-bottom: 40px;
		}

		.footer_contact_body {
			padding: 0 16px;

			.contact_body_buttons .contact_body_tel {
				margin-top: 16px;
				line-height: 1.2;

				img {
					height: 1.1em;
					transform: translateY(4px);
				}
			}

			.hours {
				font-size: 1.4rem;
				margin-top: 8px;
			}
		}
	}
}

/* --- footer contact form section --- */

.footer_contact_form_section {
	padding-bottom: 80px;

	.footer_contact_header {
		text-align: center;

		.top_title {
			font-size: clamp(2.2rem, 3.07vw, 3.2rem);
			text-decoration: underline;
			text-underline-offset: -4px;
			text-decoration-thickness: 8px;
			text-decoration-color: #FFEE54;
		}
	}
}

/* --- footer information section --- */

.footer_info {
	padding: 100px 0;
	background-color: var(--c2);
	color: #fff;

	.inner {
		position: relative;
	}

	.footer_info_tegaki {
		position: absolute;
		width: clamp(200px, 35vw, 400px);
		right: 40px;
		top: -70px;
		transform: rotate(3deg);

	}

	.footer_info_company_wrapper {
		grid-template-columns: auto 1fr;
		gap: 32px clamp(60px, 9vw, 100px);
	}

	.footer_info_company_name {
		font-size: clamp(2.4rem, 3.18vw, 3.2rem);
		grid-area: 1 / 1 / 2 / 3;
	}

	.footer_info_company_detail {
		grid-area: 2 / 1 / 3 / 2;
		line-height: 1.8;

		ul {
			list-style-type: "■";
			padding-left: 1.2em;
		}
	}

	.footer_info_company_area {
		grid-area: 2 / 2 / 3 / 3;

		h3 {
			font-size: 2rem;
			font-weight: 400;
		}

		h3::before {
			content: "●";
		}

		p {
			margin-top: 0.5em;
			margin-bottom: 1.5em;
		}
	}

	.footer_info_shitei_container {
		display: grid;
		grid-template-columns: repeat(auto-fit, 160px);
		/* flex-wrap: wrap; */
		grid-row-gap: 16px;
		margin-top: 0.5em;

		p {
			font-size: 1rem;
			text-align: center;
			padding: 0 4px;
		}

		img {
			margin: 0 auto;
		}
	}

	.footer_info_shitei_logo {
		width: 100px;
		/* width: clamp(80px, 8vw, 100px); */
		aspect-ratio: 1;
		object-fit: contain;
	}

	.footer_menu {
		grid-area: 3 / 1 / 4 / 2;
		grid-template-columns: 1fr;
		max-width: 280px;
		gap: 1em;
		align-self: flex-end;

		.footer_menu_link {

			a {
				color: #fff;
				font-size: 1.6rem;
				text-decoration: none;
				padding-bottom: 12px;
				border-bottom: 1px solid #fff;
				display: block;
				transition: color 0.2s, border-color 0.2s;
			}

			a:hover {
				color: #FFEE54;
				border-color: #FFEE54;
			}
		}
	}

	.footer_info_map_area {
		grid-area: 3 / 2 / 4 / 3;
		margin-top: 24px;
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		gap: 40px;
		flex-wrap: wrap;

		.footer_info_map {
			max-width: 100%;
			width: 100%;
			min-height: 395px;

			iframe {
				display: block;
				width: 100%;
				height: 100%;
			}
		}
	}

	@media screen and (max-width: 880px) {
		.footer_info_map_area {
			flex-direction: column;
			align-items: flex-start
		}
	}

	@media screen and (max-width: 480px) {
		padding-top: 40px;
		padding-bottom: 80px;

		.footer_info_tegaki {
			position: static;
			transform: none;
			width: 300px;
			margin: 0 auto 24px auto;
		}

		.footer_info_company_wrapper {
			grid-template-columns: 1fr;
			gap: 24px;
		}

		.footer_info_company_name {
			grid-area: auto;
		}

		.footer_info_company_detail {
			grid-area: auto;
			margin-top: 16px;
		}

		.footer_menu {
			margin-top: 0;
			grid-area: auto;
			justify-content: center;
			align-self: auto;
		}

		.footer_info_company_area {
			grid-area: auto;
		}

		.footer_info_map_area {
			grid-area: auto;
			margin-top: 16px;
			gap: 40px;



			.footer_info_map {
				max-width: 100%;
				aspect-ratio: 358 / 294;
				min-height: auto;
			}
		}
	}
}

/* footer copyright */
.footer_copyright {
	background-color: #fff;
	font-size: 1.4rem;
	padding: 16px 0;

	.inner {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 4px 24px;
	}

	a {
		font-size: 0.8em;

		&:hover {
			text-decoration: underline;
		}
	}

	.footer_copyright_copyright {
		text-align: center;
		font-size: 0.7em;
	}

	@media screen and (max-width: 768px) {
		padding-bottom: 48px;

	}
}

/* --- 追従ボタン --- */

.footer_sp_buttons {
	position: fixed;
	bottom: 40vh;
	right: 0;
	z-index: 100;
	pointer-events: none;

	.footer_sp_button {
		width: 105px;
		height: 90px;
		justify-content: center;
		align-items: center;
		gap: 0.3em;
		border-radius: 16px 0 0 16px;
		pointer-events: fill;
		padding-right: 10px;
		transform: translateX(10px);
		transition: transform 0.3s;

		img {
			width: 24px;
			aspect-ratio: 1;
			object-fit: contain;
		}

		span {
			font-size: 1.2rem;
			font-weight: 500;
		}

		&:hover {
			transform: translateX(0);
		}
	}

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

		bottom: 0;
		left: 0;
		display: flex;

		.footer_sp_button {
			transform: none;
			border-radius: 0;
			padding-right: 0;
			width: auto;
			height: 40px;
			flex-direction: row-reverse;
			flex: 1;
			position: relative;

			span {
				font-size: 1.6rem;
			}

			&:hover {
				transform: none;
			}
		}
	}
}

.footer_sp_button.footer_sp_button_tel {
	background: #E55544;
	color: #fff;
}

.footer_sp_button.footer_sp_button_contact {
	background: #FFEE54;
}