.wrap-full-grid {
  width: 1200px;
}

.margin-block-xs {
  margin-block: 10px;
}

.margin-block-s {
  margin-block: 20px;
}

hr {
  border: 0;

  &.divider {
    border-top: 1px solid var(--divider-color);
  }

  &.size-5 {
    margin-block: max(5px, 0.3rem);
  }

  &.size-10 {
    margin-block: max(10px, 0.5rem);
  }

  &.size-15 {
    margin-block: max(10px, 0.83rem);
  }

  &.size-20 {
    margin-block: max(15px, 1.1rem);
  }

  &.size-25 {
    margin-top: 25px;
    margin-bottom: 25px;
  }

  &.size-30 {
    margin-top: 30px;
    margin-bottom: 30px;
  }

  &.size-35 {
    margin-top: 35px;
    margin-bottom: 35px;
  }

  &.size-40 {
    margin-top: 40px;
    margin-bottom: 40px;
  }

  &.size-45 {
    margin-top: 45px;
    margin-bottom: 45px;
  }

  &.size-50 {
    margin-block: max(30px, 2.8rem);
  }

  &.size-55 {
    margin-block: max(30px, 3rem);
  }

  &.size-60 {
    margin-block: max(35px, 3.3rem);
  }

  &.size-65 {
    margin-block: max(35px, 3.6rem);
  }

  &.size-70 {
    margin-block: max(40px, 3.9rem);
  }

  &.size-75 {
    margin-block: max(40px, 4.1rem);
  }

  &.size-80 {
    margin-block: max(45px, 4.4rem);
  }

  &.size-85 {
    margin-block: max(45px, 4.7rem);
  }

  &.size-90 {
    margin-block: max(50px, 5rem);
  }

  &.size-95 {
    margin-block: max(50px, 5.3rem);
  }

  &.size-100 {
    margin-block: max(55px, 5.6rem);
  }
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

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

  @media (max-width: 768px) {
    grid-template-columns: repeat(2, 1fr);
  }
}

.flex-row {
  flex-flow: row;
}
.flex-column {
  flex-flow: column;
}

.flex-row,
.flex-column {
  display: flex;
  align-items: center;

  &.t-center {
    justify-content: center;
    ;
  }
}

.gap-s {
  --gap: 15px;
  gap: var(--gap);
}

.gap-m {
  --gap: 25px;
  gap: var(--gap);
}

.gap-l {
  --gap: max(30px, 10%);
  gap: var(--gap);
}

.bubble:has(.cicon) {
  background-color: #F3F8EC;
  width: max-content;
  border-radius: 9000px;
  padding: 10px;
  margin-inline: auto;
  position: relative;

  .cicon {
    --icon-color: var(--v3-primary-color);
  }

  &.size-l {
    padding: 15px;

    .cicon {
      width: 50px;
    }
  }

  .bubble {
    --height: 26px;
    background-color: var(--v3-primary-color);
    height: var(--height);
    position: absolute;
    top: 0;
    right: -20px;
    color: #fff;
    padding: 5px 10px;
    line-height: 1;

    .cicon {
      position: static;
      width: auto;
      background-color: #fff;
      box-sizing: content-box;
      height: calc(var(--height) / 1.5);
      padding: 0;
    }
  }
}

p.meta-headline {
  /*margin-bottom: 10px;*/
  color: var(--v3-secondary-color);
  display: block;
  margin-inline: auto;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;

  &+h2 {
    margin-top: 0;
  }
}

.hero p.meta-headline {
  text-align: left;
}


.image-text-cards {
  display: flex;
  flex-flow: row;
  gap: 20px;

  >div {
    border: 1px solid #E3E3E3;
    border-radius: 10px;
    box-shadow: 0px 0px 10px 7px #00000008;
    overflow: hidden;

    .title {
      font-size: 24px;
      font-weight: 600;
    }

    .content>p:last-child {
      strong {
        font-weight: unset;
      }

      font-style: oblique;
    }

    .content {
      padding: 20px;
    }
  }

  &.sideways {
    >div {
      display: flex;
      flex-flow: row;
      gap: 20px;

      .image {
        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          object-position: center center;
        }
      }
    }

  }

  @media (max-width: 768px) {
    & {
      flex-flow: column;

      >div {
        max-width: 360px;
        margin-inline: auto;
      }
    }
  }
}

