/*---------------------------------------------- theme */
@import url(http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,700,300|Signika:400,600,700,300);
/*#353539*/
html, body, input, select, textarea, button {
  font-family: "Open Sans", arial, sans-serif; }


:root {
    --primary: #458e8d;
    --secondary: #353744;
    --alt: #134f5c;
    --background: whitesmoke;
    /*
        #96c115 - green
        #c46b15 - dark orange
    */
}
h1, h2, h3, h4, h5, h6, header, footer {
  font-family: "Signika", arial, sans-serif;
  color: var(--primary);
  font-variant: small-caps; }


/*---------------------------------------------- utilities */
.clearFix:after {
  content: "";
  display: table;
  clear: both; }

.bold {
  font-weight: bold; }

.italics {
  font-style: italic; }

.container {
  padding: 1em;
  width: 100%;
  margin: 0;
  position: relative; }

@media (min-width: 1000px) {
  .container {
    width: calc(100% - 100px);
    margin: 0 50px; } }
@media (min-width: 1300px) {
  .container {
    width: 1200px;
    margin: 0 auto; } }
.hidden {
  display: none; }

/*---------------------------------------------- base */
* {
  box-sizing: border-box; }

html {
  font-size: 125%;
  line-height: 1.5em; }

body {
  margin: 0;
  background: var(--background) url("../images/backgrounds/sos.png"); }

header, footer {
  color: var(--primary);
  background: var(--secondary); }

footer {
  text-align: center; }

a, a:link, a:visited {
  color: #ed931d;
  text-decoration: none; }

a:hover, a:active {
  color: #35c187;
  text-decoration: none; }

h1 {
  margin: 0;
  line-height: 1em;
  font-size: 2em; }

p {
  margin: 1.5rem 0; }
  p:first-child {
    margin-top: 0;
  }

ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
  clear: none; }

