.cms-body,
.cms-index-grid {

	--cms-fs-sm: 1.4rem;
	--cms-fs-body: 1.8rem;

	--cms-fs-h2: 2.6rem;
	--cms-fs-h3: 2.1rem;
	--cms-fs-lead: 2rem;

	--cms-blue: #014776;
	--cms-blue-dark: #013456;

	--cms-green: #20873b;

	--cms-primary: #014776;
	--cms-primary-dark: #013456;
	--cms-primary-tint: #EEF1F9;
	--cms-line: #DDE2F0;
	--cms-ink: #1a1a1a;
	--cms-ink-2: #555;
	--cms-ink-3: #888;
	--cms-soft-bg: #F8F9FC;
	--cms-accent: #F5A623;
	--cms-accent-tint: #FFF8EE;
	--cms-accent-ink: #A05400;

	--cms-radius: 5px;
	--cms-btn-py: 12px;
	--cms-btn-px: 22px;
	--cms-gap: 30px;
	--cms-block-gap: 40px;
	--cms-measure: 90rem;
}

.cms-body {
	font-size: var(--cms-fs-body);
	color: var(--cms-ink);
	line-height: 1.75;
}

.cms-body.cms-body--green {
	--cms-blue: #20873b;
	--cms-blue-dark: #176a2d;
	--cms-primary: #20873b;
	--cms-primary-dark: #176a2d;
	--cms-primary-tint: #EDF6EF;
}

