/* Odyseus hero (0.8.4): „cestovný denník“ — postcard collage + ticket tiles (0.8.6: accordion panel) */

.ody-hero,
.ody-results {
	--h-green: #1B4332;
	--h-green-2: #2D5A3D;
	--h-cream: #F5F0E6;
	--h-paper: #FFFDF8;
	--h-terra: #E07A5F;
	--h-terra-d: #B5523A;
	--h-ochre: #E3B04B;
	--h-sage: #52796F;
	--h-ink: #1a2e22;
	--h-muted: #4a5e52;
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--h-ink);
	background-color: var(--h-cream);
	/* topographic contour lines */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'%3E%3Cg fill='none' stroke='%231B4332' stroke-opacity='0.07' stroke-width='1.4'%3E%3Cpath d='M-20 120c80-40 150 30 230 0s120-90 210-60 140 70 200 40'/%3E%3Cpath d='M-20 160c90-40 150 40 240 8s130-90 210-56 130 74 190 46'/%3E%3Cpath d='M-20 205c95-35 160 45 250 14s135-86 205-52 125 76 185 50'/%3E%3Cpath d='M-20 420c70 30 140-40 220-10s110 90 200 70 140-60 220-30'/%3E%3Cpath d='M-20 465c75 30 150-36 228-6s118 84 200 66 136-56 212-26'/%3E%3Cpath d='M-20 510c80 26 156-30 236 0s124 78 200 62 130-50 204-22'/%3E%3Cellipse cx='470' cy='300' rx='70' ry='40'/%3E%3Cellipse cx='470' cy='300' rx='110' ry='66'/%3E%3Cellipse cx='470' cy='300' rx='150' ry='94'/%3E%3Cellipse cx='120' cy='320' rx='40' ry='22'/%3E%3Cellipse cx='120' cy='320' rx='76' ry='44'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 600px 600px;
	background-position: center top;
	box-sizing: border-box;
	isolation: isolate;
}
.ody-hero *,
.ody-hero *::before,
.ody-hero *::after,
.ody-results *,
.ody-results *::before,
.ody-results *::after {
	box-sizing: border-box;
}

.ody-hero .ody-ico {
	width: 1.25em;
	height: 1.25em;
	flex: none;
}

/* ---------- layout ---------- */
.ody-hero__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 28px;
	max-width: 1180px;
	margin: 0 auto;
	padding: 24px 20px 8px;
	align-items: center;
}
@media (min-width: 900px) {
	.ody-hero__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
		gap: 40px;
		padding: 36px 32px 20px;
		align-items: start;
	}
}

/* ---------- copy ---------- */
.ody-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 18px !important;
	padding: 6px 14px 6px 8px;
	border: 1px solid rgba(27, 67, 50, 0.18);
	border-radius: 999px;
	background: rgba(255, 253, 248, 0.7);
	color: var(--h-green);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.2;
}
.ody-hero__eyebrow .ody-ico {
	color: var(--h-terra-d);
	width: 22px;
	height: 22px;
}
.ody-hero__eyebrow strong {
	color: var(--h-terra-d);
	font-weight: 800;
}

.ody-hero .ody-hero__title {
	margin: 0 0 18px;
	padding: 0;
	color: var(--h-green);
	font-family: inherit;
	font-size: clamp(2.6rem, 9vw, 4.6rem);
	font-weight: 800;
	line-height: 0.98;
	letter-spacing: -0.035em;
	text-wrap: balance;
}
.ody-hero__title em {
	position: relative;
	display: inline-block;
	font-family: Georgia, "Iowan Old Style", "Times New Roman", serif;
	font-style: italic;
	font-weight: 400;
	letter-spacing: -0.01em;
	color: var(--h-terra-d);
	padding-bottom: 0.08em;
}
/* hand-drawn trail under the italic word */
.ody-hero__title em::after {
	content: "";
	position: absolute;
	left: -2%;
	right: -4%;
	bottom: -0.12em;
	height: 0.32em;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M3 14c30-9 60-11 92-6s62 6 102-6' fill='none' stroke='%23E07A5F' stroke-width='4' stroke-linecap='round' stroke-dasharray='0.1 9'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	pointer-events: none;
}

