@charset "utf-8";


/*----- contents -------

	1: Main Interface setting
		: container
		: header
		: footer
	2: Common

----------------------*/


/*
===== 1: Main Interface setting ===========================*/
html {
	scroll-padding-top: 90px;
}

@media (max-width: 768px) {
	html {
		scroll-padding-top: 62px;
	}
}

html,body {
	height: 100%;
}

body.fixed {
	position: fixed;
	width: 100%;
}

/* container
--------------------*/
#container {
	position: relative;
	min-width: 100%;
	overflow: hidden;
}

#container .l-inner {
	position: relative;
	max-width: 1264px;
	margin: 0 auto;
	padding: 0 32px;
}

#container .l-inner_min {
	max-width: 1064px;
}

@media (max-width: 768px) {
	#container .l-inner {
		padding: 0 calc((20 / 375) * 100%);
	}
}

/* main
--------------------*/
main {
	position: relative;
	margin: 70px 0 0;
	background: #EABF4B;
}

#index main {
	margin: 0;
}

@media (max-width: 768px) {
	main {
		margin: 53px 0 0;
	}

	#index main {
		margin: 0;
	}
}

/* header
--------------------*/
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 70px;
  z-index: 1000;
}

header:after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 187px;
	width: calc(100% - 187px);
	height: 70px;
  background: rgba(17, 34, 64, 0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,0.2);
}

header .logo a {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 187px;
	height: 118px;
  background: rgba(17, 34, 64, 0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-right: 1px solid rgba(255,255,255,0.2);
  border-bottom: 1px solid rgba(255,255,255,0.2);
	border-top: none;
	border-left: none;
	border-radius: 0 0 10px 0;
	font-size: 0;
	line-height: 0;
	z-index: 3000;
}

header .logo img {
	width: 150px;
}

header .tagline {
	position: absolute;
	top: 50%;
	left: 212px;
	transform: translateY(-50%);
	color: #ffffff;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.05em;
	z-index: 2;
}

@media (min-width: 769px) {
	header .logo a:hover img {
		opacity: 0.6;
	}
}

header .nav_online_shop a {
	position: absolute;
	top: 50%;
	right: 430px;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 6px;
	width: 183px;
	height: 50px;
	padding: 0 28px 0 30px;
	border-left: 1px solid rgba(248, 225, 51,0.3);
	color: #F8E133;
	line-height: 1;
	z-index: 2;
}

.en header .nav_online_shop a {
	width: 198px;
}

header .nav_online_shop a span {
	font-size: 12px;
	font-weight: 700;
	text-align: left;
}

header .nav_online_shop a em {
	font-size: 16px;
	font-weight: 700;
	text-align: left;
}

header .nav_recruit a {
	position: absolute;
	top: 50%;
	right: 276px;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	width: 155px;
	height: 50px;
	padding: 0 28px 0 30px;
	border-left: 1px solid rgba(248, 225, 51,0.3);
	border-right: 1px solid rgba(248, 225, 51,0.3);
	color: #F8E133;
	line-height: 1;
	z-index: 2;
}

header .nav_recruit a em {
	font-size: 16px;
	font-weight: 700;
}

header .hdr_blank {
	position: relative;
}

header .hdr_blank:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 32px;
	transform: translateY(-50%);
	width: 12px;
	height: 12px;
	background: url(/assets/img/common/bullet_blank_01_y.svg) no-repeat 50% 50%;
	background-size: 12px auto;
}

header .nav_lang ul {
	position: absolute;
	top: 50%;
	right: 124px;
	transform: translateY(-50%);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	width: 150px;
	height: 50px;
	z-index: 2;
}

header .nav_lang li a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 44px;
	height: 26px;
	padding: 0 0 2px;
	border: 1px solid transparent;
	border-radius: 26px;
	color: #F8E133;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
}

header .nav_lang li.current a {
	background: #F8E133 !important;
	border: 1px solid #F8E133 !important;
	color: #112240 !important;
}

