@import url("reset.css");

/* ------ Fonts ------ */

/* 
Gotham Extra Light
font-weight: 200;

Gotham Book
font-weight: 400;

Gotham Medium
font-weight: 500;

Gotham Bold
font-weight: 700;
*/

/* ------ Vars ------ */
:root {
	--width: 1260px;
	--width-mid: 94%;
}

/* ------ Global ------ */

html, body {
	background: #f3f3f3;
	color: #000;
	font-family: "Gotham A", "Gotham B", Arial, sans-serif;
	font-size: 17px;
	font-style: normal;
	font-weight: 400;
	line-height: 140%;
	min-height: 100%;
	overscroll-behavior-y: contain;
	width: 100%;
}

a#skip {
	position: fixed;
	top: -100%;
	left: -100%;
	background: #2d2d65;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	z-index: 9999;
}

a#skip:focus {
	top: 0px;
	left: 0px;
	padding: 30px 0;
	text-align: center;
	width: 100%;
}

header {
	background: #646EA0;
	border-bottom: 1px solid #DDE1E6;
	padding: 18px 0;
	width: 100%;
}

header .content {
	align-items: center;
	display: flex;
	margin: 0 auto;
	width: var(--width);
}

header .logo {
	display: block;
	height: 52px;
	width: 150px; 
}

header .logo img {
	width: 100%;
}

header nav {
	margin-left: auto;
}

header nav ul {
	align-items: center;
	display: flex;
	gap: 43px;
}

header nav li {
	position: relative;
}

header nav a {
	align-items: center;
	color: #fff;
	display: inline-flex;
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	transition: color .2s ease, opacity .2s ease;
}

header nav a:hover,
header nav a:focus-visible, header nav a.active {
	color: #7FC242;
	outline: none;
}

header nav a.active {
	text-decoration: underline;
}

header nav a.active:hover, header nav a.active:focus {
	text-decoration: none;
}

header nav li.subnav > a::after {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	background: url('../images/icon-dropdown.svg') no-repeat center / contain;
	margin-left: 6px;
}

header nav li.subnav:has(.active) > a::after, header nav li.subnav > a:hover::after, header nav li.subnav > a:focus::after {
	content: "";
	background: url('../images/icon-dropdown-green.svg') no-repeat center / contain;
}

header nav li.subnav > ul {
	gap: 0;
	flex-direction: column;
	position: absolute;
	top: calc(100%);
	left: 0;
	margin: 0;
	list-style: none;
	background: #fff;
	color: #1b1e4b;
	border-radius: 8px;
	box-shadow: 0 10px 24px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.12);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
	z-index: 50;
	text-align: center;
	width: 100%;
}

header nav li.subnav:hover > ul,
header nav li.subnav:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition-delay: 0s;
}

header nav li.subnav > ul > li {
	border-top: 1px solid #000;
	width: 100%;
}

header nav li.subnav > ul > li:first-of-type {
	border: 0;
}

header nav li.subnav > ul > li > a {
	align-items: left;
	display: block;
	color: #1b1e4b;
	line-height: 130%;
	padding: 20px 15px;
	border-radius: 6px;
	font-weight: 500;
}

header nav li.subnav > ul > li > a.active {
	color: #000;
	text-decoration: underline;
}

header nav li.subnav > ul > li > a:hover,
header nav li.subnav > ul > li > a:focus-visible {
	background: #EBEDF3;
	color: #1b1e4b;
	outline: none;
}

header #mobile, #mobile-menu {
	display: none;
}

#wrapper {
	background: #fff;
	border-bottom: 60px solid #893469;
	margin: 0 auto;
	overflow-x: hidden;
	max-width: 1440px;
	width: 100%;
}

#banner {
	background: #893469;
	display: flex;
	height: 230px;
	position: relative;
	width: 100%;
}

#banner h1 {
	align-self: center;
	color: #fff;
	font-size: 53px;
	font-weight: 700;
	line-height: 110%;
	padding: 0 90px 10px 90px;
}

#banner:has(#trio) h1 {
	max-width: 600px;
}

#banner #flourish {
	display: flex;
	height: 100%;
	justify-content: flex-end;
	position: absolute;
	right: 0px;
	top: 0px;
}

#banner #flourish #trio {
    background: linear-gradient(
		to right,
		#2d2d65 0%,
		#2d2d65 31%,
		#ed1e2d 31%,
		#ed1e2d 59.5%,
		#eab64e 59.5%,
		#eab64e 100%
	  );
	border-left: 9px solid #fff;
	height: 100%;
	display: flex;
	width: 661px;
}

#banner #flourish #road {
	background: #7FC242;
	border-left: 9px solid #fff;
	display: flex;
	height: 100%;
	width: 290px;
}

#banner #flourish #bus {
	background: #646EA0;
	border-left: 9px solid #fff;
	display: flex;
	height: 100%;
	width: 290px;
}

