.ct-portal-meeting-section {
	background: #f5f5f5;
	color: #252525;
	padding: 54px 0 60px;
}
.ct-portal-meeting-heading { margin-bottom: 24px; text-align: center; }
.ct-portal-meeting-heading span { color: #a51d28; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ct-portal-meeting-heading h2 { color: inherit; margin: 6px 0 0; }
.ct-portal-meeting-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 28px;
}
.ct-portal-meeting-card {
	display: flex;
	min-width: 0;
	overflow: hidden;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(0,0,0,.1);
	border-radius: 14px;
	box-shadow: 0 8px 22px rgba(0,0,0,.08);
	color: #292929 !important;
	text-align: left;
	text-decoration: none !important;
	transition: box-shadow .2s ease, transform .2s ease;
}
.ct-portal-meeting-card:hover,
.ct-portal-meeting-card:focus { box-shadow: 0 13px 30px rgba(0,0,0,.14); transform: translateY(-2px); }
.ct-portal-meeting-cover { aspect-ratio: 16 / 9; display: block; overflow: hidden; background: #e5e5e5; }
.ct-portal-meeting-cover img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ct-portal-meeting-copy { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 18px; }
.ct-portal-meeting-copy > span:not(.ct-portal-meeting-badges) { color: #696969; font-size: 13px; line-height: 1.35; }
.ct-portal-meeting-copy .fa { color: #8f1d36; margin-right: 4px; width: 14px; }
.ct-portal-meeting-title { color: #202020; font-size: 19px; line-height: 1.25; margin: 2px 0 3px; }
.ct-portal-meeting-badges { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.ct-portal-meeting-badges small,
.ct-portal-meeting-status { border-radius: 999px; display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: .04em; line-height: 1; padding: 6px 9px; text-transform: uppercase; }
.ct-portal-meeting-badges small { background: #eee; color: #555; }
.ct-portal-meeting-status { background: #e9f4ff; color: #0b5b9d; }
.ct-portal-meeting-status.is-ongoing { background: #dff5e7; color: #176a34; }
.ct-portal-meeting-proposal { align-items: center; border: 2px dashed rgba(123,23,49,.38); justify-content: center; min-height: 260px; text-align: center; }
.ct-portal-meeting-proposal:hover,
.ct-portal-meeting-proposal:focus { border-color: #7b1731; }
.ct-portal-meeting-proposal-icon { color: #7b1731; display: block; font-size: 42px; padding-top: 22px; }
.ct-portal-meeting-proposal .ct-portal-meeting-copy { align-items: center; flex: 0; max-width: 470px; padding-top: 10px; }
.ct-portal-meeting-proposal .ct-portal-meeting-copy > span:not(.ct-portal-meeting-badges) { font-size: 14px; }
.ct-portal-meeting-proposal-action { color: #7b1731; font-size: 14px; margin-top: 5px; }
.ct-portal-meeting-grid > .ct-portal-meeting-proposal:only-child { grid-column: 1 / -1; justify-self: center; max-width: 620px; width: 100%; }
.tm-events .ct-portal-meeting-card { color: var(--tm-ink) !important; }

@media (max-width: 900px) {
	.ct-portal-meeting-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.ct-portal-meeting-section { padding: 38px 15px 44px; }
	.ct-portal-meeting-grid { display: flex; gap: 12px; margin-left: -2px; margin-right: -15px; overflow-x: auto; padding: 0 15px 14px 2px; scroll-snap-type: x mandatory; }
	.ct-portal-meeting-card { flex: 0 0 84%; max-width: 330px; scroll-snap-align: start; }
	.ct-portal-meeting-grid > .ct-portal-meeting-proposal:only-child { flex-basis: calc(100% - 15px); max-width: 500px; }
	.ct-portal-meeting-copy { padding: 15px; }
	.ct-portal-meeting-title { font-size: 17px; }
}
