:root {
	--cdm-bg: #11100f;
	--cdm-panel: #1b1817;
	--cdm-panel-soft: #24201e;
	--cdm-line: rgba(243, 234, 224, .14);
	--cdm-text: #f5eee7;
	--cdm-muted: #b9aaa0;
	--cdm-accent: #a9443d;
	--cdm-accent-dark: #682b2b;
	--cdm-warm: #c9784b;
}

.cdm-public-body {
	margin: 0;
	background: var(--cdm-bg);
	color: var(--cdm-text);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.cdm-public-page {
	min-height: 100vh;
	background:
		radial-gradient(circle at 88% 0, rgba(169, 68, 61, .2), transparent 34rem),
		linear-gradient(145deg, #151211 0%, var(--cdm-bg) 58%, #1b1412 100%);
}

.cdm-public-shell {
	width: min(100% - 32px, 1040px);
	margin: 0 auto;
	padding: 42px 0 72px;
}

.cdm-public-backlink {
	color: var(--cdm-muted);
	font-size: .9rem;
	text-decoration: none;
}

.cdm-public-backlink:hover,
.cdm-public-backlink:focus { color: var(--cdm-text); }

.cdm-public-hero {
	max-width: 820px;
	padding: 54px 0 34px;
}

.cdm-public-kicker,
.cdm-public-card-date {
	margin: 0 0 12px;
	color: var(--cdm-warm);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.cdm-public-hero h1 {
	margin: 0;
	font-size: clamp(2.35rem, 7vw, 5.6rem);
	line-height: .98;
	letter-spacing: -.055em;
}

.cdm-public-lead {
	margin: 22px 0 0;
	color: var(--cdm-muted);
	font-size: clamp(1.05rem, 2vw, 1.35rem);
}

.cdm-public-details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.cdm-public-detail,
.cdm-public-content,
.cdm-public-card,
.cdm-public-cta {
	border: 1px solid var(--cdm-line);
	border-radius: 18px;
	background: linear-gradient(145deg, rgba(38, 32, 30, .96), rgba(24, 21, 20, .96));
	box-shadow: 0 18px 45px rgba(0, 0, 0, .18);
}

.cdm-public-detail {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 92px;
	padding: 18px;
}

.cdm-public-detail-icon {
	width: 11px;
	height: 11px;
	flex: 0 0 11px;
	border-radius: 50%;
	background: var(--cdm-accent);
	box-shadow: 0 0 0 5px rgba(169, 68, 61, .12);
}

.cdm-public-detail-label {
	display: block;
	margin-bottom: 5px;
	color: var(--cdm-muted);
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cdm-public-detail strong { display: block; font-size: 1rem; }

.cdm-public-content {
	margin-top: 18px;
	padding: clamp(22px, 4vw, 38px);
	color: var(--cdm-muted);
	line-height: 1.75;
}

.cdm-public-content h2 { margin-top: 0; color: var(--cdm-text); }
.cdm-public-content strong { color: var(--cdm-text); }

.cdm-public-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	margin-top: 18px;
	padding: 26px;
	background: linear-gradient(135deg, rgba(104, 43, 43, .85), rgba(48, 29, 25, .96));
}

.cdm-public-cta h2 { margin: 0; font-size: clamp(1.35rem, 3vw, 2rem); }
.cdm-public-cta .cdm-public-kicker { margin-bottom: 8px; }

.cdm-public-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 20px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 999px;
	background: linear-gradient(135deg, var(--cdm-accent), var(--cdm-accent-dark));
	color: #fff8f2;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
}

.cdm-public-button:hover,
.cdm-public-button:focus { background: linear-gradient(135deg, #bd5b4e, var(--cdm-accent)); color: #fff; }
.cdm-public-button-small { min-height: 42px; margin-top: 16px; padding: 0 16px; font-size: .9rem; }

.cdm-public-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cdm-public-card { padding: 24px; }
.cdm-public-card h2 { margin: 0; font-size: 1.45rem; line-height: 1.1; }
.cdm-public-card-location,
.cdm-public-card-venue { margin: 10px 0 0; color: var(--cdm-muted); }
.cdm-public-card-venue { color: var(--cdm-text); }
.cdm-public-upcoming-grid { align-items: stretch; margin: 12px 0 28px; }
.cdm-public-upcoming-grid .cdm-public-card { display: flex; min-height: 220px; flex-direction: column; }
.cdm-public-upcoming-grid .cdm-public-card .cdm-public-button { align-self: flex-start; margin-top: auto; }
.cdm-public-empty {
	padding: clamp(28px, 6vw, 52px) 24px;
	border: 1px solid var(--cdm-line);
	border-radius: 18px;
	background: linear-gradient(145deg, rgba(38, 32, 30, .96), rgba(24, 21, 20, .96));
	box-shadow: 0 18px 45px rgba(0, 0, 0, .18);
	color: var(--cdm-muted);
	text-align: center;
}
.cdm-public-empty p { margin: 0; }
.cdm-public-not-found .cdm-public-shell { text-align: center; }

.cdm-public-calendar {
	margin: 12px 0 28px;
	border: 1px solid var(--cdm-line);
	border-radius: 18px;
	background: rgba(18, 18, 20, .78);
	box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
	overflow: hidden;
}
.cdm-public-calendar-scroll { overflow-x: auto; }
.cdm-public-calendar-table { width: 100%; min-width: 620px; border-collapse: collapse; color: var(--cdm-text); }
.cdm-public-calendar-table th {
	padding: 15px 18px;
	background: rgba(173, 76, 58, .16);
	color: #f0b59b;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-align: left;
	text-transform: uppercase;
}
.cdm-public-calendar-table td { padding: 17px 18px; vertical-align: middle; }
.cdm-public-calendar-table tbody tr + tr td { border-top: 1px solid rgba(255, 255, 255, .08); }
.cdm-public-calendar-table td:last-child { width: 1%; white-space: nowrap; }
.cdm-public-calendar-table .cdm-public-button-small { margin-top: 0; }

@media (max-width: 760px) {
	.cdm-public-shell { width: min(100% - 24px, 640px); padding-top: 28px; }
	.cdm-public-hero { padding: 44px 0 28px; }
	.cdm-public-details,
	.cdm-public-grid { grid-template-columns: 1fr; }
	.cdm-public-cta { align-items: flex-start; flex-direction: column; }
	.cdm-public-button { width: 100%; }
}

@media (max-width: 640px) {
	.cdm-public-calendar-scroll { overflow: visible; }
	.cdm-public-calendar-table { min-width: 0; }
	.cdm-public-calendar-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
	.cdm-public-calendar-table tr { display: block; padding: 12px 16px; }
	.cdm-public-calendar-table tbody tr + tr { border-top: 1px solid rgba(255, 255, 255, .08); }
	.cdm-public-calendar-table tbody tr + tr td { border-top: 0; }
	.cdm-public-calendar-table td { display: flex; width: auto; justify-content: space-between; gap: 16px; padding: 8px 0; text-align: right; }
	.cdm-public-calendar-table td::before { content: attr(data-label); color: var(--cdm-muted); font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
	.cdm-public-calendar-table td:last-child { width: auto; white-space: normal; }
	.cdm-public-calendar-table td:last-child .cdm-public-button { width: auto; }
}
