:root {
	--csm-sale-ink: #20262d;
	--csm-sale-muted: #626c76;
	--csm-sale-border: #d9dee4;
	--csm-sale-surface: #ffffff;
	--csm-sale-soft: #f4f6f7;
	--csm-sale-accent: #082a5e;
	--csm-sale-accent-dark: #061d40;
	--csm-sale-warm: #fcaf17;
	--csm-sale-danger: #a52a2a;
	--csm-sale-radius: 10px;
	--csm-sale-shadow: 0 8px 24px rgba(28, 38, 47, 0.08);
}

body.single-sale_event,
body.post-type-archive-sale_event,
body.tax-sale_location,
body.tax-sale_type,
body.tax-sale_item_category,
body.tax-special_event_series {
	background: var(--csm-sale-soft);
	color: var(--csm-sale-ink);
}

.single-sale_event .site-content,
.post-type-archive-sale_event .site-content,
.tax-sale_location .site-content,
.tax-sale_type .site-content,
.tax-sale_item_category .site-content,
.tax-special_event_series .site-content {
	display: block;
	padding-top: 34px;
	padding-bottom: 50px;
}

.csm-sale-single,
.csm-sale-archive {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
}

.csm-sale-event,
.csm-sale-archive__header,
.csm-sale-empty {
	background: var(--csm-sale-surface);
	border: 1px solid var(--csm-sale-border);
	border-radius: var(--csm-sale-radius);
	box-shadow: var(--csm-sale-shadow);
}

.csm-sale-event {
	padding: clamp(22px, 4vw, 46px);
}

.csm-sale-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 22px;
	font-size: 0.92rem;
	color: var(--csm-sale-muted);
}

.csm-sale-breadcrumbs a,
.csm-sale-back-link a {
	color: var(--csm-sale-accent);
	text-decoration: none;
}

.csm-sale-breadcrumbs a:hover,
.csm-sale-back-link a:hover {
	text-decoration: underline;
}

.csm-sale-header {
	margin-bottom: 28px;
}

.csm-sale-header h1,
.csm-sale-archive__header h1 {
	margin: 8px 0 10px;
	font-size: clamp(2rem, 4vw, 3.15rem);
	line-height: 1.08;
	letter-spacing: -0.025em;
}

.csm-sale-header__badges,
.csm-sale-card__badges,
.csm-sale-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.csm-sale-badge {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 5px 10px;
	border-radius: 999px;
	background: #edf1f2;
	color: #37414a;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.csm-sale-badge--type {
	background: #e5f0eb;
	color: var(--csm-sale-accent-dark);
}

.csm-sale-badge--active {
	background: #e5f4e8;
	color: #246431;
}

