/* Odyseus map — full-bleed first screen, document scrolls past to CTA/footer
   brand: forest #2D5A3D / terracotta #C65D3B / cream #F5F0E6 */

:root {
	--ody-green: #2D5A3D;
	--ody-terracotta: #C65D3B;
	--ody-cream: #F5F0E6;
	--ody-text: #1a2e22;
	--ody-muted: #5a6e62;
	/* Kadence main header min-height is 80px; JS overwrites with measured value */
	--ody-header-h: 80px;
	--ody-adminbar-h: 0px;
}

/* WP admin bar (logged-in) */
body.admin-bar {
	--ody-adminbar-h: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar {
		--ody-adminbar-h: 46px;
	}
}


/* -------------------------------------------------------------------------- */
/* Home: kill Kadence chrome / cream gaps between header and map              */
/* Do NOT lock html/body overflow — page must scroll past the map.            */
/* -------------------------------------------------------------------------- */

/* html keeps a real vertical scrollbar (width-stable + page can scroll) */
html {
	overflow-x: hidden;
	overflow-y: scroll;
	height: auto !important;
	max-height: none !important;
}

body.home,
body.home #wrapper,
body.home #inner-wrap {
	overflow: visible !important;
	height: auto !important;
	max-height: none !important;
}

body.home .entry-hero,
body.home .entry-hero-container-inner,
body.home .entry-header,
body.home .wp-block-post-title,
body.home .entry-title,
body.home .kadence-breadcrumbs,
body.home .page-hero-section {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

body.home #inner-wrap,
body.home .site-content,
body.home #primary,
body.home .content-area,
body.home .content-container,
body.home .site-container,
body.home #main,
body.home .site-main,
body.home .content-wrap,
body.home .entry,
body.home .entry.content-bg,
body.home .single-entry,
body.home .entry-content-wrap,
body.home .entry-content,
body.home .wp-block-post-content,
body.home .wp-site-blocks > .wp-block-group,
body.home .wp-block-group.alignwide,
body.home .wp-block-group.alignfull {
	padding: 0 !important;
	margin: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
	box-shadow: none !important;
	background: transparent !important;
	overflow: visible !important;
}

/* Kill Kadence vertical padding (content-vertical-padding-show → 5rem/3rem/2rem) */
body.home.content-vertical-padding-show .content-area,
body.home .content-area {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

body.home .entry-content-wrap {
	padding: 0 !important;
}

/* Paragraph wrapping shortcode can leave line-height gap */
body.home .entry-content > .wp-block-paragraph,
body.home .entry-content > p {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
}

body.home .entry-content > .wp-block-paragraph .odyseus-map-wrap,
body.home .entry-content > p .odyseus-map-wrap {
	line-height: normal;
	font-size: 1rem;
}

/* Cream when map collapsed; soft green only while map is open */
body.home #wrapper.site,
body.home .site.wp-site-blocks {
	background: #F5F0E6;
}
body.home.odyseus-map-open #wrapper.site,
body.home.odyseus-map-open .site.wp-site-blocks {
	background: #dfe8e2;
}

/* -------------------------------------------------------------------------- */
/* Full-bleed map shell — in document flow (not fixed); fills first screen    */
/* -------------------------------------------------------------------------- */

.odyseus-map-wrap {
	--ody-green: #2D5A3D;
	--ody-terracotta: #C65D3B;
	--ody-cream: #F5F0E6;
	--ody-text: #1a2e22;
	--ody-muted: #5a6e62;
	position: relative;
	display: block;
	/* Full width; html overflow-y:scroll keeps scrollbar width-stable */
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
	/* Collapsed by default (.is-collapsed in HTML); open height below */
	height: 0;
	min-height: 0;
	padding: 0;
	border-radius: 0;
	background: transparent;
	overflow: hidden;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	color: var(--ody-text);
	box-sizing: border-box;
	z-index: 1;
	transition: height 0.4s ease;
}

.odyseus-map-wrap *,
.odyseus-map-wrap *::before,
.odyseus-map-wrap *::after {
	box-sizing: border-box;
}

/* Layout: map is the sole canvas; overlays sit on top */
.odyseus-map-layout {
	position: absolute;
	inset: 0;
	display: block;
	margin: 0;
	padding: 0;
}

.odyseus-map-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	/* min-height:0 made percentage height fragile while collapsed→open */
	min-height: 0;
	border: none;
	border-radius: 0;
	background: #dfe8e2;
	z-index: 1;
}

/* Filters + locate — below hang tab when map is open */
.odyseus-map-toolbar {
	position: absolute;
	top: 12px;
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	z-index: 500;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.odyseus-map-wrap:not(.is-collapsed) .odyseus-map-toolbar {
	top: 2.75rem; /* clear Skryť mapu tab */
}

.odyseus-map-toolbar > * {
	pointer-events: auto;
}

.odyseus-map-toolbar label {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--ody-green);
	background: rgba(245, 240, 230, 0.94);
	backdrop-filter: blur(6px);
	padding: 0.4rem 0.65rem;
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(26, 46, 34, 0.12);
}

.odyseus-map-toolbar select {
	border: 1px solid var(--ody-green);
	border-radius: 6px;
	padding: 0.3rem 0.5rem;
	background: #fff;
	color: var(--ody-text);
	font-size: 0.85rem;
}

.odyseus-map-status {
	position: absolute;
	top: auto;
	bottom: 12px;
	left: 58px; /* clear of zoom +/- at bottomleft */
	right: auto;
	z-index: 500;
	margin: 0;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--ody-muted);
	background: rgba(245, 240, 230, 0.94);
	backdrop-filter: blur(6px);
	padding: 0.4rem 0.75rem;
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(26, 46, 34, 0.12);
	max-width: min(280px, calc(100% - 80px));
	pointer-events: none;
}

