/**
 * EK Calendar styles.
 *
 * Shared block grid, day cells, headers, indicators, and popups.
 * Column count comes from EKFA_Responsive_Columns via --ekfa-cal-cols
 * (never set inline so media queries can override).
 *
 * @package Element_Kit_For_Avada
 */

.ekfa-cal {
	--ekfa-cal-cols: 1;
	--ekfa-cal-block-gap: 1.25rem;
	--ekfa-cal-container-bg: transparent;
	--ekfa-cal-block-bg: #fff;
	--ekfa-cal-block-border: rgba(0, 0, 0, 0.08);
	--ekfa-cal-day-bg: transparent;
	--ekfa-cal-day-border: rgba(0, 0, 0, 0.06);
	--ekfa-cal-today-bg: rgba(0, 115, 170, 0.12);
	--ekfa-cal-entry-bg: transparent;
	--ekfa-cal-past-opacity: 0.55;
	--ekfa-cal-weekday-color: inherit;
	--ekfa-cal-day-num-color: inherit;
	--ekfa-cal-indicator: #0073aa;
	--ekfa-cal-popup-bg: #fff;
	--ekfa-cal-popup-text: inherit;
	--ekfa-cal-popup-border: rgba(0, 0, 0, 0.12);
	--ekfa-cal-header-color: inherit;
	--ekfa-cal-arrow-color: inherit;
	--ekfa-cal-arrow-color-hover: var(--ekfa-cal-arrow-color);
	--ekfa-cal-arrow-size: 36px;
	--ekfa-arrow-border-width: 1px;
	--ekfa-arrow-border-style: solid;
	--ekfa-arrow-border-color: var(--ekfa-cal-block-border);
	--ekfa-arrow-border-color-hover: var(--ekfa-cal-block-border-h, var(--ekfa-cal-block-border));
	--ekfa-arrow-border-radius: 4px;
	box-sizing: border-box;
	background: var(--ekfa-cal-container-bg);
	position: relative;
}

.ekfa-cal *,
.ekfa-cal *::before,
.ekfa-cal *::after {
	box-sizing: border-box;
}

.ekfa-cal:hover {
	background: var(--ekfa-cal-container-bg-h, var(--ekfa-cal-container-bg));
}

.ekfa-cal__nav {
	display: flex;
	justify-content: flex-end;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}

.ekfa-cal--nav-align-left .ekfa-cal__nav {
	justify-content: flex-start;
}

.ekfa-cal--nav-align-center .ekfa-cal__nav {
	justify-content: center;
}

.ekfa-cal--nav-align-right .ekfa-cal__nav {
	justify-content: flex-end;
}

.ekfa-cal--nav-left,
.ekfa-cal--nav-right {
	display: grid;
	column-gap: 0.75rem;
}

.ekfa-cal--nav-left {
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas: "nav blocks";
}

.ekfa-cal--nav-right {
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "blocks nav";
}

.ekfa-cal--nav-bottom {
	display: grid;
	grid-template-areas:
		"blocks"
		"nav";
}

.ekfa-cal--nav-left .ekfa-cal__nav,
.ekfa-cal--nav-right .ekfa-cal__nav {
	grid-area: nav;
	flex-direction: column;
	justify-content: flex-start;
	margin-bottom: 0;
}

.ekfa-cal--nav-bottom .ekfa-cal__nav {
	grid-area: nav;
	margin-top: 0.75rem;
	margin-bottom: 0;
}

.ekfa-cal--nav-left .ekfa-cal__blocks,
.ekfa-cal--nav-right .ekfa-cal__blocks,
.ekfa-cal--nav-bottom .ekfa-cal__blocks {
	grid-area: blocks;
}

.ekfa-cal--nav-valign-top .ekfa-cal__nav {
	align-self: start;
}

.ekfa-cal--nav-valign-middle .ekfa-cal__nav {
	align-self: center;
}

.ekfa-cal--nav-valign-bottom .ekfa-cal__nav {
	align-self: end;
}

.ekfa-cal__nav-btn {
	appearance: none;
	background: var(--ekfa-cal-block-bg);
	color: var(--ekfa-cal-arrow-color);
	width: var(--ekfa-cal-arrow-size);
	height: var(--ekfa-cal-arrow-size);
	cursor: pointer;
	line-height: 1;
	font-size: calc(var(--ekfa-cal-arrow-size) * 0.55);
}

.ekfa-cal__nav-btn:hover {
	background: var(--ekfa-cal-block-bg-h, var(--ekfa-cal-block-bg));
	color: var(--ekfa-cal-arrow-color-hover);
}

