/* Native individual blog articles. */

.octa-article {
	--oa-ink: #102725;
	--oa-green: #144f48;
	--oa-green-hover: #1c665d;
	--oa-mint: #b8ead5;
	--oa-lime: #d9f77e;
	--oa-cream: #f5f3ea;
	--oa-line: #d8ded7;
	--oa-muted: #64736f;

	background: #fafaf7;
	color: var(--oa-ink);
}

.octa-article-shell {
	width: min(calc(100% - 48px), 920px);
	margin-inline: auto;
}

.octa-article-shell-wide {
	width: min(calc(100% - 48px), 1180px);
	margin-inline: auto;
}

.octa-article-hero {
	padding-block: clamp(60px, 8vw, 110px) clamp(112px, 13vw, 178px);
	background:
		radial-gradient(circle at 88% 12%, rgba(184, 234, 213, .52), transparent 30%),
		var(--oa-cream);
	border-bottom: 1px solid #e4e0d5;
}

.octa-article-heading {
	text-align: center;
}

.octa-article-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	align-items: center;
	justify-content: center;
	margin-bottom: 28px;
	color: #37635d;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.octa-article-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.octa-article-breadcrumb a:hover,
.octa-article-breadcrumb a:focus-visible {
	color: var(--oa-green-hover);
	text-decoration: underline;
}

.octa-article-heading h1 {
	margin: 0;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(44px, 6.3vw, 78px);
	font-weight: 400;
	line-height: 1.01;
	letter-spacing: -.045em;
}

.octa-article-deck {
	max-width: 760px;
	margin: clamp(44px, 5vw, 68px) auto clamp(52px, 6vw, 84px);
	color: #50625f;
	font-size: clamp(18px, 1.9vw, 22px);
	line-height: 1.65;
	text-align: center;
}

.octa-article-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	justify-content: center;
	margin-top: 28px;
	color: #5f7d77;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
}

/* Hero with the title set over the featured image. */
.octa-article-hero.has-media {
	position: relative;
	display: grid;
	align-items: center;
	min-height: clamp(420px, 50vw, 620px);
	padding-block: clamp(64px, 8vw, 104px);
	border-bottom: 0;
	background: #0e2422;
	color: #fff;
	overflow: hidden;
}

.octa-article-hero-media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.octa-article-hero-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Scrim floor is 66% opacity, which keeps white text above 5:1 even where the
   underlying image is pure white. */
.octa-article-hero-media::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(16, 39, 37, .72) 0%, rgba(16, 39, 37, .66) 45%, rgba(16, 39, 37, .86) 100%);
	content: '';
}

.octa-article-hero.has-media .octa-article-heading {
	position: relative;
	z-index: 1;
}

.octa-article-hero.has-media .octa-article-breadcrumb {
	color: rgba(255, 255, 255, .88);
}

