@charset "UTF-8";

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

.footer {
	margin-top: 0;
	margin-top: 160px;
	background: #372D00;
	color: #fff;

	a {
		color: #fff;
	}
}

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

/* footer contact */

.footer_contact_wrap {
	background-image: url('../images/footer/footer_contact_bg.jpg');
	background-size: cover;
	background-position: center;
	position: relative;
}

.footer_contact_wrap:before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #342721;
	opacity: 0.25;
}

.footer_contact {
	padding: 80px 0;
	position: relative;
}


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

	.top_title {
		font-size: 3.2rem;
		font-weight: 400;
		margin: 0;
	}


	.top_title_en {
		font-size: 2rem;
		font-style: italic;
		font-weight: 400;
		text-transform: uppercase;
		margin: 0;
	}
}

.footer_contact_body {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	padding: 40px 15px 25px 15px;
	font-size: 1.6rem;

	.contact_body_note {
		font-size: 1.6rem;
	}

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

		a {
			display: block;
			padding: 12px 28px;
			color: #fff;
			font-size: 2.4rem;
			font-weight: 400;
			width: 100%;
			max-width: 360px;
			text-decoration: none;
			border: 1px solid #fff;

			img {
				vertical-align: sub;
				margin-right: 20px;
				height: 1.2em;
			}
		}

		a:nth-of-type(1) {
			font-style: italic;
		}
	}
}

/* footer menu */

.footer_info {
	padding: 40px 15px 80px;
	max-width: 1110px;
}