#banner #flourish #rail {
	background: #EAB44A;
	border-left: 9px solid #fff;
	display: flex;
	height: 100%;
	width: 290px;
}

#banner #flourish #microtransit {
	background: #EAB44A;
	border-left: 9px solid #fff;
	display: flex;
	height: 100%;
	width: 293px;
}

#banner #flourish #chevron {
	background: #ed1e2d;
	clip-path: polygon(
		0 0,        /* top-left */
		100% 0,     /* top-right */
		100% 100%,  /* bottom-right */
		0 100%,     /* bottom-left */
		115px 50%   /* inward chevron point */
	);
	height: 230px;
	width: 170px;
}

#banner #flourish #chevron.yellow {
	background: #EAB44A;
}

#banner #flourish #chevron.green {
	background: #7FC242;
}

#banner #flourish #chevron.blue {
	background: #24A9E0;
}

#banner img {
	align-self: center;
	width: 100%;
}

#breadcrumb {
	padding: 30px 90px 0 90px;
}

#breadcrumb p {
	column-gap: 15px;
	display: flex;
	flex-wrap: wrap;
}

#breadcrumb a {
	color: #697077;
	display: inline-block;
	flex: 0 0 auto;
	text-decoration: none;
}

#breadcrumb a:last-child {
	font-weight: 700;
}

#breadcrumb a:hover, #breadcrumb a:focus {
	text-decoration: underline;
}

.split {
	padding: 68px 0;
}

.split.shade {
	background: #EBEDF3;
}

.split:has(+.split) {
	padding: 65px 0 0 0;
}

.split.shade:has(+.split) {
	padding: 65px 0 28px 0;
}

.split + .split {
	padding: 0 0 28px 0;
}

.split.shade + .split {
	padding: 65px 0 28px 0;
}

.split.shade + .split + .split.shade {
	padding: 65px 0 28px 0;
}

.split > .content {
	display: flex;
	padding: 0 90px 37px 90px;
	justify-content: space-between;
}

.split .content.flip {
	flex-direction: row-reverse;
}

.split > .content:not(:first-of-type) {
	border-top: 1px dashed #000;
	padding-top: 38px;
	padding-bottom: 30px;
}

.split .text {
	flex: 0 1 47.5%; 
	min-width: 0;
}

.split .text.center {
	align-self: center;
}

.split .text.full {
	flex: 0 1 95%; 
	padding-bottom: 30px;
}

.split .text h2 {
	color: #21272A;
	font-size: 41px;
	font-weight: 700;
	line-height: 100%;
}

.split .text h3 {
	font-weight: 700;
	font-size: 22px;
	line-height: 110%;
}

.split .text p {
	margin-top: 25px;
}

.split .text > ul {
	margin-top: 35px;
	padding: 0 0 0 20px;
}

.split .text > ul.check {
	padding: 0;
}

.split .text > ul ul {
	padding: 0 0 0 20px;
	margin-top: 20px;
}

.split .text p + ul {
	margin-top: 0;
}

.split .text > ul li {
	list-style-type: disc;
	margin-top: 25px;
}

.split .text > ul.check li {
	background: url('../images/icon-check.svg') no-repeat top left;
	list-style-type: none;
	padding: 0 0 0 35px;
}

.split .text > ul.check ul li {
	background: none;
	list-style-type: disc;
	padding: 0;
}

.split .text p a, .split .text li a {
	color: #2D2D65;
	font-weight: 700;
}

.split .text p a:hover, .split .text p a:focus, .split .text li a:hover, .split .text li a:focus {
	color: #000000;
}

.split .text p img {
	transform: translateX(0);
	transition: transform .18s ease;
	will-change: transform;
	vertical-align: sub;
}

.split .text p a:hover + img, .split .text p a:focus + img {
	transform: translateX(5px);
}

.split aside {
	flex: 0 1 47.5%; 
}

.split aside > img {
	border-radius: 20px;
	display: block;
	width: 100%;
}

.split aside .deco {
	position: relative;
	width: 100%;
}

.split aside .deco img:first-of-type {
	border-radius: 20px;
	display: block;
	width: 100%;
	z-index: 1;
}

.split aside .deco img:last-of-type {
	bottom: 0px;
	position: absolute;
	right: 0px;
	z-index: 2;
}

.split aside .deco.top img:last-of-type {
	bottom: auto;
	left: 0px;
	right: auto;
	top: 12px;
}

#page-microtransit .split aside .deco img:last-of-type {
	right: -11px;
}

.split aside .map {
	display: block;
	width: 100%;
}

.split aside .map:hover {
	cursor: url('../images/cursor-enlarge.svg') 0 0, pointer;
}

.split aside .map img {
	border-radius: 0;
	display: block;
	width: 100%;
}

.split aside .map-tools {
	column-gap: 10px;
	display: flex;
	margin-top: 10px;
}

