@charset "utf-8";

/* モーダル本体 */
.modal-content {
	background: #fff;
	margin: 20px;
	padding: 20px 30px;
	border-radius: 8px;
	border: 1px solid #ebebeb;
	box-shadow: 2px 2px 5px 0px rgba(150, 150, 150, 0.4);
}

/* 閉じるボタン */
.modal-closebtn {
	position: absolute;
	top: -17.5px;
	right: -17.5px;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 5px 10px 4px 10px;
	border-radius: 50%;
	background: #ff8ba5;
	color: #FFF;
	font-weight: bold;
	font-size: 16px;
	z-index: 1000;
	box-shadow: 2px 2px 5px 0px rgba(150, 150, 150, 0.4);
}
/* 画像 */
.modal-image {
	margin-top: 10px;
}
/* タイトル */
.modal-title {
	padding-top: 10px;
	font-weight: 700;
	color: #ff8ba5;
	font-size: 16px;
}
/* テキスト */
.modal-text {
	padding-top: 10px;
	color: #555555;
	font-size: 14px;
}
/* ボタン */
.modal-btn {
	margin-top: 10px;
	padding: 10px;
	border: 1px solid #fff;
	border-radius: 5px;
	background: #ff8ba5;
	color: #ffffff;
	font-size: 14px;
	font-weight: bold;
	display: flex;
	justify-content: center;
	align-items: center;
}
/**
 * common class
 */
.grid-wrapper .grid-item-text-center {
	text-align: center;
}
.grid-wrapper .grid-item-text-right {
	text-align: right;
}
.grid-wrapper .grid-item-align-center {
	align-self: center;
}
.grid-wrapper .grid-item-align-end {
	align-self: end;
}

.block-wrapper .grid-item-text-center {
	text-align: center;
}
.block-wrapper .grid-item-text-right {
	text-align: right;
}
.block-wrapper .grid-item-align-center {
	align-self: center;
}
.block-wrapper .grid-item-align-end {
	align-self: end;
}

/* モーダルサイズ */
.modal-size-default {
	max-width: 400px;
	width: 80%;
}
.modal-size-large {
	max-width: 700px;
	width: 95%;
}
.modal-size-banner {
	max-width: 800px;
	width: 100%;
}

/* モーダル位置 */
.modal-position-center-start {
	margin: 0px;
	justify-content: center;
	align-items: start;
}
.modal-position-center-center {
	justify-content: center;
	align-items: center;
}
.modal-position-center-end {
	margin: 0px;
	justify-content: center;
	align-items: end;
}
.modal-position-start-end {
	margin: 0px;
	justify-content: start;
	align-items: end;
}
.modal-position-end-end {
	margin: 0px;
	justify-content: end;
	align-items: end;
}

/* モーダル表示タイプ */
.modal-display_type-fadein {
	animation: fadein 1.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
.modal-display_type-slidein-left {
	animation: slidein_left 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
.modal-display_type-slidein-right {
	animation: slidein_right 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
.modal-display_type-bounce-top {
	animation: bounce_top 0.5s cubic-bezier(0.12, 0, 0.39, 0) 1 forwards;
}
.modal-display_type-bounce-bottom {
	animation: bounce_bottom 0.5s cubic-bezier(0.12, 0, 0.39, 0) 1 forwards;
}

@keyframes fadein {
	0% {
		transform: translateX(0);
		opacity: 0;
	}
	100% {
		transform: translateX(0);
		opacity: 1;
	}
}
@keyframes slidein_left {
	0% {
		transform: translateX(-180px);
		opacity: 0;
	}
	100% {
		transform: translateX(0);
	}
	40%,100% {
		opacity: 1;
	}
}
@keyframes slidein_right {
	0% {
		transform: translateX(180px);
		opacity: 0;
	}
	100% {
		transform: translateX(0);
	}
	40%,100% {
		opacity: 1;
	}
}
@keyframes bounce_top {
	0% {
		transform: translateY(-140px);
		opacity: 0;
	}
	50% {
		transform: translateY(0);
	}
	65% {
		transform: translateY(-30px);
	}
	100% {
		transform: translateY(0);
	}
	20%,100% {
		opacity: 1;
	}
}
@keyframes bounce_bottom {
	0% {
		transform: translateY(140px);
		opacity: 0;
	}
	50% {
		transform: translateY(0);
	}
	65% {
		transform: translateY(30px);
	}
	100% {
		transform: translateY(0);
	}
	20%,100% {
		opacity: 1;
	}
}

/* 背景マスクなし */
.modal-not-masked {
	position: fixed;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
	z-index: 999;
	display: none;
}
/* 背景マスクあり */
.modal-masked {
	position: fixed;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
	/* background: rgba(0, 0, 0, 0.5); */
	background: rgba(255, 255, 255, 0.7);
	z-index: 999;
	display: none;
}

a.disabled_link {
	text-decoration: none;
	pointer-events: none;
}
a.disabled_link:hover {
	cursor: default;
}

a.buttontype_url {
	text-decoration: none!important;
}

body.modalfixed {
	position: fixed;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