.footer_menu_menu {
	padding: 80px 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(3, auto);
	grid-auto-flow: column;
	gap: 32px 8%;

	.footer_menu_menu_link {
		/* max-width: 180px; */

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

	/* .footer_menu_menu_link:nth-of-type(8) {
		grid-row: 2 / 4;
	} */
}

.footer_info_company_wrapper {
	display: flex;
	width: 100%;
	justify-content: space-between;
	margin-bottom: 40px;
}

.footer_info_company {
	width: 50%;

	.footer_sns_area {
		margin-bottom: 40px;
		display: flex;
		flex-wrap: wrap;
		gap: 32px;

		.footer_sns_element {
			width: 48px;
			aspect-ratio: 1;

			a {
				width: 100%;
				height: 100%;
			}
		}
	}


	h2 {
		margin-top: 13px;
		margin-bottom: 0;
		font-size: 3rem;
	}

	p {
		font-size: 1.6rem;
	}

	ul {
		font-size: 1.6rem;
		list-style-type: "■";
		padding-left: 1em;
	}

	ul li {
		margin-top: 0.5em;
	}
}

.footer_info_map {
	max-width: 640px;
	width: 50%;

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

.footer_info_detail {
	margin-top: 40px;

	h3 {
		margin-top: 0;
		margin-bottom: 0;
		font-size: 1.6rem;
		font-weight: 400;
	}

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

	p {
		margin-top: 4px;
		margin-bottom: 0;
		font-size: 1.6rem;
	}
}

.footer_info_link {
	margin-top: 34px;

	a {
		font-size: 1.6rem;
		font-weight: bold;
		text-decoration: none;
	}
}

.footer_copyright {
	background-color: #fff;
	color: var(--c1);
	font-size: 1.4rem;
	padding: 16px;

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

		a {
			color: var(--c1);
			text-decoration: none;
		}

	}

	.footer_copyright_copyright {
		text-align: center;
	}
}

/* footer banner */

/* footer copyright */

/* .footer_sp_buttons {
	display: none;
} */

.footer_sp_buttons {
	width: 100%;
	padding: 32px 32px;
	position: fixed;
	bottom: 0;
	right: 0;
	z-index: 100;
}

.footer_sp_buttons .inner {
	max-width: none;
	position: relative;
	width: 100%;
	height: 56px;
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 0;

}

.footer_sp_button {
	position: relative;
}

.footer_sp_button a {
	color: #fff;
	text-decoration: none;
	width: fit-content;
	height: 100%;
	padding: 0 32px;
	transition: .3s;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.3em;
	border-radius: 4px;

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

	span {
		font-size: 1.8rem;
		font-weight: bold;
	}
}

.footer_sp_button.footer_sp_button_contact a {
	background: var(--c3);
}

.footer_sp_button.footer_sp_button_line a {
	background: #06C755;

	img {
		width: 1.5em;
	}
}


.footer_sp_button.footer_sp_button_tel {
	flex: 0.5;
	display: none;

	a {
		background: #CAB774;
	}
}


@media screen and (max-width: 1240px) {
	.footer_info {
		gap: 2%;
	}

	.footer_menu_info1 {
		max-width: 49%;
	}

	.footer_menu_info2 {
		max-width: 49%;
	}
}

@media screen and (max-width: 1110px) {
	.footer_contact_staff {
		img {
			max-width: 125px;
		}
	}

	.contact_title {
		font-size: 2.4rem;
	}

	.footer_contact_body {
		padding-bottom: 40px;
	}
}

@media screen and (max-width:960px) {
	.footer_menu_menu {
		height: auto;

		.footer_menu_menu_link {
			width: 100%;
		}
	}

	.footer_info {
		gap: 40px;
	}

	.footer_menu_info1 {
		max-width: 100%;
	}

	.footer_menu_info2 {
		max-width: 100%;
	}

	.footer_info_company {
		font-size: 1.4rem;

		h2 {
			font-size: 2rem;
		}
	}

}

@media screen and (max-width:900px) {
	.footer_contact_body {
		.contact_body_buttons {
			a {
				max-width: 45%;
				padding: 10px 23px;
			}
		}
	}
}

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

@media screen and (max-width:768px) {
	#footer {
		margin-top: 80px;
	}

	.footer_contact_wrap {
		background-image: url('../images/footer/footer_bg_sp.jpg');
	}

	.footer_contact {
		padding-top: 48px;
		padding-bottom: 60px;
	}

	.footer_contact_header {
		.top_title {
			font-size: 2rem;
		}

		.top_title_en {
			font-size: 1rem;
		}
	}

	.footer_contact_body {
		margin-top: 0;
		padding: 16px 16px;

		.contact_body_note {
			font-size: 1.2rem;
			line-height: 1.83;
		}

		.contact_body_buttons {
			gap: 8px;
			margin-top: 24px;
			width: 280px;
			margin-left: auto;
			margin-right: auto;

			a {
				max-width: 280px;
				padding: 8px 10px;
				font-size: 2rem;
				margin: 0;
				border-width: 2px;
			}
		}

		.hours {
			margin-top: 16px;
			font-size: 1.2rem;
		}
	}

	.footer_info {
		padding: 40px 16px;
	}

	.footer_menu_menu {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		grid-auto-flow: row;
		gap: 8px;
		padding: 0;

		.footer_menu_menu_link {
			max-width: 340px;
			justify-self: flex-end;
		}

		/* .footer_menu_menu_link:nth-of-type(8) {
			grid-row: auto;
		} */

		.footer_menu_menu_link a {
			font-size: 1.2rem;
			margin-bottom: 8px;
		}
	}

	.footer_menu_menu_link._flow {
		order: 0;
	}

	.footer_menu_menu_link._concept {
		order: 1;
	}

	.footer_menu_menu_link._after {
		order: 2;
	}

	.footer_menu_menu_link.case {
		order: 3;
	}

	.footer_menu_menu_link._voice {
		order: 4;
	}

	.footer_menu_menu_link._staff {
		order: 5;
	}

	.footer_menu_menu_link._company {
		order: 6;
	}

	.footer_menu_menu_link._recruit {
		order: 7;
	}

	.footer_menu_menu_link._news {
		order: 8;
	}

	.footer_menu_menu_link._blog {
		order: 9;
	}

	.footer_menu_menu_link._contact {
		order: 10;
	}


	.footer_info_company_wrapper {
		flex-direction: column;
		gap: 24px;
		padding: 40px 0 0;
		margin-bottom: 0;
	}

	.footer_info_company {
		width: 100%;

		.footer_sns_area {
			justify-content: flex-start;
			gap: 24px;
		}

		.footer_sns_area .footer_sns_element {
			width: auto;
		}

		h2 {
			font-size: 1.8rem;
			margin: 0;
		}

		ul {
			padding-left: 0.8em;
			margin: 0;
		}

		p,
		li {
			font-size: 1.2rem;
		}
	}

	.footer_info_detail {
		margin-bottom: 32px;

		h3 {
			font-size: 1.2rem;
		}

		p {
			margin-top: 8px;
			font-size: 1.2rem;
		}
	}

	.footer_sns_area {
		gap: 32px;
		justify-content: center;

		.footer_sns_element {
			img {
				width: 48px;
			}
		}
	}

	.footer_info_map {
		width: 83.5%;
		margin: 0 auto;
		aspect-ratio: 300 / 220;
	}


	.footer_copyright {
		padding-bottom: 56px;

		.inner {
			flex-direction: column;
			gap: 8px;
			padding: 0;
		}

		a {
			font-size: 1.2rem;
		}

		.footer_copyright_copyright {
			font-size: 1rem;
		}
	}

	.footer_sp_buttons {
		padding: 4px 4px;

		.inner {
			padding: 0;
			gap: 4px;
			height: 48px;
		}
	}

	.footer_sp_button {
		flex: 1;
		position: relative;
	}


	.footer_sp_button a {
		width: 100%;
		padding: 0;

		span {
			font-size: 1.3rem;
		}
	}

	.footer_sp_button.footer_sp_button_tel {
		display: block;
	}
}

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

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