/* Wakoo Events — calendar, list, details window, sign-up form. */
.wakoo-evcal, .wakoo-evlist, .wakoo-evd {
	--wk-accent: #6C5CE7;
	--wk-bg: #fff;
	--wk-text: #1f2033;
	--wk-muted: color-mix(in srgb, var(--wk-text) 60%, transparent);
	--wk-line: #e7e7f0;
	--wk-head: #f7f7fb;
	--wk-today: color-mix(in srgb, var(--wk-accent) 9%, transparent);
	--wk-ev-text: #fff;
	--wk-radius: 14px;
	--wk-btn-bg: #f1f0fb;
	--wk-btn-text: var(--wk-text);
	--wk-btn-active: var(--wk-accent);
	--wk-btn-radius: 999px;
	--wk-m-bg: #fff;
	--wk-m-text: var(--wk-text);
	--wk-m-overlay: rgba(15, 14, 30, .55);
	--wk-card: #fff;
	color: var(--wk-text);
}

/* ---------- Calendar shell ---------- */
.wakoo-evcal { background: var(--wk-bg); border-radius: var(--wk-radius); padding: 18px; position: relative; }
.wakoo-evcal__tools { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-bottom: 14px; }
.wakoo-evcal__chips { display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 auto; }
.wakoo-evcal .wakoo-evcal__chip {
	display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px !important; margin: 0;
	border: 1px solid var(--wk-line) !important; border-radius: var(--wk-btn-radius) !important;
	background: var(--wk-bg) !important; color: var(--wk-text) !important; font-size: 14px; line-height: 1.2; cursor: pointer;
	transition: background .15s, color .15s, border-color .15s; box-shadow: none !important; text-transform: none;
}
.wakoo-evcal__chip i { width: 9px; height: 9px; border-radius: 50%; background: var(--wk-chip, var(--wk-accent)); display: inline-block; }
.wakoo-evcal .wakoo-evcal__chip:hover { border-color: var(--wk-chip, var(--wk-accent)) !important; }
.wakoo-evcal .wakoo-evcal__chip.is-active { background: var(--wk-chip, var(--wk-accent)) !important; border-color: var(--wk-chip, var(--wk-accent)) !important; color: #fff !important; }
.wakoo-evcal__chip.is-active i { background: #fff; }
.wakoo-evcal__chip:focus-visible, .wakoo-evcal__sub:focus-visible, .wakoo-evcal__search input:focus-visible { outline: 2px solid var(--wk-accent); outline-offset: 2px; }
.wakoo-evcal__search { margin: 0; flex: 0 1 240px; }
.wakoo-evcal__search input { box-sizing: border-box; width: 100%; padding: 8px 14px; border: 1px solid var(--wk-line); border-radius: var(--wk-btn-radius); background: var(--wk-bg); color: var(--wk-text); font-size: 14px; }
.wakoo-evcal__sub { font-size: 14px; color: var(--wk-accent); text-decoration: none; white-space: nowrap; }
.wakoo-evcal__sub::before { content: "＋ "; }
.wakoo-evcal .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- FullCalendar theme ---------- */
.wakoo-evcal .fc {
	--fc-border-color: var(--wk-line);
	--fc-page-bg-color: var(--wk-bg);
	--fc-neutral-bg-color: var(--wk-head);
	--fc-today-bg-color: var(--wk-today);
	--fc-event-text-color: var(--wk-ev-text);
	--fc-event-bg-color: var(--wk-accent);
	--fc-event-border-color: var(--wk-accent);
	--fc-now-indicator-color: #e74c3c;
	--fc-list-event-hover-bg-color: var(--wk-head);
	--fc-highlight-color: color-mix(in srgb, var(--wk-accent) 15%, transparent);
	color: var(--wk-text);
	font-size: 14px;
}
.wakoo-evcal .fc .fc-toolbar { flex-wrap: wrap; gap: 10px; }
.wakoo-evcal .fc .fc-toolbar-title { font-size: 1.35em; font-weight: 700; }
.wakoo-evcal .fc .fc-toolbar-title::first-letter, .wakoo-evcal .fc .fc-col-header-cell-cushion::first-letter, .wakoo-evcal .fc .fc-list-day-text::first-letter, .wakoo-evcal .fc .fc-list-day-side-text::first-letter, .wakoo-evcal .fc .fc-multimonth-title::first-letter { text-transform: uppercase; }
.wakoo-evcal .fc .fc-button {
	background: var(--wk-btn-bg) !important; color: var(--wk-btn-text) !important; border: 0 !important;
	border-radius: var(--wk-btn-radius) !important; padding: 7px 14px !important; font-weight: 600;
	box-shadow: none !important; margin: 0 2px !important; line-height: 1.3; text-transform: none;
}
.wakoo-evcal .fc .fc-button:hover { filter: brightness(.96); }
.wakoo-evcal .fc .fc-button-primary:not(:disabled).fc-button-active,
.wakoo-evcal .fc .fc-button-primary:not(:disabled):active { background: var(--wk-btn-active) !important; color: #fff !important; }
.wakoo-evcal .fc .fc-button:disabled { opacity: .45; }
.wakoo-evcal .fc .fc-button:focus-visible { outline: 2px solid var(--wk-accent) !important; outline-offset: 2px; }
.wakoo-evcal .fc .fc-button-group { gap: 4px; }
.wakoo-evcal .fc-theme-standard .fc-scrollgrid { border-radius: calc(var(--wk-radius) - 4px); overflow: hidden; }
.wakoo-evcal .fc .fc-col-header-cell { background: var(--wk-head); }
.wakoo-evcal .fc .fc-col-header-cell-cushion { padding: 10px 4px; font-weight: 600; display: inline-block; color: var(--wk-muted); text-decoration: none; }
.wakoo-evcal .fc a { color: inherit; text-decoration: none; }
.wakoo-evcal .fc .fc-daygrid-day-number { padding: 6px 8px; font-weight: 600; font-size: .92em; }
.wakoo-evcal .fc .fc-day-today .fc-daygrid-day-number { background: var(--wk-accent); color: #fff; border-radius: 999px; min-width: 26px; text-align: center; margin: 4px; padding: 3px 6px; }
.wakoo-evcal .fc .fc-day-other .fc-daygrid-day-top { opacity: .45; }
.wakoo-evcal .fc .fc-daygrid-event { border-radius: 6px; padding: 2px 5px; margin-top: 2px; font-size: .9em; }
.wakoo-evcal .fc .fc-daygrid-dot-event { color: var(--wk-text); }
.wakoo-evcal .fc .fc-daygrid-dot-event:hover { background: var(--wk-head); }
.wakoo-evcal .fc .fc-timegrid-event { border-radius: 8px; padding: 2px 4px; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.wakoo-evcal .fc .fc-event { transition: transform .12s, box-shadow .12s, opacity .12s; }
.wakoo-evcal .fc .fc-daygrid-block-event:hover, .wakoo-evcal .fc .fc-timegrid-event:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.14); }
.wakoo-evcal .fc .fc-event:focus-visible { outline: 2px solid var(--wk-text); outline-offset: 1px; }
.wakoo-evcal .fc .fc-more-link { font-weight: 600; color: var(--wk-accent); }
.wakoo-evcal .fc .fc-popover { border-radius: 12px; overflow: hidden; box-shadow: 0 12px 40px rgba(0,0,0,.18); background: var(--wk-bg); }
.wakoo-evcal .fc .fc-list { border-radius: calc(var(--wk-radius) - 4px); overflow: hidden; }
.wakoo-evcal .fc .fc-list-day-cushion { background: var(--wk-head); }
.wakoo-evcal .fc .fc-list-day-text, .wakoo-evcal .fc .fc-list-day-side-text { display: inline-block; }
.wakoo-evcal .fc .fc-list-event { cursor: pointer; }
.wakoo-evcal .fc .fc-list-event-dot { border-color: var(--fc-event-border-color); }
.wakoo-evcal .fc .fc-list-empty { background: var(--wk-head); color: var(--wk-muted); }
.wakoo-evcal .fc .fc-multimonth { border-radius: calc(var(--wk-radius) - 4px); }
.wakoo-evcal .fc .fc-multimonth-title { font-size: 1.05em; }
.wakoo-evcal .fc .fc-week-number { background: transparent; color: var(--wk-muted); font-size: .78em; }
.wakoo-evcal .fc .wakoo-ev--past { opacity: .5; }
.wakoo-evcal .fc .wakoo-ev__badge { display: inline-block; margin-right: 5px; padding: 0 5px; border-radius: 4px; background: rgba(0,0,0,.25); font-size: .8em; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; text-decoration: none; }
.wakoo-evcal .fc .fc-list-event .wakoo-ev__badge, .wakoo-evcal .fc .fc-daygrid-dot-event .wakoo-ev__badge { background: #fdecea; color: #b42318; }
.wakoo-evcal .fc .wakoo-ev--cancelled .fc-event-title, .wakoo-evcal .fc .wakoo-ev--cancelled .fc-list-event-title a { text-decoration: none; }
.wakoo-evcal .fc .wakoo-ev--cancelled .wakoo-ev__t { text-decoration: line-through; }
@media (max-width: 767px) {
	.wakoo-evcal { padding: 12px; }
	.wakoo-evcal .fc .fc-toolbar { flex-direction: column; align-items: stretch; }
	.wakoo-evcal .fc .fc-toolbar-chunk { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; }
	.wakoo-evcal .fc .fc-button-group { flex-wrap: wrap; justify-content: center; row-gap: 6px; }
	.wakoo-evcal .fc .fc-toolbar-title { font-size: 1.15em; text-align: center; }
	.wakoo-evcal__search { flex: 1 1 100%; }
}

/* ---------- Details window ---------- */
html.wakoo-evm-open { overflow: hidden; }
.wakoo-evm { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.wakoo-evm[hidden] { display: none; }
.wakoo-evm__overlay { position: absolute; inset: 0; background: var(--wk-m-overlay); animation: wkEvFade .18s ease; }
.wakoo-evm__box {
	position: relative; width: min(560px, 100%); max-height: calc(100vh - 32px); overflow: auto;
	background: var(--wk-m-bg); color: var(--wk-m-text); border-radius: calc(var(--wk-radius) + 4px);
	box-shadow: 0 24px 70px rgba(0,0,0,.3); animation: wkEvPop .22s cubic-bezier(.2,.9,.3,1.2); outline: none;
}
.wakoo-evm .wakoo-evm__x {
	position: absolute; top: 10px; right: 10px; z-index: 2; width: 36px; height: 36px; padding: 0 !important; border: 0 !important;
	border-radius: 50% !important; background: rgba(255,255,255,.92) !important; color: #222 !important; font-size: 24px; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.15) !important;
}
.wakoo-evm__img img { display: block; width: 100%; aspect-ratio: 16/8; object-fit: cover; border-radius: calc(var(--wk-radius) + 4px) calc(var(--wk-radius) + 4px) 0 0; }
.wakoo-evm__inner { padding: 22px 24px 24px; }
.wakoo-evm__cats, .wakoo-evitem__cats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.wakoo-evm__cats span, .wakoo-evitem__cats span { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; color: #fff; background: var(--wk-chip, var(--wk-accent)); }
.wakoo-evm__title { margin: 0 0 12px; font-size: 1.45em; line-height: 1.25; color: inherit; padding-right: 30px; }
.wakoo-evm__status, .wakoo-evd__status, .wakoo-evitem__status { display: inline-block; margin: 0 0 8px; padding: 3px 10px; border-radius: 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; background: #fdecea; color: #b42318; }
.wakoo-evm__status--postponed, .wakoo-evd__status--postponed, .wakoo-evitem--postponed .wakoo-evitem__status { background: #fff4e5; color: #b54708; }
.wakoo-evm__facts { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 7px; }
.wakoo-evm__f { position: relative; padding-left: 26px; font-size: .95em; line-height: 1.45; }
.wakoo-evm__f::before { position: absolute; left: 0; top: 0; width: 20px; text-align: center; }
.wakoo-evm__f--when::before { content: "🗓"; }
.wakoo-evm__f--repeat::before { content: "↻"; color: var(--wk-accent); font-weight: 700; }
.wakoo-evm__f--where::before { content: "📍"; }
.wakoo-evm__f--price::before { content: "🎟"; }
.wakoo-evm__f--spots::before { content: "👥"; }
.wakoo-evm__desc { margin: 0 0 16px; line-height: 1.6; opacity: .88; }
.wakoo-evm__actions, .wakoo-evd__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 4px; }
@keyframes wkEvFade { from { opacity: 0; } }
@keyframes wkEvPop { from { opacity: 0; transform: translateY(14px) scale(.97); } }
@media (prefers-reduced-motion: reduce) { .wakoo-evm__overlay, .wakoo-evm__box { animation: none; } .wakoo-evcal .fc .fc-event { transition: none; } }

/* ---------- Buttons ---------- */
a.wakoo-evbtn, button.wakoo-evbtn, .wakoo-evbtn {
	display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; padding: 10px 18px !important;
	border-radius: var(--wk-btn-radius, 999px) !important; border: 1.5px solid var(--wk-accent) !important;
	background: var(--wk-accent) !important; color: #fff !important; font-weight: 600; font-size: 14px; line-height: 1.2;
	text-decoration: none !important; cursor: pointer; box-shadow: none !important; transition: filter .15s, transform .15s;
}
.wakoo-evbtn[hidden] { display: none !important; }
.wakoo-evbtn:hover { filter: brightness(1.08); transform: translateY(-1px); }
a.wakoo-evbtn--ghost, .wakoo-evbtn.wakoo-evbtn--ghost { background: transparent !important; color: var(--wk-accent) !important; }
.wakoo-evbtn:disabled { opacity: .6; cursor: default; transform: none; }

/* ---------- Sign-up form ---------- */
.wakoo-evrsvp { margin-top: 18px; padding: 18px; border-radius: var(--wk-radius, 14px); background: color-mix(in srgb, var(--wk-accent, #6C5CE7) 7%, transparent); }
.wakoo-evrsvp__title { margin: 0 0 12px; font-size: 1.1em; }
.wakoo-evrsvp__fields { display: grid; grid-template-columns: 1fr 1fr 90px; gap: 10px; margin-bottom: 12px; }
.wakoo-evrsvp__fields label { display: grid; gap: 4px; font-size: 13px; font-weight: 600; margin: 0; }
.wakoo-evrsvp__fields label:first-child:has(select) { grid-column: 1 / -1; }
.wakoo-evrsvp input, .wakoo-evrsvp select { box-sizing: border-box; width: 100%; min-width: 0; padding: 9px 11px; border: 1px solid rgba(0,0,0,.15); border-radius: 8px; font-size: 15px; background: #fff; color: #1f2033; }
.wakoo-evrsvp .wakoo-evrsvp__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.wakoo-evrsvp__msg { margin: 10px 0 0; font-size: 14px; min-height: 1em; }
.wakoo-evrsvp__msg.is-ok { color: #067647; font-weight: 600; }
.wakoo-evrsvp__msg.is-error { color: #b42318; }
@media (max-width: 520px) { .wakoo-evrsvp__fields { grid-template-columns: 1fr; } }

/* ---------- Single event details ---------- */
.wakoo-evd { margin: 0 0 2em; padding: 22px; border: 1px solid var(--wk-line); border-radius: var(--wk-radius); background: var(--wk-bg); }
.wakoo-evd__facts { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 8px; }
.wakoo-evd__facts li { display: grid; grid-template-columns: 110px 1fr; gap: 10px; margin: 0; }
.wakoo-evd__k { font-weight: 700; color: var(--wk-muted); font-size: .9em; text-transform: uppercase; letter-spacing: .04em; }
.wakoo-evd__next { margin-top: 14px; }
.wakoo-evd__next summary { cursor: pointer; font-weight: 600; color: var(--wk-accent); }
.wakoo-evd__next ul { margin: 8px 0 0 18px; }
@media (max-width: 520px) { .wakoo-evd__facts li { grid-template-columns: 1fr; gap: 2px; } }

/* ---------- Events list widget ---------- */
.wakoo-evlist { display: grid; gap: 24px; }
.wakoo-evlist--cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wakoo-evitem { position: relative; display: flex; flex-direction: column; background: var(--wk-card); border-radius: var(--wk-radius); overflow: hidden; box-shadow: 0 2px 14px rgba(20, 20, 50, .07); color: var(--wk-text); }
.wakoo-evitem__img img { display: block; width: 100%; aspect-ratio: 16/10; object-fit: cover; transition: transform .4s; }
.wakoo-evitem:hover .wakoo-evitem__img img { transform: scale(1.04); }
.wakoo-evitem__img { overflow: hidden; }
.wakoo-evitem__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; align-items: flex-start; }
.wakoo-evitem__title { margin: 0; font-size: 1.2em; line-height: 1.3; }
.wakoo-evitem__title a { color: inherit; text-decoration: none; }
.wakoo-evitem__title a:hover { color: var(--wk-ev, var(--wk-accent)); }
.wakoo-evitem__meta { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; font-size: .9em; opacity: .8; }
.wakoo-evitem__meta li { margin: 0; }
.wakoo-evitem__price { font-weight: 700; color: var(--wk-ev, var(--wk-accent)); opacity: 1; }
.wakoo-evitem__excerpt { margin: 0; line-height: 1.55; font-size: .95em; }
.wakoo-evitem .wakoo-evbtn { margin-top: auto; background: var(--wk-ev, var(--wk-accent)) !important; border-color: var(--wk-ev, var(--wk-accent)) !important; }
.wakoo-evitem__badge {
	display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 62px; padding: 8px 6px;
	border-radius: 12px; background: var(--wk-ev, var(--wk-accent)); color: #fff; line-height: 1; text-align: center;
}
.wakoo-evitem__d { font-size: 1.6em; font-weight: 800; }
.wakoo-evitem__m { font-size: .75em; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-top: 3px; }
.wakoo-evlist--cards .wakoo-evitem__badge { position: absolute; top: 14px; left: 14px; z-index: 1; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.wakoo-evlist--cards .wakoo-evitem:not(:has(.wakoo-evitem__img)) .wakoo-evitem__badge { position: static; margin: 18px 0 0 20px; align-self: flex-start; }
.wakoo-evlist--rows { grid-template-columns: 1fr; }
.wakoo-evlist--rows .wakoo-evitem { flex-direction: row; align-items: center; gap: 18px; padding: 16px 18px; }
.wakoo-evlist--rows .wakoo-evitem__body { padding: 0; flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: 18px; }
.wakoo-evlist--rows .wakoo-evitem__title { flex: 1 1 260px; }
.wakoo-evlist--rows .wakoo-evitem .wakoo-evbtn { margin: 0 0 0 auto; }
.wakoo-evlist--timeline { grid-template-columns: 1fr; position: relative; padding-left: 34px; }
.wakoo-evlist--timeline::before { content: ""; position: absolute; left: 11px; top: 6px; bottom: 6px; width: 2px; background: color-mix(in srgb, var(--wk-accent) 30%, transparent); }
.wakoo-evlist--timeline .wakoo-evitem { overflow: visible; flex-direction: row; gap: 16px; padding: 16px 18px; }
.wakoo-evlist--timeline .wakoo-evitem::before { content: ""; position: absolute; left: -29px; top: 22px; width: 14px; height: 14px; border-radius: 50%; background: var(--wk-ev, var(--wk-accent)); box-shadow: 0 0 0 4px var(--wk-card, #fff); }
.wakoo-evlist--timeline .wakoo-evitem__body { padding: 0; }
.wakoo-evlist--timeline .wakoo-evitem__badge { align-self: flex-start; }
.wakoo-evitem--cancelled .wakoo-evitem__title { text-decoration: line-through; opacity: .7; }
.wakoo-evlist__empty { padding: 24px; text-align: center; opacity: .7; }
@media (max-width: 1024px) { .wakoo-evlist--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
	.wakoo-evlist--cards { grid-template-columns: 1fr; }
	.wakoo-evlist--rows .wakoo-evitem { align-items: flex-start; }
	.wakoo-evlist--rows .wakoo-evitem .wakoo-evbtn { margin: 6px 0 0; }
}
