/**
 * Kreisky Kalender - Minimal Structure CSS
 *
 * This CSS provides only basic structural layout.
 * All visual styling should be done in Oxygen Builder.
 *
 * @package Kreisky_Kalender
 */

/* Event List Item */

.lvl-cal-event__datetime {
	flex-shrink: 0;
}

.lvl-cal-event__datetime__time-row {
	display: flex;
	align-items: center;
}

.lvl-cal-event__info {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.lvl-cal-event__info__top {
	display: flex;
	align-items: center;
}

.lvl-cal-event__info__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* Event List */
.kreisky-kalender-events-list {
	width: 100%;
}

/* Calendar Grid */
.kreisky-kalender-calendar__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.kreisky-kalender-calendar__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 0.5rem;
}

.kreisky-kalender-calendar__day {
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.kreisky-kalender-calendar__day--has-events {
	font-weight: bold;
}

.kreisky-kalender-calendar__events {
	margin-top: 2rem;
}

/* Single Event */
.kreisky-kalender-single-event__header {
	margin-bottom: 2rem;
}

.kreisky-kalender-single-event__meta {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.kreisky-kalender-single-event__details {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: 2rem;
}

.kreisky-kalender-single-event__speakers,
.kreisky-kalender-single-event__partners,
.kreisky-kalender-single-event__gallery {
	margin-top: 2rem;
}

.kreisky-kalender-single-event__speaker {
	display: flex;
	gap: 1rem;
	margin-bottom: 1rem;
}

.kreisky-kalender-single-event__gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem;
}

/* Filter Bar */
.kreisky-filter-bar {
	position: relative;
}

.kreisky-filter-item {
	position: relative;
}

/* Reset Button */
.kreisky-filter-reset-wrapper {
	position: absolute;
	right: 0;
	bottom: -32px;
}

.kreisky-filter-reset {
	font-size: 1rem;
	background: none;
	border: none;
	text-decoration: underline;
	cursor: pointer;
}

.kreisky-filter-toggle {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
}

.kreisky-filter-toggle svg {
	width: 16px;
	height: 16px;
	transition: transform 0.2s;
}

.kreisky-filter-toggle.is-active svg {
	transform: rotate(180deg);
}

/* Dropdowns */
.filter-dropdown {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	min-width: 250px;
	max-height: 400px;
	overflow-y: auto;
	z-index: 1000;
	display: none;
}

.filter-dropdown.is-open {
	display: block;
}

.filter-dropdown-inner {
	padding: 1rem;
}

/* Filter Options */
.filter-options {
	list-style: none;
	margin: 0;
	padding: 0;
}

.filter-options li {
	margin: 0;
}

.filter-option {
	display: block;
	width: 100%;
	padding: 0.5rem 1rem;
	text-align: left;
	background: none;
	border: none;
	cursor: pointer;
	transition: background 0.2s;
}

.filter-option:hover {
	background: #f5f5f5;
}

/* Month Navigation */
.month-navigation {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
	gap: 1rem;
}

.month-nav-prev,
.month-nav-next {
	background: none;
	border: none;
	padding: 0.5rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.month-nav-prev svg,
.month-nav-next svg {
	width: 16px;
	height: 16px;
}

.month-nav-prev svg {
	transform: rotate(90deg);
}

.month-nav-next svg {
	transform: rotate(-90deg);
}

.month-display {
	flex: 1;
	text-align: center;
	font-weight: bold;
}

/* Calendar Grid */
.calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 0.25rem;
	margin-bottom: 1rem;
}

.calendar-day-header {
	padding: 0.5rem;
	text-align: center;
	font-weight: bold;
	font-size: 0.875rem;
}

.calendar-day {
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.25rem;
	text-align: center;
}

.calendar-day.calendar-day--empty {
	visibility: hidden;
}

.calendar-day-link {
	display: inline-block;
	padding: 0.5rem;
	background: #2271b1;
	color: #fff;
	font-weight: bold;
	text-decoration: none;
	border-radius: 4px;
	min-width: 32px;
	text-align: center;
}

.calendar-day-link:hover {
	background: #135e96;
	color: #fff;
}

.calendar-day-inactive {
	display: inline-block;
	padding: 0.5rem;
	background: #ddd;
	color: #757575;
	border-radius: 4px;
	min-width: 32px;
	text-align: center;
}

.calendar-day-number {
	color: #757575;
}

/* Past events in calendar - muted gray styling */
.calendar-day.is-past .calendar-day-link,
.calendar-day.is-past .calendar-day-past {
	background: #cccccc;
	color: #666;
	font-weight: normal;
}

.calendar-day.is-past .calendar-day-link:hover,
.calendar-day.is-past .calendar-day-past:hover {
	background: #b8b8b8;
	color: #555;
}

/* Archive Months */
.archive-months {
	border-top: 1px solid #ddd;
	padding-top: 1rem;
	margin-top: 1rem;
}

.archive-months-title {
	font-weight: bold;
	margin-bottom: 0.5rem;
}

.archive-months-list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 200px;
	overflow-y: auto;
}

