﻿/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%
}

body {
	margin: 0
}

main {
	display: block
}

h1 {
	font-size: 2em;
	margin: .67em 0
}

a {
	background-color: transparent
}

strong {
	font-weight: bolder
}

img {
	border-style: none
}

button,
input {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
	overflow: visible
}

button {
	text-transform: none
}

[type=button],
[type=reset],
[type=submit],
button {
	-webkit-appearance: button
}

[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
	border-style: none;
	padding: 0
}

[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
	outline: 1px dotted ButtonText
}

legend {
	color: inherit;
	display: table;
	max-width: 100%;
	white-space: normal
}

[type=checkbox],
[type=radio],
legend {
	box-sizing: border-box;
	padding: 0
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
	height: auto
}

[type=search] {
	-webkit-appearance: textfield;
	outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
	-webkit-appearance: none
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit
}

[hidden] {
	display: none
}

html {
	box-sizing: border-box;
	font-family: sans-serif
}

*,
:after,
:before {
	box-sizing: inherit
}

blockquote,
figure,
h1,
h2,
h3,
p {
	margin: 0
}

button {
	background: transparent;
	padding: 0
}

button:focus {
	outline: 1px dotted;
	outline: 5px auto -webkit-focus-ring-color
}

ul {
	list-style: none;
	margin: 0;
	padding: 0
}

html {
	font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
	line-height: 1.5
}

*,
:after,
:before {
	border: 0 solid #c8c8c8
}

img {
	border-style: solid
}

input::-webkit-input-placeholder {
	color: #a0aec0
}

input::-moz-placeholder {
	color: #a0aec0
}

input:-ms-input-placeholder {
	color: #a0aec0
}

input::-ms-input-placeholder {
	color: #a0aec0
}

input::placeholder {
	color: #a0aec0
}

[role=button],
button {
	cursor: pointer
}

table {
	border-collapse: collapse
}

h1,
h2,
h3 {
	font-size: inherit;
	font-weight: inherit
}

a {
	color: inherit;
	text-decoration: inherit
}

button,
input {
	padding: 0;
	line-height: inherit;
	color: inherit
}

canvas,
iframe,
img,
svg,
video, video2 {
	display: block;
	vertical-align: middle
}

img,
video, video2 {
	max-width: 100%;
	height: auto
}

body {
	margin: 0!important;
	color: #191919
}



@font-face {
	font-family: Avenir;
	src: url(Fonts/3a42a252-67ff-4186-88cf-762f56719ca1.woff) format("woff");
	font-weight: 400
}

@font-face {
	font-family: Avenir;
	src: url(Fonts/0417e965-6ae1-4395-8f71-f61ea767d523.woff) format("woff");
	font-weight: 500
}

@font-face {
	font-family: Avenir;
	src: url(Fonts/e40e6ac5-f2bd-4d65-baf7-b1e397d7fdcc.woff) format("woff");
	font-weight: 600
}

@font-face {
	font-family: Avenir;
	src: url(Fonts/51a56502-44d2-4d70-808f-fc822da45209.woff) format("woff");
	font-weight: 700
}

.embed-container {
	position: relative; 
	padding-bottom: 80%; 
	height: 0; 
	max-width: 100%;
}  
.embed-container iframe, .embed-container object, .embed-container iframe {
	position: absolute; 
	top: 0; 
	left: 0; 
	width: 100%; 
	height: 100%;
} 

small {
	position: absolute; 
	z-index: 40; 
	bottom: 0; 
	margin-bottom: -15px;
}


.metrolinx-logo {
	grid-area: logo
}

.hamburger-btn {
	grid-area: menu-toggle
}

.language-toggle {
	grid-area: language-toggle
}

.main-nav {
	grid-area: nav-items;
	max-height: 0;
	-webkit-transition: all .5s;
	transition: all .5s
}

.header-inner {
	display: grid;
	grid-template-areas: "logo language-toggle menu-toggle" "nav-items nav-items nav-items";
	grid-template-columns: auto 1fr auto;
	grid-template-rows: minmax(74px, -webkit-max-content) auto;
	grid-template-rows: minmax(74px, max-content) auto;
	-webkit-box-align: center;
	align-items: center
}

@media (min-width:992px) {
	.main-nav {
		max-height: none
	}
	.header-inner {
		grid-template-areas: "logo nav-items nav-items";
		grid-template-columns: 30% auto 1fr
	}
}

.project-headline,
.project-title {
	grid-area: headline
}

.project-hero {
	grid-area: hero
}

.project-sidebar {
	grid-area: sidebar
}

.project-main {
	grid-area: main
}

@media (min-width:768px) {
	.project-grid {
		display: grid;
		grid-template-areas: "headline headline" "main main";
		grid-template-columns: 36% 1fr;
		-webkit-column-gap: 2rem;
		-moz-column-gap: 2rem;
		column-gap: 2rem;
		position: relative
	}
	.project-title {
		position: absolute;
		bottom: 0;
		grid-column-end: 2;
		min-width: calc(100% - 2rem)
	}
	.project-headline {
		grid-column-start: 2
	}
}

