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

input,
button {
	border: none;
}

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

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

/* menu-button */
.fixed-menu-button {
	position: absolute;
	top: 12px;
	right: 10px;
	width: 50px;
	height: 50px;
	background-color: #fff;
	border-radius: 50%;
	cursor: pointer;
	z-index: 1000;
}

.fixed-menu-button span,
.fixed-menu-button span::before,
.fixed-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;
}

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

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

/* menu */
.menu-container {
	position: relative;
	z-index: 1010;
}

.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);
}

.list-group {
	width: 100%;
}

/* spot-modal */
#spotModal .modal-dialog {
	max-width: 400px;
	height: 100%;
	margin: 0 auto;
	padding: 0 8px;
}

#spotModal .spot-modal-content {
	display: flex;
	flex-direction: column;
	background-color: #fff;
	background-clip: padding-box;
	width: 100%;
	max-height: 90%;
	padding: 10px;
	text-align: center;
	border: 12px solid rgba(227, 227, 227, 0.7);
	border-radius: 30px;
	outline: 5px solid rgba(197, 216, 255, 0.25);
	outline-offset: -23px;
	pointer-events: auto;
	overflow: hidden;
}

.spot-modal-content .modal-content-body {
	flex: 1;
	height: 100%;
	overflow-y: auto;
}

.spot-modal-content .modal-content-body::-webkit-scrollbar {
	display: none;
}

.spot-modal-content .modal-content-inner {
	padding: 32px 7px 7px;
}

.spot-modal-content .modal-title {
	color: #fff;
	font-size: 22px;
	line-height: 1;
	-webkit-text-stroke: 5px #83aafa;
	paint-order: stroke;
	margin-bottom: 8px;
}

.spot-modal-content .modal-title span {
	position: relative;
	color: #83aafa;
	font-size: 12px;
	-webkit-text-stroke: transparent;
	padding-left: 15px;
}

.spot-modal-content .modal-title span::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	background: url(../images/spot_icon.png) 0 0 / 100% no-repeat;
	width: 10px;
	height: 13px;
}

.spot-modal-content .spot-image-wrapper {
	margin-bottom: 16px;
}

.spot-modal-content .spot-image-wrapper img {
	display: block;
	width: 100%;
}

.spot-modal-content .rally-title-wrapper {
	color: #6b7278;
	margin-bottom: 16px;
}

.spot-modal-content .rally-title-wrapper .rally-title-head {
	display: inline-block;
	font-size: 10px;
	padding: 2px 16px;
	margin-bottom: 4px;
	border: 1px solid #6b7278;
	border-radius: 14px;
}

.spot-modal-content .rally-title-wrapper .rally-title {
	font-size: 14px;
	font-weight: bold;
}

.spot-modal-content .checkin-buttons {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-bottom: 16px;
}

.spot-modal-content .checkin-buttons button {
	display: block;
	width: 100%;
	padding-top: 60%;
}

.spot-modal-content .latlng-checkin-button {
	background: url(/images/btn_spot_checkin.png) 0 0 / contain no-repeat;
}

.spot-modal-content .remote-checkin-button {
	background: url(/images/btn_remote_checkin.png) 0 0 / contain no-repeat;
}

.spot-modal-content .log-button {
	display: block;
	background: url(/images/btn_log.png) 0 0 / contain no-repeat;
	width: 100%;
	padding-top: 25%;
}

.modal-close-wrapper {
	margin-bottom: 10px;
}

.modal-close-wrapper .modal-close {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	background-color: #70a2fc;
	color: #fff;
	font-size: 13px;
	font-weight: bold;
	padding: 10px 30px;
	border-radius: 3px;
}

#spotGroupsbtn {
	background: url(../images/btn_rally.png) 0 0 / 100% no-repeat;
	width: 132px;
	padding-top: 42%;
}

.yl-spot {
	position: relative;
}

.yl-spot-name {
	position: absolute;
	top: -5px;
	left: 50%;
	transform: translate(-50%, -100%);
	white-space: nowrap;
	pointer-events: none;
}

.yl-spot-name--pill {
	padding: 6px 4px;
	border-radius: 4px;
	background: rgba(100, 100, 100, 0.8);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 18px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}
