/*
 * Insights (blog) — posts page, archives and single post.
 * Everything is scoped to .fs-insights: the theme's inline header CSS
 * styles bare `section`, `h2`, `.hero`, `.cta`, `.eyebrow`, `.section-head`
 * globally, so those are reset here first.
 */

.fs-insights {
	--ins-accent: #B8F24B;
	--ins-accent-dark: #7BB800;
	--ins-ink: #0A0E14;
	--ins-muted-head: #A8B0BC;
	--ins-body: #4A5462;
	--ins-line: #E6E9EE;
	color: var(--ins-ink);
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
	padding-bottom: 40px;
}

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

.fs-insights h1,
.fs-insights h2,
.fs-insights h3,
.fs-insights h4,
.fs-insights p,
.fs-insights ul,
.fs-insights ol,
.fs-insights dl,
.fs-insights dd,
.fs-insights figure,
.fs-insights blockquote {
	margin: 0;
	padding: 0;
}

.fs-insights section {
	padding: 0;
	border-top: 0;
}

.fs-insights a {
	color: inherit;
	text-decoration: none;
}

.fs-insights .wrap {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 32px;
}

.fs-insights .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}

/* ---------- shared bits ---------- */

.fs-insights .eyebrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #8A94A3;
	margin: 0;
}

.fs-insights .crumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	font-size: 14px;
	color: #98A1AE;
	padding-top: 34px;
}

.fs-insights .crumbs span {
	color: #C3C9D2;
}

.fs-insights .crumbs a:hover,
.fs-insights .crumbs .cur {
	color: var(--ins-ink);
}

.fs-insights .fl {
	width: 24px;
	height: 16px;
	border-radius: 3px;
	object-fit: cover;
	box-shadow: 0 0 0 1px rgba(10, 14, 20, .08);
	flex: none;
	display: block;
}

.fs-insights .pair {
	display: flex;
	flex: none;
}

.fs-insights .pair .fl {
	margin-left: -8px;
}

.fs-insights .pair .fl:first-child {
	margin-left: 0;
}

/* ---------- index hero ---------- */

.fs-insights .hero {
	padding: 84px 0 0;
	border-top: 0;
	overflow: visible;
}

.fs-insights .crumbs + .eyebrow {
	margin-top: 40px;
}

.fs-insights .hero h1 {
	font-size: clamp(38px, 5.2vw, 74px);
	line-height: 1.04;
	letter-spacing: -.035em;
	font-weight: 800;
	margin: 20px 0 0;
}

.fs-insights .hero h1 .grey {
	font-size: inherit;
	padding: 0;
	font-weight: inherit;
	color: var(--ins-muted-head);
}

.fs-insights .hero h1.wrap-title {
	display: flex;
	align-items: center;
	gap: 18px;
	font-size: clamp(34px, 4.4vw, 60px);
}

.fs-insights .hero h1.wrap-title .fl {
	width: 54px;
	height: 36px;
	border-radius: 6px;
}

.fs-insights .hero h1.wrap-title .pair .fl {
	margin-left: -16px;
}

.fs-insights .hero h1.wrap-title .pair .fl:first-child {
	margin-left: 0;
}

.fs-insights .hero .lede,
.fs-insights .hero .lede p {
	margin-top: 26px;
	max-width: 640px;
	font-size: 19px;
	line-height: 1.6;
	color: var(--ins-body);
}

.fs-insights .hero .lede p {
	margin-top: 0;
}

