.dsbn-board-meetings {
	margin: 1.5rem 0;
}

.dsbn-board-meetings__month {
	margin-bottom: 2rem;
}

.dsbn-board-meetings__month h2 {
	margin: 0 0 .75rem;
}

.dsbn-board-meetings__table-wrap {
	overflow-x: auto;
}

.dsbn-board-meetings__table {
	border-collapse: collapse;
	table-layout: fixed;
	width: 100%;
}

/* Fixed column widths are desktop-only. Below the 701px breakpoint the table
   switches to the stacked layout further down, where each cell must be full
   width — scoping these here avoids the nth-child widths (higher specificity)
   overriding the stacked layout's `width: auto`. */
@media (min-width: 701px) {

	.dsbn-board-meetings__table th:nth-child(1),
	.dsbn-board-meetings__table td:nth-child(1) {
		width: 28%;
	}

	.dsbn-board-meetings__table th:nth-child(2),
	.dsbn-board-meetings__table td:nth-child(2) {
		width: 32%;
	}

	.dsbn-board-meetings__table th:nth-child(3),
	.dsbn-board-meetings__table td:nth-child(3) {
		width: 12%;
	}

	.dsbn-board-meetings__table th:nth-child(4),
	.dsbn-board-meetings__table td:nth-child(4) {
		width: 28%;
	}
}

.dsbn-board-meetings__table th,
.dsbn-board-meetings__table td {
	border: 1px solid #d7d7d7;
	padding: .75rem;
	text-align: left;
	vertical-align: top;
	word-break: normal;
	overflow-wrap: anywhere;
}

.dsbn-board-meetings__table th {
	background: #f4f4f4;
	font-weight: 700;
}

.dsbn-board-meetings__location {
	display: block;
	margin-top: .25rem;
}

.dsbn-board-meetings__cancelled {
	display: inline-block;
	margin-top: .35rem;
}

.dsbn-inside-content .dsbn-board-meetings .dsbn-board-meetings__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dsbn-board-meetings__links li+li {
	margin-top: .5rem;
}

.dsbn-inside-content .dsbn-board-meetings .dsbn-board-meetings__links a {
	color: #004b98;
	display: inline;
	font-weight: 700;
	text-decoration: none;
}

.dsbn-inside-content .dsbn-board-meetings .dsbn-board-meetings__links a:hover,
.dsbn-inside-content .dsbn-board-meetings .dsbn-board-meetings__links a:focus-visible {
	color: #003d7c;
	text-decoration: underline;
}

.dsbn-board-meetings__empty {
	color: #555;
}

.dsbn-board-meeting-viewer__inner {
	margin: 0 auto;
	max-width: 1100px;
	padding: 2rem 1rem;
}

.dsbn-board-meeting-viewer__date {
	font-weight: 600;
}

.dsbn-board-meeting-viewer__content {
	grid-column: 1 / -1;
	margin-inline: auto;
	max-width: 1100px;
	text-align: center;
}

.dsbn-board-meeting-viewer__embed {
	margin-inline: auto;
	max-width: 1100px;
}

.dsbn-board-meeting-viewer__embed iframe,
.dsbn-board-meeting-viewer__embed embed {
	aspect-ratio: 16 / 9;
	display: block;
	height: auto;
	max-width: 100%;
	width: 100%;
}

@media (max-width: 700px) {

	.dsbn-board-meetings__table,
	.dsbn-board-meetings__table thead,
	.dsbn-board-meetings__table tbody,
	.dsbn-board-meetings__table th,
	.dsbn-board-meetings__table td,
	.dsbn-board-meetings__table tr {
		display: block;
	}

	.dsbn-board-meetings__table thead {
		border: 0;
		clip: rect(0 0 0 0);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		width: 1px;
	}

	.dsbn-board-meetings__table tr {
		border: 1px solid #d7d7d7;
		margin-bottom: 1rem;
	}

	.dsbn-board-meetings__table td {
		border: 0;
		border-bottom: 1px solid #e5e5e5;
		/* Reserve room for the absolutely-positioned label so an empty cell
		   (e.g. a meeting with no documents) doesn't clip it. Sized for the
		   theme's border-box so the value covers padding + the label. */
		min-height: 3rem;
		padding-left: 8.5rem;
		position: relative;
		width: auto;
	}

	.dsbn-board-meetings__table td::before {
		content: attr(data-label);
		font-weight: 700;
		left: .75rem;
		position: absolute;
		top: .75rem;
		width: 7rem;
	}

	.dsbn-board-meetings__table td:last-child {
		border-bottom: 0;
	}
}