.octa-article-hero.has-media .octa-article-breadcrumb a:hover,
.octa-article-hero.has-media .octa-article-breadcrumb a:focus-visible {
	color: var(--oa-lime, #d9f77e);
}

.octa-article-hero.has-media .octa-article-heading h1 {
	color: #fff;
	text-shadow: 0 1px 26px rgba(6, 22, 20, .38);
}

.octa-article-hero.has-media .octa-article-meta {
	color: rgba(255, 255, 255, .84);
}

.octa-article-hero.has-media :is(a):focus-visible {
	outline: 2px solid var(--oa-lime, #d9f77e);
	outline-offset: 3px;
}

/* Without an image the cream hero no longer has to leave room for an overlap. */
.octa-article-hero:not(.has-media) {
	padding-block: clamp(60px, 8vw, 110px);
}

.octa-article-layout {
	display: grid;
	grid-template-columns: minmax(190px, 250px) minmax(0, 760px);
	gap: clamp(48px, 8vw, 110px);
	align-items: start;
	justify-content: center;
	padding-bottom: clamp(72px, 10vw, 132px);
}

.octa-article-toc {
	position: sticky;
	top: calc(var(--octa-chrome-height) + 24px);
	max-height: calc(100vh - var(--octa-chrome-height) - 48px);
	overflow-y: auto;
	padding-right: 12px;
}

.octa-article-toc summary { padding: 12px 0; color: #37635d; font: 700 13px/1.5 Arial, sans-serif; cursor: pointer; }
.octa-article-toc summary:focus-visible { outline: 2px solid #347c70; outline-offset: 4px; }
.octa-article-body li:has(> h3) { list-style: none; }
.octa-article-body li > h3 { margin-top: 32px; }
.octa-article-related { padding-block: 50px 70px; }
.octa-article-related h2 { margin: 0 0 30px; font: 400 40px/1.15 Georgia, serif; color: #102725; }

.octa-article-toc nav > p {
	margin: 0 0 16px;
	color: #37635d;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.octa-article-toc ol {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--oa-line);
	list-style: none;
	counter-reset: article-sections;
}

.octa-article-toc li {
	border-bottom: 1px solid var(--oa-line);
	counter-increment: article-sections;
}

.octa-article-toc a {
	display: grid;
	grid-template-columns: 25px 1fr;
	gap: 8px;
	padding: 12px 0;
	color: #53625f;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.45;
	text-decoration: none;
}

.octa-article-toc a::before {
	color: #79908b;
	font: italic 10px Georgia, serif;
	content: counter(article-sections, decimal-leading-zero);
}

.octa-article-toc a:hover,
.octa-article-toc a:focus-visible {
	color: var(--oa-green-hover);
}

.octa-article-body {
	min-width: 0;
	color: #283c39;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(17px, 1.35vw, 19px);
	line-height: 1.84;
}

.octa-article-layout:not(:has(.octa-article-toc)) { grid-template-columns: minmax(0, 760px); }

.octa-article-body > :first-child {
	margin-top: 0;
}

.octa-article-body h2,
.octa-article-body h3 {
	scroll-margin-top: calc(var(--octa-chrome-height) + 30px);
	color: var(--oa-ink);
	font-family: Georgia, 'Times New Roman', serif;
	font-weight: 400;
	letter-spacing: -.025em;
}

.octa-article-body h2 {
	margin: clamp(48px, 7vw, 76px) 0 20px;
	font-size: clamp(30px, 3.4vw, 43px);
	line-height: 1.12;
}

.octa-article-body h3 {
	margin: 40px 0 16px;
	font-size: clamp(23px, 2.5vw, 31px);
	line-height: 1.18;
}

.octa-article-body p,
.octa-article-body :is(ul, ol, blockquote, table) {
	margin-block: 0 1.35em;
}

.octa-article-body a {
	color: #347c70;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.octa-article-body a:hover,
.octa-article-body a:focus-visible {
	color: var(--oa-green-hover);
}

.octa-article-body :is(ul, ol) {
	padding-left: 1.35em;
}

.octa-article-body li + li {
	margin-top: .45em;
}

.octa-article-body blockquote {
	margin-inline: 0;
	padding: 24px 28px;
	background: var(--oa-cream);
	border-left: 4px solid #69aa9c;
	color: #37635d;
	font-size: 1.08em;
}

.octa-article-body :is(table, pre) {
	max-width: 100%;
	overflow-x: auto;
}

.octa-article-body table {
	width: 100%;
	border-collapse: collapse;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
}

.octa-article-body :is(th, td) {
	padding: 12px;
	border-bottom: 1px solid var(--oa-line);
	text-align: left;
}

.octa-article-secondary {
	width: min(100%, 900px);
	margin: clamp(48px, 7vw, 78px) 0;
}

.octa-article-secondary img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 520px;
	object-fit: cover;
}

.octa-article-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-top: 62px;
	padding-top: 24px;
	border-top: 1px solid var(--oa-line);
	font-family: Arial, Helvetica, sans-serif;
}

.octa-article-tags a {
	padding: 7px 10px;
	background: #e9f7ef;
	color: #37635d;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .04em;
	text-decoration: none;
	text-transform: uppercase;
}

.octa-article-navigation {
	padding-block: clamp(48px, 7vw, 80px);
	background: var(--oa-cream);
	border-block: 1px solid #e4e0d5;
}

.octa-article-navigation > div {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 50px;
}

.octa-article-nav-next {
	text-align: right;
}

.octa-article-navigation span {
	display: block;
	margin-bottom: 9px;
	color: #5f7d77;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.octa-article-navigation a {
	color: var(--oa-ink);
	font: 400 clamp(20px, 2.4vw, 29px)/1.25 Georgia, 'Times New Roman', serif;
	text-decoration: none;
}

.octa-article-navigation a:hover,
.octa-article-navigation a:focus-visible {
	color: var(--oa-green-hover);
	text-decoration: underline;
}

.octa-article-closing {
	padding-block: clamp(72px, 9vw, 120px);
	background: var(--oa-green);
	color: #fff;
	text-align: center;
}

.octa-article-closing p {
	margin: 0 0 20px;
	color: #a9d0c7;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .17em;
	text-transform: uppercase;
}

.octa-article-closing h2 {
	margin: 0 auto 32px;
	font: 400 clamp(38px, 5.2vw, 66px)/1.02 Georgia, 'Times New Roman', serif;
	letter-spacing: -.04em;
}

.octa-article-closing a {
	display: inline-flex;
	gap: 14px;
	padding: 16px 21px;
	background: var(--oa-lime);
	color: var(--oa-ink);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
}

.octa-article-closing a:hover,
.octa-article-closing a:focus-visible {
	background: #fff;
}

@media (max-width: 900px) {
	.octa-article-layout {
		grid-template-columns: 1fr;
		width: min(calc(100% - 48px), 760px);
	}

	.octa-article-toc {
		position: static;
		max-height: none;
		padding: 24px;
		background: var(--oa-cream);
	}

	.octa-article-toc ol {
		columns: 2;
		column-gap: 32px;
	}
}

@media (max-width: 620px) {
	.octa-article-shell,
	.octa-article-shell-wide,
	.octa-article-layout {
		width: min(calc(100% - 32px), 920px);
	}

	.octa-article-hero:not(.has-media) {
		padding-bottom: 100px;
	}

	.octa-article-hero.has-media {
		min-height: 400px;
		padding-block: 72px;
	}

	.octa-article-toc ol {
		columns: 1;
	}

	.octa-article-navigation > div {
		grid-template-columns: 1fr;
	}

	.octa-article-nav-next {
		padding-top: 24px;
		border-top: 1px solid var(--oa-line);
		text-align: left;
	}
}