.csm-sale-badge--open,
.csm-sale-badge--opens-today { background: #e4f2e8; color: #276237; }
.csm-sale-badge--upcoming { background: #e7eef8; color: #244f78; }
.csm-sale-badge--closed { background: #fff0d3; color: #805400; }

.csm-sale-badge--postponed {
	background: #fff1d7;
	color: #805400;
}

.csm-sale-badge--cancelled {
	background: #f9e3e3;
	color: var(--csm-sale-danger);
}

.csm-sale-badge--completed {
	background: #e9ecef;
	color: #59616a;
}

.csm-sale-badge--event {
	background: #ede7f5;
	color: #51366e;
	text-decoration: none;
}

.csm-sale-badge--event-official {
	background: #fff0c9;
	color: #714e00;
}


.csm-sale-badge--event-vendor {
	background: #e6f2f7;
	color: #15536b;
}

.csm-sale-badge--event-featured {
	border: 1px solid currentColor;
	box-shadow: 0 0 0 2px rgba(113, 78, 0, .08);
	font-weight: 900;
}

.csm-sale-badge--event:hover,
.csm-sale-badge--event:focus {
	filter: brightness(.96);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.csm-sale-map-popup__event {
	margin: 0;
	color: #714e00;
	font-size: .78rem;
	font-weight: 800;
}

.csm-sale-header__summary {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	color: var(--csm-sale-muted);
	font-size: 1.05rem;
}

.csm-sale-alert {
	margin: 0 0 24px;
	padding: 14px 16px;
	border-left: 4px solid var(--csm-sale-warm);
	background: #fff6e6;
	border-radius: 6px;
}

.csm-sale-alert--cancelled {
	border-left-color: var(--csm-sale-danger);
	background: #fff0f0;
}

.csm-sale-alert--completed {
	border-left-color: #7b858f;
	background: #eef1f3;
}

.csm-sale-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.75fr);
	gap: 26px;
	align-items: stretch;
	margin-bottom: 34px;
}

.csm-sale-hero__media,
.csm-sale-card__media {
	overflow: hidden;
	background: #e9edef;
	border-radius: 8px;
}

.csm-sale-hero__media {
	min-height: 360px;
}

.csm-sale-primary-photo,
.csm-sale-hero__media > img,
.csm-sale-card__media > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.csm-sale-photo-placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: 260px;
	padding: 24px;
	background: linear-gradient(135deg, #eef1f2, #dce2e5);
	color: #65717a;
	font-weight: 700;
	text-align: center;
}

.csm-sale-quick-details {
	padding: 24px;
	border: 1px solid var(--csm-sale-border);
	border-radius: 8px;
	background: var(--csm-sale-soft);
}

.csm-sale-quick-details h2,
.csm-sale-section h2,
.csm-sale-contact-card h2 {
	margin: 0 0 18px;
	font-size: 1.45rem;
	line-height: 1.2;
}

.csm-sale-quick-details dl {
	margin: 0 0 22px;
}

.csm-sale-quick-details dl > div {
	padding: 12px 0;
	border-bottom: 1px solid var(--csm-sale-border);
}

.csm-sale-quick-details dl > div:first-child {
	padding-top: 0;
}

.csm-sale-quick-details dt {
	margin-bottom: 3px;
	color: var(--csm-sale-muted);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.csm-sale-quick-details dd {
	margin: 0;
	font-weight: 600;
}

.csm-sale-quick-details dd small {
	display: block;
	margin-top: 6px;
	color: var(--csm-sale-muted);
	font-weight: 400;
}

.csm-sale-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid var(--csm-sale-accent);
	border-radius: 6px;
	background: var(--csm-sale-accent);
	color: #fff !important;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none !important;
	transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.csm-sale-button:hover {
	background: var(--csm-sale-accent-dark);
	border-color: var(--csm-sale-accent-dark);
	transform: translateY(-1px);
}

.csm-sale-button--secondary {
	background: transparent;
	color: var(--csm-sale-accent) !important;
}

.csm-sale-button--secondary:hover {
	background: var(--csm-sale-accent);
	color: #fff !important;
}

.csm-sale-section {
	padding: 30px 0;
	border-top: 1px solid var(--csm-sale-border);
}

.csm-sale-prose {
	max-width: 850px;
	font-size: 1.05rem;
	line-height: 1.72;
}

.csm-sale-prose > :last-child {
	margin-bottom: 0;
}

.csm-sale-chips a {
	padding: 7px 11px;
	border: 1px solid var(--csm-sale-border);
	border-radius: 999px;
	background: var(--csm-sale-soft);
	color: var(--csm-sale-ink);
	font-size: 0.9rem;
	text-decoration: none;
}

.csm-sale-chips a:hover {
	border-color: var(--csm-sale-accent);
	color: var(--csm-sale-accent);
}

.csm-sale-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.csm-sale-info-card {
	padding: 18px;
	border: 1px solid var(--csm-sale-border);
	border-radius: 8px;
	background: var(--csm-sale-soft);
}

.csm-sale-info-card h3 {
	margin: 0 0 8px;
	font-size: 1rem;
}

.csm-sale-info-card p {
	margin: 0;
	color: var(--csm-sale-muted);
}

.csm-sale-gallery {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.csm-sale-gallery a {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 7px;
	background: #e9edef;
}

.csm-sale-gallery img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.18s ease;
}

.csm-sale-gallery a:hover img {
	transform: scale(1.025);
}

.csm-sale-contact-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-top: 30px;
	padding: 22px 24px;
	border-radius: 8px;
	background: var(--csm-sale-accent-dark);
	color: #fff;
}

.csm-sale-contact-card h2,
.csm-sale-contact-card p {
	color: inherit;
}

.csm-sale-contact-card p {
	margin: 0;
}

.csm-sale-eyebrow {
	margin: 0 0 6px;
	color: var(--csm-sale-accent);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.csm-sale-contact-card .csm-sale-eyebrow {
	color: #b9dccd;
}

.csm-sale-contact-card .csm-sale-button {
	background: #fff;
	border-color: #fff;
	color: var(--csm-sale-accent-dark) !important;
}

.csm-sale-back-link {
	margin: 30px 0 0;
}

.csm-sale-archive__header,
.csm-sale-empty {
	margin-bottom: 26px;
	padding: clamp(24px, 4vw, 42px);
}

.csm-sale-archive__intro {
	max-width: 800px;
	color: var(--csm-sale-muted);
	font-size: 1.04rem;
}

.csm-sale-archive__intro > :last-child {
	margin-bottom: 0;
}

.csm-sale-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 22px;
}

.csm-sale-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--csm-sale-surface);
	border: 1px solid var(--csm-sale-border);
	border-radius: var(--csm-sale-radius);
	box-shadow: 0 5px 18px rgba(28, 38, 47, 0.06);
}