.odyseus-map-status.is-error {
	color: var(--ody-terracotta);
}

/* Side panel list overlay */
.odyseus-map-list {
	position: absolute;
	top: 64px;
	right: 12px;
	left: auto;
	bottom: 16px;
	z-index: 450;
	width: min(360px, calc(100% - 24px));
	max-width: 360px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0;
	margin: 0;
	background: rgba(245, 240, 230, 0.92);
	backdrop-filter: blur(8px);
	border-radius: 12px;
	box-shadow: 0 4px 24px rgba(26, 46, 34, 0.18);
	border: 1px solid rgba(45, 90, 61, 0.15);
}

.odyseus-map-list-filters {
	flex: 0 0 auto;
	padding: 0.75rem 0.75rem 0.5rem;
	border-bottom: 1px solid rgba(45, 90, 61, 0.12);
}

.odyseus-map-list-filters label {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--ody-green);
}

.odyseus-map-list-filters select {
	flex: 1;
	border: 1px solid var(--ody-green);
	border-radius: 6px;
	padding: 0.35rem 0.5rem;
	background: #fff;
	color: var(--ody-text);
	font-size: 0.85rem;
}

.odyseus-map-list-items {
	flex: 1 1 auto;
	overflow-y: auto;
	overflow-x: hidden;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: 0.75rem;
	-webkit-overflow-scrolling: touch;
}

/* Tablet + phone: tab centered; toolbar below tab; list = bottom sheet */
@media (max-width: 1024px) {
	.odyseus-map-tab {
		left: 50%;
		transform: translateX(-50%);
		width: 7.25rem;
		z-index: 850;
	}

	.odyseus-map-wrap:not(.is-collapsed) .odyseus-map-toolbar {
		top: 3.35rem !important;
		left: 8px !important;
		right: 8px !important;
		width: auto !important;
		max-width: none !important;
		transform: none !important;
		justify-content: center;
		gap: 0.4rem;
		z-index: 700;
	}

	/* Bottom sheet — never stretch under the tab/toolbar */
	.odyseus-map-wrap:not(.is-collapsed) .odyseus-map-list,
	.odyseus-map-list {
		top: auto !important;
		left: 8px !important;
		right: 8px !important;
		bottom: 8px !important;
		width: auto !important;
		max-width: none !important;
		height: 30vh !important;
		max-height: 30vh !important;
		z-index: 450;
	}

	.odyseus-map-status {
		top: auto !important;
		bottom: calc(30vh + 14px) !important;
		left: 8px !important;
		right: auto !important;
		max-width: calc(100% - 72px) !important;
	}
}