/* Search Filter - uses search-form styling */
.kreisky-filter-search .search-form {
	margin: 0;
}

/* Loading State */
.kreisky-kalender-events-container.is-loading {
	opacity: 0.5;
	pointer-events: none;
}

/* Mobile Filter Toggle */
.kreisky-mobile-filter-toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.25rem;
	background: none;
	border: 1px solid #ddd;
	border-radius: 4px;
	cursor: pointer;
	margin-left: auto;
	color: #333;
	-webkit-text-fill-color: #333;
}

.kreisky-mobile-filter-toggle svg {
	width: 20px;
	height: 20px;
}

/* Mobile Off-Canvas Panel */
.kreisky-mobile-filter-panel {
	display: none;
}

.kreisky-mobile-filter-panel.is-open {
	display: block;
}

.kreisky-mobile-filter-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	z-index: 9998;
}

.kreisky-mobile-filter-content {
	position: fixed;
	top: var(--header-size, 60px);
	right: 0;
	bottom: 0;
	width: 320px;
	max-width: 85vw;
	background: #fff;
	z-index: 9999;
	transform: translateX(100%);
	transition: transform 0.3s ease;
	overflow-y: auto;
}

.kreisky-mobile-filter-panel.is-open .kreisky-mobile-filter-content {
	transform: translateX(0);
}

.kreisky-mobile-filter-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.5rem;
	border-bottom: 1px solid #ddd;
}

.kreisky-mobile-filter-header h3 {
	margin: 0;
	font-size: 1.25rem;
}

.kreisky-mobile-filter-close {
	background: none;
	border: none;
	padding: 0.5rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #333;
	-webkit-text-fill-color: #333;
}

.kreisky-mobile-filter-close svg {
	width: 24px;
	height: 24px;
}

.kreisky-mobile-filter-body {
	padding: 1.5rem;
}

.mobile-filter-field {
	margin-bottom: 1.5rem;
}

.mobile-filter-field label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 500;
}

