/* Main container for logos */
.esto-pay-logos {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}

/* Country containers as flex containers */
.esto-pay-logos__country {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	width: 100%;
}

/* Dynamic column layouts */
.esto-pay-logos-layout-columns-1 .esto-pay-logo {
	flex: 0 1 100%;
}

.esto-pay-logos-layout-columns-2 .esto-pay-logo {
	flex: 0 1 calc(50% - 20px);
}

.esto-pay-logos-layout-columns-3 .esto-pay-logo {
	flex: 0 1 calc(33.333% - 20px);
}

.esto-pay-logos-layout-columns-4 .esto-pay-logo {
	flex: 0 1 calc(25% - 20px);
}

/* Logos inside countries */
.esto-pay-logo {
	box-sizing: border-box;
	padding: 15px;
	border: 2px solid transparent;
	border-radius: 8px;
	background-color: #ffffff;
	text-align: center;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	transition: border-color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
	cursor: pointer;
}

/* Hover and selected effects */
.esto-pay-logo.selected {
	border-color: #004080;
	background-color: #e6f0ff;
	box-shadow: 0 4px 10px rgba(0, 64, 128, 0.5);
}

.esto-pay-logo:hover {
	border-color: #004080;
	background-color: #f0f8ff;
	box-shadow: 0 3px 8px rgba(0, 64, 128, 0.3);
}

/* Responsive logo images */
.esto-pay-logo img {
	max-height: 50px;
	max-width: 100%;
	object-fit: contain;
}

/* Adjustments for mobile view */
@media (max-width: 768px) {

	.esto-pay-logo {
		padding: 20px;
	}

	.esto-pay-logo img {
		max-height: 70px;
	}

	.esto-pay-logos-layout-columns-2 .esto-pay-logo {
		flex: 0 1 100%;
	}

	.esto-pay-logos-layout-columns-3 .esto-pay-logo,
	.esto-pay-logos-layout-columns-4 .esto-pay-logo {
		flex: 0 1 calc(50% - 20px);
	}
}