/*
 * Agend'OCI — Elementor Widgets CSS
 * Version: 1.0.0
 */

/* ─── Widget container ─── */
.agendoci-widget {
	--agendoci-primary: #2563eb;
}

.agendoci-widget__title {
	font-size: 26px;
	font-weight: 800;
	margin-bottom: 24px;
}

.agendoci-widget__footer {
	text-align: center;
	margin-top: 32px;
}

.agendoci-widget__empty {
	text-align: center;
	color: #94a3b8;
	padding: 40px 0;
}

/* ─── Archive widget ─── */
.agendoci-archive-widget .agendoci-filter-bar {
	margin-bottom: 24px;
}

/* ─── Carousel layout ─── */
.agendoci-layout--carousel .agendoci-events-container {
	overflow: hidden;
	position: relative;
}

.agendoci-layout--carousel .agendoci-events-grid {
	display: flex;
	transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	will-change: transform;
}

.agendoci-layout--carousel .agendoci-card {
	flex: 0 0 calc(100% / var(--agendoci-carousel-cols, 3));
	padding: 0 8px;
	box-sizing: border-box;
}

/* Carousel controls */
.agendoci-carousel-controls {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 16px;
}

.agendoci-carousel-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--agendoci-primary, #2563eb);
	color: var(--agendoci-primary, #2563eb);
	cursor: pointer;
	font-size: 18px;
	transition: background 0.2s, color 0.2s;
}

.agendoci-carousel-btn:hover {
	background: var(--agendoci-primary, #2563eb);
	color: #fff;
}

.agendoci-carousel-dots {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 12px;
}

.agendoci-carousel-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #cbd5e1;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s;
}

.agendoci-carousel-dot.is-active {
	background: var(--agendoci-primary, #2563eb);
	transform: scale(1.3);
}

/* ─── Load more button ─── */
.agendoci-load-more {
	display: block;
	margin: 24px auto 0;
	min-width: 200px;
}

.agendoci-load-more[disabled] {
	opacity: 0.5;
	cursor: not-allowed;
}

/* ─── Spinner inside widget ─── */
.agendoci-widget .agendoci-spinner {
	display: flex;
	justify-content: center;
	padding: 24px;
}

.agendoci-widget .agendoci-spinner__icon {
	width: 32px;
	height: 32px;
	border: 3px solid #e2e8f0;
	border-top-color: var(--agendoci-primary, #2563eb);
	border-radius: 50%;
	animation: agendoci-spin 0.7s linear infinite;
}

@keyframes agendoci-spin {
	to { transform: rotate(360deg); }
}

/* ─── Responsive ─── */
@media (max-width: 768px) {
	.agendoci-layout--carousel .agendoci-card {
		flex: 0 0 100%;
	}
}
