@charset "utf-8";

#footer-ex {
	background: #f4f4f4;
	color: #1f2d36;
	padding-top: 56px;
}

#footer-ex a,
#footer-ex a:hover,
#footer-ex a:active,
#footer-ex a:focus {
	color: #1f2d36;
}

.footer-ex-inner {
	margin: 0 auto;
	max-width: 1200px;
	padding: 0 38px 42px;
}

.footer-ex-head {
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
	margin-bottom: 52px;
}

.footer-ex-logo {
	display: inline-block;
}

.footer-ex-logo img {
	display: block;
	max-width: 188px;
	width: 100%;
}

.footer-ex-sns {
	align-items: center;
	display: flex;
	gap: 16px;
	padding-top: 2px;
}

.footer-ex-sns p {
	color: #1f2d36;
	font-size: 14px;
	font-weight: bold;
	line-height: 1;
	margin: 0;
	white-space: nowrap;
}

.footer-ex-sns ul,
.footer-ex-col ul,
.footer-ex-banners,
.footer-ex-mobile ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-ex-sns ul {
	display: flex;
	gap: 8px;
}

.footer-ex-sns a {
	align-items: center;
	background: #333;
	border-radius: 50%;
	color: #fff !important;
	display: flex;
	font-size: 17px;
	height: 42px;
	justify-content: center;
	width: 42px;
}

.footer-ex-sns a:hover,
.footer-ex-sns a:active,
.footer-ex-sns a:focus {
	background: #138fd4;
	opacity: 1;
}

.footer-ex-nav {
	display: grid;
	gap: 42px;
	grid-template-columns: .95fr 1.05fr 1.35fr 1.85fr .95fr;
	margin-bottom: 54px;
}

.footer-ex-col h4,
.footer-ex-related h4 {
	color: #10222f;
	font-size: 16px;
	font-weight: bold;
	line-height: 1.55;
	margin: 0 0 20px;
	text-align: left;
}

.footer-ex-col li {
	font-size: 14px;
	line-height: 1.65;
	margin-bottom: 10px;
}

.footer-ex-col a {
	display: inline-block;
	position: relative;
	transition: color .2s;
}

.footer-ex-col a:after {
	background: #138fd4;
	bottom: -2px;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .25s;
	width: 100%;
}

.footer-ex-col:nth-child(4) a {
	white-space: nowrap;
}

.footer-ex-col a:hover,
.footer-ex-col a:active,
.footer-ex-col a:focus {
	color: #138fd4 !important;
	text-decoration: none;
}

.footer-ex-col a:hover:after,
.footer-ex-col a:active:after,
.footer-ex-col a:focus:after {
	transform: scaleX(1);
}

.footer-ex-related {
	margin-top: 8px;
}

.footer-ex-banners {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.footer-ex-banners a {
	align-items: center;
	background: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 130px;
	padding: 12px 12px 11px;
	text-align: center;
	transition: .2s;
}

.footer-ex-banners a:hover,
.footer-ex-banners a:active,
.footer-ex-banners a:focus {
	box-shadow: 0 10px 24px rgba(14, 47, 73, .12);
	opacity: 1;
	transform: translateY(-2px);
}

.footer-ex-banner-logo {
	align-items: center;
	display: flex;
	height: 60px;
	justify-content: center;
	margin-bottom: 8px;
	width: 100%;
}

.footer-ex-banner-logo img {
	display: block;
	height: auto;
	max-height: 56px;
	max-width: 92%;
	width: auto;
}

.footer-ex-banners li:nth-child(4) .footer-ex-banner-logo img {
	max-width: 84%;
}

.footer-ex-banners a > span:not(.footer-ex-banner-logo) {
	color: #0e2f49;
	font-size: 9.5px;
	font-weight: bold;
	line-height: 1.25;
	white-space: nowrap;
}

.footer-ex-banners small {
	color: #59636a;
	display: block;
	font-size: 9.5px;
	line-height: 1.45;
	margin-top: 5px;
}

.footer-ex-bottom {
	align-items: center;
	border-top: 1px solid #ddd;
	display: flex;
	justify-content: space-between;
	margin: 0 auto;
	max-width: 1200px;
	padding: 18px 38px 26px;
}

.footer-ex-bottom p {
	color: #58636b;
	font-size: 12px;
	line-height: 1.7;
	margin: 0;
}

.footer-ex-mobile {
	display: none;
}

@media only screen and (max-width: 1199px) {
	.footer-ex-nav,
	.footer-ex-banners {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media only screen and (max-width: 991px) {
	#footer-ex {
		padding-top: 42px;
	}

	.footer-ex-inner {
		padding: 0 20px 34px;
	}

	.footer-ex-head {
		gap: 24px;
		margin-bottom: 38px;
	}

	.footer-ex-logo img {
		max-width: 155px;
	}

	.footer-ex-sns {
		align-items: flex-end;
		flex-direction: column;
		gap: 10px;
	}

	.footer-ex-sns a {
		font-size: 15px;
		height: 36px;
		width: 36px;
	}

	.footer-ex-nav,
	.footer-ex-banners {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px 10px;
	}

	.footer-ex-col:nth-child(4) a {
		white-space: normal;
	}

	.footer-ex-nav {
		margin-bottom: 42px;
	}

	.footer-ex-banners a {
		min-height: 120px;
	}

	.footer-ex-banners a > span:not(.footer-ex-banner-logo) {
		font-size: 9.5px;
	}

	.footer-ex-bottom {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
		padding: 18px 20px 72px;
	}

	.footer-ex-mobile {
		background: #fff;
		border-top: 1px solid #ddd;
		bottom: 0;
		display: block;
		left: 0;
		padding: 1px;
		position: fixed;
		right: 0;
		z-index: 999;
	}

	.footer-ex-mobile ul {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1px;
	}

	.footer-ex-mobile a,
	.footer-ex-mobile a:hover,
	.footer-ex-mobile a:active,
	.footer-ex-mobile a:focus {
		background: #ab987a;
		color: #fff;
		display: block;
		font-size: 10px;
		line-height: 1.2;
		padding: 5px 2px;
		text-align: center;
	}

	.footer-ex-mobile a:before {
		display: block;
		font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free";
		font-size: 15px;
		font-weight: 900;
		line-height: 1;
		margin-bottom: 2px;
	}

	.footer-ex-mobile .home:before {
		content: "\f015";
	}

	.footer-ex-mobile .mail:before {
		content: "\f0e0";
	}

	.footer-ex-mobile .tel:before {
		content: "\f095";
	}

	.footer-ex-mobile .ptop:before {
		content: "\f077";
	}
}

@media only screen and (max-width: 575px) {
	.footer-ex-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.footer-ex-sns {
		align-items: flex-start;
	}

	.footer-ex-nav,
	.footer-ex-banners {
		grid-template-columns: 1fr;
	}
}
