:root {
	--color-link: #F0B85A;
	--color-muted: #A3A7AD;
	--color-border: #33373D;
	--color-accent-text: #15171A;
	--color-heading: #FFFFFF;
	--color-text: #E6E6E3;
	--color-surface: #1F2226;
	--color-bg: #15171A;
	--color-accent: #E0A43A;
}

*, *::before, *::after {
	box-sizing: border-box;
}

body {
	font-size: 1.063em;
	background: var(--color-bg);
	font-family: "Nunito Sans", system-ui, sans-serif;
	line-height: 1.6;
	margin: 0;
	overflow-wrap: break-word;
	color: var(--color-text);
}

h1, h2, h3, h4 {
	font-family: "Nunito", system-ui, sans-serif;
	line-height: 1.25;
	color: var(--color-heading);
}

a {
	color: var(--color-link);
}

img {
	height: auto;
	max-width: 100%;
}

pre, table {
	max-width: 100%;
	overflow-x: auto;
}

table {
	display: block;
	border-collapse: collapse;
}

blockquote {
	border-left: 3px solid var(--color-accent);
	margin: 1.25em 0;
	padding: 0.25em 1.25em;
	color: var(--color-muted);
}

.visually_hidden {
	overflow: hidden;
	height: 1px;
	position: absolute;
	white-space: nowrap;
	clip: rect(0 0 0 0);
	width: 1px;
}

.skip_to_content {
	position: absolute;
	top: 0;
	left: -60em;
}

.skip_to_content:focus {
	background: var(--color-bg);
	left: 1em;
	padding: 0.5em;
	z-index: 50;
}

.pagination {
	flex-wrap: wrap;
	display: flex;
	gap: 1em;
	margin-top: 2em;
	justify-content: space-between;
}

.history li {
	padding: 0.35em 0;
}

.period {
	font-size: 1.2em;
	margin-top: 1.75em;
}

.site_head > .content_width {
	align-items: center;
	flex-wrap: wrap;
	display: flex;
	padding-top: 1.1em;
	gap: 1em;
	padding-bottom: 1.1em;
	justify-content: space-between;
}

.site_head {
	background: var(--color-bg);
	border-bottom: 1px solid var(--color-border);
}

.site_title {
	font-size: 1.35em;
	font-family: "Nunito", system-ui, sans-serif;
	text-decoration: none;
	color: var(--color-heading);
	font-weight: 700;
}

.nav_list {
	flex-wrap: wrap;
	display: flex;
	gap: 0.25em 1.1em;
	list-style: none;
	margin: 0;
	padding: 0;
	justify-content: flex-end;
}

.nav_list a {
	font-size: 0.95em;
	text-decoration: none;
	color: var(--color-text);
}

.nav_list a:hover {
	text-decoration: underline;
	color: var(--color-link);
}

.jumbo {
	margin-bottom: 2em;
	overflow-wrap: break-word;
	box-sizing: border-box;
}

.jumbo .banner_title {
	font-size: 2em;
	line-height: 1.15;
	margin: 0 0 0.5em;
}

.jumbo .blurb {
	font-size: 1.08em;
	margin: 0 0 1em;
	max-width: 60ch;
}

.jumbo img {
	max-width: 100%;
}

.jumbo-cs > .content_width {
	text-align: center;
	padding-top: 3em;
	padding-bottom: 1.5em;
}

.jumbo-cs .blurb {
	margin-right: auto;
	margin-left: auto;
}

.jumbo-cs .hero_image img {
	object-fit: cover;
	display: block;
	max-height: 26em;
	width: 100%;
}

.page_title h1 {
	font-size: 1.5em;
	margin: 0 0 1.25em;
	color: var(--color-heading);
}

.content_width {
	padding-right: 1em;
	margin: 0 auto;
	max-width: 70em;
	padding-left: 1em;
	box-sizing: border-box;
}

.row {
	padding-top: 1.5em;
	padding-bottom: 2.5em;
}

.stream {
	min-width: 0;
}

ul.archive_list, ol.archive_list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.story_title {
	font-size: 1.55em;
	font-family: "Nunito", system-ui, sans-serif;
	line-height: 1.25;
	margin: 0 0 0.4em;
}

.story_title a {
	text-decoration: none;
	color: var(--color-heading);
}

