@import 'base/reset.css';
@import 'base/base.less';

@card_internal_padding: 24px;

body {
background-color: #8c9eff;
  &.sidenav-open {
    overflow: hidden;
  }
}

/* Sidenav area */

md-list-item > button {
  width:100%;
  text-align:left !important;
}

  md-list .md-button.selected {
    color: #03a9f4;
    background-color: #FFFDD9;
  }

  md-sidenav  md-list {
    padding: 0px 0px 8px 0px;
  }

base-view {
  display: block;
  height: 100%;
}

.md-padding {
  padding: 0 !important;
}

md-content {
  background-color: @background_color;
}

md-toolbar:not(.md-menu-toolbar) {
  background-color: #fff;
  border-bottom: 1px solid rgba(219, 219, 219, 1);
  height: @header_height;
  width: 100%;

  .md-toolbar-tools {
    height: @header_height;
    max-height: @header_height;
  }

  .logo-container {
    align-items: center;
    display: flex;
    flex: 100;
    height: 100%;
    justify-content: center;
    left: 50%;
    position: absolute;
    right: 50%;
  }

  .logo {
    height: 60%;
    max-height: 45px;
    width: auto;

    &.mobile {
      max-width: 75px;
    }
  }

  .md-button:not(.md-raised) {
    color: @gray_shrine;

    md-icon {
      color: @gray_shrine;
    }
  }

  .mini-toolbar {
    .logo {
      height: 20px;
    }
  }
}

.store-info {
  align-items: center;
  display: flex;
  flex-direction: row;
  margin-top: 2em;
  position: absolute;
  z-index: 2;

  .avatar {
    border-radius: 50%;
    height: 40px;
    margin-right: 10px;
    overflow: hidden;
    width: 40px;

    img {
      height: 100%;
      width: auto;
    }
  }

  p {
    color: rgba(0,0,0,.54);
    font-size: 11px;
  }
}

.price-tag {
  padding: @card_internal_padding @card_internal_padding;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 2;

  p {
    font-size: 18px;
    font-weight: 500;
    margin: 0;
    padding: 0;
  }

  .featured & {
    background-color: rgba(254, 224, 224, 1);
    padding: @card_internal_padding 35px;

    p {
      font-size: 20px;
    }
  }
}

md-tabs {
  md-tabs-wrapper {
    border: none;
    border-color: transparent;
    height: @tabs_height;
    background-color: white;
  }

  &.no-show {
    md-tabs-wrapper {
      display: none;
    }
  }

  .md-tab.md-active {
    color: rgba(0, 0, 0, .9);
  }

  md-ink-bar {
    background: @blue_shrine;
    color: @blue_shrine;
  }
}

main-view {
  md-toolbar:not(.md-menu-toolbar) {
    border: none;
  }

  md-tabs md-tabs-wrapper {
    border-color: rgba(0,0,0,0.12);
  }
}

main-view md-sidenav, main-view md-sidenav.md-locked-open {
  .box-shadow(@shadow-16dp);
  height: 100%;
  left: 0;
  max-width: 320px;
  position: fixed;
  top: 0;
  width: ~'calc(100% - 56px)';

  md-toolbar:not(.md-menu-toolbar) {
    background-color: white;
    border-bottom: 1px solid rgba(0,0,0,.1);
    box-shadow: none;
  }

  .header {
    align-items: center;
    display: flex;
    flex-direction: row;
    margin: 0 20px;
    padding: 20px 0 35px 15px;

    .md-button md-icon {
      color: @dark_shrine;
    }

    .avatar-container {
      border-radius: 50%;
      height: 48px;
      overflow: hidden;
      position: relative;
      width: 48px;

      .image {
        background-image: url('https://www.gstatic.com/angular/material-adaptive/pesto/avatar.jpg');
        background-repeat: no-repeat;
        background-size: 100px;
        background-position: -38px -5px;
        border-radius: 50%;
        height: 100%;
        width: 100%;
      }
    }

    .contact-info {
      .name {
        font-size: 20px;
        font-weight: 500;
        margin-left: 20px;
      }
    }
  }

  .options {
    li {
      color: @gray_shrine;
      cursor: pointer;
      font-size: 15px;
      font-weight: 500;
      outline: none;
      margin: 0;
      padding: 16px;
      text-transform: capitalize;

      &.selected {
        color: @dark_shrine;
      }

      &[disabled] {
        cursor: not-allowed;
        opacity: .5;
      }
    }
  }

  md-content {
    background-color: white;
    position: relative;
  }

  .social-container {
    bottom: 0;
    display: flex;
    padding: 16px;
    position: absolute;
    width: 100%;

    .md-button {
      margin: 0;

      img {
        height: auto;
        margin: auto 16px auto 0;
        width: 24px;
        vertical-align: middle;
      }
    }
  }
}