@media (min-width: 769px) {
	header .hdr_blank:hover {
		color: #ffffff;
	}

	header .hdr_blank:hover:after {
		background: url(/assets/img/common/bullet_blank_01_w.svg) no-repeat 50% 50%;
		background-size: 12px auto;
	}

	header .nav_lang li a:hover {
		border: 1px solid #F8E133;
	}
}

@media (max-width: 1108px) {
	header .nav_online_shop a {
		right: 124px;
		align-items: center;
		width: 124px;
		padding: 0;
		color: #F8E133 !important;
	}

	.en header .nav_online_shop a {
		width: 124px;
	}

	.en header .nav_online_shop a span.u-sp_hidden {
		display: none !important;
	}

	.en header .nav_online_shop a span.u-pc_hidden {
		display: block !important;
	}

	header .nav_online_shop a.hdr_blank:after {
		content: "";
		display: block;
		position: absolute;
		top: 7px;
		left: 50%;
		transform: translateX(-50%);
		width: 24px;
		height: 24px;
		background: url(/assets/img/common/icon_online_shop.svg) no-repeat 50% 50%;
		background-size: 24px auto;
	}

	header .nav_online_shop a span {
		padding: 30px 0 0;
		font-size: 12px;
		font-weight: 700;
		text-align: center;
	}

	header .nav_online_shop a em {
		display: none;
	}

	header .nav_recruit {
		display: none;
	}

	header .nav_lang {
		display: none;
	}
}

@media (max-width: 768px) {
	header {
		height: 53px;
	}

	header:after {
		left: 0;
		width: 100%;
		height: 53px;
	}

	header .logo a {
		position: absolute;
		top: 50%;
		left: 14px;
		transform: translateY(-50%);
		display: block;
		width: 64px;
		height: auto;
		background: none;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		border: none;
		border-radius: 0;
	}

	header .logo img {
		width: 100%;
	}

	header .tagline {
		left: 96px;
		font-size: 7px;
		line-height: 1.3;
		letter-spacing: 0;
	}

	header .nav_online_shop a {
		right: 68px;
		width: 74px;
		border-left: none;
	}

	header .nav_online_shop a {
		right: 68px;
		width: 74px;
		height: 53px;
		border-left: none;
	}

	.en header .nav_online_shop a {
		width: 74px;
	}

	header .nav_online_shop a.hdr_blank:before {
		content: "";
		display: block;
		position: absolute;
		top: 50%;
		left: 0;
		transform: translateY(-50%);
		width: 1px;
		height: calc(100% - 8px);
		background-color: rgba(248, 225, 51,0.3);
		border-radius: 3px;
	}


	header .nav_online_shop a.hdr_blank:after {
		top: 12px;
		width: 18px;
		height: 18px;
		background: url(/assets/img/common/icon_online_shop.svg) no-repeat 50% 50%;
		background-size: 18px auto;
	}

	header .nav_online_shop a span {
		padding: 25px 0 0;
		font-size: 8px;
		line-height: 1;
	}
}

/* .nav_menu */
header .nav_menu a {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	width: 124px;
	height: 70px;
	background: #F8E133;
	z-index: 2001;
}

header .nav_menu span {
	display: inline-block;
	position: absolute;
	left: 32px;
	width: 60px;
	height: 4px;
	background-color: #112240;
	border-radius: 4px;
	transition: all .4s;
}

header .nav_menu span:nth-of-type(1) {
	top: 24px;
}

header .nav_menu span:nth-of-type(2) {
	top: 42px;
}

header .nav_menu.is-active span:nth-of-type(1) {
	top: 32px;
	left: 32px;
	width: 60px;
	transform: rotate(-28deg);
}

header .nav_menu.is-active span:nth-of-type(2) {
	top: 32px;
	left: 32px;
	width: 60px;
	transform: rotate(28deg);
}

@media (min-width: 769px) {
	header .nav_menu a:hover {
		background: #029E62;
	}
}

