@charset "utf-8";

/* footer
------------------------------------------------------------------------------------ */
footer {
	margin-top:100px;
	background-color:transparent !important;
}
div#footer {
	padding:80px 0 calc(30px + env(safe-area-inset-bottom)) 0;
	background-color:#eb1f1f;
}

div#footerScrollWrapper {
}
div#footerScrollWrapper div#footerScroll {
	display: flex;
	overflow: hidden;
}
div#footerScrollWrapper div#footerScroll ul.footerScrollList {
	display: flex;
	list-style: none;
	padding: 0
}
div#footerScrollWrapper div#footerScroll ul.footerScrollListLeft {
	animation: infinity-scroll-left 80s infinite linear 0.5s both;
}
@keyframes infinity-scroll-left {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}
div#footerScrollWrapper div#footerScroll ul.footerScrollList li {
	width: calc(100vw / 1.7);
}

div#footer div#footerInner {
	max-width: 1480px;
	margin: 0 auto;
	padding:0 100px;
	transition: all 0.3s ease;
}

div#footer div#footerTop {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
div#footer div#footerTop div#footerTopLeft {
	display: flex;
	flex-direction: column;
	margin-right:100px;
	transition: all 0.3s ease;
}
div#footer div#footerTop div#footerTopLeft h2 {
	width: 230px;
	transition: all 0.3s ease;
}
div#footer div#footerTop div#footerTopLeft h2:hover {
	opacity: 0.8;
}
div#footer div#footerTop div#footerTopLeft p {
	color:#FFF;
	font-size: 0.875rem;
	line-height: 175%;
	margin-top: auto;
}
div#footer div#footerTop div#footerTopRight {
	display: flex;
	flex-wrap: wrap;
}
div#footer div#footerTop div#footerTopRight div#footerTopRight01,
div#footer div#footerTop div#footerTopRight div#footerTopRight02 {
	margin-right:100px;
	transition: all 0.3s ease;
}
div#footer div#footerTop div#footerTopRight div#footerTopRight03 {
}
div#footer div#footerTop div#footerTopRight div {
}
div#footer div#footerTop div#footerTopRight div ul {
	line-height: 100%;
}
div#footer div#footerTop div#footerTopRight div ul li {
}
div#footer div#footerTop div#footerTopRight div#footerTopRight03 ul li {
	margin-top:30px;
}
div#footer div#footerTop div#footerTopRight div#footerTopRight03 ul li:first-child {
	margin-top:0;
}
div#footer div#footerTop div#footerTopRight div#footerTopRight03 ul li:nth-child(3) {
	color:#FFF;
	font-size: 0.875rem;
	line-height: 175%;
}
div#footer div#footerTop div#footerTopRight div ul li a {
	color:#FFF;
	font-weight: 700;
	text-decoration:none;
	transition: all 0.3s ease;
}
div#footer div#footerTop div#footerTopRight div ul li a:hover {
	opacity: 0.75;
}
div#footer div#footerTop div#footerTopRight div#footerTopRight03 ul li:nth-child(3) a {
	font-weight: 400;
}
div#footer div#footerTop div#footerTopRight div ul li ul {
	font-size: 0.875rem;
	line-height: 150%;
	margin-top:15px;
}
div#footer div#footerTop div#footerTopRight div ul li ul li {
	margin-top:15px;
	padding-left:15px;
}
div#footer div#footerTop div#footerTopRight div ul li ul li:first-child {
	margin-top:0;
}
div#footer div#footerTop div#footerTopRight div ul li ul li a {
	position: relative;
	font-weight: 400;
	transition: all 0.3s ease;
}
div#footer div#footerTop div#footerTopRight div ul li ul li a:hover {
	opacity: 0.75;
}
div#footer div#footerTop div#footerTopRight div ul li ul li a:before {
	display: block;
	content: '';
	position: absolute;
	left: -15px;
	top: 10px;
	width: 5px;
	height: 1px;
	background-color: #FFF;
}