md-sidenav.md-locked-open, md-sidenav.md-locked-open.md-closed, md-sidenav.md-locked-open.md-closed.md-sidenav-left, md-sidenav.md-locked-open.md-closed {
  display: none;

  .sidenav-open & {
    display: block;
  }
}

md-sidenav.md-locked-open {
  z-index: -1;
  visibility: hidden;

  md-toolbar:not(.md-menu-toolbar) {
    background-color: white;
  }

  .sidenav-open & {
    visibility: visible;
    z-index: 50;
  }
}

.hero-image {
  align-items: center;
  background-color: #fff;
  display: flex;
  height: @hero_height;
  justify-content: flex-end;
  position: relative;

  .image {
    background-image: url('https://www.gstatic.com/angular/material-adaptive/shrine/chair.png');
    background-repeat: no-repeat;
    background-size: cover;
    height: 100%;
    left: 0;
    position: absolute;
    width: 50%;
  }

  .info {
    display: flex;
    flex-direction: column;
    position: relative;
    margin-right: 5em;
    width: 40em;

    h3 {
      color: @dark_shrine;
      font-family: 'Abril Fatface', cursive;
      font-size: 6em;
      font-weight: 300;
      line-height: 1em;
      margin: 0;
    }

    .description-flex {
      display: flex;
    }

    .description-content {
      flex: 1;
      position: relative;

      & > p {
        color: rgba(0,0,0,.54);
        font-size: 1em;
        line-height: 1.4em;
        margin-top: 3em;
        position: relative;

        &:before {
          background-color: #31f0ef;
          content: "";
          height: 8px;
          left: 0;
          line-height: 21px;
          position: absolute;
          top: -16px;
          width: 100px;
        }
      }
    }
  }

  .store-info {
    position: relative;
  }
}

product-card {
  display: block;
  height: 100%;
  width: 100%;

  .product-container {
    height: 100%;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    position: relative;
    z-index: 1;
  }

  .product-image {
    align-items: center;
    background-color: transparent;
    display: flex;
    justify-content: center;
    height: 100%;
    margin: 0 30px;
    max-height: 450px;
    overflow: hidden;
    width: 18em;

    img {
      height: auto;
      opacity: 1;
      width: 85%;
    }

    .featured & {
      width: 30em;
    }
  }


  .card-footer {
    background-color: transparent;

    .store-info {
      bottom: @card_internal_padding;
      left: @card_internal_padding;
    }
  }

  .backdrop {
    .transition(z-index, 150ms, 0, linear);
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: -1;

    .header {
      margin: @card_internal_padding - 12px;
      position: relative;
      z-index: 4;

      .md-icon-button {
        .transform(translate3d(0, 8px, 0));
        .transition(~'transform, opacity', 150ms, 0, cubic-bezier(0.0, 0.0, 0.2, 1));
        margin: 0;
        opacity: 0;

        md-icon {
          color: rgba(117, 117, 117, 1);
        }

        &.added {
          md-icon {
            color: rgba(22, 240, 240, 1);
          }
        }
      }
    }

    .container {
      align-items: center;
      display: flex;
      height: 100%;
      justify-content: center;
      left: 0;
      position: absolute;
      text-align: center;
      top: 0;
      width: 100%;
      z-index: 2;

      h4 {
        .transition(~'transform, opacity', 150ms, 0, cubic-bezier(0.0, 0.0, 0.2, 1));
        .transform(translate3d(0, 8px, 0));
        color: @dark_shrine;
        font-family: 'Abril Fatface', cursive;
        font-size: 32px;
        font-weight: 300;
        opacity: 0;
      }
    }

    .footer {
      bottom: 0;
      margin: 0 auto;
      position: absolute;
      width: 0 50%;
    }
  }
}