@media (max-width: 768px) {
	header .nav_menu a {
		width: 68px;
		height: 53px;
	}

	header .nav_menu span {
		display: inline-block;
		position: absolute;
		left: 21px;
		width: 28px;
		height: 3px;
		border-radius: 3px;
	}

	header .nav_menu span:nth-of-type(1) {
		top: 20px;
	}

	header .nav_menu span:nth-of-type(2) {
		top: 30px;
	}

	header .nav_menu.is-active span:nth-of-type(1) {
		top: 25px;
		left: 21px;
		width: 28px;
		transform: rotate(-28deg);
	}

	header .nav_menu.is-active span:nth-of-type(2) {
		top: 25px;
		left: 21px;
		width: 28px;
		transform: rotate(28deg);
	}
}

/* .p-menu */
header .p-menu {
	position: fixed;
	top: 70px;
	left: 0;
	width: 100%;
	color: #ffffff;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s ease, visibility 0.4s ease;
	z-index: 2000;
}

header .p-menu.is-open {
	opacity: 1;
	visibility: visible;
}

header .p-menu a {
	color: #ffffff;
}

header .p-menu .nav_lang {
	display: none;
}

header .p-menu_inner {
	position: relative;
	width: 100%;
	height: calc(100dvh - 70px);
	background-color: rgba(17, 34, 64, 0.9);
	overflow: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

header .p-menu .wrap {
	position: absolute;
	top: 48%;
	left: 50%;
	transform: translate(-50%,-50%);
	display: flex;
	gap: calc((36 / 1200) * 100%);
	width: 100%;
	max-width: 1264px;
	margin: 0 auto;
	padding: 0 calc((32 / 1200) * 100%) 0;
}

header .p-menu .wrap > div {
	flex: 1;
}

header .p-menu .wrap dt {
	border-bottom: 1px solid rgba(255,255,255,0.2);
}

header .p-menu .wrap dt a {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 70px;
	padding: 8px 48px 8px 24px;
	font-size: 16px;
	font-weight: 700;
}

header .p-menu .wrap dt a:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 28px;
	transform: translateY(-50%);
	width: 8px;
	height: 14px;
	background: url(/assets/img/common/bullet_arrow_01_w.svg) no-repeat 50% 50%;
	background-size: 8px auto;
}

header .p-menu .wrap dt a.blank:after {
	width: 17px;
	height: 17px;
	background: url(/assets/img/common/bullet_blank_01_w.svg) no-repeat 50% 50%;
	background-size: 17px auto;
}

header .p-menu .wrap dd {
	padding: 14px 0;
	border-bottom: 1px solid rgba(255,255,255,0.2);
}

header .p-menu .wrap dd a {
	display: block;
	position: relative;
	padding: 10px 48px 10px 48px;
	font-size: 16px;
	font-weight: 700;
}

header .p-menu .wrap dd a:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 28px;
	transform: translateY(-50%);
	width: 8px;
	height: 14px;
	background: url(/assets/img/common/bullet_arrow_01_w.svg) no-repeat 50% 50%;
	background-size: 8px auto;
}

header .wrap .sns {
	padding: 40px 0 32px;
}

header .wrap .sns ul:nth-of-type(1) {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 24px;
}

header .wrap .sns ul:nth-of-type(1) li {
	width: 32px;
}

header .wrap .sns .c-note_01 {
	max-width: 324px;
	margin: 24px auto 0;
}

.en header .wrap .sns .c-note_01 {
	max-width: 308px;
}

header .wrap .sns .c-note_01 li {
	font-size: 12px;
	line-height: 1.6;
}

header .p-menu .wrap ul.other {
	display: flex;
	justify-content: right;
	align-items: center;
	gap: 24px;
	padding: 24px 0 0;
	border-top: 1px solid rgba(255,255,255,0.2);
}

header .p-menu .wrap ul.other li a {
	display: block;
	font-size: 14px;
}

@media (min-width: 769px) {
	header .p-menu .wrap a:hover {
		color: #F8E133;
	}

	header .p-menu .wrap dt a {
		transition: none;
	}

	header .p-menu .wrap dt a:hover {
		background: #F8E133;
		color: #000000;
	}

	header .p-menu .wrap dt a:hover:after {
		background: url(/assets/img/common/bullet_arrow_01_b.svg) no-repeat 50% 50%;
		background-size: 8px auto;
	}

	header .p-menu .wrap dt a:hover.blank:after {
		background: url(/assets/img/common/bullet_blank_01_b.svg) no-repeat 50% 50%;
		background-size: 17px auto;
	}

	header .p-menu .wrap dd a:hover:after {
		background: url(/assets/img/common/bullet_arrow_01_y.svg) no-repeat 50% 50%;
		background-size: 8px auto;
	}

	header .p-menu .wrap ul.sns li a:hover {
		opacity: 0.5;
	}
}