.story_title a:hover {
	text-decoration: underline;
	color: var(--color-link);
}

.entry_meta {
	font-size: 0.85em;
	margin: 0 0 0.9em;
	color: var(--color-muted);
}

.entry_meta a {
	color: var(--color-muted);
}

.post_body img {
	height: auto;
	max-width: 100%;
}

.post_body h2:not(.story_title), .entry_summary h2 {
	font-size: 1.15em;
	margin: 1.25em 0 0.5em;
}

.post_body h3, .entry_summary h3 {
	font-size: 1.02em;
}

.entry_image {
	margin: 0 0 1em;
}

.entry_image img {
	height: auto;
	display: block;
	border-radius: 0.25em;
	width: 100%;
}

.main_story .story_title {
	font-size: 2.1em;
	line-height: 1.15;
}

.main_story {
	margin-bottom: 2em;
	border-bottom: 3px solid var(--color-heading);
	padding-bottom: 1.5em;
}

.side_story {
	margin-bottom: 2em;
	grid-template-columns: minmax(0,1fr);
	display: grid;
	gap: 2em;
}

.archive_list .entry_header {
	margin-bottom: 1em;
	align-items: center;
	grid-template-columns: minmax(0,1fr);
	display: grid;
	gap: 1em;
}

.archive_list .entry_image {
	margin: 0;
}

.archive_list .item {
	margin-bottom: 2.5em;
}

.block {
	margin-bottom: 1.75em;
	font-size: 0.92em;
}

.block_title {
	font-size: 1em;
	font-family: "Nunito", system-ui, sans-serif;
	margin: 0 0 0.6em;
	border-bottom: 2px solid var(--color-accent);
	padding-bottom: 0.35em;
	color: var(--color-heading);
	text-transform: none;
}

.link_list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.link_list li, .link_list > div {
	border-bottom: 1px solid var(--color-border);
	padding: 0.3em 0;
}

.block a {
	text-decoration: none;
	color: var(--color-link);
}

.block a:hover {
	text-decoration: underline;
}

.single_title {
	font-size: 2.1em;
	font-family: "Nunito", system-ui, sans-serif;
	line-height: 1.2;
	margin: 0 0 0.5em;
	color: var(--color-heading);
}

.article_meta {
	font-size: 0.88em;
	margin: 0 0 1.5em;
	color: var(--color-muted);
}

.article_meta a {
	color: var(--color-muted);
}

.rich_text img {
	height: auto;
	max-width: 100%;
}

.post_footer {
	border-top: 1px solid var(--color-border);
	padding-top: 1.5em;
	margin-top: 2.5em;
}

.contents {
	margin-bottom: 1.5em;
	background: var(--color-surface);
	padding: 1em 1.25em;
	border-radius: 0.25em;
}

.contents p {
	margin: 0 0 0.4em;
}

.bio {
	margin-bottom: 1.5em;
	padding: 1.25em;
	border: 1px solid var(--color-border);
	border-radius: 0.25em;
}

.bio p {
	margin: 0 0 0.4em;
}

.more_reading h2 {
	font-size: 1.15em;
}

.pagination {
	flex-wrap: wrap;
	display: flex;
	gap: 1em;
	margin-top: 1.5em;
	justify-content: space-between;
}

.breadcrumb {
	font-size: 0.82em;
	margin: 0 0 1em;
	color: var(--color-muted);
}

.breadcrumb a {
	color: var(--color-muted);
}

.footer-bc {
	padding: 2.5em 0;
}

.footer-bc .hero_panel {
	background: var(--color-surface);
	padding: 1.5em;
	border: 1px solid var(--color-border);
	border-radius: 0.75em;
}

.footer-bc .legal {
	font-size: 0.8em;
	margin: 0;
	color: var(--color-muted);
}

.button_group {
	flex-wrap: wrap;
	display: flex;
	gap: 0.75em;
	list-style: none;
	margin: 1em 0 0;
	padding: 0;
}

.btn {
	background: var(--color-accent);
	display: inline-block;
	text-decoration: none;
	padding: 0.6em 1.1em;
	border: 2px solid var(--color-accent);
	color: var(--color-accent-text);
	border-radius: 0.5em;
	font-weight: 700;
}

.btn_alt {
	background: var(--color-bg);
	color: var(--color-accent);
}