.ody-hero .ody-hero__sub {
	max-width: 36ch;
	margin: 0 0 28px;
	color: var(--h-muted);
	font-size: clamp(1.02rem, 2.4vw, 1.18rem);
	line-height: 1.55;
}

.ody-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 22px;
}
.ody-hero a.ody-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 15px 22px 15px 26px;
	border-radius: 999px;
	background: var(--h-green);
	color: var(--h-cream);
	font-weight: 700;
	font-size: 1.05rem;
	text-decoration: none;
	box-shadow: 4px 5px 0 var(--h-terra);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.ody-hero a.ody-hero__cta:hover,
.ody-hero a.ody-hero__cta:focus-visible {
	transform: translate(-2px, -2px);
	box-shadow: 7px 8px 0 var(--h-terra);
	color: #fff;
}
.ody-hero a.ody-hero__cta .ody-ico {
	transition: transform 0.18s ease;
}
.ody-hero a.ody-hero__cta:hover .ody-ico {
	transform: translateX(3px);
}
.ody-hero a.ody-hero__link {
	color: var(--h-green);
	font-weight: 650;
	text-decoration: underline;
	text-decoration-style: wavy;
	text-decoration-color: var(--h-terra);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 6px;
}
.ody-hero a.ody-hero__link:hover {
	color: var(--h-terra-d);
}
.ody-hero a:focus-visible {
	outline: 3px solid var(--h-ochre);
	outline-offset: 3px;
}

/* ---------- postcard collage ---------- */
.ody-hero__collage {
	position: relative;
	height: 270px;
	max-width: 560px;
	width: 100%;
	margin: 0 auto;
}
@media (min-width: 560px) {
	.ody-hero__collage { height: 340px; }
}
@media (min-width: 900px) {
	.ody-hero__collage { height: 340px; max-width: none; align-self: start; }
}

.ody-hero__route {
	position: absolute;
	inset: 4% 6% 8% 2%;
	width: 92%;
	height: 88%;
	z-index: 0;
	overflow: visible;
}
.ody-hero__route path {
	fill: none;
	stroke: var(--h-terra);
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-dasharray: 2 9;
	vector-effect: non-scaling-stroke;
}