/* quick programme links */
.fs-insights .quick {
	margin-top: 34px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.fs-insights .quick a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	border: 1px solid transparent;
	border-radius: 11px;
	padding: 8px 15px 8px 10px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -.01em;
	color: var(--ins-ink);
	background:
		linear-gradient(160deg, #F4FCE3 0%, #FFFFFF 62%) padding-box,
		linear-gradient(160deg, rgba(184, 242, 75, .9) 0%, #E3E8EF 55%) border-box;
	transition: background .18s, box-shadow .18s, transform .18s;
}

.fs-insights .quick a:hover {
	background:
		linear-gradient(160deg, #E8F9C4 0%, #FBFFF4 70%) padding-box,
		linear-gradient(160deg, #9FE02F 0%, #C9D2DD 60%) border-box;
	box-shadow: 0 4px 14px rgba(120, 175, 20, .18);
	transform: translateY(-1px);
}

.fs-insights .quick .fl {
	width: 22px;
	height: 15px;
}

.fs-insights .quick .pair .fl {
	margin-left: -7px;
}

.fs-insights .quick .pair .fl:first-child {
	margin-left: 0;
}

.fs-insights .quick a.more {
	border: 0;
	background: none;
	padding-left: 8px;
	color: #6C7684;
	font-weight: 600;
	font-size: 14.5px;
	text-decoration: underline;
	text-decoration-color: var(--ins-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}

.fs-insights .quick a.more:hover {
	background: none;
	box-shadow: none;
	color: var(--ins-ink);
	transform: none;
}

/* ---------- featured ---------- */

.fs-insights .featured {
	margin-top: 52px;
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	border: 1px solid var(--ins-line);
	border-radius: 24px;
	overflow: hidden;
	background: #fff;
	transition: border-color .2s;
}

.fs-insights .featured:hover {
	border-color: var(--ins-ink);
}

.fs-insights .featured .ph {
	min-height: 420px;
	background: #EEF1F4 center / cover no-repeat;
}

.fs-insights .featured .txt {
	padding: 56px 52px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.fs-insights .meta {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 14px;
}

.fs-insights .cat {
	color: var(--ins-accent-dark);
	font-weight: 600;
}

.fs-insights .date {
	color: #9AA3AF;
}

.fs-insights .featured h2 {
	font-size: 38px;
	line-height: 1.12;
	letter-spacing: -.03em;
	font-weight: 800;
	margin-top: 16px;
}

.fs-insights .featured p {
	margin-top: 18px;
	font-size: 17.5px;
	line-height: 1.62;
	color: var(--ins-body);
}

.fs-insights .featured p.byline,
.fs-insights .card p.byline {
	margin-top: 28px;
	font-size: 14px;
	color: #9AA3AF;
}

.fs-insights .tag-feat {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--ins-accent);
	color: var(--ins-ink);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: 5px 11px;
	border-radius: 8px;
	align-self: flex-start;
	margin-bottom: 22px;
}

/* ---------- grid ---------- */

.fs-insights .section-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 96px 0 0;
	max-width: none;
}

.fs-insights .section-head h3,
.fs-insights .hubs h3 {
	font-size: 30px;
	letter-spacing: -.025em;
	font-weight: 800;
}

.fs-insights .grid {
	margin-top: 32px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}

.fs-insights .card {
	border: 1px solid var(--ins-line);
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	background: #fff;
	transition: border-color .2s, transform .2s;
}

.fs-insights .card:hover {
	border-color: var(--ins-ink);
	transform: translateY(-3px);
}

.fs-insights .card .ph {
	aspect-ratio: 16 / 10;
	background: #EEF1F4 center / cover no-repeat;
}

.fs-insights .card .txt {
	padding: 26px 26px 30px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.fs-insights .card h4 {
	font-size: 20.5px;
	line-height: 1.25;
	letter-spacing: -.02em;
	font-weight: 700;
	margin-top: 14px;
}

.fs-insights .card p {
	margin-top: 12px;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--ins-body);
	flex: 1;
}

.fs-insights .card p.byline {
	margin-top: 22px;
	flex: none;
}

/* compact card (related) */
.fs-insights .card .m {
	margin: 0;
	flex: none;
	font-size: 13.5px;
	color: var(--ins-accent-dark);
	font-weight: 600;
}

.fs-insights .card .m + h4 {
	margin-top: 11px;
}

.fs-insights .card p.b {
	margin-top: 16px;
	flex: none;
	font-size: 13.5px;
	color: #9AA3AF;
}

/* pagination */
.fs-insights .fs-pagination {
	margin-top: 44px;
}

.fs-insights .fs-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.fs-insights .fs-pagination .page-numbers {
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--ins-line);
	border-radius: 10px;
	font-weight: 600;
	font-size: 15px;
	background: #fff;
}

.fs-insights .fs-pagination .page-numbers.current {
	background: var(--ins-ink);
	border-color: var(--ins-ink);
	color: #fff;
}

.fs-insights .fs-pagination a.page-numbers:hover {
	border-color: var(--ins-ink);
}

.fs-insights .empty {
	margin-top: 60px;
	font-size: 18px;
	color: var(--ins-body);
}

/* ---------- programme hubs ---------- */

.fs-insights .hubs {
	margin-top: 96px;
	border-top: 1px solid var(--ins-line);
	padding-top: 44px;
	scroll-margin-top: 90px;
}

.fs-insights .hubs p.sub {
	margin-top: 12px;
	font-size: 17px;
	color: var(--ins-body);
	max-width: 620px;
}

.fs-insights .hgrid {
	margin-top: 30px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}

.fs-insights .hub {
	border: 1px solid var(--ins-line);
	border-radius: 14px;
	padding: 18px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	background: linear-gradient(165deg, #FAFDF4 0%, #FFFFFF 58%);
	transition: .15s;
}

.fs-insights .hub:hover {
	border-color: #C4D98C;
	background: linear-gradient(165deg, #F1FBDC 0%, #FEFFFB 62%);
	box-shadow: 0 3px 12px rgba(120, 175, 20, .12);
}

.fs-insights .hub .t {
	display: flex;
	align-items: center;
	gap: 11px;
	font-size: 16.5px;
	font-weight: 700;
	letter-spacing: -.015em;
}

.fs-insights .hub .c {
	font-size: 13px;
	color: #9AA3AF;
	flex: none;
}

/* ---------- subscribe ---------- */

.fs-insights .subscribe {
	margin-top: 104px;
	border: 1px solid var(--ins-line);
	border-radius: 26px;
	overflow: hidden;
	scroll-margin-top: 90px;
	background:
		radial-gradient(900px 320px at 12% 0%, rgba(184, 242, 75, .28), transparent 60%),
		linear-gradient(180deg, #FBFDF7 0%, #FFFFFF 62%);
}

.fs-insights .subscribe .in {
	padding: 60px 56px;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 52px;
	align-items: center;
}

.fs-insights .subscribe h3 {
	font-size: 34px;
	line-height: 1.14;
	letter-spacing: -.03em;
	font-weight: 800;
}

.fs-insights .subscribe .roll {
	display: inline-grid;
	vertical-align: bottom;
	height: 1.16em;
	overflow: hidden;
}

.fs-insights .subscribe .roll span {
	grid-area: 1 / 1;
	animation: fs-roll 9s infinite;
	opacity: 0;
	background: linear-gradient(90deg, #5C8F00, #8FD218);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.fs-insights .subscribe .roll span:nth-child(2) {
	animation-delay: 3s;
}

.fs-insights .subscribe .roll span:nth-child(3) {
	animation-delay: 6s;
}

@keyframes fs-roll {
	0% { opacity: 0; transform: translateY(100%); }
	5%, 30% { opacity: 1; transform: none; }
	35%, 100% { opacity: 0; transform: translateY(-100%); }
}

@media (prefers-reduced-motion: reduce) {
	.fs-insights .subscribe .roll span { animation: none; opacity: 0; }
	.fs-insights .subscribe .roll span:nth-child(1) { opacity: 1; }
}

.fs-insights .subscribe p.s {
	margin-top: 14px;
	font-size: 17px;
	line-height: 1.6;
	color: #5A6472;
	max-width: 460px;
}

.fs-insights .subform {
	display: flex;
	gap: 10px;
	position: relative;
}

.fs-insights .subform input[type="email"] {
	flex: 1;
	min-width: 0;
	border: 1px solid #D7DDE5;
	background: #fff;
	border-radius: 10px;
	padding: 16px 18px;
	font-size: 16px;
	font-family: inherit;
	color: var(--ins-ink);
	outline: none;
	margin: 0;
}

.fs-insights .subform input[type="email"]:focus {
	border-color: var(--ins-ink);
	box-shadow: 0 0 0 4px rgba(184, 242, 75, .35);
}

.fs-insights .subform button {
	background: var(--ins-ink);
	color: #fff;
	border: 0;
	border-radius: 10px;
	padding: 16px 28px;
	font-weight: 700;
	font-size: 16px;
	font-family: inherit;
	cursor: pointer;
}

.fs-insights .subform button:hover {
	background: #1B2330;
}

.fs-insights .sub-ok,
.fs-insights .sub-err {
	font-size: 16px;
	font-weight: 600;
}

.fs-insights .sub-ok {
	padding: 16px 18px;
	border-radius: 10px;
	background: #F1FBDC;
	border: 1px solid #C4D98C;
}

.fs-insights .sub-err {
	margin-top: 10px;
	color: #B42318;
	font-size: 14px;
}

.fs-insights .trust {
	margin-top: 18px;
	font-size: 13.5px;
	color: #8A94A3;
}

.fs-insights .trust b {
	color: var(--ins-ink);
}

.fs-insights .logos {
	margin-top: 20px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 26px;
	opacity: .55;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .02em;
	color: #5A6472;
}

/* =========================================================================
 * Single post
 * ====================================================================== */

#fs-read-bar {
	position: fixed;
	top: 0;
	left: 0;
	height: 3px;
	width: 0;
	background: #B8F24B;
	z-index: 1000;
}

.fs-post .head {
	margin-top: 24px;
	max-width: 980px;
}

.fs-post .head h1 {
	font-size: clamp(32px, 3.7vw, 52px);
	line-height: 1.08;
	letter-spacing: -.032em;
	font-weight: 800;
	max-width: 19ch;
}

.fs-post .dek {
	margin-top: 18px;
	max-width: 64ch;
	font-size: 19px;
	line-height: 1.55;
	color: #5A6472;
}

.fs-post .byline {
	margin-top: 24px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	font-size: 13.5px;
	color: #8A94A3;
}

.fs-post .byline img {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	object-fit: cover;
	filter: grayscale(1);
}

.fs-post .byline .who {
	color: var(--ins-ink);
	font-weight: 600;
}

.fs-post .byline .dot {
	color: #CBD1D9;
}

.fs-post .hero-fig {
	margin-top: 44px;
}

.fs-post .hero-fig .img {
	aspect-ratio: 21 / 9;
	border-radius: 24px;
	background: #F1F3F6 center / cover no-repeat;
}

.fs-post figcaption,
.fs-post .fs-post-body .wp-element-caption {
	margin-top: 12px;
	font-size: 14px;
	color: #8A94A3;
	max-width: 820px;
	text-align: left;
}

.fs-post figcaption em {
	font-style: normal;
	color: #AEB6C1;
}

.fs-post .cols {
	margin-top: 64px;
	display: grid;
	grid-template-columns: minmax(0, 740px) 1fr;
	gap: 72px;
	align-items: start;
}

/* sidebar */
.fs-post aside {
	height: 100%;
}

.fs-post .rail {
	position: sticky;
	top: 100px;
	display: flex;
	flex-direction: column;
	gap: 26px;
}

.fs-post .toc p {
	font-size: 14px;
	font-weight: 700;
}

.fs-post .toc ul {
	list-style: none;
	margin-top: 16px;
	border-left: 1px solid var(--ins-line);
}

.fs-post .toc li {
	margin: 0;
}

.fs-post .toc a {
	display: block;
	padding: 7px 0 7px 18px;
	margin-left: -1px;
	border-left: 2px solid transparent;
	font-size: 14.5px;
	color: #7D8794;
	line-height: 1.4;
}

.fs-post .toc a:hover {
	color: var(--ins-ink);
}

.fs-post .toc a:focus-visible {
	outline: 2px solid var(--ins-ink);
	outline-offset: -2px;
}

.fs-post .toc a.on {
	border-left-color: var(--ins-accent);
	color: var(--ins-ink);
	font-weight: 600;
}

.fs-post .toc li.sub a {
	padding-left: 32px;
	font-size: 14px;
}

.fs-post .score {
	border: 1px solid var(--ins-line);
	border-radius: 16px;
	padding: 24px 22px;
	background: linear-gradient(180deg, #F7FBEE 0%, #FFFFFF 100%);
}

.fs-post .score .k {
	display: inline-block;
	background: var(--ins-accent);
	color: var(--ins-ink);
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 4px 9px;
	border-radius: 7px;
}

.fs-post .score h4 {
	margin-top: 12px;
	font-size: 17.5px;
	line-height: 1.28;
	letter-spacing: -.022em;
	font-weight: 800;
	text-wrap: balance;
}

.fs-post .score p {
	margin-top: 10px;
	font-size: 13.5px;
	line-height: 1.55;
	color: #5A6472;
}

.fs-post .score > a {
	display: block;
	margin-top: 16px;
	text-align: center;
	background: var(--ins-ink);
	color: #fff;
	font-weight: 700;
	font-size: 14.5px;
	padding: 12px 16px;
	border-radius: 10px;
}

.fs-post .score > a:hover {
	background: #1B2330;
}

.fs-post .proof {
	margin-top: 14px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.fs-post .faces {
	display: flex;
}

.fs-post .faces img {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid #fff;
	margin-left: -8px;
	filter: grayscale(1);
	display: block;
}

.fs-post .faces img:first-child {
	margin-left: 0;
}

.fs-post .pt {
	font-size: 12px;
	line-height: 1.35;
	color: #7D8794;
	display: flex;
	flex-direction: column;
}

.fs-post .stars {
	color: #F2B01E;
	letter-spacing: 1px;
	font-size: 11.5px;
}

.fs-post .spons {
	border: 1px dashed #D7DDE5;
	border-radius: 14px;
	padding: 18px;
}

.fs-post .spons .lbl {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #9AA3AF;
}

.fs-post .spons .nm {
	margin-top: 8px;
	font-size: 15.5px;
	font-weight: 700;
}

.fs-post .spons .tx {
	margin-top: 5px;
	font-size: 13px;
	line-height: 1.5;
	color: #6C7684;
}

.fs-post .spons a {
	display: inline-block;
	margin-top: 10px;
	font-size: 13.5px;
	font-weight: 700;
	border-bottom: 2px solid var(--ins-accent);
}

/* takeaways */
.fs-post .takeaways {
	background: #F6F8FA;
	border-radius: 22px;
	padding: 34px 36px;
	margin-bottom: 8px;
}

.fs-post .takeaways .tk-title {
	font-size: 18px;
	font-weight: 800;
	letter-spacing: -.01em;
}

.fs-post .takeaways ul {
	list-style: none;
	margin-top: 18px;
	display: flex;
	flex-direction: column;
	gap: 13px;
}

.fs-post .takeaways li {
	display: flex;
	gap: 14px;
	font-size: 17px;
	line-height: 1.6;
	color: #39424E;
}

.fs-post .takeaways li::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ins-accent);
	flex: none;
	margin-top: 9px;
}

/* prose (block editor output) */
.fs-post-body > p,
.fs-post-body .wp-block-group p {
	margin-top: 22px;
	font-size: 19px;
	line-height: 1.72;
	color: #3F4854;
	max-width: 68ch;
}

.fs-post-body h2 {
	margin: 58px 0 0;
	font-size: 32px;
	line-height: 1.15;
	letter-spacing: -.028em;
	font-weight: 800;
	scroll-margin-top: 100px;
}

.fs-post-body h3 {
	margin: 38px 0 0;
	font-size: 21px;
	letter-spacing: -.015em;
	font-weight: 700;
	scroll-margin-top: 100px;
}

.fs-post-body h4 {
	margin: 30px 0 0;
	font-size: 18.5px;
	font-weight: 700;
}

.fs-post-body h3 + p,
.fs-post-body h4 + p {
	margin-top: 9px;
}

.fs-post-body > ul,
.fs-post-body > ol {
	margin-top: 22px;
	padding-left: 22px;
	color: #3F4854;
	font-size: 19px;
	line-height: 1.72;
	max-width: 68ch;
}

.fs-post-body > ul li,
.fs-post-body > ol li {
	margin-top: 10px;
}

.fs-post-body p a,
.fs-post-body li a {
	font-weight: 600;
	color: var(--ins-ink);
	border-bottom: 2px solid var(--ins-accent);
}

.fs-post-body blockquote,
.fs-post-body .wp-block-quote {
	margin: 44px 0;
	border-left: 4px solid var(--ins-accent);
	padding-left: 28px;
}

.fs-post-body blockquote p,
.fs-post-body .wp-block-quote p {
	margin: 0;
	font-size: 25px;
	line-height: 1.38;
	font-weight: 600;
	letter-spacing: -.02em;
	color: var(--ins-ink);
	max-width: none;
}

.fs-post-body blockquote cite {
	display: block;
	margin-top: 12px;
	font-size: 14px;
	font-style: normal;
	color: #8A94A3;
}

/* tables = the "fact" box */
.fs-post-body .wp-block-table {
	margin: 44px 0;
	border: 1px solid var(--ins-line);
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.fs-post-body .wp-block-table .wp-element-caption {
	order: -1;
	margin: 0;
	max-width: none;
	background: #F6F8FA;
	border-bottom: 1px solid var(--ins-line);
	padding: 16px 26px;
	font-size: 14.5px;
	font-weight: 700;
	color: var(--ins-ink);
}

.fs-post-body .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}

.fs-post-body .wp-block-table td,
.fs-post-body .wp-block-table th {
	border: 0;
	padding: 16px 26px;
	font-size: 17.5px;
	text-align: left;
	vertical-align: top;
	color: var(--ins-ink);
}

.fs-post-body .wp-block-table td:first-child,
.fs-post-body .wp-block-table th:first-child {
	width: 44%;
	font-size: 14.5px;
	font-weight: 500;
	color: #8A94A3;
}

.fs-post-body .wp-block-table tr + tr {
	border-top: 1px solid #F0F2F5;
}

/* images */
.fs-post-body .wp-block-image {
	margin: 52px 0;
}

.fs-post-body .wp-block-image img {
	width: 100%;
	height: auto;
	border-radius: 20px;
	display: block;
}

/* FAQ written as a "details" block, and the sources list */
.fs-post-body .wp-block-details {
	margin-top: 22px;
	border-bottom: 1px solid var(--ins-line);
	padding-bottom: 18px;
}

.fs-post-body .wp-block-details summary {
	font-size: 18.5px;
	font-weight: 700;
	cursor: pointer;
}

.fs-post-body .wp-block-details p {
	font-size: 17.5px;
	margin-top: 9px;
}

.fs-post-body .wp-block-separator {
	margin: 70px 0 0;
	border: 0;
	border-top: 1px solid var(--ins-line);
}

.fs-post-body .wp-block-separator + h2 {
	margin-top: 40px;
}

.fs-post-body .has-small-font-size,
.fs-post-body ol.is-style-sources {
	font-size: 15px !important;
	color: #6C7684;
}

/* tags + author */
.fs-post .tags {
	margin-top: 44px;
	padding-top: 26px;
	border-top: 1px solid var(--ins-line);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.fs-post .tags span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #9AA3AF;
	margin-right: 6px;
}

.fs-post .tags a {
	border: 1px solid var(--ins-line);
	background: #fff;
	border-radius: 8px;
	padding: 6px 12px;
	font-size: 13.5px;
	font-weight: 600;
	color: #4A5462;
}

.fs-post .tags a:hover {
	border-color: var(--ins-ink);
	color: var(--ins-ink);
}

.fs-post .author {
	margin-top: 56px;
	border: 1px solid var(--ins-line);
	border-radius: 20px;
	padding: 28px 30px;
	display: flex;
	gap: 20px;
	align-items: center;
	background: #fff;
}

.fs-post .author img {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	filter: grayscale(1);
	display: block;
	flex: none;
}

.fs-post .author .who {
	min-width: 0;
}

.fs-post .author .n {
	font-size: 18px;
	font-weight: 800;
	line-height: 1.2;
}

.fs-post .author .r {
	margin-top: 4px;
	color: #5A6472;
	font-size: 15.5px;
	line-height: 1.4;
}

.fs-post .author .l {
	display: inline-block;
	margin-top: 10px;
	font-size: 14px;
	font-weight: 600;
	border-bottom: 2px solid var(--ins-accent);
	line-height: 1.2;
}

/* mobility score CTA */
.fs-post .cta {
	margin-top: 96px;
	padding: 0;
	text-align: left;
	border: 1px solid #E1E7EE;
	border-radius: 26px;
	overflow: hidden;
	background:
		radial-gradient(820px 300px at 8% 0%, rgba(184, 242, 75, .30), transparent 62%),
		linear-gradient(180deg, #FBFDF7 0%, #FFFFFF 60%);
}

.fs-post .cta .in {
	padding: 52px;
	display: grid;
	grid-template-columns: 1.08fr .92fr;
	gap: 48px;
	align-items: center;
}

.fs-post .cta .k {
	display: inline-block;
	background: var(--ins-ink);
	color: #fff;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 6px 11px;
	border-radius: 7px;
}

.fs-post .cta h2 {
	margin-top: 16px;
	font-size: 33px;
	line-height: 1.14;
	letter-spacing: -.032em;
	font-weight: 800;
	max-width: 19ch;
}

.fs-post .cta p {
	color: #4A5462;
	font-size: 16.5px;
	line-height: 1.62;
	margin-top: 16px;
	max-width: 54ch;
}

.fs-post .cta .btns {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-top: 26px;
	flex-wrap: wrap;
}

.fs-post .cta .g {
	background: var(--ins-accent);
	color: var(--ins-ink);
	font-weight: 800;
	font-size: 16.5px;
	padding: 17px 30px;
	border-radius: 12px;
	box-shadow: 0 6px 18px rgba(120, 175, 20, .28);
	transition: .15s;
}

.fs-post .cta .g:hover {
	background: #A9E63C;
	transform: translateY(-1px);
}

.fs-post .cta .o {
	font-weight: 600;
	font-size: 15px;
	color: #5A6472;
	border-bottom: 2px solid #DCE3EB;
	padding-bottom: 2px;
}

.fs-post .cta .o:hover {
	color: var(--ins-ink);
	border-color: var(--ins-accent);
}

.fs-post .cta .proof {
	margin-top: 22px;
	gap: 11px;
}

.fs-post .cta .faces img {
	width: 30px;
	height: 30px;
	margin-left: -9px;
}

.fs-post .cta .faces img:first-child {
	margin-left: 0;
}

.fs-post .cta .pf {
	margin: 0;
	font-size: 13px;
	line-height: 1.4;
	color: #6C7684;
}

.fs-post .gms {
	background: #fff;
	border: 1px solid #E4E9F0;
	border-radius: 20px;
	padding: 28px;
}

.fs-post .gms .t {
	font-size: 17px;
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--ins-ink);
	margin: 0;
}

.fs-post .gms .cap {
	margin-top: 4px;
	font-size: 14px;
	color: #7D8794;
}

.fs-post .pillars {
	margin-top: 20px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.fs-post .pil {
	border: 1px solid #EDF1F6;
	border-radius: 12px;
	padding: 12px 14px;
	background: linear-gradient(165deg, #FAFDF4 0%, #FFFFFF 60%);
}

.fs-post .pil .n {
	margin: 0;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--ins-ink);
}

.fs-post .pil .v {
	margin: 3px 0 0;
	font-size: 12px;
	color: #8A94A3;
}

.fs-post .pil .bar {
	margin-top: 8px;
	height: 5px;
	border-radius: 99px;
	background: #EEF2F7;
	overflow: hidden;
}

.fs-post .pil .bar i {
	display: block;
	height: 100%;
	border-radius: 99px;
	background: linear-gradient(90deg, #9FE02F, #D6F98F);
}

.fs-post .gms .how {
	margin-top: 18px;
	border-top: 1px solid #EDF1F6;
	padding-top: 16px;
	display: grid;
	gap: 12px;
}

.fs-post .gms .how div {
	font-size: 13.5px;
	line-height: 1.5;
	color: #5A6472;
}

.fs-post .gms .how b {
	display: block;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #9AA3AF;
	margin-bottom: 3px;
}

/* related */
.fs-post .related {
	margin-top: 96px;
}

.fs-post .related h2 {
	font-size: 30px;
	letter-spacing: -.025em;
	font-weight: 800;
}

.fs-post .rgrid {
	margin-top: 30px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.fs-post .rgrid .card .txt {
	padding: 24px;
}

.fs-post .rgrid .card h4 {
	font-size: 19px;
	line-height: 1.28;
}

/* ---------- responsive ---------- */

@media (max-width: 1080px) {
	.fs-post .cta .in {
		grid-template-columns: 1fr;
		gap: 34px;
		padding: 42px 34px;
	}

	.fs-post .cols {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.fs-post aside {
		order: -1;
		height: auto;
	}

	.fs-post .rail {
		position: static;
	}

	/* the full Mobility Score CTA follows the article anyway */
	.fs-post .rail .score {
		display: none;
	}

	.fs-post .toc {
		border: 1px solid var(--ins-line);
		border-radius: 16px;
		padding: 20px;
	}

	.fs-post .rgrid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 1000px) {
	.fs-insights .hgrid {
		grid-template-columns: 1fr 1fr;
	}

	.fs-insights .featured {
		grid-template-columns: 1fr;
	}

	.fs-insights .featured .ph {
		min-height: 260px;
	}

	.fs-insights .featured .txt {
		padding: 36px 30px;
	}

	.fs-insights .grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.fs-insights .subscribe .in {
		grid-template-columns: 1fr;
		gap: 34px;
		padding: 44px 30px;
	}
}

@media (max-width: 640px) {
	.fs-insights .wrap {
		padding: 0 16px;
	}

	.fs-insights .hero {
		padding-top: 48px;
	}

	.fs-insights .hgrid,
	.fs-insights .grid,
	.fs-post .rgrid {
		grid-template-columns: 1fr;
	}

	.fs-insights .featured h2 {
		font-size: 28px;
	}

	.fs-insights .subscribe h3 {
		font-size: 28px;
	}

	.fs-insights .subform {
		flex-direction: column;
	}

	.fs-post .cta .in {
		padding: 34px 22px;
	}

	.fs-post .cta h2 {
		font-size: 27px;
	}

	.fs-post .takeaways {
		padding: 26px 22px;
	}

	.fs-post-body > p,
	.fs-post-body > ul,
	.fs-post-body > ol {
		font-size: 17.5px;
	}

	.fs-post-body h2 {
		font-size: 26px;
	}

	.fs-post-body blockquote p {
		font-size: 21px;
	}

	.fs-post-body .wp-block-table td,
	.fs-post-body .wp-block-table th {
		padding: 14px 16px;
		font-size: 16px;
	}

	.fs-post .author {
		padding: 22px;
	}
}