@media (max-width: 960px) {
	header .p-menu .wrap {
		position: static;
		transform: none;
		display: block;
		max-width: 640px;
		padding: 40px;
	}

	header .p-menu .nav_lang {
		display: block;
	}

	header .p-menu .nav_lang ul {
		position: static;
		height: auto;
		transform: none;
		margin: 0 auto 24px;
	}
}

@media (max-width: 768px) {
	header .p-menu {
		top: 53px;
	}

	header .p-menu_inner {
		height: calc(100dvh - 53px);
	}

	header .p-menu .wrap {
		padding: 40px calc((40 / 375) * 100%);
	}

	header .p-menu .wrap dt a {
		min-height: 50px;
		padding: 8px 32px 8px 16px;
		font-size: 14px;
	}

	header .p-menu .wrap dt a:after {
		right: 12px;
	}

	header .p-menu .wrap dt.toggle {
		position: relative;
	}

	header .p-menu .wrap dt.toggle + dd {
		border-bottom: none;
	}

	header .p-menu .wrap dt.toggle a:after {
		display: none;
	}

	header .p-menu .wrap dt.toggle span {
		display: block;
		position: absolute;
		top: 50%;
		right: -8px;
		transform: translateY(-50%);
		width: 50px;
		height: 50px;
		background: url(/assets/img/common/bullet_arrow_03_w.svg) no-repeat 50% 50%;
		background-size: 14px auto;
		cursor: pointer;
	}

	header .p-menu .wrap dt.toggle.open span {
		background: url(/assets/img/common/bullet_arrow_04_w.svg) no-repeat 50% 50%;
		background-size: 14px auto;
	}

	header .p-menu .wrap dd {
		max-height: 0;
		padding: 0;
    transition: max-height .5s ease;
		overflow: hidden;
	}

	header .p-menu .wrap dt.toggle.open + dd {
		max-height: 300px;
		border-bottom: 1px solid rgba(255,255,255,0.2);
	}

	header .p-menu .wrap dd ul {
		padding: 8px 0;
	}

	header .p-menu .wrap dd a {
		padding: 6px 32px 6px 36px;
		font-size: 14px;
	}

	header .p-menu .wrap dd a:after {
		right: 12px;
	}

	header .wrap .sns {
		padding: 24px 0;
		border-bottom: 1px solid rgba(255,255,255,0.2);
	}

	header .wrap .sns ul:nth-of-type(1) {
		gap: 20px;
		padding: 0;
	}

	header .wrap .sns .c-note_01 {
		max-width: 250px;
		margin: 20px auto 0;
		padding: 0;
	}

	.en header .wrap .sns .c-note_01 {
		max-width: 248px;
	}

	header .p-menu .wrap ul.other {
		justify-content: center;
		gap: 16px;
		padding: 24px 0 0;
		border: none;
	}

	header .p-menu .wrap ul.other li a {
		display: block;
		font-size: 14px;
	}
}

/* footer
--------------------*/
footer {
	position: relative;
	background: #EABF4B;
	color: #ffffff;
}

footer .footer_inner {
	background: #112240;
}

footer .p-contact {
	padding: 56px 0 0;
	text-align: center;
}

footer .p-contact dt {
	color: #F8E133;
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
}

footer .p-contact dd {
	margin: 20px 0 0;
	font-size: 16px;
	font-weight: 700;
}

footer .p-contact nav a {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 335px;
	height: 80px;
	margin: 48px auto 0;
	border: 4px solid #F8E133;
	border-radius: 80px;
	color: #F8E133;
	font-size: 18px;
	font-weight: 700;
}