main-view {
  product-card .product-image img {
    width: 100%;
  }
}

product-grid {
  display: block;
  height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';
  width: 100%;

  .grid-container {
    background-color: inherit;
    display: table;
    height: 100%;
    margin: 0 auto;
    width: 100%
  }

  md-grid-list md-grid-tile {
    background-color: #fff;
    cursor: pointer;
    outline: none;

    &:hover {
      .box-shadow(@shadow-4dp);
      .transition(box-shadow, 225ms, 0, cubic-bezier(0.0, 0.0, 0.2, 1));

      .product-image img {
        opacity: .5;
      }

      .container h4 {
        .transition(~'transform, opacity', 225ms, 0, cubic-bezier(0.0, 0.0, 0.2, 1));
        .transform(translate3d(0, 0, 0));
        opacity: 1;
      }

      .backdrop {
        z-index: 10;

        .md-icon-button {
          .transition(~'transform, opacity', 150ms, 60ms, cubic-bezier(0.0, 0.0, 0.2, 1));
          .transform(translate3d(0, 0, 0));
          opacity: 1;

          &:first-child {
            .transition(~'transform, opacity', 150ms, 30ms, cubic-bezier(0.0, 0.0, 0.2, 1));
          }
        }
      }
    }
  }
}

details-view {

  .details-container {
    display: flex;
    flex-direction: column;
    height: inherit;
    width: 100%;
  }

  .items-container {
    background-color: @background_color_gray;
    max-height: 100%;
    position: relative;
  }

  .main-container {
    align-items: center;
    background-color: rgba(255, 255, 255, 1);
    display: flex;
    //padding: 64px 0;
    position: relative;

    md-content {
      background-color: rgba(255, 255, 255, 1);
    }

    .image-content {
      align-items: center;
      display: flex;
      max-height: 450px;
      overflow: hidden;
      margin: 0 40px 0 55px;

      width: 40%;

      img {
        display: block;
        margin: auto;
        max-height: 100%;
        max-width: 100%;
        width: auto;
      }
    }

    .info-content {
      align-items: top;
      display: flex;
      flex-direction: row;
      margin: 0;
      max-width: 400px;
      width: auto;
      overflow: initial;

      .left-col {

      }

      h3 {
        color: @dark_shrine;
        font-family: 'Abril Fatface', cursive;
        font-size: 2.5em;
        font-weight: 300;
        line-height: 48px;
        margin-bottom: 20px;
      }

      .description {
        color: @material_dark;
        font-size: .85em;
        font-weight: 300;
        line-height: 1.75em;
      }
    }

    .select-content {
      align-items: center;

      .md-fab {
        background-color: @blue_shrine;
        color: @material_dark;
        height: 56px;
        width: 56px;

        md-icon {
          color: @material_dark;
        }

        &[disabled] {
          background-color: rgba(0,0,0,0.12);
          cursor: not-allowed;
        }

        &.mobile {
          bottom: 25px;
          right: 25px;
          position: fixed;
        }

        &:hover, &.md-focused {
          background-color: @blue_shrine;
        }
      }
    }

    .store-details {
      border-top: 1px solid @material_gray;
      margin-top: 20px;
      padding-top: 20px;

      h5 {
        color: @dark_shrine;
        font-size: .85em;
        font-weight: 500;
        margin-bottom: 10px;
      }

      p {
        color: @material_dark;
        font-size: .85em;
        font-weight: 300;
        line-height: 1.75em;
      }
    }
  }

  md-select {
    //border: 1px solid @material_gray;
    height: 45px;
    margin: 25px 0 20px;
    //padding: 0px 0px 5px 0;
    width: 180px;

    .md-select-value {
      border: none;
      padding-bottom: 0;

      span {
        color: @material_dark;
        font-size: 14px;

        &:first-child {
          padding-left: 10px;
        }
      }
    }

    &:not([disabled]):focus {
      padding-bottom: 5px;

      .md-select-value {
        border-bottom: none;
      }
    }
  }
}



