/**
 * Events Printr — front-end and print styles.
 */

.epr-calendar-wrap {
	max-width: 100%;
}

.epr-brand-header {
	text-align: center;
	margin: 0 0 0.5rem;
	padding: 0 0 0.75rem;
}

/* Screen: beat Elementor / theme img rules; height auto overrides width="1600" height="200" on the tag. */
.epr-calendar-wrap .epr-brand-header .epr-brand-header__img {
	display: block;
	margin: 0 auto;
	width: 100%;
	max-width: 800px !important;
	height: auto !important;
}

.epr-text-export-wrap .epr-brand-header .epr-brand-header__img {
	display: block;
	margin: 0 auto;
	width: 100%;
	max-width: 800px !important;
	height: auto !important;
}

.epr-calendar-title {
	margin: 0 0 0.75rem;
}

.epr-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem 1.25rem;
	margin-bottom: 1rem;
	padding: 0.75rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

.epr-toolbar-group--category {
	flex: 1 1 100%;
	min-width: 0;
	margin-bottom: 0.5rem;
}

.epr-toolbar-group--print {
	flex: 0 0 auto;
	max-width: 100%;
	align-self: flex-end;
}

.epr-toolbar-group--text-export {
	flex: 0 0 auto;
	max-width: 100%;
	align-self: flex-end;
}

.epr-text-export-wrap,
.epr-public-events-wrap {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.75rem;
	font-size: 0.72rem;
	font-family: inherit;
	color: inherit;
	border: 0;
	padding: 0;
}

.epr-text-export-chrome,
.epr-public-events-chrome {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin-bottom: 0.25rem;
}

/*
 * Public events shortcode: force foreground text to black (themes often tint links/headings).
 * Category dots use background-color, not color. Buttons keep theme background; label text is black.
 */
.epr-public-events-wrap,
.epr-public-events-wrap *:not(.epr-cat-dot) {
	color: #000 !important;
}

.epr-text-export-wrap .epr-text-export-print-group {
	align-self: stretch;
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.55rem 0.8rem;
}

.epr-text-export-wrap .epr-print-button {
	background-color: #c40000;
	color: #fff !important;
	border-color: #a00000;
	font-weight: 700;
	text-transform: uppercase;
	padding: 0.5rem 1rem;
}

.epr-text-export-wrap .epr-print-button:hover,
.epr-text-export-wrap .epr-print-button:focus {
	background-color: #a00000;
	color: #fff !important;
	border-color: #800000;
}

.epr-text-export-wrap .epr-printable .epr-category-legend-filter,
.epr-public-events-wrap .epr-printable .epr-category-legend-filter {
	margin-bottom: 55px !important;
	padding-bottom: 0 !important;
}

.epr-text-export-wrap .epr-printable .epr-text-export-listing,
.epr-public-events-wrap .epr-printable .epr-text-export-listing {
	margin-top: 55px !important;
}

@media (max-width: 900px) {
	.epr-text-export-wrap .epr-printable .epr-category-legend-filter,
	.epr-public-events-wrap .epr-printable .epr-category-legend-filter {
		margin-bottom: 36px !important;
	}

	.epr-text-export-wrap .epr-printable .epr-text-export-listing,
	.epr-public-events-wrap .epr-printable .epr-text-export-listing {
		margin-top: 36px !important;
	}
}

@media (max-width: 560px) {
	.epr-text-export-wrap .epr-printable .epr-category-legend-filter,
	.epr-public-events-wrap .epr-printable .epr-category-legend-filter {
		margin-bottom: 24px !important;
	}

	.epr-text-export-wrap .epr-printable .epr-text-export-listing,
	.epr-public-events-wrap .epr-printable .epr-text-export-listing {
		margin-top: 24px !important;
	}
}

