/* -------------------------------------
DEPENDENCIES
------------------------------------- */
html {
  box-sizing: border-box; }

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

/* -------------------------------------
BASE COMPONENTS
------------------------------------- */
/* -------------------------------------
CSS RESET
------------------------------------- */
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul, li {
  list-style: none; }

blockquote, q {
  quotes: none; }

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

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

a img {
  border: none; }

:focus {
  outline: 0; }

/* -------------------------------------
RENDERING OPTIONS
------------------------------------- */
body {
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: none; }

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

/* -------------------------------------
COLOR SPACE
------------------------------------- */
::selection {
  background-color: #101018;
  color: #fff; }

::-moz-selection {
  background-color: #101018;
  color: #fff; }

/* -------------------------------------
BREAKPOINTS
------------------------------------- */
/* -------------------------------------
MIXINS
------------------------------------- */
/* -------------------------------------
FONT FAMILY
------------------------------------- */
/* -------------------------------------
TYPOGRAPHY
------------------------------------- */
html {
  font-size: 16px;
  font-weight: 400;
  line-height: 120%;
  /*letter-spacing: 0.02rem;*/ }
  @media screen and (max-width: 1024px) {
    html {
      font-size: 14px; } }
  @media screen and (max-width: 960px) {
    html {
      font-size: 12px; } }
  @media screen and (max-width: 414px) {
    html {
      font-size: 10px; } }

body {
  font-family: "Rubik", sans-serif;
  line-height: 1.615;
  background-color: #fff;
  color: #101018; }

.h1 {
  font-size: 2rem;
  line-height: 1.25;
  font-weight: 300;
  margin-bottom: 3.5rem; }
  @media screen and (max-width: 960px) {
    .h1 {
      font-size: 1.75rem;
      line-height: 1.35;
      font-weight: 400;
      margin-bottom: 3rem; } }

.h2 {
  font-size: 1.625rem;
  line-height: 1.25;
  font-weight: 300;
  margin: 0.5625rem 0; }
  @media screen and (max-width: 960px) {
    .h2 {
      font-weight: 400; } }

.h3 {
  font-size: 1.25rem;
  line-height: 1.25;
  font-weight: 300;
  margin: 0.5625rem 0; }
  @media screen and (max-width: 960px) {
    .h3 {
      font-size: 1.125rem; } }

.h4 {
  font-size: 0.8125rem;
  font-weight: 500;
  margin: 0.5625rem 0;
  text-transform: uppercase; }
  @media screen and (max-width: 960px) {
    .h4 {
      font-size: 1rem; } }

p {
  font-size: 1rem;
  margin-bottom: 2rem; }
  @media screen and (max-width: 768px) {
    p {
      font-size: 1.25rem; } }
  p a {
    font-weight: 600;
    color: #101018;
    text-decoration: none;
    display: inline-block; }
    p a:after {
      content: '';
      display: block;
      background-color: #383838;
      opacity: 0.2;
      height: 1px;
      top: -3px;
      position: relative; }
    p a:hover {
      color: black; }
      p a:hover:after {
        opacity: 1;
        background-color: black; }

strong {
  font-weight: 700; }

.link {
  -webkit-transition: all 0.2s ease-out 0s;
  -moz-transition: all 0.2s ease-out 0s;
  -ms-transition: all 0.2s ease-out 0s;
  -o-transition: all 0.2s ease-out 0s;
  transition: all 0.2s ease-out 0s;
  display: inline-block;
  text-decoration: none; }
  .link.social {
    margin-right: 26px; }
    .link.social svg {
      fill: #E0E0E0; }
    .link.social:hover svg {
      fill: #101018; }

/* -------------------------------------
GRID & LAYOUT DEFINITION
------------------------------------- */
.clearfix:after {
  content: "\0020";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
  overflow: hidden; }

.container {
  max-width: 85.625rem;
  margin-left: auto;
  margin-right: auto; }
  .container::after {
    clear: both;
    content: "";
    display: table; }

.row {
  display: block; }
  .row::after {
    clear: both;
    content: "";
    display: table; }

/* -------------------------------------
THEME
------------------------------------- */
/* -------------------------------------
THEME
------------------------------------- */
body {
  padding: 2.875rem 5%;
  background-color: #FBFBFB; }
  body.fullscreen {
    padding: 0; }

.container {
  max-width: 1145px;
  margin: 0 auto; }
  .container.fullscreen {
    padding: 0;
    max-width: 100%; }
  .container.dark-theme {
    background-color: #101018;
    color: #BDBDBD; }

.mainHeader {
  margin-bottom: 5rem; }
  @media screen and (max-width: 600px) {
    .mainHeader {
      margin-bottom: 2.5rem; } }
  .mainHeader .logo {
    max-width: 100px; }
    @media screen and (max-width: 600px) {
      .mainHeader .logo {
        width: 20%; } }

.hero {
  display: block; }
  .hero::after {
    clear: both;
    content: "";
    display: table; }
  .hero .h1 {
    margin-bottom: 1.5rem; }
  .hero.index {
    padding-bottom: 5.0625rem; }
    .hero.index .content {
      max-width: 64rem; }
      .hero.index .content p.first {
        margin-top: 2rem; }
      .hero.index .content .links {
        margin-top: 3rem; }

.portfolio {
  margin-bottom: 4.5rem; }
  .portfolio .grid {
    display: block;
    margin-left: -20px;
    margin-right: -20px; }
    .portfolio .grid::after {
      clear: both;
      content: "";
      display: table; }
    .portfolio .grid .grid-item {
      width: 33.33%;
      padding: 20px;
      float: left; }
      @media screen and (max-width: 1024px) {
        .portfolio .grid .grid-item {
          width: 50%; } }
      @media screen and (max-width: 600px) {
        .portfolio .grid .grid-item {
          width: 100%;
          padding: 10px 20px 20px; } }
      .portfolio .grid .grid-item .item {
        -webkit-transition: all 0.2s ease-out 0s;
        -moz-transition: all 0.2s ease-out 0s;
        -ms-transition: all 0.2s ease-out 0s;
        -o-transition: all 0.2s ease-out 0s;
        transition: all 0.2s ease-out 0s;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        min-height: 488px;
        background: #FFFFFF;
        box-shadow: 0px 20px 20px rgba(0, 0, 0, 0.05);
        text-decoration: none;
        color: inherit;
        position: relative;
        top: 0; }
        @media screen and (max-width: 600px) {
          .portfolio .grid .grid-item .item {
            min-height: auto; } }
        .portfolio .grid .grid-item .item:hover {
          box-shadow: 0px 20px 30px rgba(0, 0, 0, 0.15);
          position: relative;
          top: -10px; }
        .portfolio .grid .grid-item .item .text {
          padding: 12px 28px; }
          .portfolio .grid .grid-item .item .text .label {
            color: #BDBDBD; }
            .portfolio .grid .grid-item .item .text .label .area {
              margin-left: 8px;
              color: #101018; }
          @media screen and (max-width: 600px) {
            .portfolio .grid .grid-item .item .text {
              padding: 10px 24px; }
              .portfolio .grid .grid-item .item .text .h2 {
                margin-top: 1.6875rem;
                margin-bottom: 1.125rem;
                font-weight: 500; } }
          .portfolio .grid .grid-item .item .text p {
            font-size: 14px;
            line-height: 1.5; }
        .portfolio .grid .grid-item .item img {
          max-width: 100%;
          height: auto;
          width: auto\9;
          /* ie8 */
          display: block; }

.blogspot a {
  display: inline-block;
  margin-bottom: 0.1125rem;
  font-size: 0.875rem;
  padding: 0.5625rem 0;
  margin-bottom: 2px;
  color: #101018; }
  @media screen and (max-width: 960px) {
    .blogspot a {
      font-size: 0.875rem;
      padding: 0.625rem 0; } }
  .blogspot a:after {
    content: '';
    display: block;
    background-color: #383838;
    opacity: 0.2;
    height: 1px;
    top: -1px;
    position: relative; }
  .blogspot a:hover {
    color: black; }
    .blogspot a:hover:after {
      opacity: 0.4;
      background-color: black; }

.showcase.hero {
  padding-left: 3%;
  max-width: 40rem;
  padding-top: 4.5rem;
  margin-bottom: 9rem; }
  .showcase.hero .h1 {
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 2rem; }

.showcase .content .h2 {
  padding-left: 3%; }

.showcase img {
  max-width: 100%;
  height: auto;
  width: auto\9;
  /* ie8 */
  display: block;
  margin: 6.75rem auto 13.5rem; }