.split aside .map-tools a {
	background: #DDE1E6;
	border-radius: 7px;
	color: #2D2D65;
	column-gap: 5px;
	display: flex;
	font-weight: 700;
	justify-content: center;
	padding: 5px 25px;
	text-decoration: none;
}

.split aside .map-tools a:hover, .split aside .map-tools a:focus {
	background: #2D2D65;
	color: #fff;
}

.split aside .map-tools svg {
	align-self: center;
	fill: #2D2D65;
	pointer-events: none;
	width: 16px;
}

.split aside .map-tools a:hover svg, .split aside .map-tools a:focus svg {
	fill: #ffffff;
}

.split aside .video {
	height: 0px;
    position: relative;
    padding-bottom: 56.25%;
    width: 100%;
}

.split aside .video iframe {
    left: 0px;
    height: 100%;
	position: absolute;
    top: 0px;
    width: 100%;
}

.split .social {
	margin-top: 20px;
}

.split .social ul {
	display: flex;
	gap: 15px;
	justify-content: flex-start;
}

.split .social a {
	display: inline-flex;
	line-height: 0;
}

.split .social svg {
	display: block;
	fill: #001D6C;
	opacity: 0.8;
	pointer-events: none;
}

.split .social a:hover svg {
	fill: #7FC242;
	opacity: 1.0;
}

.highlight {
	background: #F5EEF3;
	color: #000;
	padding-bottom: 50px;
	text-align: center;
	width: 100%;
}

.highlight.margin {
	margin-top: 68px;
}

.highlight h3 {
	background: #646EA0;
	clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
	color: #fff;
	display: inline-block;
	font-size: 41px;
	font-weight: 700;
	line-height: 100%;
	padding: 25px 110px;
}

.highlight p {
	line-height: 150%;
	margin: 19px auto 0 auto;
	width: 810px;
}

.highlight ul {
	columns: 3;
	display: flex;
	flex-wrap: wrap;
	margin: 19px auto 0 auto;
	justify-content: space-between;
	width: 60%;
}

.highlight li {
	box-sizing: border-box;
	flex: 1 1 calc(33%);
	list-style: disc;
	line-height: 140%;
	max-width: 33%;
	margin-top: 5px;
	text-align: left;
}

.highlight li:nth-child(7) {
	flex: 1 1 calc(100%);
	column-span: 3;
	max-width: 100%;
}

.highlight a {
	color: #fff;
}

.highlight a:hover, .highlight a:focus {
	color: #FFD700;
}

.tiles {
	background: #EBEDF3;
	padding: 44px 0 90px 0;
	width: 100%;
}

.tiles > .content {
	display: flex;
	flex-wrap: wrap;
	gap: 58px 16px;
	margin: 0 auto;
	padding-top: 36px;
	justify-content: left;
	width: var(--width);
}

.tiles h2 {
	color: #001D6C;
	font-size: 41px;
	font-weight: 700;
	line-height: 120%;
	margin: 0 auto;
	text-align: center;
	width: 55%;
}

.tile {
	background: #fff;
	box-shadow: 0px 4px 18px 0px rgba(0,0,0,0.26);
	color: #000;
	display: block;
	flex: 1 1 calc(25% - 16px);
	text-decoration: none;
	line-height: 140%;
	max-width: 24.047619%;
	transform: translateY(0);
	transition: transform .18s ease, box-shadow .18s ease;
	will-change: transform;
}

.tile:hover, .tile:focus {
	transform: translateY(-6px);
}

.tile .content {
	padding: 26px 26px 40px 26px;
}

.tile img {
	width: 100%;
}

.tile h4 {
	color: #92278F;
	font-size: 22px;
	font-weight: 700;
	padding-bottom: 10px;
}

.tile h4:after {
	content: " \279E";
}

.tile:hover h4, .tile:focus h4 {
	color: #7780AC;
	text-decoration: underline;
}

.routes {
	padding: 44px 0 90px 0;
	width: 100%;
}

.routes > .content {
	display: flex;
	flex-wrap: wrap;
	gap: 58px 16px;
	margin: 0 auto;
	padding-top: 36px;
	justify-content: left;
	width: var(--width);
}

.routes h2 {
	color: #21272A;
	font-size: 41px;
	font-weight: 700;
	line-height: 120%;
	margin: 0 auto;
	text-align: center;
	width: 55%;
}

.route {
	flex: 1 1 calc(25% - 16px);
	line-height: 140%;
	max-width: 303px;
}

.route > a {
	aspect-ratio: 4/3;
	border: 1px solid #646EA0;
	box-sizing: border-box;
	display: inline-block;
	line-height: 0;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.route > a:hover, .route a:focus {
	border-color: #7FC242;
	cursor: url('../images/cursor-enlarge.svg') 0 0, pointer;
}

.route > a img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center;
	width: 100%;
}

.route h3 {
	font-size: 21px;
	line-height: 140%;
	margin-top: 15px;
}