/* Public listing: legend + unselect-all in one block; drop the large gap used for text-export layout */
.epr-public-events-wrap .epr-printable > .epr-public-events-filter-block .epr-category-legend-filter {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

.epr-public-events-wrap .epr-printable > .epr-public-events-filter-block {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin-bottom: 1.25rem;
}

.epr-public-events-wrap .epr-printable > .epr-text-export-listing {
	margin-top: 0 !important;
}

.epr-public-events-wrap .epr-public-events-date-range {
	width: 100%;
	margin-bottom: 1.5rem;
}

.epr-public-events-wrap .epr-public-events-date-range__fields {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.65rem 1.25rem;
}

.epr-public-events-wrap .epr-public-events-date-range__label {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: 0.88rem;
	font-weight: 600;
	margin: 0;
}

.epr-public-events-wrap .epr-public-events-date-range__text {
	white-space: nowrap;
}

.epr-public-events-wrap .epr-public-events-date-input {
	font: inherit;
	font-size: 0.88rem;
	padding: 0.28rem 0.45rem;
	max-width: 100%;
	box-sizing: border-box;
}

.epr-public-events-wrap .epr-public-events-cat-actions {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
}

/* Public wrap forces * { color: #000 }; restore branded toggle so it stays readable */
/* Override global .epr-cat-toggle-all { flex: 0 0 100% } so the control is not full width. */
.epr-public-events-wrap .epr-public-events-cat-actions .epr-cat-toggle-all {
	flex: 0 0 auto;
	width: auto;
	max-width: 100%;
	background-color: #c40000;
	color: #fff !important;
	border-color: #a00000;
	font-weight: 700;
	text-transform: uppercase;
	padding: 0.5rem 0.75rem;
	font-size: 0.78rem;
	white-space: nowrap;
}

.epr-public-events-wrap .epr-public-events-cat-actions .epr-cat-toggle-all:hover,
.epr-public-events-wrap .epr-public-events-cat-actions .epr-cat-toggle-all:focus {
	background-color: #a00000;
	color: #fff !important;
	border-color: #800000;
}

.epr-text-export-controls {
	flex: 1 1 auto;
	min-width: 0;
}

.epr-text-export-status {
	margin: 0.45rem 0 0;
	font-size: 0.82rem;
	color: #333;
}

.epr-text-export-listing {
	flex: 1 1 auto;
	min-width: 0;
	max-height: none;
	overflow: visible;
	border-left: 0;
	padding-left: 0;
	padding-bottom: 0.35rem;
	column-count: 5;
	column-gap: 2rem;
	column-fill: balance;
	font-family: var(
		--epr-text-export-font-family,
		var(--wp--preset--font-family--body, inherit)
	) !important;
	font-size: 1.05rem;
	line-height: 1.2;
	color: #111;
	hyphens: auto;
}

.epr-xml-listing__group {
	margin-bottom: 0.8rem;
}

.epr-xml-listing__entry {
	border: 0;
	padding: 0;
	margin: 0;
	background: transparent;
	color: inherit;
	font-size: inherit;
	position: relative;
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	overflow-wrap: anywhere;
	word-break: break-word;
	cursor: pointer;
	transition: background-color 0.15s ease, box-shadow 0.15s ease;
	border-radius: 4px;
	padding: 0.1rem 0.2rem;
}

.epr-xml-listing__entry:hover,
.epr-xml-listing__entry:focus {
	background: rgba(0, 0, 0, 0.04);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	outline: none;
}

.epr-xml-listing__entry + .epr-xml-listing__entry {
	margin-top: 0.4rem;
}

.epr-xml-listing__entry p {
	margin: 0;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
}

.epr-event-title-row {
	display: flex;
	align-items: flex-start;
	gap: 0.35rem;
	flex-wrap: wrap;
	padding-top: 0.45rem;
}

.epr-xml-listing__entry .epr-event-title-text {
	margin: 0;
	font-size: 14pt;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: normal;
}

.epr-event-title-label {
	display: inline-flex;
	align-items: center;
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	cursor: pointer;
}

.epr-event-title-label .epr-event-title-text {
	flex: 1 1 auto;
	min-width: 0;
}

.epr-event-title-row .epr-event-title-text {
	flex: 1 1 auto;
	min-width: 0;
}

/* XML include checkbox on its own row above the linked title/body block. */
.epr-event-title-row--checkbox-only {
	padding-top: 0.2rem;
	padding-bottom: 0;
	margin-bottom: 0.15rem;
}

.epr-event-title-row--checkbox-only .epr-event-title-label {
	align-items: center;
}

.epr-inline-event-checkbox {
	order: 2;
	opacity: 0;
	width: 0;
	margin: 0;
	margin-left: 0.4rem;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.epr-xml-listing__entry:hover .epr-inline-event-checkbox,
.epr-xml-listing__entry:focus-within .epr-inline-event-checkbox,
.epr-xml-listing__entry.epr-event-unchecked .epr-inline-event-checkbox {
	opacity: 1;
	width: auto;
	margin: 0;
	pointer-events: auto;
}

.epr-event-unchecked {
	opacity: 0.45;
}

.epr-xml-listing__entry p + p {
	margin-top: 0.12rem;
}

.epr-xml-listing__entry strong {
	font-weight: 700;
}

.epr-xml-listing__entry a {
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
}

/* Public event list: whole card is one link to the event post. */
.epr-xml-listing__public-link {
	display: block;
	color: inherit;
	text-decoration: none;
	border-radius: inherit;
}

.epr-xml-listing__public-link:hover,
.epr-xml-listing__public-link:focus {
	color: inherit;
	text-decoration: none;
}

.epr-xml-listing__public-link:focus {
	outline: none;
}

.epr-xml-listing__public-link:focus-visible {
	box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.28);
	border-radius: 2px;
}

.epr-xml-listing__entry span {
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
}

/* Allow column breaks between events under the same date; indivisible whole-day
 * blocks made columns very uneven. Entries stay intact via .epr-xml-listing__entry. */
.epr-xml-listing__group {
	break-inside: auto;
	margin: 0 0 0.9rem;
}

.epr-summary-edit-area {
	margin: 0.25rem 0 0.35rem;
}

.epr-summary-edit-input {
	width: 100%;
	min-height: 4.5em;
}

.epr-summary-edit-buttons {
	display: inline-flex;
	gap: 0.35rem;
	margin-top: 0.25rem;
}

.epr-event-summary-status {
	margin: 0.2rem 0 0.35rem;
	font-size: 0.95em;
	opacity: 0.85;
}

.epr-modal-open {
	overflow: hidden;
}

.epr-event-compare-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
}

.epr-event-compare-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.epr-event-compare-modal__dialog {
	position: relative;
	background: #fff;
	max-width: 980px;
	width: min(96vw, 980px);
	margin: 4vh auto;
	border-radius: 8px;
	padding: 1rem;
	max-height: 92vh;
	overflow: auto;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
}

.epr-event-compare-modal__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}

.epr-event-compare-modal__title {
	margin: 0;
	font-size: 1.1rem;
}

.epr-event-compare-modal__close.button {
	min-width: 2rem;
}

.epr-event-compare-modal__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	align-items: stretch;
}