.txt-green,
.txt-blue.txt-green {
	color: var(--cms-green, #20873b);
}

.cms-lede {
	font-family: "Raleway", sans-serif, simhei;
	font-weight: 300;
	font-size: var(--cms-fs-lead);
	color: var(--cms-ink-2);
	line-height: 1.6;
	max-width: var(--cms-measure);
	margin: 0 auto 10px;
	text-align: center;
}

.cms-byline {
	font-size: var(--cms-fs-sm);
	color: var(--cms-ink-3);
	text-align: center;
	margin-bottom: 40px;
}

.cms-byline span+span::before {
	content: "·";
	margin: 0 8px;
	color: var(--cms-line);
}

.cms-byline--end {
	margin-top: 30px;
	padding-top: 14px;
}

.cms-previewbar {
	background: var(--cms-accent-tint);
	border: 1px solid var(--cms-accent);
	color: var(--cms-accent-ink);
	border-radius: var(--cms-radius);
	padding: 12px 16px;
	margin: 0 auto 25px;
	max-width: var(--cms-measure);
	font-size: var(--cms-fs-sm);
	text-align: center;
	font-weight: 700;
}

.cms-block {
	margin: 0 auto var(--cms-block-gap);
	max-width: var(--cms-measure);

	scroll-margin-top: 90px;
}

.cms-block--textimage,
.cms-block--media {
	max-width: none;
}

.cms-block--table.cms-block--width-full,
.cms-block--calloutgroup.cms-block--width-full,
.cms-block--rawhtml.cms-block--width-full {
	max-width: none;
}

.cms-block--table.cms-block--width-wide,
.cms-block--rawhtml.cms-block--width-wide {
	margin-left: auto;
	margin-right: auto;
}

.cms-block--table.cms-block--width-wide,
.cms-block--calloutgroup.cms-block--width-wide,
.cms-block--rawhtml.cms-block--width-wide {
	max-width: 900px;
}

.cms-block--table.cms-block--width-narrow,
.cms-block--rawhtml.cms-block--width-narrow {
	margin-left: auto;
	margin-right: auto;
}

.cms-block--table.cms-block--width-narrow,
.cms-block--calloutgroup.cms-block--width-narrow,
.cms-block--rawhtml.cms-block--width-narrow {
	max-width: 400px;
}

.cms-block--table.cms-block--width-hero,
.cms-block--calloutgroup.cms-block--width-hero,
.cms-block--rawhtml.cms-block--width-hero {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.cms-blocktitle {
	font-family: "Raleway", sans-serif, simhei;
	font-weight: 800;
	font-size: var(--cms-fs-h2);
	line-height: 1.25;
	color: var(--cms-blue);
	margin: 0 0 15px;

	scroll-margin-top: 90px;
}

.cms-prose {
	font-size: var(--cms-fs-body);
	line-height: 1.75;
	color: var(--cms-ink);
}

.cms-prose>*:first-child {
	margin-top: 0;
}

.cms-prose>*:last-child {
	margin-bottom: 0;
}

.cms-prose p {
	margin: 0 0 1.1em;
}

.cms-prose h3 {
	font-family: "Raleway", sans-serif, simhei;
	font-weight: 800;
	font-size: var(--cms-fs-h3);
	line-height: 1.3;
	color: var(--cms-blue);
	margin: 1.6em 0 0.5em;
	scroll-margin-top: 90px;
}

.cms-prose h4 {
	font-family: "Raleway", sans-serif, simhei;
	font-weight: 800;
	font-size: 1.8rem;
	color: var(--cms-ink);
	margin: 1.4em 0 0.4em;
}

.cms-prose ul,
.cms-prose ol {
	margin: 0 0 1.1em;
	padding-left: 1.6em;
}

.cms-prose li {
	margin-bottom: 0.4em;
}

.cms-prose a {
	color: var(--cms-blue);
	text-decoration: underline;
	font-weight: 800;
}

.cms-prose a:hover,
.cms-prose a:focus {
	color: var(--cms-primary);
}

.cms-prose strong,
.cms-prose b {
	font-weight: 800;
}

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

.cms-prose hr {
	border: 0;
	border-top: 1px solid var(--cms-line);
	margin: 1.8em 0;
}

.cms-text--center {
	text-align: center;
}

.cms-ti {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--cms-gap);
	align-items: start;
}

.cms-ti--narrow {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

.cms-ti-media img,
.cms-ti-media picture {
	width: 100%;
	height: auto;
	display: block;
}

.cms-infolist {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
}

.cms-infolist-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 8px 0;
	font-size: var(--cms-fs-body);
	line-height: 1.5;
	color: var(--cms-ink);
}

.cms-infolist-icon {
	flex: 0 0 auto;
	width: 1.4em;
	margin-top: 0.1em;
	text-align: center;
	color: inherit;
	font-size: 1.1em;
}

.cms-infolist-link,
.cms-infolist-link:visited {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	color: inherit;
	text-decoration: none;
}

.cms-infolist-link:hover,
.cms-infolist-link:focus {
	color: var(--cms-primary);
}

.cms-figure {
	margin: 0;
}

.cms-figure img {
	width: 100%;
	height: auto;
	max-height: 80vh;
	display: block;
	border-radius: var(--cms-radius);

	object-fit: contain;
}

.cms-figure--narrow {
	max-width: 400px;
	margin-left: auto;
	margin-right: auto;
}

.cms-figure--wide {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}

.cms-figure--hero {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.cms-figure--hero img {
	border-radius: 0;
}

.cms-gallery {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--cms-gap);
	align-items: start;
	margin-left: auto;
	margin-right: auto;
}

.cms-gallery--narrow {
	max-width: 400px;
}

.cms-gallery--wide {
	max-width: 900px;
}

.cms-gallery--hero {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.cms-gallery--hero .cms-figure img {
	border-radius: 0;
}

.cms-gallery .cms-embed {
	max-width: none;
	margin: 0;
}

.cms-gallery .cms-embed--9x16 {
	max-width: 220px;
	margin: 0 auto;
}

.cms-figcaption {
	font-size: var(--cms-fs-sm);
	color: var(--cms-ink-3);
	line-height: 1.5;
	margin: 10px 0 0;
	text-align: center;
}

.cms-embed {
	position: relative;
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
	background: var(--cms-soft-bg);
	border-radius: var(--cms-radius);
	overflow: hidden;
}

.cms-embed--16x9 {
	padding-top: 56.25%;
}

@supports (aspect-ratio: 16 / 9) {
	.cms-embed--16x9 {
		padding-top: 0;
		aspect-ratio: 16 / 9;
	}
}

.cms-embed--9x16 {
	max-width: 360px;
	padding-top: 177.78%;
}

@supports (aspect-ratio: 9 / 16) {
	.cms-embed--9x16 {
		padding-top: 0;
		aspect-ratio: 9 / 16;
	}
}

.cms-embed iframe,
.cms-embed video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

@supports (aspect-ratio: 16 / 9) {

	.cms-embed iframe,
	.cms-embed video {
		position: static;
	}
}

.cms-embed--native {

	padding-top: 133.33%;
}

@supports (aspect-ratio: 3 / 4) {
	.cms-embed--native {
		padding-top: 0;
	}

	.cms-embed--native video {
		position: static;
		display: block;
		width: 100%;
		height: auto;
		max-height: 80vh;
		aspect-ratio: auto 3 / 4;
		object-fit: contain;
	}
}

.cms-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.cms-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1.5rem;
	line-height: 1.5;
}

.cms-table th,
.cms-table td {
	padding: 10px 12px;
	border-bottom: 1px solid #eee;
	text-align: left;
	vertical-align: top;
}

.cms-table thead th {
	background: #f5f5f0;
	border-bottom: 2px solid #ddd;
	font-weight: 800;
	white-space: nowrap;
}

.cms-table tbody th {
	font-weight: 800;
}

.cms-table tbody tr:nth-child(even) {
	background: #f5f5f0;
}

.cms-table th>*:first-child,
.cms-table td>*:first-child {
	margin-top: 0;
}

.cms-table th>*:last-child,
.cms-table td>*:last-child {
	margin-bottom: 0;
}

.cms-table-note {
	font-size: var(--cms-fs-sm);
	color: var(--cms-ink-3);
	margin: 10px 0 0;
}

.cms-align-left {
	text-align: left;
}

.cms-align-center {
	text-align: center;
}

.cms-align-right {
	text-align: right;
}

.cms-cta {
	display: inline-block;
	padding: var(--cms-btn-py) var(--cms-btn-px);
	font-family: "Raleway", sans-serif, simhei;
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.03em;
	text-decoration: none;
	border: 2px solid transparent;
	border-radius: var(--cms-radius);
	cursor: pointer;
}

.cms-cta:hover,
.cms-cta:focus {
	text-decoration: none;
}

.cms-cta--primary,
.cms-cta--primary:visited {
	background: var(--cms-blue);
	border-color: var(--cms-blue);
	color: #fff;
}

.cms-cta--primary:hover,
.cms-cta--primary:focus {
	background: var(--cms-blue-dark);
	border-color: var(--cms-blue-dark);
	color: #fff;
}

.cms-cta--inverted,
.cms-cta--inverted:visited {
	background: #fff;
	border-color: var(--cms-blue);
	color: var(--cms-blue);
}

.cms-cta--inverted:hover,
.cms-cta--inverted:focus {
	background: var(--cms-blue);
	border-color: var(--cms-blue);
	color: #fff;
}

.cms-cta--outline,
.cms-cta--outline:visited {
	background: none;
	border-color: var(--cms-primary);
	color: var(--cms-primary);
}

.cms-cta--outline:hover,
.cms-cta--outline:focus {
	background: var(--cms-primary-tint);
	color: var(--cms-primary-dark);
}

.cms-cta-sub {
	font-size: var(--cms-fs-sm);
	color: var(--cms-ink-3);
	margin: 10px 0 0;
}

.cms-callout {
	border-radius: var(--cms-radius);
	padding: 20px 24px;
	margin: 0;
}

.cms-calloutgroup {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--cms-gap);
}

