/* Overlay banner */
.jssb-wrap {
	position: relative;
}

.jssb-banner {
	display: block;
	box-sizing: border-box;
	position: absolute;
	bottom: 15px;
	left: 15px;
	right: 15px;
	z-index: 1000;
	max-width: 504px;
	margin: 0 auto;
	border: 2px solid #fff;
	border-radius: 12px;
	overflow: hidden;
	line-height: 0; /* removes small gap under inline image */
}

.jssb-banner.jssb-no-border {
	border: 0;
	border-radius: 0;
}

.jssb-banner a {
	display: block;
}

.jssb-banner img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}

/* Popup */
.jssb-popup-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
}

.jssb-popup {
	position: relative;
	width: 400px;
	max-width: 85vw;
	max-height: 85vh;
	aspect-ratio: 1 / 1;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

.jssb-popup a {
	display: block;
	width: 100%;
	height: 100%;
}

.jssb-popup img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

/* Shared close button */
.jssb-close {
	position: absolute;
	top: 8px;
	right: 8px;
	background: rgba(0, 0, 0, 0.45);
	border: none;
	color: #f4f5f7;
	width: 26px;
	height: 26px;
	padding: 0;
	border-radius: 100px;
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease;
	flex-shrink: 0;
}

.jssb-close:hover,
.jssb-close:focus {
	background: rgba(0, 0, 0, 0.65);
}