.epr-event-compare-modal__col {
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.epr-event-compare-modal__col h4 {
	margin: 0 0 0.45rem;
	font-size: 0.95rem;
}

.epr-event-compare-modal__rows {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.epr-event-compare-modal__rows--edited {
	flex: 1;
	min-height: 0;
}

.epr-event-compare-modal__edited-summary-block {
	margin-top: 0.35rem;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.epr-event-compare-modal__categories {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.75rem;
	align-items: flex-start;
	margin-top: 0.15rem;
}

.epr-event-compare-modal__cat-item {
	margin: 0;
}

.epr-event-compare-modal__row label {
	display: block;
	font-weight: 600;
	margin: 0 0 0.2rem;
	font-size: 0.84rem;
}

.epr-event-compare-modal__value {
	border: 1px solid #ddd;
	background: #fafafa;
	padding: 0.45rem 0.5rem;
	border-radius: 4px;
	min-height: 2rem;
	white-space: pre-wrap;
}

.epr-event-compare-modal__value--readonly {
	opacity: 0.85;
}

.epr-event-compare-modal__input {
	width: 100%;
	border: 1px solid #ccc;
	border-radius: 4px;
	padding: 0.4rem 0.45rem;
	min-height: 2rem;
}

.epr-event-compare-modal__summary-actions {
	margin-top: 0.4rem;
}

.epr-event-compare-modal__status {
	margin: 0.75rem 0 0;
	min-height: 1.2em;
	font-size: 0.9rem;
}

.epr-event-compare-modal__actions {
	display: flex;
	justify-content: flex-end;
	gap: 0.5rem;
	margin-top: 0.5rem;
}

@media (max-width: 900px) {
	.epr-event-compare-modal__grid {
		grid-template-columns: 1fr;
	}
}

/*
 * Date line (h2): extra class + several selectors so theme/Elementor h2 rules do not win; cache bust via plugin version.
 */
.epr-text-export-listing h2.epr-xml-listing__date-heading,
.epr-text-export-listing h2.epr-xml-listing__date,
.epr-text-export-wrap .epr-text-export-listing .epr-xml-listing__group > h2.epr-xml-listing__date,
.epr-text-export-wrap .epr-text-export-listing h2.epr-xml-listing__date-heading {
	margin: 0 0 0.45rem !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	font-size: 16pt !important;
	font-weight: 700 !important;
	font-style: normal !important;
	font-variant: normal !important;
	font-stretch: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	line-height: 1.15 !important;
	letter-spacing: -0.01em !important;
	color: #111 !important;
	background: transparent !important;
	/* Keep date line with the events that follow when reflowing columns. */
	break-after: avoid !important;
	-webkit-column-break-after: avoid !important;
	break-inside: avoid !important;
}

.epr-public-events-wrap .epr-text-export-listing .epr-xml-listing__group > h2.epr-xml-listing__date,
.epr-public-events-wrap .epr-text-export-listing h2.epr-xml-listing__date-heading {
	margin: 0 0 0.45rem !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	font-size: 16pt !important;
	font-weight: 700 !important;
	font-style: normal !important;
	font-variant: normal !important;
	font-stretch: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	line-height: 1.15 !important;
	letter-spacing: -0.01em !important;
	color: #c80000 !important;
	background: transparent !important;
	break-after: avoid !important;
	-webkit-column-break-after: avoid !important;
	break-inside: avoid !important;
}

/* Public events shortcode: extra space before a date heading when it continues below the prior day in the same column (JS toggles --section-gap). */
.epr-public-events-wrap .epr-text-export-listing h2.epr-xml-listing__date-heading.epr-xml-listing__date-heading--section-gap {
	margin-top: 50px !important;
}

/*
 * Match surrounding site typography: --epr-text-export-font-family is set from computed styles in
 * frontend.js (Elementor / entry content / block post content / body). !important beats theme
 * heading and paragraph font rules inside the export column.
 */
.epr-text-export-wrap .epr-text-export-listing .epr-xml-listing,
.epr-text-export-wrap .epr-text-export-listing .epr-xml-listing__group,
.epr-text-export-wrap .epr-text-export-listing .epr-xml-listing__entry,
.epr-text-export-wrap .epr-text-export-listing .epr-xml-listing__entry p,
.epr-text-export-wrap .epr-text-export-listing .epr-xml-listing__entry span,
.epr-text-export-wrap .epr-text-export-listing .epr-xml-listing__entry strong,
.epr-text-export-wrap .epr-text-export-listing .epr-xml-listing__entry a,
.epr-public-events-wrap .epr-text-export-listing .epr-xml-listing,
.epr-public-events-wrap .epr-text-export-listing .epr-xml-listing__group,
.epr-public-events-wrap .epr-text-export-listing .epr-xml-listing__entry,
.epr-public-events-wrap .epr-text-export-listing .epr-xml-listing__entry p,
.epr-public-events-wrap .epr-text-export-listing .epr-xml-listing__entry span,
.epr-public-events-wrap .epr-text-export-listing .epr-xml-listing__entry strong,
.epr-public-events-wrap .epr-text-export-listing .epr-xml-listing__entry a,
.epr-text-export-listing h2.epr-xml-listing__date,
.epr-text-export-listing h2.epr-xml-listing__date-heading,
.epr-text-export-listing h3.epr-event-title-text,
.epr-text-export-wrap .epr-text-export-listing .epr-xml-listing__entry label,
.epr-text-export-wrap .epr-text-export-listing h2.epr-xml-listing__date,
.epr-text-export-wrap .epr-text-export-listing h2.epr-xml-listing__date-heading,
.epr-text-export-wrap .epr-text-export-listing h3.epr-event-title-text,
.epr-public-events-wrap .epr-text-export-listing .epr-xml-listing__entry label,
.epr-public-events-wrap .epr-text-export-listing h2.epr-xml-listing__date,
.epr-public-events-wrap .epr-text-export-listing h2.epr-xml-listing__date-heading,
.epr-public-events-wrap .epr-text-export-listing h3.epr-event-title-text {
	font-family: var(
		--epr-text-export-date-font-family,
		var(--epr-text-export-font-family, var(--wp--preset--font-family--body, inherit))
	) !important;
}

/*
 * Some themes/plugins wrap heading text in <code> (e.g. “Ongoing”), which defaults to monospace.
 * Force the same stack as titles on any descendant of the date h2.
 */
.epr-text-export-listing h2.epr-xml-listing__date code,
.epr-text-export-listing h2.epr-xml-listing__date-heading code,
.epr-text-export-wrap .epr-text-export-listing h2.epr-xml-listing__date code,
.epr-text-export-wrap .epr-text-export-listing h2.epr-xml-listing__date-heading code,
.epr-public-events-wrap .epr-text-export-listing h2.epr-xml-listing__date code,
.epr-public-events-wrap .epr-text-export-listing h2.epr-xml-listing__date-heading code,
.epr-text-export-listing h2.epr-xml-listing__date kbd,
.epr-text-export-listing h2.epr-xml-listing__date-heading kbd,
.epr-text-export-listing h2.epr-xml-listing__date samp,
.epr-text-export-listing h2.epr-xml-listing__date-heading samp {
	font-family: var(
		--epr-text-export-date-font-family,
		var(--epr-text-export-font-family, var(--wp--preset--font-family--body, inherit))
	) !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	font-style: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
	color: inherit !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.epr-event-details-text,
.epr-event-summary-text {
	font-style: italic;
}

@media (max-width: 1400px) {
	.epr-text-export-listing {
		column-count: 4;
		column-gap: 1.5rem;
	}
}

@media (max-width: 900px) {
	.epr-text-export-listing {
		column-count: 2;
		column-gap: 1.2rem;
	}
}

@media (max-width: 560px) {
	.epr-text-export-listing {
		column-count: 1;
		column-gap: 0;
	}
}

.epr-text-export-listing__empty {
	margin: 0;
}

.epr-text-export-weeks-filter {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.84rem;
}

.epr-text-export-toolbar-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: 0.75rem 1.25rem;
	margin: 0 0 0.35rem;
}

.epr-text-export-toolbar-row__start {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	flex: 1 1 30rem;
	min-width: 0;
}

.epr-text-export-toolbar-row__actions .epr-text-export-print-group {
	flex: 0 1 auto;
	align-self: center;
	align-items: center;
	flex-wrap: wrap;
	max-width: 100%;
}

.epr-text-export-toolbar-row__start .epr-text-export-weeks-filter--top,
.epr-text-export-toolbar-row__start .epr-text-export-show-unchecked-wrap {
	flex: 0 0 auto;
}

.epr-text-export-toolbar-row .epr-cat-toggle-all {
	flex: 0 0 auto;
	align-self: center;
	white-space: nowrap;
	margin: 0;
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	background-color: #c40000;
	color: #fff !important;
	border-color: #a00000;
	padding: 0.5rem 0.75rem;
}

.epr-text-export-toolbar-row .epr-cat-toggle-all:hover,
.epr-text-export-toolbar-row .epr-cat-toggle-all:focus {
	background-color: #a00000;
	color: #fff !important;
	border-color: #800000;
}

.epr-text-export-toolbar-row__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem 1.5rem;
	flex: 0 1 auto;
	min-width: 0;
}

.epr-text-export-toolbar-row__actions .epr-text-export-button {
	margin: 0;
	white-space: nowrap;
}

.epr-text-export-toolbar-row__actions .epr-text-export-print-group {
	margin-left: 1rem;
}

@media (max-width: 600px) {
	.epr-text-export-toolbar-row__actions .epr-text-export-print-group {
		margin-left: 0;
	}
}

.epr-text-export-weeks-filter--top {
	margin: 0;
}

.epr-text-export-toolbar-row__start .epr-text-export-weeks-filter--top {
	margin-left: 0.2rem;
}

.epr-text-export-show-unchecked-wrap {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	font-size: 0.84rem;
	font-family: var(
		--epr-text-export-date-font-family,
		var(--epr-text-export-font-family, var(--wp--preset--font-family--body, inherit))
	) !important;
}

.epr-text-export-show-unchecked-wrap label {
	font-weight: 600;
	cursor: pointer;
	font-family: inherit !important;
}

.epr-text-export-wrap .epr-text-export-show-unchecked-wrap input.epr-text-export-show-unchecked-toggle {
	font-family: inherit !important;
}

/* Plugin may wrap checkbox + label in <code> (monospace); match export title font. */
.epr-text-export-wrap .epr-text-export-show-unchecked-wrap code,
.epr-text-export-show-unchecked-wrap code {
	display: inline-flex !important;
	align-items: center;
	gap: 0.55rem;
	font-family: var(
		--epr-text-export-date-font-family,
		var(--epr-text-export-font-family, var(--wp--preset--font-family--body, inherit))
	) !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	font-style: normal !important;
	line-height: inherit !important;
	color: inherit !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.epr-text-export-wrap.epr-hide-unchecked-events .epr-xml-listing__entry.epr-event-unchecked {
	display: none !important;
}

/* Hide date blocks that only contained excluded (unchecked) rows. */
.epr-text-export-wrap.epr-hide-unchecked-events .epr-xml-listing__group:not(:has(.epr-xml-listing__entry:not(.epr-event-unchecked))) {
	display: none !important;
}

/* Hide date blocks whose entries are all hidden by category legend. */
.epr-text-export-wrap .epr-xml-listing__group:not(:has(.epr-xml-listing__entry:not(.epr-hidden-by-category))),
.epr-public-events-wrap .epr-xml-listing__group:not(:has(.epr-xml-listing__entry:not(.epr-hidden-by-category))) {
	display: none !important;
}

/* Public listing: hide full date groups outside the selected range (client-side). */
.epr-public-events-wrap .epr-xml-listing__group.epr-hidden-by-date-range {
	display: none !important;
}

/* Public listing: Ongoing column rows outside the selected range (per-entry overlap). */
.epr-public-events-wrap .epr-xml-listing__entry.epr-hidden-by-date-range {
	display: none !important;
}

/* Public listing: hide empty Ongoing section when every row is filtered by category and/or date. */
.epr-public-events-wrap .epr-xml-listing__group[data-epr-group-kind="ongoing"]:not(
		:has(.epr-xml-listing__entry:not(.epr-hidden-by-category):not(.epr-hidden-by-date-range))
	) {
	display: none !important;
}

.epr-text-export-weeks-filter label {
	font-weight: 600;
}

.epr-text-export-weeks-select {
	padding: 0.2rem 0.35rem;
	min-width: 7.5rem;
}

.epr-text-export-events {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: none;
	overflow: visible;
}

.epr-text-export-events__item {
	margin: 0 0 0.3rem;
	line-height: 1.2;
}

.epr-text-export-events__item.epr-hidden-by-weeks {
	display: none;
}

.epr-xml-listing__group.epr-hidden-by-weeks {
	display: none;
}

.epr-text-export-events__item label {
	font-size: 0.78rem;
	font-weight: 400;
}

.epr-text-export-events__item .epr-text-export-event-link {
	margin-left: 0.35rem;
	font-size: 0.78rem;
	font-weight: 500;
	white-space: nowrap;
}

.epr-toolbar-group--filter {
	flex: 0 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	max-width: 100%;
	margin-left: auto;
}

.epr-print-range-heading {
	font-size: 0.875rem;
	font-weight: 600;
	margin: 0;
}

.epr-week-checkbox-label {
	cursor: pointer;
	font-size: 0.875rem;
	white-space: nowrap;
}

.epr-week-checkbox-label input {
	margin-right: 0.25rem;
	vertical-align: middle;
}

/* --- Legend / filter (category checkboxes) --- */
.epr-category-legend-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	align-items: center;
	justify-content: center;
	width: 100%;
}

.epr-cat-toggle-all {
	flex: 0 0 100%;
	justify-content: center;
	font-size: 0.85rem;
	padding: 0.25rem 0.65rem;
}

.epr-cat-legend-item {
	display: flex;
	align-items: center;
	cursor: pointer;
	font-size: 0.95rem;
	font-weight: 500;
	user-select: none;
}

/* Text-export shortcode legend typography override. */
.epr-text-export-wrap .epr-printable .epr-category-legend-filter,
.epr-text-export-wrap .epr-printable .epr-category-legend-filter .epr-cat-legend-item,
.epr-text-export-wrap .epr-printable .epr-category-legend-filter .epr-cat-name,
.epr-public-events-wrap .epr-printable .epr-category-legend-filter,
.epr-public-events-wrap .epr-printable .epr-category-legend-filter .epr-cat-legend-item,
.epr-public-events-wrap .epr-printable .epr-category-legend-filter .epr-cat-name {
	font-family: Georgia, "Times New Roman", serif !important;
	font-weight: 700 !important;
}

.epr-cat-legend-item input[type='checkbox'] {
	display: none;
}

.epr-cat-dot {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	margin-right: 8px;
	transition: all 0.2s ease;
	border: 2px solid transparent;
}

.epr-cat-legend-item input[type='checkbox']:not(:checked) + .epr-cat-dot {
	background-color: transparent !important;
	border-color: currentColor;
	opacity: 0.4;
}

.epr-cat-legend-item input[type='checkbox']:not(:checked) ~ .epr-cat-name {
	opacity: 0.5;
}

.epr-hidden-by-category {
	display: none !important;
}

.epr-print-button {
	white-space: normal;
	text-align: center;
}

.epr-print-help {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.4;
	max-width: 22rem;
}

@media (max-width: 900px) {
	.epr-text-export-toolbar-row__start .epr-text-export-weeks-filter--top {
		margin-left: 0;
	}
}

.epr-printable {
	position: relative;
}

/*
 * Default mode: hide multi-day ribbons in the grid; cards are listed under .epr-printable (see frontend.js).
 * Omit when multiday_below="1" (chip list is the multi-day UI).
 */
.epr-calendar-wrap:not(.epr-multiday-below) .em-cal-event.multiday {
	display: none !important;
}

/* Multi-day card grid below calendar (screen; print tweaks in @media print). */
.epr-multiday-print-container {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(0, 0, 0, 0.12);
}

.epr-multiday-print-container__title {
	margin: 0 0 1rem;
	font-size: 1.1rem;
	font-weight: 600;
}

.epr-multiday-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
}

@media (max-width: 900px) {
	.epr-multiday-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.epr-multiday-grid {
		grid-template-columns: 1fr;
	}
}

.epr-multiday-card {
	border: 2px solid #ccc;
	padding: 1rem;
	border-radius: 0.5rem;
	box-sizing: border-box;
	line-height: 1.35;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.epr-multiday-card a {
	color: inherit;
	text-decoration: none;
}

.epr-multiday-card__schedule {
	font-size: 0.9rem;
	font-weight: 600;
	margin: 0 0 0.4rem;
	line-height: 1.35;
	color: rgba(0, 0, 0, 0.88);
}

.epr-multiday-card__title {
	font-size: 1rem;
	line-height: 1.4;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

/*
 * Multi-day ribbons moved below the grid (shortcode multiday_below="1"): hide in-cell bars to stop overlap.
 */
.epr-calendar-wrap.epr-multiday-below .em-cal-event.multiday {
	display: none !important;
}

/*
 * Chip list under the calendar: tab-shaped links, same brand treatment as grid pills.
 */
.epr-multiday-below-list {
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(0, 0, 0, 0.12);
}

.epr-multiday-below-list__title {
	margin: 0 0 0.75rem;
	font-size: 1.05rem;
	font-weight: 600;
}

.epr-multiday-below-list__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.65rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.epr-multiday-below-list__item {
	margin: 0;
	padding: 0;
}

.epr-multiday-chip {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
	max-width: 100%;
	padding: 0.45rem 0.65rem;
	border-radius: 0.35rem;
	text-decoration: none;
	border: 1px solid;
	color: #fff !important;
	line-height: 1.25;
	box-sizing: border-box;
	/* background-color + border-color: inline from PHP (EM category color) */
}

.epr-multiday-chip:hover,
.epr-multiday-chip:focus {
	filter: brightness(0.92);
	color: #fff !important;
}

.epr-multiday-chip:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.epr-multiday-chip__title {
	font-weight: 600;
	word-break: break-word;
}

.epr-multiday-chip__dates {
	font-size: 0.8125rem;
	opacity: 0.95;
	font-weight: 400;
}

/*
 * Let Events Manager category colors (inline / CSS variables) show on calendar pills.
 * Scoped to .epr-calendar-wrap only for layout helpers below — do not force a single brand color.
 */
.epr-calendar-wrap table.em-calendar td li a *,
.epr-calendar-wrap .em-calendar td li a * {
	color: inherit !important;
}

.epr-calendar-wrap table.em-calendar td li a:hover,
.epr-calendar-wrap table.em-calendar td li a:focus,
.epr-calendar-wrap table.em-calendar tbody td li a:hover,
.epr-calendar-wrap table.em-calendar tbody td li a:focus,
.epr-calendar-wrap .em-calendar td li a:hover,
.epr-calendar-wrap .em-calendar td li a:focus,
.epr-calendar-wrap .em-calendar tbody td li a:hover,
.epr-calendar-wrap .em-calendar tbody td li a:focus {
	filter: brightness(0.92);
}

.epr-calendar-wrap table.em-calendar td li a:focus-visible,
.epr-calendar-wrap table.em-calendar tbody td li a:focus-visible,
.epr-calendar-wrap .em-calendar td li a:focus-visible,
.epr-calendar-wrap .em-calendar tbody td li a:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

/*
 * Two-line event labels (time + title): allow wrapping and room for both lines.
 */
.epr-calendar-wrap table.em-calendar td li a,
.epr-calendar-wrap table.em-calendar tbody td li a,
.epr-calendar-wrap .em-calendar td li a,
.epr-calendar-wrap .em-calendar tbody td li a,
.epr-calendar-wrap table.em-calendar tbody tr td[colspan] a,
.epr-calendar-wrap table.em-calendar tbody td ul.events li a,
.epr-calendar-wrap table.em-calendar tbody .em-cal-event a,
.epr-calendar-wrap .em-calendar tbody .em-cal-event a {
	display: block;
	white-space: normal;
	line-height: 1.25;
	padding: 0.2rem 0.35rem;
	min-height: 2.25em;
}

/*
 * EM 7+ grid calendar uses .em-cal-event > div around formatted output (not only td > li > a).
 * Undo clipping / single-line limits so time + title rows fit.
 */
.epr-calendar-wrap .em-cal-event,
.epr-calendar-wrap .em-cal-event.multiday {
	overflow: visible !important;
	max-height: none !important;
	min-height: 0;
}

.epr-calendar-wrap .em-cal-event > div {
	overflow: visible !important;
	max-height: none !important;
	min-height: 0;
	white-space: normal;
	line-height: 1.25;
	display: block;
	-webkit-box-orient: unset;
	-webkit-line-clamp: unset;
	line-clamp: unset;
	text-overflow: unset;
	word-break: break-word;
}

/*
 * EM .event-style-pill: core styles use fixed 28px height, position:absolute on the inner div,
 * width calc(100% + 10px), nowrap + ellipsis. That paints only one line in the pill, pushes the
 * second line outside the background, and widens into the next column. Reset for Printr.
 */
.epr-calendar-wrap .em-cal-body.event-style-pill .em-cal-event:not(.multiday) {
	height: auto !important;
	min-height: 0 !important;
}

.epr-calendar-wrap .em-cal-body.event-style-pill .em-cal-event:not(.multiday) > div {
	position: relative !important;
	left: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 28px;
	box-sizing: border-box !important;
	white-space: normal !important;
	overflow: visible !important;
	text-overflow: clip !important;
}

.epr-calendar-wrap .em-cal-body.event-style-pill .em-cal-event.multiday {
	height: auto !important;
	min-height: 0 !important;
}

/*
 * Do not set position/width/left on multiday inner divs: EM uses absolute positioning and
 * calculated widths so bars span across day columns. Forcing position:relative + width:100%
 * constrains each segment to the start cell only.
 */
.epr-calendar-wrap .em-cal-body.event-style-pill .em-cal-event.multiday > div {
	height: auto !important;
	min-height: 28px;
	white-space: normal !important;
	overflow: visible !important;
	text-overflow: clip !important;
	line-height: 1.2;
}

/*
 * Space between stacked multi-day lanes and between ribbons and single-day lists (ul.events).
 */
.epr-calendar-wrap .em-cal-body.event-style-pill .em-cal-event + .em-cal-event {
	margin-top: 0.25rem;
}

/*
 * Single-day vs multiday vertical offset is applied by assets/js/frontend.js (inline margin).
 */

/*
 * Long / multi-day event rows sometimes render anchors outside a simple li (colspan rows, etc.).
 */
.epr-calendar-wrap table.em-calendar tbody tr td[colspan] a:hover,
.epr-calendar-wrap table.em-calendar tbody td ul.events li a:hover,
.epr-calendar-wrap table.em-calendar tbody .em-cal-event a:hover,
.epr-calendar-wrap .em-calendar tbody .em-cal-event a:hover {
	filter: brightness(0.92);
}

/*
 * EM month navigation: themes often set svg { max-width:100%; width:100%; height:auto }, which
 * blows up chevron icons and breaks the grid. Constrain icons inside Printr calendar wrappers only.
 */
.epr-calendar-wrap .em-cal-head a,
.epr-calendar-wrap .em-cal-head button,
.epr-calendar-wrap .em-calendar .em-cal-nav a,
.epr-calendar-wrap .em-calendar .em-cal-nav button,
.epr-calendar-wrap table.em-calendar thead a,
.epr-calendar-wrap table.em-calendar tbody tr td[colspan] a.em-cal-nav,
.epr-calendar-wrap .em-calendar-wrapper .em-cal-nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: auto !important;
	max-width: min(3rem, 100%);
	box-sizing: border-box;
}

.epr-calendar-wrap .em-cal-head svg,
.epr-calendar-wrap .em-cal-head button svg,
.epr-calendar-wrap .em-calendar .em-cal-nav svg,
.epr-calendar-wrap .em-calendar .em-cal-nav button svg,
.epr-calendar-wrap table.em-calendar thead svg,
.epr-calendar-wrap table.em-calendar tbody tr td[colspan] svg,
.epr-calendar-wrap .em-calendar-wrapper .em-cal-nav svg {
	width: 0.9em !important;
	height: 0.9em !important;
	max-width: 18px !important;
	max-height: 18px !important;
	flex-shrink: 0;
	box-sizing: content-box;
	vertical-align: middle;
}

/* Same nav/SVG safety when EM calendar sits inside the public events shortcode wrapper (e.g. tabs). */
.epr-public-events-wrap .em-cal-head a,
.epr-public-events-wrap .em-cal-head button,
.epr-public-events-wrap .em-calendar .em-cal-nav a,
.epr-public-events-wrap .em-calendar .em-cal-nav button,
.epr-public-events-wrap table.em-calendar thead a,
.epr-public-events-wrap table.em-calendar tbody tr td[colspan] a.em-cal-nav,
.epr-public-events-wrap .em-calendar-wrapper .em-cal-nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: auto !important;
	max-width: min(3rem, 100%);
	box-sizing: border-box;
}

.epr-public-events-wrap .em-cal-head svg,
.epr-public-events-wrap .em-cal-head button svg,
.epr-public-events-wrap .em-calendar .em-cal-nav svg,
.epr-public-events-wrap .em-calendar .em-cal-nav button svg,
.epr-public-events-wrap table.em-calendar thead svg,
.epr-public-events-wrap table.em-calendar tbody tr td[colspan] svg,
.epr-public-events-wrap .em-calendar-wrapper .em-cal-nav svg {
	width: 0.9em !important;
	height: 0.9em !important;
	max-width: 18px !important;
	max-height: 18px !important;
	flex-shrink: 0;
	box-sizing: content-box;
	vertical-align: middle;
}

/*
 * EM 7+ full calendar: when EM CSS is omitted (optimization) or theme overrides display, restore a
 * 7-column grid for the body (and head) so days do not stack in one column. SVG caps for any
 * chevron in the header row not matched by .em-cal-nav above.
 */
.epr-calendar-wrap .em-calendar-wrapper,
.epr-public-events-wrap .em-calendar-wrapper {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.epr-calendar-wrap .em-calendar-wrapper .em-calendar,
.epr-public-events-wrap .em-calendar-wrapper .em-calendar {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.epr-calendar-wrap .em-cal-body,
.epr-public-events-wrap .em-cal-body {
	display: grid !important;
	grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
	grid-auto-flow: row !important;
	grid-auto-rows: minmax(0, auto) !important;
	align-content: start !important;
	width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

.epr-calendar-wrap .em-cal-head,
.epr-public-events-wrap .em-cal-head {
	display: grid !important;
	grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
	grid-auto-flow: row !important;
	width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

.epr-calendar-wrap .em-cal-day,
.epr-public-events-wrap .em-cal-day {
	min-width: 0 !important;
	min-height: 5.5rem;
	overflow: visible !important;
	box-sizing: border-box;
}

.epr-calendar-wrap .em-cal-head a svg,
.epr-calendar-wrap .em-cal-head .em-cal-title a svg,
.epr-public-events-wrap .em-cal-head a svg,
.epr-public-events-wrap .em-cal-head .em-cal-title a svg {
	width: 0.9em !important;
	height: 0.9em !important;
	max-width: 18px !important;
	max-height: 18px !important;
	flex-shrink: 0;
	box-sizing: content-box;
	vertical-align: middle;
}

.epr-calendar-wrap table.em-calendar,
.epr-public-events-wrap table.em-calendar {
	width: 100% !important;
	table-layout: fixed !important;
	border-collapse: collapse !important;
	box-sizing: border-box;
}

/* Print: isolate calendar (and optional title) when printing from our control */
@media print {
	.epr-exclude-print {
		display: none !important;
	}

	/* EM modals (.em-cal-events-content) can inflate print page count even when not visible. */
	.em-cal-events-content {
		display: none !important;
		height: 0 !important;
		overflow: hidden !important;
	}

	html,
	body {
		height: auto !important;
		min-height: 0 !important;
		overflow: visible !important;
	}

	/*
	 * visibility:hidden alone keeps full layout height (invisible header/footer still “reserve”
	 * space), which pushes the calendar down and can paginate into many blank pages. Collapse
	 * everything that is not inside .epr-printable so the document height matches the calendar.
	 */
	body.epr-printing,
	body.epr-printing html {
		height: auto !important;
		max-height: none !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
	}

	/*
	 * Collapse layout branches that do not contain .epr-printable (sibling sidebars, headers, etc.).
	 * Do not collapse ancestors of .epr-printable — that used to clip or fight fixed positioning.
	 * Exclude .epr-brand-header and its subtree (logo sits outside .epr-printable but must print).
	 */
	body.epr-printing *:not(html):not(body):not(.epr-printable):not(.epr-printable *):not(:has(.epr-printable)):not(.epr-brand-header, .epr-brand-header *) {
		max-height: 0 !important;
		min-height: 0 !important;
		overflow: hidden !important;
		margin: 0 !important;
		padding: 0 !important;
		border: none !important;
		visibility: hidden !important;
	}

	/* Ancestors of the printable block: drop theme min-height:100vh / large padding for print. */
	body.epr-printing *:has(.epr-printable) {
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
	}

	/* Logo sits outside .epr-printable; reinforce visibility if a theme wraps extra nodes. */
	body.epr-printing .epr-calendar-wrap .epr-brand-header,
	body.epr-printing .epr-calendar-wrap .epr-brand-header * {
		visibility: visible !important;
		max-height: none !important;
		min-height: 0 !important;
		overflow: visible !important;
		border: none !important;
	}

	body.epr-printing .epr-calendar-wrap .epr-brand-header {
		margin: 0 0 0.35rem !important;
		padding: 0 0 0.35rem !important;
		page-break-after: avoid !important;
		break-after: avoid-page !important;
	}

	body.epr-printing .epr-calendar-wrap .epr-brand-header .epr-brand-header__img {
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: min(100%, 600px) !important;
		width: 100% !important;
		height: auto !important;
	}

	body.epr-printing .epr-text-export-wrap .epr-brand-header,
	body.epr-printing .epr-text-export-wrap .epr-brand-header * {
		visibility: visible !important;
		max-height: none !important;
		min-height: 0 !important;
		overflow: visible !important;
		border: none !important;
	}

	body.epr-printing .epr-text-export-wrap .epr-brand-header {
		margin: 0 0 0.35rem !important;
		padding: 0 0 0.35rem !important;
		page-break-after: avoid !important;
		break-after: avoid-page !important;
	}

	body.epr-printing .epr-text-export-wrap .epr-brand-header .epr-brand-header__img {
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: min(100%, 600px) !important;
		width: 100% !important;
		height: auto !important;
	}

	body.epr-printing .epr-calendar-wrap {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.epr-printing .epr-text-export-wrap,
	body.epr-printing .epr-public-events-wrap {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.epr-printing .epr-printable,
	body.epr-printing .epr-printable * {
		visibility: visible !important;
		max-height: none !important;
		min-height: 0 !important;
		overflow: visible !important;
	}

	/*
	 * Do not use position:fixed here — print engines clip fixed boxes to ~one page and hide the
	 * rest of the calendar. Normal flow lets the grid span as many sheets as needed.
	 */
	body.epr-printing .epr-printable {
		position: static !important;
		left: auto !important;
		top: auto !important;
		right: auto !important;
		width: 100% !important;
		z-index: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		background: #fff !important;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
		page-break-before: auto !important;
		break-before: auto !important;
	}

	/* EM grid often sets heights on wrappers; allow full month to flow across pages. */
	body.epr-printing .epr-printable .em-calendar-wrapper,
	body.epr-printing .epr-printable .em-calendar,
	body.epr-printing .epr-printable .em-cal-body,
	body.epr-printing .epr-printable table.em-calendar {
		height: auto !important;
		max-height: none !important;
		min-height: 0 !important;
		overflow: visible !important;
	}

	body.epr-printing .epr-toolbar {
		display: none !important;
	}

	/* Page count: neutralize Elementor flex in print; restore EM grid (no float hack). */
	body.epr-printing .elementor,
	body.epr-printing .elementor-section,
	body.epr-printing .elementor-container,
	body.epr-printing .elementor-widget-wrap,
	body.epr-printing .elementor-widget-container,
	body.epr-printing .e-con,
	body.epr-printing .e-con-inner,
	body.epr-printing .e-flex,
	html body .elementor,
	html body .elementor-section,
	html body .elementor-container,
	html body .elementor-widget-wrap,
	html body .elementor-widget-container,
	html body .e-con,
	html body .e-con-inner,
	html body .e-flex {
		display: block !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
	}

	body.epr-printing .epr-calendar-wrap .em-cal-head,
	body.epr-printing .epr-calendar-wrap .em-cal-body,
	html body .epr-calendar-wrap .em-cal-head,
	html body .epr-calendar-wrap .em-cal-body {
		display: grid !important;
		grid-auto-rows: min-content !important;
		grid-template-rows: auto !important;
		height: auto !important;
		--grid-auto-rows: auto !important;
	}

	body.epr-printing .epr-calendar-wrap .em-cal-day,
	html body .epr-calendar-wrap .em-cal-day {
		height: auto !important;
		min-height: 50px !important;
		max-height: none !important;
		aspect-ratio: unset !important;
		padding: 5px !important;
	}

	body.epr-printing .epr-calendar-wrap:not(.epr-multiday-below) .em-cal-body .em-cal-event.multiday,
	html body .epr-calendar-wrap:not(.epr-multiday-below) .em-cal-body .em-cal-event.multiday {
		display: none !important;
		grid-column: span 1 !important;
		grid-row: span 1 !important;
	}

	body.epr-printing .epr-calendar-wrap.epr-multiday-below .em-cal-body .em-cal-event.multiday,
	html body .epr-calendar-wrap.epr-multiday-below .em-cal-body .em-cal-event.multiday {
		grid-column: span 1 !important;
		grid-row: span 1 !important;
	}

	body.epr-printing .epr-calendar-wrap .em-cal-event:not(.multiday),
	html body .epr-calendar-wrap .em-cal-event:not(.multiday) {
		font-size: 10px !important;
		line-height: 1.2 !important;
		padding: 3px !important;
		margin-bottom: 2px !important;
	}

	body.epr-printing .epr-multiday-print-container,
	html body .epr-multiday-print-container {
		display: block !important;
		visibility: visible !important;
		max-height: none !important;
		page-break-inside: auto;
		break-inside: auto;
		margin-top: 10px !important;
		page-break-before: avoid !important;
	}

	body.epr-printing .epr-multiday-print-container .epr-multiday-grid,
	html body .epr-multiday-print-container .epr-multiday-grid {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 1.25rem;
	}

	body.epr-printing .epr-multiday-print-container .epr-multiday-card,
	html body .epr-multiday-print-container .epr-multiday-card {
		page-break-inside: avoid;
		break-inside: avoid;
		-webkit-print-color-adjust: exact !important;
		print-color-adjust: exact !important;
	}

	body.epr-printing .epr-calendar-wrap .em-cal-event:not(.multiday),
	body.epr-printing .epr-calendar-wrap .em-cal-event:not(.multiday) > div,
	body.epr-printing .epr-calendar-wrap .em-cal-event:not(.multiday) a,
	html body .epr-calendar-wrap .em-cal-event:not(.multiday),
	html body .epr-calendar-wrap .em-cal-event:not(.multiday) > div,
	html body .epr-calendar-wrap .em-cal-event:not(.multiday) a {
		-webkit-print-color-adjust: exact !important;
		print-color-adjust: exact !important;
		white-space: normal !important;
		word-wrap: break-word !important;
		overflow-wrap: break-word !important;
	}

	/*
	 * Themes / EM may set break-inside: avoid on rows or cells, which forces one page per row.
	 */
	body.epr-printing .epr-printable table,
	body.epr-printing .epr-printable thead,
	body.epr-printing .epr-printable tbody,
	body.epr-printing .epr-printable tr,
	body.epr-printing .epr-printable td,
	body.epr-printing .epr-printable th {
		page-break-inside: auto !important;
		break-inside: auto !important;
		page-break-after: auto !important;
		break-after: auto !important;
		page-break-before: auto !important;
		break-before: auto !important;
	}

	/* Tighter event chips in print so the grid fits on fewer sheets */
	body.epr-printing .epr-calendar-wrap table.em-calendar td li a,
	body.epr-printing .epr-calendar-wrap table.em-calendar tbody td li a,
	body.epr-printing .epr-calendar-wrap .em-calendar td li a,
	body.epr-printing .epr-calendar-wrap .em-calendar tbody td li a,
	body.epr-printing .epr-calendar-wrap table.em-calendar tbody tr td[colspan] a,
	body.epr-printing .epr-calendar-wrap table.em-calendar tbody td ul.events li a,
	body.epr-printing .epr-calendar-wrap table.em-calendar tbody .em-cal-event a,
	body.epr-printing .epr-calendar-wrap .em-calendar tbody .em-cal-event a {
		min-height: 0 !important;
	}

	body.epr-printing .epr-calendar-wrap .em-cal-body.event-style-pill .em-cal-event:not(.multiday) > div {
		min-height: 0 !important;
	}

	/* Text export print density: smaller type, tighter spacing, fixed 3-column portrait flow. */
	body.epr-printing .epr-text-export-wrap .epr-printable .epr-category-legend-filter,
	body.epr-printing .epr-public-events-wrap .epr-printable .epr-category-legend-filter {
		margin-bottom: 10px !important;
		padding-bottom: 0 !important;
		gap: 0.45rem 0.8rem !important;
	}

	.epr-cat-toggle-all {
		display: none !important;
	}

	.epr-category-legend-filter .epr-cat-legend-item.epr-cat-legend-item--print-hidden {
		display: none !important;
	}

	body.epr-printing .epr-text-export-wrap .epr-printable .epr-text-export-listing,
	body.epr-printing .epr-public-events-wrap .epr-printable .epr-text-export-listing,
	.epr-text-export-wrap .epr-printable .epr-text-export-listing,
	.epr-public-events-wrap .epr-printable .epr-text-export-listing {
		margin-top: 2.5mm !important;
		margin-bottom: 2.5mm !important;
		column-count: 3 !important;
		column-gap: 0.95rem !important;
		font-size: 0.88rem !important;
		line-height: 1.16 !important;
	}

	@media print and (orientation: landscape) {
		body.epr-printing .epr-text-export-wrap .epr-printable .epr-text-export-listing,
		body.epr-printing .epr-public-events-wrap .epr-printable .epr-text-export-listing,
		.epr-text-export-wrap .epr-printable .epr-text-export-listing,
		.epr-public-events-wrap .epr-printable .epr-text-export-listing {
			column-count: 4 !important;
			column-gap: 0.85rem !important;
		}
	}

	body.epr-printing .epr-text-export-wrap .epr-printable .epr-xml-listing__group,
	body.epr-printing .epr-public-events-wrap .epr-printable .epr-xml-listing__group {
		margin: 0 0 0.45rem !important;
	}

	body.epr-printing .epr-text-export-wrap .epr-printable .epr-xml-listing__entry,
	body.epr-printing .epr-public-events-wrap .epr-printable .epr-xml-listing__entry {
		padding: 0.05rem 0.1rem !important;
	}

	body.epr-printing .epr-text-export-wrap .epr-printable .epr-xml-listing__entry + .epr-xml-listing__entry,
	body.epr-printing .epr-public-events-wrap .epr-printable .epr-xml-listing__entry + .epr-xml-listing__entry {
		margin-top: 0.2rem !important;
	}

	body.epr-printing .epr-text-export-wrap .epr-printable .epr-event-title-row,
	body.epr-printing .epr-public-events-wrap .epr-printable .epr-event-title-row {
		padding-top: 0.2rem !important;
	}

	body.epr-printing .epr-text-export-wrap .epr-printable .epr-xml-listing__entry .epr-event-title-text,
	body.epr-printing .epr-text-export-wrap .epr-printable h3.epr-event-title-text,
	body.epr-printing .epr-public-events-wrap .epr-printable .epr-xml-listing__entry .epr-event-title-text,
	body.epr-printing .epr-public-events-wrap .epr-printable h3.epr-event-title-text {
		font-size: 11pt !important;
		line-height: 1.14 !important;
	}

	body.epr-printing .epr-text-export-wrap .epr-printable h2.epr-xml-listing__date-heading,
	body.epr-printing .epr-text-export-wrap .epr-printable h2.epr-xml-listing__date {
		margin: 0 0 0.28rem !important;
		font-size: 12pt !important;
		line-height: 1.1 !important;
	}

	body.epr-printing .epr-public-events-wrap .epr-printable h2.epr-xml-listing__date-heading,
	body.epr-printing .epr-public-events-wrap .epr-printable h2.epr-xml-listing__date {
		margin: 0 0 0.28rem !important;
		font-size: 12pt !important;
		line-height: 1.1 !important;
		color: #c80000 !important;
	}

	body.epr-printing .epr-public-events-wrap .epr-printable h2.epr-xml-listing__date-heading.epr-xml-listing__date-heading--section-gap,
	body.epr-printing .epr-public-events-wrap .epr-printable h2.epr-xml-listing__date.epr-xml-listing__date-heading--section-gap {
		margin-top: 50px !important;
		margin-bottom: 0.28rem !important;
	}

	@page {
		/* Balanced per-page whitespace: more breathing room, limited page-count impact. */
		margin: 14mm 12mm;
	}

	/* Suppress theme print CSS that appends attr(href) after links */
	.epr-calendar-wrap a::after,
	.epr-calendar-wrap a::before,
	.epr-public-events-wrap a::after,
	.epr-public-events-wrap a::before {
		content: none !important;
	}

	body.epr-printing .epr-multiday-below-list {
		margin-top: 0.75rem;
		padding-top: 0.75rem;
		page-break-inside: auto;
		break-inside: auto;
	}

	body.epr-printing .epr-multiday-chip {
		print-color-adjust: exact;
		-webkit-print-color-adjust: exact;
	}
}
