body {
  padding: 0;
  margin: 0;
  height: 100%; }

ul, li {
  margin: 0;
  padding: 0;
  list-style: square; }

li {
  padding-bottom: 0.75rem; }

ul {
  padding-left: 2rem;
  padding-bottom: 1rem;
  padding-top: 1rem; }

figure {
  margin: 0; }

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

.wrap {
  position: relative;
  margin: 0 auto; }
  @media (min-width: 1280px) {
    .wrap {
      width: 1280px; } }
  @media (min-width: 960px) and (max-width: 1280px) {
    .wrap {
      width: 960px; } }
  @media (min-width: 600px) and (max-width: 960px) {
    .wrap {
      width: 600px; } }
  @media (max-width: 600px) {
    .wrap {
      width: 100%; } }

.grid:after {
  /* Or @extend clearfix */
  content: "";
  display: table;
  clear: both; }

.col-33 {
  width: 33.33%; }

.col-66 {
  width: 66.66%; }

.col-100 {
  width: 100%; }

.col-50 {
  width: 50%; }

.col-25 {
  width: 25%; }

.col-75 {
  width: 75%; }

.col-12 {
  width: 12.5%; }

.off-12 {
  margin-left: 12.5%; }

.off-33 {
  margin-left: 33.33%; }

.off-25 {
  margin-left: 25%; }

.off-66 {
  margin-left: 66.66%; }

.off-50 {
  margin-left: 50%; }

.off-75 {
  margin-left: 75%; }

@media (max-width: 960px) {
  [class*='off-'] {
    margin-left: 0; } }

[class*='col-'] {
  float: left;
  padding-right: 1.475rem;
  padding-left: 1.475rem; }
  @media (max-width: 960px) {
    [class*='col-'] {
      width: 100%; } }

@-webkit-keyframes loading {
  0% {
    transform: scale(0, 0); }
  50% {
    transform: scale(1, 1); }
  100% {
    transform: scale(0, 0); } }

@-moz-keyframes loading {
  0% {
    transform: scale(0, 0); }
  50% {
    transform: scale(1, 1); }
  100% {
    transform: scale(0, 0); } }

@-ms-keyframes loading {
  0% {
    transform: scale(0, 0); }
  50% {
    transform: scale(1, 1); }
  100% {
    transform: scale(0, 0); } }

@-o-keyframes loading {
  0% {
    transform: scale(0, 0); }
  50% {
    transform: scale(1, 1); }
  100% {
    transform: scale(0, 0); } }

@keyframes loading {
  0% {
    transform: scale(0, 0); }
  50% {
    transform: scale(1, 1); }
  100% {
    transform: scale(0, 0); } }

h1, h2, h3, h4, .btn, nav a {
  font-family: "Oswald", sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; }

h1, h2, h3, h4 {
  color: #45484a;
  font-weight: 100;
  letter-spacing: 0.1rem;
  margin: 2.5rem 0 2rem 0; }
  @media (max-width: 960px) {
    h1, h2, h3, h4 {
      margin: .5rem 0 1rem 0; } }

h1 {
  font-size: 2.66rem; }
  @media (max-width: 960px) {
    h1 {
      font-size: 1.88rem; } }

h2 {
  font-size: 1.66rem; }
  @media (max-width: 960px) {
    h2 {
      font-size: 1.33rem; } }

h3 {
  font-size: 2rem; }
  @media (max-width: 960px) {
    h3 {
      font-size: 1.15rem; } }

h4 {
  font-size: 1.33rem; }
  @media (max-width: 960px) {
    h4 {
      font-size: 1.15rem; } }