.csm-sale-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	border-radius: 0;
}

.csm-sale-card__media .csm-sale-photo-placeholder {
	min-height: 100%;
}

.csm-sale-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	padding: 20px;
}

.csm-sale-card__title {
	margin: 14px 0 12px;
	font-size: 1.35rem;
	line-height: 1.25;
}

.csm-sale-card__title a {
	color: var(--csm-sale-ink);
	text-decoration: none;
}

.csm-sale-card__title a:hover {
	color: var(--csm-sale-accent);
}

.csm-sale-card__meta {
	display: grid;
	gap: 5px;
	margin-bottom: 12px;
	color: var(--csm-sale-muted);
	font-size: 0.92rem;
}

.csm-sale-card__summary {
	display: -webkit-box;
	overflow: hidden;
	margin: 0;
	color: var(--csm-sale-muted);
	line-height: 1.5;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-clamp: 4;
}

.csm-sale-card__actions {
	margin-top: auto;
	padding-top: 18px;
}

.csm-sale-card .csm-sale-button {
	margin-top: 0;
}

.csm-sale-pagination {
	margin-top: 30px;
}

.csm-sale-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.csm-sale-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	padding: 7px 11px;
	border: 1px solid var(--csm-sale-border);
	border-radius: 5px;
	background: #fff;
	color: var(--csm-sale-ink);
	text-decoration: none;
}

.csm-sale-pagination .page-numbers.current,
.csm-sale-pagination a.page-numbers:hover {
	background: var(--csm-sale-accent);
	border-color: var(--csm-sale-accent);
	color: #fff;
}

