/* Animations (at top thanks to IE) */
@-webkit-keyframes fadeIn {
  0% {opacity: 0;}
  100% {opacity: 1;}
}
@keyframes fadeIn {
  0% {opacity: 0;}
  100% {opacity: 1;}
}

@-webkit-keyframes fadeOut {
  0% {opacity: 1;}
  100% {opacity: 0;}
}

@keyframes fadeOut {
  0% {opacity: 1;}
  100% {opacity: 0;}
}

@-webkit-keyframes moveLeft {
  0% {-webkit-transform: translateX(-1.25em);transform: translateX(-1.25em);}
  100% {-webkit-transform: translateX(0);transform: translateX(0);}
}

@keyframes moveLeft {
  0% {-webkit-transform: translateX(-1.25em);transform: translateX(-1.25em);}
  100% {-webkit-transform: translateX(0);transform: translateX(0);}
}

@-webkit-keyframes moveRight {
  0% {-webkit-transform: translateX(1.25em);transform: translateX(1.25em);}
  100% {-webkit-transform: translateX(0);transform: translateX(0);}
}

@keyframes moveRight {
  0% {-webkit-transform: translateX(1.25em);transform: translateX(1.25em);}
  100% {-webkit-transform: translateX(0);transform: translateX(0);}
}

@-webkit-keyframes moveUp {
  0% {-webkit-transform: translateY(1.25em);transform: translateY(1.25em);}
  100% {-webkit-transform: translateY(0);transform: translateY(0);}
}

@keyframes moveUp {
  0% {-webkit-transform: translateY(1.25em);transform: translateY(1.25em);}
  100% {-webkit-transform: translateY(0);transform: translateY(0);}
}

html {
  background-color: rgba(2, 19, 109, 0.9);
  scroll-behavior: smooth;
}

.page-wrapper {
  height: inherit;
  margin: 0 auto;
  max-width: 90rem;
  padding: 0 1.5625rem;
  position: relative;
}

.full-wrapper {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: calc(100vh - 3.125rem);
  min-height: calc((var(--vh, 1vh) * 100) - 3.125rem);
  padding-bottom: 3.4375rem;
  padding-top: 3.4375rem;
}

.noscroll {
  overflow: hidden;
}


/* Background Image */
.background::after {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  content: "";
  height: 100vh;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: -1;
}

.tiny-image::after {
  z-index: 0;
}

.animateSwitch::after {
  -webkit-animation: fadeOut 1s ease-out forwards;
          animation: fadeOut 1s ease-out forwards;
}


/* Header Bar */
.header-bar {
  background: #fff;
  height: 3.125rem;
  position: relative;
  width: 100%;
}
.navigation {
  height: inherit;
  margin: 0 auto;
  max-width: 77.5rem;
  padding: 0 1.5625rem;
  position: relative;
}

.logo-link {
  position: absolute;
  top: 1.5625rem;
  z-index: 1;
}

.logo {
  height: auto;
  width: 12.25rem;
}

.navigation-list {
  display: none;
  height: 4.6875rem;
  line-height: 4.6875rem;
  padding-right: 1.5625rem;
  position: absolute;
  right: 0;
}

.navigation-list-item {
  display: inline-block;
  height: 100%;
  margin: 0 0.625rem;
}

.navigation-list-item:first-of-type {
  margin-left: 0;
}

.navigation-list-item:last-of-type {
  margin-right: 0;
}

.navigation-link {
  display: block;
  color: #02136d;
  font-family: 'Lato', sans-serif;
  font-size: 0.875rem;
  text-decoration: none;
  text-transform: uppercase;
}

.navigation-link:hover,
.active {
  font-weight: bold;
}

.navigation-link:after {
  display: block;
  content: attr(data-text);
  font-weight: bold;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}

.hamburger-button {
  height: 1.25rem;
  margin-right: 1.5625rem;
  margin-top: -0.625rem;
  position: absolute;
  right: 0;
  top: 50%;
  width: 1.5625rem;
  z-index: 1;
}

.hamburger-box {
  cursor: pointer;
  display: block;
  height: 1.25rem;
  left: 0;
  margin: 0;
  opacity: 0;
  position: absolute;
  width: 1.5625rem;
  z-index: 2;
}

.hamburger-bar {
  background: #02136d;
  display: block;
  height: 0.125rem;
  margin-bottom: 0.4375rem;
  position: relative;
  -webkit-transform-origin: 50% 50% ;
          transform-origin: 50% 50% ;
  -webkit-transition: background 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),
              opacity 0.55s ease,
              -webkit-transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
  transition: background 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),
              opacity 0.55s ease,
              -webkit-transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
  transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),
              background 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),
              opacity 0.55s ease;
  transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),
              background 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0),
              opacity 0.55s ease,
              -webkit-transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
  width: 100%;
  z-index: 1;
}