@media (max-width: 640px) {
	.odyseus-layer-btn {
		padding: 0.35rem 0.55rem;
		font-size: 0.72rem;
	}

	.odyseus-btn-locate {
		padding: 0.4rem 0.75rem;
		font-size: 0.8rem;
	}

	.odyseus-map-wrap:not(.is-collapsed) .odyseus-map-list,
	.odyseus-map-list {
		height: 28vh !important;
		max-height: 28vh !important;
	}

	.odyseus-map-status {
		bottom: calc(28vh + 14px) !important;
	}
}

.odyseus-btn {
	appearance: none;
	border: none;
	cursor: pointer;
	border-radius: 999px;
	padding: 0.5rem 0.95rem;
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.2;
	box-shadow: 0 2px 10px rgba(26, 46, 34, 0.12);
}

.odyseus-btn-primary {
	background: var(--ody-terracotta);
	color: #fff;
}

.odyseus-btn-primary:hover,
.odyseus-btn-primary:focus {
	filter: brightness(0.95);
	outline: 2px solid var(--ody-green);
	outline-offset: 2px;
}

.odyseus-btn-ghost {
	background: rgba(255, 255, 255, 0.95);
	color: var(--ody-green);
	border: 1px solid var(--ody-green);
}

.odyseus-btn-ghost:hover,
.odyseus-btn-ghost:focus {
	background: var(--ody-cream);
}

.odyseus-event-card {
	background: #fff;
	border: 1px solid #d5ddd7;
	border-left: 4px solid var(--ody-green);
	border-radius: 8px;
	padding: 0.7rem 0.85rem;
	cursor: pointer;
	transition: border-color 0.15s, box-shadow 0.15s;
	flex-shrink: 0;
}

.odyseus-event-card--has-thumb {
	display: flex;
	gap: 0.65rem;
	align-items: stretch;
	padding: 0.55rem 0.65rem 0.55rem 0.55rem;
}

.odyseus-event-card__thumb {
	flex: 0 0 72px;
	width: 72px;
	height: 72px;
	border-radius: 6px;
	overflow: hidden;
	background: #e8ebe8;
	align-self: center;
}

.odyseus-event-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.odyseus-event-card__body {
	flex: 1 1 auto;
	min-width: 0;
}

.odyseus-event-card--has-thumb .odyseus-event-card__badge {
	margin-bottom: 0.2rem;
}

.odyseus-event-card:hover,
.odyseus-event-card:focus {
	border-color: var(--ody-terracotta);
	box-shadow: 0 2px 8px rgba(45, 90, 61, 0.12);
	outline: none;
}

.odyseus-event-card.is-active {
	border-left-color: var(--ody-terracotta);
	box-shadow: 0 0 0 2px rgba(198, 93, 59, 0.35);
}

.odyseus-event-card__badge {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	background: var(--ody-cream);
	color: var(--ody-green);
	padding: 0.15rem 0.45rem;
	border-radius: 4px;
	margin-bottom: 0.35rem;
}

.odyseus-event-card__title {
	margin: 0 0 0.25rem;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ody-green);
}

.odyseus-event-card__meta {
	margin: 0;
	font-size: 0.8rem;
	color: var(--ody-muted);
}

.odyseus-popup {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	min-width: 180px;
	max-width: 300px;
}

.odyseus-popup__thumb {
	margin: 0 0 0.45rem;
	border-radius: 6px;
	overflow: hidden;
	background: #e8ebe8;
	aspect-ratio: 16 / 10;
	max-height: 120px;
}