/**
 * Media queries
 */

/*** Desktop queries ***/

/* Window XXLG - 1600px */
@media only screen
  and (min-width: 1600px) {

  @hero_height: 640px;

  body {
    font-size: 110%;
  }

  main-view {
    md-toolbar:not(.md-menu-toolbar) {
      height: 128px;
    }
  }

  .hero-image {
    height: @hero_height;
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';
  }

  details-view {
    overflow: hidden;

    .details-container {
      flex-direction: row-reverse;
      height: ~'calc(100% - 64px)';
    }

    .items-container {
      flex: 1 1 35%;
      max-width: 35%;
      overflow-y: auto;
    }

    .main-container {
      align-items: flex-start;
      flex: 1 1 65%;
      justify-content: center;
      max-width: 65%;
      //padding: 128px 0 64px 0;

      .image-content {
        margin: 0;
        width: 40%;

        img {
          margin-left: 0;
        }
      }

      .info-content {
        .description {
          font-size: 13px;
        }
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}

/* Window XLG - 1440px */
@media only screen
  and (max-width: 1599px)
  and (min-width: 1440px) {

  @hero_height: 576px;

  .hero-image {
    height: @hero_height;

    .image {
      left: 3%;
      width: 40%;
    }
  }

  main-view {
    md-toolbar:not(.md-menu-toolbar) {
      height: 128px;
    }
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';
  }

  details-view {
    overflow: hidden;

    .details-container {
      flex-direction: row-reverse;
      height: ~'calc(100% - 64px)';
    }

    .items-container {
      flex: 1 1 35%;
      max-width: 35%;
      overflow-y: auto;
    }

    .main-container {
      align-items: flex-start;
      flex: 1 1 65%;
      justify-content: center;
      max-width: 65%;
      //padding: 128px 0 64px 0;

      .image-content {
        margin: 0;
        width: 40%;

        img {
          margin-left: 0;
        }
      }

      .info-content {
        .description {
          font-size: 13px;
        }
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}


/* Window LG - 1280px  */
@media only screen
  and (max-width: 1439px)
  and (min-width: 1280px) {

  @hero_height: 512px;

  body {
    font-size: 90%;
  }

  main-view {
    md-toolbar:not(.md-menu-toolbar) {
      height: 128px;
    }
  }

  .hero-image {
    height: @hero_height;

    .image {
      left: 3%;
      width: 40%;
    }

    .info {
      width: 40em;
    }
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';
  }

  details-view {
    overflow: hidden;

    .details-container {
      flex-direction: row-reverse;
      height: ~'calc(100% - 64px)';
    }

    .items-container {
      flex: 1 1 35%;
      max-width: 35%;
      overflow-y: auto;
    }

    .main-container {
      align-items: flex-start;
      flex: 1 1 65%;
      justify-content: center;
      max-width: 65%;
      //padding: 128px 0 64px 0;

      .image-content {
        margin: 0;
        width: 40%;

        img {
          margin-left: 0;
        }
      }

      .info-content {
        .description {
          font-size: 13px;
        }
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}


/* Window MED - 960px */
@media only screen
  and (max-width: 1023px)
  and (min-width: 960px) {

  @hero_height: 480px;

  body {
    font-size: 65%;
  }

  main-view {
    md-toolbar:not(.md-menu-toolbar) {
      height: 128px;
    }
  }

  .hero-image {
    height: @hero_height;

    .image {
      width: 50%;
    }

    .info .description-content {
      flex: 2;

      & > p {
        font-size: 1.2em;
      }
    }
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';
  }

  details-view {
    .items-container {
      left: 0;
      max-width: 100%;
      width: 100%;
    }

    .main-container {
      max-width: 100%;
      //padding: 128px 0;
      position: relative;
      width: 100%;

      .info-content {
        h3 {
          font-size: 3.5em;
        }

        .description {
          font-size: 13px;
        }
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}


/* Window SM - 840px */
@media only screen
  and (max-width: 959px)
  and (min-width: 840px) {

  @hero_height: 420px;

  body {
    font-size: 58%;
  }

  main-view {
    md-toolbar:not(.md-menu-toolbar) {
      height: 128px;
    }

    product-card .product-image {
      width: 26em;

      img {
        width: 100%;
      }
    }
  }

  .hero-image {
    height: @hero_height;

    .image {
      left: -1%;
      width: 50%;
    }

    .info .description-content {
      flex: 2;

      & > p {
        font-size: 1.4em;
      }
    }
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';
  }

  details-view {
    .items-container {
      left: 0;
      max-height: none;
      max-width: 100%;
      width: 100%;
    }

    .main-container {
      max-width: 100%;
      //padding: 128px 0;
      position: relative;
      width: 100%;

      .info-content {
        h3 {
          font-size: 3.75em;
        }

        .description {
          font-size: 13px;
        }
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}


/* Window XSM - 600px */
@media only screen
  and (max-width: 719px)
  and (min-width: 600px) {

  @hero_height: 500px;

  body {
    font-size: 56%;
  }

  main-view {
    product-card .product-image {
      width: 24em;

      img {
        width: 100%;
      }
    }
  }


  .hero-image {
    height: @hero_height;

    .image {
      left: -35%;
      width: 80%;
    }

    .info {
      margin-right: 1em;

      .description-content {
        flex: 3;

        & > p {
          font-size: 1.5em;
        }
      }
    }
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';
  }

  details-view {
    .main-container {
      flex-direction: column;
      max-width: 100%;
      padding: 64px 0 128px 0;
      position: relative;
      width: 100%;

      .image-content {
        margin: 0 30px 24px 30px;
        width: 60%;
      }

      .info-content {
        max-width: 420px;

        h3 {
          font-size: 3.75em;
        }

        .description {
          font-size: 13px;
        }
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}


/* Window XS - 480px */
@media only screen
  and (max-width: 599px)
  and (min-width: 480px) {

  @hero_height: 400px;

  body {
    font-size: 56%;
  }

  .hero-image {
    height: @hero_height;

    .image {
      left: -35%;
      width: 80%;
    }

    .info {
      margin-right: 1em;

      .description-content {
        flex: 4;

        & > p {
          font-size: 1.5em;
        }
      }
    }
  }

  product-card .card-footer .store-info {
    bottom: 8px;
    left: 8px;
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';
  }

  details-view {
    .main-container {
      flex-direction: column;
      margin: 64px 0 128px 0;
      max-width: 100%;
      padding: 0;
      position: relative;
      width: 100%;

      .image-content {
        margin: 0 30px 24px 30px;
        width: 60%;
      }

      .info-content {
        max-width: 350px;

        h3 {
          font-size: 3.5em;
        }

        .description {
          font-size: 13px;
        }
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}

/* Mobile Special - 361px */
@media only screen
  and (max-width: 479px)
  and (min-width: 361px) {

  body {
    font-size: 38%;
  }

  .hero-image {
    .image {
      left: -35%;
      width: 80%;
    }

    .info {
      width: 28em;

      .description-content {
        flex: 3;

        & > p {
          font-size: 1.8em;
        }
      }
    }
  }

  details-view {
    .main-container {
      flex-direction: column;
      margin: 64px 0 128px 0;
      max-width: 100%;
      padding: 0;
      position: relative;
      width: 100%;

      .image-content {
        margin: 0 30px 24px 30px;
        width: 60%;
      }

      .info-content {
        max-width: 350px;

        h3 {
          font-size: 3.5em;
        }

        .description {
          font-size: 13px;
        }
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}

/*** Mobile queries ***/

/* Tablet Landscape - 1024px */
@media only screen
  and (max-width: 1279px)
  and (min-width: 1024px) {

  @hero_height: 512px;
  @margin_tile: 8px;
  @card_internal_padding: 16px;

  body {
    font-size: 92%;
  }

  main-view {
    product-card .product-image {
      width: 26em;

      img {
        width: 100%;
      }
    }
  }


  product-card {
    .store-info {
      bottom: @card_internal_padding;
      left: @card_internal_padding;
    }

    .price-tag {
      padding: @card_internal_padding @card_internal_padding;

      .featured & {
        padding: @card_internal_padding 25px;
      }
    }
  }

  .hero-image {
    height: @hero_height;

    .image {
      left: -15%;
      width: 60%;
    }

    .info {
      .description-content {
        flex: 2;

        & > p {
          font-size: 1em;
        }
      }
    }
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';

    md-grid-list md-grid-tile {
      &:hover {
        box-shadow: none;

        .product-image img {
          opacity: 1;
        }

        .container h4 {
          .transform(none);
        }

        .backdrop {
          z-index: -1;

          .md-icon-button {
            .transform(none);
          }
        }
      }
    }
  }

  details-view {
    overflow: hidden;

    product-card .product-image {
      width: 26em;

      img {
        width: 100%;
      }
    }

    .items-container {
      overflow-y: auto;
    }
  }
}


/* Tablet Portrait - 720px */
@media only screen
  and (max-width: 839px)
  and (min-width: 720px) {

  @hero_height: 432px;
  @margin_tile: 8px;
  @card_internal_padding: 16px;

  body {
    font-size: 65%;
  }

  main-view {
    product-card .product-image {
      width: 26em;

      img {
        width: 100%;
      }
    }
  }

  product-card {
    .store-info {
      bottom: @card_internal_padding;
      left: @card_internal_padding;
    }

    .price-tag {
      padding: @card_internal_padding @card_internal_padding;

      .featured & {
        padding: @card_internal_padding 25px;
      }
    }
  }

  .hero-image {
    height: @hero_height;

    .image {
      left: -20%;
      width: 70%;
    }

    .info {
      .description-content {
        flex: 2;

        & > p {
          font-size: 1.3em;
        }
      }
    }
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';

    md-grid-list md-grid-tile {
      &:hover {
        box-shadow: none;

        .product-image img {
          opacity: 1;
        }

        .container h4 {
          .transform(none);
        }

        .backdrop {
          z-index: -1;

          .md-icon-button {
            .transform(none);
          }
        }
      }
    }
  }

  details-view {
    product-card .product-image {
      width: 18em;

      img {
        width: 100%;
      }
    }

    .items-container {
      left: 0;
      max-height: none;
      max-width: 100%;
      width: 100%;
    }

    .main-container {
      max-width: 100%;
      //padding: 128px 0;
      position: relative;
      width: 100%;

      .info-content {
        padding-right: 24px;

        h3 {
          font-size: 3.75em;
        }

        .description {
          font-size: 13px;
        }
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}


/* Handset Landscape - 600px */
@media only screen
  and (max-width: 600px)
  and (min-width: 0)
  and (orientation: landscape) {

  @header_height: 48px;
  @hero_height: 320px;
  @margin_tile: 8px;
  @card_internal_padding: 16px;

  body {
    font-size: 54%;
  }

  md-toolbar:not(.md-menu-toolbar) {
    height: @header_height;
  }

  .price-tag {
    .featured & {
      padding: 16px 25px;
    }
  }

  product-card {
    .store-info {
      bottom: @card_internal_padding;
      left: @card_internal_padding;
    }

    .price-tag {
      padding: @card_internal_padding @card_internal_padding;

      .featured & {
        padding: @card_internal_padding 25px;
      }
    }
  }

  .hero-image {
    height: @hero_height;

    .image {
      left: -10%;
      width: 55%;
    }

    .info {
      margin-top: 55px;

      h3 {
        font-size: 54px;
      }

      .description-content {
        flex: 3;

        & > p {
          font-size: 1.6em;
        }
      }
    }
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';

    md-grid-list md-grid-tile {
      box-shadow: @tile_box_shadow;

      &:hover {
        box-shadow: @tile_box_shadow;

        .product-image img {
          opacity: 1;
        }

        .container h4 {
          .transform(none);
        }

        .backdrop {
          z-index: -1;

          .md-icon-button {
            .transform(none);
          }
        }
      }
    }
  }

  details-view {
    product-card .product-image {
      width: 20em;

      img {
        width: 100%;
      }
    }

    .items-container {
      max-height: none;
      max-width: 100%;
      width: 100%;
    }

    .main-container {
      align-items: flex-start;
      flex-direction: row;
      max-width: 100%;
      padding: 48px 20px 56px 0;
      position: relative;
      width: 100%;

      .select-content .md-fab {
        bottom: 16px;
        position: fixed;
        right: 16px;
      }

      .info-content {
        h3 {
          font-size: 3.75em;
        }

        .description {
          font-size: 13px;
        }
      }

      .image-content {
        margin: 0;
        padding-left: 10px;
      }

      .store-details {
        h5, p {
          font-size: 13px;
        }
      }
    }
  }
}


/* Handset Portrait - 360px */
@media only screen
  and (max-width: 360px) {

  @header_height: 56px;
  @hero_height: 480px;
  @margin_tile: 8px;
  @card_internal_padding: 16px;

  body {
    font-size: 40%;
  }

  md-toolbar:not(.md-menu-toolbar) {
    height: @header_height;
  }

  .store-info .avatar {
    height: 25px;
    width: 25px;
  }

  product-card {
    .product-image {
      .featured & {
        width: 26em;
      }
    }

    .store-info {
      bottom: @card_internal_padding;
      left: @card_internal_padding;
    }

    .price-tag {
      padding: @card_internal_padding @card_internal_padding;

      .featured & {
        padding: @card_internal_padding 25px;
      }
    }
  }

  .hero-image {
    align-items: flex-start;
    height: @hero_height;

    .image {
      left: -70%;
      width: 140%;
    }

    .info {
      margin-right: 1em;
      margin-top: 100px;
      width: 29em;

      h3 {
        font-size: 40px;
      }

      .description-content {
        flex: 4;

        & > p {
          font-size: 14px;
        }
      }
    }
  }

  product-grid {
    height: ~'calc(100% - @hero_height - @header_height - @tabs_height)';

    md-grid-list md-grid-tile {
      box-shadow: @tile_box_shadow;

      .product-image {
        width: 15em;
      }

      &:hover {
        box-shadow: @tile_box_shadow;

        .product-image img {
          opacity: 1;
        }

        .container h4 {
          .transform(none);
        }

        .backdrop {
          z-index: -1;

          .md-icon-button {
            .transform(none);
          }
        }
      }
    }
  }

  details-view {
    .main-container {
      flex-direction: column;
      margin: 56px 0;
      max-width: 100%;
      padding: 0;
      position: relative;
      width: 100%;

      .select-content .md-fab {
        position: fixed;
        right: 16px;
      }

      .image-content {
        margin: 0 30px 24px 30px;
        width: 60%;
      }

      .info-content {
        max-width: 350px;

        h3 {
          font-size: 32px;
        }

        .description {
          font-size: 14px;
        }
      }

      .store-details {
        h5, p {
          font-size: 14px;
        }
      }
    }
  }
}