.cms-callout--note {
	background: var(--cms-primary-tint);
	border-left: 4px solid var(--cms-primary);
}

.cms-callout--warn {
	background: var(--cms-accent-tint);
	border-left: 4px solid var(--cms-accent);
	color: var(--cms-accent-ink);
}

.cms-callout--warn .cms-prose {
	color: var(--cms-accent-ink);
}

.cms-callout--quote {
	background: #ECE5DB;
	border: 0;
	border-left: 0;
	padding: 30px;
	text-align: center;
	font-family: "Raleway", sans-serif, simhei;
	font-weight: 400;
}

.cms-callout--quote .cms-prose {
	font-size: 2.2rem;
	line-height: 1.5;
}

.cms-callout-cite {
	font-size: var(--cms-fs-sm);
	color: var(--cms-ink-2);
	font-style: italic;
	margin: 12px 0 0;
}

.cms-callout--quote .cms-callout-cite::before {
	content: "— ";
}

.cms-callout--review,
.cms-callout--outline {
	position: relative;

	border-radius: var(--cms-radius) var(--cms-radius) var(--cms-radius) 0;
	padding: 24px 28px;
	margin: 0 0 20px;
}

.cms-callout--review {
	background: var(--cms-blue);
	border: 0;
	color: #fff;
}

.cms-callout--outline {
	background: #fff;
	border: 2px solid var(--cms-blue);
	color: var(--cms-ink);
}

.cms-callout--review::before,
.cms-callout--outline::before {
	content: "";
	position: absolute;
	z-index: 1;
	width: 0;
	height: 0;
	border-style: solid;

	border-width: 0 0 36px 36px;
	border-color: transparent transparent transparent var(--cms-blue);
}

.cms-callout--review::before {
	top: 100%;
	left: 0;
}

.cms-callout--outline::before {
	top: calc(100% + 2px);
	left: -2px;
}