.ekfa-cal--arrow-outline:not(.ekfa-cal--arrow-border-custom) .ekfa-cal__nav-btn {
	background: transparent;
	border-color: currentColor;
}

.ekfa-cal--arrow-outline .ekfa-cal__nav-btn:hover {
	background: transparent;
}

.ekfa-cal--arrow-outline:not(.ekfa-cal--arrow-border-custom):not(.ekfa-cal--arrow-border-hover-custom) .ekfa-cal__nav-btn:hover {
	border-color: currentColor;
}

.ekfa-cal--arrow-outline.ekfa-cal--arrow-border-hover-custom .ekfa-cal__nav-btn:hover {
	border-color: var(--ekfa-arrow-border-color-hover);
}

.ekfa-cal__nav-btn:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.ekfa-cal__nav-btn:disabled,
.ekfa-cal__nav-btn.ekfa-cal__nav-btn--disabled,
.ekfa-cal__nav-btn[aria-disabled="true"] {
	opacity: 0.4;
	cursor: not-allowed;
	pointer-events: none;
}

.ekfa-cal__nav-btn i,
.ekfa-cal__nav-btn span {
	font-size: inherit;
	line-height: 1;
}

.ekfa-cal__blocks {
	display: grid;
	grid-template-columns: repeat(var(--ekfa-cal-cols), minmax(0, 1fr));
	gap: var(--ekfa-cal-block-gap);
}

/* During navigation the host becomes the viewport that clips the two panels. */
.ekfa-cal__blocks--sliding {
	display: block;
	overflow: hidden;
	pointer-events: none;
}

.ekfa-cal__slider {
	display: flex;
	flex-wrap: nowrap;
	width: 200%;
	will-change: transform;
}

.ekfa-cal__panel {
	flex: 0 0 50%;
	max-width: 50%;
	display: grid;
	grid-template-columns: repeat(var(--ekfa-cal-cols), minmax(0, 1fr));
	gap: var(--ekfa-cal-block-gap);
	align-content: start;
}

.ekfa-cal__block {
	background: var(--ekfa-cal-block-bg);
	border: 1px solid var(--ekfa-cal-block-border);
	border-radius: 6px;
	padding: 0.75rem;
	min-width: 0;
}

.ekfa-cal__block:hover {
	background: var(--ekfa-cal-block-bg-h, var(--ekfa-cal-block-bg));
	border-color: var(--ekfa-cal-block-border-h, var(--ekfa-cal-block-border));
}

.ekfa-cal__block-header {
	margin: 0 0 0.75rem;
}

.ekfa-cal .ekfa-cal__block-title,
.ekfa-cal .ekfa-cal__block--current .ekfa-cal__block-title {
	margin: 0;
	font-family: var(--ekfa-cal-header-ff, inherit);
	font-size: var(--ekfa-cal-header-size, 1.125rem);
	line-height: var(--ekfa-cal-header-lh, 1.3);
	letter-spacing: var(--ekfa-cal-header-ls, normal);
	text-transform: var(--ekfa-cal-header-tt, none);
	color: var(--ekfa-cal-header-color);
}

.ekfa-cal__grid {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.ekfa-cal__weekday {
	font-family: var(--ekfa-cal-weekday-ff, inherit);
	font-size: var(--ekfa-cal-weekday-size, 0.75rem);
	line-height: var(--ekfa-cal-weekday-lh, 1.2);
	letter-spacing: var(--ekfa-cal-weekday-ls, normal);
	text-transform: var(--ekfa-cal-weekday-tt, none);
	color: var(--ekfa-cal-weekday-color);
	font-weight: 600;
	text-align: center;
	padding: 0.35rem 0.15rem;
}

.ekfa-cal__day {
	vertical-align: top;
	padding: 0;
	border: 1px solid var(--ekfa-cal-day-border);
	background: var(--ekfa-cal-day-bg);
	height: 4.5rem;
}

.ekfa-cal__day:hover,
.ekfa-cal__day:focus-within {
	background: var(--ekfa-cal-day-bg-h, var(--ekfa-cal-day-bg));
	border-color: var(--ekfa-cal-day-border-h, var(--ekfa-cal-day-border));
}

.ekfa-cal__day--outside {
	opacity: 0.35;
}

.ekfa-cal__day--has-entries {
	background: var(--ekfa-cal-entry-bg, var(--ekfa-cal-day-bg));
	cursor: pointer;
}

.ekfa-cal__day--has-entries:hover,
.ekfa-cal__day--has-entries:focus {
	background: var(--ekfa-cal-entry-bg-h, var(--ekfa-cal-day-bg-h, var(--ekfa-cal-entry-bg, var(--ekfa-cal-day-bg))));
}

.ekfa-cal__day--today {
	background: var(--ekfa-cal-today-bg);
}

.ekfa-cal__day--today:hover,
.ekfa-cal__day--today:focus {
	background: var(--ekfa-cal-today-bg-h, var(--ekfa-cal-today-bg));
}

.ekfa-cal__day--past > .ekfa-cal__day-inner > .ekfa-cal__day-content {
	opacity: var(--ekfa-cal-past-opacity);
}

.ekfa-cal__day--past.ekfa-cal__day--outside > .ekfa-cal__day-inner > .ekfa-cal__day-content {
	opacity: calc(var(--ekfa-cal-past-opacity) * 0.6);
}

.ekfa-cal__day-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	height: 100%;
	padding: 0.35rem;
}

