@use 'sass:math';
@use 'sass:list';
@use 'sass:map';
@use '../abstract/_all';
@use '../abstract/breakpoints';
@use '../abstract/mixins';
@use '../abstract/setup';

//   -CONTAINERS

.container {
  padding-right: setup.$padding-global;
  padding-left: setup.$padding-global;
  margin-right: auto;
  margin-left: auto;
  position: relative;
  width: 100%;
  max-width: setup.$container;

  @media (min-width: breakpoints.$break-sm) {
    padding-right: setup.$padding-global;
    padding-left: setup.$padding-global;
    width: 90%;
    max-width: list.nth(map.values(breakpoints.$breakpoints), 2);
  }

  @media (min-width: breakpoints.$break-md) {
    width: 80%;
    max-width: list.nth(map.values(breakpoints.$breakpoints), 3);
  }

  @media (min-width: breakpoints.$break-lg) {
    width: 80%;
    max-width: list.nth(map.values(breakpoints.$breakpoints), 4);
  }

  @media (min-width: breakpoints.$break-xl) {
    width: 100%;
    max-width: list.nth(map.values(breakpoints.$breakpointscols), 5);
  }
}

.container-full {
  padding-right: setup.$padding-global;
  padding-left: setup.$padding-global;
  margin-right: auto;
  margin-left: auto;
  position: relative;
  max-width: setup.$container-full;

  @media (min-width: breakpoints.$break-sm) {
    padding-right: setup.$padding-global;
    padding-left: setup.$padding-global;
    width: 90%;
    max-width: list.nth(map.values(breakpoints.$breakpoints), 2);
  }

  @media (min-width: breakpoints.$break-md) {
    width: 80%;
    max-width: list.nth(map.values(breakpoints.$breakpoints), 3);
  }

  @media (min-width: breakpoints.$break-lg) {
    width: 80%;
    max-width: list.nth(map.values(breakpoints.$breakpoints), 4);
  }
}

.container-bleed {
  padding-right: 0;
  padding-left: 0;
  margin-right: auto;
  margin-left: auto;
  position: relative;
}

.container-fluid {
  padding-right: setup.$padding-global;
  padding-left: setup.$padding-global;
  margin-right: auto;
  margin-left: auto;
  position: relative;
}

.container-0 {
  padding-right: 16px;
  padding-left: 16px;
  margin: 0 auto;
  position: relative;
  width: 100%;
  max-width: 992px;

  @media (min-width: breakpoints.$break-sm) {
    width: 90%;
    max-width: 768px;
  }
  @media (min-width: breakpoints.$break-md) {
    width: 80%;
    max-width: 992px;
  }
  @media (min-width: breakpoints.$break-lg) {
    margin: 0;
    width: 80%;
    max-width: 1280px;
  }
}