.cms-callout--outline::after {
	content: "";
	position: absolute;
	z-index: 2;
	top: calc(100% - 1px);
	left: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 0 34px 34px;
	border-color: transparent transparent transparent #fff;
}

.cms-callout--review .cms-prose,
.cms-callout--review .cms-callout-cite {
	color: #fff;
}

.cms-callout--review .cms-callout-cite,
.cms-callout--outline .cms-callout-cite {
	text-align: right;
}

.cms-callout--review .cms-callout-cite::before,
.cms-callout--outline .cms-callout-cite::before {
	content: "— ";
}

.cms-callout-byline-avatar {
	width: 8rem;
	height: 8rem;
	margin: 2rem auto 0.5rem;
	border-radius: 50%;
	overflow: hidden;
	flex: 0 0 auto;
}

.cms-callout-byline-avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cms-callout-byline-name {
	margin: 0;
	font-size: var(--cms-fs-body);
	line-height: 1.5;
	color: var(--cms-ink);
}

.cms-callout-byline-role {
	color: var(--cms-ink-2);
	font-style: italic;
}

.cms-stats {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--cms-block-gap);
	max-width: var(--cms-measure);
	margin-left: auto;
	margin-right: auto;
}

.cms-stat {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	align-items: center;
}

.cms-stat>div {
	min-width: 0;
}

.cms-stat-figure {
	margin: 0;
	font-family: "Lato", sans-serif;
	font-size: 7rem;
	font-weight: 600;

	line-height: 1.2;
	letter-spacing: 0.05em;
	text-align: center;
	color: var(--cms-blue);
}

.cms-stat-unit {
	font-size: 0.4em;
	padding-left: 0.2em;
	letter-spacing: initial;
}

.cms-stat-head {
	margin: 0;
	font-family: "Raleway", sans-serif;
	font-size: 2.3rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-align: center;
	color: var(--cms-ink);

	font-feature-settings: "lnum";
}

.cms-stat-sub {
	margin: 0;
	font-size: var(--cms-fs-body);
	font-weight: 400;
	text-align: center;
	color: var(--cms-ink-2);
}

.cms-stat-stars {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	vertical-align: middle;
	margin-left: 0.4em;
	color: var(--cms-accent);
}

.cms-stat-stars svg {
	display: block;
	width: 1em;
	height: 1em;
}

@media (min-width: 992px) {
	.cms-stat {

		grid-template-columns: 5fr 7fr;
		gap: var(--cms-gap);
	}

	.cms-stat-figure {
		text-align: right;
	}

	.cms-stat-head,
	.cms-stat-sub {
		text-align: left;
	}
}

.cms-block--faq {

	margin-bottom: 50px;
}

.cms-faq-section {
	font-family: "Raleway", sans-serif, simhei;
	font-weight: 800;
	font-size: 2.6rem;
	line-height: 1.2;
	color: var(--cms-blue);
	margin: 0 0 5px;

	scroll-margin-top: 90px;
}

.cms-faq-item {
	margin-top: 30px;

	scroll-margin-top: 90px;
}

.cms-faq-item:first-of-type {
	margin-top: 25px;
}

.cms-faq-q {
	font-family: "Raleway", sans-serif, simhei;
	font-weight: 800;
	font-size: var(--cms-fs-h3);
	line-height: 1.3;
	color: var(--cms-ink);
	margin: 0 0 10px;
}

.cms-faq-nav {
	text-align: center;
	margin: 0 0 10px;
	font-size: 1.8rem;
}

.cms-faq-nav a {
	display: inline-block;
	margin: 4px 12px;
	font-weight: 800;
	color: var(--cms-blue);
	text-decoration: underline;
}

.cms-faq-arealist {
	border: 1px solid var(--cms-line);
	border-radius: var(--cms-radius);
	padding: 15px 20px;
	margin-top: 20px;
}

.cms-faq-arealist-title {
	font-weight: 800;
	margin: 0 0 10px;
}

.cms-faq-arealist-cols {
	display: flex;
	flex-wrap: wrap;
	gap: 0 40px;
}

.cms-faq-arealist-cols ul {
	margin: 0;
}

.cms-btn-sample {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0 5px;
	padding: 8px 16px;
	font-size: 14px;
	font-weight: bold;
	line-height: 1.2;
	text-decoration: none;
	border: 1.5px solid var(--cms-primary);
	border-radius: 4px;
	background: var(--cms-primary);
	color: #fff;
	cursor: default;
	pointer-events: none;
}

.cms-needhelp {
	background: var(--cms-blue);
	color: #fff;
	border-radius: var(--cms-radius);
	padding: 30px 24px;
	text-align: center;
}