.ekfa-cal__day-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	max-width: 100%;
}

.ekfa-cal__day-num {
	font-family: var(--ekfa-cal-day-ff, inherit);
	font-size: var(--ekfa-cal-day-size, 0.875rem);
	line-height: var(--ekfa-cal-day-lh, 1.2);
	letter-spacing: var(--ekfa-cal-day-ls, normal);
	text-transform: var(--ekfa-cal-day-tt, none);
	color: var(--ekfa-cal-day-num-color);
}

.ekfa-cal__day:hover .ekfa-cal__day-num,
.ekfa-cal__day:focus .ekfa-cal__day-num {
	color: var(--ekfa-cal-day-num-color-h, var(--ekfa-cal-day-num-color));
}

.ekfa-cal__indicator {
	display: flex;
	flex-wrap: wrap;
	gap: 0.2rem;
	align-items: center;
	max-width: 100%;
}

.ekfa-cal__dot {
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background: var(--ekfa-cal-indicator);
	display: inline-block;
}

.ekfa-cal--indicator-highlight .ekfa-cal__day--has-entries:not(.ekfa-cal__day--outside) {
	box-shadow: inset 0 0 0 2px var(--ekfa-cal-indicator);
}

.ekfa-cal__indicator-highlight {
	display: none;
}

.ekfa-cal__indicator-title {
	font-size: 0.65rem;
	line-height: 1.2;
	color: var(--ekfa-cal-indicator);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
}

.ekfa-cal__popup {
	position: absolute;
	z-index: 20;
	left: 0;
	top: calc(100% + 0.25rem);
	min-width: 12rem;
	max-width: min(18rem, 70vw);
	background: var(--ekfa-cal-popup-bg);
	color: var(--ekfa-cal-popup-text);
	border: 1px solid var(--ekfa-cal-popup-border);
	border-radius: 6px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	padding: 0.75rem;
	font-family: var(--ekfa-cal-popup-ff, inherit);
	font-size: var(--ekfa-cal-popup-size, 0.875rem);
	line-height: var(--ekfa-cal-popup-lh, 1.4);
	letter-spacing: var(--ekfa-cal-popup-ls, normal);
	text-transform: var(--ekfa-cal-popup-tt, none);
}

.ekfa-cal__popup:hover {
	background: var(--ekfa-cal-popup-bg-h, var(--ekfa-cal-popup-bg));
}

.ekfa-cal__popup[hidden] {
	display: none !important;
}

.ekfa-cal__popup-inner {
	position: relative;
	padding-right: 1.5rem;
}

.ekfa-cal__popup-date {
	margin: 0 0 0.5rem;
	font-weight: 600;
}

.ekfa-cal__popup-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.65rem;
}

.ekfa-cal__popup-item {
	margin: 0;
}

.ekfa-cal__popup-cat {
	display: inline-block;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.75;
	margin-bottom: 0.15rem;
}

.ekfa-cal__popup-link,
.ekfa-cal__popup-title {
	display: block;
	font-weight: 600;
	color: inherit;
}

.ekfa-cal__popup-details {
	margin-top: 0.25rem;
	opacity: 0.9;
}

.ekfa-cal__popup-close {
	position: absolute;
	top: -0.25rem;
	right: -0.25rem;
	appearance: none;
	border: 0;
	background: transparent;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	color: inherit;
	padding: 0.25rem;
}

.ekfa-cal__day--popup-open {
	z-index: 5;
}

.ekfa-cal__day--popup-open .ekfa-cal__day-inner {
	z-index: 5;
}

.ekfa-cal__day--popup-pinned {
	z-index: 6;
}

.ekfa-cal__day--popup-pinned .ekfa-cal__popup {
	pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
	.ekfa-cal__slider {
		will-change: auto;
	}

	.ekfa-cal__popup,
	.ekfa-cal__blocks,
	.ekfa-cal__nav-btn {
		transition: none !important;
	}
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}