footer .p-contact nav a:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	width: 8px;
	height: 14px;
	background: url(/assets/img/common/bullet_arrow_01_y.svg) no-repeat 50% 50%;
	background-size: 8px auto;
}

footer .nav_torikumi a {
	position: relative;
	display: flex;
	align-items: center;
	width: 424px;
	height: 100px;
	margin: 108px auto 0;
	padding: 0 60px 0 120px;
	background: #F1E2B0;
	border-radius: 10px;
	color: #112240;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
}

footer .nav_torikumi a:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	width: 34px;
	height: 34px;
	background: url(/assets/img/common/bullet_arrow_02_n.svg) no-repeat 50% 50%;
	background-size: 34px auto;
}

footer .nav_torikumi a:before {
	content: "";
	display: block;
	position: absolute;
	top: 10px;
	left: 10px;
	width: 80px;
	height: 80px;
	background: url(/assets/img/common/ftr_nav_thumb_torikumi.png) no-repeat 50% 50%;
	background-size: 80px auto;
}

footer .p-cans {
	position: relative;
}

footer .p-cans:after {
	content: "";
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 0;
	padding-top: calc((82 / 1200) * 100%);
	background: #112240;
	border-top: 1px solid rgba(255,255,255,0.2);
}

@media (min-width: 1200px) {
	footer .p-cans:after {
		padding-top: 88px;
	}
}

footer .p-cans ul {
	position: relative;
	display: flex;
	justify-content: center;
	gap: calc((88 / 1200) * 100%);
	width: 100%;
	max-width: 1264px;
	margin: 64px auto 0;
	padding: 0 32px;
}

.en footer .p-cans ul {
	margin: 108px auto 0;
}

footer .p-cans ul li {
	width: calc((88 / 1200) * 100%);
}

footer .logo {
	position: relative;
	width: 200px;
	margin: calc((24 / 1440) * -100%) auto 0;
}

@media (min-width: 769px) {
	footer .logo a:hover {
		opacity: 0.6;
	}
}

footer .wrap {
	display: flex;
	gap: calc((36 / 1200) * 100%);
	width: 100%;
	max-width: 1264px;
	margin: 40px auto 0;
	padding: 0 calc((32 / 1200) * 100%) 0;
}

footer .wrap a {
	color: #ffffff;
}

footer .wrap > div {
	flex: 1;
}

footer .wrap dt {
	border-bottom: 1px solid rgba(255,255,255,0.2);
}

footer .wrap dt a {
	position: relative;
	padding: 8px 48px 8px 24px;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 70px;
	font-size: 16px;
	font-weight: 700;
}

footer .wrap dt a:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 28px;
	transform: translateY(-50%);
	width: 8px;
	height: 14px;
	background: url(/assets/img/common/bullet_arrow_01_w.svg) no-repeat 50% 50%;
	background-size: 8px auto;
}

footer .wrap dt a.blank:after {
	width: 17px;
	height: 17px;
	background: url(/assets/img/common/bullet_blank_01_w.svg) no-repeat 50% 50%;
	background-size: 17px auto;
}

footer .wrap dd {
	padding: 14px 0;
	border-bottom: 1px solid rgba(255,255,255,0.2);
}

footer .wrap dd a {
	display: block;
	position: relative;
	padding: 10px 48px 10px 48px;
	font-size: 16px;
	font-weight: 700;
}

footer .wrap dd a:after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	right: 28px;
	transform: translateY(-50%);
	width: 8px;
	height: 14px;
	background: url(/assets/img/common/bullet_arrow_01_w.svg) no-repeat 50% 50%;
	background-size: 8px auto;
}

footer .wrap .sns {
	padding: 40px 0 32px;
}

footer .wrap .sns ul:nth-of-type(1) {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 24px;
}

footer .wrap .sns ul:nth-of-type(1) li {
	width: 32px;
}

footer .wrap .sns .c-note_01 {
	max-width: 324px;
	margin: 24px auto 0;
}

.en footer .wrap .sns .c-note_01 {
	max-width: 308px;
}

footer .wrap .sns .c-note_01 li {
	font-size: 12px;
	line-height: 1.6;
}

