.single-product.wp-singular {
  #main {
    > .container {
      @media (width < 768px) {
        padding-inline: 0;
      }
    }
  }

  .woocommerce-breadcrumb {
    @media (width < 768px) {
      padding: 0 2em;
    }
  }

  .product {
    margin-top: 1.5rem;

    span.onsale {
      display: none;
    }

    .woocommerce-product-gallery.images {
      @media (width >= 768px) and (width < 1100px) {
        float: none;
        width: 100%;
      }

      .flex-viewport {
        img {
          @media (width >= 992px) {
            border: 1px solid #949494;
            padding: 0.25rem;
          }
        }
      }

      ol.flex-control-thumbs {
        display: flex;
        flex-wrap: wrap;
        margin: 1rem 0 0 0;
        gap: 0.75rem;

        @media (width < 992px) {
          justify-content: center;
        }

        li {
          width: 80px;
        }

        img {
          height: 80px;
          border: 1px solid #949494;
          padding: 0.25rem;
          width: 100%;
        }
      }
    }

    .mobile-product-title {
      margin-bottom: 2rem;
      padding: 0 2em;
      @media (width >= 768px) {
        padding: 0;
      }
      @media (width >= 1100px) {
        display: none;
      }
    }

    .summary {
      @media (width >= 768px) and (width < 1100px) {
        float: none;
        width: 100%;
      }

      @media (width < 992px) {
        padding: 0 2em;
        h1,
        .product-intro,
        .price {
          display: none;
        }
      }

      .available-on-backorder {
        display: none;
      }
    }

    h1 {
      font-size: 1.5rem;
    }

    .product-intro {
      color: #6b6b6b;
    }

    .stock.out-of-stock {
      display: none;
    }

    .product-intro-stock {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem 1rem;
      align-items: center;
      margin-block: 1.5rem;

      span {
        background-color: #e0acac;
        color: var(--light-black);
        padding: 0.5rem 1rem;
        border-radius: 20px;
        font-size: 0.825em;
      }

      a {
        color: var(--light-black);
        font-size: 0.825em;
      }
    }

    p.price {
      color: var(--dark-gray);
      display: flex;
      flex-direction: row-reverse;
      justify-content: start;
      gap: 0.5em;

      del {
        color: var(--dark-gray);
        opacity: 0.6;
        font-size: 0.825em;
      }

      ins {
        background-color: transparent;
        color: var(--red);
        font-weight: 100;
        font-size: 19px;
      }
    }

    .product-highlights {
      margin-top: 1.5rem;

      div:first-child span {
        border-top: 1px solid #949494;
      }

      p {
        margin: 0;

        span {
          align-items: center;
          border-bottom: 1px solid #949494;
          display: inline-flex;
          gap: 0.5rem;
          padding-block: 0.6rem;
        }
      }
    }

    .product-tp {
      margin-block: 2rem;
      /* align-items: center;
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      justify-content: start;


      iframe {
        margin-left: -25px;
      } */

      .tp-widget-wrapper {
        text-align: left;
      }
    }

    .product-variation-links {
      font-size: 0.825em;
      margin-bottom: 2rem;
      > div {
        display: flex;
        flex-wrap: wrap;
        gap: 1em;
      }

      span,
      a {
        border: 1px solid var(--light-black);
        padding: 0.5rem 1rem;
        border-radius: 20px;
      }

      a {
        text-decoration: none;
        opacity: 0.8;
        color: var(--light-black);
        &:hover {
          background-color: var(--light-black);
          color: #fff;
          opacity: 1;
        }
      }

      span.current-variation {
        background-color: #e6e6e6;
      }
    }

    /* .product-upsells {
      button {
        background-color: #fff;
        border: 1px solid #949494;
        display: block;
        margin-bottom: 2rem;
        padding: 0.75rem;
        text-align: center;
        width: 100%;
      }
    }

    .product-upsells-product {
      display: grid;
      margin-bottom: 1rem;

      @media (width >= 992px) {
        grid-template-columns: 120px 1fr 200px;
        gap: 1.5em;
      }

      .product-upsells-product--img {
        position: relative;
        height: 0;
        padding-bottom: 100%;
        overflow: hidden;
        img {
          border: 1px solid #949494;
          padding: 10px;
          position: absolute;
          inset: 0;
          object-fit: cover;
          height: auto;
          width: 100%;
        }
      }

      h4 {
        margin: 0;
        font-size: 1.1rem;
        font-weight: 300;
      }

      a {
        color: var(--light-black);
      }
    } */

    form.cart {
      margin-bottom: 3rem;

      .installation-service {
        align-items: center;
        display: flex;
        flex-direction: row-reverse;
        gap: 0.5em;
        justify-content: start;
        margin-bottom: 2rem;
      }

      input#installation-service {
        -webkit-appearance: none;
        appearance: none;
        background-color: #fff;
        border-radius: 50%;
        border: 1px solid var(--light-black);
        padding: 0;
        vertical-align: middle;
        height: 15px;
        width: 15px;
        accent-color: var(--light-black);
      }

      input#installation-service:checked {
        background-color: var(--light-black);
        border: 1px solid var(--light-black);
        background-position: center;
        background-size: 70%;
        background-repeat: no-repeat;
        background-image: url('data:image/svg+xml; utf8, <svg width="12px" height="10px" viewBox="0 0 12 8" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-4.000000, -6.000000)" fill="%23ffffff"><path d="M8.1043257,14.0367999 L4.52468714,10.5420499 C4.32525014,10.3497722 4.32525014,10.0368095 4.52468714,9.8424863 L5.24777413,9.1439454 C5.44721114,8.95166768 5.77142411,8.95166768 5.97086112,9.1439454 L8.46638057,11.5903727 L14.0291389,6.1442083 C14.2285759,5.95193057 14.5527889,5.95193057 14.7522259,6.1442083 L15.4753129,6.84377194 C15.6747499,7.03604967 15.6747499,7.35003511 15.4753129,7.54129009 L8.82741268,14.0367999 C8.62797568,14.2290777 8.3037627,14.2290777 8.1043257,14.0367999"></path></g></g></svg>');
      }

      .upsell-extras-wrapper {
        margin: 30px 0;

        .upsell-extras-toggle {
          align-items: center;
          border: 1px solid #949494;
          background: #fff;
          cursor: pointer;
          display: flex;
          justify-content: center;
          gap: 0.5rem;
          padding: 15px 20px;
          text-align: center;
          width: 100%;
        }

        .upsell-extras-toggle:hover {
          background: #f9f9f9;
        }

        .upsell-extras-toggle.active svg {
          transform: rotate(180deg);
        }

        .upsell-extras-toggle svg {
          transition: transform 0.3s;
        }

        .upsell-extras-content {
          margin-top: 2rem;
        }

        .upsell-product-item {
          display: grid;
          margin-bottom: 3rem;
          grid-template-columns: 1fr 1fr;
          gap: 1rem;

          @media (width >= 700px) {
            grid-template-columns: 120px 1fr auto;
            margin-bottom: 1rem;
          }

          @media (width >= 1100px) and (width < 1220px) {
            grid-template-columns: 50px 65% auto;
            margin-bottom: 2rem;
          }
        }

        .upsell-product-item:last-of-type {
          border-bottom: none;
        }

        .upsell-product-image-wrap {
          display: flex;
          gap: 1em;
          grid-column: 1 / -1;

          @media (width >= 700px) {
            grid-column: 1;
          }

          .upsell-product-meta-mob {
            @media (width >= 700px) {
              display: none;
            }
          }
        }

        .upsell-product-image {
          width: 80px;
          height: 80px;
          border: 1px solid #ddd;
          padding: 5px;
          display: flex;
          align-items: center;
          justify-content: center;
          background: #fff;
          margin-bottom: 1rem;

          @media (width >= 700px) {
            width: 120px;
            height: 120px;
          }

          @media (width >= 1100px) and (width < 1220px) {
            width: 50px;
            height: 50px;
          }
        }

        .upsell-product-image img {
          max-width: 100%;
          height: auto;
        }

        .upsell-product-info {
          display: flex;
          gap: 10px;
          order: 3;

          @media (width >= 700px) {
            flex-direction: column;
            order: 2;
          }

          h4 {
            display: none;
            @media (width >= 700px) {
              display: block;
            }
          }
        }

        .upsell-product-title {
          margin: 0;
          font-size: 1rem;
          margin: 0 0 0.5rem;
          font-weight: 500;
          a {
            color: var(--light-black);
          }
        }

        .upsell-product-meta {
          align-items: center;
          display: flex;
          gap: 10px;
          order: 2;
        }

        .upsell-product-meta-desk {
          display: none;
          @media (width >= 700px) {
            display: flex;
            align-items: flex-end;
            flex-direction: column;
          }
        }

        .upsell-stock {
          padding: 5px 15px;
          border-radius: 15px;
          font-size: 13px;
          font-weight: 500;
        }

        .upsell-stock.in-stock {
          background: #d4edda;
          color: #155724;
        }

        .upsell-stock.out-of-stock {
          background: #f8d7da;
          color: #721c24;
        }

        .upsell-price {
          display: flex;
          flex-direction: column-reverse;
          font-size: 1rem;
          color: #333;

          del {
            color: var(--dark-gray);
            opacity: 0.6;
            font-size: 0.825em;
          }

          ins {
            background-color: transparent;
            color: var(--red);
            font-size: 19px;
          }
        }
      }

      .optional-installation-service {
        align-items: start;
        display: flex;
        flex-direction: row-reverse;
        gap: 0.5rem;
        width: 215px;
        justify-content: start;

        label {
          font-size: 0.9em;
          gap: 0.25rem;
        }

        input {
          margin-top: 5px;
        }
      }

      .qty-submit-wrap {
        display: block;

        .quantity {
          align-items: center;
          gap: 0.25rem;
          margin-bottom: 1rem;
          display: flex;

          label {
            color: #6b6b6b;
            font-size: 0.9em;
          }
        }
      }

      button.single_add_to_cart_button {
        appearance: none;
        background-color: var(--green);
        border: 1px solid var(--light-black);
        border-radius: 0;
        color: var(--light-black);
        cursor: pointer;
        height: 48px;
        font: inherit;
        line-height: inherit;
        padding: 0.75rem 2rem;
        text-decoration: none;
        width: 100%;

        &:hover {
          background-color: var(--light-black);
          color: #fff;
        }
      }
    }
  }

  .product-tabs {
    margin-block: 2rem;

    @media (width >= 992px) {
      margin-block: 2rem 5rem;
    }
  }

  .product-tab-container {
    @media (width >= 992px) {
      width: 50%;
    }

    h3 {
      font-size: clamp(1.2rem, 2vw, 1.4rem);
      margin: 0;
    }

    button {
      align-items: center;
      background-color: transparent;
      border: 0;
      border-bottom: 1px solid #949494;
      font-family: var(--lora);
      display: flex;
      justify-content: space-between;
      text-align: left;
      padding: 1rem 0;
      width: 100%;

      svg {
        rotate: 90deg;
        transition: 0.3s all ease-in-out;
        path {
          fill: var(--light-black);
        }
      }

      &.product-button-active {
        svg {
          rotate: -90deg;
        }
      }
    }

    .product-tab-panel {
      display: none;
      padding: 1.5rem 0;
    }

    .product-tab-panel-faqs {
      .product-tab-panel-faqs-block {
        margin-bottom: 2rem;

        h4.product-tab-panel-faqs-question {
          font-family: var(--lora);
          font-size: 1.2rem;
          font-weight: 300;
          margin: 0 0 0.5rem;
        }

        p {
          font-size: 1rem;
        }
      }
    }
  }

  section {
    float: left;
    width: 100%;
  }
}

.product-related {
  padding-block: 4rem;

  .product-related-grid {
    display: grid;
    gap: 2em;

    @media (width >= 600px) {
      grid-template-columns: repeat(2, 1fr);
    }

    @media (width >= 992px) {
      grid-template-columns: repeat(4, 1fr);
    }
  }
}

.upsell-total-section {
  margin-top: 20px;
  padding-block: 1rem;
  border-bottom: 1px solid #949494;
  border-top: 1px solid #949494;

  .upsell-total-price {
    align-items: center;
    display: flex;
    justify-content: space-between;
    font-size: 1.25rem;
  }
}
