/*//////////////////////////////////////////////////////////////////////////////
//	1 BASE
//////////////////////////////////////////////////////////////////////////////*/
/*	GENERIC 
//////////////////////////////////////////////////////////////////////////////*/
html {
  box-sizing: border-box;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  margin: 0;
}

article, aside, footer, header, nav, section, figcaption, figure, main, details, menu {
  display: block;
}

/*	TYPOGRAPHY 
//////////////////////////////////////////////////////////////////////////////*/
body {
  font-family: "helvetica neue", helvetica, arial, sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "helvetica neue", helvetica, arial, sans-serif;
}

body {
  color: black;
}

a {
  color: blue;
}

::-moz-selection {
  color: white;
  background: blue;
}

::selection {
  color: white;
  background: blue;
}

html {
  font-size: 14px;
}
@media (min-width: 1024px) {
  html {
    font-size: calc(0.78125vw + 6px);
  }
}
@media (min-width: 1280px) {
  html {
    font-size: 16px;
  }
}

* {
  line-height: 1.25;
}

.text-xs, blockquote footer, figure.right figcaption, .imagegrid figcaption {
  font-size: 12px;
}

.text-s, small, .site-nav .menu a, .site-news .row .section-header {
  font-size: .75em;
}

.text-m, *, h2, h3,
h4,
h5,
h6 {
  font-size: 1em;
}

.text-l, h1 {
  font-size: 2.5em;
}

