.aff-product-universal-box {
  border-width: 1px;
  border-style: solid;
  border-bottom: none;
  display: block;
  width: 100%;
  max-width: 800px;
  margin: 25px auto;
  box-sizing: border-box;
  clear: both;

  &-row {
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    flex: 1 0 100%;
    width: 100%;
  }

  &-column {
    padding: 25px;
    border-bottom-width: 1px;
    border-bottom-style: solid;

    &-full-width {
      flex: 1 0 100%;
      width: 100%;
      max-width: 100%;
    }

    &-half-width {
      flex: 1 0 50%;
      width: 50%;
      max-width: 50%;

      &:first-child {
        border-right-width: 1px;
        border-right-style: solid;
      }
    }
  }

  &-intro {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .aff-product {
    &-title {
      flex: 1 0 100%;
      margin: 0;
      font-size: 28px;
      line-height: 35px;
      margin-bottom: 20px;
      font-weight: bold;
    }

    &-tags {
      flex: 1 0 100%;
      display: flex;
      margin-bottom: 20px;

      &-item {
        min-width: 50px;
        text-align: center;
        box-sizing: border-box;
        padding: 5px 10px;
        margin-right: 10px;
        font-size: 11.2px;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        border-radius: 5px;
      }
    }

    &-review {
      flex: 1 0 auto;
      display: inline-flex;
      justify-self: flex-end;
      justify-content: center;
      align-items: flex-start;
      flex-direction: column;

      &-rating {
        height: 25px;

        &-star {
          padding: 0;
          margin: 0;
          width: 25px;
          height: 25px;
        }
      }

      &-votes {
        font-size: 14px;
        margin: 0;
      }
    }

    &-price {
      flex: 1 0 calc(40% - 10px);
      display: inline-flex;
      justify-self: flex-end;
      justify-content: flex-end;
      align-items: center;

      &-current {
        font-size: 25.2px;
      }

      &-old {
        font-size: 19.6px;
        text-decoration: line-through;
        margin-left: 10px;
        font-weight: lighter;
      }
    }

    &-thumbnail {
      display: block;
      width: 100%;
      max-width: 100%;
      height: auto;
      -webkit-box-shadow: none;
      box-shadow: none;
      object-fit: contain;
      padding: 0;
    }

    &-image-gallery {
      &-item {
        &-thumbnail {
          display: block;
          width: 100%;
          max-width: 100%;
          height: auto;
          -webkit-box-shadow: none;
          box-shadow: none;
          object-fit: contain;
          padding: 0;
        }
      }
    }

    &-attributes {
      margin-bottom: 10px;
      width: 100%;

      &-choices {
        list-style: none;
        width: 100%;
        margin: 0;

        &:last-child {
          margin-bottom: 0;
        }

        &-list {
          display: flex;
          flex-flow: row wrap;
          padding: 0;
        }
      }

      &-choice {
        list-style: none;
        border-width: 1px;
        border-style: solid;
        padding: 5px 10px;
        margin: 0 10px 10px 0;
        min-width: 50px;
        text-align: center;

        &.unreachable {
          opacity: 0.5;
          border-style: dotted;
        }

        &:first-child {
          margin-left: 0;
        }

        &-list {
          display: flex;
          flex-flow: row wrap;
          padding: 0;
        }

        &-link {
          text-decoration: none;
        }
      }
    }

    &-details {
      border: none;

      &-none {
        font-size: 14px;
        text-align: center;
      }

      &-item {
        font-size: 14px;
        border: none;

        &-name, &-value {
          line-height: 28px;
        }

        &-name {
          font-weight: bold;
        }

        &-value {
          &-file {
            a {
              text-decoration: none;
            }
          }

          &-boolean {
            &-check, &-cross {
              margin-top: -5px;
              vertical-align: middle;
            }
          }
        }

        td {
          border: none;
          border-bottom-width: 1px;
          border-bottom-style: solid;
          padding: 5px 10px;
          box-sizing: border-box;
          text-align: left;
          background-color: transparent !important;
        }

        &:last-child {
          td {
            border-bottom: none
          }
        }
      }
    }

    &-shops {
      &-item {
        flex: 1 0 100%;
        width: 100%;
        box-sizing: border-box;
        padding: 25px 0;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        border-bottom-width: 1px;
        border-bottom-style: solid;

        &:first-child {
          padding-top: 0;
        }

        &:last-child {
          border-bottom: none;
          padding-bottom: 0;
        }

        &-brand {
          box-sizing: border-box;
          width: 40%;
          display: flex;
          justify-content: center;
          align-items: center;
        }

        &-info {
          box-sizing: border-box;
          width: 50%;
          text-align: center;
          display: flex;
          flex-direction: column;
        }

        &-actions {
          height: 100%;
          display: flex;
          flex-direction: column;
          justify-content: flex-end;
          flex: 1;
        }

        &-thumbnail {
          max-width: 200px;
          height: auto;
          max-height: 100px;
          object-fit: contain;
          -webkit-box-shadow: none;
          box-shadow: none;
        }

        &-price {
          flex: 1;
          margin-bottom: 20px;
          display: flex;
          justify-self: flex-end;
          justify-content: flex-end;
          align-items: center;
          flex-wrap: wrap;

          &-current {
            font-size: 25.2px;
            line-height: 28px;
          }

          &-old {
            font-size: 19.6px;
            line-height: 28px;
            text-decoration: line-through;
            margin-left: 10px;
            font-weight: lighter;
          }

          &-indication {
            display: block;
            max-width: 100%;
            width: 100%;
            text-align: right;
          }
        }

        &-indication {
          font-size: 12px;
          line-height: 22.4px;

          &-updated-at {
            margin-top: 5px;
          }
        }

        &-button {
          width: 100%;
          display: block;
          font-weight: 400;
          text-align: center;
          white-space: nowrap;
          vertical-align: middle;
          -webkit-user-select: none;
          -moz-user-select: none;
          -ms-user-select: none;
          user-select: none;
          border: 1px solid transparent;
          padding: 10px;
          box-sizing: border-box;
          font-size: 14px;
          line-height: 17.5px;
          border-radius: 5px;
          transition: all .15s ease-in-out;
          text-decoration: none;
          align-self: flex-end;
          box-shadow: none !important;
        }

        &:last-child {
          margin-bottom: 0;
        }
      }
    }

    &-related {
      margin-bottom: 25px;

      &-title {
        margin: 0;
        margin-bottom: 10px;
        font-size: 19.6px;
      }

      &-scroll {
        overflow-x: scroll;
        overflow-y: hidden;
        display: flex;
        padding-bottom: 10px;
      }

      &-item {
        padding: 0;
        cursor: pointer;
        width: 150px;
        height: 150px;
        flex: 0 0 150px;
        margin: 0;
        margin-right: 25px;
        overflow: hidden;
        border-width: 1px;
        border-style: solid;
        display: flex !important;
        align-items: center !important;

        &-thumbnail {
          object-fit: contain;
          max-width: 100%;
          height: 100%;
          -webkit-box-shadow: none;
          box-shadow: none;
          padding: 0;
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .aff-product-universal-box {
    &-row {
      flex-direction: column;
    }

    &-column {
      &-full-width {
        flex: auto;
      }
      &-half-width {
        flex: 1;
        width: 100%;
        max-width: 100%;

        &:first-child {
          border-right: 0;
        }
      }
    }

    .aff-product-shops {
      &-item-thumbnail {
        margin-bottom: 20px;
      }

      &-item-brand,
      &-item-info  {
        flex: 1 0 100%;
        max-width: 100%;
        width: 100%;
      }
    }

    .aff-product {
      &-title {
        text-align: center;
      }

      &-review {
        margin-bottom: 20px !important;
      }

      &-price,
      &-shop-item-price,
      &-review {
        text-align: center;
        flex-direction: column !important;
        align-items: center !important;
      }

      &-price,
      &-shops-item-price {
        &-current,
        &-old,
        &-indication {
          display: block;
          width: 100%;
          margin: 0 !important;
          text-align: center;
        }
      }

      &-review {
        &-votes {
          margin-left: 0;
        }
      }
    }
  }
}
