/* HudPost Events. Fonts, colors and shapes follow the HudPost theme (Roboto text, Oswald headings, #0090c1 buttons, 4px corners)
   and the Jobs page. Nothing here sets a page background, so it sits on whatever the theme gives. */
.hpe {
	--hpe-accent: #0090c1;
	--hpe-accent-dark: #00749c;
	--hpe-ink: #1a1a1a;
	--hpe-muted: #666;
	--hpe-line: #e1e1e1;
	--hpe-field: #cfcfcf;
	--hpe-soft: #f5f5f5;
	font-family: Roboto, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: var(--hpe-ink);
	margin: 0 0 32px;
}
.hpe *, .hpe *::before, .hpe *::after { box-sizing: border-box; }
.hpe a { color: var(--hpe-accent); text-decoration: none; }
.hpe a:hover { text-decoration: underline; }
.hpe-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* header: title, date arrows, view tabs */
.hpe-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 0 0 14px; }
.hpe-title { font-family: Oswald, Impact, sans-serif; font-weight: 700; font-size: 30px; line-height: 1.15; text-transform: uppercase; color: #000; margin: 0 auto 0 0; }
.hpe-nav, .hpe-views, .hpe-pager { display: flex; gap: 6px; }
.hpe-btn {
	display: inline-block; padding: 8px 14px; font: 700 14px/1.2 Roboto, sans-serif; color: var(--hpe-ink) !important;
	background: #fff; border: 1px solid var(--hpe-field); border-radius: 4px; cursor: pointer; text-decoration: none !important;
}
.hpe-btn:hover { border-color: var(--hpe-accent); color: var(--hpe-accent) !important; }
.hpe-views a { padding: 8px 14px; font: 700 14px/1.2 Roboto, sans-serif; color: var(--hpe-ink); border: 1px solid var(--hpe-field); border-radius: 4px; background: #fff; }
.hpe-views a:hover { border-color: var(--hpe-accent); text-decoration: none; }
.hpe-views a.is-on, .hpe-primary { background: var(--hpe-accent); border-color: var(--hpe-accent); color: #fff !important; }
.hpe-primary:hover { background: var(--hpe-accent-dark); border-color: var(--hpe-accent-dark); color: #fff !important; }

/* filters, same field look as the Jobs page */
.hpe-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 18px; }
.hpe-filters input[type=search], .hpe-filters select {
	font: 400 16px/1.3 Roboto, sans-serif; color: var(--hpe-ink); background: #fff; border: 1px solid var(--hpe-field); border-radius: 4px;
	padding: 10px 12px; min-height: 44px; margin: 0;
}
.hpe-filters input[type=search] { flex: 1 1 220px; }
.hpe-filters select { flex: 0 1 190px; max-width: 100%; }
.hpe-check { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; margin: 0 4px; }
.hpe-go { background: var(--hpe-accent); border-color: var(--hpe-accent); color: #fff !important; min-height: 44px; padding: 10px 18px; }
.hpe-go:hover { background: var(--hpe-accent-dark); border-color: var(--hpe-accent-dark); }
.hpe-clear { font-size: 14px; }

/* month grid */
.hpe-month { border: 1px solid var(--hpe-line); border-radius: 4px; overflow: hidden; background: #fff; }
.hpe-dow, .hpe-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.hpe-dow div { padding: 8px 6px; font: 700 13px/1 Oswald, Impact, sans-serif; letter-spacing: .06em; text-transform: uppercase; text-align: center; color: #fff; background: #111; }
.hpe-day { min-height: 112px; padding: 6px; border-top: 1px solid var(--hpe-line); border-left: 1px solid var(--hpe-line); min-width: 0; }
.hpe-week .hpe-day:first-child { border-left: 0; }
.hpe-day.is-out { background: var(--hpe-soft); }
.hpe-day.is-out .hpe-num { color: #999; }
.hpe-num { display: inline-block; min-width: 26px; padding: 2px 4px; font: 700 15px/1.3 Roboto, sans-serif; color: var(--hpe-ink) !important; text-align: center; border-radius: 4px; }
.hpe-day.is-today .hpe-num { background: var(--hpe-accent); color: #fff !important; }
.hpe-chips { display: flex; flex-direction: column; gap: 3px; margin-top: 4px; }
.hpe-chip { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; word-break: break-word; padding: 3px 6px; font: 500 12.5px/1.3 Roboto, sans-serif; color: var(--hpe-ink) !important; background: #e6f4f9; border-left: 3px solid var(--hpe-accent); border-radius: 2px; }
.hpe-chip:hover { background: #d3ebf4; text-decoration: none !important; }
.hpe-chip.is-cancelled { text-decoration: line-through; opacity: .6; border-left-color: #cd0a0a; background: #f6e7e7; }
.hpe-chip.is-postponed { border-left-color: #b8860b; background: #f7f0dc; }
.hpe-ct { font-weight: 700; }
.hpe-more { font-size: 12.5px; font-weight: 700; padding: 0 6px; }

/* week, day and list */
.hpe-daygroup { margin: 0 0 26px; }
.hpe-daygroup h3 { font: 700 20px/1.2 Oswald, Impact, sans-serif; text-transform: uppercase; color: #000; margin: 0 0 4px; padding: 0 0 6px; border-bottom: 2px solid #111; }
.hpe-row { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--hpe-line); }
.hpe-thumb { flex: 0 0 112px; }
.hpe-thumb img { display: block; width: 112px; height: 84px; object-fit: cover; border-radius: 4px; }
.hpe-info { min-width: 0; flex: 1; }
.hpe-when { margin: 0 0 2px; font-size: 14px; font-weight: 700; color: var(--hpe-accent); }
.hpe-row h4 { margin: 0 0 3px; font: 700 20px/1.25 Roboto, sans-serif; }
.hpe-row h4 a { color: var(--hpe-ink); }
.hpe-row h4 a:hover { color: var(--hpe-accent); text-decoration: none; }
.hpe-meta { margin: 0 0 4px; font-size: 14px; color: var(--hpe-muted); }
.hpe-desc { margin: 0; font-size: 15px; color: #333; }
.hpe-row.is-cancelled h4 a { text-decoration: line-through; color: var(--hpe-muted); }
.hpe-flag { display: inline-block; padding: 1px 6px; font-size: 11px; letter-spacing: .05em; color: #fff; background: #cd0a0a; border-radius: 3px; vertical-align: 1px; }
.hpe-pager { justify-content: space-between; margin: 18px 0 0; }
.hpe-empty { padding: 28px 0; text-align: center; color: var(--hpe-muted); }
.hpe-sub { margin: 18px 0 0; font-size: 14px; color: var(--hpe-muted); }

/* a single event page */
.hpe-single { margin: 0 0 26px; }
.hpe-banner { margin: 0 0 14px; padding: 10px 14px; font-weight: 700; background: var(--hpe-soft); border-left: 4px solid var(--hpe-muted); border-radius: 2px; }
.hpe-banner.is-cancelled { background: #f6e7e7; border-left-color: #cd0a0a; color: #8a0707; }
.hpe-banner.is-postponed { background: #f7f0dc; border-left-color: #b8860b; }
.hpe-facts { margin: 0 0 16px; padding: 4px 16px; background: var(--hpe-soft); border-radius: 4px; }
.hpe-facts > div { display: flex; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--hpe-line); }
.hpe-facts > div:last-child { border-bottom: 0; }
.hpe-facts dt { flex: 0 0 96px; margin: 0; font: 700 14px/1.6 Oswald, Impact, sans-serif; letter-spacing: .05em; text-transform: uppercase; color: #000; }
.hpe-facts dd { margin: 0; min-width: 0; }
.hpe-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }

/* narrow screens: the month grid becomes a day-by-day list of only the days that have events */
@media (max-width: 720px) {
	.hpe-title { font-size: 24px; flex-basis: 100%; }
	.hpe-dow { display: none; }
	.hpe-week { display: block; }
	.hpe-day { min-height: 0; border-left: 0; display: none; padding: 10px 8px; }
	.hpe-day.has-events { display: block; }
	.hpe-day.is-out.has-events { background: #fff; }
	.hpe-num { text-align: left; padding: 0; }
	.hpe-num .hpe-sr { position: static; width: auto; height: auto; clip: auto; overflow: visible; white-space: normal; font: 700 16px/1.3 Roboto, sans-serif; }
	.hpe-num span[aria-hidden] { display: none; }
	.hpe-chip { -webkit-line-clamp: 3; line-clamp: 3; font-size: 14px; padding: 6px 8px; }
	.hpe-filters select { flex: 1 1 140px; }
	.hpe-row { gap: 10px; }
	.hpe-thumb { flex-basis: 84px; }
	.hpe-thumb img { width: 84px; height: 64px; }
	.hpe-facts > div { flex-direction: column; gap: 0; }
}

/* Event pages: the theme's "Related Topics:" line (post tags) is always empty for events. */
body.hpe-page .mvp-post-tags { display: none; }