.icon-list {
  --padding: 10px;
  --icon-size: 30px;
  --gap: 10px;
  --icon-color: var(--v3-primary-color);

  display: grid;
  gap: var(--gap);
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 100%;

  >li {
    position: relative;
    min-height: var(--icon-size);
    padding-inline-start: calc(var(--icon-size) + var(--gap) + (var(--padding) * 2) + 10px);

    .bubble:has(> .cicon),
    .cicon:first-child:not(.bubble > .cicon) {
      position: absolute;
      inset-block-start: 0px;
      inset-inline-start: 0;
      inline-size: calc(var(--icon-size) + var(--padding));
      block-size: calc(var(--icon-size) + var(--padding));
      box-sizing: content-box;
      background-color: #82B3381A;
      padding: var(--padding);
      border-radius: 100%;
    }

    .cicon {
      width: 100%;
    }

    >h3 {
      margin: 0;
      line-height: 1.2;
      font-weight: 600;
    }

    >p {
      margin: 0;
    }
  }

  &.col-2 {
    gap: 2rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: max-content;
    margin: 0 auto;

    @media (max-width: 600px) {
      & {
        grid-template-columns: 1fr;
        gap: 30px;
      }
    }

  }

  @media (max-width: 600px) {
    --gap: 10px;
  }
}

