@charset "utf-8";
/* ============================================================ */
/* l-footer */
/* ============================================================ */
.l-footer {
	background-color: var(--blue2);
	position: relative;
	padding: 300px 64px 75px;
	position: relative;
}

.business .l-footer,
.news .l-footer,
.contact .l-footer,
.privacy .l-footer {
	padding-top: 100px;
	overflow: hidden;
}

.l-footer::before {
	content: "";
	width: 485px;
	height: 728px;
	background: url(../../img/common/bg_footer_left.svg) no-repeat center / contain;
	position: absolute;
	left: 0;
	top: -30px;
	z-index: 100;
}

.l-footer::after {
	content: "";
	width: 480px;
	height: 550px;
	background: url(../../img/common/bg_footer_right.svg) no-repeat center / contain;
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 100;
}

.l-footer__inner {
	display: flex;
	justify-content: space-between;
	background-color: var(--white);
	border-radius: 20px;
	padding: 56px 56px 56px 40px;
	max-width: 1280px;
	margin-bottom: 48px;
	position: relative;
	z-index: 101;
}

.l-footer .l-contents__inner {
	position: relative;
	z-index: 102;
}

@media screen and (max-width: 1340px) {
	.l-footer__inner {
		display: block;
	}
}

/* .l-footer-contact
------------------------------------------------------------ */
.l-footer-contact {
	width: 440px;
	height: 250px;
	background: url(../../img/common/bg_footer_contact.jpg) no-repeat center / contain;
}

.l-footer-contact__link {
	display: grid;
	align-content: center;
	row-gap: 48px;
	height: 100%;
	color: var(--white);
	padding-left: 48px;
	position: relative;
}

@media screen and (max-width: 1340px) {
	.l-footer-contact {
		margin: 0 auto 60px;
	}
}

@media screen and (max-width: 900px) {
	.l-footer-contact {
		width: auto;
		height: auto;
		aspect-ratio: 440 / 250;
	}
}

.l-footer-contact .__ttl,
.l-footer-contact .__txt {
	opacity: 1;
	transition: opacity 0.3s ease;
}

.l-footer-contact__icon {
	background-color: var(--blue);
	border: solid 1px var(--blue);
	border-radius: 50%;
	width: 80px;
	height: 80px;
	display: grid;
	place-content: center;
	position: absolute;
	bottom: 0;
	right: 0;
	transition: all 0.3s ease;
}

.l-footer-contact__icon .__ico::before {
	width: 25px;
	height: 20px;
}

/* ホバー */
.l-footer-contact:hover .__ttl,
.l-footer-contact:hover .__txt {
	opacity: 0.65;
}

.l-footer-contact:hover .l-footer-contact__icon {
	border: solid 1px var(--line);
	background-color: var(--white);
}

.l-footer-contact:hover .l-footer-contact__icon .__ico::before {
	background-color: var(--blue);
}

/* .l-fnav 
------------------------------------------------------------ */
.l-fnav {
	max-width: 646px;
	width: 100%;
}

@media screen and (max-width: 1340px) {
	.l-fnav {
		margin: 0 auto;
	}
}

.l-fnav__list {
	display: flex;
	column-gap: 7.43%;
}
@media screen and (max-width: 900px) {
	.l-fnav__list {
		flex-direction: column;
	}
}

.l-fnav__item {
	flex-shrink: 0;
}
@media screen and (max-width: 900px) {
	.l-fnav__item {
		margin-bottom: 20px;
	}
}

.l-fnav__link {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--blue);
	display: block;
	position: relative;
	opacity: 1;
	transition: opacity 0.3s ease;
}
@media screen and (max-width: 900px) {
	.l-fnav__link {
		/* margin-bottom: ; */
	}
}

.l-fnav__link:has(+ .l-fnav__sublist) {
	margin-bottom: 25px;
}

.l-fnav__link:has( + .l-fnav__link) {
	margin-bottom: 30px;
}
@media screen and (max-width: 900px) {
	.l-fnav__link:has( + .l-fnav__link) {
		margin-bottom: 20px;
	}
	
}

.l-fnav__sublist-item:not(:last-of-type) {
	margin-bottom: 16px;
}

.l-fnav__sublist-link {
	font-size: 1.3rem;
	color: var(--gray);
	opacity: 0.75;
	position: relative;
	display: block;
	line-height: 1.35;
	transition: opacity 0.3s ease;
}

.l-fnav__link:hover,
.l-fnav__sublist-link:hover {
	opacity: 0.5;
}


/* .l-footer-logo
------------------------------------------------------------ */
.l-footer-logo {
width: 329px;
margin: 0 auto 28px;
}

/* .l-footer-copyright
------------------------------------------------------------ */
.l-footer-copyright {
	color: var(--gray);
	font-size: 1.3rem;
	margin-top: auto;
}