.odyseus-popup__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.odyseus-popup__title {
	margin: 0 0 0.25rem;
	font-size: 0.95rem;
	font-weight: 700;
	color: #2D5A3D;
}

.odyseus-popup__meta {
	margin: 0;
	font-size: 0.8rem;
	color: #5a6e62;
}

.odyseus-popup__desc {
	margin: 0.45rem 0 0;
}

.odyseus-popup__desc.is-empty {
	display: none;
}

.odyseus-popup__desc-loading {
	font-size: 0.75rem;
	font-style: italic;
	color: #7a8a80;
}

.odyseus-popup__desc-text {
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.4;
	color: #1a2e22;
	white-space: pre-wrap;
}

.odyseus-empty {
	padding: 1rem;
	text-align: center;
	color: var(--ody-muted);
	background: #fff;
	border-radius: 8px;
	border: 1px dashed #c5d0c9;
}

/* Leaflet attribution stays readable on full bleed */
.odyseus-map-wrap .leaflet-control-attribution {
	background: rgba(245, 240, 230, 0.85) !important;
	font-size: 10px;
}

/* Vector MapLibre basemap fills this; soft bg while loading */
.odyseus-map-wrap .leaflet-container {
	background: #e8e4da;
}
/* If HOT raster fallback is used, prevent Kadence img max-width gaps */
.odyseus-map-wrap .leaflet-container img.leaflet-tile {
	max-width: none !important;
	max-height: none !important;
}

/* MapLibre layer sits under markers; overflow clip only */
.odyseus-map-wrap .leaflet-container {
	overflow: hidden;
}


/* -------------------------------------------------------------------------- */
/* Collapse / roll-out map + header tab "Zobraziť mapu"                       */
/* -------------------------------------------------------------------------- */

/* Full-width site shell */
body.home #wrapper.site,
body.home #wrapper {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

.odyseus-map-wrap:not(.is-collapsed) {
	/* Explicit open height — 70vh fallback, then viewport minus header */
	height: 70vh !important;
	height: calc(100dvh - var(--ody-header-h, 80px) - var(--ody-adminbar-h, 0px)) !important;
	height: calc(100vh - var(--ody-header-h, 80px) - var(--ody-adminbar-h, 0px)) !important;
	min-height: 70vh !important;
	min-height: max(320px, calc(100dvh - var(--ody-header-h, 80px) - var(--ody-adminbar-h, 0px))) !important;
	background: #dfe8e2;
	overflow: hidden;
}
.odyseus-map-wrap.is-collapsed {
	height: 0 !important;
	min-height: 0 !important;
	background: transparent;
	overflow: visible; /* tab hangs under header */
}

.odyseus-map-wrap.is-collapsed .odyseus-map-layout {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.odyseus-map-wrap:not(.is-collapsed) .odyseus-map-layout {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	/* Explicit fill so % height on .leaflet-container resolves */
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	min-height: 320px;
}

/* Leaflet panes are position:absolute — container MUST have real height */
.odyseus-map-wrap:not(.is-collapsed) .odyseus-map-canvas,
.odyseus-map-wrap:not(.is-collapsed) .odyseus-map-canvas.leaflet-container,
.odyseus-map-wrap:not(.is-collapsed) .leaflet-container {
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 320px !important;
}

.odyseus-map-tab {
	position: absolute;
	top: 0;
	left: 18%;
	z-index: 800;
	transform: translateY(0);
	appearance: none;
	border: none;
	cursor: pointer;
	margin: 0;
	/* Fixed size so label swap Zobraziť/Skryť doesn't resize the tab */
	width: 7.5rem;
	min-height: 1.85rem;
	padding: 0.35rem 0.5rem 0.45rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1.2;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: #fff;
	background: var(--ody-terracotta);
	border-radius: 0 0 8px 8px;
	box-shadow: 0 3px 10px rgba(26, 46, 34, 0.2);
	pointer-events: auto;
}

.odyseus-map-wrap.is-collapsed .odyseus-map-tab {
	/* hang under header into the page */
	box-shadow: 0 6px 16px rgba(26, 46, 34, 0.28);
}

.odyseus-map-wrap:not(.is-collapsed) .odyseus-map-tab {
	/* when open, sit on top edge of map still under header */
	background: var(--ody-green);
}

.odyseus-map-tab:hover,
.odyseus-map-tab:focus-visible {
	filter: brightness(1.05);
	outline: none;
}



/* -------------------------------------------------------------------------- */
/* Layer switcher: Eventy | Kempy | Oboje                                     */
/* -------------------------------------------------------------------------- */

.odyseus-layer-switch {
	display: inline-flex;
	align-items: stretch;
	background: rgba(245, 240, 230, 0.96);
	backdrop-filter: blur(6px);
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(26, 46, 34, 0.12);
	border: 1px solid rgba(45, 90, 61, 0.2);
	overflow: hidden;
	padding: 2px;
	gap: 2px;
}

.odyseus-layer-btn {
	appearance: none;
	border: none;
	cursor: pointer;
	margin: 0;
	padding: 0.4rem 0.75rem;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--ody-green);
	background: transparent;
	border-radius: 999px;
	white-space: nowrap;
}