.route b {
	display: block;
}

.route .route-tools {
	column-gap: 10px;
	display: flex;
	margin-top: 15px;
}

.route .route-tools a {
	background: #DDE1E6;
	border-radius: 7px;
	color: #2D2D65;
	column-gap: 5px;
	display: flex;
	font-weight: 700;
	justify-content: center;
	padding: 5px 25px;
	text-decoration: none;
}

.route .route-tools a:hover, .route .route-tools a:focus {
	background: #2D2D65;
	color: #fff;
}

.route .route-tools svg {
	align-self: center;
	fill: #2D2D65;
	pointer-events: none;
	width: 16px;
}

.route .route-tools a:hover svg, .route .route-tools a:focus svg {
	fill: #ffffff;
}

#board {
	padding: 44px 0 90px 0;
	width: 100%;
}

#board > .content {
	align-content: center;
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin: 0 auto;
	padding-top: 36px;
	justify-content: center;
	width: var(--width);
}

#board h2 {
	color: #21272A;
	font-size: 41px;
	font-weight: 700;
	line-height: 120%;
	margin: 0 auto;
	padding: 0 3%;
	text-align: center;
}

.board {
	background: #EBEDF3;
	border-radius: 31px;
	flex: 1 1 calc(33.333% - 22px);
	max-width: 381px;
	padding: 12px;
}

.board .icon {
	align-content: center;
	border-top-left-radius: 31px;
	border-top-right-radius: 31px;
	background: #893469;
	display: flex;
	flex-wrap: wrap;
	gap: 14px 10px;
	height: 220px;
	justify-content: center;
	padding: 0 50px;
}

.board .icon img {
	width: 38.25px;
}

.board .icon.single img {
	width: 93px;
}

.board .icon.duo img {
	width: 75px;
}

.board .text {
	align-items: center;
	display: flex;
	flex-direction: column;
	padding: 28px 38.5px;
}

.board .text p:first-of-type {
	font-size: 22px;
	font-weight: 700;
	line-height: 28px;
	text-align: center;
}

.board .text ul {
	display: inline-block;
	flex: 0 0 auto;
	margin: 0;
	padding: 0 0 0 1.2rem; 
	width: auto;
}

.board .text > ul {
	padding-top: 20px;
}

.board .text li {
	line-height: 140%;
	list-style: disc;
	width: auto;
}

.stat {
	background: #F3F3F7;
	width: 100%;
}

.stat .content {
	display: flex;
	width: 100%;
}

.stat .chevron {
	align-items: center;
	background: #686e9f;
	clip-path: polygon(
		0 0,
		calc(100% - 110px) 0,
		100% 50%,
		calc(100% - 110px) 100%,
		0 100%
	);
	display: flex;
	flex: 0 0 auto;
	justify-content: center;
	text-align: center;
	max-width: 690px;
}

.stat .chevron h2 {
	color: #fff;
	font-size: 27px;
	font-weight: 700;
	line-height: 120%;
	padding: 133px 172px 133px 122px;
}

.stat .chevron h2 span {
	display: block;
	font-size: 89px;
	line-height: 100%;
}

.stat .text {
	align-self: center;
	display: flex;
	flex: 1 1 auto;
	justify-content: center;
	text-align: center;
}

.stat .text ul {
	color: #21272a;
	font-size: 21px;
	font-weight: 500;
	line-height: 180%;
	list-style-type: disc;
	text-align: left;
}

.funding {
	background: #2D2D65;
	height: auto;
	width: 100%;
}

.funding .content {
	display: flex;
	height: 100%;
	width: 100%;
}

.funding .content > .text {
	align-items: left;
    display: flex;
    flex: 0 0 auto;
	flex-direction: column;
    justify-content: center;
	margin: 84px 0 84px 90px;
    max-width: 630px;
	text-align: left;
}

.funding h2 {
	color: #fff;
	font-size: 41px;
	font-weight: 700;
	line-height: 110%;
}

.funding h2 {
	color: #fff;
	font-size: 41px;
	font-weight: 700;
	line-height: 110%;
}

.funding p {
	color: #fff;
	line-height: 150%;
	margin-top: 10px;
}

.funding .graphic {
	background: #fff;
	border-radius: 31px;
	display: inline-flex;
	gap: 15px;
	margin-top: 44px;
	padding: 34px 34px 34px 23px;
	width: fit-content;
}

.funding .graphic h3 {
	color: #2D2D65;
	font-size: 27px;
	font-weight: 700;
	line-height: 150%;
}

.funding .graphic h3 span {
	display: block;
	font-size: 89px;
	line-height: 100%;
}

.funding .graphic svg {
	fill: #2D2D65;
	height: auto;
	width: 137px;
}

.funding .deco {
	width: 100%;
}

.funding.road .deco {
	background: url('../images/decorative-road-yellow.svg') no-repeat center top;
}