.big-bubble-list {
  --padding: 10px;
  --icon-size: 30px;
  --gap: 10px;
  --icon-color: var(--v3-primary-color);

  display: grid;
  gap: var(--gap);
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 100%;
  counter-reset: item;
  text-align: left;

  >li {
    counter-increment: item;
    position: relative;
    min-height: var(--icon-size);
    padding-inline-start: calc(var(--icon-size) + var(--gap) + (var(--padding) * 2) + 10px);

    &::before {
      content: counter(item);
      position: absolute;
      inset-block-start: 0px;
      inset-inline-start: 0;
      inline-size: calc(var(--icon-size) + var(--padding));
      block-size: calc(var(--icon-size) + var(--padding));
      box-sizing: content-box;
      background-color: #82B3381A;
      color: var(--v3-primary-color);
      padding: var(--padding);
      border-radius: 100%;

      font-size: var(--icon-size);
      font-weight: 600;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    >h3 {
      margin: 0;
      line-height: 1.2;
      font-weight: 600;
    }

    >p {
      margin: 0;
    }
  }

  @media (max-width: 600px) {
    --gap: 10px;
  }
}

.new-tip-box {
  background-color: #F6F6F6;
  border-radius: 10px;
  padding: 40px;
  display: flex;
  flex-flow: row;
  align-items: center;
  gap: 40px;
  margin-block: 50px;

  [data-icon] {
    width: 40px;
    height: 40px;
    --icon-color: var(--v3-primary-color);
  }

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

  &.content-width {
    max-width: 768px;
    margin-inline: auto;
  }

  &.bg-soft-primary {
    background-color: #82B3381A;
  }

  @media (max-width: 768px) {
    & {
      flex-flow: column;
      justify-content: center;
      text-align: center;
      gap: 20px;
    }
  }
}

.image-caption {
  .box {
    background-color: #F6F6F6;
    border-radius: 10px;
    padding: 40px;
    display: flex;
    flex-flow: row;
    align-items: center;
    gap: 40px;
    margin-block: 0;
    background-color: #82B3381A;

    [data-icon] {
      width: 40px;
      height: 40px;
      --icon-color: var(--v3-primary-color);
    }

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

    @media (max-width: 768px) {
      & {
        flex-flow: column;
        justify-content: center;
        text-align: center;
        gap: 20px;
      }
    }
  }
}

.image-text-block {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 0 50px;

  @media (max-width: 1200px) {
    max-width: 100%;
    padding-inline: 20px;
  }

  .hidden.active {
    column-count: 2;
    column-gap: 2rem;
    display: block;
    padding-block: 40px;
  }

  >div {
    grid-column: span 6;

    &.fullsize {
      grid-column: 1 / -1;
    }

    img {
      border-radius: 10px;
    }

    &:has(img)+div {
      text-align: left;
    }

    &:has(+div img) {
      text-align: right;
    }
  }

  p.no-margin+ul {
    margin-top: 10px;
  }

  .cicon:not(.btn.ghost .cicon) {
    --icon-color: var(--v3-primary-color);
  }

  .meta-headline:not(.fullsize .meta-headline) {
    margin-bottom: 0;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    text-align: inherit;

    &+h3 {
      margin-top: 0;
    }

    .cicon {
      width: 2.5em;
    }
  }

  h3:first-child {
    margin-top: 0;
  }

  h3 {
    font-size: 24px;
    font-weight: bold;
  }

  &+.image-text-block {
    /*margin-top: 40px;*/
    margin-top: 80px;
  }

  &>.fullsize:nth-child(1) h2 {
    margin-top: 0;
  }

  @media (max-width: 768px) {
    & {
      gap: 30px;

      +.image-text-block {
        margin-top: 90px;
      }

      >div {
        grid-column: 1 / -1;
        text-align: center !important;

        &:not(:has(img)) {
          order: 2;
        }
      }

      .hidden.active {
        column-count: 1;
        padding-top: 0;
      }
    }
  }
}

.three-steps-v5 {
  --arrow-size: 60px;
  --gap-fix: (var(--gap) / 2);

  >div {
    padding-inline: calc(var(--arrow-size) / 2);

    p {}
  }

  >div:not(:first-child) {
    position: relative;

    &::before {
      content: "";
      aspect-ratio: 1;
      font-family: unset;
      width: var(--arrow-size);
      display: inline-block;
      color: #bbb;
      margin: 0;
      position: absolute;
      left: calc(0px - (var(--arrow-size) / 2) - var(--gap-fix, 0px));
      top: 0;
      font-size: var(--arrow-size);
      height: 100%;
    }
  }

  >div:nth-child(2)::before {
    content: "+";
  }

  >div:nth-child(3)::before {
    content: "=";
  }

  p:last-child {
    margin-top: 10px;
  }

  @media (max-width: 768px) {
    & {
      display: flex;
      flex-flow: column;

      >div {
        padding-inline: 0;
        padding-block: calc(var(--arrow-size) / 2);

        &:not(:first-child)::before {
          left: calc(50% - (var(--arrow-size) / 2));
          top: calc(0px - (var(--arrow-size) / 2));
          rotate: 90deg;
        }
      }
    }
  }
}


.price-table-v4 {
  margin-top: 21px;
  padding: 13px 0;
  overflow: visible;
  scrollbar-width: thin;

  @media (max-width: 850px) {
    & {
      padding-inline: 11px;
      overflow-x: auto;
      overflow-y: hidden;
    }
  }

  @media (max-width: 560px) {
    & {
      margin-top: 18px;
    }
  }


  &>div {
    position: relative;
    z-index: 0;
    width: calc(100% - 1px);
    min-width: 820px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: #fff;
    overflow: visible;

    margin-top: 21px;
    scrollbar-width: thin;

    &::before {
      /*
      top: -14px;
      bottom: -15px;
      */
      content: "";
      position: absolute;
      z-index: 2;
      top: 0;
      bottom: 0;
      left: calc((100% / var(--cols) * var(--highlight)) + 15.5px);
      width: calc((100% / var(--cols)) - 25px);
      background: rgba(130, 179, 56, 0.1);
      pointer-events: none;
    }

    &::after {
      content: "";
      position: absolute;
      z-index: 0;
      top: -1px;
      right: -1px;
      bottom: 0;
      left: -1px;
      border: 1px solid var(--v3-divider-color);
      border-radius: 10px;
      box-shadow:
        inset 0 1px 0 #f2f2f2,
        0 1px 0 #fbfbfb;
      pointer-events: none;
    }

    table {
      position: relative;
      z-index: 1;
      width: 100%;
      table-layout: fixed;
      border-collapse: separate;
      border-spacing: 0;
      color: var(--v3-text-color);
      margin: 0;

      @media (max-width: 768px) {
        table-layout: auto;
      }

      th,
      td {
        position: relative;
        padding: 0;
        text-align: center;
        vertical-align: middle;
        background: transparent;
      }

      thead {
        tr {
          height: 74px;
        }

        th {
          border-bottom: 0;
          font-weight: 400;

          &::after {
            content: "";
            position: absolute;
            right: 0;
            bottom: -1px;
            left: 0;
            height: 1px;
            background: var(--v4-neutral-color-4);
            box-shadow: 0 1px 0 #fbfbfb;
            pointer-events: none;
          }
        }
      }

      tbody {
        tr {
          height: 39px;

          &:first-child th,
          &:first-child td {
            border-top: 0;
          }

          &.selected th,
          &.selected td {
            border-top: 0;
            border-bottom: 0;

            &::before {
              content: "";
              position: absolute;
              z-index: 2;
              top: 0;
              right: 0;
              left: 0;
              height: 1px;
              background: var(--v3-primary-color);
              pointer-events: none;
            }

            &::after {
              content: "";
              position: absolute;
              z-index: 2;
              right: 0;
              bottom: -1px;
              left: 0;
              height: 1px;
              background: var(--v3-primary-color);
              pointer-events: none;
            }
          }

          &.selected {

            &> :first-child::before,
            &> :first-child::after {
              left: 1px;
            }

            &> :last-child::before,
            &> :last-child::after {
              right: 1px;
            }

            &+tr th,
            &+tr td {
              border-top: 0;
            }
          }

          &:not(.selected):not(:first-child) {

            th,
            td {
              border-top-color: #eaeaea;
            }
          }
        }

        &:last-child {

          &td::before,
          &th::before {
            content: "";
            position: absolute;
            top: -1px;
            right: 0;
            left: 0;
            height: 1px;
            background: #fbfbfb;
            pointer-events: none;
          }
        }

        th,
        td {
          border-top: 1px solid #fbfbfb;
        }
      }
    }

    .size-title {
      display: block;
      margin-bottom: 0;
      position: relative;
      top: 3px;
      color: var(--v3-primary-color);
      font-size: 18px;
      font-weight: 700;
      line-height: 1.5;
    }

    .size-note {
      display: block;
      position: relative;
      top: -1px;
      color: #8c8c8c;
      font-size: 11px;
      font-weight: 400;
      line-height: 17px;
      white-space: nowrap;
    }

    .size-dimensions {
      display: block;
      color: #777;
      font-size: 14px;
      font-weight: 400;
      line-height: 20px;
      white-space: nowrap;

      strong {
        font-weight: 700;
      }
    }

    .product {
      padding-left: 1px;
      color: #777;
      font-size: 18px;
      font-weight: 700;
      line-height: 20px;
    }

    .price {
      display: inline-block;
      color: #7f7f7f;
      font-size: 18px;
      font-weight: 400;
      line-height: 20px;
      white-space: nowrap;
    }

    .badge {
      min-width: 40px;
      height: 20px;
      padding: 0 10px;
      border-radius: 999px;
      background: var(--v3-highlight-color);
      color: #fff;
      font-size: 11px;
      font-weight: 700;
      line-height: 20px;
      text-align: center;
      white-space: nowrap;
      margin-inline: 5px;
    }
  }
}

.wrb-product-viewer {
  --wrb-image: url('https://www.acrylglas-foto.de/wp-content/uploads/agf-wrb-bg-couch-bottom.webp');
  --wrb-h: 260px;

  width: 100vw;
  margin-left: 50%;
  translate: -50% 0;
  background-image: var(--wrb-image);
  background-repeat: no-repeat;
  background-position: center calc(var(--wrb-h) + 100px);
  padding-bottom: var(--wrb-h);

  >.wrap {
    width: 1200px;
    margin-inline: auto;
    display: flex;
    flex-flow: row;
    justify-content: space-between;
    align-items: end;

    >div {
      position: relative;
      display: flex;
      flex-flow: column;

      &:nth-child(1) .image {
        width: 178px;
      }

      &:nth-child(2) .image {
        width: 235px;
      }

      &:nth-child(3) .image {
        width: 279px;
      }

      &:nth-child(4) .image {
        width: 373px;
      }

      .image {
        position: relative;

        img {
          max-width: 100%;
        }

        .badge {
          position: absolute;
          top: -10px;
          right: -5px;
          background-color: var(--v3-primary-color);
          color: #fff;
          padding: 5px 10px;
          font-size: 16px;
          line-height: 1;
          font-weight: 600;
          border-radius: 20px;
        }
      }

      .text {
        text-align: center;

        .price {
          font-size: 26px;
          font-weight: 600;
        }
      }

      .arrow-text {
        color: var(--v3-primary-color);
        text-align: center;
        position: absolute;
        bottom: -90px;
        left: -90px;

        &::before {
          content: "";
          background-image: url('https://xxlpix-all.b-cdn.net/cms/agf/arrow-left-right-green-1.png');
          background-repeat: no-repeat;
          background-position: center center;
          height: 50px;
          width: 100%;
          display: block;
        }
      }
    }
  }
}


#price-table {
  .nav {
    a {
      text-decoration: none;
    }

    .active {
      color: var(--v3-secondary-color);
      font-weight: 600;
      text-decoration: underline;
    }

  }

  >a {
    display: none;
  }

  table {
    border: 1px solid #ddd;
    border-radius: 10px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;

    thead {
      th {
        border-bottom: 1px solid #ddd;
        background-color: transparent;
        text-align: center;
        vertical-align: bottom;
        line-height: 1.3;

        span {
          color: var(--v3-primary-color);
        }
      }

    }

    tbody {
      tr {
        &:hover td {
          background: transparent;
        }

        /*
        &:hover td {
          font-weight: bold;
        }
        */

        td {
          text-align: center;
        }
      }

      .js-upload-btn {
        text-decoration: underline;
        font-weight: normal;
      }
    }
  }
}