.container-global-2 {
  padding-right: 16px;
  padding-left: 16px;
  max-width: 250px;
  @media (min-width: breakpoints.$break-sm) {
    max-width: 1650px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

.container-global-3 {
  padding-right: 16px;
  padding-left: 16px;
  max-width: 1440px;
  @media (min-width: breakpoints.$break-md) {
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

.container-global-4 {
  padding-right: 16px;
  padding-left: 16px;
  max-width: 250px;
  @media (min-width: breakpoints.$break-md) {
    max-width: 1440px;
    padding-right: 4rem;
    padding-left: 4rem;
  }
}

.container-2 {
  padding-right: setup.$padding-global;
  padding-left: setup.$padding-global;
  margin-right: auto;
  margin-left: auto;
  position: relative;
  width: 90%;
  max-width: setup.$container-2;
}

.container-3 {
  padding-right: setup.$padding-global * 3;
  padding-left: setup.$padding-global * 3;
  margin-right: auto;
  margin-left: auto;
  position: relative;
  width: 100%;
  max-width: setup.$container-3;

  @media (min-width: breakpoints.$break-sm) {
    padding-right: setup.$padding-global;
    padding-left: setup.$padding-global;
  }
}

.container-4 {
  padding-right: setup.$padding-global;
  padding-left: setup.$padding-global;
  margin-right: auto;
  margin-left: auto;
  position: relative;
  width: 90%;
  max-width: setup.$container-4;
}

// join life style
.container-5 {
  position: relative;
  padding: 0 setup.$padding-global;
  margin: 0 auto;
  width: 100%;
  max-width: setup.$container-5;

  @media (min-width: breakpoints.$break-lg) {
    max-width: 1000px;
    padding: 0;
  }
}

.container-6 {
  margin: 0 auto;
  padding: 0 setup.$padding-global;
  width: 100%;
  max-width: setup.$container-6;
}

.container-7 {
  margin: 0 auto;
  padding: 0 setup.$padding-global * 2;
  width: 100%;
  max-width: 295px;

  @media (min-width: breakpoints.$break-sm) {
    max-width: 460px;
    padding-right: setup.$padding-global;
    padding-left: setup.$padding-global;
  }

  @media (min-width: breakpoints.$break-md) {
    max-width: 460px;
  }

  @media (min-width: breakpoints.$break-lg) {
    max-width: 595px;
  }
}

.container-8 {
  margin: 0 auto;
  padding: 0 setup.$padding-global;
  width: 100%;
  max-width: setup.$container-8;
}

.container-9 {
  margin: 0 auto;
  padding: 0 setup.$padding-mobile;
  width: 100%;
  max-width: setup.$container-9;

  @media (min-width: breakpoints.$break-sm) {
    padding: 0 setup.$padding-global;
  }
}

.container-11 {
  margin: 0 auto;
  padding: 0 setup.$padding-mobile;
  width: 100%;
  max-width: setup.$container-11;

  @media (min-width: breakpoints.$break-sm) {
    padding: 0 setup.$padding-global;
  }
}

.container-12 {
  padding: 0 setup.$padding-mobile;
  width: 100%;
  max-width: setup.$container-12;

  @media (min-width: breakpoints.$break-sm) {
    padding: 0 setup.$padding-global;
  }
}

.container-body {
  padding-left: 16px;
  padding-right: 16px;
  @media (min-width: breakpoints.$break-md) {
    padding-left: 40px;
    padding-right: 40px;
  }
}

.container-body2 {
  padding-left: 16px;
  overflow: hidden;

  @media (min-width: breakpoints.$break-md) {
    padding-left: 40px;
  }

  .is-rtl & {
    padding-right: 16px;
    padding-left: 0;

    @media (min-width: breakpoints.$break-md) {
      padding-right: 40px;
      padding-left: 0;
    }
  }

  .swiper-container {
    overflow: inherit;
  }
}

//   -ROW

.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -(setup.$padding-global);
  margin-left: -(setup.$padding-global);

  @for $i from 2 through list.length(breakpoints.$breakpointscols) {
    @media (min-width: list.nth(map.values(breakpoints.$breakpointscols), $i)) {
      margin-right: -(setup.$padding-global);
      margin-left: -(setup.$padding-global);
    }
  }
}

//   -COLS

@for $i from 1 through 4 {
  @media (min-width: list.nth(map.values(breakpoints.$breakpointscols), $i)) {
    @for $c from 1 through setup.$totalCols {
      .col-#{list.nth(map.keys(breakpoints.$breakpointscols), $i)}-#{$c} {
        -webkit-box-flex: 0;
        flex: 0 0 math.percentage(math.div($c, setup.$totalCols));
        max-width: math.percentage(math.div($c, setup.$totalCols));
      }
    }
  }
}

@for $i from 5 through breakpoints.$colBreakpointscols {
  @for $c from 1 through setup.$totalColsXl {
    .col-#{list.nth(map.keys(breakpoints.$breakpointscols), $i)}-#{$c} {
      -webkit-box-flex: 0;
      flex: 0 0 math.percentage(math.div($c, setup.$totalColsXl));
      max-width: math.percentage(math.div($c, setup.$totalColsXl));
    }
  }
}

[class*='col-'] {
  box-sizing: border-box;
  position: relative;
  min-height: 1px;
  padding-right: setup.$padding-global;
  padding-left: setup.$padding-global;
}

.col {
  display: block;
  flex: 1 1 0;
  padding: 0 setup.$padding-global;
}

.col-sm {
  @media (min-width: breakpoints.$break-sm) {
    display: block;
    flex: 1 1 0;
    padding: 0 setup.$padding-global;
  }
}

.col-md {
  @media (min-width: breakpoints.$break-sm) {
    display: block;
    flex: 1 1 0;
    padding: 0 setup.$padding-global;
  }
}

.col-lg {
  @media (min-width: breakpoints.$break-sm) {
    display: block;
    flex: 1 1 0;
    padding: 0 setup.$padding-global;
  }
}

.bleed {
  margin-left: -(setup.$padding-global);
  margin-right: -(setup.$padding-global);
  width: auto;
}

@include mixins.bleed(0);
@include mixins.bleed(4);
@include mixins.bleed(8);

.list-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.grid-8 {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 16px;
  width: 100%;
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
  img {
    border: 1px solid #eaeaea;
  }
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 16px;
}
.grid-2-desktop {
  @media (min-width: breakpoints.$break-sm) {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 16px;
    align-items: end;
  }
}

.grid-2-wide {
  grid-column: span 2;
}