.ody-hero figure.ody-postcard {
	position: absolute;
	margin: 0;
	padding: 8px 8px 0;
	background: var(--h-paper);
	border-radius: 3px;
	box-shadow: 0 22px 40px -22px rgba(27, 67, 50, 0.55), 0 2px 6px rgba(26, 46, 34, 0.1);
	transition: transform 0.35s cubic-bezier(.2, .8, .2, 1), box-shadow 0.35s ease;
	will-change: transform;
}
@media (min-width: 900px) {
	.ody-hero figure.ody-postcard { padding: 11px 11px 0; }
}
.ody-postcard img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 1px;
	background: #d9d2c3;
}
.ody-postcard figcaption {
	margin: 0;
	padding: 6px 4px 9px;
	color: var(--h-green);
	font-family: Georgia, "Iowan Old Style", serif;
	font-style: italic;
	font-size: 0.88rem;
	line-height: 1.2;
	text-align: center;
}
@media (min-width: 900px) {
	.ody-postcard figcaption { font-size: 1.05rem; padding: 9px 4px 13px; }
}
.ody-postcard__tape {
	position: absolute;
	top: -11px;
	left: 50%;
	width: 74px;
	height: 22px;
	margin-left: -37px;
	background: rgba(224, 122, 95, 0.62);
	transform: rotate(-4deg);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
	-webkit-mask: linear-gradient(90deg, transparent 0 2px, #000 2px calc(100% - 2px), transparent 0) ;
	mask: linear-gradient(90deg, transparent 0 2px, #000 2px calc(100% - 2px), transparent 0);
	z-index: 2;
}

/* positions (mobile = fan row) */
.ody-postcard--1 { width: 38%; left: 1%;  top: 14%; transform: rotate(-7deg); z-index: 1; }
.ody-postcard--2 { width: 38%; left: 31%; top: 0;   transform: rotate(3deg);  z-index: 2; }
.ody-postcard--3 { width: 37%; left: 61%; top: 17%; transform: rotate(-2.5deg); z-index: 3; }
.ody-postcard--2 .ody-postcard__tape { background: rgba(227, 176, 75, 0.7); transform: rotate(3deg); }
.ody-postcard--3 .ody-postcard__tape { background: rgba(82, 121, 111, 0.55); transform: rotate(-6deg); }

@media (min-width: 900px) {
	.ody-postcard--1 { width: 38%; left: 0;   top: 9%; }
	.ody-postcard--2 { width: 42%; left: 29%; top: 0; }
	.ody-postcard--3 { width: 37%; left: 63%; top: 16%; }
}

@media (hover: hover) {
	.ody-hero figure.ody-postcard:hover {
		transform: rotate(0deg) scale(1.04);
		z-index: 5;
		box-shadow: 0 30px 50px -24px rgba(27, 67, 50, 0.6), 0 2px 6px rgba(26, 46, 34, 0.12);
	}
}

/* compass stamp */
.ody-hero__stamp {
	position: absolute;
	left: 3%;
	bottom: -3%;
	width: 88px;
	height: 92px;
	z-index: 4;
	transform: rotate(-14deg);
	color: var(--h-green);
	opacity: 0.92;
}
@media (min-width: 900px) {
	.ody-hero__stamp { width: 118px; height: 118px; left: 42%; bottom: 0; }
}
.ody-hero__stamp svg {
	width: 100%;
	height: 100%;
	overflow: visible;
}
.ody-stamp__ring {
	fill: rgba(245, 240, 230, 0.85);
	stroke: var(--h-green);
	stroke-width: 1.6;
}
.ody-stamp__ring--in {
	fill: none;
	stroke-dasharray: 2 3;
}
.ody-stamp__text {
	fill: var(--h-green);
	font: 700 10px/1 system-ui, -apple-system, "Segoe UI", sans-serif;
	letter-spacing: 2.2px;
	text-transform: uppercase;
}
.ody-stamp__rose {
	fill: var(--h-terra-d);
	transform-origin: 60px 60px;
	animation: ody-rose 14s ease-in-out infinite;
}
.ody-stamp__rose-b {
	fill: var(--h-green);
}
@keyframes ody-rose {
	0%, 100% { transform: rotate(-18deg); }
	50% { transform: rotate(24deg); }
}

/* ---------- ticket tiles ---------- */
.ody-tickets-wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: 28px 20px 48px;
}
@media (min-width: 900px) {
	.ody-tickets-wrap { padding: 28px 32px 64px; }
}
.ody-hero .ody-tickets-kicker {
	display: flex;
	align-items: center;
	gap: 0;
	margin: 0 0 16px;
	color: var(--h-green);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.ody-tickets-kicker::after {
	content: "";
	flex: 1;
	height: 0;
	border-top: 1.5px dashed rgba(27, 67, 50, 0.3);
}

.ody-hero ul.ody-tickets {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 900px) {
	.ody-hero ul.ody-tickets {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 20px;
	}
}
.ody-hero .ody-tickets__item {
	margin: 0;
	padding: 0;
}
.ody-hero .ody-tickets__item::marker { content: none; }

.ody-hero a.ody-ticket {
	--tone: var(--h-green);
	--tone-ink: #fff;
	--stub: 30%;
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 150px;
	border-radius: 14px;
	background: var(--h-paper);
	color: var(--h-ink);
	text-decoration: none;
	box-shadow: 0 14px 28px -20px rgba(27, 67, 50, 0.5), 0 1px 3px rgba(26, 46, 34, 0.08);
	transition: transform 0.22s ease, box-shadow 0.22s ease;
}
.ody-hero a.ody-ticket--terra { --tone: #C65D3B; }
.ody-hero a.ody-ticket--forest { --tone: var(--h-green); }
.ody-hero a.ody-ticket--ochre { --tone: var(--h-ochre); --tone-ink: var(--h-green); }
.ody-hero a.ody-ticket--sage { --tone: var(--h-sage); }
/* 0.9.3: all types are tickets → one colour each */
.ody-hero a.ody-ticket--sky { --tone: #3D7EA6; }
.ody-hero a.ody-ticket--berry { --tone: #B0436E; }
.ody-hero a.ody-ticket--slate { --tone: #4A5568; }
.ody-hero a.ody-ticket--plum { --tone: #7B4B94; }
.ody-hero a.ody-ticket--rust { --tone: #A0522D; }
.ody-hero a.ody-ticket--teal { --tone: #2A8C82; }
.ody-hero a.ody-ticket--olive { --tone: #6B7A2A; }
.ody-hero a.ody-ticket--crimson { --tone: #B23A48; }
.ody-hero a.ody-ticket--wine { --tone: #722F37; }

.ody-hero .ody-tickets__item:nth-child(odd) a.ody-ticket { transform: rotate(-0.8deg); }
.ody-hero .ody-tickets__item:nth-child(even) a.ody-ticket { transform: rotate(0.7deg); }
.ody-hero a.ody-ticket:hover,
.ody-hero a.ody-ticket:focus-visible {
	transform: translateY(-4px) rotate(0deg) !important;
	box-shadow: 0 22px 34px -20px rgba(27, 67, 50, 0.6), 0 1px 3px rgba(26, 46, 34, 0.1);
	color: var(--h-ink);
}

.ody-ticket__stub {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: 0.4rem;
	padding: 14px 16px 12px;
	border-radius: 14px 14px 0 0;
	background: var(--tone);
	color: var(--tone-ink);
	/* faint ticket guilloche */
	background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.07) 0 2px, transparent 2px 9px);
}
.ody-ticket__num {
	font-size: 1.85rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.03em;
	font-variant-numeric: tabular-nums;
}
.ody-ticket__unit {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.92;
}

/* perforation + side notches (mobile: horizontal) */
.ody-ticket__body {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1;
	padding: 14px 16px 14px;
	border-top: 2px dashed rgba(27, 67, 50, 0.22);
}
.ody-ticket__body::before,
.ody-ticket__body::after {
	content: "";
	position: absolute;
	top: -10px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--h-cream);
}
.ody-ticket__body::before { left: -9px; }
.ody-ticket__body::after { right: -9px; }

.ody-ticket__body .ody-ico {
	width: 26px;
	height: 26px;
	color: var(--tone);
	margin-bottom: 2px;
}
.ody-ticket--ochre .ody-ticket__body .ody-ico { color: #A97A1C; }
.ody-ticket__name {
	color: var(--h-green);
	font-size: 1.12rem;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
}
.ody-ticket__go {
	margin-top: auto;
	padding-top: 6px;
	color: var(--h-terra-d);
	font-size: 0.84rem;
	font-weight: 650;
}
.ody-ticket__go span {
	display: inline-block;
	transition: transform 0.2s ease;
}
.ody-hero a.ody-ticket:hover .ody-ticket__go span {
	transform: translateX(4px);
}

/* desktop: horizontal ticket — stub left, perforation vertical */
@media (min-width: 900px) {
	.ody-hero a.ody-ticket {
		flex-direction: row;
		min-height: 128px;
	}
	.ody-ticket__stub {
		flex: 0 0 92px;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 4px;
		padding: 14px 6px;
		border-radius: 14px 0 0 14px;
		text-align: center;
	}
	.ody-ticket__num { font-size: 1.9rem; }
	.ody-ticket__unit { font-size: 0.64rem; }
	.ody-ticket__body {
		border-top: 0;
		border-left: 2px dashed rgba(27, 67, 50, 0.22);
		padding: 16px 16px 14px 18px;
	}
	.ody-ticket__body::before,
	.ody-ticket__body::after {
		left: -10px;
		right: auto;
	}
	.ody-ticket__body::before { top: -9px; }
	.ody-ticket__body::after { top: auto; bottom: -9px; }
}

.ody-hero--tiles-only .ody-tickets-wrap { padding-top: 32px; }

@media (prefers-reduced-motion: reduce) {
	.ody-stamp__rose { animation: none; }
	.ody-hero figure.ody-postcard,
	.ody-hero a.ody-ticket,
	.ody-hero a.ody-hero__cta { transition: none; }
}

/* ---------- 0.8.6: active ticket + accordion panel with the 10 nearest events ---------- */
.ody-ticket__arrow {
	display: inline-block;
	transition: transform 0.22s ease;
}
.ody-hero a.ody-ticket:hover .ody-ticket__go span.ody-ticket__arrow { transform: translateY(3px); }
.ody-hero a.ody-ticket.is-active {
	transform: translateY(-4px) rotate(0deg) !important;
	box-shadow: 0 0 0 2px var(--tone), 0 22px 34px -20px rgba(27, 67, 50, 0.6);
}
.ody-hero a.ody-ticket.is-active .ody-ticket__arrow,
.ody-hero a.ody-ticket.is-active:hover .ody-ticket__go span.ody-ticket__arrow { transform: rotate(180deg); }
.ody-hero a.ody-ticket:focus-visible { outline: 3px solid var(--h-ochre); outline-offset: 3px; }

.ody-type-panel {
	position: relative;
	margin: 22px 0 0;
	padding: 18px 14px 16px;
	border: 1.5px dashed rgba(27, 67, 50, 0.28);
	border-radius: 18px;
	background: rgba(255, 253, 248, 0.82);
	box-shadow: 0 18px 40px -30px rgba(27, 67, 50, 0.55);
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
}
.ody-type-panel[hidden] { display: none !important; }
.ody-type-panel.is-open { animation: ody-panel-in 0.28s ease both; }
@keyframes ody-panel-in {
	from { opacity: 0; transform: translateY(-8px); }
	to { opacity: 1; transform: none; }
}
@media (min-width: 900px) {
	.ody-type-panel { padding: 22px 22px 18px; margin-top: 28px; }
}
.ody-type-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 14px;
}
.ody-hero .ody-type-panel__title {
	margin: 0;
	color: var(--h-green);
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.01em;
}
.ody-hero .ody-type-panel__title em {
	font-style: normal;
	color: var(--h-terra-d);
}
.ody-hero .ody-type-panel__close,
.ody-hero .ody-type-panel__retry {
	flex: none;
	margin: 0;
	padding: 6px 12px;
	border: 1px solid rgba(27, 67, 50, 0.22);
	border-radius: 999px;
	background: var(--h-paper);
	color: var(--h-green);
	font: inherit;
	font-size: 0.8rem;
	font-weight: 650;
	line-height: 1.2;
	cursor: pointer;
}
.ody-hero .ody-type-panel__close:hover,
.ody-hero .ody-type-panel__retry:hover { background: var(--h-green); color: #fff; }

:is(.ody-hero, .ody-results) ul.ody-evtiles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 640px) {
	:is(.ody-hero, .ody-results) ul.ody-evtiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}
@media (min-width: 1000px) {
	:is(.ody-hero, .ody-results) ul.ody-evtiles { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
}
:is(.ody-hero, .ody-results) .ody-evtiles__item { margin: 0; padding: 0; min-width: 0; }
:is(.ody-hero, .ody-results) .ody-evtiles__item::marker { content: none; }

/* postcard-like tile: white border, slight tilt, straightens on hover */
.ody-evtile {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 6px 6px 10px;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 10px 22px -16px rgba(27, 67, 50, 0.55), 0 1px 2px rgba(26, 46, 34, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	animation: ody-tile-in 0.32s ease both;
	animation-delay: calc(var(--i, 0) * 30ms);
}
.ody-evtiles__item:nth-child(odd) .ody-evtile { transform: rotate(-0.6deg); }
.ody-evtiles__item:nth-child(even) .ody-evtile { transform: rotate(0.5deg); }
.ody-evtile:hover { transform: translateY(-3px) rotate(0deg); box-shadow: 0 16px 28px -16px rgba(27, 67, 50, 0.6); }
@keyframes ody-tile-in {
	from { opacity: 0; }
	to { opacity: 1; }
}
.ody-evtile__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: 3px;
	background: var(--h-sage);
}
.ody-evtile__media img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ody-evtile__ph {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.85);
	background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0 2px, transparent 2px 10px);
}
.ody-evtile__media--terra { background-color: #C65D3B; }
.ody-evtile__media--forest { background-color: var(--h-green); }
.ody-evtile__media--ochre { background-color: var(--h-ochre); }
.ody-evtile__media--ochre .ody-evtile__ph { color: rgba(27, 67, 50, 0.75); }
.ody-evtile__media--sage { background-color: var(--h-sage); }
.ody-evtile__media--sky { background-color: #3D7EA6; }
.ody-evtile__media--berry { background-color: #B0436E; }
.ody-evtile__media--slate { background-color: #4A5568; }
.ody-evtile__media--plum { background-color: #7B4B94; }
.ody-evtile__media--rust { background-color: #A0522D; }
.ody-evtile__media--teal { background-color: #2A8C82; }
.ody-evtile__media--olive { background-color: #6B7A2A; }
.ody-evtile__media--crimson { background-color: #B23A48; }
.ody-evtile__media--wine { background-color: #722F37; }
.ody-evtile__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1;
	min-width: 0;
	padding: 9px 4px 0;
}
:is(.ody-hero, .ody-results) .ody-evtile__title {
	margin: 0;
	color: var(--h-ink);
	font-size: 0.92rem;
	font-weight: 750;
	line-height: 1.25;
	overflow-wrap: anywhere;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
:is(.ody-hero, .ody-results) .ody-evtile__meta {
	margin: 0;
	color: var(--h-muted);
	font-size: 0.78rem;
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
:is(.ody-hero, .ody-results) a.ody-evtile__map {
	margin-top: auto;
	padding-top: 6px;
	color: var(--h-terra-d);
	font-size: 0.8rem;
	font-weight: 700;
	text-decoration: none;
}
:is(.ody-hero, .ody-results) a.ody-evtile__map:hover,
:is(.ody-hero, .ody-results) a.ody-evtile__map:focus-visible { color: var(--h-green); text-decoration: underline; }

/* skeleton */
.ody-evtile--skeleton { animation: none; }
.ody-evtile--skeleton .ody-evtile__media,
.ody-sk {
	background: linear-gradient(90deg, #ece5d6 0%, #f6f1e7 50%, #ece5d6 100%);
	background-size: 200% 100%;
	animation: ody-shimmer 1.2s linear infinite;
}
.ody-sk { display: block; height: 10px; border-radius: 4px; }
.ody-sk--t { width: 85%; height: 12px; }
.ody-sk--m { width: 60%; }
@keyframes ody-shimmer {
	from { background-position: 200% 0; }
	to { background-position: -200% 0; }
}
.ody-hero .ody-type-panel__loading {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
.ody-type-panel__error,
.ody-hero .ody-type-panel__empty {
	margin: 4px 0 6px;
	color: var(--h-muted);
	font-size: 0.92rem;
}
.ody-type-panel__error { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ody-type-panel__error p { margin: 0; color: var(--h-terra-d); font-weight: 650; }

.ody-hero .ody-type-panel__foot {
	margin: 16px 0 0;
	text-align: right;
}
.ody-hero a.ody-type-panel__all {
	color: var(--h-green);
	font-size: 0.86rem;
	font-weight: 700;
	text-decoration: none;
	border-bottom: 1.5px dashed rgba(27, 67, 50, 0.4);
}
.ody-hero a.ody-type-panel__all:hover { color: var(--h-terra-d); border-bottom-color: currentColor; }

@media (prefers-reduced-motion: reduce) {
	.ody-type-panel.is-open,
	.ody-evtile,
	.ody-evtile--skeleton .ody-evtile__media,
	.ody-sk { animation: none; }
	.ody-evtile,
	.ody-ticket__arrow { transition: none; }
}

/* ---------- 0.9.0: period tiles view (header calendar leaf → hero hidden) ---------- */
.ody-hero[hidden],
.ody-results[hidden] { display: none !important; }
.ody-results {
	scroll-margin-top: 96px;
}
.ody-results__inner {
	max-width: 1180px;
	margin: 0 auto;
	padding: 46px 16px 40px;
	min-width: 0;
}
@media (min-width: 900px) {
	.ody-results__inner { padding: 54px 32px 56px; }
}
.ody-results__head {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px 16px;
	margin: 0 0 14px;
	padding: 16px 18px;
	border-radius: 14px;
	background: var(--h-paper);
	box-shadow: 0 14px 30px -24px rgba(27, 67, 50, 0.6), 0 1px 2px rgba(26, 46, 34, 0.06);
	transform: rotate(-0.4deg);
}
.ody-results__tape {
	position: absolute;
	top: -9px;
	left: 26px;
	width: 74px;
	height: 18px;
	background: rgba(224, 122, 95, 0.55);
	transform: rotate(-4deg);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}
.ody-results--zajtra .ody-results__tape { background: rgba(227, 176, 75, 0.65); }
.ody-results--vikend .ody-results__tape { background: rgba(27, 67, 50, 0.45); }
.ody-results--7dni .ody-results__tape { background: rgba(82, 121, 111, 0.55); }
html body .ody-results .ody-results__title {
	margin: 0;
	min-width: 0;
	color: var(--h-green);
	font-family: inherit;
	font-size: clamp(1.15rem, 2.4vw, 1.7rem);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.015em;
	overflow-wrap: anywhere;
	outline: none;
}
.ody-results__dates { color: var(--h-ink); font-weight: 650; }
.ody-results__count { color: var(--h-terra-d); white-space: nowrap; }
.ody-results__sep { color: rgba(27, 67, 50, 0.45); }
html body .ody-results .ody-results__close,
html body .ody-results .ody-results__retry,
html body .ody-results .ody-results__morebtn {
	flex: none;
	margin: 0;
	padding: 7px 14px;
	border: 1px solid rgba(27, 67, 50, 0.25);
	border-radius: 999px;
	background: var(--h-paper);
	color: var(--h-green);
	font: inherit;
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	cursor: pointer;
	white-space: nowrap;
}
html body .ody-results .ody-results__close:hover,
html body .ody-results .ody-results__retry:hover,
html body .ody-results .ody-results__morebtn:hover:not([disabled]) { background: var(--h-green); border-color: var(--h-green); color: #fff; }
html body .ody-results .ody-results__close:focus-visible,
html body .ody-results .ody-results__morebtn:focus-visible { outline: 2px solid var(--h-terra-d); outline-offset: 2px; }
html body .ody-results .ody-results__morebtn {
	padding: 11px 26px;
	border: 1.5px dashed rgba(27, 67, 50, 0.45);
	font-size: 0.95rem;
}
html body .ody-results .ody-results__morebtn[disabled] { opacity: 0.7; cursor: progress; }
.ody-results__note {
	display: inline-block;
	margin: 0 0 14px !important;
	padding: 5px 12px;
	border-radius: 999px;
	background: rgba(82, 121, 111, 0.12);
	color: var(--h-muted);
	font-size: 0.82rem;
	line-height: 1.3;
}
.ody-results__note[hidden],
.ody-results__more[hidden],
.ody-results__error[hidden],
.ody-results__empty[hidden] { display: none !important; }
.ody-results__more { margin: 22px 0 0; text-align: center; }
.ody-results__error { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 6px 0; }
.ody-results__error p { margin: 0; color: var(--h-terra-d); font-weight: 650; }
.ody-results__empty { margin: 6px 0; color: var(--h-muted); }
.ody-results__foot { margin: 18px 0 0 !important; text-align: right; }
html body .ody-results a.ody-results__all {
	color: var(--h-green);
	font-size: 0.9rem;
	font-weight: 700;
	text-decoration: none;
	border-bottom: 1.5px dashed rgba(27, 67, 50, 0.4);
}
html body .ody-results a.ody-results__all:hover { color: var(--h-terra-d); border-bottom-color: currentColor; }
.ody-results ul.ody-evtiles { min-width: 0; }
@media (max-width: 560px) {
	.ody-results__head { padding: 14px 12px 12px 14px; }
	html body .ody-results .ody-results__close { padding: 6px 10px; font-size: 0.8rem; }
	.ody-results__foot { text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.ody-results__head { transform: none; }
}

/* 0.9.2: type badge on event tiles (label from Eventy → Typy eventov) */
:is(.ody-hero, .ody-results) .ody-evtile__type {
	align-self: flex-start;
	padding: 1px 8px;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.6;
	color: #fff;
	background: var(--h-green, #1B4332);
}
:is(.ody-hero, .ody-results) .ody-evtile__type--terra { background: var(--h-terra-d, #B5523A); }
:is(.ody-hero, .ody-results) .ody-evtile__type--ochre { background: var(--h-ochre, #E3B04B); color: var(--h-green, #1B4332); }
:is(.ody-hero, .ody-results) .ody-evtile__type--sage { background: var(--h-sage, #52796F); }
:is(.ody-hero, .ody-results) .ody-evtile__type--sky { background: #3D7EA6; }
:is(.ody-hero, .ody-results) .ody-evtile__type--berry { background: #B0436E; }
:is(.ody-hero, .ody-results) .ody-evtile__type--slate { background: #4A5568; }
:is(.ody-hero, .ody-results) .ody-evtile__type--plum { background: #7B4B94; }
:is(.ody-hero, .ody-results) .ody-evtile__type--rust { background: #A0522D; }
:is(.ody-hero, .ody-results) .ody-evtile__type--teal { background: #2A8C82; }
:is(.ody-hero, .ody-results) .ody-evtile__type--olive { background: #6B7A2A; }
:is(.ody-hero, .ody-results) .ody-evtile__type--crimson { background: #B23A48; }
:is(.ody-hero, .ody-results) .ody-evtile__type--wine { background: #722F37; }

/* 0.9.3: every event type is a ticket (up to ~13) → compact wrap: 2 per row on phones, 3 on tablets, 4 on desktop */
@media (min-width: 640px) and (max-width: 899px) {
	.ody-hero ul.ody-tickets { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
	.ody-hero ul.ody-tickets { gap: 12px; }
	.ody-hero a.ody-ticket { min-height: 0; }
	.ody-ticket__stub { padding: 10px 12px 9px; }
	.ody-ticket__num { font-size: 1.5rem; }
	.ody-ticket__unit { font-size: 0.62rem; letter-spacing: 0.05em; }
	.ody-ticket__body { padding: 10px 12px 11px; }
	.ody-ticket__body .ody-ico { width: 22px; height: 22px; }
	.ody-ticket__name { font-size: 1rem; overflow-wrap: anywhere; }
	.ody-ticket__go { font-size: 0.76rem; }
}
@media (min-width: 900px) {
	.ody-hero ul.ody-tickets { row-gap: 22px; }
	.ody-ticket__name { overflow-wrap: anywhere; }
}