.funding.rail .deco {
	background: url('../images/decorative-rail-blue.svg') no-repeat center top;
}

.funding.bus .deco {
	background: url('../images/decorative-bus-green.svg') no-repeat center top;
}

footer {
	background: #646EA0;
	width: 100%;
}

footer .content {
	align-items: flex-start;
	color: #fff;
	display: flex;
	margin: 0 auto;
	justify-content: space-between;
	padding: 40px 0;
	width: var(--width);
}

footer .logo {
	align-self: center;
	display: block;
	height: 52px;
	width: 150px; 
}

footer .logo img {
	width: 100%;
}

footer nav li {
	margin-bottom: 7px;
}

footer nav .social li {
	margin-bottom: 0;
}

footer nav li a {
	color: #fff;
	text-decoration: none;
}

footer nav a:hover,
footer nav a:focus, footer nav a.active {
	color: #7FC242;
	outline: none;
}

footer nav a.active {
	text-decoration: underline;
}

footer nav a.active:hover,
footer nav a.active:focus {
	text-decoration: none;
}

footer .request {
	background: #24A9E0;
	border-radius: 9px;
	color: #2D2D65;
	display: inline-block;
	font-weight: 500;
	margin-top: 40px;
	padding: 10px 12px 12px 12px;
	text-decoration: none;
}

footer .request:hover, footer .request:focus {
	background: #7FC242;
	color: #fff;
}

footer .social {
	display: flex;
	justify-content: space-between;
	margin-top: 10px;
}

footer nav:first-of-type .social {
	margin-bottom: 27px;
}

footer .social a {
	display: inline-flex;
	line-height: 0;
}

footer .social svg {
	display: block;
	fill: #ffffff;
	opacity: 0.8;
	pointer-events: none;
}

footer .social a:hover svg, footer .social a:focus svg {
	fill: #7FC242;
	opacity: 1.0;
}

/* ------ Home ------ */

#splash {
	align-items: center;
	display: flex;
	position: relative;
	width: 100%;
}

#splash img {
	width: 100%;
}

#splash .content {
	background: #2D2D65;
	border-radius: 22px;
	color: #fff;
	margin: 0 0 0 90px;
	padding: 37px;
	position: absolute;
	width: 518px;
}

#splash h1 {
	font-size: 53px;
	font-weight: 700;
	line-height: 100%;
}

#splash p {
	margin-top: 20px;
}

#splash a {
	background: #24A9E0;
	border-radius: 9px;
	color: #2D2D65;
	display: inline-block;
	font-weight: 500;
	margin-top: 30px;
	padding: 10px 32px 12px 32px;
	text-align: center;
	text-decoration: none;
}

#splash a:hover, #splash a:focus {
	background: #7FC242;
	color: #fff;
}

#page-home .split:first-of-type .text h2 {
	color: #2D2D65;
}

#regional {
	background: url('../images/decorative-arrow-green.svg') no-repeat calc(50% + 7px) calc(100% + 35px);
	padding: 78px 0 13px 0;
}

#regional .text {
	padding-top: 15px;
}

#regional ul {
	width: 465px;
}

#facts {
	background: #2D2D65;
	width: 100%;
}

#facts .content {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 30px;
	margin: 0 auto;
	justify-content: center;
	width: 978px;
}

#facts h3 {
	color: #fff;
	flex: 0 0 100%;
	font-size: 41px;
	font-weight: 700;
	line-height: 46.2px;
	padding: 40px 0;
	text-align: center;
	width: 100%;
}

#facts .fact {
	flex: 1 1 calc(33.333% - 30px);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	max-width: 259px;
	margin: 0 auto;
}

#facts .fact img {
	display: block;
	margin-bottom: 15px;
	height: auto;
}

#facts .fact p {
	margin: 0;
	line-height: 130%;
	color: #fff;
	opacity: 0.85;
}

#facts .line {
	border-top: 1px dashed #fff;
	flex: 0 0 100%;
	height: 1px;
	margin: 10px 0;
}

#facts .about {
	padding-bottom: 30px;
}

#facts .about a {
	background: #EAB44A;
	border-radius: 9px;
	color: #2D2D65;
	display: inline-block;
	font-weight: 700;
	padding: 10px 26px;
	text-align: center;
	text-decoration: none;
}

#facts .about a:hover, #facts .about a:focus {
	background: #000;
	color: #EAB44A;
}

#facts .stripe {
	border-top: 16px solid #24A9E0;
	border-bottom: 16px solid #24A9E0;
	height: 44px;
	background:
	  /* stripes layer (top band only) */
	  repeating-linear-gradient(
		90deg,
		#e0b256 0 11px,      /* gold bar width */
		transparent 11px 24px /* gap (bar + gap = 24px period) */
	  ) top / 100% 44px no-repeat,
	  /* base fill */
	  #2D2D65;
}

/* ------ Investment ------ */

#chart-pay {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

#chart-pay .graph {
	width: 322px;
}

