* {
	font-family: "Noto Sans JP", sans-serif;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

input,
button {
	border: none;
}

body.loginPage ul {
	padding-left: 0 !important;
	margin-bottom: 0 !important;
}

body.loginPage img {
	vertical-align: unset !important;
}

/* header */
.header {
	position: fixed;
	display: grid;
	place-items: center;
	background-color: #f9f9f9;
	width: 100%;
	height: 75px;
}

.header-logo {
	width: 90px;
}

.header-logo h1 {
	line-height: 1;
	margin-bottom: 0;
}

.header-logo h1 a {
	display: block;
}

.header-logo img {
	width: 100%;
	height: 100%;
}

.header-menu-button {
	position: absolute;
	right: 15px;
	width: 40px;
	height: 40px;
	cursor: pointer;
}

.header-menu-button span,
.header-menu-button span::before,
.header-menu-button span::after {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	content: "";
	background-color: #7691cd;
	width: 24px;
	height: 3px;
	border-radius: 2px;
}

.header-menu-button span::before {
	background-color: #e86a8e;
	top: -8px;
	transform: translateX(-50%);
}

.header-menu-button span::after {
	background-color: #4cc2a7;
	top: 8px;
	transform: translateX(-50%);
}

/* mv */
.mv {
	padding-top: 75px;
}

.mv-inner {
	display: grid;
	place-items: center;
	background: linear-gradient(to right, #c9d6ff, #e2e2e2);
	height: 175px;
}

.mv-inner img {
	width: 220px;
	height: 155px;
}

/* footer */
.footer {
	position: relative;
	background-color: #80c7b9;
	text-align: center;
	margin-top: 32px;
	padding: 40px 0 27px;
}

.footer-links li {
	display: grid;
	place-items: center;
	height: 53px;
}

.footer-links li:not(:last-of-type) {
	border-bottom: 1px solid #fff;
}

.footer-links li a {
	color: #fff;
	text-decoration: none;
}

.footer-copyright {
	color: #fff;
	display: grid;
	place-items: center;
	height: 53px;
}

.footer-scroll-top {
	position: absolute;
	top: -32px;
	left: 50%;
	transform: translateX(-50%);
	background-color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	row-gap: 3px;
	width: 64px;
	height: 64px;
	border: 3px solid #80c7b9;
	border-radius: 50%;
	cursor: pointer;
}

.footer-scroll-top img {
	width: 20px;
	height: 20px;
}

.footer-scroll-top span {
	color: #80c7b9;
	font-size: 12px;
}

/* main */
.main {
	padding: 84px 12px;
}

.main-inner {
	width: 100%;
	max-width: 380px;
	margin: 0 auto;
}

/* signin-form */
.signin-form-wrapper {
	text-align: center;
	margin-bottom: 100px;
}

.signin-form-head {
	font-size: 24px;
	font-weight: bold;
	margin-bottom: 25px;
}

.signin-form-item {
	display: flex;
	flex-direction: column;
}

.signin-form-item:not(:last-of-type) {
	margin-bottom: 55px;
}

.signin-form-item label {
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 20px;
	pointer-events: none;
}

.signin-form-item input {
	border-bottom: 1px solid #d5d5d5;
	font-size: 20px;
	line-height: 1.5em;
	padding: 0 12px;
}

.signin-form.error .signin-form-item input {
	border-bottom: 1px solid #ff5e5e;
}

.form-error-message {
	display: none;
	color: #ff5e5e;
	font-size: 12px;
	margin-top: 20px;
}

.form-buttons {
	display: flex;
	flex-direction: column;
	row-gap: 45px;
	margin-top: 60px;
}

.form-buttons .signin-submit,
.form-buttons .signup-button {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 15px;
	color: #fff;
	font-size: 18px;
	font-weight: bold;
	height: 60px;
	border-radius: 30px;
}

.form-buttons .signin-submit {
	background: linear-gradient(to right, #f857a6, #ff5858);
}

.form-buttons .signin-submit span {
	background: url(../images/signin_icon.png) 0 0 / contain;
	width: 16px;
	height: 16px;
}

.form-buttons .signup-button {
	background: linear-gradient(to right, #9796f0, #fbc7d4);
	text-decoration: none;
}

/* sns-signin-buttons */
.sns-signin-buttons-wrapper {
	text-align: center;
}

.sns-signin-buttons-head {
	display: inline-block;
	position: relative;
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 20px;
}

.sns-signin-buttons-head::before,
.sns-signin-buttons-head::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(calc(-50% + 1px));
	background-color: #000;
	width: 9px;
	height: 1px;
}

.sns-signin-buttons-head::before {
	left: -27px;
}
.sns-signin-buttons-head::after {
	right: -27px;
}

.sns-signin-buttons {
	display: flex;
	justify-content: center;
	column-gap: 25px;
}

.sns-signin-buttons button {
	background: none;
	width: 76px;
	height: 76px;
}
.sns-signin-buttons button img {
	width: 100%;
	height: 100%;
}

/* menu */
.menu-container .menu-backdrop {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.menu-container.open .menu-backdrop {
	display: block;
}

.menu-inner {
	position: fixed;
	top: 0;
	right: 0;
	background-color: #eee;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 400px;
	height: 100%;
	transform: translateX(100%);
	transition: 0.5s;
}

.menu-container.open .menu-inner {
	transform: translateX(0);
}

.menu-close-wrapper {
	display: flex;
	justify-content: end;
	padding: 0 32px;
	margin: 23px 0;
}

.menu-close-button {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	cursor: pointer;
}

.menu-close-button .close-icon {
	position: relative;
	width: 36px;
	height: 36px;
}

.menu-close-button .close-icon::before,
.menu-close-button .close-icon::after {
	content: "";
	position: absolute;
	background-color: #000;
	top: 50%;
	left: 50%;
	width: 45px;
	height: 5px;
}

.menu-close-button .close-icon::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.menu-close-button .close-icon::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.menu-close-button span {
	font-size: 13px;
	font-weight: 900;
}

.user-account-wrapper {
	min-height: 60px;
	padding: 0 15px;
	margin-bottom: 30px;
}

.user-account-wrapper .user-account {
	display: flex;
	align-items: center;
}

.user-account .user-image {
	width: 60px;
	height: 60px;
	padding: 5px;
}

.user-account .user-image img {
	width: 100%;
	height: 100%;
}

.user-account .user-name {
	font-weight: 500;
	margin-left: 10px;
}

.menu-contents-wrapper {
	overflow-y: auto;
	overscroll-behavior: none;
}

.menu-list {
	list-style: none;
}

.menu-list li {
	font-size: 13px;
	line-height: 36px;
	margin-bottom: 10px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.5);
}

.menu-list li a,
.menu-list li button {
	position: relative;
	display: block;
	color: #000;
	font-weight: 500;
	width: 100%;
	padding: 0 15px;
	text-align: start;
	text-decoration: none;
}

.menu-list li a::after,
.menu-list li button::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 16px;
	width: 6px;
	height: 6px;
	border-top: 2px solid #4b4b4b;
	border-right: 2px solid #4b4b4b;
	transform: translateY(-50%) rotate(45deg);
}
