body {
	width: 100%;
	margin: 0;
	padding: 0;
	font-family: 'Noto Sans JP', 'Josefin Sans', sans-serif;
	box-sizing: border-box;
	color: #232323;
}
*,
*::before,
*::after {
	box-sizing: border-box;
}

main {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 0;
}
img {
	width: 100%;
	vertical-align: bottom;
}
.itaric {
	font-style: italic;
}
.flex {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.inner {
	max-width: 1000px;
	padding: 0;
	margin: 0 auto;
}
li {
	list-style: none;
}
a {
	text-decoration: none;
}
.pc{
	display: inherit;
}
.sp{
	display: none;
}


@media screen and (max-width: 1024px) {
	.inner {
		padding: 0 4.8vw;
	}
}

@media screen and (min-width: 769px) {
	.pc__none {
		display: none !important;
	}
}

@media screen and (max-width: 768px) {
	.pc{
		display: none;
	}
	.sp{
		display: inherit;
	}
	.sp__none {
		display: none !important;
	}
	.inner {
		padding: 0 3.255vw;
	}
}


/* ==================
  header
  ================== */
header {
	position: fixed;
	width: 100%;
	height: 80px;
	padding: 16px 20px;
	background-color: #fffffff3;
	z-index: 100;
	top: 0;
}
header .left {
	width: 130px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
header .left a {
	max-width: 130px;
	width: 12.7vw;
}
header .right {
	border-left: #000 1px solid;
	display: flex;
}
header .right li {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0 20px;
	border-right: #000 1px solid;
	font-size: 18px;
	text-align: center;
}
header .right li a {
	color: #000;
}
header .right li.site {
	position: relative;
	width: 175px;
	padding: 0 10px;
	font-size: 15px;
	font-weight: 100;
	text-align: left;
	line-height: 1.4;
	border-right: none;
}
header .right li.site a{
	width: 100%;
	padding: 5px 10px;
	background: #E50012;
	color: #fff;
}
header .right li.site::after {
	content: "";
	position: absolute;
	width: 16px;
	height: 16px;
	background: url(../img/common/header__arrow.svg) no-repeat;
	background-size: 16px 16px;
	right: 40px;
	bottom: 6px;
}
header .flex{
	flex-wrap: nowrap;
}

@media screen and (max-width: 1024px) {
	header .inner {
		padding: 0;
	}
	header .left {
		width: 12.69vw;
	}
	header .right li {
		padding: 0 1.95vw;
		font-size: 1.757vw;
	}
	header .right li.site {
		width: 17vw;
		padding: 0 10px;
		font-size: 1.464vw;
	}
	header .right li.site::after {
		right: 40px;
		bottom: 6px;
	}
}

@media screen and (max-width: 768px) {
	header {
		height: 10.416vw;
		padding: 0;
	}
	header .left a {
		max-width: none;
		width: auto;
	}
	header .inner{
		height: 100%;
	}
	header .flex{
		align-items: center;
		flex-wrap: wrap;
	}
	.sp__menu{
		display: flex;
		justify-content: flex-end;
		align-items: center;
		margin-right: 3vw;
	}
	.header__openBtn {
		display: block;
		padding: 0;
		width: 6.9vw;
		height: 4.9vw;
		z-index: 20;
	}
	.header__openBtn span {
		display: block;
		width: 6.9vw;
		height: 3px;
		margin-bottom: 1.69vw;
		background-color: #000000;
		transition: 0.5s;
		border-radius: 3px;
	}
	.header__openBtn.active span:nth-child(1) {
		width: 6.9vw;
		margin: 0;
		transform: rotate(45deg) translate(1.5625vw, 1.73229vw);
	}
	.header__openBtn.active span:nth-child(3) {
		opacity: 0;
	}
	.header__openBtn.active span:nth-child(2) {
		width: 6.9vw;
		margin: 0;
		transform: rotate(-45deg) translate(-1.30208vw, 1.171875vw);
	}

	.header__search {
		display: block;
		width: 6.51vw;
		height: 6.51vw;
		margin-right: 2vw;
	}

	header .left {
		width: 50vw;
		padding-left: 3vw;
	}
	header .right {
		display: block;
		position: fixed;;
		width: 100%;
		top: 10.41vw;
		left: 120vw;
		padding: 6.5vw 4.55vw;
		border-left: none;
		background: #FFE6E6;
		transition: 0.4s;
	}
	header.active .right {
		left: 0;
	}
	header .right li,
	header .right li.site{
		position: relative;
		width: 100%;
		padding: 3.5vw 6.5vw;
		margin-top: 1.3vw;
		background-color: #FFF;
		border-right: none;
		font-size: 4.6875vw;
		line-height: 1;
		text-align: left;
		font-weight: bold;
	}
	header .right li::before {
		content: "";
		position: absolute;
		top: 0;
		left: 15px;
		display: block;
		width: 5px;
		height: 7vw;
		margin: auto;
		background: #6E0014;
	}
	header .right li.site a,
	header .right li a {
		display: block;
		width: 100%;
		height: 100%;
		padding: 0;
		color: #6E0014;
		background: #fff;
	}
	header .right li.site::after {
		width: 5vw;
		height: 5vw;
		background: url(../img/common/header__arrow_r.png) no-repeat;
		background-size: 5vw 5vw;
		top: 50%;
		right: 3vw;
		margin-top: -2.5vw;
	}
}


/* ==================
  language
  ================== */
.language {
	position: fixed;
	top: 90px;
	text-align: right;
	z-index: 100;
	width: 100%;
	left: 0;
	right: 0;
	margin: auto;
	color: #FFF;
}
.language a {
	font-size: 16px;
	color: #FFF;
}
.page-faq .language,
.page-faq .language a,
.page-item .language,
.page-item .language a,
.page-search .language,
.page-search .language a{
	color: #000;
}

@media screen and (max-width: 1024px) {
	.language {
		width: 95%;
	}
}

@media screen and (max-width: 768px) {
	.language {
		top: 12.416vw;
	}
	.language a {
		font-size: 3vw;
	}
}

/* ==================
  footer
  ================== */
footer {
	padding: 0 0 5px;
	background-color: #FFF;
}
footer .footer__wrapper {
	padding: 0;
	background-color: #FFE6E6;
}
footer .copyright {
	line-height: 50px;
	font-size: 16px;
	background-color: #000;
	text-align: center;
	color: #FFF;
}
footer .flex {
	width: 90%;
	max-width: 1000px;
	padding: 55px 0 35px;
	margin: 0 auto;
	flex-wrap: nowrap;
}
footer .flex div {
	font-size: 16px;
	line-height: 1.3;
}
footer .flex div a {
	display: block;
	padding-bottom: 15px;
	font-weight: 600;
	color: #000;
}
footer .flex div.center {
	display: block;
	padding: 0 20px 16px;
}
footer .flex div a.bold {
	font-weight: 900;
	padding-bottom: 26px;
}
footer .flex div.center a.bold{
	padding-bottom: 15px;
}
footer .flex div.right a:nth-child(1){
	padding-bottom: 35px;
}

@media screen and (max-width: 1024px) {
	footer .inner {
		padding: 0;
	}
	footer .copyright {
		line-height: 4.88vw;
		font-size: 1.56vw;
	}
	footer .flex {
		padding: 5.37vw 0 3.4vw;
		justify-content: space-around;
	}
	footer .flex div {
		font-size: 1.45vw;
		line-height: 1.3;
	}
	footer .flex div a {
		padding-bottom: 1.56vw;
	}
	footer .flex div.center {
		padding: 0 1.95vw 1.56vw;
	}
	footer .flex div a.bold {
		padding-bottom: 2.539vw;
	}
	footer .flex div.center a.bold{
		padding-bottom: 1.46vw;
	}
	footer .flex div.right a:nth-child(1){
		padding-bottom: 3.417vw;
	}
}

@media screen and (max-width: 768px) {
	footer {
		padding: 0;
		margin-bottom: 0;
		background-color: #fff;
	}
	footer .inner {
		background-color: #FFE6E6;
		padding: 0 20px;
	}
	footer .copyright {
		padding: 0 0 13.4114583vw;
		line-height: 24px;
		font-size: 10px;
	}
	footer .flex div {
		font-size: 2.4vw;
		line-height: 1;
	}
	footer .flex div a {
		padding-bottom: 0;
	}
	footer .flex div.right {
		display: flex;
		justify-content: space-between;
		width: 100%;
	}
	footer .flex div.right a:nth-child(1){
		padding-bottom: 0;
	}
}


/* ==================
  bread
  ================== */
.bread {
	margin-bottom: 24px;
	background-color: #FFE6E6;
	line-height: 43px;
	font-weight: 600;
}
.bread a {
	padding-right: 15px;
	font-size: 16px;
	color: #000;
}
.bread span {
	padding-right: 15px;
}

@media screen and (max-width: 1024px) {
	.bread {
		margin-bottom: 15px;
		padding-left: 20px;
		background-color: #FFE6E6;
		line-height: 45px;
	}
	.bread .inner {
		padding: 0;
	}
	.bread a {
		padding-right: 7px;
	}
	.bread span {
		padding-right: 7px;
	}
}

@media screen and (max-width: 768px) {
	.bread {
		line-height: 6.26vw;
	}
	.bread a {
		font-size: 3.26vw;
	}
}


/* ==================
  float
  ================== */
.float {
	position: fixed;
	top: 0;
	bottom: 0;
	right: -15px;
	height: fit-content;
	margin: auto;
	z-index: 10;
}
.float div {
	max-width: 100px;
	overflow: hidden;
}
.float div a {
	display: block;
	transform: translateX(30%);
	transition: 0.4s;
	background: url(../img/common/float__btn1-hv.png);
	background-size: 100%;
}
.float div a:nth-child(2) {
	background: url(../img/common/float__btn2-hv.png);
	background-size: 100%;
}
.float div a:hover {
	transform: translateX(10%);
}
.float div a img {
	transition: 0.4s;
}
.float div a:hover img {
	opacity: 0;
}

@media screen and (max-width: 768px) {
	.float {
		position: fixed;
		top: initial;
		bottom: 0;
		right: 0;
		height: fit-content;
		margin: auto;
		left: 0;
	}
	.float div {
		display: flex;
		overflow: hidden;
		width: 100%;
		max-width: initial;
	}
	.float div a {
		width: 50%;
		transform: none;
		background: none;
	}
	.float div a:hover {
		transform: none;
	}
	.float div a:hover img {
		opacity: 1;
	}
}


/* ==================
  a > btn
  ================== */
a.btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 40px;
	font-size: 25px;
	font-weight: 500;
	line-height: 1.5;
	color: #000000;
	text-align: left;
	background-color: #FFF;
	border-radius: 30px;
	box-shadow: 0 5px 5px #00000024;
}

a.btn::after {
	content: "";
	position: absolute;
	width: 13px;
	height: 24px;
	top: 0;
	bottom: 0;
	right: 16px;
	background: url(../img/btn__arrow.svg);
	background-size: 13px 24px;
	margin: auto;
}

@media screen and (max-width: 1024px) {
	a.btn {
		padding: 3.9vw;
		font-size: 2.4vw;
		border-radius: 2vw;
	}
}


/* ==================
  lineup-search
  ================== */
.lineup .search {
	margin: 50px auto 0;
}
.lineup .search h3 {
	font-size: 30px;
	letter-spacing: 0.08em;
	text-align: center;
	color: #6E0014;
	border-bottom: #000 solid 2px;
	padding-bottom: 10px;
	margin-bottom: 5px;
}
.lineup .search .flex {
	flex-wrap: nowrap;
}
.lineup .search .flex a {
	display: block;
	flex: 1;
	margin-right: 1%;
	text-align: center;
	font-size: 20px;
	line-height: 3;
	background-color: #E5E5E5;
	color: #000;
	font-weight: bold;
}
.lineup .search .flex a:last-of-type{
	margin-right: 0;
}

@media screen and (max-width: 1024px) {
	.lineup .search {
		margin: 4.8vw auto 0;
	}
	.lineup .search h3 {
		font-size: 2.9vw;
	}
	.lineup .search .flex a {
		font-size: 1.95vw;
	}
}

@media screen and (max-width: 768px) {
	.lineup .search {
		margin: 6.51vw auto 0;
	}
	.lineup .search h3 {
		font-size: 6vw;
		letter-spacing: 0.04em;
	}
	.lineup .search .flex {
		flex-wrap: wrap;
		justify-content: flex-start;
		width: 90.35vw;
		margin: 0 auto;
	}
	.lineup .search .flex a {
		flex: none;
		width: 12.05vw;
		margin-right: 1vw;
		margin-bottom: 1vw;
		font-size: 5.4vw;
		line-height: 2;
	}
	.lineup .search .flex a:last-of-type{
		margin-right: 1vw;
	}
	.lineup .search .flex a:nth-of-type(7n){
		margin-right: 0;
	}
}