*, *:after, *:before {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video, input, select {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  text-decoration: none; }

article, aside, figure, footer, header, hgroup, nav, section {
  display: block; }

html {
  overflow-y: scroll; }

ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none; }

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  text-decoration: none; }

del {
  text-decoration: line-through; }

abbr[title], dfn[title] {
  border-bottom: 1px dotted #000;
  cursor: help; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

th {
  font-weight: bold;
  vertical-align: bottom; }

td {
  font-weight: normal;
  vertical-align: top; }

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

input, select {
  vertical-align: middle; }

select {
  -webkit-appearance: none;
  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC") no-repeat right 4px center;
  background-size: auto 12px;
  padding-right: 14px; }

pre {
  white-space: pre;
  /* CSS2 */
  white-space: pre-wrap;
  /* CSS 2.1 */
  white-space: pre-line;
  /* CSS 3 (and 2.1 as well, actually) */
  word-wrap: break-word;
  /* IE */ }

input[type="radio"] {
  vertical-align: text-bottom; }

input[type="checkbox"] {
  vertical-align: bottom;
  *vertical-align: baseline; }

.ie6 input {
  vertical-align: text-bottom; }

select, input, textarea {
  font: 99% sans-serif;
  outline: 0;
  overflow: auto; }

table {
  font-size: inherit;
  font: 100%; }

a:hover, a:active, a:focus {
  outline: 0; }

small {
  font-size: 85%; }

strong, th {
  font-weight: bold; }

td, td img {
  vertical-align: top; }

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

pre, code, kbd, samp {
  font-family: monospace, sans-serif; }

.clickable, label,
input[type=button],
input[type=submit],
button {
  cursor: pointer;
  outline: 0; }

button, input, select, textarea {
  margin: 0; }

button {
  width: auto;
  overflow: visible;
  border: 0;
  background: transparent; }

.ie7 img {
  -ms-interpolation-mode: bicubic; }

/*
// being difficult
@mixin keyframe($animation) {
    @-webkit-keyframes $animation {
        @content;
    }
    @-moz-keyframes $animation {
        @content;
    }
    @keyframes $animation {
        @content;
    }
}
*/
::selection {
  background-color: #131b75;
  color: #f2efe7;
  text-shadow: none; }

::-moz-selection {
  background-color: #131b75;
  color: #f2efe7;
  text-shadow: none; }

html {
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: none;
  -moz-osx-font-smoothing: grayscale;
  /* fixes FF over-bolding */
  -ms-overflow-style: -ms-autohiding-scrollbar;
  font-size: 62.5%;
  /* 10px reset */
  position: relative;
  width: 100%;
  min-height: 100%;
  overflow-x: hidden;
  background-color: #f2efe7; }

body {
  position: relative;
  background-color: #f2efe7;
  color: #131b75;
  font-family: lato, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.6rem;
  line-height: 1.5;
  width: 100%;
  overflow-x: hidden; }

a {
  color: #131b75; }

h1 {
  font-size: 4rem;
  line-height: 1.2;
  font-weight: 800; }
  @media only screen and (min-width: 769px) {
    h1 {
      font-size: 5rem; } }
h2 {
  font-size: 3rem;
  line-height: 1.2;
  font-weight: 800; }
  @media only screen and (min-width: 769px) {
    h2 {
      font-size: 4rem; } }
h3 {
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700; }
  @media only screen and (min-width: 769px) {
    h3 {
      font-size: 3rem; } }
  @media only screen and (min-width: 769px) {
    h3 {
      font-size: calc(1.2rem + 1.125vw); } }
  @media only screen and (min-width: 1280px) {
    h3 {
      font-size: calc(1rem + 1vw); } }
p + p {
  margin-top: 1.5rem; }

svg,
img {
  display: block;
  max-width: 100%; }

svg {
  fill: #131b75; }

a,
.button,
.grid-image {
  will-change: auto;
  -webkit-transition: all 0.125s ease-in-out;
  -moz-transition: all 0.125s ease-in-out;
  -o-transition: all 0.125s ease-in-out;
  transition: all 0.125s ease-in-out; }

.button {
  letter-spacing: normal;
  display: -moz-inline-stack;
  display: inline-block;
  zoom: 1;
  *display: inline;
  color: #131b75;
  cursor: pointer;
  padding: 0 1.2rem;
  border: 1px solid;
  font-size: 1.2rem;
  line-height: 2.4rem;
  font-weight: 700;
  border-radius: 0;
  text-transform: uppercase;
  white-space: pre; }
  .button:hover, .button:focus {
    color: #f2efe7;
    background-color: #131b75;
    border-color: #131b75; }

header,
section,
footer {
  position: relative;
  width: 100%; }

header svg {
  fill: #131b75;
  height: 6rem;
  margin: 0 auto; }
  @media only screen and (min-width: 1024px) {
    header svg {
      height: 9rem; } }
header h1.hidden {
  position: fixed;
  top: -100vh; }

@media only screen and (min-width: 769px) {
  header {
    font-size: 2.2rem; } }

.wrap {
  display: block;
  width: 100%;
  padding: 3rem; }
  @media only screen and (max-width: 768px) {
    .wrap:first-child:not(.lite) {
      padding-top: 6rem; } }
  @media only screen and (min-width: 769px) {
    .wrap {
      padding: 6rem; } }
  @media only screen and (min-width: 1024px) {
    .wrap {
      padding: 9rem; } }
  .wrap.text-wrap {
    max-width: 64rem;
    margin: 0 auto; }
  .wrap.lite {
    padding-top: 3rem;
    padding-bottom: 3rem; }
    @media only screen and (min-width: 1024px) {
      .wrap.lite {
        padding: 4.5rem; } }
  .wrap.flush-top {
    padding-top: 0; }

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

.grid-item {
  vertical-align: top;
  position: relative; }

.grid-text {
  position: relative;
  padding: 3rem 0;
  text-align: center; }

.grid {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  /* Safari 7.0+ */
  flex-flow: row wrap; }
  .grid .grid-item {
    width: 100%;
    padding: 3rem 3rem 6rem; }
    @media only screen and (min-width: 500px) {
      .grid .grid-item {
        padding: 4.5rem 6rem 6rem; } }
    @media only screen and (min-width: 769px) {
      .grid .grid-item {
        padding: 3rem 4.5rem 6rem; } }
    @media only screen and (min-width: 1280px) {
      .grid .grid-item {
        padding: 4.5rem 4.5rem 6rem; } }
    @media only screen and (min-width: 1440px) {
      .grid .grid-item {
        padding: 4.5rem 6rem 6rem; } }
  .grid a:hover .button,
  .grid a:focus .button {
    color: #f2efe7;
    background-color: #131b75;
    border-color: #131b75; }
  .grid .grid-image {
    position: relative; }
  .grid .button {
    position: absolute;
    bottom: 3rem;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden; }

.sites {
  border-top: 1px solid #131b75; }
  .sites a:focus,
  .sites a:hover {
    background-color: white; }
  .sites .grid-item {
    border: solid #131b75;
    border-width: 0 0 1px; }
    @media only screen and (min-width: 500px) {
      .sites .grid-item.nmn .grid-image {
        padding-bottom: 28.125%; }
      .sites .grid-item:not(.nmn) {
        width: 50%; }
      .sites .grid-item:nth-child(even) {
        border-width: 0 1px 1px 0; } }
    @media only screen and (min-width: 769px) {
      .sites .grid-item.nmn {
        width: 66.666%; }
      .sites .grid-item:not(.nmn) {
        width: 33.333%; }
      .sites .grid-item:not(:first-child):not(:nth-child(3)) {
        border-width: 0 0 1px 1px; } }
    @media only screen and (min-width: 1280px) {
      .sites .grid-item {
        width: 20% !important; }
        .sites .grid-item.nmn .grid-image {
          padding-bottom: 56.25%; }
        .sites .grid-item:not(:first-child) {
          border-width: 0 0 1px 1px; } }
  .sites .grid-image {
    padding: 3rem 4.5rem 0; }
    .sites .grid-image img,
    .sites .grid-image svg {
      width: 100%;
      max-width: 24rem;
      margin: 0 auto; }
    @media only screen and (min-width: 500px) {
      .sites .grid-image {
        width: 100%;
        height: 0;
        padding-bottom: 56.25%;
        position: relative; }
        .sites .grid-image svg,
        .sites .grid-image img {
          position: absolute;
          top: 0;
          left: 0;
          max-width: initial;
          width: 100%;
          height: 100%;
          object-fit: contain; } }
.connections {
  padding-bottom: 6rem; }
  @media only screen and (min-width: 769px) {
    .connections .grid-item {
      padding-top: 0; } }
  @media only screen and (min-width: 769px) {
    .connections .grid-item:nth-child(1):nth-last-child(2), .connections .grid-item:nth-child(2):nth-last-child(1) {
      width: 50%; }
    .connections .grid-item:nth-child(1):nth-last-child(3), .connections .grid-item:nth-child(2):nth-last-child(2), .connections .grid-item:nth-child(3):nth-last-child(1) {
      width: 33.333%; }
    .connections .grid-item:nth-child(1):nth-last-child(4), .connections .grid-item:nth-child(2):nth-last-child(3), .connections .grid-item:nth-child(3):nth-last-child(2), .connections .grid-item:nth-child(4):nth-last-child(1) {
      width: 25%; } }
  .connections .grid-image {
    display: block;
    width: 9rem;
    height: 9rem;
    margin: 0 auto;
    background-color: #f2efe7;
    border-radius: 50%;
    padding: 2rem; }
    .connections .grid-image svg {
      width: 5rem;
      height: 5rem; }
  .connections a:hover .grid-image,
  .connections a:focus .grid-image {
    -webkit-transform: scale(1.05);
    -moz-transform: scale(1.05);
    -ms-transform: scale(1.05);
    -o-transform: scale(1.05);
    transform: scale(1.05);
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden; }

.yellow-bg {
  background-color: #f2de9b; }

.button-wrap {
  margin: 1rem auto -1rem;
  letter-spacing: -0.31em;
  text-rendering: optimizeLegibility; }
  .button-wrap .button {
    letter-spacing: normal;
    display: -moz-inline-stack;
    display: inline-block;
    zoom: 1;
    *display: inline;
    margin: 1rem; }

footer {
  border-top: 1px solid #131b75; }
  footer h3 + p {
    margin-top: 1.5rem; }
  footer .button:focus, footer .button:hover {
    color: #f2efe7;
    background-color: #131b75;
    border-color: #131b75; }
  footer a:not(.button) {
    text-decoration: underline;
    display: inline-block; }
    footer a:not(.button):focus, footer a:not(.button):hover {
      text-decoration-color: #f2efe7; }
  footer .members {
    font-size: 1.2rem; }
    @media only screen and (min-width: 769px) {
      footer .members p {
        max-width: 50%;
        margin: 0 auto; } }
.modal-close {
  position: absolute;
  top: 0;
  right: 0;
  padding: 1.4rem;
  z-index: 1; }
  .modal-close::after {
    content: '+';
    display: block;
    width: 2.8rem;
    height: 2.8rem;
    -webkit-transform: translateY(-50%) rotate(45deg);
    -moz-transform: translateY(-50%) rotate(45deg);
    -ms-transform: translateY(-50%) rotate(45deg);
    -o-transform: translateY(-50%) rotate(45deg);
    transform: translateY(-50%) rotate(45deg);
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transform-origin: 0 100%;
    -moz-transform-origin: 0 100%;
    -ms-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    cursor: pointer;
    font-size: 4.2rem;
    line-height: 1;
    color: #131b75; }

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s linear 0.5s, opacity 0.5s linear;
  will-change: visibility, opacity;
  overflow-y: auto;
  background-color: rgba(19, 27, 117, 0.25);
  -webkit-overflow-scrolling: touch; }
  .modal .modal-wrap {
    height: 100%;
    overflow: auto;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    /* Safari 7.0+ */
    align-items: center;
    -webkit-justify-content: center;
    /* Safari 7.0+ */
    justify-content: center;
    -webkit-flex-direction: column;
    flex-direction: column; }
  .modal .modal-inner-wrap {
    position: relative;
    padding: 2.8rem;
    z-index: 1;
    background-color: #f2efe7;
    -webkit-box-shadow: 0 5px 10px rgba(19, 27, 117, 0.25);
    -moz-box-shadow: 0 5px 10px rgba(19, 27, 117, 0.25);
    box-shadow: 0 5px 10px rgba(19, 27, 117, 0.25); }
    .modal .modal-inner-wrap .wrap {
      padding: 2.8rem; }
  body.loading .modal {
    display: none; }
  .modal .fluid-width-video-wrapper {
    margin: 2.8rem auto; }
  .modal:not(.show) iframe {
    -webkit-transform: translateY(100vw);
    -moz-transform: translateY(100vw);
    -ms-transform: translateY(100vw);
    -o-transform: translateY(100vw);
    transform: translateY(100vw);
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden; }
  .modal.show {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s; }