@media (max-width: 980px) {
	.csm-sale-hero {
		grid-template-columns: 1fr;
	}

	.csm-sale-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.single-sale_event .site-content,
	.post-type-archive-sale_event .site-content,
	.tax-sale_location .site-content,
	.tax-sale_type .site-content,
	.tax-sale_item_category .site-content,
.tax-special_event_series .site-content {
		padding-top: 18px;
		padding-bottom: 30px;
	}

	.csm-sale-event {
		padding: 20px;
	}

	.csm-sale-hero__media {
		min-height: 250px;
	}

	.csm-sale-grid,
	.csm-sale-info-grid,
	.csm-sale-gallery {
		grid-template-columns: 1fr;
	}

	.csm-sale-contact-card {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* Directory search and filters. */
.csm-sale-filter-wrap {
	margin-bottom: 24px;
	padding: clamp(20px, 3vw, 30px);
	background: var(--csm-sale-surface);
	border: 1px solid var(--csm-sale-border);
	border-radius: var(--csm-sale-radius);
	box-shadow: var(--csm-sale-shadow);
}

.csm-sale-filter {
	display: grid;
	gap: 18px;
}

.csm-sale-filter__top {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(220px, 1fr) minmax(190px, 0.7fr);
	gap: 16px;
}

.csm-sale-filter__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.csm-sale-filter__field {
	display: grid;
	gap: 7px;
	margin: 0;
}

.csm-sale-filter__field > span {
	color: var(--csm-sale-ink);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.csm-sale-filter input[type="search"],
.csm-sale-filter__select {
	width: 100%;
	min-height: 46px;
	margin: 0;
	padding: 9px 12px;
	border: 1px solid var(--csm-sale-border);
	border-radius: 6px;
	background: #fff;
	color: var(--csm-sale-ink);
	font: inherit;
}

.csm-sale-filter input[type="search"]:focus,
.csm-sale-filter__select:focus {
	outline: 2px solid color-mix(in srgb, var(--csm-sale-accent) 32%, transparent);
	outline-offset: 1px;
	border-color: var(--csm-sale-accent);
}

.csm-sale-filter__actions {
	display: flex;
	align-items: center;
	gap: 16px;
}

.csm-sale-filter__actions .csm-sale-button {
	cursor: pointer;
}

.csm-sale-filter__reset {
	color: var(--csm-sale-accent);
	font-weight: 700;
	text-decoration: none;
}

.csm-sale-filter__reset:hover {
	text-decoration: underline;
}

.csm-sale-results-count {
	margin: 0 0 16px;
	color: var(--csm-sale-muted);
	font-weight: 700;
}

@media (max-width: 1080px) {
	.csm-sale-filter__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 860px) {
	.csm-sale-filter__top {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 680px) {
	.csm-sale-filter__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px) {
	.csm-sale-filter__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.csm-sale-filter__actions .csm-sale-button {
		width: 100%;
	}
}


/* Paid plan presentation and sponsorships. */
.csm-sale-card--featured {
	border-color: #ff5a3c;
	box-shadow: 0 12px 32px rgba(255, 90, 60, .15);
}

.csm-sale-card--community {
	border-color: #8a6a2d;
}

.csm-sale-badge--plan {
	background: #082a5e;
	color: #fff;
}

.csm-sale-badge--plan-community {
	background: #75561d;
}

.csm-sale-sponsor {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 20px;
	margin: 24px 0;
	padding: 18px 22px;
	border: 1px solid #d9dee2;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(31, 43, 52, .07);
}

.csm-sale-sponsor__logo {
	width: 92px;
	max-height: 64px;
}

.csm-sale-sponsor__logo img {
	width: 100%;
	height: 64px;
	object-fit: contain;
}

.csm-sale-sponsor__content span {
	display: block;
	color: #61707a;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.csm-sale-sponsor__content strong {
	display: block;
	font-size: 1.08rem;
}

.csm-sale-sponsor__content p {
	margin: 4px 0 0;
}

@media (max-width: 700px) {
	.csm-sale-sponsor { grid-template-columns: 1fr; text-align: center; }
	.csm-sale-sponsor__logo { margin: auto; }
	.csm-sale-sponsor .csm-sale-button { justify-self: center; }
}

/* Shopper alert call-to-action. */
.csm-sale-alert-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin: 22px 0;
	padding: 20px 22px;
	border: 1px solid #c6d4e6;
	border-radius: 10px;
	background: #eef3fa;
}
.csm-sale-alert-cta div { display: grid; gap: 4px; }
.csm-sale-alert-cta span { color: #082a5e; font-size: .78rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.csm-sale-alert-cta strong { color: #1f2b31; font-size: 1rem; }
.csm-alerts-page .entry-header { display: none; }
.csm-alerts-page .inside-article { padding: 0; background: transparent; }
.csm-alerts-page .entry-content { margin: 0; }
@media (max-width: 720px) {
	.csm-sale-alert-cta { align-items: stretch; flex-direction: column; }
}


/* Community Event participating-location manager. */
.csm-community-public__heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 22px;
}
.csm-community-public__heading h2,
.csm-community-public__heading p { margin-top: 0; }
.csm-community-public__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.csm-community-public__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.csm-community-location-card { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 13px; padding: 18px; border: 1px solid var(--csm-sale-border); border-radius: 9px; background: #fff; }
.csm-community-location-card__number { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #75561d; color: #fff; font-weight: 900; }
.csm-community-location-card h3 { margin: 3px 0 7px; }
.csm-community-location-card p { margin: 5px 0; }
.csm-community-location-card__address { font-weight: 700; }
.csm-community-location-card__notice { color: var(--csm-sale-muted); font-size: .88rem; }
@media (max-width: 760px) {
	.csm-community-public__heading { flex-direction: column; }
	.csm-community-public__grid { grid-template-columns: 1fr; }
	.csm-community-public__actions { width: 100%; }
	.csm-community-public__actions .csm-sale-button { width: 100%; }
}
@media print {
	.site-header, .site-footer, .csm-sale-breadcrumbs, .csm-sale-quick-details__actions, .csm-community-public__actions, .csm-sale-contact-card, .csm-listing-report { display: none !important; }
	.csm-community-public__grid { grid-template-columns: 1fr 1fr; }
	.csm-community-location-card { break-inside: avoid; box-shadow: none; }
}


.csm-sale-routing-unavailable { margin:0; padding:10px 12px; border-radius:7px; background:#f3f4f5; color:#59616a; font-size:.9rem; font-weight:700; line-height:1.4; }

.csm-sale-card__status-note { margin:0 0 12px; padding:9px 11px; border:1px solid #edcf91; border-radius:7px; background:#fff7e6; color:#704b08; font-size:.88rem; line-height:1.45; }

/* Community Event public guide and download links. */
.csm-community-download-link {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 9px 4px;
	color: var(--csm-sale-accent, #082a5e);
	font-size: .88rem;
	font-weight: 800;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.csm-community-download-link:hover {
	color: #d63e28;
}
@media (max-width: 760px) {
	.csm-community-download-link {
		justify-content: center;
		width: 100%;
		padding: 8px 12px;
		border: 1px solid #b9cbc2;
		border-radius: 7px;
		background: #fff;
		text-decoration: none;
	}
}
.csm-sale-schedule-line { display: block; }
.csm-sale-schedule-line + .csm-sale-schedule-line { margin-top: 5px; }