@media (min-width:992px) {
	.project-grid {
		grid-template-areas: ". headline headline ." ". sidebar main .";
		grid-template-columns: auto minmax(280px, 340px) minmax(562px, 730px) auto;
		-webkit-column-gap: 3rem;
		-moz-column-gap: 3rem;
		column-gap: 3rem
	}
	.project-title {
		grid-column-end: 3;
		width: 100%
	}
	.project-headline {
		grid-column-start: 3
	}
}

.region-grid {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc(40% - .5rem);
	gap: .5rem
}

@media (min-width:640px) {
	.region-grid {
		grid-auto-columns: calc(23% - .5rem)
	}
}

@media (min-width:992px) {
	.region-grid {
		grid-auto-columns: calc(19% - .5rem)
	}
}

@media (min-width:1200px) {
	.region-grid {
		grid-auto-columns: calc(15.5% - .5rem)
	}
}

.scroller {
	position: relative
}

@media (min-width:768px) {
	.scroller:hover .scroller__controls {
		visibility: visible;
		opacity: 1
	}
}

.scroller__control {
	-webkit-transition: all .25s;
	transition: all .25s;
	visibility: visible;
	opacity: 1;
	z-index: 2
}

.scroller__control:not(.active),
.scroller__controls {
	visibility: hidden;
	opacity: 0
}

.scroller__controls {
	-webkit-transition: all .25s;
	transition: all .25s
}

.scroller__tiles {
	-ms-scroll-snap-type: x mandatory;
	scroll-snap-type: x mandatory
}

.scroller__tiles li {
	scroll-snap-align: start
}

.scroller__tile {
	background-size: contain;
	background-position: top;
	background-repeat: no-repeat;
	background-color: #f2f2f2
}

.scroller__link {
	height: 100%;
	text-align: center;
	display: -webkit-box;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	flex-direction: column;
	-webkit-box-pack: center;
	justify-content: center;
	line-height: 1.25;
	padding-top: .5rem;
	padding-bottom: 1rem;
	font-size: 1.3rem;
	font-weight: 600;
	position: relative;
	z-index: 1;
	padding-top: 105%
}

.scroller__link:after {
	content: "";
	z-index: -1;
	padding-bottom: 100%;
	opacity: 0;
	-webkit-transition: opacity .15s ease-in-out;
	transition: opacity .15s ease-in-out;
	background-color: #fff;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 0
}

.scroller__link:focus,
.scroller__link:hover {
	text-decoration: underline
}

.scroller__link:focus:after,
.scroller__link:hover:after {
	opacity: .25
}

@media (min-width:768px) {
	.vision-hub {
		display: grid;
		grid-template-areas: "map-cta map map" "video video video" "twitter twitter carousel" "video2 video2 video2" "links links links";
		grid-template-columns: repeat(3, minmax(33.33%, 1fr))
	}
	.vision-hub--twitter {
		grid-area: twitter
	}
	.vision-hub--carousel {
		grid-area: carousel
	}
	.vision-hub--map-cta {
		grid-area: map-cta
	}
	.vision-hub--map {
		grid-area: map
	}
	.vision-hub--video {
		grid-area: video
	}
	.vision-hub--video2 {
		grid-area: video2
	}

	.vision-hub--links {
		grid-area: links
	}
}

.button--cta {
	border-color: currentColor;
	border-width: 3px;
	font-size: 1rem;
	line-height: 1;
	font-weight: 700;
	text-transform: uppercase;
	padding: 1rem .75rem;
	text-align: center
}

@media (min-width:768px) {
	.button--cta {
		font-size: 1.125rem
	}
}

.button--cta:focus,
.button--cta:hover {
	background-color: #191919;
	color: #fff;
	border-color: #191919
}

a:focus,
button:focus {
	outline: 2px solid #0095eb
}

.hero-quote a:focus {
	outline-offset: -1px
}

.button--cta:focus {
	outline-offset: 2px
}

.region-grid a:focus {
	outline-offset: -2px
}

.text-white .button--cta:focus,
.text-white .button--cta:hover {
	background-color: #fff;
	color: #191919;
	border-color: #fff
}

.skip-link {
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px
}

.skip-link:focus {
	clip: auto;
	height: auto;
	overflow: auto;
	position: absolute;
	width: auto
}

.skip-link--main:focus {
	background-color: #8bb8e8;
	color: #191919;
	margin-left: auto;
	margin-right: auto;
	padding: .5rem 1rem;
	text-decoration: underline;
	position: static;
	text-align: center;
	display: block
}

.carousel {
	position: relative
}

.carousel__slides {
	display: grid;
	grid-auto-flow: column;
	overflow: hidden;
	grid-auto-columns: 100%;
	-ms-scroll-snap-type: x mandatory;
	scroll-snap-type: x mandatory
}

.carousel__slide {
	display: -webkit-box;
	display: flex;
	scroll-snap-align: start
}

.carousel__slide.locked {
	grid-column: 1
}

.carousel__controls {
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: center;
	justify-content: center;
	margin-bottom: 1rem;
	position: absolute;
	bottom: 0
}

.carousel__control-button {
	width: 2.5rem;
	height: 2.5rem;
	padding: .75rem
}

.carousel__control-button:before {
	content: "";
	border-radius: 9999px;
	display: block;
	width: 100%;
	height: 100%;
	border-color: #191919;
	border-width: 2px;
	cursor: pointer
}

.carousel__control-button.active:before {
	background-color: #191919
}