#chart-pay img {
	width: 100%;
}

#chart-pay .content {
	width: 237px;
}

#chart-pay h3 {
	font-size: 29px;
	font-weight: 700;
	line-height: 110%;
}

#chart-pay h3:first-of-type {
	color: #24A9E0;
}

#chart-pay h3:nth-child(3) {
	padding-top: 15px;
}

#chart-pay h3 span {
	font-size: 38px;
}

#chart-pay p {
	border-bottom: 1px solid #000;
	padding-bottom: 15px;
	width: 209px;
}

#chart-pay p:last-of-type {
	border: none;
	padding-top: 15px;
}

#funding {
	align-items: center;
	background: url('../images/bg-funding.jpg') no-repeat center top;
	height: 866px;
	display: flex;
	justify-content: center;
	width: 100%;
}

#funding #chart {
	background: #fff;
	border-radius: 58px;
	padding: 35px;
	text-align: center;
	width: 67.7777778%;
}

#funding #chart .content {
	margin: 0 auto;
	width: 62%;
}

#funding #chart h2 {
	color: #001D6C;
	font-size: 41px;
	font-weight: 700;
	line-height: 100%;
	margin: 0 auto;
	width: 82%;
}

#funding #chart p {
	margin-top: 15px;
}

#funding #chart .columns {
	display: flex;
	gap: 60px;
	justify-content: center;
	margin: 42px 0 54px 0;
}

#funding #chart .col {
	font-size: 16px;
	font-weight: 700;
}

#funding #chart h3 {
	padding: 15px 0;
}

#funding #chart h4, #funding #chart h5 {
	border-top: 3px solid #24A9E0;
	padding: 15px 0;
}

#funding #chart span {
	line-height: 110%;
}

#funding #chart h3 span {
	font-size: 32px;
}

#funding #chart h4 span, #funding #chart h5 span {
	font-size: 22px;
}

/* ------ MPTA Callout ------ */

#callout {
	background: #646EA0;
	border-bottom: 1px solid #fff;
	width: 100%;
}

#callout.short {
	margin: 0 auto;
	width: 1440px;
}

#callout.color {
	background: #2D2D65;
}

#callout .content {
	color: #fff;
	margin: 0 auto;
	padding: 37px 0 42px 0;
	width: var(--width);
}

#callout .content p {
	margin-top: 25px;
}

#callout .content p:first-of-type {
	font-weight: 700;
	font-size: 36px;
	line-height: 110%;
	margin: 0;
}

#callout a {
	color: #fff;
	font-weight: 700;
}

#callout a:hover, #callout a:focus {
	color: #7FC242;
}

/* ------ Utility ------ */

b, strong {
	font-weight: 700;
}

i, em {
	font-style: italic;
}

.button {
	background: #893469;
	border-radius: 9px;
	color: #fff;
	column-gap: 5px;
	display: inline-flex;
	font-size: 17px;
	font-weight: 500;
	line-height: 140%;
	margin-top: 30px;
	padding: 10px 26px;
	text-decoration: none;
}

.button:focus, .button:hover {
	background: #000;
}

.button svg {
	align-self: center;
	fill: #ffffff;
	pointer-events: none;
	width: 16px;
}

.button:hover svg, button:focus svg {
	fill: #2D2D65;
}

ul + .button {
	margin-left: 35px;
}

@media only screen and (max-width: 1440px) {
	header .content {
		width: var(--width-mid);
	}
	#breadcrumb {
		padding-left: 3%;
		padding-right: 3%;
	}
	#banner h1, #banner:has(#trio) h1 {
		padding: 0 3%;
	}
	#banner #flourish {
		width: 30%;
	}
	#banner #flourish #trio {
		width: 100%;
	}
	.split .text.full {
		flex: 0 1 90%; 
	}
	.split > .content {
		padding-left: 3%;
		padding-right: 3%;
	}
	.split aside .deco img:last-of-type {
		width: 30%;
	}
	.routes h2, .tiles h2, #board h2 {
		width: 94%;
	}
	.tiles > .content, .routes .content, #board .content {
		gap: 58px 2%;
		width: var(--width-mid);
	}
	.tile, .route {
		flex: 1 1 calc(23.5% - 2%);
		max-width: 23.5%;
	}
	.route-tools {
		flex-direction: column;
		column-gap: 0;
		row-gap: 10px;
	}
	.highlight ul, .highlight p {
		width: 80%;
	}
	.stat .chevron {
		max-width: 50%;
	}
	.funding .content > .text {
		margin: 5% 0 5% 3%;
		max-width: 65%;
	}
	.funding.road .deco, .funding.rail .deco, .funding.bus .deco {
		background-size: cover;
		background-position: top left;
	}
	footer .content {
		width: var(--width-mid);
	}
	#splash .content {
		margin-left: 3%;
		padding: 3%;
	}
	#regional {
		background: none;
		padding-top: 50px;
		padding-bottom: 50px;
	}
	#regional ul {
		width: 90%;
	}
	#regional .text {
		padding-top: 0;
	}
	#facts .content {
		width: 90%;
	}
	#chart-pay {
		gap: 5%;
		justify-content: flex-end;
	}
	#chart-pay .graph {
		width: 55%;
	}
	#chart-pay .content {
		width: auto;
	}
	#funding #chart {
		width: 80%;
	}
	#funding #chart h2 {
		width: 100%;
	}
	#callout, #callout.short {
		width: 100%;
	}
	#callout .content {
		width: var(--width-mid);
	}
	.board {
		flex: 1 1 calc(50% - 22px);
	}
}