footer .wrap ul.other {
	display: flex;
	justify-content: right;
	align-items: center;
	gap: 24px;
	padding: 24px 0 0;
	border-top: 1px solid rgba(255,255,255,0.2);
}

footer .wrap ul.other li a {
	display: block;
	font-size: 14px;
}

footer .copyright {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 28px;
	width: 100%;
	padding: 32px 0 24px;
	font-size: 14px;
}

.pagetop {
	position: fixed;
	right: 28px;
	bottom: 28px;
	width: 68px;
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.2s ease, visibility 0.2s ease;
	z-index: 100;
}

.pagetop.is-show {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.4s ease, visibility 0.4s ease;
}

@media (min-width: 769px) {
	footer .p-contact nav a:hover {
		background: #F8E133;
		color: #000000;
	}

	footer .p-contact nav a:hover:after {
		background: url(/assets/img/common/bullet_arrow_01_b.svg) no-repeat 50% 50%;
		background-size: 8px auto;
		opacity: 1;
	}

	footer .nav_torikumi a:hover {
		background: #F8E133;
	}

	footer .wrap a:hover {
		color: #F8E133;
	}

	footer .wrap dt a {
		transition: none;
	}

	footer .wrap dt a:hover {
		background: #F8E133;
		color: #000000;
	}

	footer .wrap dt a:hover:after {
		background: url(/assets/img/common/bullet_arrow_01_b.svg) no-repeat 50% 50%;
		background-size: 8px auto;
	}

	footer .wrap dt a:hover.blank:after {
		background: url(/assets/img/common/bullet_blank_01_b.svg) no-repeat 50% 50%;
		background-size: 17px auto;
	}

	footer .wrap dd a:hover:after {
		background: url(/assets/img/common/bullet_arrow_01_y.svg) no-repeat 50% 50%;
		background-size: 8px auto;
	}

	footer .wrap ul.sns li a:hover {
		opacity: 0.5;
	}
}

@media (max-width: 960px) {
	footer .wrap dt a {
		font-size: 15px;
		font-weight: 700;
	}

	footer .wrap dd a {
		font-size: 15px;
	}

	footer .wrap .sns ul:nth-of-type(1) {
		gap: 16px;
	}

	footer .wrap ul.other {
		justify-content: center;
		gap: 16px;
	}

	footer .wrap ul.other li a {
		font-size: 13px;
	}

	footer .copyright {
		font-size: 13px;
	}
}

