.cmpe-page { width: 100%; }
.cmpe-page img { max-width: 100%; height: auto; }

/* Rows & columns */
.cmpe-part .cmpe-row,
.cmpe-page-content .cmpe-row {
	display: grid;
	gap: 24px;
	align-items: center;
}
.cmpe-row-cols-1 { grid-template-columns: 1fr; }
.cmpe-row-cols-2 { grid-template-columns: 1fr 1fr; }
.cmpe-row-cols-3 { grid-template-columns: 1fr 1fr 1fr; }
.cmpe-row-cols-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
.cmpe-row-cols-5 { grid-template-columns: repeat(5, 1fr); }
.cmpe-row-cols-6 { grid-template-columns: repeat(6, 1fr); }

/* Column Settings > Width: custom track list via CSS variable; the phone
   breakpoint's stacking rules below still override this. */
.cmpe-row.cmpe-row-customcols { grid-template-columns: var(--cmpe-cols); }

/* Row vertical alignment (Row Settings > Vertical Alignment).
   Middle is the default; Stretch makes every column the same height. */
.cmpe-row.cmpe-valign-top { align-items: start; }
.cmpe-row.cmpe-valign-bottom { align-items: end; }
.cmpe-row.cmpe-valign-stretch { align-items: stretch; }

/* In a stretched row the columns become flex stacks so their content (and
   any element backgrounds) can fill the full column height. */
.cmpe-valign-stretch .cmpe-col {
	display: flex;
	flex-direction: column;
}
.cmpe-valign-stretch .cmpe-col > :only-child { flex: 1 1 auto; }

/* Per-element vertical alignment (Spacing & Background > Vertical
   Alignment). A column containing such an element stretches to the full
   row height; the element's inline auto margins then position it.
   Elements without an alignment keep sitting centered. */