@media only screen and (max-width: 1275px) {
	.tiles > .content, .routes > .content, #board > .content {
		gap: 58px 2%;
	}
	.tile, .route {
		flex: 1 1 calc(33.333% - 2%);
		max-width: 33.333%;
	}
	#splash {
		align-items: flex-start;
		flex-direction: column;
	}
	#splash .content {
		border-radius: 0px;
		margin: 0;
		position: relative;
		width: auto;
	}
	#regional {
		background: none;
	}
}

@media only screen and (max-width: 959px) {
	header {
		padding: 18px 0;
		overflow: visible;
		position: relative;
		z-index: 9999;
	}
	header.active {
		padding-bottom: 0;
	}
	header .content {
		flex-wrap: wrap;
		justify-content: space-between;
		width: 100%;
	}
	header .logo {
		margin-left: 3%;
	}
	header #mobile {
		display: block;
		height: 52px;
		margin-right: 3%;
		width: 52px;
	}
	header #mobile {
	  position: relative;
	  width: 52px;
	  height: 52px;
	  background: transparent;
	  border: none;
	  padding: 0;
	  cursor: pointer;
	  display: flex;
	  align-items: center;
	  justify-content: center;
	}
	header #mobile span {
	  position: absolute;
	  display: block;
	  width: 100%;
	  height: 3px;
	  background: #fff;
	  left: 0;
	  transition: transform 0.25s ease, opacity 0.25s ease;
	}
	header #mobile span:nth-child(1) {
	  top: 10px;
	}
	header #mobile span:nth-child(2) {
	  top: 50%;
	  transform: translateY(-50%);
	}
	header #mobile span:nth-child(3) {
	  bottom: 10px;
	}
	header.active #mobile span:nth-child(1) {
	  top: 50%;
	  transform: translateY(-50%) rotate(45deg);
	}
	header.active #mobile span:nth-child(2) {
	  opacity: 0;
	}
	header.active #mobile span:nth-child(3) {
	  bottom: auto;
	  top: 50%;
	  transform: translateY(-50%) rotate(-45deg);
	}
	header nav {
		display: none;
	}
	header.active nav {
		display: block;
		background: #2D2D65;
		flex-basis: 100%;
		height: auto;
		margin-top: 18px;
		width: 100%;
		overflow: hidden;
	}
	header nav > ul {
		gap: 0;
		flex-direction: column;
		border-top: 8px solid #fff;
		border-bottom: 1px solid #fff;
		text-align: center;
		width: 100%;
	}
	#page-home header nav ul {
		border-top: none;
	}
	header nav li {
		border-top: 1px solid #fff;
		width: 100%;
	}
	header nav a {
		color: #fff;
		display: block;
		font-size: 15px;
		font-weight: 500;
		padding: 25px;
		text-decoration: none;
	}
	header nav li.subnav > a::after {
		display: none;
	}
	header nav li.subnav:has(.active) > a::after, header nav li.subnav > a:hover::after, header nav li.subnav > a:focus::after {
		display: none;
	}
	header nav ul li.subnav > ul {
		border-radius: 0px;
		box-shadow: none;
		display: block;
		visibility: visible;
		opacity: 1;
		position: relative;
		top: auto;
		transform: none;
		transition: none;
		left: auto;
		width: 100%;
	}
	header nav ul li.subnav ul li a {
		background: #F3F3F7;
		color: #000;
	}
	#banner {
		display: block;
		height: auto;
		padding: 45px 0 50px 0;
	}
    #banner h1, #banner:has(#trio) h1 {
		padding: 0 3%;
		max-width: 94%;
	}
	#banner #flourish {
		display: none;
	}
	#breadcrumb p {
		align-items: center;
		justify-content: flex-start;
	}
	.split > .content, .split .content.flip {
		gap: 45px;
		flex-direction: column;
	}
	.split .text, .split aside {
		flex: auto;
		width: 100%;
	}
	.split .text.full {
		flex: 100%; 
	}
	.split aside .map-tools {
		flex-direction: column;
		gap: 15px;
		justify-content: center;
		width: 100%;
	}
	.tiles > .content, .routes .content, #board > .content {
		gap: 58px 5%;
		width: var(--width-mid);
	}
	.tile, .route {
		flex: 1 1 calc(50% - 5%);
		max-width: 50%;
	}
	.stat .content {
		align-items: stretch;
		flex-direction: column;
	}
	.stat .chevron {
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - 110px), 50% 100%, 0 calc(100% - 110px));
		max-width: 100%;
	}
	.stat .text {
		padding: 30px 0;
	}
	.stat .chevron h2 {
		padding: 50px 50px 145px 50px;
	}
	.stat .text {
		padding: 30px 3%;
	}
	.highlight ul {
		align-content: stretch;
		column-gap: 15px;
		flex-direction: column;
	}
	.highlight li, .highlight li:nth-child(7) {
		flex: 0 0 50%;
		max-width: 100%;
	}
	.highlight h3 {
		padding: 25px 15%;
	}
	.funding .content {
		display: block;
		position: relative;
	}
	.funding .text {
		z-index: 100;
	}
	.funding .deco {
		display: none;
	}
	.funding .content > .text {
		margin: 0;
		max-width: 94%;
		padding: 35px 3%;
	}
	.funding .graphic {
		align-items: center;
		flex-direction: column;
		justify-content: center;
		padding: 5% 3%;
		text-align: center;
		width: 94%;
	}
	.funding .graphic svg {
		width: 25%;
	}
	footer .content {
		align-items: stretch;
		flex-direction: column;
		justify-content: center;
		text-align: center;
		width: 94%;
	}
	footer .content > .col {
		flex: none;
		width: 100%;
	}
	footer .content .col:first-of-type {
		margin-top: 35px;
	}
	footer .content .col:last-of-type {
		margin-top: 35px;
	}
	footer .social {
		gap: 7%;
		justify-content: center;
	}
	#splash .content {
		padding: 10% 3%;
		text-align: center;
	}
	#regional {
		padding: 68px 0;
	}
	#funding {
		background-position: center top;
		background-size: cover;
		padding: 50px 0;
		height: auto;
	}
	#funding #chart {
		width: 70%;
	}
	#funding #chart .content {
		width: 100%;
	}
	#funding #chart .columns {
		gap: 3%;
	}
	.board {
		flex: 100%;
		max-width: 90%;
	}
	.board .icon {
		gap: 14px 2%;
		padding: 5% 10%;
	}
	.board .icon img {
		width: 15%;
	}
	.board .icon.duo img {
		width: 20%;
	}
	.board .icon.single img {
		width: 33%;
	}
	.board .text {
		padding: 5%;
	}
}