img {
  padding: 10px;
  background-color: #fff;}

/*------------------ form styles */
form {
  margin-top: 10px; }
  form input, form select, form textarea {
    font-size: 16px;
    padding: 3px 5px; }
  form input[type="text"], form input[type="email"], form input[type="password"], form input[type="url"], form input[type="number"], form select, form textarea {
    box-sizing: border-box;
    border: 1px solid #aaa;
    border-radius: 2px; }
  form input[type="file"] {
    padding-left: 0; }
  form span.current-image {
    display: block;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100%;
    overflow: hidden; }
  form span.current-image.image-selected {
    width: 250px;
    height: 188px; }

/*---------------------------------------------- main styling */
header {
  overflow: visible;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  background: whitesmoke; }
  header .container {
    padding-bottom: 0;
    padding-top: 0; }
  header nav {
    padding-bottom: 20px;
    margin: 0 -1em; }
    header nav ul {
      text-align: center; }
      header nav ul li {
        line-height: em;
        display: inline-block;
        padding: 0 0.5em; }
        header nav ul li a:link, header nav ul li a:visited {
          color: #ed931d; }
        header nav ul li a:hover, header nav ul li a:active {
          color: #35c187; }
  header a {
    color: inherit;
    text-decoration: none; }
  header h1 {
    line-height: 0;
    margin: 0 auto;
    max-width: 90%;
    text-align: center; }
    header h1 a:link, header h1 a:visited, header h1 a:hover, header h1 a:active {
      color: inherit; }
    header h1 a {
      font-size: 0; }
    header h1 img {
      background: none;
      border: none;
      box-shadow: none;
      padding: 10px 0 0 0;
      margin: 0;
      width: 100%;
      max-width: 500px; }
  header .tagline {
    clear: both;
    font-size: 1.25em;
    padding: 0 10px 7px;
    margin: 0;
    text-align: center; }

/* -------------------------------------- Footer */
footer {
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.3);
  background: #27353d;
  text-align: center;
  /*----------------------- Contact Form ---*/
  /* ----------------------------------------- Copyright */ }
  footer .footer1, footer .footer2, footer .footer3 {
    margin: 0 0 20px;
    float: left;
    width: 100%; }
  footer .footer1 {
    margin-bottom: 0; }
  footer .industry-links ul li {
    display: inline-block;
    font-size: 1.5em;
    padding: 6px; }
  footer h3, footer h4 {
    color: whitesmoke; }
  footer h2 {
    color: #eee;
    margin-bottom: 0; }
  footer img {
    background: none;
    border: none;
    box-shadow: none;
    float: left; }
  footer p {
    color: rgba(88, 209, 159, 0.7);
    font-variant: normal;
  margin: 0; }
  footer span {
    display: block;
    margin: 0;
    padding: 0; }
  footer hr {
    border: 2px solid rgba(53, 193, 135, 0.5);
    clear: both;
    margin: 0;
    border-bottom: none; }
    footer hr.double {
      height: 3px;
      border: 1px solid rgba(53, 193, 135, 0.5);
      border-right: none;
      border-left: none; }
  footer form {
    position: relative;
    font-size: 0.8em;
    line-height: 1.875em; }
    footer form input, footer form textarea {
      font-style: italic;
      width: 100%;
      background-color: #eee;
      font-size: 1em;
      padding: 5px;
      border-radius: 0;
      border: none;
      margin-bottom: 1.25em;
      line-height: 1.875em; }
    footer form textarea {
      height: 10em;
      margin-bottom: 1em; }
    footer form :-moz-placeholder {
      color: #ed931d; }
    footer form ::-moz-placeholder {
      color: #ed931d; }
    footer form ::-webkit-input-placeholder {
      color: #ed931d; }
    footer form button {
      font-size: 1em;
      width: 8.75em;
      display: block;
      border: none;
      margin: 0 auto 1em;
      line-height: 1.875em;
      background: #ed931d;
      color: #fff; }
      footer form button:hover {
        cursor: pointer;
        color: #fff;
        background: #35c187; }
  footer .errors, footer .success {
    margin-bottom: 1em; }
    footer .errors p, footer .success p {
      color: #ed931d;
      margin: 1em 0 0 0;
      text-align: center; }
  footer ul.navigation {
    margin: 15px 0 0;
    height: 30px;
    width: 100%;
    text-align: center; }
    footer ul.navigation li {
      display: inline-block;
      padding: 0 10px; }
      footer ul.navigation li:last-child {
        margin-right: 0; }
  footer ul + p {
    font-size: 0.8em;
    line-height: 30px;
    margin: 15px 0 0 0; }

/* ------------------------------------- Main */
.about-img, .pseudo-website {
  width: 100%;
  margin-bottom: 0; }

.job-title {
  color: #35c187; }

/* ----------------------------------- Work Page */
.portfolio-pieces {
  margin: 0 auto;
  overflow: hidden; }

.piece {
  width: 100%;
  height: auto;
  position: relative;
  float: left;
  margin-bottom: 40px;
  visibility: hidden; }
  .piece * {
    position: absolute;
    visibility: visible;
    margin: 0;
    padding: 0; }
  .piece .inner {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: auto;
    padding-top: 80%;
    background: whitesmoke;
    border-radius: 2px;
    overflow: hidden;
    text-align: center; }
    .piece .inner h2, .piece .inner p {
      width: 100%;
      padding: 0 5%;
      color: #fff;
      background-color: #35c187;
      background-color: rgba(53, 193, 135, 0.8);
      font-family: 'Signika', sans-serif;
      -webkit-transition: top .2s ease-out, bottom .2s ease-out, .2s padding .2s ease-out;
      -ms-transition: top .2s ease-out, bottom .2s ease-out, .2s padding .2s ease-out;
      transition: top .2s ease-out, bottom .2s ease-out, .2s padding .2s ease-out; }
    .piece .inner h2 {
      bottom: 110%;
      font-size: 1.5em;
      padding-top: 100%;
      padding-bottom: 100%; }
      .piece .inner h2:after {
        content: '';
        display: block;
        position: absolute;
        bottom: -1px;
        left: 45%;
        width: 10%;
        text-align: center;
        z-index: 1;
        border-bottom: 2px solid #fff; }
    .piece .inner p {
      padding-top: 50%;
      top: 110%;
      padding-bottom: 50%; }
    .piece .inner img {
      padding: 0;
      margin-bottom: 0;
      display: block;
      top: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: top center;
      box-shadow: none;
      border-radius: 2px; }
    .piece .inner a {
      top: 0;
      right: 0;
      left: 0;
      bottom: 0;
      z-index: 100; }
      .piece .inner a:hover ~ h2 {
        bottom: 50%;
        padding-bottom: 10%; }
      .piece .inner a:hover ~ p {
        top: 50%;
        padding-top: 10%; }

/* ----------------------------------- Single Piece */
.stack {
  width: 100%;
  height: auto;
  position: relative;
  float: left;
  margin-bottom: 40px; }
  .stack .main-page {
    position: relative;
    width: 100%;
    z-index: auto;
    padding-top: 70%;
    background: whitesmoke;
    /*border: 1px solid #ddd;*/
    box-shadow: 1px 1px 2px -1px rgba(130, 130, 130, 0.25);
    border-radius: 2px; }
    .stack .main-page:before, .stack .main-page:after {
      box-shadow: 1px 1px 2px -1px rgba(130, 130, 130, 0.25);
      border-radius: 2px;
      background: whitesmoke;
      border: 1px solid #ddd;
      height: 100%;
      position: absolute;
      width: 100%;
      visibility: visible;
      content: '';
      display: block;
      top: 0; }
    .stack .main-page:before {
      transform: rotate(2deg);
      width: 100%;
      z-index: -10; }
    .stack .main-page:after {
      transform: rotate(-2deg);
      width: 100%;
      z-index: -5; }
    .stack .main-page a {
      top: 0;
      right: 0;
      left: 0;
      bottom: 0;
      position: absolute; }
      .stack .main-page a:hover {
        opacity: 0.75; }
      .stack .main-page a img {
        padding: 0;
        margin-bottom: 0;
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: top center;
        box-shadow: none;
        border-radius: 2px; }

.single-piece p {
  margin-bottom: 0.75em;
  margin-top: 0.75em; }
.single-piece h2 {
  margin-bottom: 0.75em;
  margin-top: 0; }
.single-piece ul li {
  list-style-type: none; }
  .single-piece ul li:before {
    content: '\f046';
    font-family: 'FontAwesome';
    display: inline-block;
    width: 20px;
    padding-right: 10px; }

.reuben p {
  margin-bottom: 0.5em; }

.pseudo-website {
  border-top-right-radius: 5px;
  border-top-left-radius: 5px;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 0.8em;
  margin-bottom: 2em; }
  .pseudo-website .pseudo-window {
    position: relative;
    border: 2px solid #2a996b;
    border-top-right-radius: 5px;
    border-top-left-radius: 5px;
    background: whitesmoke;
    padding-bottom: 70%; }
    .pseudo-website .pseudo-window a.pseudo-viewport {
      top: 40px;
      right: 0;
      left: 0;
      bottom: 0;
      position: absolute; }
    .pseudo-website .pseudo-window img {
      border-top: 2px solid #2a996b;
      padding: 0;
      margin-bottom: 0;
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      box-shadow: none;
      object-position: top center; }
      .pseudo-website .pseudo-window img:hover {
        opacity: 0.75; }
  .pseudo-website .website-address {
    border: 1px solid rgba(85, 85, 85, 0.8);
    margin: 0.2em 3em 0.2em 5em;
    border-radius: 2px;
    padding-left: 5px;
    text-align: left;
    background: white;
    box-shadow: inset 1px 1px 2px #888;
    overflow: hidden;
    white-space: nowrap;
    max-height: 32px;
    width: calc(100% - 8em); }
    .pseudo-website .website-address:hover {
      opacity: 0.75; }
    .pseudo-website .website-address a, .pseudo-website .website-address a:link, .pseudo-website .website-address a:visited {
      color: #ed931d;
      text-decoration: none; }
    .pseudo-website .website-address a:hover, .pseudo-website .website-address a:active {
      color: #35c187; }
  .pseudo-website .pseudo-close-button {
    color: #2a996b;
    position: absolute;
    top: 0.25em;
    right: 0.5em; }
  .pseudo-website .pseudo-interactions {
    float: left;
    padding-left: 10px;
    padding-top: 0.25em;
    color: #2a996b; }
    .pseudo-website .pseudo-interactions i {
      padding-right: 10px; }
    .pseudo-website .pseudo-interactions .fa-arrow-right {
      color: rgba(97, 129, 105, 0.5); }

@media (min-width: 700px) {
  header nav {
    position: absolute;
    top: 34px;
    right: 0;
    margin: 0 20px 0 0; }
    header nav ul {
      text-align: left; }
  header h1 {
    text-align: left;
    margin: 0; }
    header h1 img {
      float: left;
      max-width: 400px; }
  header .tagline {
    text-align: left; }

  .about-img, .pseudo-website {
    float: left;
    margin-right: 20px; }

  .about-img {
    width: 350px;
    margin-top: 1.5em;
    margin-bottom: 20px; }

  .pseudo-website {
    width: 500px;
    margin-bottom: 0; }

  .stack {
    margin-right: 30px;
    margin-bottom: 30px; }
    .stack.design-piece {
      width: 500px;
      height: 350px; }

  .piece {
    width: calc(50% - 10px);
    margin-right: 20px;
    margin-bottom: 20px; }
    .piece:nth-child(2n) {
      margin-right: 0; }
    .piece:nth-child(2n+1) {
      clear: both; }

  footer .footer1 {
    width: 40%;
    padding: 0 20px 0 0;
    border-right: 3px solid rgba(53, 193, 135, 0.5); }
  footer .footer2, footer .footer3 {
    border-right: none;
    width: 60%;
    padding: 0 0 0 20px; }
    footer .footer2 h2, footer .footer3 h2 {
      margin-bottom: 20px; }
  footer .footer2 {
    margin-bottom: 20px; } }
@media (min-width: 900px) {
  .piece {
    width: calc(33.33333333333% - 13.33333333333333px); }
    .piece:nth-child(2n) {
      margin-right: 20px; }
    .piece:nth-child(3n) {
      margin-right: 0; }
    .piece:nth-child(3n+1) {
      clear: both; }
    .piece:nth-child(2n+1) {
      clear: none; } }
@media (min-width: 1100px) {
  header h1 img {
    padding-bottom: 10px; }
  header .tagline {
    margin-top: 1em;
    padding-top: 7px;
    clear: none;
    float: left; }
  header nav {
    bottom: 0;
    padding-bottom: 18px;
    top: auto; } }

/* New styles slapped in as of 2025 */
main {
  min-height: calc(100vh - 82px - 70px);
}
header {
  position: sticky !important;
  top: 0 !important;
  width: 100%;
  height: 82px;
  z-index: 1000;
}

/* Figure gallery */
.project-highlights {
    display: grid;
    grid-template-columns: auto;
    grid-auto-rows: 1fr;
    justify-content: stretch;
    align-items: stretch;
    margin-bottom: 20px;
    gap: 1em;
}
.project-highlights li {
  position: relative;
}
.project-highlights li:after {
  content: "\f08e";
  display:block;
  position: absolute;
  top: 8px;
  right: 8px;
  font: normal normal normal 1.5em/1 FontAwesome;
  color: var(--primary);
}
.project-highlights li.arven:after {
  color: white;
}
.project-highlights li a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
}
.project-highlights li:hover {
  box-shadow: 0 1px 5px rgba(0, 0, 0);
}

.project-highlights figure {
    margin: 0;
    padding: 0;
    position: relative;
    height: 100%;
}
.project-highlights li.arven img {
  background: #b65747;
}

.project-highlights figcaption {
    padding: 0.5em;
    color: var(--background);
    background: var(--primary);
    width: 100%;
}
.project-highlights img {
    max-width: 100%;
    display: block;
}
.fig-title {
  font-weight: bold;
  display: block;
  margin-bottom: 0.5em;
}
@media screen and (min-width: 860px) {
    .project-highlights {
      grid-template-columns: repeat(3, 1fr);
    }

    .project-highlights figure {
        background: var(--primary);
    }
    .project-highlights li:hover figure, .project-highlights li:focus figure {
        padding-bottom: 2.5em;
    }

    .project-highlights figure figcaption {
        height: 2.5em;
        max-height: 2.5em;
        margin-bottom: auto;
        text-overflow: ellipsis;
        overflow: hidden;
        -webkit-transition: max-height .7s ease;
        -moz-transition: max-height .7s ease;
        -ms-transition: max-height .7s ease;
        -o-transition: max-height .7s ease;
        transition: max-height .7s ease;
        border-top: 1px solid var(--primary);
    }
    .project-highlights li:hover figcaption, .project-highlights li:focus figcaption {
        height: auto;
        position: absolute;
        bottom: 0;
        max-height: calc(100% + 2.5em);
        width: 100%;
    }
}