.carousel--hero .carousel__slide {
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	flex-direction: column;
	-webkit-box-pack: center;
	justify-content: center;
	position: relative
}

.carousel--hero .carousel__controls {
	padding-left: 3rem
}

.carousel--hero .carousel__control:first-child {
	margin-left: -13px
}

@media (min-width:768px) {
	.carousel--hero .carousel__slide {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		flex-direction: row
	}
	.carousel--hero .carousel__controls {
		-webkit-box-pack: start;
		justify-content: flex-start;
		width: 50%;
		padding-left: 3rem;
		right: 0
	}
}

.carousel--gallery .carousel__slide {
	position: relative
}

.carousel--gallery .carousel__controls {
	left: 0;
	right: 0
}

.carousel--gallery .carousel__control-button:before {
	border-color: #fff
}

.carousel--gallery .carousel__control-button.active:before {
	background-color: #fff
}

.gallery__image {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	padding-bottom: 6rem
}

.gallery__copy {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 3rem 2.5rem 4rem;
	background-color: #1a202c;
	text-align: center;
	font-size: 1.125rem;
	background: -webkit-gradient(linear, left bottom, left top, color-stop(80%, #1a202c), to(rgba(26, 32, 44, 0)));
	background: linear-gradient(0deg, #1a202c 80%, rgba(26, 32, 44, 0))
}

.gallery__text {
	line-height: 1.25;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden
}

.gallery__cta {
	text-transform: uppercase;
	display: inline-block;
	margin-top: 1rem;
	text-decoration: underline
}

.hamburger-btn--icon {
	position: relative;
	top: 0;
	width: 22px;
	margin: 8px 10px;
	height: 16px
}

.hamburger-btn--inner {
	position: absolute;
	top: 0;
	height: 2px;
	width: 100%;
	background: #fff;
	border-radius: 4px
}

.hamburger-btn--inner:after,
.hamburger-btn--inner:before {
	position: absolute;
	display: block;
	top: 6px;
	content: "";
	background: #fff;
	width: 100%;
	height: 2px;
	border-radius: 4px
}

.hamburger-btn--inner:after {
	top: 12px
}

.hero-quote {
	position: relative;
	font-weight: 600;
	line-height: 1.25;
	font-size: 1.5rem;
	max-width: 42rem;
	padding-left: 3rem;
	padding-right: 3rem
}

.hero-quote:after,
.hero-quote:before {
	font-family: Arial Rounded, sans-serif;
	font-weight: 700;
	width: 20px;
	height: 20px;
	position: absolute
}

.hero-quote:before {
	/*
	content: url(/images/quote-mark.svg);
	*/
	margin-left: -1.75rem
}

.hero-quote:after {
	/*
	content: url(/images/quote-mark.svg);
	*/
	margin-left: .25rem;
	margin-top: .25rem;
	-webkit-transform: scale(-1);
	transform: scale(-1)
}

@media (min-width:768px) {
	.hero-quote {
		padding-left: 4rem;
		padding-right: .75rem;
		width: 50%;
		margin-right: 0;
		padding-top: 3rem;
		font-size: 2rem
	}
	.hero-quote:after,
	.hero-quote:before {
		width: 30px;
		height: 30px
	}
	.hero-quote:before {
		margin-left: -2.25rem
	}
	.hero-quote:after {
		margin-left: .25rem
	}
}

@media (min-width:992px) {
	.hero-quote {
		padding-left: 5rem
	}
}

@media (min-width:1200px) {
	.hero-quote {
		font-size: 2.5rem
	}
}

.hero-image img {
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	height: 30vh
}

@media (min-width:768px) {
	.hero-image {
		width: 50%;
		min-height: 100%;
		position: relative
	}
	.hero-image img {
		height: 100%;
		position: absolute;
		top: 0;
		left: 0
	}
}

@media (min-width:1200px) {
	.hero-image {
		position: absolute;
		left: 0;
		height: 100%
	}
	.hero-image+.hero-response {
		margin-left: 37rem
	}
}

.hero-response {
	max-width: 42rem;
	padding: 2rem 3rem 5rem
}

.hero-response__title {
	text-transform: uppercase;
	font-weight: 600
}

.hero-response__copy {
	font-size: .875rem;
	margin-top: .75rem
}

.hero-response__cta-links {
	margin-top: 1.25rem;
	font-size: .875rem;
	display: -webkit-box;
	display: flex;
	flex-wrap: wrap
}

.hero-response__social-icon {
	display: inline-block;
	width: .75rem;
	height: .75rem;
	margin-right: .25rem
}

@media (min-width:768px) {
	.hero-response {
		width: 50%;
		padding-top: 3rem;
		padding-right: 2rem
	}
	.hero-response__title {
		font-size: 1.25rem
	}
	.hero-response__copy {
		font-size: 1.125rem;
		margin-top: 1.25rem
	}
	.hero-response__cta-links {
		font-size: 1.125rem
	}
	.hero-response__social-icon {
		width: 1rem;
		height: 1rem;
		margin-right: .5rem
	}
}

@media (min-width:992px) {
	.hero-response {
		padding-right: 4rem
	}
}

@media (min-width:1200px) {
	.hero-quote,
	.hero-response {
		max-width: 37rem
	}
}

.project-sidebar__callout {
	line-height: 1.25;
	padding: 2rem 1.5rem;
	font-weight: 700;
	font-size: 1.875rem
}

@media (min-width:992px) {
	.project-sidebar__callout {
		margin-top: 2rem
	}
}

.project-sidebar-secondary--sm {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem
}

@media (min-width:768px) {
	.project-sidebar-secondary--sm {
		grid-template-columns: repeat(auto-fit, minmax(350px, 1fr))
	}
}

.project-title {
	line-height: 1.25;
	padding: 2rem .75rem;
	font-weight: 700;
	font-size: 2.25rem
}

@media (min-width:768px) {
	.project-title {
		margin-left: 2rem;
		margin-top: -5rem;
		padding-left: 1.5rem;
		padding-right: 1.5rem
	}
}

@media (min-width:992px) {
	.project-title {
		margin-left: 0
	}
}

.scroller__tiles {
	overflow-y: scroll;
	scrollbar-width: none;
	-ms-overflow-style: none
}

.scroller__tiles::-webkit-scrollbar {
	width: 0;
	height: 0
}

.we-hear-your-tweets blockquote {
	max-width: 28rem
}

.we-hear-your-tweets blockquote>a {
	display: none
}

.we-hear-your-tweets p {
	font-size: 1.5rem;
	margin-bottom: 1.25rem
}

@media (min-width:768px) {
	.we-hear-your-tweets p {
		font-size: 1.25rem
	}
}

@media (min-width:992px) {
	.we-hear-your-tweets p {
		font-size: 1.5rem
	}
}

@media (min-width:1200px) {
	.we-hear-your-tweets p {
		font-size: 1.875rem
	}
}

img.Emoji--forText {
	height: 1.1rem;
	width: auto;
	display: inline-block;
	vertical-align: baseline;
	margin-left: 8px;
	margin-right: 8px
}

@media (min-width:768px) {
	img.Emoji--forText {
		height: 1rem
	}
}

@media (min-width:992px) {
	img.Emoji--forText {
		height: 1.1rem
	}
}

@media (min-width:1200px) {
	img.Emoji--forText {
		height: 1.3rem
	}
}

.u-hiddenVisually {
	display: none
}

@media (min-width:992px) {
	.EmbeddedTweet {
		font-size: 1.25rem
	}
}

@media (min-width:1200px) {
	.EmbeddedTweet {
		font-size: 1.5rem
	}
}

.tweet-response {
	min-width: 140px
}

.Avatar {
	border-radius: 9999px;
	width: 3rem;
	height: 3rem;
	margin-right: .5rem
}

@media (min-width:992px) {
	.Avatar {
		width: 4rem;
		height: 4rem
	}
}

.Tweet-header {
	display: -webkit-box;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	-webkit-box-pack: center;
	justify-content: center;
	text-align: left;
	font-size: .75rem;
	margin-top: .75rem
}

@media (min-width:992px) {
	.Tweet-header {
		margin-top: 1.5rem;
		font-size: 1rem
	}
}

.TweetAuthor-nameScreenNameContainer span {
	display: block
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0
}

.bg-black {
	background-color: #191919
}

.bg-white {
	background-color: #fff
}


.bg-gray-300 {
	background-color: #c8c8c8
}

.bg-gray-400 {
	background-color: #cbd5e0
}

.bg-gray-900 {
	background-color: #1a202c
}

.bg-mx-mintgreen {
	background-color: #8fd6bd
}

.bg-mx-red {
	background-color: #ff8674
}

.bg-mx-limegreen {
	background-color: #b7dd79
}

.bg-mx-blue {
	background-color: #8bb8e8
}

.bg-mx-darkblue {
	background-color: #0071ce
}

.bg-mx-yellow {
	background-color: #fbda65
}

.hover\:bg-gray-900:hover {
	background-color: #1a202c
}

.bg-center {
	background-position: 50%
}

.bg-cover {
	background-size: cover
}

.border-gray-400 {
	border-color: #cbd5e0
}

.border-gray-900 {
	border-color: #1a202c
}

.rounded-lg {
	border-radius: .5rem
}

.rounded-full {
	border-radius: 9999px
}

.border-t {
	border-top-width: 1px
}

.border-b {
	border-bottom-width: 1px
}

.block {
	display: block
}

.inline-block {
	display: inline-block
}

.flex {
	display: -webkit-box;
	display: flex
}

.table {
	display: table
}

.hidden {
	display: none
}

.flex-row {
	-webkit-box-orient: horizontal;
	flex-direction: row
}

.flex-col,
.flex-row {
	-webkit-box-direction: normal
}

.flex-col {
	-webkit-box-orient: vertical;
	flex-direction: column
}

.flex-wrap {
	flex-wrap: wrap
}

.items-start {
	-webkit-box-align: start;
	align-items: flex-start
}

.items-center {
	-webkit-box-align: center;
	align-items: center
}

.self-start {
	align-self: flex-start
}

.self-center {
	align-self: center
}

.justify-center {
	-webkit-box-pack: center;
	justify-content: center
}

.justify-between {
	-webkit-box-pack: justify;
	justify-content: space-between
}

.content-center {
	align-content: center
}

.content-between {
	align-content: space-between
}

.font-sans {
	font-family: Avenir, Helvetica, Arial, sans-serif
}

.font-normal {
	font-weight: 400
}

.font-semibold {
	font-weight: 600
}

.font-bold {
	font-weight: 700
}

.h-4 {
	height: 1rem
}

.h-8 {
	height: 2rem
}

.h-10 {
	height: 2.5rem
}

.h-24 {
	height: 6rem
}

.h-full {
	height: 100%
}

.h-lg {
	height: 360px
}

.leading-none {
	line-height: 1
}

.leading-tight {
	line-height: 1.25
}

.leading-normal {
	line-height: 1.5
}

.list-disc {
	list-style-type: disc
}

.mx-3 {
	margin-left: .75rem;
	margin-right: .75rem
}

.mb-0 {
	margin-bottom: 0
}

.mr-1 {
	margin-right: .25rem
}

.mt-2 {
	margin-top: .5rem
}

.mr-2 {
	margin-right: .5rem
}

.ml-2 {
	margin-left: .5rem
}

.mt-3 {
	margin-top: .75rem
}

.mr-3 {
	margin-right: .75rem
}

.mb-3 {
	margin-bottom: .75rem
}

.mt-4 {
	margin-top: 1rem
}

.mr-4 {
	margin-right: 1rem
}

.mb-4 {
	margin-bottom: 1rem
}

.ml-4 {
	margin-left: 1rem
}

.mt-5 {
	margin-top: 1.25rem
}

.mr-5 {
	margin-right: 1.25rem
}

.ml-5 {
	margin-left: 1.25rem
}

.mt-6 {
	margin-top: 1.5rem
}

.mb-6 {
	margin-bottom: 1.5rem
}

.mt-8 {
	margin-top: 2rem
}

.mb-8 {
	margin-bottom: 2rem
}

.mt-10 {
	margin-top: 2.5rem
}

.mt-12 {
	margin-top: 3rem
}

.ml-auto {
	margin-left: auto
}

.-mt-10 {
	margin-top: -2.5rem
}

.max-w-md {
	max-width: 28rem
}

.object-cover {
	-o-object-fit: cover;
	object-fit: cover
}

.p-3 {
	padding: .75rem
}

.p-4 {
	padding: 1rem
}

.py-1 {
	padding-top: .25rem;
	padding-bottom: .25rem
}

.px-1 {
	padding-left: .25rem;
	padding-right: .25rem
}

.px-2 {
	padding-left: .5rem;
	padding-right: .5rem
}

.py-3 {
	padding-top: .75rem;
	padding-bottom: .75rem
}

.px-3 {
	padding-left: .75rem;
	padding-right: .75rem
}

.px-4 {
	padding-left: 1rem;
	padding-right: 1rem
}

.py-5 {
	padding-top: 1.25rem;
	padding-bottom: 1.25rem
}

.px-5 {
	padding-left: 1.25rem;
	padding-right: 1.25rem
}

.py-6 {
	padding-top: 1.5rem;
	padding-bottom: 1.5rem
}

.py-10 {
	padding-top: 2.5rem;
	padding-bottom: 2.5rem
}

.pt-0 {
	padding-top: 0
}

.pl-1 {
	padding-left: .25rem
}

.pl-3 {
	padding-left: .75rem
}

.pr-4 {
	padding-right: 1rem
}

.pl-6 {
	padding-left: 1.5rem
}

.absolute {
	position: absolute
}

.relative {
	position: relative
}

.inset-0 {
	top: 0;
	right: 0;
	bottom: 0;
	left: 0
}

.right-0 {
	right: 0
}

.text-center {
	text-align: center
}

.text-black {
	color: #191919
}

.text-white {
	color: #fff
}

.text-gray-200 {
	color: #dcdcdc
}

.text-gray-500 {
	color: #757575
}

.hover\:text-mx-red:hover {
	color: #ff8674
}

.text-xs {
	font-size: .75rem
}

.text-sm {
	font-size: .875rem
}

.text-lg {
	font-size: 1.125rem
}

.text-xl {
	font-size: 1.25rem
}

.text-2xl {
	font-size: 1.5rem
}

.text-3xl {
	font-size: 1.875rem
}

.uppercase {
	text-transform: uppercase
}

.normal-case {
	text-transform: none
}

.underline {
	text-decoration: underline
}

.tracking-tighter {
	letter-spacing: -.05em
}

.w-4 {
	width: 1rem
}

.w-8 {
	width: 2rem
}

.w-10 {
	width: 2.5rem
}

.w-24 {
	width: 6rem
}

.w-48 {
	width: 12rem
}

.w-full {
	width: 100%
}

.z-10 {
	z-index: 10
}

.aspect-16x9 {
	padding-bottom: 56.25%
}

.rotate-180 {
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg)
}

.arrow-up {
	position: relative
}

.arrow-up:before {
	position: absolute;
	content: "";
	width: 0;
	height: 0
}

.arrow-up:before {
	top: 0;
	left: 50%;
	margin-left: -15px;
	margin-top: -15px;
	border: 15px solid transparent;
	border-top: none;
	border-bottom: 15px solid
}

@media (min-width:992px) {
	.arrow-up:before {
		margin-left: -30px;
		margin-top: -30px;
		border-left-width: 30px;
		border-right-width: 30px;
		border-bottom-width: 30px
	}
}

@media screen and (-ms-high-contrast:active),
screen and (-ms-high-contrast:none) {
	body {
		min-width: 992px
	}
	.metrolinx-logo {
		width: 16rem;
		padding-left: 0;
		margin-left: 2rem
	}
	.main-nav {
		display: block!important;
		-webkit-box-flex: 1;
		flex-grow: 1;
		max-height: none!important;
		padding-left: 1.25rem;
		padding-right: 2rem
	}
	.main-nav ul.flex-col {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		flex-direction: row
	}
	.main-nav ul a.hidden {
		display: block!important
	}
	.header-inner {
		display: -webkit-box;
		display: flex;
		min-height: 74px;
		height: 70px
	}
	.hamburger-btn,
	.language-toggle {
		display: none!important
	}
	.carousel--hero .carousel__slides {
		display: -webkit-box;
		display: flex
	}
	.carousel--hero .carousel__slide {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		flex-direction: row;
		flex-shrink: 0;
		width: 100%;
		-webkit-box-ordinal-group: 2;
		order: 1
	}
	.carousel--hero .carousel__slide.locked {
		-webkit-box-ordinal-group: 1;
		order: 0
	}
	.carousel--hero .carousel__controls {
		-webkit-box-pack: start;
		justify-content: flex-start;
		width: 50%;
		padding-left: 3rem;
		right: 0
	}
	.hero-image__wrapper {
		width: 50%;
		height: 100%;
		position: absolute;
		left: 0
	}
	.hero-image__wrapper+.hero-response {
		margin-left: 50%
	}
	.hero-quote {
		padding-left: 4rem;
		padding-right: .75rem;
		width: 50%;
		margin-right: 0;
		padding-top: 3rem;
		font-size: 2.5rem
	}
	.hero-quote:after,
	.hero-quote:before {
		width: 30px;
		height: 30px
	}
	.hero-quote:before {
		margin-left: -2.25rem
	}
	.hero-quote:after {
		margin-left: .25rem
	}
	.hero-response {
		width: 50%;
		padding-top: 3rem;
		padding-right: 2rem
	}
	.hero-response__title {
		font-size: 1.25rem
	}
	.hero-response__copy {
		font-size: 1.125rem;
		margin-top: 1.25rem
	}
	.hero-response__cta-links {
		font-size: 1.125rem
	}
	.hero-response__social-icon {
		width: 1rem;
		height: 1rem;
		margin-right: .5rem
	}
	.region-grid {
		display: -webkit-box;
		display: flex
	}
	.region-grid li {
		width: calc(19% - .5rem);
		flex-shrink: 0;
		margin: 0 .25rem
	}
	.region-grid li img {
		min-height: 1px
	}
	main.relative h1 {
		margin-top: 2.5rem;
		font-size: 2.25rem
	}
	main.relative h1+p {
		margin-left: 2rem;
		margin-right: 2rem;
		font-size: 1.125rem
	}
	.vision-hub {
		display: -webkit-box;
		display: flex;
		flex-wrap: wrap
	}
	.vision-hub--map-cta {
		width: 34%
	}
	.vision-hub--map {
		width: 66%
	}
	.vision-hub--video {
		width: 100%
	}
	.vision-hub--video2 {
		width: 100%
	}

	.vision-hub--twitter {
		width: 66%
	}
	.vision-hub--carousel {
		width: 34%
	}
	.vision-hub--links {
		width: 100%
	}
	.carousel--gallery .carousel__slides {
		display: -webkit-box;
		display: flex
	}
	.carousel--gallery .carousel__slide {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		flex-direction: row;
		flex-shrink: 0;
		width: 100%;
		-webkit-box-ordinal-group: 2;
		order: 1
	}
	.carousel--gallery .carousel__slide.locked {
		-webkit-box-ordinal-group: 1;
		order: 0
	}
	.vision-hub--map-cta p {
		font-size: 2.25rem
	}
	.we-hear-your-tweets blockquote {
		width: 100%
	}
	.gallery-image__wrapper {
		width: 100%;
		height: calc(100% - 6rem)
	}
	.gallery__copy {
		left: 0
	}
	.project-grid {
		padding-left: 2rem;
		padding-right: 2rem;
		margin-left: 0;
		margin-right: 0
	}
	.project-grid:after {
		content: "";
		display: table;
		clear: both
	}
	.headline-wrapper {
		position: relative;
		width: 100%;
		float: left;
		padding-left: 34%
	}
	.project-title {
		margin-top: -5rem;
		padding-left: 1.5rem;
		padding-right: 1.5rem;
		bottom: 0;
		left: 0;
		width: 34%;
		min-width: auto!important
	}
	.project-headline,
	.project-title {
		float: left;
		margin-left: 0!important
	}
	.project-headline {
		padding-left: 3rem;
		margin-top: 4rem;
		margin-bottom: 0;
		width: auto;
		margin-right: 0!important
	}
	.project-sidebar {
		float: left;
		width: 34%;
		clear: left;
		display: block!important
	}
	.project-sidebar__callout {
		margin-top: 2rem
	}
	.project-main {
		float: left;
		padding-left: 3rem;
		margin-bottom: 3rem;
		width: 66%;
		margin-top: 2rem!important;
		margin-left: 0!important;
		margin-right: 0!important
	}
	.quick-stats {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		flex-direction: row
	}
	.footer,
	.social-footer {
		clear: left
	}
	.footer,
	.social-footer {
		margin-left: 3rem;
		margin-right: 3rem;
		margin-top: 3rem
	}
	.footer ul {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		flex-direction: row
	}
	.footer li:not(:first-child) {
		margin-left: .5rem
	}
	.footer span {
		display: inline
	}
	.footer br {
		display: none
	}
	.footer p {
		font-size: .75rem
	}
}

@media (min-width:992px) {
	.main-nav {
		padding-right: 0
	}
}

@media (-ms-high-contrast:none) and (max-width:991px),
all and (-ms-high-contrast:active) and (max-width:991px) {
	.quick-stats>div {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		flex-direction: column;
		text-align: center
	}
	.region-grid h3 {
		font-size: 1.5rem
	}
	.vision-hub--map-cta {
		padding-left: 3rem;
		padding-right: 3rem
	}
	.vision-hub--map-cta p {
		font-size: 2.25rem
	}
	.vision-hub--video {
		margin-top: 4rem
	}
	.vision-hub--video2 {
		margin-top: 4rem
	}

	.vision-hub--video .md\:flex {
		display: -webkit-box;
		display: flex
	}
	.vision-hub--video .md\:w-1\/3 {
		width: 33.333333%;
		text-align: right;
		padding-left: 1.5rem
	}
	.vision-hub--video .md\:w-2\/3 {
		width: 66.666667%;
		margin-top: 0;
		padding-left: 3rem;
		padding-right: 1.5rem
	}
	.vision-hub--video2 .md\:flex {
		display: -webkit-box;
		display: flex
	}
	.vision-hub--video2 .md\:w-1\/3 {
		width: 33.333333%;
		text-align: right;
		padding-left: 1.5rem
	}
	.vision-hub--video2 .md\:w-2\/3 {
		width: 66.666667%;
		margin-top: 0;
		padding-left: 3rem;
		padding-right: 1.5rem
	}

	.vision-hub--twitter {
		padding: 1.5rem 2.5rem;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		flex-direction: row;
		-webkit-box-pack: end;
		justify-content: flex-end
	}
	.we-hear-your-tweets {
		width: 50%
	}
	.tweet-response {
		width: 50%;
		margin-top: 0
	}
	.tweet-response:before {
		left: 0;
		top: 50%;
		margin-left: -15px;
		margin-top: -15px;
		border: 15px solid transparent;
		border-right-color: currentcolor;
		border-left: none
	}
	.vision-hub--carousel .carousel,
	.vision-hub--carousel .carousel__slides {
		height: 100%
	}
	.vision-hub--links {
		margin-top: 4rem;
		display: -webkit-box;
		display: flex
	}
	.vision-hub--links>div {
		width: 33.333333%;
		padding: 4rem 3rem;
		-webkit-box-pack: start;
		justify-content: flex-start
	}
	.vision-hub--links h3 {
		text-align: left
	}
}

@media (-ms-high-contrast:active) and (min-width:1200px),
all and (-ms-high-contrast:none) and (min-width:1200px) {
	.project-grid {
		padding-left: 0;
		padding-right: 0;
		max-width: 70rem;
		margin-left: auto;
		margin-right: auto
	}
	.headline-wrapper {
		padding-left: 360px
	}
	.project-sidebar,
	.project-title {
		max-width: 360px
	}
}

@media (min-width:1200px) {
	.hero-image__wrapper+.hero-response {
		margin-left: 37rem
	}
}

@media (min-width:768px) {
	.md\:inline {
		display: inline
	}
	.md\:flex {
		display: -webkit-box;
		display: flex
	}
	.md\:hidden {
		display: none
	}
	.md\:flex-row {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		flex-direction: row
	}
	.md\:justify-end {
		-webkit-box-pack: end;
		justify-content: flex-end
	}
	.md\:h-full {
		height: 100%
	}
	.md\:h-lg {
		height: 360px
	}
	.md\:mx-8 {
		margin-left: 2rem;
		margin-right: 2rem
	}
	.md\:mx-auto {
		margin-left: auto;
		margin-right: auto
	}
	.md\:mt-0 {
		margin-top: 0
	}
	.md\:mb-0 {
		margin-bottom: 0
	}
	.md\:ml-0 {
		margin-left: 0
	}
	.md\:ml-2 {
		margin-left: .5rem
	}
	.md\:mb-4 {
		margin-bottom: 1rem
	}
	.md\:mr-5 {
		margin-right: 1.25rem
	}
	.md\:mt-6 {
		margin-top: 1.5rem
	}
	.md\:mr-8 {
		margin-right: 2rem
	}
	.md\:ml-8 {
		margin-left: 2rem
	}
	.md\:mt-10 {
		margin-top: 2.5rem
	}
	.md\:mt-12 {
		margin-top: 3rem
	}
	.md\:mb-12 {
		margin-bottom: 3rem
	}
	.md\:mt-16 {
		margin-top: 4rem
	}
	.md\:max-w-2xl {
		max-width: 42rem
	}
	.md\:object-cover {
		-o-object-fit: cover;
		object-fit: cover
	}
	.md\:px-0 {
		padding-left: 0;
		padding-right: 0
	}
	.md\:py-4 {
		padding-top: 1rem;
		padding-bottom: 1rem
	}
	.md\:py-6 {
		padding-top: 1.5rem;
		padding-bottom: 1.5rem
	}
	.md\:px-10 {
		padding-left: 2.5rem;
		padding-right: 2.5rem
	}
	.md\:pl-0 {
		padding-left: 0
	}
	.md\:pl-5 {
		padding-left: 1.25rem
	}
	.md\:pr-6 {
		padding-right: 1.5rem
	}
	.md\:pl-6 {
		padding-left: 1.5rem
	}
	.md\:pt-10 {
		padding-top: 2.5rem
	}
	.md\:pl-10 {
		padding-left: 2.5rem
	}
	.md\:pl-12 {
		padding-left: 3rem
	}
	.md\:pb-16 {
		padding-bottom: 4rem
	}
	.md\:text-right {
		text-align: right
	}
	.md\:text-sm {
		font-size: .875rem
	}
	.md\:text-lg {
		font-size: 1.125rem
	}
	.md\:text-2xl {
		font-size: 1.5rem
	}
	.md\:text-4xl {
		font-size: 2.25rem
	}
	.md\:w-64 {
		width: 16rem
	}
	.md\:w-1\/2 {
		width: 50%
	}
	.md\:w-1\/3 {
		width: 33.333333%
	}
	.md\:w-2\/3 {
		width: 66.666667%
	}
	.md\:arrow-left {
		position: relative
	}
	.md\:arrow-left:before {
		position: absolute;
		content: "";
		width: 0;
		height: 0
	}
	.md\:arrow-left:before {
		left: 0;
		top: 50%;
		margin-left: -15px;
		margin-top: -15px;
		border: 15px solid transparent;
		border-right-color: currentcolor;
		border-left: none
	}
	@media (min-width:992px) {
		.md\:arrow-left:before {
			margin-left: -30px;
			margin-top: -30px;
			border-top-width: 30px;
			border-bottom-width: 30px;
			border-right-width: 30px
		}
	}
}

@media (min-width:992px) {
	.lg\:hover\:bg-transparent:hover {
		background-color: transparent
	}
	.lg\:border-t-0 {
		border-top-width: 0
	}
	.lg\:block {
		display: block
	}
	.lg\:inline {
		display: inline
	}
	.lg\:flex {
		display: -webkit-box;
		display: flex
	}
	.lg\:hidden {
		display: none
	}
	.lg\:flex-row {
		-webkit-box-orient: horizontal;
		flex-direction: row
	}
	.lg\:flex-col,
	.lg\:flex-row {
		-webkit-box-direction: normal
	}
	.lg\:flex-col {
		-webkit-box-orient: vertical;
		flex-direction: column
	}
	.lg\:justify-start {
		-webkit-box-pack: start;
		justify-content: flex-start
	}
	.lg\:h-20 {
		height: 5rem
	}
	.lg\:mx-0 {
		margin-left: 0;
		margin-right: 0
	}
	.lg\:mx-12 {
		margin-left: 3rem;
		margin-right: 3rem
	}
	.lg\:mr-0 {
		margin-right: 0
	}
	.lg\:ml-0 {
		margin-left: 0
	}
	.lg\:mt-3 {
		margin-top: .75rem
	}
	.lg\:-mt-8 {
		margin-top: -2rem
	}
	.lg\:max-w-lg {
		max-width: 32rem
	}
	.lg\:p-6 {
		padding: 1.5rem
	}
	.lg\:p-12 {
		padding: 3rem
	}
	.lg\:px-12 {
		padding-left: 3rem;
		padding-right: 3rem
	}
	.lg\:py-16 {
		padding-top: 4rem;
		padding-bottom: 4rem
	}
	.lg\:pr-6 {
		padding-right: 1.5rem
	}
	.lg\:pr-12 {
		padding-right: 3rem
	}
	.lg\:pl-12 {
		padding-left: 3rem
	}
	.lg\:text-left {
		text-align: left
	}
	.lg\:text-center {
		text-align: center
	}
	.lg\:text-xs {
		font-size: .75rem
	}
	.lg\:text-sm {
		font-size: .875rem
	}
	.lg\:w-20 {
		width: 5rem
	}
	.lg\:w-1\/3 {
		width: 33.333333%
	}
	.lg\:w-1\/4 {
		width: 25%
	}

}

@media (min-width:1200px) {
	.xl\:flex-row {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		flex-direction: row
	}
	.xl\:mx-auto {
		margin-left: auto;
		margin-right: auto
	}
	.xl\:mt-0 {
		margin-top: 0
	}
	.xl\:mr-3 {
		margin-right: .75rem
	}
	.xl\:max-w-2xl {
		max-width: 42rem
	}
	.xl\:max-w-6xl {
		max-width: 70rem
	}
	.xl\:p-12 {
		padding: 3rem
	}
	.xl\:px-0 {
		padding-left: 0;
		padding-right: 0
	}
	.xl\:py-20 {
		padding-top: 5rem;
		padding-bottom: 5rem
	}
	.xl\:pr-12 {
		padding-right: 3rem
	}
	.xl\:text-left {
		text-align: left
	}
	.xl\:text-xl {
		font-size: 1.25rem
	}
}