@media (max-width: 768px) {
	footer .p-contact {
		padding: 56px calc((20 / 375) * 100%) 0;
	}

	footer .p-contact dt {
		font-size: 30px;
	}

	footer .p-contact dd {
		margin: 32px 0 0;
	}

	footer .p-contact nav a {
		width: 100%;
		max-width: 335px;
		margin: 32px auto 0;
	}

	footer .nav_torikumi {
		padding: 0 calc((20 / 375) * 100%);
	}

	footer .nav_torikumi a {
		width: 100%;
		max-width: 424px;
		height: 80px;
		margin: 48px auto 0;
		padding: 0 48px 0 100px;
		font-size: 18px;
	}

	footer .nav_torikumi a:after {
		width: 24px;
		height: 24px;
		background: url(/assets/img/common/bullet_arrow_02_n.svg) no-repeat 50% 50%;
		background-size: 24px auto;
	}

	footer .nav_torikumi a:before {
		width: 60px;
		height: 60px;
		background: url(/assets/img/common/ftr_nav_thumb_torikumi.png) no-repeat 50% 50%;
		background-size: 60px auto;
	}

	footer .p-cans:after {
		padding-top: calc((56 / 1200) * 100%);
	}

	footer .p-cans ul {
		gap: calc((88 / 1200) * 100%);
		margin: 32px auto 0;
		padding: 0 calc((20 / 375) * 100%);
	}

	.en footer .p-cans ul {
		margin: 48px auto 0;
	}

	footer .p-cans ul li {
		width: calc((88 / 1200) * 100%);
	}

	footer .logo {
		width: 140px;
		margin: 20px auto 0;
	}

	footer .wrap {
		position: static;
		transform: none;
		display: block;
		margin: 32px 0 0;
		padding: 0 calc((40 / 375) * 100%);
	}

	footer .wrap dt a {
		min-height: 50px;
		padding: 8px 32px 8px 16px;
		font-size: 14px;
	}

	footer .wrap dt a:after {
		right: 12px;
	}

	footer .wrap dt.toggle {
		position: relative;
	}

	footer .wrap dt.toggle + dd {
		border-bottom: none;
	}

	footer .wrap dt.toggle a:after {
		display: none;
	}

	footer .wrap dt.toggle span {
		display: block;
		position: absolute;
		top: 50%;
		right: -8px;
		transform: translateY(-50%);
		width: 50px;
		height: 50px;
		background: url(/assets/img/common/bullet_arrow_03_w.svg) no-repeat 50% 50%;
		background-size: 14px auto;
		cursor: pointer;
	}

	footer .wrap dt.toggle.open span {
		background: url(/assets/img/common/bullet_arrow_04_w.svg) no-repeat 50% 50%;
		background-size: 14px auto;
	}

	footer .wrap dd {
		max-height: 0;
		padding: 0;
    transition: max-height .5s ease;
		overflow: hidden;
	}

	footer .wrap dt.toggle.open + dd {
		max-height: 300px;
		border-bottom: 1px solid rgba(255,255,255,0.2);
	}

	footer .wrap ul {
		padding: 8px 0;
	}

	footer .wrap dd a {
		padding: 6px 32px 6px 36px;
		font-size: 14px;
	}

	footer .wrap dd a:after {
		right: 12px;
	}

	footer .wrap .sns {
		padding: 24px 0;
		border-bottom: 1px solid rgba(255,255,255,0.2);
	}

	footer .wrap .sns ul:nth-of-type(1) {
		gap: 20px;
		padding: 0;
	}

	footer .wrap .sns .c-note_01 {
		max-width: 250px;
		margin: 20px auto 0;
		padding: 0;
	}

	.en footer .wrap .sns .c-note_01 {
		max-width: 248px;
	}

	footer .wrap ul.other {
		gap: 16px;
		border: none;
	}

	footer .wrap ul.other li a {
		display: block;
		font-size: 14px;
	}

	footer .copyright {
		display: block;
		padding: 0 calc((40 / 375) * 100%);
		font-size: 12px;
	}

	footer .copyright p {
		padding: 24px 0 0;
	}

	footer .copyright p + p {
		padding: 32px 0 28px;
		text-align: center;
	}

	.en footer .copyright p {
		padding: 32px 0 28px;
		text-align: center;
	}

	.pagetop {
		right: 8px;
		bottom: 8px;
		width: 46px;
	}

	.pagetop svg {
		height: 81px;
		width: 46px;
	}
}

/* footer p-cans: 缶のポップアップアニメーション
--------------------*/
footer .p-cans ul li {
	--can-pop-x: 0px;
	--can-pop-y: -28px;
}

@media (max-width: 768px) {
	footer .p-cans ul li {
		--can-pop-x: 0px;
		--can-pop-y: -14px;
	}
}

@keyframes can-pop {
	0% {
		translate: 0 0;
		animation-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
	}
	30% {
		translate: var(--can-pop-x) var(--can-pop-y);
		animation-timing-function: linear;
	}
	58% {
		translate: var(--can-pop-x) var(--can-pop-y);
		animation-timing-function: cubic-bezier(0.4, 0.0, 1.0, 1.0);
	}
	100% {
		translate: 0 0;
	}
}

footer .p-cans ul li.is-popping {
	animation: can-pop 0.75s forwards;
}


/*
===== 2: Common ===========================*/

/* link setting
--------------------*/
a:link { color: #000000; text-decoration: none; transition: all .3s ease; }
a:visited { color: #000000; text-decoration: none; }
a:active { color: #000000; text-decoration: none; }
a:hover { color: #000000; text-decoration: none; }
a img { transition: all .3s ease; }

@media (max-width: 768px) {
	a:link { transition: none; }
	a img { transition: none; }
}