/**
 * EasySponsor — Frontend styles
 */

.easy-sponsor {
	--es-card-bg: #fff;
	--es-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	--es-name-color: #1d2327;
	--es-text-color: #50575e;
	--es-name-size: 0.95rem;
	--es-text-size: 0.85rem;
	box-sizing: border-box;
	width: 100%;
	padding: var(--es-padding, 20px);
	background: var(--es-bg, transparent);
	border-radius: var(--es-border-radius, 8px);
}

.easy-sponsor *,
.easy-sponsor *::before,
.easy-sponsor *::after {
	box-sizing: border-box;
}

/* Grid */
.easy-sponsor-grid__inner {
	display: flex;
	flex-wrap: wrap;
	gap: var(--es-gap, 24px);
	justify-content: var(--es-items-justify, center);
}

.easy-sponsor-grid__inner > .easy-sponsor-item {
	flex: 0 0 calc((100% - (var(--es-cols-mobile, 2) - 1) * var(--es-gap, 24px)) / var(--es-cols-mobile, 2));
	max-width: calc((100% - (var(--es-cols-mobile, 2) - 1) * var(--es-gap, 24px)) / var(--es-cols-mobile, 2));
}

@media (min-width: 768px) {
	.easy-sponsor-grid__inner > .easy-sponsor-item {
		flex-basis: calc((100% - (var(--es-cols-tablet, 3) - 1) * var(--es-gap, 24px)) / var(--es-cols-tablet, 3));
		max-width: calc((100% - (var(--es-cols-tablet, 3) - 1) * var(--es-gap, 24px)) / var(--es-cols-tablet, 3));
	}
}

@media (min-width: 1024px) {
	.easy-sponsor-grid__inner > .easy-sponsor-item {
		flex-basis: calc((100% - (var(--es-cols-desktop, 5) - 1) * var(--es-gap, 24px)) / var(--es-cols-desktop, 5));
		max-width: calc((100% - (var(--es-cols-desktop, 5) - 1) * var(--es-gap, 24px)) / var(--es-cols-desktop, 5));
	}
}

/* Item */
.easy-sponsor-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	text-align: var(--es-text-align, center);
	padding: 0;
	background: transparent;
	border-radius: 0;
	box-shadow: none;
	height: 100%;
	width: 100%;
}

.easy-sponsor-item__logo-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: var(--es-logo-height, 90px);
}