.dome {
  width: 2.5rem;
  height: 2.5rem;
  transition: background-color ease-in-out 0.125s;
  font-size: 0;
  border-radius: 50%;
  display: inline-block;
  background-color: #dc404a; }
  .dome.icon {
    line-height: 2.5rem;
    color: #fff; }
  .dome:hover {
    background-color: #e46d75; }

.icon {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 1.5rem;
  text-transform: none; }

.facebook {
  background-image: url(/assets/svg/facebook.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 20px 20px;
  color: transparent !important; }

.carousel {
  height: 35rem;
  position: relative;
  list-style: none;
  padding: 0;
  margin: 0; }
  .carousel li {
    background: center no-repeat;
    background-size: cover;
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity ease-in-out 1s;
    z-index: 0; }
    .carousel li.active {
      opacity: 1;
      z-index: 1; }
      .carousel li.active:after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #2d70ae; }
  .carousel img {
    opacity: 0.25;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    object-fit: cover; }
  .carousel section {
    z-index: 2;
    text-align: center; }
  .carousel .hline {
    margin: 0 auto;
    margin-bottom: 1rem; }
    @media (max-width: 600px) {
      .carousel .hline {
        background-color: #fff; } }
  .carousel h2 {
    font-size: 2.66rem;
    margin: 3rem 0;
    padding: 0 1rem; }
    @media (max-width: 960px) {
      .carousel h2 {
        font-size: 2rem;
        margin: 1rem 0; } }
  .carousel p {
    font-size: 1.33rem;
    padding: 0 1rem;
    max-height: 13rem;
    width: 85%;
    margin: 0 auto; }
    @media (max-width: 960px) {
      .carousel p {
        font-size: 1rem; } }
  .carousel h2, .carousel p {
    text-shadow: 0px 0px 5px #2d70ae;
    color: #fff; }
  @media (max-width: 960px) {
    .carousel {
      height: 25rem; } }

.btn {
  transition: background-color ease-in-out 0.125s;
  padding: 0.66667rem 3rem;
  border-radius: 0.33rem;
  letter-spacing: 0.066rem;
  font-size: 1.33rem;
  text-transform: uppercase;
  background-color: #dc404a;
  color: #fff;
  display: inline-block;
  margin: 2rem 0.5rem; }
  .btn:hover {
    color: #fff; }
  .btn.stack {
    text-align: center;
    display: block; }
    .btn.stack span, .btn.stack i {
      display: block; }
    .btn.stack span {
      font-size: 1.33rem;
      margin-top: 1.5rem;
      white-space: normal; }
    .btn.stack .icon {
      margin: 0;
      margin-bottom: 1rem;
      line-height: 1; }
    @media (min-width: 960px) {
      .btn.stack {
        height: 11rem; }
        .btn.stack span {
          margin-top: 2.5rem; } }
  .btn.alt {
    background-color: #2d90ae; }
    .btn.alt:hover {
      background-color: #57b7d4; }
  .btn:hover {
    background-color: #e46d75; }
  .btn .icon {
    margin-left: -1rem;
    margin-right: 1rem;
    line-height: 0;
    top: .66rem;
    display: inline-block;
    position: relative;
    font-size: 2.33rem; }
  @media (max-width: 960px) {
    .btn {
      font-size: 1rem;
      margin: 1rem 0.5rem; } }

.space {
  margin-bottom: 2rem; }

.center {
  text-align: center; }

.blue {
  background-image: -webkit-linear-gradient(45deg, #2d70ae, #2d97ae);
  background-image: linear-gradient(45deg, #2d70ae, #2d97ae);
  color: #fff; }
  .blue .hline {
    background-image: url(/assets/images/pulse-white.png); }
    .blue .hline:before, .blue .hline:after {
      background: #fff; }
  .blue h1, .blue h2, .blue h3 {
    color: #fff; }
  .blue a {
    color: #fff; }
  @media (max-width: 960px) {
    .blue {
      padding-top: 0; } }

.service figure {
  height: 13rem; }

.service .description {
  height: 8rem;
  overflow: hidden;
  position: relative;
  /*
        &:after {
            content:'';
            display:block;
            position:absolute;
            background:linear-gradient(rgba(255,255,255,0), white);
            bottom:0;
            left:0;
            width:100%;
            height:5rem;
        }
        */ }
  @media (max-width: 960px) {
    .service .description {
      height: 8rem; } }

.gallery {
  background-color: #2d70ae; }
  .gallery:before, .gallery:after {
    content: "";
    display: table; }
  .gallery:after {
    clear: both; }
  .gallery img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block; }
  .gallery figure {
    width: 33.33333%;
    height: 20rem;
    float: left;
    margin: 0; }
  @media (max-width: 960px) {
    .gallery a:nth-child(n+3) {
      display: none; }
    .gallery a figure {
      width: 50%;
      height: 19rem; } }
  @media (max-width: 600px) {
    .gallery {
      display: none; } }

.loading {
  position: relative; }
  .loading div {
    opacity: 0.1;
    pointer-events: none; }
  .loading:before, .loading:after {
    width: 1.5rem;
    height: 1.5rem;
    -webkit-animation: loading 1s infinite ease;
    -moz-animation: loading 1s infinite ease;
    -o-animation: loading 1s infinite ease;
    -ms-animation: loading 1s infinite ease;
    animation: loading 1s infinite ease;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -0.75rem;
    display: block;
    content: '';
    background: #fff;
    border-radius: 50%; }
  .loading:before {
    margin-left: -1.5rem;
    animation-delay: -.25s; }
  .loading:after {
    margin-left: 0; }

.hline {
  position: relative;
  display: block;
  background: url(/assets/images/pulse-blue.png) center no-repeat;
  height: 4rem;
  margin: 2rem auto;
  width: 44rem; }
  .hline:before, .hline:after {
    content: '';
    display: block;
    position: absolute;
    height: 2px;
    width: 21.2rem;
    top: 50%;
    background: #2d90ae; }
  .hline:before {
    left: 0; }
  .hline:after {
    right: 0; }
  @media (max-width: 960px) {
    .hline {
      width: 33rem;
      margin: 1rem auto; }
      .hline:before, .hline:after {
        width: 15.7rem; } }
  @media (max-width: 600px) {
    .hline {
      width: 90%;
      background: #2d90ae;
      height: 2px; }
      .hline:before, .hline:after {
        content: none; } }

body {
  font-family: "Open Sans", sans-serif;
  font-size: 0.85rem;
  line-height: 2.25;
  color: #45484a; }

blockquote {
  position: relative;
  z-index: 0;
  text-align: center;
  margin: 1rem 5rem; }
  blockquote:before {
    color: #2d70ae;
    content: "\201C";
    font-family: 'Passion One', cursive;
    font-size: 5rem;
    position: absolute;
    top: -0.5rem;
    left: -1.5rem;
    line-height: 1;
    z-index: -1; }
  blockquote p {
    font-size: 1.33rem;
    margin-bottom: 0; }
  blockquote span {
    text-align: center;
    display: block; }
    blockquote span i {
      color: #e9e2b6; }
  @media (max-width: 1280px) {
    blockquote {
      margin: 1rem; } }
  @media (max-width: 960px) {
    blockquote p {
      font-size: 1rem; } }

a {
  color: #2d70ae;
  text-decoration: none; }
  a figure img {
    transition: opacity ease 0.25s; }
  a:hover {
    color: #2d90ae; }
    a:hover figure img {
      opacity: 0.5; }

figure {
  margin: 1.33rem 0;
  position: relative;
  overflow: hidden;
  background-color: #2d90ae; }
  figure img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    opacity: 1; }
  figure figcaption {
    margin: 1rem;
    margin-top: -4rem;
    background: #fff;
    display: block;
    position: relative;
    padding: 0.5rem;
    border-radius: 0.3rem;
    display: none; }

form {
  width: 50%;
  margin: 0 auto;
  margin-bottom: 3rem;
  position: relative; }
  form div {
    margin: 1.5rem auto;
    transition: opacity 0.75s ease; }
  form input, form textarea {
    outline: none;
    color: #2d70ae;
    transition: all ease 0.5s;
    border: 2px solid transparent;
    border-radius: 0.25rem;
    font-family: "Open Sans", sans-serif;
    font-weight: 100;
    font-size: 1.33rem;
    padding: 0.75rem;
    padding-top: 0.55rem; }
    form input.invalid, form textarea.invalid {
      border-color: #dc404a !important;
      background: #fceced !important; }
  form label {
    display: block;
    font-size: 0.85rem;
    margin-bottom: 0.5rem; }
  form input[type="text"], form textarea {
    border-color: #45484a;
    display: block;
    margin: 0 auto;
    width: 100%; }
  form input[type="submit"] {
    cursor: pointer;
    margin-top: 1rem; }
  form.success:after, form.error:after {
    position: absolute;
    content: attr(data-message);
    display: block;
    border-radius: 0.33rem;
    font-size: 1.33rem;
    text-align: center; }
  form.success div {
    opacity: 0.0; }
  form.success:after {
    width: 75%;
    top: 50%;
    left: 12.5%;
    background: #2d90ae;
    color: #fff;
    margin-top: -0.5rem;
    padding: 1rem; }
  form.error:after {
    font-size: 1rem;
    bottom: -1rem;
    width: 100%;
    left: 0;
    background-color: #dc404a; }
  @media (max-width: 960px) {
    form {
      width: 75%; }
      form div {
        margin: .5rem auto; } }
  @media (max-width: 600px) {
    form {
      width: 90%; } }

.blue form input[type="text"], .blue form textarea {
  border-color: transparent; }

nav {
  font-size: 0; }
  nav ol {
    margin-top: -2rem;
    padding: 0; }
    nav ol li {
      display: inline-block;
      opacity: 0.5; }
      nav ol li:last-child:after {
        content: none; }
      nav ol li:after {
        font-family: 'Material Icons';
        font-size: 1.25rem;
        line-height: 1;
        top: .35rem;
        margin-left: 0.5rem;
        position: relative;
        content: 'chevron_right';
        color: #fff; }
      nav ol li a {
        color: #fff; }
        nav ol li a:hover {
          opacity: 1; }
  nav > a {
    font-family: "Open Sans", sans-serif;
    font-size: .8rem;
    display: inline-block; }

body > header {
  background-image: -webkit-linear-gradient(45deg, #ebf1f7, #eef9fe);
  background-image: linear-gradient(45deg, #ebf1f7, #eef9fe);
  padding-top: 1rem; }
  body > header div {
    text-align: center;
    position: relative; }
  body > header img {
    margin: 1rem 0; }
    @media (max-width: 960px) {
      body > header img {
        width: 50%;
        margin: 0 auto; } }
    @media (max-width: 600px) {
      body > header img {
        width: 90%;
        margin: 0 auto; } }
  body > header nav a {
    font-size: 1.35rem;
    padding: 1rem 2.5rem;
    color: #45484a;
    border-bottom: 3px solid transparent; }
    body > header nav a.active {
      border-bottom-color: #2d70ae; }
    @media (max-width: 960px) {
      body > header nav a {
        padding: 1rem;
        font-size: 1.25rem; } }
  @media (max-width: 600px) {
    body > header nav {
      display: none; } }
  body > header select {
    display: none;
    border: none;
    outline: none;
    padding: 0.5rem;
    width: 100%;
    font-family: "Open Sans", sans-serif;
    font-size: 1rem;
    color: #fff;
    background-color: #2d70ae; }
    @media (max-width: 600px) {
      body > header select {
        display: block; } }
  body > header .cta {
    position: absolute;
    top: 1rem;
    right: 0; }
    body > header .cta .dome {
      margin: 0 .25rem; }
    body > header .cta a {
      color: #dc404a; }
    body > header .cta h3 {
      font-size: 1.33rem;
      padding-top: 1rem;
      margin: 0; }
    @media (max-width: 960px) {
      body > header .cta {
        display: none; } }
    @media (max-width: 600px) {
      body > header .cta {
        display: block;
        position: relative;
        top: 0;
        padding: 1rem 0; }
        body > header .cta a:last-child {
          display: none; } }

body > footer {
  background: url(/assets/images/footer.jpg) center no-repeat;
  background-size: cover;
  color: #2d90ae;
  padding: 2rem 0 3rem 0; }
  body > footer .dome {
    width: 4.5rem;
    height: 4.5rem;
    margin: 0 .66rem; }
    body > footer .dome.icon {
      line-height: 4.5rem;
      font-size: 2rem;
      background-size: 30px 30px; }
  body > footer nav a {
    font-size: 1.15rem;
    padding: 1rem 2rem; }
  body > footer h3 {
    display: inline-block; }
  body > footer img {
    width: 280px;
    margin: 2rem auto; }
  body > footer small a {
    margin: 0 1rem; }
  @media (max-width: 600px) {
    body > footer img {
      width: 80%;
      display: block; }
    body > footer nav {
      display: none; } }

article > header h1 {
  padding-bottom: 0; }
  @media (max-width: 600px) {
    article > header h1 {
      margin-bottom: 0; } }

article > header nav {
  padding-bottom: 1rem;
  margin-top: -2rem; }
  article > header nav a {
    margin-right: 0; }
    article > header nav a:after {
      padding: 0 0.5rem;
      top: 0.15rem;
      position: relative;
      content: 'chevron_right';
      font-family: 'Material Icons'; }
    article > header nav a:last-child:after {
      content: none; }
  @media (max-width: 960px) {
    article > header nav {
      padding-bottom: 0; } }
  @media (max-width: 600px) {
    article > header nav {
      display: none; } }

iframe {
  width: 100%;
  height: 35rem;
  margin: 0;
  display: block;
  border: none;
  position: relative;
  z-index: 2; }
  @media (max-width: 960px) {
    iframe {
      height: 25rem; } }
  @media (max-width: 600px) {
    iframe {
      height: 15rem; } }