.cmpe-col-valign {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* In a Stretch (equal height) row the element's box always fills the
   column - the auto margins resolve to zero - and Vertical Alignment
   positions the CONTENT inside the stretched box instead. */
.cmpe-valign-stretch .cmpe-col > .cmpe-el-valign-top,
.cmpe-valign-stretch .cmpe-col > .cmpe-el-valign-middle,
.cmpe-valign-stretch .cmpe-col > .cmpe-el-valign-bottom {
	display: flex;
	flex-direction: column;
}
.cmpe-valign-stretch .cmpe-col > .cmpe-el-valign-top { justify-content: flex-start; }
.cmpe-valign-stretch .cmpe-col > .cmpe-el-valign-middle { justify-content: center; }
.cmpe-valign-stretch .cmpe-col > .cmpe-el-valign-bottom { justify-content: flex-end; }

/* Buttons */
.cmpe-btn-front {
	display: inline-block;
	padding: 11px 26px;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 600;
	transition: opacity .15s, background .15s;
}
.cmpe-btn-front-solid { background: #2271b1; color: #fff; }
.cmpe-btn-front-solid:hover { background: #135e96; color: #fff; }
.cmpe-btn-front-outline { background: transparent; color: #2271b1; border: 2px solid #2271b1; }
.cmpe-btn-front-outline:hover { background: #2271b1; color: #fff; }

/* Navigation menu */
.cmpe-el-menu ul {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.cmpe-el-menu a { text-decoration: none; color: inherit; font-weight: 500; }
.cmpe-el-menu a:hover { text-decoration: underline; }

/* Logo */
.cmpe-el-logo { display: inline-block; line-height: 0; }

/* Divider */
.cmpe-el-divider { border: 0; border-top: 1px solid #dcdcde; margin: 10px 0; }

/* YouTube video: fills its column at a 16:9 ratio */
.cmpe-el-youtube {
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 10px;
	overflow: hidden;
}
.cmpe-el-youtube iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

/* Google Maps: fills its column; the element's Map Height setting renders
   as the iframe's min-height, so the map is always at least that tall and
   grows taller to match a bigger neighboring column in Stretch rows. */
.cmpe-el-gmap {
	width: 100%;
	border-radius: 10px;
	overflow: hidden;
}
.cmpe-el-gmap iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
.cmpe-valign-stretch .cmpe-el-gmap { height: 100%; display: flex; }
.cmpe-valign-stretch .cmpe-el-gmap iframe { flex: 1 1 auto; }

/* Responsive */
@media (max-width: 782px) {
	.cmpe-part .cmpe-row,
	.cmpe-page-content .cmpe-row {
		grid-template-columns: 1fr;
	}
	.cmpe-part-header .cmpe-row-cols-2 { grid-template-columns: auto 1fr; }
	.cmpe-part-header .cmpe-row-cols-3 { grid-template-columns: auto 1fr auto; }
	.cmpe-part-header .cmpe-row-cols-4 { grid-template-columns: auto 1fr auto auto; }
	.cmpe-el-menu ul { gap: 14px; }

	/* Row Settings > Columns on Phones: keep side by side */
	.cmpe-row.cmpe-row-mkeep.cmpe-row-cols-2 { grid-template-columns: 1fr 1fr; }
	.cmpe-row.cmpe-row-mkeep.cmpe-row-cols-3 { grid-template-columns: 1fr 1fr 1fr; }
	.cmpe-row.cmpe-row-mkeep.cmpe-row-cols-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
	.cmpe-row.cmpe-row-mkeep.cmpe-row-cols-5 { grid-template-columns: repeat(5, 1fr); }
	.cmpe-row.cmpe-row-mkeep.cmpe-row-cols-6 { grid-template-columns: repeat(6, 1fr); }
	.cmpe-row.cmpe-row-mkeep.cmpe-row-customcols { grid-template-columns: var(--cmpe-cols); }
	/* ...or always stack (headers included) */
	.cmpe-row.cmpe-row-mstack { grid-template-columns: 1fr !important; }
	.cmpe-row.cmpe-row-mstack > .cmpe-col { order: 0 !important; }
}

/* Centered rows */
.cmpe-row-center { justify-items: center; text-align: center; }
.cmpe-row-center .cmpe-col { display: flex; flex-direction: column; align-items: center; }

/* Mobile navigation menu */
.cmpe-menu-mobile { display: none; position: relative; }
.cmpe-menu-toggle {
	background: none;
	border: 0;
	padding: 4px;
	cursor: pointer;
	line-height: 0;
	display: inline-block;
}
.cmpe-menu-dropdown {
	position: absolute;
	top: calc(100% + 6px);
	min-width: 210px;
	list-style: none;
	margin: 0;
	padding: 6px 0;
	border-radius: 10px;
	box-shadow: 0 8px 26px rgba(0,0,0,.16);
	z-index: 9999;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-10px);
	transition: opacity .25s ease, transform .25s ease, visibility .25s;
	text-align: left;
}

/* The dropdown is also a ul inside .cmpe-el-menu, so it would inherit the
   desktop menu's inline-flex layout, which shrinks each li to its text and
   keeps hover backgrounds from spanning the panel. Force a block list. */
.cmpe-el-menu ul.cmpe-menu-dropdown {
	display: block;
	gap: 0;
}
.cmpe-el-menu ul.cmpe-menu-dropdown li {
	display: block;
	width: 100%;
}
.cmpe-el-menu ul.cmpe-menu-dropdown a {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
}
.cmpe-menu-dropdown.open {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.cmpe-dd-right { right: 0; }
.cmpe-dd-left { left: 0; }
.cmpe-dd-center { left: 50%; transform: translate(-50%, -10px); }
.cmpe-dd-center.open { transform: translate(-50%, 0); }
.cmpe-menu-dropdown li { margin: 0; }
.cmpe-menu-dropdown a {
	display: block;
	padding: 11px 18px;
	text-decoration: none;
	font-weight: 500;
	transition: background .15s;
}
@media (max-width: 1024px) {
	.cmpe-el-menu .cmpe-menu-desktop { display: none; }
	.cmpe-menu-mobile { display: block; }
	/* Mobile button set to Left: its column leads the row. */
	.cmpe-row > .cmpe-col-mfirst { order: -1; }
	.cmpe-col-mfirst .cmpe-el-menu { text-align: left !important; }
	/* Centered rows shrink columns to their content, which pinned the menu
	   button to the middle. The menu (and its column) take the full width
	   so the menu's own Button Alignment decides where the button goes;
	   other elements in the column stay centered. */
	.cmpe-row-center > .cmpe-col-hasmenu { justify-self: stretch; }
	.cmpe-row-center .cmpe-col-hasmenu > .cmpe-el-menu,
	.cmpe-row-center .cmpe-col-hasmenu > .cmpe-el-wrap-menu { align-self: stretch; width: 100%; box-sizing: border-box; }
	/* Header rows: the button's column hugs the button, the rest share the width. */
	.cmpe-part-header .cmpe-row.cmpe-row-mfirst.cmpe-row-cols-2 { grid-template-columns: auto 1fr; }
	.cmpe-part-header .cmpe-row.cmpe-row-mfirst.cmpe-row-cols-3 { grid-template-columns: auto 1fr auto; }
	.cmpe-part-header .cmpe-row.cmpe-row-mfirst.cmpe-row-cols-4 { grid-template-columns: auto 1fr auto auto; }
	.cmpe-menu-dropdown,
	.cmpe-dd-left,
	.cmpe-dd-right,
	.cmpe-dd-center {
		position: fixed;
		left: 0;
		right: 0;
		width: 100%;
		min-width: 0;
		border-radius: 0;
		box-sizing: border-box;
		transform: translateY(-10px);
	}
	.cmpe-menu-dropdown.open,
	.cmpe-dd-center.open {
		transform: translateY(0);
	}
}

/* Login button element */
.cmpe-el-login .cmpe-btn-front { cursor: pointer; }

/* Login page: the member login form between the Login Page Template and the Footer */
.cmpe-login-area { padding: 40px 20px; }
.cmpe-login-area .cm-login-box { margin: 0 auto; }

/* Shown until a Home Page exists */
.cmpe-placeholder {
	padding: 40px 20px;
	text-align: center;
	border: 1px dashed #c3c4c7;
	border-radius: 8px;
	color: #50575e;
	font-size: 16px;
}

/* -------------------- Sponsorships (1.10.24) -------------------- */
.cmpe-sponsors {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px;
	align-items: stretch; color: var(--sp-text, #1d2327);
}
.cmpe-sponsor-card {
	display: flex; flex-direction: column; overflow: hidden; min-width: 0;
	background: var(--sp-bg, #fff); border: var(--sp-border, 1px solid #e2e4e7);
	border-radius: var(--sp-radius, 12px); box-shadow: var(--sp-shadow, 0 6px 18px rgba(0,0,0,.12));
	color: var(--sp-text, #1d2327);
}
.cmpe-sponsor-img { line-height: 0; background: rgba(0,0,0,.04); }
.cmpe-sponsor-img img { display: block; width: 100%; height: 200px; object-fit: cover; }
.cmpe-sponsor-body { display: flex; flex-direction: column; gap: 10px; padding: 20px; flex: 1; }
.cmpe-sponsor-card .cmpe-sponsor-name { margin: 0; font-size: 22px; line-height: 1.25; color: inherit; }
.cmpe-sponsor-amount { font-size: 26px; font-weight: 700; line-height: 1.2; color: inherit; }
.cmpe-sponsor-desc { font-size: 15px; line-height: 1.6; color: inherit; }
.cmpe-sponsor-desc > :first-child { margin-top: 0; }
.cmpe-sponsor-desc > :last-child { margin-bottom: 0; }
.cmpe-sponsor-desc ul, .cmpe-sponsor-desc ol { padding-left: 1.3em; margin: 0 0 .8em; }
.cmpe-sponsor-desc a { color: inherit; text-decoration: underline; }
.cmpe-sponsor-pay { margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(0,0,0,.08); display: flex; flex-direction: column; gap: 10px; }
.cmpe-sp-label, .cmpe-sp-payer label { font-size: 13px; font-weight: 600; color: inherit; margin: 0; }
.cmpe-sponsor-card select.cmpe-sp-method,
.cmpe-sponsor-card .cmpe-sp-payer input {
	width: 100%; min-height: 40px; padding: 8px 10px; font-size: 15px; color: #1d2327;
	background: #fff; border: 1px solid #c3c4c7; border-radius: 6px; box-sizing: border-box;
}
.cmpe-sp-payer { display: flex; flex-direction: column; gap: 6px; margin-bottom: 4px; }
.cmpe-sp-online, .cmpe-sp-check { display: flex; flex-direction: column; gap: 10px; }
.cmpe-sp-online[hidden], .cmpe-sp-check[hidden], .cmpe-sponsor-card [hidden] { display: none !important; }
.cmpe-sp-check-text { margin: 0; font-size: 14.5px; color: inherit; }
.cmpe-sponsor-card .cmpe-sp-btn,
.cmpe-sponsor-card .cm-card-pay {
	display: block; width: 100%; box-sizing: border-box; text-align: center; cursor: pointer;
	padding: 12px 16px; font-size: 16px; font-weight: 600; line-height: 1.2; text-decoration: none;
	background: var(--sp-btn, #2271b1); color: var(--sp-btn-text, #fff); border: 0; border-radius: 8px;
	transition: background-color .15s ease;
}
.cmpe-sponsor-card .cmpe-sp-btn:hover, .cmpe-sponsor-card .cmpe-sp-btn:focus-visible,
.cmpe-sponsor-card .cm-card-pay:hover:not(:disabled), .cmpe-sponsor-card .cm-card-pay:focus-visible {
	background: var(--sp-btn-hover, #135e96); color: var(--sp-btn-text, #fff); text-decoration: none;
}
.cmpe-sponsor-card .cmpe-sp-btn:disabled, .cmpe-sponsor-card .cm-card-pay:disabled { opacity: .6; cursor: not-allowed; }
.cmpe-sponsor-card .cmpe-sp-btn:focus-visible, .cmpe-sponsor-card .cm-card-pay:focus-visible { outline: 3px solid rgba(34,113,177,.35); outline-offset: 2px; }
.cmpe-sponsor-card .cm-card-box { margin: 4px 0 10px; min-height: 90px; }
.cmpe-sponsor-card .cm-card-note { font-size: 12.5px; opacity: .75; margin: 8px 0 0; }
.cmpe-sp-msg { margin: 0; font-size: 14px; color: #b32d2e; min-height: 0; }
.cmpe-sp-msg:empty { display: none; }
.cmpe-sp-msg.is-ok, .cmpe-sp-msg.cm-renew-ok { color: #1a7f37; font-weight: 600; }
.cmpe-sp-msg a { color: inherit; text-decoration: underline; margin-left: 4px; }
@media (max-width: 600px) {
	.cmpe-sponsors { gap: 16px; }
	.cmpe-sponsor-img img { height: 180px; }
}

/* -------------------- Hide on Desktop / Hide on Mobile (1.10.27) -------------------- */
@media (min-width: 783px) {
	.cmpe-hide-desktop { display: none !important; }
}
@media (max-width: 782px) {
	.cmpe-hide-mobile { display: none !important; }
}

/* Hidden columns give up their grid track (1.10.28) */
@media (min-width: 783px) {
	.cmpe-row.cmpe-row-dhide.cmpe-row-dhide.cmpe-row-dhide { grid-template-columns: var(--cmpe-cols-d); }
}
@media (max-width: 782px) {
	.cmpe-row.cmpe-row-mhide.cmpe-row-mhide.cmpe-row-mhide.cmpe-row-mhide { grid-template-columns: var(--cmpe-cols-m); }
}

/* -------------------- Header: Stick to the Top (1.10.29) -------------------- */
.cmpe-part-header.cmpe-part-sticky {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px); /* below the WordPress toolbar when it's showing */
	z-index: 1000;
}
@media (max-width: 600px) {
	/* The WordPress toolbar scrolls away on small phones. */
	.cmpe-part-header.cmpe-part-sticky { top: 0; }
}
/* Fallback when the theme's page wrapper prevents sticky (see site.js). */
.cmpe-part-header.cmpe-part-sticky.cmpe-sticky-js { position: relative; top: auto; }
.cmpe-part-header.cmpe-part-sticky.cmpe-sticky-js.is-fixed { position: fixed; z-index: 1000; }

/* Header row: Stick to the Top (1.14.28). site.js pins it once it reaches the top. */
.cmpe-row.cmpe-row-sticky.is-fixed { position: fixed; z-index: 1000; margin: 0; box-shadow: 0 2px 12px rgba(0, 0, 0, .08); }
.cmpe-row-sticky-spacer { display: block; height: 0; }

/* 5 and 6 equal columns: three per line on tablets (1.10.33) */
@media (min-width: 783px) and (max-width: 1024px) {
	.cmpe-page-content .cmpe-row.cmpe-row-cols-5:not(.cmpe-row-customcols),
	.cmpe-page-content .cmpe-row.cmpe-row-cols-6:not(.cmpe-row-customcols) { grid-template-columns: repeat(3, 1fr); }
}

/* Navigation Menu: View Cart / Login as icons (1.10.41) */
.cmpe-menu-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.cmpe-el-menu li.cmpe-mi > a { display: inline-flex; align-items: center; gap: 7px; }
.cmpe-mi-icon { position: relative; display: inline-flex; align-items: center; line-height: 0; }
.cmpe-mi-svg { width: 1.35em; height: 1.35em; display: block; }
.cmpe-menu-desktop li.cmpe-mi > a:hover { text-decoration: none; opacity: .85; }
.cmpe-menu-desktop .cmpe-mi-icon .cmsc-menu-count {
	position: absolute; top: -8px; right: -11px; margin: 0;
	min-width: 17px; height: 17px; line-height: 17px; padding: 0 4px; font-size: 10px;
	box-shadow: 0 0 0 2px rgba(255,255,255,.9);
}
.cmpe-menu-dropdown li.cmpe-mi > a { display: flex; }
.cmpe-menu-dropdown .cmpe-mi-svg { width: 1.25em; height: 1.25em; }

/* Posts Archive Page (1.10.43) */
.cmpe-posts-wrap { max-width: 1180px; margin: 0 auto; padding: 24px 20px 48px; box-sizing: border-box; container-type: inline-size; }
.cmpe-posts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.cmpe-post-card { background: #fff; border: 1px solid #e2e4e7; border-radius: 12px; overflow: hidden; transition: box-shadow .18s ease, transform .18s ease; }
.cmpe-post-card:hover { box-shadow: 0 10px 26px rgba(0,0,0,.09); transform: translateY(-2px); }
.cmpe-post-card-link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.cmpe-post-card-link:hover { color: inherit; text-decoration: none; }
.cmpe-post-card-img { display: block; aspect-ratio: 1200 / 630; background: #f0f0f1; overflow: hidden; }
.cmpe-post-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cmpe-post-card-body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; flex: 1; }
.cmpe-post-card-date { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: #646970; font-weight: 600; }
.cmpe-post-card-title { font-size: 1.15em; font-weight: 700; line-height: 1.3; }
.cmpe-post-card-excerpt { color: #50575e; line-height: 1.55; font-size: .95em; }
.cmpe-post-card-more { margin-top: auto; padding-top: 6px; font-weight: 600; color: #2271b1; color: var(--cm-brand, #2271b1); }
.cmpe-posts-none { text-align: center; color: #646970; padding: 30px 0; }
.cmpe-posts-pager { display: flex; justify-content: center; align-items: center; gap: 18px; margin-top: 26px; }
.cmpe-posts-pager a { font-weight: 600; }
@container (max-width: 860px) { .cmpe-posts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (max-width: 540px) { .cmpe-posts-grid { grid-template-columns: 1fr; } }

/* Administrators viewing a draft or trashed page/post (1.10.45) */
.cmpe-unpublished-bar { position: sticky; top: 0; z-index: 50; background: #fcf9e8; color: #6b4b00; border-bottom: 2px solid #dba617; padding: 10px 16px; font: 600 14px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; text-align: center; }
.cmpe-unpublished-trash { background: #fcf0f1; color: #8a2424; border-bottom-color: #d63638; }

/* Display Post List element (1.10.47) */
.cmpe-plist { display: grid; gap: 18px; }
.cmpe-plist-item { display: flex; background: #fff; color: inherit; }
.cmpe-plist-thumb { display: block; flex-shrink: 0; overflow: hidden; background: #f0f0f1; }
.cmpe-plist-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cmpe-plist-body { flex: 1; min-width: 0; }
.cmpe-plist-title { margin: 0 0 6px; font-size: 1.2em; line-height: 1.3; }
.cmpe-plist-title a { color: inherit; text-decoration: none; }
.cmpe-plist-title a:hover { text-decoration: underline; }
.cmpe-plist-desc { margin: 0; opacity: .8; line-height: 1.55; }
.cmpe-plist-btn { display: inline-block; padding: 10px 18px; border-radius: 6px; background: var(--cm-brand, #2271b1); color: #fff !important; text-decoration: none !important; font-weight: 600; white-space: nowrap; line-height: 1.2; }
.cmpe-plist-btn:hover { filter: brightness(.9); }
.cmpe-plist-btn:focus-visible { outline: 3px solid rgba(34,113,177,.45); outline-offset: 2px; }
/* List: each post in one horizontal row */
.cmpe-plist-list .cmpe-plist-item { flex-direction: row; align-items: center; gap: 20px; padding: 16px 0; border-bottom: 1px solid rgba(0,0,0,.1); background: transparent; }
.cmpe-plist-list .cmpe-plist-item:last-child { border-bottom: 0; }
.cmpe-plist-list .cmpe-plist-thumb { width: 180px; aspect-ratio: 16 / 10; border-radius: 8px; }
.cmpe-plist-list .cmpe-plist-action { flex-shrink: 0; }
.cmpe-plist-list { gap: 0; }
/* Cards: rectangles with a slight drop shadow */
.cmpe-plist-cards { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.cmpe-plist-cards .cmpe-plist-item { flex-direction: column; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06); border: 1px solid rgba(0,0,0,.05); }
.cmpe-plist-cards .cmpe-plist-thumb { width: 100%; aspect-ratio: 16 / 9; }
.cmpe-plist-cards .cmpe-plist-body { padding: 16px 18px 8px; }
.cmpe-plist-cards .cmpe-plist-action { padding: 8px 18px 18px; }
.cmpe-plist-empty p { margin: 0; opacity: .7; }
@media (max-width: 640px) {
	.cmpe-plist-list .cmpe-plist-item { flex-wrap: wrap; gap: 12px; }
	.cmpe-plist-list .cmpe-plist-thumb { width: 100%; }
	.cmpe-plist-list .cmpe-plist-action { width: 100%; }
}

/* Subscribe to Feed element (1.10.49) */
.cmpe-feed-btn { display: inline-flex; align-items: center; gap: 8px; }
.cmpe-feed-icon { flex-shrink: 0; }
.cmpe-feed-pop { position: fixed; inset: 0; z-index: 100050; background: rgba(15, 23, 42, .55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.cmpe-feed-box { position: relative; width: 100%; max-width: 440px; background: #fff; color: #1d2327; border-radius: 14px; padding: 26px 24px 20px; box-shadow: 0 20px 50px rgba(0,0,0,.25); font-family: inherit; box-sizing: border-box; }
.cmpe-feed-x { position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; border: 0; background: none; font-size: 26px; line-height: 1; color: #50575e; cursor: pointer; border-radius: 8px; }
.cmpe-feed-x:hover { background: #f0f0f1; }
.cmpe-feed-title { margin: 0 36px 6px 0; font-size: 1.3em; line-height: 1.3; color: #1d2327; }
.cmpe-feed-lead, .cmpe-feed-or { margin: 0 0 12px; font-size: .95em; color: #50575e; line-height: 1.5; }
.cmpe-feed-opts { display: grid; gap: 8px; margin-bottom: 16px; }
.cmpe-feed-opt { display: block; padding: 11px 14px; border: 1px solid #dcdcde; border-radius: 8px; color: #1d2327 !important; text-decoration: none !important; font-weight: 600; background: #fff; }
.cmpe-feed-opt::after { content: " \2192"; color: #f26522; }
.cmpe-feed-opt:hover, .cmpe-feed-opt:focus-visible { border-color: #f26522; background: #fff7f2; outline: none; }
.cmpe-feed-copyrow { display: flex; gap: 8px; }
.cmpe-feed-copyrow input { flex: 1; min-width: 0; padding: 9px 10px; border: 1px solid #c3c4c7; border-radius: 8px; font-size: 13px; color: #1d2327; background: #f6f7f7; }
.cmpe-feed-copy { padding: 9px 16px; border: 0; border-radius: 8px; background: #f26522; color: #fff; font-weight: 600; cursor: pointer; }
.cmpe-feed-copy:hover { background: #d9541a; }
.cmpe-feed-status { margin: 8px 0 0; min-height: 1.2em; font-size: .85em; color: #00732a; }

/* -------------------- Columns follow their widths on phones (1.10.61) --------------------
   Rows whose columns have widths (Width or Width on Phones) stay side by side
   on phones and wrap onto a new line when the widths add up to more than 100%. */
.cmpe-part .cmpe-row, .cmpe-page-content .cmpe-row { --cmpe-gap: 24px; }
@media (max-width: 782px) {
	.cmpe-part .cmpe-row.cmpe-row-mflex,
	.cmpe-page-content .cmpe-row.cmpe-row-mflex { display: flex !important; flex-wrap: wrap; gap: var(--cmpe-gap); }
	.cmpe-row.cmpe-row-mflex > .cmpe-col { flex: 0 0 var(--cmpe-mw, 100%); max-width: 100%; min-width: 0; box-sizing: border-box; order: 0; }
	.cmpe-row.cmpe-row-mflex > .cmpe-col.cmpe-col-mgrow { flex: 1 1 0; min-width: 30%; }
	.cmpe-row.cmpe-row-mflex.cmpe-valign-top { align-items: flex-start; }
	.cmpe-row.cmpe-row-mflex.cmpe-valign-bottom { align-items: flex-end; }
	.cmpe-row.cmpe-row-mflex.cmpe-row-center { justify-content: center; }
}

/* ------------------------------------------------------------------
 * Mobile Settings (rows, columns, elements): phone-only overrides.
 * The builder writes CSS variables + classes; they only take effect here.
 * Precedence: element > column > row.
 * ---------------------------------------------------------------- */
@media (max-width: 782px) {
	/* Horizontal alignment: the text/content inside, including elements
	   that set their own text-align inline. */
	.cmpe-row.cmpe-m-al-left, .cmpe-row.cmpe-m-al-left [style*="text-align"] { text-align: left !important; }
	.cmpe-row.cmpe-m-al-center, .cmpe-row.cmpe-m-al-center [style*="text-align"] { text-align: center !important; }
	.cmpe-row.cmpe-m-al-right, .cmpe-row.cmpe-m-al-right [style*="text-align"] { text-align: right !important; }
	.cmpe-row > .cmpe-col.cmpe-m-al-left, .cmpe-row > .cmpe-col.cmpe-m-al-left [style*="text-align"] { text-align: left !important; }
	.cmpe-row > .cmpe-col.cmpe-m-al-center, .cmpe-row > .cmpe-col.cmpe-m-al-center [style*="text-align"] { text-align: center !important; }
	.cmpe-row > .cmpe-col.cmpe-m-al-right, .cmpe-row > .cmpe-col.cmpe-m-al-right [style*="text-align"] { text-align: right !important; }
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-al-left, .cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-al-left [style*="text-align"] { text-align: left !important; }
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-al-center, .cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-al-center [style*="text-align"] { text-align: center !important; }
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-al-right, .cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-al-right [style*="text-align"] { text-align: right !important; }

	/* ...and the boxes themselves where they are laid out side by side
	   (flex rows on phones, Center Elements rows). */
	.cmpe-row.cmpe-row-mflex.cmpe-m-al-left { justify-content: flex-start; }
	.cmpe-row.cmpe-row-mflex.cmpe-m-al-center { justify-content: center; }
	.cmpe-row.cmpe-row-mflex.cmpe-m-al-right { justify-content: flex-end; }
	.cmpe-row.cmpe-row-center.cmpe-m-al-left { justify-items: start; }
	.cmpe-row.cmpe-row-center.cmpe-m-al-right { justify-items: end; }
	.cmpe-row.cmpe-row-center.cmpe-m-al-left > .cmpe-col { align-items: flex-start; }
	.cmpe-row.cmpe-row-center.cmpe-m-al-right > .cmpe-col { align-items: flex-end; }
	.cmpe-row.cmpe-row-center > .cmpe-col.cmpe-m-al-left { align-items: flex-start; }
	.cmpe-row.cmpe-row-center > .cmpe-col.cmpe-m-al-center { align-items: center; }
	.cmpe-row.cmpe-row-center > .cmpe-col.cmpe-m-al-right { align-items: flex-end; }
	.cmpe-row.cmpe-row-center > .cmpe-col > .cmpe-el-wrap.cmpe-m-al-left { align-self: flex-start; }
	.cmpe-row.cmpe-row-center > .cmpe-col > .cmpe-el-wrap.cmpe-m-al-center { align-self: center; }
	.cmpe-row.cmpe-row-center > .cmpe-col > .cmpe-el-wrap.cmpe-m-al-right { align-self: flex-end; }

	/* Vertical alignment */
	.cmpe-row.cmpe-m-va-top { align-items: start !important; }
	.cmpe-row.cmpe-m-va-middle { align-items: center !important; }
	.cmpe-row.cmpe-m-va-bottom { align-items: end !important; }
	.cmpe-row.cmpe-row-mflex.cmpe-m-va-top { align-items: flex-start !important; }
	.cmpe-row.cmpe-row-mflex.cmpe-m-va-bottom { align-items: flex-end !important; }
	.cmpe-row > .cmpe-col.cmpe-m-va-top { align-self: flex-start !important; }
	.cmpe-row > .cmpe-col.cmpe-m-va-middle { align-self: center !important; }
	.cmpe-row > .cmpe-col.cmpe-m-va-bottom { align-self: flex-end !important; }
	.cmpe-row > .cmpe-col.cmpe-col-mvalign { display: flex; flex-direction: column; align-self: stretch; }
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-va-top { margin-top: 0 !important; margin-bottom: auto !important; }
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-va-middle { margin-top: auto !important; margin-bottom: auto !important; }
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-va-bottom { margin-top: auto !important; margin-bottom: 0 !important; }

	/* Width: a maximum width, centered unless aligned left/right. */
	.cmpe-row.cmpe-m-w,
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-w {
		max-width: var(--cmpe-m-w) !important;
		width: 100%;
		box-sizing: border-box;
		margin-left: auto !important;
		margin-right: auto !important;
	}
	.cmpe-row.cmpe-m-w.cmpe-m-al-left,
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-w.cmpe-m-al-left { margin-left: 0 !important; }
	.cmpe-row.cmpe-m-w.cmpe-m-al-right,
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-w.cmpe-m-al-right { margin-right: 0 !important; }

	/* Padding and margin (the Mobile margin wins over width centering). */
	.cmpe-row.cmpe-m-pad,
	.cmpe-row > .cmpe-col.cmpe-m-pad,
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-pad { padding: var(--cmpe-m-pad) !important; }
	.cmpe-row.cmpe-m-mar.cmpe-m-mar,
	.cmpe-row > .cmpe-col.cmpe-m-mar.cmpe-m-mar,
	.cmpe-row > .cmpe-col > .cmpe-el-wrap.cmpe-m-mar.cmpe-m-mar { margin: var(--cmpe-m-mar) !important; }
}

/* ------------------------------------------------------------------
 * Popup Builder popups
 * ---------------------------------------------------------------- */
.cm-popup { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; }
.cm-popup[hidden] { display: none !important; }
.cm-popup-overlay { position: absolute; inset: 0; opacity: 0; transition: opacity .2s ease; }
.cm-popup-dialog {
	position: relative; width: 100%; max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); overflow: auto;
	box-sizing: border-box; box-shadow: 0 24px 70px rgba(0,0,0,.35); outline: none;
	opacity: 0; transform: translateY(14px) scale(.98); transition: opacity .2s ease, transform .2s ease;
	-webkit-overflow-scrolling: touch; overscroll-behavior: contain;
}
.cm-popup.is-open .cm-popup-overlay { opacity: 1; }
.cm-popup.is-open .cm-popup-dialog { opacity: 1; transform: none; }
.cm-popup-full .cm-popup-dialog { max-width: none !important; min-height: calc(100vh - 40px); }
.cm-popup-close {
	position: absolute; top: 8px; right: 8px; z-index: 2; width: 36px; height: 36px; border-radius: 50%;
	border: 0; background: rgba(0,0,0,.06); color: inherit; font-size: 26px; line-height: 36px; text-align: center;
	cursor: pointer; padding: 0;
}
.cm-popup-close:hover { background: rgba(0,0,0,.14); }
.cm-popup-close:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.cm-popup-content > .cmpe-row + .cmpe-row { margin-top: 16px; }
html.cm-popup-lock, html.cm-popup-lock body { overflow: hidden; }
@media (max-width: 782px) {
	.cm-popup { padding: 12px; }
	.cm-popup-dialog { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
}
@media (prefers-reduced-motion: reduce) {
	.cm-popup-overlay, .cm-popup-dialog { transition: none; }
}

/* Stripe card field (Settings > Payment Processor > Stripe) */
.cm-card-field.cm-card-stripe { padding: 12px 14px; border: 1px solid #c3c4c7; border-radius: 6px; background: #fff; min-height: 0; }

/* ------------------------------------------------------------------
 * Design settings (1.14.0)
 * ---------------------------------------------------------------- */
/* Row Content Alignment: Right (Center is .cmpe-row-center above) */
.cmpe-row-right { justify-items: end; text-align: right; }
.cmpe-row-right .cmpe-col { display: flex; flex-direction: column; align-items: flex-end; }
/* Column Content Alignment */
.cmpe-row > .cmpe-col.cmpe-col-al-left { text-align: left; }
.cmpe-row > .cmpe-col.cmpe-col-al-center { text-align: center; display: flex; flex-direction: column; align-items: center; }
.cmpe-row > .cmpe-col.cmpe-col-al-right { text-align: right; display: flex; flex-direction: column; align-items: flex-end; }
.cmpe-col-al-center > .cmpe-el-boxed, .cmpe-col-al-right > .cmpe-el-boxed { align-self: stretch; }
.cmpe-row-contained { box-sizing: border-box; }

/* Buttons: colors, corner rounding, size, full width */
.cmpe-btn-front.cmpe-btn-front-solid.cmpe-btn-custom { background: var(--cmpe-b-bg, #2271b1); color: var(--cmpe-b-fg, #fff); }
.cmpe-btn-front.cmpe-btn-front-solid.cmpe-btn-custom:hover { background: var(--cmpe-b-bg, #2271b1); color: var(--cmpe-b-fg, #fff); filter: brightness(.9); }
.cmpe-btn-front.cmpe-btn-front-outline.cmpe-btn-custom { background: transparent; color: var(--cmpe-b-bg, #2271b1); border-color: var(--cmpe-b-bg, #2271b1); }
.cmpe-btn-front.cmpe-btn-front-outline.cmpe-btn-custom:hover { background: var(--cmpe-b-bg, #2271b1); color: var(--cmpe-b-fg, #fff); }
.cmpe-btn-front.cmpe-btn-custom.cmpe-btn-hov:hover { background: var(--cmpe-b-hbg, var(--cmpe-b-bg, #135e96)); color: var(--cmpe-b-hfg, var(--cmpe-b-fg, #fff)); border-color: var(--cmpe-b-hbg, var(--cmpe-b-bg, #135e96)); filter: none; }
.cmpe-btn-front.cmpe-btn-sm { padding: 7px 16px; font-size: .88em; }
.cmpe-btn-front.cmpe-btn-lg { padding: 15px 36px; font-size: 1.15em; }
.cmpe-btn-front.cmpe-btn-full { display: flex; justify-content: center; width: 100%; box-sizing: border-box; text-align: center; }
.cmpe-feed-btn.cmpe-btn-full { display: flex; }

/* Text link color */
.cmpe-el-text.cmpe-has-link a { color: var(--cmpe-link); }

/* Image caption and Click to Enlarge */
.cmpe-el-caption { margin-top: 8px; font-size: .9em; opacity: .75; line-height: 1.4; }
a.cmpe-lightbox { cursor: zoom-in; display: inline-block; }
.cmpe-lb { position: fixed; inset: 0; z-index: 100060; background: rgba(10, 12, 16, .9); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px; box-sizing: border-box; opacity: 0; transition: opacity .2s ease; }
.cmpe-lb.is-open { opacity: 1; }
.cmpe-lb img { max-width: 100%; max-height: calc(100vh - 110px); max-height: calc(100dvh - 110px); object-fit: contain; border-radius: 6px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.cmpe-lb-cap { color: #f0f0f1; margin: 12px 0 0; font-size: 15px; text-align: center; max-width: 760px; }
.cmpe-lb-x { position: absolute; top: 14px; right: 16px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; font-size: 30px; line-height: 44px; cursor: pointer; }
.cmpe-lb-x:hover, .cmpe-lb-x:focus-visible { background: rgba(255,255,255,.28); outline: none; }
html.cmpe-lb-lock, html.cmpe-lb-lock body { overflow: hidden; }

/* Entrance animations (site.js adds .cmpe-js to <html> and .cmpe-in when the box scrolls into view) */
.cmpe-js .cmpe-anim { opacity: 0; transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); will-change: opacity, transform; }
.cmpe-js .cmpe-anim-up { transform: translateY(32px); }
.cmpe-js .cmpe-anim-down { transform: translateY(-32px); }
.cmpe-js .cmpe-anim-left { transform: translateX(-40px); }
.cmpe-js .cmpe-anim-right { transform: translateX(40px); }
.cmpe-js .cmpe-anim-zoom { transform: scale(.92); }
.cmpe-js .cmpe-anim.cmpe-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.cmpe-js .cmpe-anim { opacity: 1; transform: none; transition: none; }
	.cmpe-lb { transition: none; }
}
/* Fixed (parallax) backgrounds don't work on most phones: scroll normally there. */
@media (max-width: 782px), (hover: none) {
	.cmpe-row[style*="background-attachment:fixed"], .cmpe-col[style*="background-attachment:fixed"] { background-attachment: scroll !important; }
}

/* Phone font sizes and heights */
@media (max-width: 782px) {
	.cmpe-m-fs { font-size: var(--cmpe-m-fs) !important; }
	.cmpe-el-spacer.cmpe-m-h { height: var(--cmpe-m-h) !important; }
	.cmpe-el-hero.cmpe-m-mh { min-height: var(--cmpe-m-h) !important; }
}
.cmpe-row > .cmpe-col.cmpe-col-boxed { justify-self: stretch; box-sizing: border-box; }

/* Gradients and strokes (1.14.1) */
.cmpe-ring { position: relative; }
.cmpe-ring::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	padding: var(--cmpe-ring-w); border-radius: inherit; background: var(--cmpe-ring-bg);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
}
.cmpe-btn-front.cmpe-btn-grad:hover { filter: brightness(.92); }
.cmpe-btn-front.cmpe-btn-grad.cmpe-btn-hov:hover { background-image: none !important; filter: none; }
/* Heading letters: gradient fill and an outline (stroke) behind them */
.cmpe-tfx { position: relative; display: inline-block; max-width: 100%; }
.cmpe-tfx-s { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.cmpe-tfx-f { position: relative; z-index: 1; }
.cmpe-tfx-f[style*="background-clip"] { -webkit-box-decoration-break: clone; box-decoration-break: clone; }

/* 1.14.3 Glass effect (rows and columns). Browsers without backdrop blur get a
   more solid tint so text on the glass stays readable. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.cmpe-glass { background-image: linear-gradient(rgba(255,255,255,.35), rgba(255,255,255,.35)); }
}

/* 1.14.5 Background Blur: the background (image, gradient, tint) is drawn on a
   blurred layer behind the content; the extra edge is clipped so the sides stay crisp. */
.cmpe-bg-blur { isolation: isolate; }
.cmpe-bg-blur:not(.cmpe-part-sticky) { position: relative; }
.cmpe-bg-blur::after {
	content: ""; position: absolute; inset: calc(var(--cmpe-bgb) * -2); z-index: -1; pointer-events: none;
	background-image: var(--cmpe-bgi); background-size: var(--cmpe-bgs, cover); background-position: var(--cmpe-bgp, center);
	background-repeat: var(--cmpe-bgrep, no-repeat); background-attachment: var(--cmpe-bga, scroll);
	filter: blur(var(--cmpe-bgb));
	clip-path: inset(calc(var(--cmpe-bgb) * 2) round var(--cmpe-bg-rad, 0px));
}
@media (max-width: 782px) { .cmpe-bg-blur::after { background-attachment: scroll; } }

/* 1.14.7 Template Settings phone padding / margin (whole page, post, header, footer). */
@media (max-width: 782px) {
	.cmpe-page-content.cmpe-m-pad, .cmpe-part.cmpe-m-pad { padding: var(--cmpe-m-pad) !important; }
	.cmpe-page-content.cmpe-m-mar, .cmpe-part.cmpe-m-mar { margin: var(--cmpe-m-mar) !important; }
}

/* 1.14.11 Transform (image element): rotate, 3D rotate, offset, scale, skew, flip, anchor point. */
.cmpe-tf { transform: var(--cmpe-tf); transform-origin: var(--cmpe-tfo, center center); }
@media (max-width: 782px) {
	.cmpe-tf.cmpe-tf-m { transform: var(--cmpe-tf-m); transform-origin: var(--cmpe-tfo-m, center center); }
}

/* 1.14.15 Accordion: sections that open and close (site.js). */
.cmpe-acc { display: flex; flex-direction: column; gap: var(--acc-gap, 10px); text-align: left; }
.cmpe-acc-item { border: 1px solid var(--acc-bc, #e2e4e7); border-radius: var(--acc-r, 10px); background: var(--acc-cb, #fff); overflow: hidden; }
.cmpe-acc-lines { gap: 0; }
.cmpe-acc-lines .cmpe-acc-item { border: 0; border-bottom: 1px solid var(--acc-bc, #e2e4e7); border-radius: 0; background: transparent; }
.cmpe-acc-lines .cmpe-acc-item:first-child { border-top: 1px solid var(--acc-bc, #e2e4e7); }
.cmpe-acc-h { margin: 0 !important; padding: 0 !important; font-size: inherit; line-height: 1.3; border: 0; }
.cmpe-acc-btn {
	display: flex; align-items: center; gap: 12px; width: 100%; margin: 0; padding: 16px 18px; border: 0; border-radius: 0;
	background: var(--acc-tb, transparent); color: var(--acc-tc, inherit); font: inherit; font-size: var(--acc-ts, 17px); font-weight: var(--acc-tw, 600);
	text-align: left; cursor: pointer; transition: background-color .15s, color .15s; box-shadow: none; text-transform: none; letter-spacing: normal;
}
.cmpe-acc-lines .cmpe-acc-btn { padding-left: 4px; padding-right: 4px; }
.cmpe-acc-btn:hover { background: var(--acc-th, var(--acc-tb, rgba(0,0,0,.03))); color: var(--acc-tc, inherit); }
.cmpe-acc-btn:focus-visible { outline: 2px solid currentColor; outline-offset: -4px; }
.cmpe-acc-item.is-open > .cmpe-acc-h .cmpe-acc-btn { background: var(--acc-ob, var(--acc-tb, transparent)); color: var(--acc-oc, var(--acc-tc, inherit)); }
.cmpe-acc-title { flex: 1; min-width: 0; }
.cmpe-acc-ico-left .cmpe-acc-ico { order: -1; }
.cmpe-acc-ico { position: relative; flex: 0 0 14px; width: 14px; height: 14px; }
.cmpe-acc-ico-chevron .cmpe-acc-ico::before { content: ""; position: absolute; left: 3px; top: 1px; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s; }
.cmpe-acc-ico-chevron .is-open > .cmpe-acc-h .cmpe-acc-ico::before { transform: translateY(4px) rotate(-135deg); }
.cmpe-acc-ico-plus .cmpe-acc-ico::before, .cmpe-acc-ico-plus .cmpe-acc-ico::after { content: ""; position: absolute; left: 0; top: 6px; width: 14px; height: 2px; background: currentColor; border-radius: 1px; transition: transform .2s; }
.cmpe-acc-ico-plus .cmpe-acc-ico::after { transform: rotate(90deg); }
.cmpe-acc-ico-plus .is-open > .cmpe-acc-h .cmpe-acc-ico::after { transform: rotate(0deg); }
.cmpe-acc-panel { overflow: hidden; color: var(--acc-cc, inherit); transition: height .3s ease; }
.cmpe-acc-inner { padding: 0 var(--acc-cp, 18px); }
.cmpe-acc-inner::after { content: ""; display: block; height: var(--acc-cp, 16px); }
.cmpe-acc-lines .cmpe-acc-inner { padding-left: 4px; padding-right: 4px; }
.cmpe-acc-js .cmpe-acc-item:not(.is-open):not(.is-moving) > .cmpe-acc-panel { height: 0; visibility: hidden; }
@media (prefers-reduced-motion: reduce) { .cmpe-acc-panel, .cmpe-acc-ico::before, .cmpe-acc-ico::after { transition: none; } }

/* Scroll Animator (1.14.19; assets/js/scroll-anim.js) */
.cmpe-sa { position: relative; }
.cmpe-sa-inner { will-change: transform, opacity, filter; }
.cmpe-sa-pin > .cmpe-sa-inner { position: sticky; }
/* Something sliding in from the side never adds a sideways scroll bar ("clip" keeps pinning working). */
.cmpe-page-content:has(.cmpe-sa), .cmpe-part:has(.cmpe-sa) { overflow-x: clip; }
@media (prefers-reduced-motion: reduce) {
	.cmpe-sa-inner { transform: none !important; filter: none !important; opacity: 1 !important; }
}