div#footer div#footerBottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top:80px;
}
div#footer div#footerBottom div#footerBottomLeft {
}
div#footer div#footerBottom div#footerBottomLeft ul {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.875rem;
	line-height: 100%;
}
div#footer div#footerBottom div#footerBottomLeft ul li {
	margin-right:20px;
	padding-right:20px;
	border-right: 1px solid #FFF;
}
div#footer div#footerBottom div#footerBottomLeft ul li:last-child {
	margin-right:0;
	padding-right:0;
	border-right: none;
}
div#footer div#footerBottom div#footerBottomLeft ul li a {
	color:#FFF;
	text-decoration:none;
	transition: all 0.3s ease;
}
div#footer div#footerBottom div#footerBottomLeft ul li a:hover {
	opacity: 0.75;
}
div#footer div#footerBottom div#footerBottomRight {
}
div#footer div#footerBottom div#footerBottomRight p#copyright {
	color:#FFF;
	font-size: 0.875rem;
	line-height: 100%;
}

/* footer追従ナビ
------------------------------------------------------------------------------------ */
div#spFooterNav {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	background-color: #f7eded;
	padding-bottom: env(safe-area-inset-bottom);
	box-shadow: 0 -3px 6px 0 rgba(0, 0, 0, 0.15);
	z-index: 4;
}
div#spFooterNav ul {
	display: flex;
	justify-content: center;
	padding: 0 20px;
}
div#spFooterNav ul li {
	width: 20%;
}
div#spFooterNav ul li.spFooterNavBeforeLogin {
	display: none;
}
body.__is-guest div#spFooterNav ul li.spFooterNavBeforeLogin {
	display: block;
}
div#spFooterNav ul li.spFooterNavAfterLogin {
	display: block;
}
body.__is-guest div#spFooterNav ul li.spFooterNavAfterLogin {
	display: none;
}
div#spFooterNav ul li a {
	display: block;
	text-decoration: none;
	color: #000;
	padding: 5px 0 10px 0;
}
div#spFooterNav ul li a p.spFooterBottomLinkIcon {
	width: 24px;
	margin: 0 auto 5px;
}
div#spFooterNav ul li a p.spFooterBottomLinkText {
	font-size: 0.75rem;
	line-height: 100%;
	letter-spacing: 0;
	font-weight: 500;
	text-align: center;
}
body div#spFooterNav ul li a p.spFooterBottomLinkText {
	position: relative;
	top: 5px;
}
body div#spFooterNav ul li#spFooterNavAfterLoginMypage a p.spFooterBottomLinkText {
	top: 0;
}

/* footerページトップボタン
------------------------------------------------------------------------------------ */
div.__pagetop {
	bottom: 60px !important;
}



/* PC（小）用
------------------------------------------------------------------------------------ */
@media screen and (min-width:1024px) and (max-width:1380px) {
	div#footer div#footerInner {
		width:100%;
		padding:0 50px;
	}
	div#footer div#footerTop div#footerTopLeft {
		margin-right:50px;
	}
	div#footer div#footerTop div#footerTopRight div#footerTopRight01,
	div#footer div#footerTop div#footerTopRight div#footerTopRight02 {
		margin-right:30px;
	}
}



