/* ============================================================
   Licinio Event Calendar – Theme Compatibility Layer
   ============================================================
   Low-specificity rules that normalise plugin styles across
   Neve, Eloquent, WP Bakery, and generic WordPress themes.
   Uses CSS custom properties that the plugin sets on :root
   with fallbacks; themes can override them in their own CSS.
   ============================================================ */

/* ---------- CSS Custom Properties (defaults) ---------- */

:root {
	--licinio-primary: #007cba;
	--licinio-accent:  #d63638;
	--licinio-text:    #1d2327;
	--licinio-bg:      #ffffff;
}

/* ---------- Calendar block (.licinio-event-calendar-block / .licinio-event-calendar) ---------- */

.licinio-event-calendar,
.licinio-event-calendar-block {
	box-sizing: border-box;
	max-width: 100%;
	margin: 1.5em 0;
	color: var(--licinio-text, #1d2327);
	background: var(--licinio-bg, #ffffff);
}

.licinio-event-calendar-block *,
.licinio-event-calendar-block *::before,
.licinio-event-calendar-block *::after {
	box-sizing: inherit;
}

/* FullCalendar containers inside the block */
.licinio-event-calendar-block .fc {
	color: var(--licinio-text, #1d2327);
	background: var(--licinio-bg, #ffffff);
}

.licinio-event-calendar-block .fc-toolbar-title {
	color: var(--licinio-text, #1d2327);
}

.licinio-event-calendar-block .fc-button-primary {
	background: var(--licinio-primary, #007cba);
	border-color: var(--licinio-primary, #007cba);
	color: #fff;
}

.licinio-event-calendar-block .fc-button-primary:hover {
	background: var(--licinio-primary, #007cba);
	opacity: 0.85;
}

.licinio-event-calendar-block .fc-button-primary:disabled {
	background: var(--licinio-primary, #007cba);
	opacity: 0.5;
}

.licinio-event-calendar-block .fc-button-primary:not(:disabled).fc-button-active,
.licinio-event-calendar-block .fc-button-primary:not(:disabled):active {
	background: var(--licinio-primary, #007cba);
	opacity: 0.75;
}

.licinio-event-calendar-block .fc-daygrid-event {
	background: var(--licinio-primary, #007cba);
	color: #fff;
	border: none;
	border-radius: 3px;
	padding: 1px 4px;
	font-size: 0.85em;
}

.licinio-event-calendar-block .fc-daygrid-event:hover {
	opacity: 0.85;
}

.licinio-event-calendar-block .fc-day-today {
	background: rgba(0, 124, 202, 0.06);
}

/* ---------- Event List block (.licinio-events-list / .licinio-event-list) ---------- */

.licinio-event-list,
.licinio-events-list {
	box-sizing: border-box;
	max-width: 100%;
	margin: 1.5em 0;
	color: var(--licinio-text, #1d2327);
	background: var(--licinio-bg, #ffffff);
}

.licinio-events-list *,
.licinio-events-list *::before,
.licinio-events-list *::after {
	box-sizing: inherit;
}

.licinio-events-list .licinio-events-list-date-heading {
	color: var(--licinio-text, #1d2327);
}

.licinio-events-list .licinio-events-list-item {
	background: var(--licinio-bg, #ffffff);
	border: 1px solid #e0e0e0;
	border-radius: 4px;
}

.licinio-events-list .licinio-events-list-item-title a {
	color: var(--licinio-text, #1d2327);
}

.licinio-events-list .licinio-events-list-item-title a:hover {
	color: var(--licinio-primary, #007cba);
}

.licinio-events-list .licinio-events-list-item.fully-booked {
	border-left: 3px solid var(--licinio-accent, #d63638);
}

.licinio-events-list .licinio-events-list-item-badge.fully-booked {
	background: var(--licinio-accent, #d63638);
	color: #fff;
}

/* ---------- Timeline block (.licinio-timeline) ---------- */

.licinio-timeline {
	box-sizing: border-box;
	max-width: 100%;
	margin: 1.5em 0;
	color: var(--licinio-text, #1d2327);
	background: var(--licinio-bg, #ffffff);
}

.licinio-timeline *,
.licinio-timeline *::before,
.licinio-timeline *::after {
	box-sizing: inherit;
}

.licinio-timeline .licinio-timeline-card {
	background: var(--licinio-bg, #ffffff);
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

.licinio-timeline .licinio-timeline-card-date {
	background: #f7f9fc;
	border-bottom: 1px solid #eee;
}

.licinio-timeline .licinio-timeline-card-day {
	color: var(--licinio-text, #1d2327);
}

.licinio-timeline .licinio-timeline-card-month {
	color: var(--licinio-primary, #007cba);
}

.licinio-timeline .licinio-timeline-card-title a {
	color: var(--licinio-text, #1d2327);
}

.licinio-timeline .licinio-timeline-card-title a:hover {
	color: var(--licinio-primary, #007cba);
}

.licinio-timeline .licinio-timeline-card-book {
	background: var(--licinio-primary, #007cba);
	color: #fff;
}

.licinio-timeline .licinio-timeline-card-book:hover {
	background: var(--licinio-primary, #007cba);
	opacity: 0.85;
	color: #fff;
}

.licinio-timeline .licinio-timeline-card.fully-booked {
	border-color: var(--licinio-accent, #d63638);
}

.licinio-timeline .licinio-timeline-card-badge.fully-booked {
	background: var(--licinio-accent, #d63638);
	color: #fff;
}

.licinio-timeline-track {
	scrollbar-color: var(--licinio-primary, #007cba) #e0e0e0;
}

.licinio-timeline-track::-webkit-scrollbar-thumb {
	background: var(--licinio-primary, #007cba);
}

.licinio-timeline-track::-webkit-scrollbar-thumb:hover {
	background: var(--licinio-primary, #007cba);
	opacity: 0.7;
}

/* ---------- Event card (shared across blocks) ---------- */

.licinio-event-card {
	box-sizing: border-box;
	color: var(--licinio-text, #1d2327);
	background: var(--licinio-bg, #ffffff);
	border: 1px solid #e0e0e0;
	border-radius: 4px;
}

.licinio-event-card *,
.licinio-event-card *::before,
.licinio-event-card *::after {
	box-sizing: inherit;
}

.licinio-event-card.fully-booked {
	border-color: var(--licinio-accent, #d63638);
}

/* ---------- Category View block (.licinio-category-view-block) ---------- */

.licinio-category-view-block {
	box-sizing: border-box;
	max-width: 100%;
	margin: 1.5em 0;
	color: var(--licinio-text, #1d2327);
	background: var(--licinio-bg, #ffffff);
}

.licinio-category-view-block *,
.licinio-category-view-block *::before,
.licinio-category-view-block *::after {
	box-sizing: inherit;
}

.licinio-category-view-block .licinio-toggle-btn.active {
	background: var(--licinio-primary, #007cba);
	border-color: var(--licinio-primary, #007cba);
	color: #fff;
}

.licinio-category-view-block .licinio-toggle-btn:focus {
	outline-color: var(--licinio-primary, #007cba);
}

.licinio-category-view-block .licinio-category-view-select {
	border-color: #ccc;
}

/* ---------- Fully-booked markers ---------- */

.licinio-fc-event-fully-booked {
	border-left: 4px solid var(--licinio-accent, #d63638) !important;
}

/* ---------- Utility: responsive images in plugin blocks ---------- */

.licinio-event-calendar-block img,
.licinio-events-list img,
.licinio-timeline img,
.licinio-category-view-block img {
	max-width: 100%;
	height: auto;
}

/* ---------- Utility: no list-style inside plugin containers ---------- */

.licinio-event-calendar-block ul,
.licinio-event-calendar-block ol,
.licinio-events-list ul,
.licinio-events-list ol,
.licinio-timeline ul,
.licinio-timeline ol,
.licinio-category-view-block ul,
.licinio-category-view-block ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ---------- Neve theme overrides ---------- */

.theme-neve .licinio-events-list-item {
	border: 1px solid #e0e0e0;
	box-shadow: none;
}

.theme-neve .licinio-timeline-card {
	border: 1px solid #e0e0e0;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}

/* ---------- Twenty Twenty-Five / generic theme overrides ---------- */

.licinio-events-list-item h4,
.licinio-events-list-item h3 {
	margin: 0 0 0.25em;
}

.licinio-timeline-card h3 {
	margin: 0;
}
