/*
* Bootstrap 3 XL CSS Grid
*
* Bootstrap 3 XL CSS Grid addition for big and retina screens coverage
*
* Extends Bootstrap v3 by:
* Adding col-xl (1600+), col-xxl (1920+), col-xxxl (2560+)
* Adding visible and hidden options for all three
* Optionally limiting visible-lg, hidden-lg (1200+) classes to max 1600px
* Optionally increasing container fixed width for all three screen sizes
*
* Copyright 2014 Arnis Puskeiris (apbyte, arnico)
* Licensed under the MIT License
* http://opensource.org/licenses/MIT
*/

/* ==========================================================================
   Fix visible-lg and hidden-lg for resolutions over 1600px
   Remove if don't want to use
   ========================================================================== */
   @media (min-width: 1600px) {
    .visible-lg {
      display: none !important;
    }
    .hidden-lg {
      display: block !important;
    }
    table.hidden-lg {
      display: table;
    }
    tr.hidden-lg {
      display: table-row !important;
    }
    th.hidden-lg,
    td.hidden-lg {
      display: table-cell !important;
    }
  }

  /* ==========================================================================
     Set containers fixed sizes for >1600px, >1920px, >2560px
     Remove all if don't want to use big fixed sizes for all blocks
     You still can use cols with .container-fluid blocks
     ========================================================================== */
  @media (min-width: 1600px) {
    .container {
      width: 1530px;
    }
  }
  @media (min-width: 1920px) {
    .container {
      width: 1830px;
    }
  }
  @media (min-width: 2560px) {
    .container {
      width: 2490px;
    }
  }

  /* ==========================================================================
     col-xl, col-xxl, col-xxxl setup.
     Don't remove anything below this line
     ========================================================================== */

  .col-xl-1, .col-xxl-1, .col-xxxl-1, .col-xl-2, .col-xxl-2, .col-md-2, .col-xxxl-2, .col-xl-3, .col-xxl-3, .col-md-3, .col-xxxl-3, .col-xl-4, .col-xxl-4, .col-md-4, .col-xxxl-4, .col-xl-5, .col-xxl-5, .col-md-5, .col-xxxl-5, .col-xl-6, .col-xxl-6, .col-md-6, .col-xxxl-6, .col-xl-7, .col-xxl-7, .col-md-7, .col-xxxl-7, .col-xl-8, .col-xxl-8, .col-md-8, .col-xxxl-8, .col-xl-9, .col-xxl-9, .col-md-9, .col-xxxl-9, .col-xl-10, .col-xxl-100, .col-xxxl-10, .col-xl-11, .col-xxl-111, .col-xxxl-11, .col-xl-12, .col-xxl-122, .col-xxxl-12 {
    position: relative;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;
  }
  @media (min-width: 1600px) {
    .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
      float: left;
    }
    .col-xl-12 {
      width: 100%;
    }
    .col-xl-11 {
      width: 91.66666667%;
    }
    .col-xl-10 {
      width: 83.33333333%;
    }
    .col-xl-9 {
      width: 75%;
    }
    .col-xl-8 {
      width: 66.66666667%;
    }
    .col-xl-7 {
      width: 58.33333333%;
    }
    .col-xl-6 {
      width: 50%;
    }
    .col-xl-5 {
      width: 41.66666667%;
    }
    .col-xl-4 {
      width: 33.33333333%;
    }
    .col-xl-3 {
      width: 25%;
    }
    .col-xl-2 {
      width: 16.66666667%;
    }
    .col-xl-1 {
      width: 8.33333333%;
    }
    .col-xl-pull-12 {
      right: 100%;
    }
    .col-xl-pull-11 {
      right: 91.66666667%;
    }
    .col-xl-pull-10 {
      right: 83.33333333%;
    }
    .col-xl-pull-9 {
      right: 75%;
    }
    .col-xl-pull-8 {
      right: 66.66666667%;
    }
    .col-xl-pull-7 {
      right: 58.33333333%;
    }
    .col-xl-pull-6 {
      right: 50%;
    }
    .col-xl-pull-5 {
      right: 41.66666667%;
    }
    .col-xl-pull-4 {
      right: 33.33333333%;
    }
    .col-xl-pull-3 {
      right: 25%;
    }
    .col-xl-pull-2 {
      right: 16.66666667%;
    }
    .col-xl-pull-1 {
      right: 8.33333333%;
    }
    .col-xl-pull-0 {
      right: 0;
    }
    .col-xl-push-12 {
      left: 100%;
    }
    .col-xl-push-11 {
      left: 91.66666667%;
    }
    .col-xl-push-10 {
      left: 83.33333333%;
    }
    .col-xl-push-9 {
      left: 75%;
    }
    .col-xl-push-8 {
      left: 66.66666667%;
    }
    .col-xl-push-7 {
      left: 58.33333333%;
    }
    .col-xl-push-6 {
      left: 50%;
    }
    .col-xl-push-5 {
      left: 41.66666667%;
    }
    .col-xl-push-4 {
      left: 33.33333333%;
    }
    .col-xl-push-3 {
      left: 25%;
    }
    .col-xl-push-2 {
      left: 16.66666667%;
    }
    .col-xl-push-1 {
      left: 8.33333333%;
    }
    .col-xl-push-0 {
      left: 0;
    }
    .col-xl-offset-12 {
      margin-left: 100%;
    }
    .col-xl-offset-11 {
      margin-left: 91.66666667%;
    }
    .col-xl-offset-10 {
      margin-left: 83.33333333%;
    }
    .col-xl-offset-9 {
      margin-left: 75%;
    }
    .col-xl-offset-8 {
      margin-left: 66.66666667%;
    }
    .col-xl-offset-7 {
      margin-left: 58.33333333%;
    }
    .col-xl-offset-6 {
      margin-left: 50%;
    }
    .col-xl-offset-5 {
      margin-left: 41.66666667%;
    }
    .col-xl-offset-4 {
      margin-left: 33.33333333%;
    }
    .col-xl-offset-3 {
      margin-left: 25%;
    }
    .col-xl-offset-2 {
      margin-left: 16.66666667%;
    }
    .col-xl-offset-1 {
      margin-left: 8.33333333%;
    }
    .col-xl-offset-0 {
      margin-left: 0;
    }
  }

  @media (min-width: 1920px) {
    .col-xxl-1, .col-xxl-2, .col-xxl-3, .col-xxl-4, .col-xxl-5, .col-xxl-6, .col-xxl-7, .col-xxl-8, .col-xxl-9, .col-xxl-10, .col-xxl-11, .col-xxl-12 {
      float: left;
    }
    .col-xxl-12 {
      width: 100%;
    }
    .col-xxl-11 {
      width: 91.66666667%;
    }
    .col-xxl-10 {
      width: 83.33333333%;
    }
    .col-xxl-9 {
      width: 75%;
    }
    .col-xxl-8 {
      width: 66.66666667%;
    }
    .col-xxl-7 {
      width: 58.33333333%;
    }
    .col-xxl-6 {
      width: 50%;
    }
    .col-xxl-5 {
      width: 41.66666667%;
    }
    .col-xxl-4 {
      width: 33.33333333%;
    }
    .col-xxl-3 {
      width: 25%;
    }
    .col-xxl-2 {
      width: 16.66666667%;
    }
    .col-xxl-1 {
      width: 8.33333333%;
    }
    .col-xxl-pull-12 {
      right: 100%;
    }
    .col-xxl-pull-11 {
      right: 91.66666667%;
    }
    .col-xxl-pull-10 {
      right: 83.33333333%;
    }
    .col-xxl-pull-9 {
      right: 75%;
    }
    .col-xxl-pull-8 {
      right: 66.66666667%;
    }
    .col-xxl-pull-7 {
      right: 58.33333333%;
    }
    .col-xxl-pull-6 {
      right: 50%;
    }
    .col-xxl-pull-5 {
      right: 41.66666667%;
    }
    .col-xxl-pull-4 {
      right: 33.33333333%;
    }
    .col-xxl-pull-3 {
      right: 25%;
    }
    .col-xxl-pull-2 {
      right: 16.66666667%;
    }
    .col-xxl-pull-1 {
      right: 8.33333333%;
    }
    .col-xxl-pull-0 {
      right: 0;
    }
    .col-xxl-push-12 {
      left: 100%;
    }
    .col-xxl-push-11 {
      left: 91.66666667%;
    }
    .col-xxl-push-10 {
      left: 83.33333333%;
    }
    .col-xxl-push-9 {
      left: 75%;
    }
    .col-xxxl-push-8 {
      left: 66.66666667%;
    }
    .col-xxxl-push-7 {
      left: 58.33333333%;
    }
    .col-xxxl-push-6 {
      left: 50%;
    }
    .col-xxxl-push-5 {
      left: 41.66666667%;
    }
    .col-xxxl-push-4 {
      left: 33.33333333%;
    }
    .col-xxxl-push-3 {
      left: 25%;
    }
    .col-xxxl-push-2 {
      left: 16.66666667%;
    }
    .col-xxxl-push-1 {
      left: 8.33333333%;
    }
    .col-xxxl-push-0 {
      left: 0;
    }
    .col-xxxl-offset-12 {
      margin-left: 100%;
    }
    .col-xxxl-offset-11 {
      margin-left: 91.66666667%;
    }
    .col-xxxl-offset-10 {
      margin-left: 83.33333333%;
    }
    .col-xxxl-offset-9 {
      margin-left: 75%;
    }
    .col-xxxl-offset-8 {
      margin-left: 66.66666667%;
    }
    .col-xxxl-offset-7 {
      margin-left: 58.33333333%;
    }
    .col-xxxl-offset-6 {
      margin-left: 50%;
    }
    .col-xxxl-offset-5 {
      margin-left: 41.66666667%;
    }
    .col-xxxl-offset-4 {
      margin-left: 33.33333333%;
    }
    .col-xxxl-offset-3 {
      margin-left: 25%;
    }
    .col-xxxl-offset-2 {
      margin-left: 16.66666667%;
    }
    .col-xxxl-offset-1 {
      margin-left: 8.33333333%;
    }
    .col-xxxl-offset-0 {
      margin-left: 0;
    }
  }

  @media (min-width: 2560px) {
    .col-xxxl-1, .col-xxxl-2, .col-xxxl-3, .col-xxxl-4, .col-xxxl-5, .col-xxxl-6, .col-xxxl-7, .col-xxxl-8, .col-xxxl-9, .col-xxxl-10, .col-xxxl-11, .col-xxxl-12 {
      float: left;
    }
    .col-xxxl-12 {
      width: 100%;
    }
    .col-xxxl-11 {
      width: 91.66666667%;
    }
    .col-xxxl-10 {
      width: 83.33333333%;
    }
    .col-xxxl-9 {
      width: 75%;
    }
    .col-xxxl-8 {
      width: 66.66666667%;
    }
    .col-xxxl-7 {
      width: 58.33333333%;
    }
    .col-xxxl-6 {
      width: 50%;
    }
    .col-xxxl-5 {
      width: 41.66666667%;
    }
    .col-xxxl-4 {
      width: 33.33333333%;
    }
    .col-xxxl-3 {
      width: 25%;
    }
    .col-xxxl-2 {
      width: 16.66666667%;
    }
    .col-xxxl-1 {
      width: 8.33333333%;
    }
    .col-xxxl-pull-12 {
      right: 100%;
    }
    .col-xxxl-pull-11 {
      right: 91.66666667%;
    }
    .col-xxxl-pull-10 {
      right: 83.33333333%;
    }
    .col-xxxl-pull-9 {
      right: 75%;
    }
    .col-xxxl-pull-8 {
      right: 66.66666667%;
    }
    .col-xxxl-pull-7 {
      right: 58.33333333%;
    }
    .col-xxxl-pull-6 {
      right: 50%;
    }
    .col-xxxl-pull-5 {
      right: 41.66666667%;
    }
    .col-xxxl-pull-4 {
      right: 33.33333333%;
    }
    .col-xxxl-pull-3 {
      right: 25%;
    }
    .col-xxxl-pull-2 {
      right: 16.66666667%;
    }
    .col-xxxl-pull-1 {
      right: 8.33333333%;
    }
    .col-xxxl-pull-0 {
      right: 0;
    }
    .col-xxxl-push-12 {
      left: 100%;
    }
    .col-xxxl-push-11 {
      left: 91.66666667%;
    }
    .col-xxxl-push-10 {
      left: 83.33333333%;
    }
    .col-xxxl-push-9 {
      left: 75%;
    }
    .col-xxxl-push-8 {
      left: 66.66666667%;
    }
    .col-xxxl-push-7 {
      left: 58.33333333%;
    }
    .col-xxxl-push-6 {
      left: 50%;
    }
    .col-xxxl-push-5 {
      left: 41.66666667%;
    }
    .col-xxxl-push-4 {
      left: 33.33333333%;
    }
    .col-xxxl-push-3 {
      left: 25%;
    }
    .col-xxxl-push-2 {
      left: 16.66666667%;
    }
    .col-xxxl-push-1 {
      left: 8.33333333%;
    }
    .col-xxxl-push-0 {
      left: 0;
    }
    .col-xxxl-offset-12 {
      margin-left: 100%;
    }
    .col-xxxl-offset-11 {
      margin-left: 91.66666667%;
    }
    .col-xxxl-offset-10 {
      margin-left: 83.33333333%;
    }
    .col-xxxl-offset-9 {
      margin-left: 75%;
    }
    .col-xxxl-offset-8 {
      margin-left: 66.66666667%;
    }
    .col-xxxl-offset-7 {
      margin-left: 58.33333333%;
    }
    .col-xxxl-offset-6 {
      margin-left: 50%;
    }
    .col-xxxl-offset-5 {
      margin-left: 41.66666667%;
    }
    .col-xxxl-offset-4 {
      margin-left: 33.33333333%;
    }
    .col-xxxl-offset-3 {
      margin-left: 25%;
    }
    .col-xxxl-offset-2 {
      margin-left: 16.66666667%;
    }
    .col-xxxl-offset-1 {
      margin-left: 8.33333333%;
    }
    .col-xxxl-offset-0 {
      margin-left: 0;
    }
  }





  .visible-xl,
  .visible-xxl,
  .visible-xxxl {
    display: none !important;
  }

  @media (min-width: 1600px) and (max-width: 1919px) {
    .visible-xl {
      display: block !important;
    }
    table.visible-xl {
      display: table;
    }
    tr.visible-xl {
      display: table-row !important;
    }
    th.visible-xl,
    td.visible-xl {
      display: table-cell !important;
    }
  }
  @media (min-width: 1920px) and (max-width: 2559px) {
    .visible-xxl {
      display: block !important;
    }
    table.visible-xxl {
      display: table;
    }
    tr.visible-xxl {
      display: table-row !important;
    }
    th.visible-xxl,
    td.visible-xxl {
      display: table-cell !important;
    }
  }
  @media (min-width: 2560px) {
    .visible-xxxl {
      display: block !important;
    }
    table.visible-xxxl {
      display: table;
    }
    tr.visible-xxxl {
      display: table-row !important;
    }
    th.visible-xxxl,
    td.visible-xxxl {
      display: table-cell !important;
    }
  }




  @media (min-width: 1600px) and (max-width: 1919px) {
    .hidden-xl {
      display: none !important;
    }
  }

  @media (min-width: 1920px) and (max-width: 2559px) {
    .hidden-xxl {
      display: none !important;
    }
  }

  @media (min-width: 2560px) {
    .hidden-xxxl {
      display: none !important;
    }
  }