/* Mobile Select - styled to match desktop filter buttons */
.mobile-filter-select {
	width: 100%;
	padding: 0.75rem 2.5rem 0.75rem 1rem;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 1rem;
	color: #333;
	-webkit-text-fill-color: #333;
	opacity: 1;
	background-color: #fff;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 20px 20px;
	cursor: pointer;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.mobile-filter-select:hover {
	border-color: #999;
}

.mobile-filter-select:focus {
	outline: none;
	border-color: #2271b1;
	box-shadow: 0 0 0 1px #2271b1;
}

/* Mobile Search Input - styled to match desktop search form */
.mobile-search-input-wrap {
	position: relative;
	display: flex;
	align-items: center;
}

.mobile-filter-input {
	width: 100%;
	padding: 0.75rem 3rem 0.75rem 1rem;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 1rem;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.mobile-filter-input:hover {
	border-color: #999;
}

.mobile-filter-input:focus {
	outline: none;
	border-color: #2271b1;
	box-shadow: 0 0 0 1px #2271b1;
}

.mobile-search-btn {
	position: absolute;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	padding: 0.5rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #666;
	transition: color 0.2s;
}

.mobile-search-btn:hover {
	color: #2271b1;
}

.mobile-search-btn svg {
	width: 20px;
	height: 20px;
}

/* Responsive */
@media (max-width: 768px) {
	/* Hide desktop filters */
	.kreisky-filter-items--desktop {
		display: none !important;
	}

	/* Show mobile toggle */
	.kreisky-mobile-filter-toggle {
		display: flex;
	}

	/* Make reset button sticky on mobile */
	.kreisky-filter-reset-wrapper {
		position: fixed;
		bottom: 20px;
		right: 20px;
		z-index: 100;
		background: #fff;
		padding: 0.75rem 1.25rem;
		border: 1px solid #ddd;
		border-radius: 4px;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	}

	.kreisky-filter-reset {
		font-size: 1rem;
		text-decoration: underline;
	}

	/* Align filter bar */
	.kreisky-filter-bar {
		display: flex;
		justify-content: flex-end;
	}
}

@media (min-width: 769px) {
	/* Hide mobile UI on desktop */
	.kreisky-mobile-filter-toggle,
	.kreisky-mobile-filter-panel {
		display: none !important;
	}
}

/* Archive Pagination */
.kreisky-archive-wrapper {
	width: 100%;
}

.kreisky-pagination {
	margin-top: 2rem;
	display: flex;
	justify-content: center;
}

.pagination-list {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0;
	align-items: center;
}

.pagination-item {
	margin: 0;
	display: flex;
	align-items: center;
}

.pagination-item a,
.pagination-item span {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	text-decoration: none;
	border: none;
	border-radius: 0;
	background: none;
	color: #2a2835;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: -0.019em;
	line-height: 1.5;
	transition: opacity 0.2s;
}

.pagination-item a {
	cursor: pointer;
}

.pagination-item a:hover {
	opacity: 0.6;
}

.pagination-item.active span,
.pagination-item.pagination-current span {
	color: #2a2835;
	background: none;
	border: none;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pagination-item.disabled span {
	background: none;
	border: none;
}

/* Pipe separators (rendered in PHP) */
.pagination-pipe {
	display: flex;
	align-items: center;
	list-style: none;
}

.pagination-pipe span {
	color: #2a2835;
	font-weight: 700;
	font-size: 1rem;
	padding: 0 0.375rem;
}

.pagination-ellipsis span {
	border: none;
	background: transparent;
	cursor: default;
	padding: 0 0.25rem;
}

/* Hide first/last and prev navigation — design only shows next arrow */
.pagination-first,
.pagination-last,
.pagination-prev {
	display: none !important;
}

/* Next arrow */
.pagination-next a,
.pagination-next span {
	padding-left: 0.75rem;
}

.pagination-arrow {
	width: 24px;
	height: 16px;
	fill: currentColor;
}

/* Load More Button */
.kreisky-load-more-wrapper {
	margin-top: 2rem;
	display: flex;
	justify-content: center;
}

.kreisky-load-more-btn {
	padding: 0.75rem 2rem;
	background: #2271b1;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 1rem;
	transition: background 0.2s;
}

.kreisky-load-more-btn:hover {
	background: #135e96;
}

/* Responsive Pagination */
@media (max-width: 768px) {
	.pagination-item a,
	.pagination-item span {
		padding: 0 0.25rem;
		font-size: 0.875rem;
	}
}

/* ==========================================================================
   Share Button
   ========================================================================== */

.kreisky-share-button {
	position: relative;
	display: inline-block;
}

/* Toggle button inherits Oxygen btn classes, minimal overrides */
.kreisky-share-toggle {
	cursor: pointer;
}

/* Share icon sizing to match Oxygen fancy-icon */
.kreisky-share-toggle .btn__icon--share svg {
	width: 1em;
	height: 1em;
}

/* Share Dropdown */
.kreisky-share-dropdown {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	min-width: 200px;
	z-index: 1000;
	display: none;
}

.kreisky-share-dropdown.is-open {
	display: block;
}

.kreisky-share-dropdown__inner {
	padding: 0.5rem 0;
	display: flex;
	flex-direction: column;
}

/* Share Links */
.kreisky-share-dropdown__link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.5rem 1rem;
	text-decoration: none;
	color: #333;
	transition: background-color 0.2s;
}

.kreisky-share-dropdown__link:hover {
	background-color: #f5f5f5;
	color: #333;
}

.kreisky-share-dropdown__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.kreisky-share-dropdown__icon svg,
.kreisky-share-dropdown__icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.kreisky-share-dropdown__label {
	white-space: nowrap;
}

/* Copy success state */
.kreisky-share-dropdown__link--copylink.is-copied {
	background-color: #e8f5e9;
}

.kreisky-share-dropdown__link--copylink.is-copied .kreisky-share-dropdown__label {
	color: #2e7d32;
}

/* Right-aligned dropdown modifier */
.kreisky-share-button--align-right .kreisky-share-dropdown {
	left: auto;
	right: 0;
}

/* Responsive Share Button */
@media (max-width: 768px) {
	.kreisky-share-dropdown {
		min-width: 180px;
	}
}