.hamburger-bar:first-of-type {
  -webkit-transform-origin: 0% 0%;
          transform-origin: 0% 0%;
}

.hamburger-bar:nth-of-type(3) {
  -webkit-transform-origin: 0% 100%;
          transform-origin: 0% 100%;
}

.hamburger-box:checked ~ .hamburger-bar {
  background: #fff;
  opacity: 1;
  -webkit-transform: rotate(45deg) translate(0.125rem, 0.0625rem);
          transform: rotate(45deg) translate(0.125rem, 0.0625rem);
}

.hamburger-box:checked ~ .hamburger-bar:nth-of-type(2) {
  opacity: 0;
  -webkit-transform: rotate(0deg) scale(0.2, 0.2);
          transform: rotate(0deg) scale(0.2, 0.2);
}

.hamburger-box:checked ~ .hamburger-bar:nth-of-type(3) {
  -webkit-transform: rotate(-45deg) translate(0, 0.0625rem);
          transform: rotate(-45deg) translate(0, 0.0625rem);
}

.mobile-menu {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: #02136d;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  padding-left: 1.875rem;
  position: fixed;
  right: 0;
  top: 0;
  -webkit-transform: translate(100%, 0);
          transform: translate(100%, 0);
  -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
  transition: -webkit-transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
  transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
  transition: transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0), -webkit-transform 0.5s cubic-bezier(0.77, 0.2, 0.05, 1.0);
  width: 18.75rem;
}

.hamburger-box:checked ~ .mobile-menu {
  -webkit-transform: none;
          transform: none;
}

.mobile-menu-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 58%;
  max-height: 24.125rem;
}

.mobile-item {
  margin-bottom: auto;
  margin-top: auto;
}

.mobile-link {
  display: block;
  color: #fff;
  font-family: 'Lato', sans-serif;
  font-size: 1.5rem;
  text-decoration: none;
  text-transform: uppercase;
}


/* Page Content */
.page-content {
  -webkit-animation: fadeIn 1.5s ease-out;
          animation: fadeIn 1.5s ease-out;
  font-family: Georgia, serif;
  margin-bottom: auto;
  margin-top: auto;
}

.content {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 1.875rem 1.25rem;
  padding-bottom: 2.8125rem;
  max-width: 23rem;
  width: 100%;
}

.service {
  -webkit-animation: moveLeft 1s ease-out;
          animation: moveLeft 1s ease-out;
  background: rgba(2, 19, 109, 0.8);
  font-size: 1rem;        /* For Safari rem animation bug. */
}

.page-header {
  display: inline-block;
  color: #fff;
  font-size: 1.4375rem;
  line-height: 1.6875rem;
  margin-bottom: 2rem;
  position: relative;
}

.page-header:after {
  bottom: -0.75rem;
  background: #fff;
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  width: 100%;
}

.home-header:after {
  width: 8.25rem;
}

.page-information {
  color: #fff;
  font-size: 1rem;
  line-height: 1.5rem;
  margin-top: 1.25rem;
}

.page-information:first-of-type {
  margin-top: 0;
}

.contact {
  -webkit-animation: moveRight 1s ease-out;
          animation: moveRight 1s ease-out;
  background: #fff;
  font-size: 1rem;      /* For Safari rem animation bug. */
  margin-top: 0.9375rem;
  padding-bottom: 1.875rem;
}

.contact-information {
  color: #02136d;
  line-height: 1.5rem;
}


/* Profiles */
.profile-wrapper {
  max-width: 77.5rem;
  padding: 0 1.5625rem;
}

.profile {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin: 5.625rem auto;
  max-width: 31.25rem;
}

.profile-boxes {
  max-width: 27.375rem;
}

.profile-reflow {
  padding-top: 66.66%;
  position: relative;
}

.profile-image {
  display: block;
  position: absolute;
  top: 0;
  width: 100%;
}

.profile-contact {
  -webkit-animation: none;
          animation: none;
  display: none;
  max-width: none;
}

.mobile-contact {
  display: block;
  margin-top: 3.125rem;
}

.profile-text {
  -webkit-animation: fadeIn 2s ease-out,
             moveUp 1s ease-out;
          animation: fadeIn 2s ease-out,
             moveUp 1s ease-out;
  color: #fff;
  font-family: Georgia, serif;
  font-size: 1rem;        /* For Safari rem animation bug. */
  margin-top: 2.8125rem;
}

.profile-name {
  margin: 0;
}