/* タブレット用
------------------------------------------------------------------------------------ */
@media screen and (min-width:768px) and (max-width:1023px) {
	div#footerScrollWrapper div#footerScroll ul.footerScrollList li {
		width: calc(100vw / 1.2);
	}

	footer {
		margin-top:100px;
	}
	div#footer {
		padding:30px 0 calc((30px + 100px) + env(safe-area-inset-bottom)) 0;
	}
	div#footer div#footerInner {
		width:100%;
		padding:0 50px;
	}
	div#footer div#footerTop {
		display: block;
	}
	div#footer div#footerTop div#footerTopRight {
		display: none;
	}
	div#footer div#footerTop div#footerTopRightSp {
		display: flex;
		gap: 30px;
		margin-top: 30px;
	}
	div#footer div#footerTop div#footerTopRightSp div ul {
		line-height: 100%;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li:not(:first-child) {
		margin-top: 15px;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li a {
		color:#FFF;
		font-weight: 700;
		text-decoration:none;
		transition: all 0.3s ease;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li a:hover {
		opacity: 0.75;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul {
		font-size: 0.875rem;
		line-height: 150%;
		margin-top:15px;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li {
		margin-top:10px!important;
		padding-left:10px;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li:first-child {
		margin-top:0;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li a {
		position: relative;
		font-weight: 400;
		transition: all 0.3s ease;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li a:hover {
		opacity: 0.75;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li a:before {
		display: block;
		content: '';
		position: absolute;
		left: -10px;
		top: 10px;
		width: 5px;
		height: 1px;
		background-color: #FFF;
	}

	div#footer div#footerSpCompany {
		width: 96%;
		border-top: solid 2px #FFF;
		border-bottom: solid 2px #FFF;
		box-sizing: border-box;
		margin: 40px auto 0;
	}
	div#footer div#footerSpCompany p {
		font-size: 0.875rem;
		line-height: 175%;
		color: #FFF;
		margin: 15px;
	}

	div#footer div#footerBottom {
		margin-top:25px;
	}
	div#footer div#footerBottom div#footerBottomLeft {
		width: 96%;
		margin: 0 auto;
	}
	div#footer div#footerBottom div#footerBottomLeft ul li {
		margin-right:0;
		padding-right:15px;
	}
	div#footer div#footerBottom div#footerBottomLeft ul {
		column-gap: 15px;
		row-gap: 10px;
		padding-left: 15px;
	}
	div#footer div#footerBottom div#footerBottomRight {
		width: 100%;
		text-align: center;
		margin-top: 40px;
	}

	/* footer追従ナビ
	------------------------------------------------------------------------------------ */
	div#spFooterNav {
		display: block;
	}

	/* footerページトップボタン
	------------------------------------------------------------------------------------ */
	div.__pagetop {
		bottom: 75px !important;
	}
}



/* スマホ用
------------------------------------------------------------------------------------ */
@media screen and (max-width:767px) {
	div#footerScrollWrapper div#footerScroll ul.footerScrollList li {
		width: 100vw;
	}

	footer {
		margin-top:50px;
	}
	div#footer {
		padding:30px 0 calc((30px + 90px) + env(safe-area-inset-bottom)) 0;
	}
	div#footer div#footerInner {
		width:100%;
		padding:0 20px;
	}
	div#footer div#footerTop {
		display: block;
	}
	div#footer div#footerTop div#footerTopRight {
		display: none;
	}
	div#footer div#footerTop div#footerTopRightSp {
		display: flex;
		gap: 30px;
		margin-top: 30px;
	}
	div#footer div#footerTop div#footerTopRightSp div ul {
		line-height: 100%;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li:not(:first-child) {
		margin-top: 15px;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li a {
		color:#FFF;
		font-weight: 700;
		text-decoration:none;
		transition: all 0.3s ease;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li a:hover {
		opacity: 0.75;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul {
		font-size: 0.875rem;
		line-height: 150%;
		margin-top:15px;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li {
		margin-top:10px!important;
		padding-left:10px;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li:first-child {
		margin-top:0;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li a {
		position: relative;
		font-weight: 400;
		transition: all 0.3s ease;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li a:hover {
		opacity: 0.75;
	}
	div#footer div#footerTop div#footerTopRightSp div ul li ul li a:before {
		display: block;
		content: '';
		position: absolute;
		left: -10px;
		top: 10px;
		width: 5px;
		height: 1px;
		background-color: #FFF;
	}

	div#footer div#footerSpCompany {
		width: 96%;
		border-top: solid 2px #FFF;
		border-bottom: solid 2px #FFF;
		box-sizing: border-box;
		margin: 40px auto 0;
	}
	div#footer div#footerSpCompany p {
		font-size: 0.875rem;
		line-height: 175%;
		color: #FFF;
		margin: 15px;
	}

	div#footer div#footerBottom {
		margin-top:25px;
	}
	div#footer div#footerBottom div#footerBottomLeft {
		width: 96%;
		margin: 0 auto;
	}
	div#footer div#footerBottom div#footerBottomLeft ul li {
		margin-right:0;
		padding-right:15px;
	}
	div#footer div#footerBottom div#footerBottomLeft ul {
		column-gap: 15px;
		row-gap: 10px;
		padding-left: 15px;
	}
	div#footer div#footerBottom div#footerBottomRight {
		width: 100%;
		text-align: center;
		margin-top: 40px;
	}

	/* footer追従ナビ
	------------------------------------------------------------------------------------ */
	div#spFooterNav {
		display: block;
	}

	/* footerページトップボタン
	------------------------------------------------------------------------------------ */
	div.__pagetop {
		bottom: 75px !important;
	}
}