/* Card style: logo area background */
.easy-sponsor--card-shadow .easy-sponsor-item__logo-wrap {
	background: var(--es-card-bg, #fff);
	border-radius: var(--es-border-radius, 8px);
	box-shadow: var(--es-card-shadow);
	padding: var(--es-card-padding, 16px);
}

.easy-sponsor--card-white .easy-sponsor-item__logo-wrap {
	background: #ffffff;
	border-radius: var(--es-border-radius, 8px);
	box-shadow: none;
	padding: var(--es-card-padding, 16px);
}

.easy-sponsor--card-transparent .easy-sponsor-item__logo-wrap {
	background: transparent;
	box-shadow: none;
	padding: 0;
}

/* Fixed logo area height — allinea i nomi sotto il logo */
.easy-sponsor--fixed-logo-area .easy-sponsor-item__logo-wrap {
	height: var(--es-logo-area-height);
	min-height: var(--es-logo-area-height);
}

.easy-sponsor--fixed-logo-area.easy-sponsor--text-bottom .easy-sponsor-item {
	min-height: calc(var(--es-logo-area-height) + 2.5rem);
}

.easy-sponsor--no-base-styles .easy-sponsor-item__logo-wrap {
	box-shadow: none;
}

.easy-sponsor--no-base-styles.easy-sponsor--card-shadow .easy-sponsor-item__logo-wrap,
.easy-sponsor--no-base-styles.easy-sponsor--card-white .easy-sponsor-item__logo-wrap {
	background: #ffffff;
}

.easy-sponsor-item__name {
	display: block;
	font-size: var(--es-name-size);
	font-weight: 600;
	color: var(--es-name-color);
	margin: 0 0 0.5rem;
	line-height: 1.3;
	width: 100%;
}

.easy-sponsor-item__text {
	display: block;
	font-size: var(--es-text-size);
	color: var(--es-text-color);
	margin: 0.5rem 0 0;
	line-height: 1.4;
	width: 100%;
}

.easy-sponsor--text-top .easy-sponsor-item__name,
.easy-sponsor--text-top .easy-sponsor-item__text {
	margin-bottom: 0.5rem;
	margin-top: 0;
}

.easy-sponsor--text-bottom .easy-sponsor-item__name {
	margin-top: 0.75rem;
	margin-bottom: 0;
}

.easy-sponsor--text-bottom .easy-sponsor-item__text {
	margin-top: 0.35rem;
}

.easy-sponsor-item__link {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	line-height: 0;
	border-radius: 4px;
	transition: opacity 0.2s ease;
}

.easy-sponsor-item__link:hover {
	opacity: 0.85;
}

.easy-sponsor-item__link:focus-visible {
	outline: 2px solid rgba(0, 0, 0, 0.35);
	outline-offset: 3px;
}

.easy-sponsor-logo {
	display: block;
	max-width: var(--es-logo-width, 180px);
	max-height: var(--es-logo-height, 90px);
	width: auto;
	height: auto;
	object-fit: var(--es-object-fit, contain);
}

.easy-sponsor--align-left .easy-sponsor-item {
	align-items: flex-start;
	text-align: left;
}

.easy-sponsor--align-right .easy-sponsor-item {
	align-items: flex-end;
	text-align: right;
}

.easy-sponsor--align-center .easy-sponsor-item {
	align-items: center;
	text-align: center;
}

/* Continuous carousel */
.easy-sponsor-carousel__viewport {
	overflow-x: hidden;
	overflow-y: visible;
	width: 100%;
	position: relative;
	container-type: inline-size;
	container-name: easy-sponsor;
}

.easy-sponsor-carousel--pending .easy-sponsor-carousel__track--continuous {
	animation-play-state: paused;
}

.easy-sponsor-carousel__viewport:hover .easy-sponsor-carousel__track--continuous {
	animation-play-state: paused;
}

.easy-sponsor-carousel[data-pause-on-hover="no"] .easy-sponsor-carousel__viewport:hover .easy-sponsor-carousel__track--continuous {
	animation-play-state: running;
}

.easy-sponsor-carousel--static .easy-sponsor-carousel__viewport:hover .easy-sponsor-carousel__track--continuous {
	animation-play-state: paused;
}

.easy-sponsor-carousel__track--continuous {
	display: flex;
	width: max-content;
	animation: easy-sponsor-marquee var(--es-marquee-duration, 30s) linear infinite;
}

.easy-sponsor-carousel__set {
	display: flex;
	gap: var(--es-gap, 24px);
	padding-right: var(--es-gap, 24px);
}

.easy-sponsor-carousel__item {
	flex: 0 0 auto;
	width: calc((100cqw - (var(--es-cols-mobile, 2) - 1) * var(--es-gap, 24px)) / var(--es-cols-mobile, 2));
	max-width: 100%;
	min-width: 0;
}

.easy-sponsor-carousel__item--has-name .easy-sponsor-item__name,
.easy-sponsor-carousel__item--has-text .easy-sponsor-item__text,
.easy-sponsor-item--has-name .easy-sponsor-item__name,
.easy-sponsor-item--has-text .easy-sponsor-item__text {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

@container easy-sponsor (min-width: 768px) {
	.easy-sponsor-carousel__item {
		width: calc((100cqw - (var(--es-cols-tablet, 3) - 1) * var(--es-gap, 24px)) / var(--es-cols-tablet, 3));
	}
}

@container easy-sponsor (min-width: 1024px) {
	.easy-sponsor-carousel__item {
		width: calc((100cqw - (var(--es-cols-desktop, 5) - 1) * var(--es-gap, 24px)) / var(--es-cols-desktop, 5));
	}
}

/* Fallback senza container queries */
@supports not (width: 1cqw) {
	.easy-sponsor-carousel__item {
		width: calc((100% - (var(--es-cols-mobile, 2) - 1) * var(--es-gap, 24px)) / var(--es-cols-mobile, 2));
	}
}

@keyframes easy-sponsor-marquee {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

/* Slider carousel */
.easy-sponsor-carousel {
	--es-arrow-color: #5c5c5c;
	--es-arrow-bg: rgba(255, 255, 255, 0.92);
	--es-arrow-border: rgba(0, 0, 0, 0.14);
	--es-arrow-hover-bg: rgba(0, 0, 0, 0.05);
	--es-arrow-hover-border: rgba(0, 0, 0, 0.28);
	--es-dot-color: rgba(0, 0, 0, 0.22);
	--es-dot-active: rgba(0, 0, 0, 0.55);
}

.easy-sponsor-carousel__viewport--slider {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	overflow-x: hidden;
	overflow-y: visible;
}

.easy-sponsor-carousel__viewport--slider:focus {
	outline: 2px solid rgba(0, 0, 0, 0.2);
	outline-offset: 2px;
}

.easy-sponsor-carousel__viewport--slider:focus:not(:focus-visible) {
	outline: none;
}

.easy-sponsor-carousel__viewport--slider:focus-visible {
	outline: 2px solid rgba(0, 0, 0, 0.35);
	outline-offset: 2px;
}

.easy-sponsor-carousel__track--slider {
	display: flex;
	overflow: visible;
	width: 100%;
	transition: transform 0.45s ease;
	will-change: transform;
	align-items: stretch;
}

.easy-sponsor-carousel__slide {
	flex: 0 0 calc(100% / var(--es-cols-mobile, 2));
	padding: 0 calc(var(--es-gap, 24px) / 2);
	min-width: 0;
	height: auto;
}

@media (min-width: 768px) {
	.easy-sponsor-carousel__slide {
		flex-basis: calc(100% / var(--es-cols-tablet, 3));
	}
}

@media (min-width: 1024px) {
	.easy-sponsor-carousel__slide {
		flex-basis: calc(100% / var(--es-cols-desktop, 5));
	}
}

.easy-sponsor-carousel__arrow {
	flex: 0 0 auto;
	width: 2.5rem;
	height: 2.5rem;
	border: 1px solid var(--es-arrow-border);
	border-radius: 50%;
	background: var(--es-arrow-bg);
	color: var(--es-arrow-color);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
	backdrop-filter: blur(4px);
}

.easy-sponsor-carousel__arrow-icon {
	display: block;
	width: 0.55rem;
	height: 0.55rem;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
	margin-left: -0.1rem;
}

.easy-sponsor-carousel__arrow--prev .easy-sponsor-carousel__arrow-icon {
	transform: rotate(-135deg);
	margin-left: 0.1rem;
}

/* Style: circle (default) */
.easy-sponsor-carousel--arrow-circle .easy-sponsor-carousel__arrow {
	border-radius: 50%;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

/* Style: chevron */
.easy-sponsor-carousel--arrow-chevron .easy-sponsor-carousel__arrow {
	width: 2rem;
	height: 2rem;
	border: none;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
}

.easy-sponsor-carousel--arrow-chevron .easy-sponsor-carousel__arrow-icon {
	width: 0.65rem;
	height: 0.65rem;
	border-width: 2.5px;
}

.easy-sponsor-carousel--arrow-chevron .easy-sponsor-carousel__arrow:hover,
.easy-sponsor-carousel--arrow-chevron .easy-sponsor-carousel__arrow:focus {
	background: var(--es-arrow-hover-bg);
	border-radius: 50%;
}

/* Style: minimal */
.easy-sponsor-carousel--arrow-minimal .easy-sponsor-carousel__arrow {
	width: 2rem;
	height: 2rem;
	border-width: 1px;
	border-color: var(--es-arrow-border);
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
}

.easy-sponsor-carousel--arrow-minimal .easy-sponsor-carousel__arrow-icon {
	width: 0.45rem;
	height: 0.45rem;
	border-width: 1.5px;
}

/* Style: square */
.easy-sponsor-carousel--arrow-square .easy-sponsor-carousel__arrow {
	border-radius: 6px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

/* Style: outline */
.easy-sponsor-carousel--arrow-outline .easy-sponsor-carousel__arrow {
	border-width: 2px;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
}

.easy-sponsor-carousel--arrow-outline .easy-sponsor-carousel__arrow-icon {
	width: 0.6rem;
	height: 0.6rem;
}

.easy-sponsor-carousel__arrow:hover,
.easy-sponsor-carousel__arrow:focus {
	background: var(--es-arrow-hover-bg);
	border-color: var(--es-arrow-hover-border);
	outline: none;
}

.easy-sponsor-carousel__arrow:focus-visible {
	outline: 2px solid rgba(0, 0, 0, 0.35);
	outline-offset: 2px;
}

.easy-sponsor-carousel__arrow:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.easy-sponsor-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1rem;
}

.easy-sponsor-carousel__dot {
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	border: none;
	background: var(--es-dot-color);
	padding: 0;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s;
}

.easy-sponsor-carousel__dot.is-active {
	background: var(--es-dot-active);
	transform: scale(1.15);
}

.easy-sponsor-carousel__dot:hover,
.easy-sponsor-carousel__dot:focus {
	background: var(--es-dot-active);
	outline: none;
}

/* Static: all logos fit on screen — no scroll */
.easy-sponsor-carousel--static .easy-sponsor-carousel__track--continuous {
	animation: none !important;
	width: 100%;
	justify-content: var(--es-items-justify, center);
}

.easy-sponsor-carousel--static .easy-sponsor-carousel__set {
	justify-content: var(--es-items-justify, center);
	width: 100%;
	padding-right: 0;
}

.easy-sponsor-carousel--static .easy-sponsor-carousel__set + .easy-sponsor-carousel__set {
	display: none;
}

.easy-sponsor-carousel--static .easy-sponsor-carousel__track--slider {
	transform: none !important;
	justify-content: var(--es-items-justify, center);
}

.easy-sponsor-carousel--static .easy-sponsor-carousel__arrow,
.easy-sponsor-carousel--static .easy-sponsor-carousel__dots {
	display: none !important;
}

.easy-sponsor-carousel--static .easy-sponsor-carousel__viewport--slider {
	gap: 0;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.easy-sponsor-carousel__track--continuous {
		animation: none !important;
	}

	.easy-sponsor-carousel__track--slider {
		transition: none;
	}

	.easy-sponsor-item__link {
		transition: none;
	}
}