.tags_row {
	font-size: 0.85em;
	flex-wrap: wrap;
	display: flex;
	gap: 0.5em;
	list-style: none;
	margin: 0.9em 0 0;
	padding: 0;
}

.tags_row li, .tags_row span {
	background: var(--color-surface);
	padding: 0.25em 0.65em;
	border: 1px solid var(--color-border);
	color: var(--color-text);
	border-radius: 1em;
}

.over_title {
	font-size: 0.8em;
	margin: 0 0 0.4em;
	letter-spacing: 0.08em;
	color: var(--color-muted);
	text-transform: uppercase;
	font-weight: 700;
}

.list_header, h2.list_header {
	margin: 0 0 1.5em;
}

.list_header h2, h2.list_header {
	margin-bottom: 0.35em;
	font-size: 1.9em;
}

.list_header p {
	margin: 0;
	color: var(--color-muted);
}

.page_lede {
	margin: 0 0 1.5em;
	max-width: 70ch;
}

.contact_card {
	margin: 1em 0;
	max-width: 100%;
	box-sizing: border-box;
}

.contact_card .request_form {
	grid-template-columns: minmax(0,1fr);
	display: grid;
	gap: 0.6em;
}

.contact_card .control {
	display: grid;
	gap: 0.2em;
	min-width: 0;
}

.contact_card label {
	font-size: 0.85em;
	font-weight: 600;
}

.contact_card input[type=text], .contact_card input[type=tel], .contact_card textarea {
	background: var(--color-bg);
	font: inherit;
	padding: 0.5em 0.6em;
	border: 1px solid var(--color-border);
	color: var(--color-text);
	box-sizing: border-box;
	border-radius: 0.25em;
	width: 100%;
}

.contact_card button {
	background: var(--color-accent);
	cursor: pointer;
	font: inherit;
	padding: 0.65em 1.1em;
	border: 0;
	color: var(--color-accent-text);
	border-radius: 0.25em;
	font-weight: 700;
}

.contact_card .tel_line {
	font-size: 0.9em;
	margin: 0.6em 0 0;
}

.contact_card .kicker_text {
	margin: 0 0 0.6em;
}

.contact_card-boxed {
	background: var(--color-bg);
	padding: 1.25em;
	box-shadow: 0 10px 30px rgba(0,0,0,.14);
	border: 1px solid var(--color-border);
	color: var(--color-text);
	border-radius: 0.5em;
}

.contact_card-inline {
	background: var(--color-surface);
	padding: 0.9em;
	color: var(--color-text);
	border-radius: 0.5em;
}

.contact_card-tabbed {
	border-top: 4px solid var(--color-accent);
	background: var(--color-bg);
	padding: 1em;
	box-shadow: 0 6px 20px rgba(0,0,0,.1);
	color: var(--color-text);
}

.contact_card .toggle_group {
	flex-wrap: wrap;
	display: flex;
	gap: 0;
	border-bottom: 1px solid var(--color-border);
}

.contact_card .toggle_group input {
	height: 1px;
	position: absolute;
	opacity: 0;
	width: 1px;
}

.contact_card .toggle_group label {
	cursor: pointer;
	border-bottom: 3px solid transparent;
	padding: 0.45em 0.9em;
	color: var(--color-muted);
}

.contact_card .toggle_group input:checked + label {
	border-bottom-color: var(--color-accent);
	color: var(--color-heading);
}

.contact_card-call {
	text-align: center;
	background: var(--color-surface);
	padding: 1em;
	color: var(--color-text);
	border-radius: 0.5em;
}

.contact_card .phone_cta {
	font-size: 1.25em;
	background: var(--color-accent);
	display: inline-block;
	text-decoration: none;
	padding: 0.9em 1.6em;
	color: var(--color-accent-text);
	border-radius: 999px;
	font-weight: 700;
}

.contact_card-two {
	background: var(--color-bg);
	padding: 1.1em;
	border: 2px dashed var(--color-border);
	color: var(--color-text);
	border-radius: 0.5em;
}

.contact_card fieldset {
	display: grid;
	gap: 0.5em;
	margin: 0;
	min-width: 0;
	padding: 0;
	border: 0;
}

.contact_card legend {
	font-size: 0.75em;
	letter-spacing: 0.08em;
	color: var(--color-muted);
}