h1 {
  line-height: 1.1;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl,
table,
form {
  margin-bottom: 1rem;
}

h1 + h2,
h2 + h3,
h3 + h4,
h4 + h5,
h5 + h6 {
  margin-top: -1rem;
}

* {
  font-weight: 400;
}

h1 {
  font-weight: 400;
}

blockquote {
  margin-bottom: 2rem;
}
blockquote footer {
  margin-top: 1rem;
}

/*	SPACING 
//////////////////////////////////////////////////////////////////////////////*/
* {
  margin: 0;
  padding: 0;
}

* > *:last-child {
  margin-bottom: 0;
}

article, section {
  margin-bottom: 1rem;
}

/*	LISTS 
//////////////////////////////////////////////////////////////////////////////*/
nav ul {
  list-style: none;
}

ol {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem 0;
}

/*	LINKS 
//////////////////////////////////////////////////////////////////////////////*/
a {
  text-decoration: none;
  display: inline-block;
  background-image: linear-gradient(to top, currentColor, currentColor 1px, transparent 1px);
}
a:link {
  color: black;
}
a:visited {
  color: black;
}
a:hover {
  color: black;
}
a:active {
  transform: translateY(1px);
}

.link {
  border: none;
  display: inline;
}
.link:hover {
  text-decoration: underline;
}

/*	MEDIA 
//////////////////////////////////////////////////////////////////////////////*/
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

figure {
  margin: 0;
}

figure.right {
  display: -ms-flexbox;
  display: flex;
}
figure.right > div {
  max-width: 10rem;
  margin-right: 2rem;
}
figure.right figcaption {
  -ms-flex-item-align: end;
      align-self: flex-end;
  max-width: 10rem;
}

/*	LAYOUT 
//////////////////////////////////////////////////////////////////////////////*/
.row {
  margin: 0 auto;
  max-width: 62rem;
  position: relative;
}

body {
  padding: 0 1rem;
}

.section .row {
  border-bottom: 1px solid;
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.cols {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media (min-width: 1280px) {
  .cols .col-1, .cols .col-2, .cols .col-3, .cols .col-4, .cols .col-5, .cols .col-6, .cols .col-7, .cols .col-8, .cols .col-9, .cols .col-10, .cols .col-11, .cols .col-12, .cols .col-33, .cols .col-50, .cols .col-66, .cols .col-25, .cols .col-75 {
    -ms-flex-positive: 0;
        flex-grow: 0;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
  .cols .col-1 {
    -ms-flex-preferred-size: calc(100% / 12 * 1);
        flex-basis: calc(100% / 12 * 1);
  }
  .cols .col-2 {
    -ms-flex-preferred-size: calc(100% / 12 * 2);
        flex-basis: calc(100% / 12 * 2);
  }
  .cols .col-3 {
    -ms-flex-preferred-size: calc(100% / 12 * 3);
        flex-basis: calc(100% / 12 * 3);
  }
  .cols .col-4 {
    -ms-flex-preferred-size: calc(100% / 12 * 4);
        flex-basis: calc(100% / 12 * 4);
  }
  .cols .col-5 {
    -ms-flex-preferred-size: calc(100% / 12 * 5);
        flex-basis: calc(100% / 12 * 5);
  }
  .cols .col-6 {
    -ms-flex-preferred-size: calc(100% / 12 * 6);
        flex-basis: calc(100% / 12 * 6);
  }
  .cols .col-7 {
    -ms-flex-preferred-size: calc(100% / 12 * 7);
        flex-basis: calc(100% / 12 * 7);
  }
  .cols .col-8 {
    -ms-flex-preferred-size: calc(100% / 12 * 8);
        flex-basis: calc(100% / 12 * 8);
  }
  .cols .col-9 {
    -ms-flex-preferred-size: calc(100% / 12 * 9);
        flex-basis: calc(100% / 12 * 9);
  }
  .cols .col-10 {
    -ms-flex-preferred-size: calc(100% / 12 * 10);
        flex-basis: calc(100% / 12 * 10);
  }
  .cols .col-11 {
    -ms-flex-preferred-size: calc(100% / 12 * 11);
        flex-basis: calc(100% / 12 * 11);
  }
  .cols .col-12 {
    -ms-flex-preferred-size: calc(100% / 12 * 12);
        flex-basis: calc(100% / 12 * 12);
  }
  .cols .col-25 {
    -ms-flex-preferred-size: calc(100% / 4);
        flex-basis: calc(100% / 4);
  }
  .cols .col-33 {
    -ms-flex-preferred-size: calc(100% / 3);
        flex-basis: calc(100% / 3);
  }
  .cols .col-50 {
    -ms-flex-preferred-size: calc(100% / 2);
        flex-basis: calc(100% / 2);
  }
  .cols .col-66 {
    -ms-flex-preferred-size: calc(100% / 3 * 2);
        flex-basis: calc(100% / 3 * 2);
  }
  .cols .col-75 {
    -ms-flex-preferred-size: calc(100% / 4 * 3);
        flex-basis: calc(100% / 4 * 3);
  }
}

.cols .box {
  margin: 1rem;
}

/*	HELPERS 
//////////////////////////////////////////////////////////////////////////////*/
/* Debug Classes */
.icon-grid {
  position: fixed;
  z-index: 99999;
  bottom: 12px;
  left: 12px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  background: url("../assets/icon-grid.svg") no-repeat;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}

.overlay {
  opacity: 0;
}

.has-debug_overlay .overlay {
  position: fixed;
  z-index: 999999;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  transition: opacity .5s;
  pointer-events: none;
  opacity: 1;
  margin: 0 auto;
}
@media (min-width: 1280px) {
  .has-debug_overlay .overlay {
    background: url("../assets/grid-mb.svg") repeat-y;
    width: 64rem;
    background-size: 100%;
  }
}

/*//////////////////////////////////////////////////////////////////////////////
//	2 SECTIONS
//////////////////////////////////////////////////////////////////////////////*/
/*	HEADER 
//////////////////////////////////////////////////////////////////////////////*/
.site-header .row {
  padding-top: 8rem;
  padding-bottom: 4rem;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
      justify-content: flex-end;
}
@media (max-width: 1024px) {
  .site-header .row {
    padding: 8vw 0 4vw 0;
  }
}

.site-title {
  -ms-flex-preferred-size: 21rem;
      flex-basis: 21rem;
  margin: 0;
}
@media (min-width: 1024px) {
  .site-title {
    margin: 0 0 0 21rem;
  }
}
@media (min-width: 720px) and (max-width: 1024px) {
  .site-title {
    margin: 0 0 0 calc(100% / 3);
  }
}

.site-nav {
  -ms-flex-preferred-size: 20rem;
      flex-basis: 20rem;
}
.site-nav .menu {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: end;
      justify-content: flex-end;
  -ms-flex-align: stretch;
      align-items: stretch;
  margin-top: -.2rem;
}
.site-nav .menu li {
  margin-left: 1rem;
  margin-top: 1.5rem;
}
.site-nav .menu a {
  text-transform: uppercase;
  background-image: none;
}
.site-nav .menu .facebook-link {
  display: block;
}
.site-nav .menu .facebook-link .icon-facebook {
  width: 1rem;
}

/*	NEWS 
//////////////////////////////////////////////////////////////////////////////*/
.site-news .row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: start;
      justify-content: flex-start;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media (min-width: 960px) {
  .site-news .row {
    -ms-flex-pack: justify;
        justify-content: space-between;
  }
}
.site-news .row .section-header {
  -ms-flex-preferred-size: 20rem;
      flex-basis: 20rem;
  text-transform: uppercase;
  font-weight: 400;
  margin-top: .2rem;
}
@media (max-width: 960px) {
  .site-news .row .section-header {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
  }
}


.site-news .row .news-article {
  -ms-flex-preferred-size: 20rem;
      flex-basis: 20rem;
}

/*	MAIN 
//////////////////////////////////////////////////////////////////////////////*/
/*	VITA 
//////////////////////////////////////////////////////////////////////////////*/
@media (min-width: 1024px) {
  .site-vita .row {
    display: -ms-flexbox;
    display: flex;
  }
  .site-vita .row .section-header {
    -ms-flex-preferred-size: 10rem;
        flex-basis: 10rem;
  }
  .site-vita .row article {
    -ms-flex-preferred-size: 52rem;
        flex-basis: 52rem;
  }
}

@media (max-width: 960px) {
  .site-vita article {
    padding-top: 20rem;
    padding-top: 50vw;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top;
  }
}
.site-vita .article-content {
  padding: 4rem 2rem 4rem 2rem;
  background: white;
  max-width: 31rem;
  margin-bottom: 4rem;
}
@media (max-width: 960px) {
  .site-vita .article-content {
    padding: 2rem 2rem 2rem 0rem;
  }
}
.site-vita .article-quote {
  padding: 1rem 2rem 2rem 0rem;
  background: white;
  max-width: 41rem;
}
@media (min-width: 1024px) {
  .site-vita .article-quote {
    margin-left: -10rem;
  }
}

/*	CONTACT 
//////////////////////////////////////////////////////////////////////////////*/
.site-contact.section .row {
  border-bottom: none;
  display: -ms-flexbox;
  display: flex;
}
@media (max-width: 1024px) {
  .site-contact.section .row {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}
@media (min-width: 1024px) {
  .site-contact.section .row {
    min-height: 100vh;
  }
}
.site-contact.section .row .section-header {
  -ms-flex-preferred-size: 12rem;
      flex-basis: 12rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.site-contact.section .row .contact {
  -ms-flex-preferred-size: 14rem;
      flex-basis: 14rem;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-bottom: 2rem;
}
@media (min-width: 1024px) {
  .site-contact.section .row .mb {
    padding-left: 7rem;
  }
}

/*//////////////////////////////////////////////////////////////////////////////
//	3 COMPONENTS
//////////////////////////////////////////////////////////////////////////////*/
/*	IMAGEGRID 
//////////////////////////////////////////////////////////////////////////////*/
.imagegrid {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: justify;
      justify-content: space-between;
}
.imagegrid figure {
  -ms-flex-preferred-size: 20rem;
      flex-basis: 20rem;
  -ms-flex-preferred-size: calc((100% - 2rem) / 3);
      flex-basis: calc((100% - 2rem) / 3);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: justify;
      justify-content: space-between;
  margin-bottom: 4rem;
}
@media (max-width: 640px) {
  .imagegrid figure {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
  }
}
@media (min-width: 640px) and (max-width: 960px) {
  .imagegrid figure {
    -ms-flex-preferred-size: calc((100% - 1rem) / 2);
        flex-basis: calc((100% - 1rem) / 2);
  }
}
.imagegrid figcaption {
  margin-top: 1rem;
}

/*//////////////////////////////////////////////////////////////////////////////
//	4 VIEWS
//////////////////////////////////////////////////////////////////////////////*/
/*	PRINT 
//////////////////////////////////////////////////////////////////////////////*/
