/* ic-events — The Inner Circle ORBIT: event components + WooCommerce reservation pages.
   Theme tokens (theme.json, lane L4) with hex/font fallbacks. All selectors are ic-ev-* / ic-res-* / scoped Woo. */

:root {
	--icv-void: var(--wp--preset--color--void, #050407);
	--icv-night: var(--wp--preset--color--night, #0E0910);
	--icv-plum: var(--wp--preset--color--plum, #230F23);
	--icv-aub: var(--wp--preset--color--aubergine, #2E1A2E);
	--icv-acid: var(--wp--preset--color--acid, #00FF88);
	--icv-ash: var(--wp--preset--color--ash, #BBBBBB);
	--icv-white: var(--wp--preset--color--white, #FFFFFF);
	--icv-alarm: var(--wp--preset--color--alarm, #FFB020);
	--icv-display: var(--wp--preset--font-family--display, "Archivo Black", "Arial Black", Impact, sans-serif);
	--icv-mono: var(--wp--preset--font-family--mono, "Share Tech Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace);
	--icv-line: rgba(255, 255, 255, .1);
	--icv-glow: 0 0 24px rgba(0, 255, 136, .35), 0 0 0 6px rgba(0, 255, 136, .08);
}

.ic-ev { font-family: var(--icv-mono); color: var(--icv-white); box-sizing: border-box; width: 100%; max-width: 1200px; margin-left: auto !important; margin-right: auto !important; }
.ic-ev *, .ic-ev *::before, .ic-ev *::after { box-sizing: border-box; }
.ic-ev [hidden] { display: none !important; }
.ic-ev a { color: inherit; text-decoration: none; }
.ic-ev h1, .ic-ev h2, .ic-ev h3, .ic-ev p, .ic-ev figure, .ic-ev ol { margin: 0; }
.ic-ev a:focus-visible, .ic-ev button:focus-visible, .ic-ev select:focus-visible { outline: 2px solid var(--icv-acid); outline-offset: 3px; }

/* ---------------------------------------------------------------- atoms */
.ic-ev-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ic-ev-chip {
	display: inline-flex; align-items: center; height: 26px; padding: 0 12px;
	border: 1px solid rgba(255, 255, 255, .75); border-radius: 999px;
	font: 400 11px/1 var(--icv-mono); letter-spacing: .04em; color: var(--icv-white); white-space: nowrap;
}
.ic-ev-chip--acid { border-color: var(--icv-acid); color: var(--icv-acid); }

.ic-ev-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 46px; padding: 0 32px; border-radius: 999px; border: 1px solid transparent;
	font: 400 13px/1 var(--icv-mono); letter-spacing: .18em; text-transform: uppercase; white-space: nowrap;
	cursor: pointer; transition: box-shadow .2s, border-color .2s, color .2s, background .2s; text-decoration: none !important;
}
.ic-ev-btn--acid { background: var(--icv-acid); border-color: var(--icv-acid); color: var(--icv-void) !important; box-shadow: var(--icv-glow); }
.ic-ev-btn--acid:hover { box-shadow: 0 0 36px rgba(0, 255, 136, .55), 0 0 0 6px rgba(0, 255, 136, .14); }
.ic-ev-btn--ghost { background: transparent; border-color: rgba(255, 255, 255, .8); color: var(--icv-white) !important; }
.ic-ev-btn--ghost:hover { border-color: var(--icv-acid); color: var(--icv-acid) !important; }
.ic-ev-btn--line { background: transparent; border-color: var(--icv-acid); color: var(--icv-acid) !important; }
.ic-ev-btn--line:hover { background: rgba(0, 255, 136, .08); }
.ic-ev-btn--sm { min-height: 36px; padding: 0 22px; font-size: 12px; }
.ic-ev-btn.is-disabled { opacity: .45; box-shadow: none; pointer-events: none; background: transparent; color: var(--icv-ash) !important; border-color: var(--icv-ash); }

.ic-ev-label { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--icv-ash); }
.ic-ev-tba { font-size: 13px; letter-spacing: .06em; color: rgba(187, 187, 187, .7); }
.ic-ev-empty { color: var(--icv-ash); font-size: 14px; letter-spacing: .04em; padding: 24px 0; }

/* ---------------------------------------------------------------- TIMETABLE */
.ic-ev-tl { --ic-hours: 7; position: relative; width: 100%; }
.ic-ev-tl__hours { position: relative; height: 18px; font-size: 10px; letter-spacing: .05em; color: rgba(187, 187, 187, .7); }
.ic-ev-tl__hours span { position: absolute; top: 0; left: var(--ic-x); transform: translateX(-50%); }
.ic-ev-tl__hours span:first-child { transform: none; }
.ic-ev-tl__hours span:last-child { transform: translateX(-100%); }
.ic-ev-tl__slots {
	list-style: none; padding: 10px 0 2px !important; margin: 0 !important;
	background-image: linear-gradient(to right, rgba(255, 255, 255, .09) 1px, transparent 1px);
	background-size: calc(100% / var(--ic-hours)) 100%;
	border-right: 1px solid rgba(255, 255, 255, .09);
}
.ic-ev-tl--plain .ic-ev-tl__slots { background: none; border: 0; }
.ic-ev-tl__slot {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	width: calc(var(--ic-w) - 2px); min-height: 32px; margin: 0 0 8px calc(var(--ic-l) + 1px) !important; padding: 0 12px;
	background: var(--icv-acid); color: var(--icv-void); border-radius: 2px;
	font-size: 13px; letter-spacing: .06em; overflow: hidden; list-style: none;
}
.ic-ev-tl__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; }
.ic-ev-tl__genre { font-size: 10px; letter-spacing: .06em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; opacity: .85; }
.ic-ev-tl__time { display: none; }
.ic-ev-tl__slot.is-tba { background: transparent; border: 1px dashed rgba(255, 255, 255, .8); color: var(--icv-white); }

/* ---------------------------------------------------------------- [ic_next_event] + single card */
.ic-ev-next {
	display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 48px; padding: 32px;
	border: 1px solid rgba(0, 255, 136, .28); border-radius: 20px;
	background: linear-gradient(180deg, rgba(14, 9, 16, .94), rgba(5, 4, 7, .94));
	box-shadow: inset 0 0 80px rgba(0, 255, 136, .03);
}
.ic-ev-next__body { display: flex; flex-direction: column; gap: 20px; min-width: 0; padding-top: 8px; }
.ic-ev-next__date { display: flex; align-items: flex-start; gap: 20px; }
.ic-ev-next__big { font-family: var(--icv-display); font-size: clamp(64px, 7.3vw, 104px); line-height: .85; letter-spacing: -.01em; color: var(--icv-acid); }
.ic-ev-next__when { display: flex; flex-direction: column; gap: 12px; padding-top: 6px; font-size: 17px; letter-spacing: .08em; }
.ic-ev-next__hrs { font-size: 14px; color: var(--icv-ash); }
.ic-ev-next__short { display: none; }
.ic-ev-next__title { font: 400 32px/1.15 var(--icv-mono) !important; letter-spacing: .08em !important; color: var(--icv-white); text-transform: none !important; }
.ic-ev-next__title a:hover { color: var(--icv-acid); }
.ic-ev-next__tt { display: flex; flex-direction: column; gap: 10px; margin-top: 28px; }
.ic-ev-next__also { font-size: 13px; letter-spacing: .05em; color: var(--icv-ash); }
.ic-ev-next__also a:hover { color: var(--icv-acid); }
.ic-ev-next__btns { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; }
.ic-ev-next--single .ic-ev-next__title { font-size: clamp(28px, 3.4vw, 44px) !important; }

/* flyer: imported art, or the halftone placeholder from the PDF */
.ic-ev-flyer {
	position: relative; isolation: isolate; aspect-ratio: 400 / 536; overflow: hidden;
	border-radius: 12px; border: 1px solid rgba(255, 255, 255, .12);
	background: radial-gradient(55% 40% at 50% 58%, rgba(200, 40, 140, .38), transparent 72%), #0a070b;
}
.ic-ev-flyer.has-image { background: #0a070b; }
.ic-ev-flyer__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ic-ev-flyer__dots { position: absolute; inset: 0; z-index: -1; }
.ic-ev-flyer__dots::before, .ic-ev-flyer__dots::after { content: ""; position: absolute; inset: 0; }
.ic-ev-flyer__dots::before {
	background: radial-gradient(circle, #ff2fa6 0 36%, transparent 40%) 0 0 / 12px 12px;
	-webkit-mask: radial-gradient(circle 120px at 45% 50%, #000 0 20%, rgba(0, 0, 0, .55) 55%, transparent 100%),
		radial-gradient(circle 100px at 72% 60%, #000 0 18%, rgba(0, 0, 0, .5) 55%, transparent 100%),
		radial-gradient(circle 90px at 38% 74%, #000 0 18%, rgba(0, 0, 0, .5) 55%, transparent 100%);
	mask: radial-gradient(circle 120px at 45% 50%, #000 0 20%, rgba(0, 0, 0, .55) 55%, transparent 100%),
		radial-gradient(circle 100px at 72% 60%, #000 0 18%, rgba(0, 0, 0, .5) 55%, transparent 100%),
		radial-gradient(circle 90px at 38% 74%, #000 0 18%, rgba(0, 0, 0, .5) 55%, transparent 100%);
}
.ic-ev-flyer__dots::after {
	background: radial-gradient(circle, var(--icv-acid) 0 32%, transparent 36%) 6px 6px / 12px 12px;
	-webkit-mask: radial-gradient(circle 55px at 36% 44%, #000 0 15%, transparent 100%),
		radial-gradient(circle 50px at 64% 52%, #000 0 15%, transparent 100%),
		radial-gradient(circle 45px at 30% 66%, #000 0 15%, transparent 100%);
	mask: radial-gradient(circle 55px at 36% 44%, #000 0 15%, transparent 100%),
		radial-gradient(circle 50px at 64% 52%, #000 0 15%, transparent 100%),
		radial-gradient(circle 45px at 30% 66%, #000 0 15%, transparent 100%);
}
.ic-ev-flyer { container-type: inline-size; }
.ic-ev-flyer__title {
	position: absolute; top: 28px; left: 24px; right: 24px;
	font: 400 min(48px, calc((100cqi - 48px) / (var(--ic-fl-n, 8) * .8)))/.98 var(--icv-display); letter-spacing: -.01em; color: var(--icv-white); text-transform: uppercase;
}
.ic-ev-flyer__pill {
	position: absolute; top: 18px; right: 16px; padding: 7px 12px; border-radius: 999px;
	background: rgba(0, 0, 0, .72); color: var(--icv-white) !important; font: 400 11px/1 var(--icv-mono); letter-spacing: .06em;
}
a.ic-ev-flyer__pill:hover { color: var(--icv-acid) !important; }
.ic-ev-flyer__meta { position: absolute; left: 24px; right: 24px; bottom: 26px; font-size: 11px; letter-spacing: .08em; color: var(--icv-ash); }

/* ---------------------------------------------------------------- [ic_events_list style="compact"] */
.ic-ev-lines { border-top: 1px solid var(--icv-line); }
.ic-ev-line {
	position: relative; display: grid; align-items: center; gap: 0 20px;
	grid-template-columns: 210px minmax(0, 1fr) 140px 200px 46px;
	padding: 26px 0; border-bottom: 1px solid var(--icv-line); transition: background .2s;
}
.ic-ev-line.is-first, .ic-ev-line:hover, .ic-ev-line:focus-within { background: rgba(0, 255, 136, .035); }
.ic-ev-line__date { display: flex; align-items: flex-start; gap: 14px; }
.ic-ev-line__day { font: 400 52px/.9 var(--icv-display); color: var(--icv-white); transition: color .2s; }
.ic-ev-line.is-first .ic-ev-line__day, .ic-ev-line:hover .ic-ev-line__day { color: var(--icv-acid); }
.ic-ev-line__mt { display: flex; flex-direction: column; gap: 8px; padding-top: 4px; font-size: 13px; letter-spacing: .06em; }
.ic-ev-line__wt { font-size: 12px; color: var(--icv-ash); }
.ic-ev-line__mob { display: none; }
.ic-ev-line__title { font: 400 22px/1.2 var(--icv-mono) !important; letter-spacing: .06em !important; color: var(--icv-white); text-transform: none !important; }
.ic-ev-line__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ic-ev-line__lineup { margin-top: 8px !important; font-size: 13px; letter-spacing: .04em; color: var(--icv-ash); }
.ic-ev-line__lineup.is-tba { color: rgba(187, 187, 187, .65); }
.ic-ev-line__floor { font-size: 13px; letter-spacing: .04em; color: var(--icv-ash); }
.ic-ev-line__go {
	display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .35); color: var(--icv-white); transition: .2s;
}
.ic-ev-line.is-first .ic-ev-line__go, .ic-ev-line:hover .ic-ev-line__go { border-color: var(--icv-acid); color: var(--icv-acid); }

/* ---------------------------------------------------------------- [ic_events_list style="full" filter="1"] */
.ic-ev-cal__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; margin-bottom: 64px; }
.ic-ev-filter { display: flex; flex-wrap: wrap; gap: 10px; }
.ic-ev-fchip {
	height: 40px; padding: 0 26px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .3);
	background: transparent; color: var(--icv-white); font: 400 13px/1 var(--icv-mono); letter-spacing: .08em; cursor: pointer; transition: .2s;
}
.ic-ev-fchip:hover { border-color: var(--icv-acid); }
.ic-ev-fchip.is-active { background: var(--icv-acid); border-color: var(--icv-acid); color: var(--icv-void); }
.ic-ev-cal__actions { display: flex; flex-wrap: wrap; gap: 8px 40px; }
.ic-ev-cal__actions a, .ic-ev-cal__actions button {
	padding: 4px 0; background: none; border: 0; color: var(--icv-ash); cursor: pointer;
	font: 400 12px/1.4 var(--icv-mono); letter-spacing: .08em;
}
.ic-ev-cal__actions a:hover, .ic-ev-cal__actions button:hover, .ic-ev-cal__actions [aria-pressed="true"] { color: var(--icv-acid); }
.ic-ev-cal__past { margin-bottom: 48px; padding-bottom: 24px; border-bottom: 1px dashed var(--icv-line); }
.ic-ev-cal__past .ic-ev-row { opacity: .72; }

.ic-ev-month { margin: 0 0 72px; }
.ic-ev-month__h {
	display: flex; align-items: center; gap: 40px; margin: 0 0 32px !important;
	font: 400 clamp(28px, 3vw, 40px)/1 var(--icv-display) !important; letter-spacing: -.01em; text-transform: uppercase;
	color: transparent !important; -webkit-text-stroke: 1px rgba(255, 255, 255, .9);
}
.ic-ev-month__h::after { content: ""; flex: 1; height: 1px; background: rgba(255, 255, 255, .14); }

.ic-ev-row {
	display: grid; grid-template-columns: 300px minmax(0, 1fr) auto;
	grid-template-areas: "date main cta" ". tl tl"; gap: 24px 0;
	margin-bottom: 20px; padding: 24px 30px 24px 0; overflow: hidden;
	background: rgba(14, 9, 16, .88); border: 1px solid rgba(255, 255, 255, .07); border-radius: 16px;
}
.ic-ev-row__date { grid-area: date; display: flex; align-items: flex-start; gap: 12px; padding-left: 34px; border-left: 4px solid var(--icv-acid); align-self: start; }
.ic-ev-row__day { font: 400 64px/.86 var(--icv-display); color: var(--icv-white); }
.ic-ev-row__mt { display: flex; flex-direction: column; gap: 12px; padding-top: 2px; font-size: 13px; letter-spacing: .08em; }
.ic-ev-row__mw { color: var(--icv-acid); }
.ic-ev-row__time { color: var(--icv-white); opacity: .85; }
.ic-ev-row__main { grid-area: main; display: flex; flex-direction: column; gap: 12px; min-width: 0; padding-top: 2px; }
.ic-ev-row__title { font: 400 24px/1.2 var(--icv-mono) !important; letter-spacing: .1em !important; color: var(--icv-white); text-transform: none !important; }
.ic-ev-row__title a:hover { color: var(--icv-acid); }
.ic-ev-row__cta { grid-area: cta; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: flex-start; gap: 10px; padding-left: 20px; }
.ic-ev-row__tl { grid-area: tl; min-width: 0; }

/* ---------------------------------------------------------------- [ic_ticker] */
.ic-ev-ticker { display: block; width: 100%; overflow: hidden; white-space: nowrap; }
.ic-ev-ticker__track { display: inline-flex; animation: ic-ev-marquee 42s linear infinite; will-change: transform; }
.ic-ev-ticker:hover .ic-ev-ticker__track { animation-play-state: paused; }
.ic-ev-ticker__set { display: inline-flex; flex: none; }
.ic-ev-ticker__item { display: inline-flex; align-items: center; padding-right: 44px; font-family: var(--icv-mono); letter-spacing: .12em; color: inherit; }
.ic-ev-ticker__item::before { content: ""; flex: none; width: 8px; height: 8px; margin-right: 14px; border-radius: 50%; background: currentColor; }
@keyframes ic-ev-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ic-ev-ticker__track { animation: none; } }

/* ---------------------------------------------------------------- /event/<slug>/ */
.ic-ev-main { padding-left: clamp(16px, 4vw, 40px); padding-right: clamp(16px, 4vw, 40px); }
.ic-ev-single { max-width: 1200px; margin: 0 auto; padding: 48px 0 120px; display: flex; flex-direction: column; gap: 40px; }
.ic-ev-single__back a { font-size: 13px; letter-spacing: .06em; color: var(--icv-acid); }
.ic-ev-single__text { max-width: 760px; color: var(--icv-ash); font-size: 16px; line-height: 1.7; }
.ic-ev-single__text p + p { margin-top: 1em; }
.ic-ev-res {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px 40px; padding: 32px;
	border: 1px solid var(--icv-aub); border-radius: 20px; background: var(--icv-night);
}
.ic-ev-res__head { display: flex; flex-direction: column; gap: 10px; }
.ic-ev-res__lead { font-size: 14px; line-height: 1.6; letter-spacing: .03em; color: var(--icv-ash); }
.ic-ev-res__left { font-size: 13px; letter-spacing: .06em; color: var(--icv-acid); }
.ic-ev-res__form { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.ic-ev-res__qty { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; letter-spacing: .06em; color: var(--icv-ash); }
.ic-ev-res__qty select {
	height: 46px; padding: 0 34px 0 18px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .3);
	background: var(--icv-void); color: var(--icv-white); font: 400 15px/1 var(--icv-mono);
}

/* ---------------------------------------------------------------- tablet */
@media (max-width: 1100px) {
	.ic-ev-line { grid-template-columns: 180px minmax(0, 1fr) 120px 46px; }
	.ic-ev-line .ic-ev-chips { display: none; }
	.ic-ev-row { grid-template-columns: 220px minmax(0, 1fr) auto; }
	.ic-ev-row__date { padding-left: 24px; }
	.ic-ev-next { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 32px; padding: 24px; }
}

@media (max-width: 900px) {
	.ic-ev-row { grid-template-columns: minmax(0, 1fr); grid-template-areas: "date" "main" "tl" "cta"; gap: 18px; padding: 20px 20px 22px 0; }
	.ic-ev-row__date { padding-left: 20px; }
	.ic-ev-row__day { font-size: 52px; }
	.ic-ev-row__main, .ic-ev-row__tl, .ic-ev-row__cta { padding-left: 24px; }
	.ic-ev-row__cta { justify-content: flex-start; }
	.ic-ev-row__title { font-size: 20px !important; }
}

/* ---------------------------------------------------------------- phone (PDF 05, 390 px) */
@media (max-width: 720px) {
	.ic-ev-tl__hours { display: none; }
	.ic-ev-tl__slots { background: none; border: 0; padding: 0 !important; border-top: 1px solid rgba(255, 255, 255, .12); }
	.ic-ev-tl__slot {
		width: auto; margin: 0 !important; min-height: 0; padding: 16px 0; border-radius: 0;
		background: none; color: var(--icv-white); border-bottom: 1px solid rgba(255, 255, 255, .12); font-size: 17px;
	}
	.ic-ev-tl__slot.is-tba { border: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); color: var(--icv-ash); }
	.ic-ev-tl__genre { display: none; }
	.ic-ev-tl__time { display: block; flex: none; color: var(--icv-acid); font-size: 14px; letter-spacing: .06em; }

	.ic-ev-next { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 0; border: 0; background: none; box-shadow: none; }
	.ic-ev-flyer { aspect-ratio: 342 / 300; }
	.ic-ev-flyer.has-image { aspect-ratio: 400 / 536; }
	.ic-ev-flyer__title { top: 32px; }
	.ic-ev-next__body { gap: 18px; padding-top: 0; }
	.ic-ev-next__date { gap: 10px; }
	.ic-ev-next__big { font-size: 56px; }
	.ic-ev-next__wd, .ic-ev-next__hrs { display: none; }
	.ic-ev-next__short { display: block; font-size: 13px; }
	.ic-ev-next__title { font-size: 22px !important; }
	.ic-ev-next .ic-ev-chip:not(.ic-ev-chip--acid) { display: none; }
	.ic-ev-next .ic-ev-chip--acid { height: 30px; padding: 0 22px; font-size: 13px; }
	.ic-ev-next__tt { margin-top: 12px; }
	.ic-ev-next__tt .ic-ev-label { display: none; }
	.ic-ev-next__btns .ic-ev-btn { flex: 1 1 100%; }

	.ic-ev-line {
		grid-template-columns: auto minmax(0, 1fr) 28px; grid-template-areas: "day mt go" "day main go";
		gap: 6px 16px; padding: 20px 0;
	}
	.ic-ev-line.is-first { background: none; }
	.ic-ev-line__date { display: contents; }
	.ic-ev-line__day { grid-area: day; font-size: 46px; align-self: center; }
	.ic-ev-line.is-first .ic-ev-line__day { color: var(--icv-white); }
	.ic-ev-line__mt { grid-area: mt; padding: 0; }
	.ic-ev-line__mon { color: var(--icv-acid); font-size: 12px; }
	.ic-ev-line__mob { display: inline; }
	.ic-ev-line__wt, .ic-ev-line__lineup, .ic-ev-line__floor, .ic-ev-line .ic-ev-chips { display: none; }
	.ic-ev-line__main { grid-area: main; min-width: 0; }
	.ic-ev-line__title { font-size: 17px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.ic-ev-line__go { grid-area: go; width: 28px; height: 28px; border: 0; }
	.ic-ev-line.is-first .ic-ev-line__go { color: var(--icv-white); }

	.ic-ev-cal__bar { margin-bottom: 40px; }
	.ic-ev-fchip { height: 36px; padding: 0 16px; font-size: 12px; }
	.ic-ev-cal__actions { gap: 8px 20px; }
	.ic-ev-month { margin-bottom: 48px; }
	.ic-ev-month__h { gap: 16px; margin-bottom: 20px !important; }
	.ic-ev-row { padding-right: 16px; border-radius: 14px; }
	.ic-ev-row__date { padding-left: 16px; }
	.ic-ev-row__main, .ic-ev-row__tl, .ic-ev-row__cta { padding-left: 20px; }
	.ic-ev-row__day { font-size: 44px; }
	.ic-ev-row__cta .ic-ev-btn { flex: 1 1 auto; }

	.ic-ev-single { padding: 24px 0 64px; gap: 28px; }
	.ic-ev-res { grid-template-columns: minmax(0, 1fr); padding: 22px; }
	.ic-ev-res__form .ic-ev-btn { flex: 1 1 auto; }
}

/* ================================================================ WooCommerce: cart / checkout / account, dark */
.woocommerce, .woocommerce-page .woocommerce { color: var(--icv-white); font-family: var(--icv-mono); }
.woocommerce a:not(.button):not(.ic-ev-btn) { color: var(--icv-acid); }
.woocommerce h2, .woocommerce h3, .woocommerce-checkout h3, .woocommerce-column__title, .woocommerce-order-details__title {
	font-family: var(--icv-display); text-transform: uppercase; letter-spacing: -.01em; color: var(--icv-white);
}
.woocommerce form .form-row label, .woocommerce-page form .form-row label { color: var(--icv-ash); font-size: 13px; letter-spacing: .06em; }
.woocommerce form .form-row .required { color: var(--icv-acid) !important; text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .quantity .qty, .woocommerce-page form .form-row input.input-text {
	background: var(--icv-night); color: var(--icv-white); border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 10px; padding: 12px 14px; font: 400 15px/1.3 var(--icv-mono);
}
.woocommerce form .form-row input.input-text:focus, .woocommerce .quantity .qty:focus {
	outline: none; border-color: var(--icv-acid); box-shadow: 0 0 0 3px rgba(0, 255, 136, .15);
}
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--icv-alarm); }
.woocommerce table.shop_table {
	border: 1px solid var(--icv-line); border-radius: 16px; border-collapse: separate; background: var(--icv-night); color: var(--icv-white);
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td, .woocommerce-page table.shop_table th, .woocommerce-page table.shop_table td {
	border-color: rgba(255, 255, 255, .08) !important; color: var(--icv-white); background: transparent;
}
.woocommerce table.shop_table .ic-res-when, .woocommerce .wc-item-meta { color: var(--icv-ash); font-size: 12px; }
.woocommerce .wc-item-meta strong, .woocommerce .wc-item-meta-label { color: var(--icv-acid); }
.woocommerce #payment, .woocommerce-page #payment { background: var(--icv-night); border-radius: 16px; color: var(--icv-white); }
.woocommerce #payment div.payment_box { background: var(--icv-plum); color: var(--icv-white); }
.woocommerce #payment div.payment_box::before { border-bottom-color: var(--icv-plum); }
.woocommerce #payment ul.payment_methods { border-bottom-color: var(--icv-line); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #place_order, .woocommerce-page #place_order {
	background: var(--icv-acid) !important; color: var(--icv-void) !important; border: 0; border-radius: 999px;
	padding: 15px 30px; font: 400 13px/1 var(--icv-mono); letter-spacing: .16em; text-transform: uppercase; box-shadow: var(--icv-glow);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce #place_order:hover { box-shadow: 0 0 36px rgba(0, 255, 136, .55), 0 0 0 6px rgba(0, 255, 136, .14); }
.woocommerce a.remove { color: var(--icv-alarm) !important; }
.woocommerce a.remove:hover { background: var(--icv-alarm); color: var(--icv-void) !important; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice, .wc-block-components-notice-banner {
	background: var(--icv-night) !important; color: var(--icv-white) !important; border: 1px solid var(--icv-aub) !important;
	border-top: 3px solid var(--icv-acid) !important; border-radius: 12px; font-family: var(--icv-mono);
}
.woocommerce-error { border-top-color: var(--icv-alarm) !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--icv-acid); }
.woocommerce-error::before { color: var(--icv-alarm); }
.woocommerce-thankyou-order-received, .woocommerce-notice--success { color: var(--icv-acid) !important; font-size: 18px; }
.woocommerce ul.order_details { color: var(--icv-ash); }
.woocommerce ul.order_details li { border-color: var(--icv-line); }
.woocommerce ul.order_details li strong { color: var(--icv-white); }
.woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper { color: var(--icv-ash); font-size: 13px; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
.woocommerce-MyAccount-navigation li a { display: block; padding: 10px 0; border-bottom: 1px solid var(--icv-line); color: var(--icv-white) !important; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--icv-acid) !important; }
.woocommerce-customer-details address { border-color: var(--icv-line) !important; color: var(--icv-ash); }
.woocommerce .cart-empty, .woocommerce .return-to-shop { color: var(--icv-ash); }

/* reservation codes (thank-you page + view order) */
.ic-res-box { margin: 24px 0 40px; padding: 28px; border: 1px solid rgba(0, 255, 136, .45); border-radius: 20px; background: var(--icv-night); color: var(--icv-white); font-family: var(--icv-mono); box-shadow: inset 0 0 60px rgba(0, 255, 136, .04); }
.ic-res-box__h { margin: 0 0 8px !important; font: 400 clamp(24px, 3vw, 36px)/1 var(--icv-display) !important; text-transform: uppercase; color: var(--icv-white) !important; }
.ic-res-box__lead { margin: 0 0 16px; font-size: 14px; line-height: 1.6; color: var(--icv-ash); }
.ic-res-box__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; padding: 18px 0; border-top: 1px solid var(--icv-line); }
.ic-res-box__ev { margin: 0; font-size: 18px; letter-spacing: .06em; }
.ic-res-box__ev a { color: var(--icv-white) !important; }
.ic-res-box__when { margin: 4px 0 0; font-size: 13px; color: var(--icv-ash); }
.ic-res-box__code { margin: 0; font-size: clamp(24px, 4vw, 34px); letter-spacing: .14em; color: var(--icv-acid); white-space: nowrap; }
.ic-res-box__foot { margin: 8px 0 0; font-size: 12px; letter-spacing: .06em; color: var(--icv-ash); }

@media (max-width: 720px) {
	.woocommerce form .form-row-first, .woocommerce form .form-row-last, .woocommerce-page form .form-row-first, .woocommerce-page form .form-row-last { width: 100% !important; float: none !important; }
	.ic-res-box { padding: 20px; }
}
