/* EP Events — Frontend CSS
 *
 * Sitewide styling for every event-related public surface. Typography
 * inherits from the host theme (no font is enqueued here — Bunny Fonts via
 * `ep-bunny-fonts` is the only allowed font source). No `!important`.
 *
 * Accessibility: WCAG 2.1 AA contrast on text/background, focus states
 * visible, prefers-reduced-motion honoured, print-friendly tickets.
 */

/* ── Design tokens ─────────────────────────────────────────────── */

.ep-events-listing,
.ep-events-hero,
.ep-events-register,
.ep-events-speakers,
.ep-events-sponsors,
.ep-events-schedule,
.ep-events-location,
.ep-events-tickets-mine,
.ep-events-checkin,
.ep-events-calendar,
.ep-events-countdown,
.ep-events-submit,
.ep-events-credits,
.ep-events-speaker-portal,
.ep-events-recording,
.ep-events-gallery,
.ep-events-event-preview {
	--ep-events-accent: var(--theme-accent, #b8a88a);
	--ep-events-accent-dark: var(--theme-accent-dark, #8a7960);
	--ep-events-text: var(--theme-text, #3a352f);
	--ep-events-text-soft: var(--theme-text-soft, #6a6258);
	--ep-events-bg: var(--theme-bg, #fafaf8);
	--ep-events-bg-card: var(--theme-card-bg, #ffffff);
	--ep-events-border: var(--theme-border, #e8e4de);
	--ep-events-success: #5a8a6a;
	--ep-events-warning: #c88a3a;
	--ep-events-error: #b34a3a;
	--ep-events-radius: 8px;
	--ep-events-radius-sm: 4px;
	--ep-events-shadow-sm: 0 1px 2px rgba(58, 53, 47, 0.06);
	--ep-events-shadow: 0 4px 12px rgba(58, 53, 47, 0.08);
	color: var(--ep-events-text);
	margin: 1.5rem 0;
}

.ep-events-empty {
	padding: 2rem;
	text-align: center;
	background: var(--ep-events-bg);
	border: 1px dashed var(--ep-events-border);
	border-radius: var(--ep-events-radius);
	color: var(--ep-events-text-soft);
}

/* ── Badges ────────────────────────────────────────────────────── */

.ep-events-badge {
	display: inline-block;
	padding: 0.2rem 0.6rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 500;
	background: var(--ep-events-bg);
	border: 1px solid var(--ep-events-border);
	color: var(--ep-events-text-soft);
	line-height: 1.3;
}
.ep-events-badge--mode      { background: #eaf0f6; border-color: #c5d4e3; color: #2c4a6c; }
.ep-events-badge--category  { background: #f5eee0; border-color: #d8c498; color: #6a4e1c; }
.ep-events-badge--soldout   { background: #fadcd6; border-color: #e6a99c; color: #8a2e1c; }
.ep-events-badge--limited   { background: #fdf2c0; border-color: #e5cf66; color: #6a4f0a; }
.ep-events-badge--cancelled { background: #e8e8e8; border-color: #ccc; color: #555; text-decoration: line-through; }
.ep-events-badge--past      { background: #f0ece4; border-color: #cdc6b5; color: #5a5247; }

/* ── Card listing ──────────────────────────────────────────────── */

.ep-events-card {
	background: var(--ep-events-bg-card);
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius);
	overflow: hidden;
	box-shadow: var(--ep-events-shadow-sm);
	display: flex;
	flex-direction: column;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.ep-events-card:hover    { transform: translateY(-2px); box-shadow: var(--ep-events-shadow); }
.ep-events-card:focus-within { outline: 2px solid var(--ep-events-accent); outline-offset: 3px; }
.ep-events-card__image-link { display: block; }
.ep-events-card__image   { width: 100%; height: 200px; object-fit: cover; display: block; }
.ep-events-card__body    { padding: 1.25rem; }
.ep-events-card__badges  { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.ep-events-card__title   { margin: 0 0 0.5rem; font-size: 1.25rem; line-height: 1.3; }
.ep-events-card__title a { color: var(--ep-events-text); text-decoration: none; }
.ep-events-card__title a:hover { color: var(--ep-events-accent-dark); }
.ep-events-card__subtitle { margin: 0 0 0.5rem; font-size: 0.9rem; color: var(--ep-events-text-soft); }
.ep-events-card__summary  { margin: 0; font-size: 0.95rem; line-height: 1.5; color: var(--ep-events-text); }

/* ── Hero ──────────────────────────────────────────────────────── */

.ep-events-hero {
	background: var(--ep-events-bg-card);
	border-radius: var(--ep-events-radius);
	overflow: hidden;
	box-shadow: var(--ep-events-shadow);
}
.ep-events-hero__image     { width: 100%; aspect-ratio: 21/9; overflow: hidden; }
.ep-events-hero__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ep-events-hero__content   { padding: 2rem; }
.ep-events-hero__title     { margin: 0.5rem 0 1rem; font-size: 2rem; line-height: 1.2; }
.ep-events-hero__facts     { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem 1.5rem; margin: 0 0 1.5rem; font-size: 1rem; }
.ep-events-hero__fact-label { font-weight: 600; color: var(--ep-events-text-soft); }
.ep-events-hero__fact-value { margin: 0; }
.ep-events-hero__counter    { margin: 0 0 1.5rem; color: var(--ep-events-text-soft); font-size: 0.95rem; }
.ep-events-hero__counter-value { font-weight: 600; color: var(--ep-events-text); }
.ep-events-hero__cta {
	display: inline-block;
	padding: 0.85rem 1.75rem;
	background: var(--ep-events-cta-bg, #6e604a);
	color: #fff;
	border-radius: var(--ep-events-radius-sm);
	font-weight: 600;
	text-decoration: none;
	transition: background 0.15s ease;
}
.ep-events-hero__cta:hover         { background: var(--ep-events-cta-bg-hover, #5c4f3a); color: #fff; }
.ep-events-hero__cta--waitlist     { background: var(--ep-events-cta-warning-bg, #a76d2a); }
.ep-events-hero__cta--waitlist:hover { background: var(--ep-events-cta-warning-bg-hover, #8a571a); }

/* ── Calendar grid (month view) ────────────────────────────────── */

.ep-events-calendar {
	background: var(--ep-events-bg-card);
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius);
	padding: 1rem;
}
.ep-events-calendar__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1rem;
}
.ep-events-calendar__title { margin: 0; font-size: 1.25rem; }
.ep-events-calendar__nav {
	background: transparent;
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius-sm);
	width: 36px;
	height: 36px;
	font-size: 1.1rem;
	cursor: pointer;
	color: var(--ep-events-text);
}
.ep-events-calendar__nav:hover { background: var(--ep-events-bg); }
.ep-events-calendar__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 1px;
	background: var(--ep-events-border);
}
.ep-events-calendar__dow {
	background: var(--ep-events-bg);
	padding: 0.5rem;
	text-align: center;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--ep-events-text-soft);
}
.ep-events-calendar__cell {
	background: var(--ep-events-bg-card);
	min-height: 90px;
	padding: 0.4rem;
	font-size: 0.85rem;
}
.ep-events-calendar__cell--blank { background: var(--ep-events-bg); }
.ep-events-calendar__cell--today { background: #fdf6e6; }
.ep-events-calendar__daynum      { display: block; font-weight: 600; margin-bottom: 0.25rem; }
.ep-events-calendar__events      { list-style: none; padding: 0; margin: 0; }
.ep-events-calendar__event a {
	display: block;
	background: var(--ep-events-accent);
	color: #fff;
	padding: 0.15rem 0.4rem;
	border-radius: var(--ep-events-radius-sm);
	font-size: 0.75rem;
	text-decoration: none;
	margin-bottom: 0.15rem;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

/* ── Agenda ────────────────────────────────────────────────────── */

.ep-events-agenda { list-style: none; padding: 0; margin: 0; }
.ep-events-agenda__day-header {
	font-weight: 600;
	font-size: 0.9rem;
	color: var(--ep-events-text-soft);
	margin: 1.5rem 0 0.5rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--ep-events-border);
}
.ep-events-agenda__item { padding: 0.5rem 0; }
.ep-events-agenda__link {
	display: flex;
	gap: 1rem;
	align-items: baseline;
	text-decoration: none;
	color: var(--ep-events-text);
	padding: 0.5rem;
	border-radius: var(--ep-events-radius-sm);
	transition: background 0.15s ease;
}
.ep-events-agenda__link:hover { background: var(--ep-events-bg); }
.ep-events-agenda__time { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--ep-events-accent-dark); min-width: 4rem; }

/* ── Register form ─────────────────────────────────────────────── */

.ep-events-register {
	background: var(--ep-events-bg-card);
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius);
	padding: 2rem;
}
.ep-events-register__heading { margin: 0 0 1.5rem; font-size: 1.5rem; }
.ep-events-register__legend  { font-weight: 600; padding: 0; margin-bottom: 0.75rem; }
.ep-events-register__form > fieldset {
	border: none;
	padding: 0;
	margin: 0 0 2rem;
}

/* Ticket list */
.ep-events-register__ticket {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem;
	background: var(--ep-events-bg);
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius-sm);
	margin-bottom: 0.75rem;
}
.ep-events-register__ticket--soldout { opacity: 0.55; }
.ep-events-register__ticket-name { margin: 0 0 0.25rem; font-size: 1.05rem; display: flex; gap: 0.5rem; align-items: center; }
.ep-events-register__ticket-desc { margin: 0 0 0.25rem; font-size: 0.9rem; color: var(--ep-events-text-soft); }
.ep-events-register__ticket-price { margin: 0; font-weight: 600; font-size: 1.1rem; color: var(--ep-events-accent-dark); }
.ep-events-register__qty-label   { display: block; font-size: 0.8rem; color: var(--ep-events-text-soft); margin-bottom: 0.25rem; }
.ep-events-register__qty {
	width: 4.5rem;
	padding: 0.5rem;
	font-size: 1rem;
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius-sm);
	text-align: center;
}

/* Buyer fields */
.ep-events-register__field { display: block; margin-bottom: 1rem; }
.ep-events-register__field > span { display: block; margin-bottom: 0.4rem; font-size: 0.9rem; font-weight: 500; }
.ep-events-register__input,
.ep-events-register__field input,
.ep-events-register__field textarea,
.ep-events-register__field select {
	width: 100%;
	padding: 0.65rem 0.8rem;
	font-size: 1rem;
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius-sm);
	background: var(--ep-events-bg-card);
	color: var(--ep-events-text);
}
.ep-events-register__input:focus,
.ep-events-register__field input:focus,
.ep-events-register__field textarea:focus {
	outline: 2px solid var(--ep-events-accent);
	outline-offset: 1px;
}

/* Promo row */
.ep-events-register__promo-row { display: flex; gap: 0.5rem; }
.ep-events-register__promo-row input { flex: 1; }
.ep-events-register__promo-apply {
	padding: 0.65rem 1.25rem;
	background: var(--ep-events-bg);
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius-sm);
	cursor: pointer;
}
.ep-events-register__promo-apply:hover { background: var(--ep-events-border); }
.ep-events-register__promo-status { margin: 0.5rem 0 0; font-size: 0.9rem; }
.ep-events-register__promo-status[data-status="success"] { color: var(--ep-events-success); }
.ep-events-register__promo-status[data-status="error"]   { color: var(--ep-events-error); }

/* Consents */
.ep-events-register__check { display: flex; gap: 0.6rem; align-items: flex-start; margin-bottom: 0.6rem; font-size: 0.95rem; line-height: 1.4; }
.ep-events-register__check input { margin-top: 0.2rem; }

/* Summary */
.ep-events-register__summary {
	padding: 1rem;
	background: var(--ep-events-bg);
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius-sm);
	margin-bottom: 1rem;
}
.ep-events-register__summary-table { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 1rem; margin: 0; }
.ep-events-register__summary-table dt { color: var(--ep-events-text-soft); margin: 0; }
.ep-events-register__summary-table dd { margin: 0; font-variant-numeric: tabular-nums; }
.ep-events-register__summary-total { font-weight: 700; font-size: 1.1rem; color: var(--ep-events-text); padding-top: 0.5rem; border-top: 1px solid var(--ep-events-border); margin-top: 0.5rem; }

/* Submit */
.ep-events-register__submit {
	width: 100%;
	padding: 1rem;
	background: var(--ep-events-accent);
	color: #fff;
	border: none;
	border-radius: var(--ep-events-radius-sm);
	font-size: 1.05rem;
	font-weight: 600;
	cursor: pointer;
}
.ep-events-register__submit:hover { background: var(--ep-events-accent-dark); }
.ep-events-register__submit:disabled { opacity: 0.6; cursor: not-allowed; }

/* ── Speakers ──────────────────────────────────────────────────── */

.ep-events-speakers__heading { margin: 0 0 1.5rem; font-size: 1.5rem; }
.ep-events-speakers__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ep-events-speaker { display: flex; gap: 1rem; }
.ep-events-speaker__photo { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.ep-events-speaker__name  { margin: 0 0 0.25rem; font-size: 1.1rem; }
.ep-events-speaker__role  { font-size: 0.75rem; padding: 0.1rem 0.4rem; background: var(--ep-events-bg); border-radius: 4px; color: var(--ep-events-text-soft); font-weight: 500; }
.ep-events-speaker__title { margin: 0 0 0.5rem; font-size: 0.9rem; color: var(--ep-events-text-soft); }
.ep-events-speaker__bio   { margin: 0 0 0.5rem; font-size: 0.95rem; line-height: 1.5; }
.ep-events-speaker__links { margin: 0; font-size: 0.85rem; }

/* ── Sponsors ──────────────────────────────────────────────────── */

.ep-events-sponsors__heading    { margin: 0 0 1.5rem; font-size: 1.5rem; }
.ep-events-sponsors__tier       { margin-bottom: 2rem; }
.ep-events-sponsors__tier-label { margin: 0 0 0.75rem; font-size: 0.9rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ep-events-text-soft); }
.ep-events-sponsors__list       { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; }
.ep-events-sponsor__logo        { max-height: 80px; max-width: 200px; }
.ep-events-sponsors__tier--gold     .ep-events-sponsor__logo { max-height: 120px; }
.ep-events-sponsors__tier--platinum .ep-events-sponsor__logo { max-height: 140px; }
.ep-events-sponsors__tier--silver   .ep-events-sponsor__logo { max-height: 80px; }
.ep-events-sponsors__tier--bronze   .ep-events-sponsor__logo { max-height: 60px; }

/* ── Schedule ──────────────────────────────────────────────────── */

.ep-events-schedule__heading { margin: 0 0 1rem; font-size: 1.5rem; }
.ep-events-schedule__list    { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem 1.5rem; margin: 0; }
.ep-events-schedule__list dt { font-weight: 600; color: var(--ep-events-text-soft); }
.ep-events-schedule__list dd { margin: 0; }

/* ── Location ──────────────────────────────────────────────────── */

.ep-events-location__heading        { margin: 0 0 1rem; font-size: 1.5rem; }
.ep-events-location__address        { font-style: normal; margin: 0 0 1rem; line-height: 1.5; }
.ep-events-location__access         { margin: 1rem 0; }
.ep-events-location__access-label   { margin: 0 0 0.5rem; font-size: 0.9rem; font-weight: 600; color: var(--ep-events-text-soft); }
.ep-events-location__access-list    { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.ep-events-location__access-flag    { display: inline-block; padding: 0.25rem 0.6rem; border: 1px solid var(--ep-events-success); border-radius: 999px; font-size: 0.8rem; color: var(--ep-events-success); }
.ep-events-location__map            { margin-top: 1rem; }
.ep-events-location__map-attribution { margin: 0.25rem 0 0; color: var(--ep-events-text-soft); }

/* ── My tickets / attendee dashboard ───────────────────────────── */

.ep-events-tickets-mine__heading { margin: 0 0 0.5rem; font-size: 1.5rem; }
.ep-events-tickets-mine__event   { margin: 0 0 0.5rem; color: var(--ep-events-text-soft); }
.ep-events-tickets-mine__status  { margin: 0 0 1.5rem; }
.ep-events-tickets-mine__list    { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; gap: 1rem; }
.ep-events-tickets-mine__ticket  { display: flex; gap: 1.5rem; padding: 1rem; border: 1px solid var(--ep-events-border); border-radius: var(--ep-events-radius); background: var(--ep-events-bg-card); }
.ep-events-tickets-mine__qr      { width: 120px; height: 120px; display: flex; align-items: center; justify-content: center; background: var(--ep-events-bg); border-radius: var(--ep-events-radius-sm); font-family: monospace; font-size: 0.7rem; word-break: break-all; padding: 0.25rem; }
.ep-events-tickets-mine__details { flex: 1; }
.ep-events-tickets-mine__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.ep-events-tickets-mine__action  { display: inline-block; padding: 0.6rem 1rem; background: var(--ep-events-bg); border: 1px solid var(--ep-events-border); border-radius: var(--ep-events-radius-sm); text-decoration: none; color: var(--ep-events-text); }
.ep-events-tickets-mine__action:hover { background: var(--ep-events-border); }
.ep-events-tickets-mine__action--danger { color: var(--ep-events-error); border-color: var(--ep-events-error); }
.ep-events-tickets-mine__action--danger:hover { background: var(--ep-events-error); color: #fff; }

/* ── Check-in ──────────────────────────────────────────────────── */

.ep-events-checkin__heading  { margin: 0 0 0.5rem; font-size: 1.5rem; }
.ep-events-checkin__counter  { margin: 0 0 1.5rem; font-size: 1.2rem; }
.ep-events-checkin__scanner  { margin-bottom: 2rem; }
.ep-events-checkin__scan-btn { padding: 0.85rem 1.5rem; background: var(--ep-events-accent); color: #fff; border: none; border-radius: var(--ep-events-radius-sm); font-weight: 600; cursor: pointer; }
.ep-events-checkin__scan-btn:disabled { background: var(--ep-events-text-soft); cursor: default; }
.ep-events-checkin__video    { width: 100%; max-width: 400px; border-radius: var(--ep-events-radius); background: #000; margin-top: 1rem; aspect-ratio: 4/3; }
.ep-events-checkin__last-result { margin-top: 0.75rem; font-weight: 600; font-size: 1.1rem; }
.ep-events-checkin__manual   { display: flex; flex-direction: column; gap: 0.5rem; }
.ep-events-checkin__manual label { font-size: 0.9rem; font-weight: 500; color: var(--ep-events-text-soft); }
.ep-events-checkin__manual input { padding: 0.65rem 0.8rem; font-size: 1rem; border: 1px solid var(--ep-events-border); border-radius: var(--ep-events-radius-sm); }
.ep-events-checkin__results  { list-style: none; padding: 0; margin: 0.5rem 0 0; display: grid; gap: 0.4rem; }
.ep-events-checkin__result button { width: 100%; text-align: left; padding: 0.65rem 0.8rem; background: var(--ep-events-bg); border: 1px solid var(--ep-events-border); border-radius: var(--ep-events-radius-sm); cursor: pointer; font: inherit; }
.ep-events-checkin__result button:hover { background: var(--ep-events-border); }

/* ── Check-in offline mode (online/offline pill + queue counter) ── */

.ep-events-checkin__status {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1rem;
	font-size: 0.85rem;
	flex-wrap: wrap;
}
.ep-events-checkin__online {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.25rem 0.6rem;
	border-radius: 999px;
	font-weight: 600;
	letter-spacing: 0.02em;
}
.ep-events-checkin__online[data-state="online"] {
	background: #d8efdc;
	color: #1e8449;
}
.ep-events-checkin__online[data-state="offline"] {
	background: #fde4d0;
	color: #a04a14;
}
.ep-events-checkin__online::before {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 999px;
	background: currentColor;
}
.ep-events-checkin__queue {
	padding: 0.25rem 0.6rem;
	border-radius: 999px;
	background: var(--ep-events-bg);
	border: 1px solid var(--ep-events-border);
	font-weight: 500;
}
.ep-events-checkin__sync {
	padding: 0.25rem 0.7rem;
	border-radius: var(--ep-events-radius-sm);
	background: var(--ep-events-cta-bg, #6e604a);
	color: #fff;
	border: none;
	font-weight: 600;
	cursor: pointer;
	font-size: 0.85rem;
}
.ep-events-checkin__sync:disabled {
	opacity: 0.6;
	cursor: default;
}

/* ── Admin-only empty-event recovery panel ─────────────────────── */
.ep-events-recovery {
	position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%);
	z-index: 99999; max-width: 480px; padding: 14px 18px;
	background: #fff7e0; border: 1px solid #d4b968;
	border-radius: 8px;
	box-shadow: 0 6px 20px rgba(0,0,0,0.18);
	font-family: inherit; font-size: 14px; line-height: 1.5;
}
.ep-events-recovery__inner > * { margin: 0; }
.ep-events-recovery strong { display: block; margin-bottom: 4px; }
.ep-events-recovery p { color: #5a4a30; margin: 0 0 10px; }
.ep-events-recovery__btn {
	padding: 0.55rem 1rem; background: #6e604a; color: #fff;
	border: none; border-radius: 6px; font-weight: 600; cursor: pointer;
}
.ep-events-recovery__btn:disabled { opacity: 0.6; cursor: default; }
.ep-events-recovery__hint { display: block; margin-top: 8px; color: #8a7960; font-size: 12px; }

/* Template-broken variant — a heavier failure (every event on the
   site is blank, not just this one) so the panel reads with more
   urgency: rose-tinted background, deeper border, darker action. */
.ep-events-recovery--template {
	background: #fde8e4;
	border-color: #c48472;
}
.ep-events-recovery--template p { color: #6b3a2e; }
.ep-events-recovery--template .ep-events-recovery__btn { background: #8a3f2e; }
.ep-events-recovery--template .ep-events-recovery__hint { color: #966555; }

/* ── Countdown ─────────────────────────────────────────────────── */

.ep-events-countdown { display: inline-flex; gap: 0.75rem; align-items: baseline; font-variant-numeric: tabular-nums; font-size: 1.5rem; font-weight: 600; color: var(--ep-events-accent-dark); }
.ep-events-countdown--done { color: var(--ep-events-text-soft); }

/* ── Feed link ─────────────────────────────────────────────────── */

.ep-events-feed-link {
	display: inline-block;
	padding: 0.5rem 1rem;
	background: var(--ep-events-bg);
	border: 1px solid var(--ep-events-border);
	border-radius: var(--ep-events-radius-sm);
	text-decoration: none;
	color: var(--ep-events-text);
	font-size: 0.95rem;
}
.ep-events-feed-link::before { content: "📅 "; }
.ep-events-feed-link:hover { background: var(--ep-events-border); }

/* ── Submit form ───────────────────────────────────────────────── */

.ep-events-submit__heading { margin: 0 0 0.5rem; font-size: 1.5rem; }
.ep-events-submit__notice  { padding: 0.75rem 1rem; background: #fdf6e6; border: 1px solid #e5cf66; border-radius: var(--ep-events-radius-sm); margin: 0 0 1.5rem; }
.ep-events-submit__status  { margin: 1rem 0 0; font-size: 0.95rem; color: var(--ep-events-text-soft); }

/* ── Credits ───────────────────────────────────────────────────── */

.ep-events-credits__heading { margin: 0 0 0.5rem; font-size: 1.5rem; }
.ep-events-credits__balance { margin: 0 0 0.5rem; font-size: 2.5rem; font-weight: 700; color: var(--ep-events-accent-dark); }
.ep-events-credits__note    { margin: 0; font-size: 0.9rem; color: var(--ep-events-text-soft); }

/* ── Speaker portal ────────────────────────────────────────────── */

.ep-events-speaker-portal__heading { margin: 0 0 0.5rem; font-size: 1.5rem; }
.ep-events-speaker-portal__intro   { margin: 0 0 1.5rem; color: var(--ep-events-text-soft); }
.ep-events-speaker-portal__status  { margin: 1rem 0 0; }

/* ── Recording embed ───────────────────────────────────────────── */

.ep-events-recording h2 { margin: 0 0 1rem; font-size: 1.5rem; }
.ep-events-gallery h2   { margin: 0 0 1rem; font-size: 1.5rem; }

/* ── Reduced motion ────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
	.ep-events-card,
	.ep-events-hero__cta,
	.ep-events-register__submit {
		transition: none;
	}
}

/* ── Print-friendly tickets ───────────────────────────────────── */

@media print {
	.ep-events-tickets-mine {
		font-family: monospace;
		color: #000;
		background: #fff;
	}
	.ep-events-tickets-mine__qr {
		border: 1px solid #000;
		background: #fff;
	}
	.ep-events-tickets-mine__actions {
		display: none;
	}
	.ep-events-hero__image,
	.ep-events-card__image {
		display: none;
	}
}

/* ── Mobile responsive ─────────────────────────────────────────── */

@media (max-width: 640px) {
	.ep-events-hero__title   { font-size: 1.5rem; }
	.ep-events-hero__content { padding: 1.25rem; }
	.ep-events-register      { padding: 1.25rem; }
	.ep-events-register__ticket { flex-direction: column; gap: 0.75rem; align-items: stretch; }
	.ep-events-calendar__cell { min-height: 60px; padding: 0.2rem; font-size: 0.75rem; }
	.ep-events-tickets-mine__ticket { flex-direction: column; }
	.ep-events-tickets-mine__qr     { width: 100%; height: 200px; }
	.ep-events-speakers__list       { grid-template-columns: 1fr; }
}