.odyseus-layer-btn:hover,
.odyseus-layer-btn:focus-visible {
	background: rgba(45, 90, 61, 0.1);
	outline: none;
}

.odyseus-layer-btn.is-active {
	background: var(--ody-green);
	color: #fff;
}

@media (max-width: 640px) {
	.odyseus-layer-btn {
		padding: 0.35rem 0.55rem;
		font-size: 0.72rem;
	}
}

/* Custom pins — teardrop + tent (camps) / dot (events) */
.odyseus-pin {
	background: transparent !important;
	border: none !important;
}

.odyseus-pin__svg {
	display: block;
	filter: drop-shadow(0 2px 4px rgba(26, 46, 34, 0.4));
}

.odyseus-pin__body {
	stroke: #fff;
	stroke-width: 1.5;
}

.odyseus-pin--camp .odyseus-pin__body {
	fill: var(--ody-green, #2D5A3D);
}

.odyseus-pin--event .odyseus-pin__body {
	fill: var(--ody-terracotta, #C65D3B);
}

.odyseus-pin--cat-festival .odyseus-pin__body { fill: #C65D3B; }
.odyseus-pin--cat-markets .odyseus-pin__body { fill: #b86a2e; }
.odyseus-pin--cat-meetup .odyseus-pin__body { fill: #3d6b8a; }
.odyseus-pin--cat-caravan .odyseus-pin__body { fill: #2D5A3D; }
.odyseus-pin--cat-concert .odyseus-pin__body { fill: #8a3d6b; }
.odyseus-pin--cat-other .odyseus-pin__body,
.odyseus-pin--cat-default .odyseus-pin__body { fill: #5a6e62; }


.odyseus-pin__tent {
	fill: #F5F0E6;
	stroke: none;
}





.odyseus-pin__cal path {
	fill: none;
	stroke: var(--ody-terracotta, #C65D3B);
	stroke-width: 1.4;
	stroke-linecap: round;
}

.odyseus-pin__cal rect + rect,
.odyseus-pin__cal rect:nth-of-type(2),
.odyseus-pin__cal rect:nth-of-type(3) {
	fill: var(--ody-terracotta, #C65D3B);
	stroke: none;
}

.odyseus-camp-card {
	border-left-color: #3d7a52;
}

.odyseus-event-card__badge--camp {
	background: #e4efe8;
	color: #2D5A3D;
}

.odyseus-amenities {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	margin: 0.4rem 0 0.35rem;
}

.odyseus-amenity {
	display: inline-block;
	font-size: 0.65rem;
	font-weight: 700;
	background: #e4efe8;
	color: #2D5A3D;
	padding: 0.12rem 0.4rem;
	border-radius: 4px;
}

.odyseus-popup__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.45rem;
}

.odyseus-popup__link {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 700;
	color: #C65D3B;
	text-decoration: none;
	padding: 0.2rem 0.45rem;
	border: 1px solid rgba(198, 93, 59, 0.4);
	border-radius: 6px;
	background: #fff;
}

.odyseus-popup__link:hover {
	background: #F5F0E6;
}

.odyseus-popup__nav {
	background: #C65D3B;
	color: #fff !important;
	border-color: #C65D3B;
}

.odyseus-popup__nav:hover {
	filter: brightness(0.95);
	background: #C65D3B;
}

.odyseus-popup__credit {
	margin: 0.45rem 0 0;
	font-size: 0.65rem;
	color: #7a8a80;
}

/* Category glyphs on pins + list */
.odyseus-pin--event .odyseus-pin__glyph,
.odyseus-pin--event .odyseus-pin__glyph * {
	fill: #F5F0E6;
	stroke: #F5F0E6;
	stroke-width: 1.35;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.odyseus-pin--event .odyseus-pin__glyph path {
	fill: #F5F0E6;
}

.odyseus-event-card__head,
.odyseus-popup__head {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin-bottom: 0.25rem;
}
.odyseus-cat-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.55rem;
	height: 1.55rem;
	border-radius: 999px;
	background: #C65D3B;
	flex-shrink: 0;
}
.odyseus-cat-icon svg {
	display: block;
}
.odyseus-cat-icon svg,
.odyseus-cat-icon svg * {
	fill: #F5F0E6;
	stroke: #F5F0E6;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.odyseus-cat-icon--festival { background: #C65D3B; }
.odyseus-cat-icon--markets { background: #b86a2e; }
.odyseus-cat-icon--meetup { background: #3d6b8a; }
.odyseus-cat-icon--caravan { background: #2D5A3D; }
.odyseus-cat-icon--concert { background: #8a3d6b; }
.odyseus-cat-icon--other { background: #5a6e62; }
.odyseus-popup__cat {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--ody-muted, #5a6e62);
}


/* -------------------------------------------------------------------------- */
/* Marker clusters (Leaflet.markercluster) — brand badges                     */
/* -------------------------------------------------------------------------- */

.odyseus-map-wrap .marker-cluster {
	background-clip: padding-box;
}
.odyseus-map-wrap .marker-cluster div {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-weight: 700;
	color: #fff;
}
.odyseus-map-wrap .marker-cluster-small {
	background-color: rgba(198, 93, 59, 0.45);
}
.odyseus-map-wrap .marker-cluster-small div {
	background-color: rgba(198, 93, 59, 0.9);
}
.odyseus-map-wrap .marker-cluster-medium {
	background-color: rgba(45, 90, 61, 0.45);
}
.odyseus-map-wrap .marker-cluster-medium div {
	background-color: rgba(45, 90, 61, 0.92);
}
.odyseus-map-wrap .marker-cluster-large {
	background-color: rgba(26, 46, 34, 0.5);
}
.odyseus-map-wrap .marker-cluster-large div {
	background-color: rgba(26, 46, 34, 0.95);
}


/* -------------------------------------------------------------------------- */
/* Time filter chips — Dnes / Zajtra / Víkend / 7 dní / Všetko               */
/* -------------------------------------------------------------------------- */

.odyseus-time-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	align-items: center;
}

.odyseus-time-chips--toolbar {
	background: rgba(245, 240, 230, 0.96);
	backdrop-filter: blur(6px);
	border-radius: 999px;
	box-shadow: 0 2px 10px rgba(26, 46, 34, 0.12);
	border: 1px solid rgba(45, 90, 61, 0.2);
	padding: 2px;
	gap: 2px;
}

.odyseus-map-list-filters .odyseus-time-chips {
	margin-bottom: 0.55rem;
}

.odyseus-time-chip {
	appearance: none;
	border: none;
	cursor: pointer;
	margin: 0;
	padding: 0.35rem 0.65rem;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--ody-green);
	background: transparent;
	border-radius: 999px;
	white-space: nowrap;
	border: 1px solid transparent;
}

.odyseus-map-list-filters .odyseus-time-chip {
	background: #fff;
	border-color: rgba(45, 90, 61, 0.25);
	box-shadow: none;
}

.odyseus-time-chip:hover,
.odyseus-time-chip:focus-visible {
	background: rgba(45, 90, 61, 0.1);
	outline: none;
}

.odyseus-map-list-filters .odyseus-time-chip:hover,
.odyseus-map-list-filters .odyseus-time-chip:focus-visible {
	border-color: var(--ody-green);
	background: var(--ody-cream);
}

.odyseus-time-chip.is-active {
	background: var(--ody-terracotta);
	color: #fff;
	border-color: var(--ody-terracotta);
}

.odyseus-time-chips--toolbar .odyseus-time-chip.is-active {
	background: var(--ody-terracotta);
	color: #fff;
}

@media (max-width: 640px) {
	.odyseus-time-chip {
		padding: 0.3rem 0.5rem;
		font-size: 0.68rem;
	}

	/* On narrow screens keep toolbar chips compact; list chips still available */
	.odyseus-time-chips--toolbar .odyseus-time-chip {
		padding: 0.28rem 0.45rem;
	}
}

.odyseus-list-count {
	padding: 0.5rem 0.75rem;
	text-align: center;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--ody-muted);
}


/* GoOut-style one-line meta + near-me distance */
.odyseus-event-card__meta,
.odyseus-popup__meta {
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.odyseus-popup__meta {
	white-space: normal;
}

.odyseus-list-count {
	letter-spacing: 0.01em;
}

/* 0.8.2 — active search pill (toolbar) */
.odyseus-search-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.3rem 0.35rem 0.3rem 0.8rem;
	border-radius: 999px;
	background: var(--ody-green);
	color: var(--ody-cream);
	font-size: 0.85rem;
	font-weight: 600;
	box-shadow: 0 2px 10px rgba(26, 46, 34, 0.18);
	max-width: 80vw;
}
.odyseus-search-pill[hidden] {
	display: none !important;
}
.odyseus-search-pill__label {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.odyseus-search-pill__clear {
	appearance: none;
	width: 24px;
	height: 24px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(245, 240, 230, 0.2);
	color: var(--ody-cream);
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
}
.odyseus-search-pill__clear:hover {
	background: var(--ody-terracotta);
	color: #fff;
}

/* 0.8.4: type filter pill (?kat=) — terracotta so it reads apart from the search pill */
.odyseus-type-pill {
	background: var(--ody-terracotta);
	color: #fff;
}
.odyseus-type-pill .odyseus-search-pill__clear {
	background: rgba(255, 255, 255, 0.22);
	color: #fff;
}
.odyseus-type-pill .odyseus-search-pill__clear:hover {
	background: var(--ody-green);
}

/* 0.9.6 — camp photos (Wikimedia Commons) + brand placeholder */
.odyseus-camp-thumb {
	position: relative;
	background: #F5F0E6;
}
.odyseus-camp-thumb .odyseus-ph {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}
.odyseus-camp-thumb img {
	position: relative;
	z-index: 1;
}
.odyseus-popup--camp .odyseus-popup__thumb {
	max-height: 140px;
}
.odyseus-camp-card .odyseus-event-card__badge {
	margin-bottom: 0.2rem;
}
.odyseus-photo-credit {
	margin: 0.25rem 0 0;
	font-size: 0.65rem;
	line-height: 1.3;
	color: #7a8a80;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.odyseus-photo-credit a {
	color: inherit !important;
	text-decoration: underline;
	text-decoration-color: rgba(122, 138, 128, 0.5);
}
.odyseus-photo-credit a:hover,
.odyseus-photo-credit a:focus {
	color: #C65D3B !important;
}
.odyseus-popup__photo-credit {
	margin: 0.45rem 0 0;
}
.odyseus-popup__photo-credit + .odyseus-popup__credit {
	margin-top: 0.1rem;
}
.is-photo-failed .odyseus-photo-credit {
	display: none;
}