.cms-needhelp-title {
	font-family: "Raleway", sans-serif, simhei;
	font-weight: 800;
	font-size: var(--cms-fs-h3);
	color: #fff;
	margin: 0 0 15px;
}

.cms-needhelp-hours {
	font-size: var(--cms-fs-body);
	line-height: 1.6;
	color: #fff;
	margin: 0 0 30px;
}

.cms-needhelp-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--cms-gap);
}

.cms-needhelp-link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	color: #fff;
	text-decoration: none;
	font-size: var(--cms-fs-body);
	line-height: 1.4;
}

.cms-needhelp-link:hover,
.cms-needhelp-link:focus {
	color: var(--cms-accent-tint);
	text-decoration: none;
}

.cms-needhelp-icon {
	font-size: 5rem;
}

.cms-needhelp-sub {
	margin: 8px 0 0;
	font-size: var(--cms-fs-sm);
	color: #fff;
	opacity: .85;
}

.cms-block--rawhtml {
	overflow-x: auto;
}

.cms-index-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--cms-gap);
	margin-bottom: 40px;
}

.cms-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--cms-line);
	border-radius: var(--cms-radius);
	overflow: hidden;
	background: #fff;
}

.cms-card-media {
	display: block;
	background: var(--cms-soft-bg);
}

.cms-card-media img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	display: block;
}

.cms-card-media--empty {
	height: 180px;
	background: linear-gradient(135deg, var(--cms-primary-tint), var(--cms-soft-bg));
}

.cms-card-body {
	padding: 18px 20px 22px;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
}

.cms-card-title {
	font-family: "Raleway", sans-serif, simhei;
	font-weight: 800;
	font-size: 2rem;
	line-height: 1.3;
	margin: 0 0 8px;
}

.cms-card-title a {
	color: var(--cms-blue);
	text-decoration: none;
}

.cms-card-title a:hover,
.cms-card-title a:focus {
	text-decoration: underline;
}

.cms-card-excerpt {
	font-size: 1.6rem;
	line-height: 1.6;
	color: var(--cms-ink-2);
	margin: 0 0 12px;
}

.cms-card-meta {
	margin: auto 0 0;
	font-size: var(--cms-fs-sm);
	color: var(--cms-ink-3);
}

.cms-index-empty {
	text-align: center;
	color: var(--cms-ink-3);
	font-size: var(--cms-fs-body);
	padding: 40px 0 60px;
}

@media (min-width: 768px) {

	.cms-ti {
		grid-template-columns: var(--cms-ti-img, 50%) 1fr;
	}

	.cms-ti--imgright {
		grid-template-columns: 1fr var(--cms-ti-img, 50%);
	}

	.cms-gallery--2 {
		grid-template-columns: 1fr 1fr;
	}

	.cms-gallery--3 {
		grid-template-columns: 1fr 1fr 1fr;
	}

	.cms-gallery--4 {
		grid-template-columns: 1fr 1fr;
	}

	.cms-gallery .cms-figure {
		container-type: inline-size;
	}

	.cms-gallery .cms-figure img {
		width: 100%;
		height: auto;
		max-height: 80vh;
		max-height: min(165cqw, 80vh);
		object-fit: contain;
	}

	.cms-gallery .cms-embed--native video {
		max-height: 80vh;
		max-height: min(165cqw, 80vh);
	}

	.cms-calloutgroup--2,
	.cms-calloutgroup--4 {
		grid-template-columns: 1fr 1fr;
	}

	.cms-calloutgroup--3 {
		grid-template-columns: 1fr 1fr 1fr;
	}

	.cms-ti--imgright .cms-ti-media {
		order: 2;
	}

	.cms-ti--imgright .cms-ti-copy {
		order: 1;
	}

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

@media (min-width: 992px) {
	.cms-body {
		--cms-fs-h2: 3rem;
		--cms-fs-h3: 2.3rem;
	}

	.cms-faq-section {
		font-size: 3.2rem;
	}

	.cms-gallery--full.cms-gallery--4,
	.cms-gallery--hero.cms-gallery--4 {
		grid-template-columns: repeat(4, 1fr);
	}

	.cms-block {
		margin-bottom: 50px;
	}

	.cms-index-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 1200px) {
	.cms-ti {
		gap: 45px;
	}
}

@media print {

	.cms-previewbar,
	.cms-embed {
		display: none;
	}

	.cms-block {
		max-width: none;
		page-break-inside: avoid;
	}
}
