/*

Nothing defined here. The Hugo project that uses this theme can override Bootstrap by adding a file to:

assets/scss/_styles_project.scss

*/
@import "custom_slider.scss";
@import "custom_home.scss";
@import "custom_docs.scss";
@import "custom_downloads.scss";
//common
html, body {
  font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  color: #2c3e50;
  width: 100%;
  min-width: 300px;
}

h2 {
  font-size: 1.65rem;
  border-bottom: 1px solid #eaecef;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  line-height: 1.5;
  padding-top: 1.1rem;
}

img {
  max-width: 100%;
}
.sky-row{
  margin-right: -15px;
  margin-left: -15px;
}
@media (min-width: 990px) {
  img {
    max-width: 920px;
  }
}

.container {
  padding-right: 0px;
  padding-left: 0px;
}
.container-center {
  padding-right: 0px;
  padding-left: 0px;
  margin: 0 auto;
}

.td-main {
  img {
    &:hover {
      cursor: pointer;
    }
  }


}

.td-downloads {
  pre {
    line-height: 1.4;
    padding: 1.25rem 1.5rem;
    margin: 0.85rem 0;
    background-color: #f8f9fa;
    border-radius: 6px;
    overflow: auto;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .25rem;

    code {
      font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;
      //color: #fff;
      padding: 0;
      background-color: transparent;
      border-radius: 0;
      margin: 0;
      font-size: 0.85em;
    }
  }
}

/*lightbox*/
#popup {
  position: fixed;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  display: none;
  z-index: 99999;

  .mask {
    background-color: rgba(0, 0, 0, 0.5);
    width: 100%;
    height: 100%;
    position: relative;
  }

  img {
    max-height: 95%;
    max-width: 95%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    background-color: #fff;
  }
}

//common end
table {
  border-collapse: collapse;
  margin: 1rem 0;

  tr {
    border-top: 1px solid #dfe2e5;
  }

  th, td {
    border: 1px solid #dfe2e5;
    padding: 0.6em 1em;
  }

  tr:nth-child(2n) {
    background-color: #f6f8fa;
  }
}






@media (max-width: 450px) {
  table {
    width: 100%;

    table-layout: fixed;
    overflow-wrap: break-word;
  }
  li {
    overflow-x: scroll;
  }
  .swiper-button-next:after, .swiper-button-prev:after{
    font-size: inherit!important;
  }
}

@media (max-width: 419px) {
  h1 {
    font-size: 2rem !important;
  }
}

@media (max-width: 1238px) {
  .search-input-box {
    display: none !important;
  }
  .td-navbar .dropdown-menu {
    left: -200px;
  }
}

