.heading {
	display: flex;
	flex-flow: row nowrap;

	width: 100%;
	margin-bottom: 26px;
}

a.red-text {
	color: var(--red);
	text-transform: uppercase;
	text-decoration: none;
	font-weight: bold;
}



section > .heading > div:first-of-type {
	width: 60px;
	height: 60px;

	background-color: black;
	color: white;
	font-size: 36px;

	display: flex;
	justify-content: center;
	align-items: center;
}

section > .heading > div:last-of-type {
	flex: 1;
}

section > .heading .row {
	margin-left: 16px;
}

section > .heading h1 {
	margin: 0;
	font-size: 40px;
	flex: 1;
}

section > .heading hr {
	margin-top: 0;
}



#event-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, 285px);
	gap: 16px;
	margin-bottom: 32px;
}

#event-grid .gutters {
	margin: 0 24px !important;
}

#event-grid > div {
	display: flex;
	flex-flow: column nowrap;
	row-gap: 16px;
	border: 1px solid black;
}

#event-grid h2 {
	margin: 0 0 8px;
	line-height: 1;
}

#event-grid p {
	margin: 0;
	flex: 1;
}

#event-grid .heading {
	align-items: center;
	margin: 0;
}

#event-grid img {
	width: 200px;
	height: 114px;
	object-fit: cover;
}

#event-grid .generated-icon {
	width: 200px;
	height: 114px;
}

#event-grid .gutters {
	margin-left: 16px;
	margin-right: 16px;
}

.date {
	flex: 1;
}

.date p {
	line-height: 1;
	text-align: center;
	font-weight: bold;
	color: var(--red);
}

.date p:first-child {
	font-size: 20px;
}

.date p:nth-child(2) {
	font-size: 32px;
	color: black;
}

.date p:last-child {
	font-size: 18px;
}

.buttons {
	width: 100%;
	display: flex;
	flex-flow: row nowrap;
}

.buttons > * {
	flex: 1;
	background-color: black;
	color: white;
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	padding: 4px 0;

	transition: background var(--fade-time-fast) ease-out;
}

.buttons > *:first-child:hover {
	background-color: var(--grey);
}

.slot {
	cursor: pointer;
	background-color: var(--red);
}

.slot:hover {
	background-color: var(--red-highlight) !important;
}

.slot.selected {
	display: flex;
	flex-flow: row nowrap;
	justify-content: center;
	align-items: center;

	font-family: "Modules";
	font-size: 18px;
}

.slot:not(.selected)::after {
	content: "Sign Up";
}

.slot.selected::after {
	content: "Z";
}

@media (max-width: 720px) {
	#event-grid {
		grid-template-columns: repeat(auto-fill, minmax(285px, 325px));
		justify-content: center;
	}
}



#canvassing > .row {
	row-gap: 16px;
}

#canvassing > .row > div:first-child {
	flex: 1;
	min-width: 320px;
}

#canvassing p {
	margin: 0;
}

#canvassing h2 {
	margin-top: 0;
	margin-bottom: 16px;
}

#shift-grid {
	display: grid;
	grid-template-columns: repeat(5, max-content);

	border: 1px solid black;
	padding: 0 16px;
	margin-bottom: 8px;

	flex-shrink: 0;
}

#shift-grid > .row {
	display: grid;
	grid-template-columns: subgrid;
	grid-column: 1 / -1;
	align-items: center;
	column-gap: 50px;
}

#shift-grid .row + .row {
	border-top: 1px solid black;
}

#shift-grid > .row > * {
	margin: 12px 0;
}

#shift-grid > .row p:nth-child(3) {
	font-weight: bold;
	text-transform: uppercase;
}

#shift-grid a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 128px;
	height: 24px;

	background-color: var(--red);
	color: white;
	font-weight: bold;
}

@media (max-width: 767px) {
	#canvassing > .row {
		flex-flow: column nowrap;
	}

	#canvassing > .row > div:first-child {
		min-width: 0;
	}

	#shift-grid {
		display: block;
	}

	#shift-grid > .row {
		display: flex;
		flex-flow: row wrap;
		row-gap: 8px;
		padding: 12px 0;
	}

	#shift-grid > .row > * {
		margin: 0;
	}

	#shift-grid > .row > a {
		flex-grow: 1;
	}
}