#osusume_banner,
:where(#osusume_banner *) {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
#osusume_banner {
	position: fixed;
	left: 10px;
	bottom: 0;
	z-index: 90;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: end;
	    -ms-flex-align: end;
	        align-items: flex-end;
	max-width: calc(100% - 10px - 10px);
	--osusume-color: #fff373;
}
#osusume_banner_ttl {
	position: relative;
	z-index: 1;
	margin-right: -45px;
}
button.btn_osusume {
	display: block;
	width: 95px;
	height: 100px;
	padding: 0;
	border: 0;
	background: none;
}
button.btn_osusume.btn_osusume__opn,
.is_active_ossm button.btn_osusume.btn_osusume__cls {
	display: block;
}
.is_active_ossm button.btn_osusume.btn_osusume__opn,
button.btn_osusume.btn_osusume__cls {
	display: none;
}
button.btn_osusume img {
	display: block;
	max-width: 100%;
	height: auto;
}
#osusume_banner_box {
	display: none;
	-webkit-box-flex: 1;
	    -ms-flex: 1;
	        flex: 1;
	max-height: calc(100vh - 10px - 10px);
	min-height: calc(100px - 10px);
	padding: 10px 15px 10px 55px;
	margin: 0 0 10px;
	border-radius: 5px;
	background: var(--osusume-color);
	overflow: auto;
}
.is_active_ossm #osusume_banner_box {
	display: block;
}
#osusume_banner_list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: end;
	    -ms-flex-align: end;
	        align-items: flex-end;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	gap: 8px;
}
#osusume_banner_list a {
	display: block;
}
#osusume_banner_list img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
	border-radius: 5px;
}
#osusume_banner_close {
	display: none;
	position: absolute;
	top: 0;
	right: 0;
	translate: 50% -50%;
}
.is_active_ossm #osusume_banner_close {
	display: block;
}
button#btn_osusume_close {
	display: block;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 100%;
	background: url(/img/common/btn_close.png) no-repeat center var(--osusume-color);
	background-size: 22px 22px;
}
@media screen and (max-width: 1080px) {
	#osusume_banner {
		left: 0;
		bottom: auto;
		top: 100%;
		z-index: 200;
		display: block;
		width: 100%;
		max-width: none;
		max-height: 100vh;
		max-height: 100dvh;
		padding: 30px 20px calc(30px + 60px);
		-webkit-transition: .5s translate;
		-o-transition: .5s translate;
		transition: .5s translate;
		background: var(--osusume-color);
		overflow: auto;
		-ms-scroll-chaining: none;
		    overscroll-behavior: none;
	}
	.is_active_ossm #osusume_banner {
		translate: 0 -100%;
	}
	#osusume_banner_ttl {
		display: none !important;
	}
	button.btn_osusume {
		display: none !important;
	}
	#osusume_banner_box {
		display: block;
		max-height: none;
		min-height: auto;
		padding: 0;
		margin: 0;
		border-radius: 0;
		background: none;
		overflow: visible;
	}
	#osusume_banner_list {
		-webkit-box-align: start;
		    -ms-flex-align: start;
		        align-items: flex-start;
		gap: 20px;
		-webkit-box-pack: center;
		    -ms-flex-pack: center;
		        justify-content: center;
	}
	#osusume_banner_close {
		translate: 0 -50%;
	}
	button#btn_osusume_close {
		display: none !important;
	}
}