.profile-name:after {
  content: none;
}

.profile-title {
  font-size: 1.125rem;
  line-height: 1.3125rem;
  margin: 0.1875rem 0;
}

.profile-underline {
  display: inline;
  position: relative;
}

.profile-underline:after {
  bottom: -0.75rem;
  background: #fff;
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  width: 100%;
}

.profile-information {
  margin: 1.5625rem 0;
}

.profile-information:first-of-type {
  margin-top: 2.625rem;
}

.profile-information:last-of-type {
  margin: 0;
}

.profile-break {
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)),
                                        color-stop(rgba(255, 255, 255, 0.75)),
                                        to(rgba(255, 255, 255, 0)));
  background: linear-gradient(to right, rgba(255, 255, 255, 0),
                                        rgba(255, 255, 255, 0.75),
                                        rgba(255, 255, 255, 0));
  height: 0.125rem;
  margin: 0 auto;
  max-width: 31.25rem;
}


/* Footer */
.footer {
  background: #02136d;
  border-top: 0.125rem solid #fff;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  position: relative;
}

.footer:before {
  background: #B8B8B8;
  content: "";
  height: 0.25rem;
  position: absolute;
  top: -0.375rem;
  width: 100%;
}

.footer-wrapper {
  display: flex;
  margin: 0 auto;
  max-width: 77.5rem;
  padding: 1.5625rem;
  padding-bottom: 1.7rem;
  position: relative;
}

.footer-left {
  margin-right: 2rem;
}

.footer-text {
  margin-top: 1rem;
}

.footer-text > p {
  color: #ffffffb5;
  font-size: 15px;
  margin-top: 0.65rem;
  line-height: 1rem;
}

.logo-light {
  display: block;
  height: auto;
  width: 9.875rem;
}

.scroll-top {
  background: transparent;
  border: none;
  cursor: pointer;
  margin-left: auto;
}

.scroll-arrow {
  display: block;
  height: auto;
  width: 1.4375rem;
}


/* Media Queries */
@media (min-width: 31.25rem) {
  .page-wrapper {
    padding: 0;
  }

  .profile-wrapper {
    padding: 0 1.5625rem;
  }

  .full-wrapper {
    min-height: calc(100vh - 4.25rem);
    min-height: calc((var(--vh, 1vh) * 100) - 4.25rem);
    padding-bottom: 4.125rem;
    padding-top: 4.125rem;
  }

  .header-bar {
    height: 4.25rem;
  }

  .logo-link {
    top: 2.125rem;
  }

  .logo {
    width: 16.625rem;
  }

  .page-header {
    font-size: 1.875rem;
    line-height: 2.25rem;
    margin-bottom: 1.8125rem;
  }

  .page-header:after {
    bottom: -0.5625rem;
  }

  .home-header:after {
    width: 10.5rem;
  }

  .profile-name {
    margin: 0;
  }

  .profile-title {
    font-size: 1.625rem;
    line-height: 1.875rem;
    margin: 0.4375rem 0;
  }

  .logo-light {
    width: 12.5rem;
  }
}

@media (min-width: 56.25rem) {
  .full-wrapper {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    padding-bottom: 2.5rem;
    padding-top: 2.5rem;
  }

  .page-content {
    margin-right: 11.25rem;
  }
}

@media (min-width: 68.75rem) {
  .full-wrapper {
    min-height: calc(100vh - 4.6875rem);
    min-height: calc((var(--vh, 1vh) * 100) - 4.6875rem);
  }

  .header-bar {
    height: 4.6875rem;
  }

  .logo-link {
    top: 1.875rem;
  }

  .logo {
    width: 22.3125rem;
  }

  .page-header {
    font-size: 2rem;
  }

  .home-header:after {
    width: 10.9375rem;
  }
}

@media (min-width: 76.875rem) {
  .navigation-list {
    display: block;
  }

  .hamburger-button {
    display: none;
  }
}

/* About Page Layout Breakpoint */
@media (min-width: 34.375rem) {
  .profile {
    margin: 7.8125rem auto;
  }
}

@media (min-width: 58.375rem) {
  .profile {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    max-width: none;
  }

  .profile-boxes {
    padding-right: 2.8125rem;
    width: 39%;
  }

  .profile-contact {
    display: block;
  }

  .mobile-contact {
    display: none;
  }

  .profile-text {
    margin-top: 0;
    width: 61%;
  }

  .footer-text > p {
    margin-top: 0.325rem;
  }
}


/* IE 9+ */
@media screen and (min-width:0\0) {
  .logo {
    height: 100%;
  }

  .logo-light {
    height: 100%;
  }

  .scroll-arrow {
    height: 100%;
  }
}
