/* ŠPOF Kalendár – farby a písmo preberá z témy (CSS premenné na :root) */
.spof-kal-section {
	padding: 80px 32px;
	background: var(--white, #fff);
}
.spof-kal-head { margin-bottom: 40px; }
.spof-kal-head .section-desc { max-width: 640px; }

.spof-kal {
	--k-primary: var(--primary, #425985);
	--k-primary-dark: var(--primary-dark, #2c3e5e);
	--k-deep: var(--primary-deeper, #1C2B4A);
	--k-accent: var(--accent, #D4DEF0);
	--k-light: var(--light-bg, #F7F8FA);
	--k-text: var(--text-dark, #1a2540);
	--k-mid: var(--text-mid, #425985);
	--k-muted: var(--text-light, #7B8FB5);
	--k-border: var(--border, rgba(66, 89, 133, .15));
	--k-purple: var(--accent-purple-dark, #7B6FA0);
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	gap: 24px;
	align-items: start;
	font-family: inherit;
	color: var(--k-text);
}
.spof-kal *, .spof-kal *::before, .spof-kal *::after { box-sizing: border-box; }

/* ---------- karta kalendára ---------- */
.spof-kal__cal {
	background: var(--k-light);
	border: 1px solid var(--k-border);
	border-radius: 12px;
	padding: 24px;
}
.spof-kal__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 20px;
}
.spof-kal__month {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--k-text);
	text-transform: capitalize;
}
.spof-kal__nav { display: flex; gap: 8px; }
.spof-kal__btn {
	font: inherit;
	font-size: .85rem;
	font-weight: 600;
	color: var(--k-primary);
	background: var(--white, #fff);
	border: 1px solid var(--k-border);
	border-radius: 8px;
	height: 38px;
	min-width: 38px;
	padding: 0 12px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background .2s, color .2s, border-color .2s;
}
.spof-kal__btn:hover { background: var(--k-primary); color: #fff; border-color: var(--k-primary); }
.spof-kal__btn:focus-visible, .spof-kal__day:focus-visible, .spof-kal__item:focus-visible {
	outline: 2px solid var(--k-primary);
	outline-offset: 2px;
}
.spof-kal__btn svg { width: 16px; height: 16px; }

.spof-kal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
}
.spof-kal__dow {
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--k-muted);
	text-align: center;
	padding: 4px 0 8px;
}
.spof-kal__day {
	font: inherit;
	position: relative;
	min-height: 84px;
	padding: 8px;
	text-align: left;
	background: var(--white, #fff);
	border: 1px solid var(--k-border);
	border-radius: 10px;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 4px;
	color: var(--k-text);
	transition: border-color .2s, box-shadow .2s, transform .2s;
}
.spof-kal__day:hover { border-color: var(--k-primary); box-shadow: 0 4px 16px rgba(28, 43, 74, .08); }
.spof-kal__day.is-out { background: transparent; color: var(--k-muted); opacity: .55; }
.spof-kal__day.is-past .spof-kal__num { color: var(--k-muted); }
.spof-kal__num {
	font-size: .85rem;
	font-weight: 600;
	width: 26px;
	height: 26px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
}
.spof-kal__day.is-today .spof-kal__num { background: var(--k-accent); color: var(--k-primary-dark); }
.spof-kal__day.is-selected { border-color: var(--k-primary); background: var(--k-primary); color: #fff; }
.spof-kal__day.is-selected .spof-kal__num { color: #fff; background: rgba(255, 255, 255, .18); }
.spof-kal__day.is-selected .spof-kal__chip { background: rgba(255, 255, 255, .16); color: #fff; border-left-color: #fff; }
.spof-kal__day.is-selected .spof-kal__more { color: rgba(255, 255, 255, .85); }

.spof-kal__chip {
	display: block;
	font-size: .7rem;
	font-weight: 500;
	line-height: 1.3;
	padding: 3px 6px;
	border-radius: 4px;
	border-left: 3px solid var(--c, var(--k-primary));
	background: color-mix(in srgb, var(--c, #425985) 12%, #fff);
	color: var(--k-deep);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.spof-kal__more { font-size: .68rem; font-weight: 600; color: var(--k-muted); padding-left: 2px; }
.spof-kal__dots { display: none; gap: 3px; justify-content: center; }
.spof-kal__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--c, var(--k-primary)); }
.spof-kal__day.is-selected .spof-kal__dot { background: #fff; }

.spof-kal__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-top: 18px;
	font-size: .78rem;
	color: var(--k-mid);
}
.spof-kal__legend span { display: inline-flex; align-items: center; gap: 6px; }
.spof-kal__legend i { width: 10px; height: 10px; border-radius: 3px; background: var(--c); display: inline-block; }

/* ---------- panel s detailom ---------- */
.spof-kal__panel {
	background: var(--white, #fff);
	border: 1px solid var(--k-border);
	border-radius: 12px;
	overflow: hidden;
	position: sticky;
	top: 100px;
}
.spof-kal__panel-head {
	background: var(--k-primary);
	background-image: linear-gradient(135deg, var(--k-primary) 0%, var(--k-deep) 100%);
	color: #fff;
	padding: 22px 24px;
}
.spof-kal__panel-tag {
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--k-accent);
	margin: 0 0 4px;
}
.spof-kal__panel-title { margin: 0; font-size: 1.15rem; font-weight: 700; color: #fff; }
.spof-kal__panel-body { padding: 8px 24px 24px; max-height: 620px; overflow-y: auto; }

.spof-kal__item {
	padding: 18px 0;
	border-bottom: 1px solid var(--k-border);
}
.spof-kal__item:last-child { border-bottom: 0; }
.spof-kal__item--compact {
	display: flex;
	gap: 14px;
	align-items: center;
	cursor: pointer;
	border-radius: 8px;
}
.spof-kal__item--compact:hover .spof-kal__item-title { color: var(--k-primary); }
.spof-kal__date-badge {
	flex: 0 0 52px;
	height: 56px;
	border-radius: 10px;
	background: var(--k-light);
	border: 1px solid var(--k-border);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
	color: var(--k-primary);
}
.spof-kal__date-badge b { font-size: 1.2rem; font-weight: 700; }
.spof-kal__date-badge small { font-size: .65rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; margin-top: 4px; }

.spof-kal__img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 10px;
	margin-bottom: 14px;
	display: block;
	background: var(--k-accent);
}
.spof-kal__badge {
	display: inline-block;
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--c, var(--k-primary));
	background: color-mix(in srgb, var(--c, #425985) 12%, #fff);
	padding: 4px 10px;
	border-radius: 999px;
	margin-bottom: 8px;
}
.spof-kal__item-title { margin: 0 0 8px; font-size: 1.05rem; font-weight: 700; color: var(--k-text); line-height: 1.35; transition: color .2s; }
.spof-kal__item--compact .spof-kal__item-title { font-size: .95rem; margin: 0 0 4px; }
.spof-kal__meta { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 5px; }
.spof-kal__meta li { display: flex; align-items: center; gap: 8px; font-size: .85rem; color: var(--k-mid); margin: 0; }
.spof-kal__meta svg { width: 15px; height: 15px; flex: 0 0 15px; color: var(--k-muted); }
.spof-kal__item--compact .spof-kal__meta { margin: 0; }
.spof-kal__item--compact .spof-kal__meta li { font-size: .78rem; }
.spof-kal__summary { font-size: .9rem; line-height: 1.7; color: var(--k-mid); margin: 0 0 14px; }

.spof-kal__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.spof-kal__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: .82rem;
	font-weight: 600;
	text-decoration: none;
	padding: 9px 16px;
	border-radius: 8px;
	transition: background .2s, color .2s, border-color .2s;
}
.spof-kal__link--primary { background: var(--k-primary); color: #fff; border: 2px solid var(--k-primary); }
.spof-kal__link--primary:hover { background: var(--k-primary-dark); border-color: var(--k-primary-dark); color: #fff; }
.spof-kal__link--ghost { background: transparent; color: var(--k-primary); border: 2px solid var(--k-border); }
.spof-kal__link--ghost:hover { border-color: var(--k-primary); color: var(--k-primary); }
.spof-kal__link svg { width: 14px; height: 14px; }

.spof-kal__empty { padding: 28px 0 8px; text-align: center; color: var(--k-muted); font-size: .9rem; }
.spof-kal__empty svg { width: 36px; height: 36px; color: var(--k-accent); display: block; margin: 0 auto 10px; }
.spof-kal__back {
	font: inherit;
	font-size: .8rem;
	font-weight: 600;
	color: var(--k-accent);
	background: none;
	border: 0;
	padding: 0;
	margin-top: 10px;
	cursor: pointer;
}
.spof-kal__back:hover { color: #fff; text-decoration: underline; }

/* ---------- responzívne ---------- */
@media (max-width: 960px) {
	.spof-kal { grid-template-columns: 1fr; }
	.spof-kal__panel { position: static; }
	.spof-kal__panel-body { max-height: none; }
}
@media (max-width: 600px) {
	.spof-kal-section { padding: 56px 16px; }
	.spof-kal__cal { padding: 14px; }
	.spof-kal__grid { gap: 4px; }
	.spof-kal__day { min-height: 52px; padding: 6px 2px; align-items: center; border-radius: 8px; }
	.spof-kal__chip, .spof-kal__more { display: none; }
	.spof-kal__dots { display: flex; }
	.spof-kal__dow { font-size: .62rem; letter-spacing: .02em; }
	.spof-kal__btn--today { display: none; }
	.spof-kal__panel-head, .spof-kal__panel-body { padding-left: 18px; padding-right: 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.spof-kal *, .spof-kal *::before, .spof-kal *::after { transition: none !important; }
}