@media only screen and (max-width: 450px) {
	
	* {
		word-wrap: break-word;
	}
	#banner h1 {
		font-size: 41px;
	}
	.tile, .route {
		flex: 1 1 100%;
		max-width: 100%;
	}
	.highlight h3 {
		clip-path: none;
		font-size: 32px;
	}
	.funding .graphic h3 span {
		font-size: 65px;
	}
	.funding .graphic svg {
		width: 33%;
	}
	footer .content {
		width: 80%;
	}
	#funding #chart .columns {
		flex-direction: column;
		gap: 30px;
	}
	#chart-pay {
		flex-direction: column;
		gap: 30px;
	}
	#chart-pay .graph, #chart-pay .content, #chart-pay p {
		width: 100%;
	}
}

@media only screen and (max-width: 299px) {
	
	header .content {
		flex-direction: column;
		gap: 15px;
	}
	header .logo {
		margin: 0;
		display: flex;
		width: 75%;
	}
	header .logo img {
		align-self: middle;
	}
	header #mobile {
		margin: 0;
	}
	#banner h1 {
		font-size: 1.5rem;
		text-align: center;
	}
	#breadcrumb p {
		flex-direction: column;
		justify-content: center;
		text-align: center;
	}
	#breadcrumb img {
		display: none;
	}
	#breadcrumb a {
		margin-bottom: 10px;
	}
	#breadcrumb a:last-child {
		margin: 0;
	}
	.split .text h2 {
		font-size: 1.5rem;
	}
	.tiles h2, .routes h2, #board h2 {
		font-size: 1.5rem;
	}
	.stat .chevron h2 {
		font-size: 1rem;
		padding: 30px 3% 150px 3%;
		width: 94%;
	}
	.stat .chevron h2 span {
		font-size: 2rem;
	}
	.highlight h3 {
		font-size: 1.25rem;
	}
	.funding h2 {
		font-size: 1.5rem;
	}
	.funding .graphic h3 {
		font-size: 1rem;
	}
	.funding .graphic h3 span {
		font-size: 1.75rem;
	}
	#splash h1, #facts h3, #funding #chart h2 {
		font-size: 1.5rem;
		line-height: 125%;
	}
	#callout .content p:first-of-type {
		font-size: 22px;
	}
	.board .icon {
		padding: 0 10%;
	}
	.board .text p:first-of-type {
		font-size: 18px;
		padding-top: 0;
	}
}