@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Krona+One&family=Montserrat+Alternates:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Zen+Maru+Gothic:wght@300;400;500;700;900&display=swap');
/*-----------------------------------

	root

-----------------------------------*/
:root {
	--mClr: #f05a67;
	--tClr1: #FFFFFF; --tClr2: #f05a67; --tClr3: #f37b85;
	--bgClr1: #f37b85; --bgClr2: #FFFFFF;
	--bgDot-img: radial-gradient(circle, #f05a67 1.5px, transparent 1.5px), radial-gradient(circle, #f05a67 1.5px, transparent 1.5px);
	--bgDot-pstn: 0 0, 4.5px 6px;
	--bgDot-size: 9px 12px;
	--fJA: "Zen Maru Gothic", sans-serif;
	--fEN: "Krona One", sans-serif;
	--fEN2: "Montserrat Alternates", sans-serif;
}
/*-----------------------------------

	base

-----------------------------------*/
html {
    overflow-y: auto;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    font-size: 62.5%;
}
body {
	font: 500 1.6rem/1 var(--fJA);
	color: var(--tClr1);
	background: var(--bgClr1);
	margin:0 !important;
	width: 100%;
}
*, *:before, *:after {
	box-sizing: border-box;
}
.contents_inner {
	max-width: 1200px;
    width: 90%;
	margin: 0 auto;
}
img {
    max-width: 100%;
    height: auto;
}
a, a:link, a:visited {
	display: block;
	color: var(--tClr1);
	text-decoration:none;
    cursor: pointer;
	transition: all 0.5s;
}
a:hover {
	opacity: 0.6;
	text-decoration:none;
}
.tab{
	display: none;
}
.sp{
	display:none;
}
.pc{
	display:block;
}
@media screen and (max-width: 840px) {
	.pc{
		display:none;
	}	
	.sp{
		display:none;
	}
	.tab{
		display:block;
	}
}
@media screen and (max-width: 640px) {
	body {
		font-size: 1.4rem;
	}
	.pc{
        display:none;
    }
	.tab{
        display:none;
	}
    .sp{
        display:block;
    }
}
/*-----------------------------------

	header

-----------------------------------*/
header {
	position: fixed;
	width: 95%;
	height: 80px;
	background: var(--bgClr2);
	border-radius: 0 0 35px 35px;
	top: 0;
	left: 2.5%;
	z-index: 999;
	display:flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 30px;
}
header.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime {
	from {
		opacity: 1;
		transform: translateY(0);
	}
	to {
		opacity: 0;
		transform: translateY(-100px);
	}
}
header.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
	from {
		opacity: 0;
		transform: translateY(-100px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
header #logo {
	line-height: 0;
}
header #logo a {
	width: 120px;
}
header #nav_menu ul {
	display:flex;
	gap: 0 40px;
}
header #nav_menu ul li {
	align-self: center;
}
header #nav_menu ul li a {
	font: 700 1.5rem/1 var(--fJA);
	color: var(--tClr2);
}
header #nav_menu ul li.login {
	padding-left: 30px;
	position: relative;
}
header #nav_menu ul li.login::before {
	content: "";
	width: 1px;
	height: 32px;
	background: var(--tClr2);
	margin: auto;
	position: absolute;
	top: 0;
	left: 0;
	bottom: -2px;
	z-index: 1;
}
header #nav_menu ul li.login a {
	color: #969394;
}
header #nav_menu ul li.buy {
	align-self: center;
}
header #nav_menu ul li.buy a {
	width: 150px;
	background: var(--mClr);
	border-radius: calc(1px/0);
	line-height: 50px;
	color: #FFF;
	text-align: center;
}
header #nav_menu ul li.buy a span {
	display: none;
}
header #nav_menu ul li.buy a br {
	display: none;
}
header .menu_btn_wrap {
    display: none;
}
@media screen and (max-width: 1333px) {
	header {
		padding: 0 15px;
	}
	header #nav_menu ul {
		gap: 0 15px;
	}
	header #nav_menu ul li a {
		font-size: 1.4rem;
	}
	header #nav_menu ul li.login {
		padding-left: 15px;
	}
	header #nav_menu ul li.buy a {
		width: 130px;
	}
}
@media screen and (max-width: 1000px) {
	header {
		width: 100%;
		background: none;
		padding: 0 30px;
		left: 0;
	}
	header #logo {
		width: max-content;
		height: 80px;
		padding: 0 15px;
		background: var(--bgClr2);
		display: flex;
		align-items: center;
		border-radius: 0 0 35px 35px;
	}
	header .menu_btn_wrap {
        display: block;
		width: 50px;
		height: 50px;
		cursor:pointer;
		background: var(--bgClr2);
		position: absolute;
		top: 15px;
		right: 30px;
		z-index: 999;
		border-radius: 50%;
	}
	header .menu_btn_wrap .menu_btn {
		width: 24px;
		height: 15px;
		display: block;
		position: absolute;
		top: 12px;
		left: calc(50% - 12px);
		transition: all 0.3s;
		z-index:999;
	}
	header .menu_btn_wrap .menu_btn .lineh,
	header .menu_btn_wrap .menu_btn .linem,
	header .menu_btn_wrap .menu_btn .lineb {
		position:absolute;
		left: 0;
		width: 24px;
		height: 2px;
		background: var(--mClr);
		transition:all 0.3s;
		border-radius: calc(1px/0);
	}
	header .menu_btn_wrap .menu_btn .lineh {
		top:0;
	}
	header .menu_btn_wrap .menu_btn .linem {
		top: calc(50% - 1px);
		opacity: 1;
	}
	header .menu_btn_wrap .menu_btn .lineb {
		bottom: 0;
	}
	header .menu_btn_wrap .menu_btn.active .lineh {
		transform:rotate(-135deg);
		top: 6.5px;
	}
	header .menu_btn_wrap .menu_btn.active .linem {
		opacity: 0;
	}
	header .menu_btn_wrap .menu_btn.active .lineb {
		transform:rotate(135deg);
		bottom: 6.5px;
	}
	header .menu_btn_wrap .txt {
		width: 100%;
		text-align: center;
		font: 700 1rem/1 var(--fJA);
		color: var(--mClr);
		position: absolute;
		bottom: 9px;
		left: 0;
	}
	header #nav_menu {
		width: 340px;
		height: calc(100vh - 20px);
		overflow: auto;
		-webkit-overflow-scrolling: touch;
		background: var(--bgClr2);
		position: fixed;
		top: 0;
		right: -100%;
		padding: 80px 30px 50px;
		z-index: 999;
		transition: 0.3s;
		border-radius: 0 0 0 50px;
	}
	header #nav_menu.toggle {
		right: 0 !important;
	}
	header #nav_menu ul {
		flex-direction: column;
		gap: 30px 0;
	}
	header #nav_menu ul li {
		align-self: normal;
	}
	header #nav_menu ul li a {
		font-size: 1.6rem;
	}
	header #nav_menu ul li.login {
		padding-left: 0;
	}
	header #nav_menu ul li.login::before {
		display: none;
	}
	header #nav_menu ul li.buy {
		width: 250px;
	}
	header #nav_menu ul li.buy a {
		width: 100%;
		padding: 24px 0 14px 55px;
		border: 3px solid var(--mClr);
		background: var(--bgClr2) url(../img/common/sp/nav_buy_img.png) no-repeat 7px 2px/238px;
		border-radius: 10px;
		font: 700 1.6rem/1.15 var(--fJA);
		color: var(--mClr);
	}
	header #nav_menu ul li.buy a span {
		display: inline;
	}
	header #nav_menu ul li.buy a br {
		display: inline;
	}
}
@media screen and (max-width: 640px) {
	header {
		padding: 0 5%;
		height: 57px;
	}
	header #logo {
		height: 57px;
		padding: 0 15px;
		border-radius: 0 0 14px 14px;
	}
	header #logo a {
		width: 88px;
	}
	header .menu_btn_wrap {
		top: 7px;
		right: 5%;
	}
	header #nav_menu {
		width: calc(95%);
	}
}
/*-----------------------------------

	link_fixed

-----------------------------------*/
#link_fixed {
	position: fixed;
	bottom: 30px;
	right: 20px;
	z-index: 998;
}
#link_fixed a {
	width: 250px;
	padding: 30px 0 24px 55px;
	border: 3px solid var(--mClr);
	background: var(--bgClr2) url(../img/common/link_fixied.png) no-repeat center 3px/233px;
	border-radius: 10px;
	color: var(--mClr);
	font: 700 1.6rem/1.25 var(--fJA);
	text-align: center;
}
@media screen and (max-width: 640px) {
	#link_fixed {
		bottom: 20px;
	}
	#link_fixed a {
		width: 124px;
		padding: 13px 0 7px 45px;
		border: 2px solid var(--mClr);
		background: var(--bgClr2) url(../img/common/sp/link_fixied.png) no-repeat center 2px/112px;
		border-radius: 7px;
		font: 700 1rem/1.2 var(--fJA);
		text-align: left;
	}
}
/*-----------------------------------

	footer

-----------------------------------*/
footer {
	background: var(--bgClr2);
	color: #8e8b8c;
	padding: 75px 0 30px;
}
footer h1 {
	width: 230px;
	margin: 0 auto 49px;
}
footer #login {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 15px 36px;
	margin-bottom: 75px;
}
footer #login a {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	font-size: 21px;
	font-weight: 700;
	text-align: center;
	color: #f05a67;
	width: 370px;
	max-width: 100%;
	height: 96px;
	border: 2px solid #f48b95;
	border-radius: 50vw;
	position: relative;
}
footer #login a.admin_btn {
	padding-left: 15px;
}
footer #login a.mypage_btn {
	padding-left: 30px;
}
footer #login a::before {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	left: 40px;
	bottom: 0;
	z-index: 1;
}
footer #login a.admin_btn::before {
	background: url(../img/common/icon_login.svg) no-repeat center/contain;
	width: 35px;
	height: 35px;
}
footer #login a.mypage_btn::before {
	background: url(../img/common/icon_mypage.svg) no-repeat center/contain;
	width: 35px;
	height: 30px;
}
footer #login a span {
	display: inline-block;
	font-size: 16px;
	font-weight: 700;
	background: #fdeaeb;
	margin-bottom: 9px;
}
footer ul {
	display: flex;
	flex-direction: column;
	width: max-content;
	max-width: 100%;
	margin: 0 auto 50px;
}
footer ul li {
	font: 500 18px/2 var(--fJA);
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0 12px;
}
footer ul li a.link {
	width: 66px;
	border: 1px solid #8e8b8c;
	border-radius: calc(1px/0);
	font: 700 13px/1 var(--fJA);
	letter-spacing: 0.1em;
	color: #8e8b8c;
	text-align: center;
	padding: 5px 0;
	text-box: trim-both cap alphabetic;
}
footer ul li span {
	display: block;
	font-size: 14px;
	text-align: center;
	width: 100%;
}
footer small {
	display: block;
	font-size: 12px;
	text-align: center;
}
@media screen and (max-width: 640px) {
	footer {
		padding: 60px 0 45px;
	}
	footer h1 {
		width: 178px;
		margin: 0 auto 28px;
	}
	footer #login {
		margin-bottom: 40px;
	}
	footer #login a {
		font-size: 18px;
		width: 100%;
		max-width: 310px;
		height: 80px;
	}
	footer #login a.admin_btn {
		padding-left: 0;
	}
	footer #login a.mypage_btn {
		padding-left: 20px;
	}
	footer #login a::before {
		left: 30px;
	}
	footer #login a.admin_btn::before {
		width: 30px;
		height: 30px;
	}
	footer #login a.mypage_btn::before {
		width: 30px;
		height: 25px;
	}
	footer #login a span {
		font-size: 13px;
		margin-bottom: 7px;
	}
	footer ul {
		margin: 0 auto 25px;
	}
	footer ul li {
		font: 500 11px/2 var(--fJA);
		gap: 0 10px;
	}
	footer ul li a.link {
		width: 49px;
		font: 700 10px/1 var(--fJA);
		padding: 3px 0;
	}
	footer ul li span,
	footer small {
		font-size: 10px;
	}
}