.contact_card details > summary {
	background: var(--color-heading);
	cursor: pointer;
	display: inline-block;
	list-style: none;
	margin: 0.3em 0;
	padding: 0.5em 1em;
	color: var(--color-bg);
	border-radius: 0.25em;
}

.contact_card-compact {
	background: var(--color-surface);
	padding: 1em;
	border: 1px solid var(--color-border);
	color: var(--color-text);
	border-radius: 0.5em;
}

.this_season {
	background: var(--color-surface);
	margin: 0 0 2em;
	overflow-wrap: anywhere;
	padding: 1em 1.15em;
	border: 1px solid var(--color-border);
	border-radius: 0.5em;
}

.this_season p {
	margin: 0 0 0.5em;
}

.this_season ul, .this_season ol {
	margin: 0;
	padding-left: 1.25em;
}

.this_season li {
	margin: 0 0 0.35em;
}

.this_season li span {
	font-size: 0.85em;
	color: var(--color-muted);
}

.qa_pick {
	background: var(--color-surface);
	border-left: 4px solid var(--color-accent);
	margin: 0 0 2em;
	overflow-wrap: anywhere;
	padding: 1em 1.25em;
}

.qa_pick p {
	margin: 0 0 0.4em;
}

.qa_pick strong {
	font-family: "Nunito", system-ui, sans-serif;
	color: var(--color-heading);
}

.entry_header .article_meta {
	margin: 0 0 1.25em;
}

.single-sh > .split_list {
	margin-bottom: 1.75em;
	grid-template-columns: minmax(0,1fr);
	display: grid;
	gap: 1.25em;
}

.single-sh > .split_list .entry_image {
	margin: 0;
}

.single-sh > .split_list img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	border-radius: 0.5em;
	width: 100%;
}

.site_title::before {
	font-size: 0.8em;
	text-align: center;
	background: var(--color-heading);
	line-height: 1.6;
	display: inline-block;
	content: "P";
	margin-right: 0.45em;
	min-width: 1.6em;
	color: var(--color-bg);
	border-radius: 50%;
}

.btn, .phone_cta, .contact_card button, .site_search button {
	border-radius: 999px;
}

.post_body a, .rich_text a {
	text-underline-offset: 3px;
	text-decoration-style: dotted;
}

.entry_image img, .rich_text img, .post_body img {
	outline: 1px solid var(--color-border);
	border: 6px solid var(--color-surface);
	box-sizing: border-box;
}

.post_body, .rich_text {
	text-align: justify;
	hyphens: auto;
}

body {
	line-height: 1.5;
}

[data-rt]::after {
	content: " · " attr(data-rt);
}

.breadcrumb {
	font-size: 0.72em;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.contents ul, .contents ol {
	flex-wrap: wrap;
	display: flex;
	gap: 0.4em;
}

.contents li {
	background: var(--color-surface);
	border-bottom: 0;
	padding: 0.15em 0.6em;
	border-radius: 999px;
}

.post_body blockquote, .rich_text blockquote {
	font-style: italic;
	border-left-width: 1px;
}

.post_body ul, .rich_text ul {
	list-style-type: circle;
}

.quick_links a::before, .entry_meta a::before {
	content: "#";
	color: var(--color-accent);
}

.pagination-top {
	text-align: right;
	margin: 0.5em 0;
}

.pagination-top-circle a {
	align-items: center;
	background: var(--color-accent);
	height: 2.4em;
	display: inline-flex;
	text-decoration: none;
	color: var(--color-accent-text);
	justify-content: center;
	border-radius: 50%;
	width: 2.4em;
}

@media (min-width: 800px) {
	.jumbo .banner_title {
		font-size: 2.6em;
	}
	.jumbo-cs .banner_title {
		font-size: 3.6em;
		line-height: 1.02;
	}
	.side_story {
		grid-template-columns: repeat(2, minmax(0,1fr));
	}
	.archive_list .entry_header:has(figure) {
		grid-template-columns: 11em minmax(0,1fr);
	}
	.contact_card-inline .request_form {
		align-items: end;
		grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto;
	}
	.single-sh > .split_list {
		align-items: center;
		grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);
		gap: 2em;
	}
	.single-sh .single_title {
		font-size: 2.5em;
		line-height: 1.12;
	}
}
