
.ptj--product-grid > .main-description-container
{
    grid-area: area1;
}
.ptj--product-grid > .nutritional-values-container
{
    grid-area: area2;
}
.ptj--product-grid .commitments-container
{
    grid-area: area3;
}


.ptj--product-grid .commitments-container ~ .commitments-container
{
    grid-area: area4;
}

.ptj--product-grid > .product-ingredient-container {
    grid-area: area5;
    margin-top: 40px;
    margin-left: 15px;
    margin-right: 90px;
}


.ptj--product-grid
{
    display: grid;
    grid-template-areas: "area1 ph area2" 
                         "area3 ph area4"
                         "area5 area5 area5";
    grid-template-columns: 1fr 300px 1fr;
    grid-template-rows: auto;

}



.product--main-img-container
{
    z-index: 1;
    /*transform: translateX(-50%);*/
    pointer-events: none;
}
.product--main-img
{
    top: 50%;
    /* transform: translateY(calc(40px - 50%)) rotateZ(-6deg); */
    transform: translateY(calc(100px - 50%)) rotateZ(-6deg);
    max-height: 300px;
    pointer-events: all;
}
.sticky-img-area 
{
    margin-top: max(-150px, -5vh);
}


.product--details-img
{
    -webkit-mask-image: url("../img/product-mask-1.svg");
    mask-image: url("../img/product-mask-1.svg");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    /* border: 1px solid rgba(0, 0, 0, 0);
    
    /* border: 1px solid rgba(0, 0, 0, 0);*/ /* hotfix: otherwise, 1px sides of the image may appear on Windows/Chrome */
}
.product--details:nth-child(2n + 1) .product--details-img
{
    -webkit-mask-image: url("../img/product-mask-2.svg");
    mask-image: url("../img/product-mask-2.svg");
    -webkit-mask-image: url("../img/product-mask-2.svg");
    height: 40vw;
}
.product--details:nth-child(2n + 1) {
    flex-direction: row-reverse;
}
.nutritional-values-text
{
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    overflow: hidden;
}
.nutritional-single-property
{
    position: relative;
    padding-right: 10px;
}
.nutritional-single-value
{
    justify-self: flex-end;
    position: relative;
    justify-self: flex-end;
    padding-left: 10px;
    margin-left: auto;
    background-color: var(--ptj-red);
}
.nutritional-single-property::after
{
    content: "";
    position: absolute;
    width: 250px;
    height: 1px;
    top: 50%;
    left: 100%;
    background-color: rgba(255, 255, 255, 0.49);
}
.flex-br
{
    flex-basis: 100%;
    height: 0;
}
.product--main-img-container
{
    pointer-events: none;
}
.main-description-heading strong
{
    font-weight: 500;
    background-image: url("../img/circle_yellow.svg");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    padding: 1em;
    margin: -1em;
}

    
.main-description-container {
  flex-direction: column;
}

.product-ingredient-heading {
  font-family: Grandstander, sans-serif;
  font-size: 25px;
  line-height: 35px;
  font-weight: 500;
}

.product-ingredient-text {
  font-family: Nunito, sans-serif;
  line-height: 22px;
  font-weight: 600;
}

@media screen and (max-width: 767px)
{
    .ptj--product-grid
    {
        grid-template-areas:
        "area1"
        "area2"
        "area3"
        "area4"
        "area5";
        grid-template-columns: 1fr;
    }
    
    .ptj--product-grid > .product-ingredient-container {
        margin-left: 0px; 
        margin-right: 0px; 
        margin-bottom: 40px;
     }
     
     .product-ingredient-heading {
        font-size: 18px;
        line-height: 28px;
    }
    
    .product-ingredient-text {
        font-size: 13px;
        line-height: 23px;
    }
     
    .nutritional-values,
    .main-description
    {
        max-width: none;
    }
    .product--details,
    .product--details:nth-child(2n + 1)
    {
        flex-direction: column;
    }
    .details--text
    {
        width: auto;
    }
    .product--details-img
    {
        max-width: 100%;
    }
    .ptj--navbar[data-sticky="true"] ~ .section--main .sticky-img-area
    {
        z-index: 0;
    }
    .ptj--navbar[data-sticky="true"] ~ .section--main .product--main-img-container
    {
        z-index: 0;
        opacity: 0.2;
    }
    .product--main-img-container
    {
        transition: opacity 1s ease 0s;
    }
    .ptj--product-grid,
    .product--details
    {
        position: relative;
    }
    .product--details-img,
    .product--details:nth-child(2n + 1) .product--details-img
    {
        height: auto;
    }
    .sticky-img-area
    {
        margin-bottom: 40px;
    }
}
/* body.single-ptj-products .section--main::after, */
.section--upsells.ptj-product-single.recipes::after,
body.single-ptj-products .product--header::after,
.section--main::after
{
    content: "";
    display: block;
    position: absolute;
    height: 6vw;
    margin-top: -3vw;
    width: 100%;
    bottom: -2px;
    background-size: 100% auto;
    background-repeat: no-repeat;
    background-position: bottom;
}
.section--upsells.ptj-product-single.recipes
{
    position: relative;
}
/* body.single-ptj-products .section--main::after */
.section--upsells.ptj-product-single.recipes::after
{
    background-image: url("../img/products_toyellow.svg");
    margin-top: 0;
}
body.single-ptj-products .product--header::after
{
    background-image: url("../img/_after-tored.svg");
}
.related-item-name::after
{
    content: "+";
    width: 50px;
    min-width: 50px;
    height: 48.78px;
    background-color: var(--ptj-red);
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--ptj-white);
    border-radius: 41% 59% 54% 46% / 52% 43% 57% 48%;
    transition: transform 0.3s cubic-bezier(0.75, 0, 0.25, 1) 0s;
}
.single-related-item:hover .related-item-name::after
{
    transform: scale(1.2);
}



.section--main::after
{
    position: relative;
    background-image: url('../img/_after-towhite.svg');
}


.nutritional-values-text + .nutritional-values-text
{
    margin-top: 1em;
}

@media screen and (min-width: 768px)
{
    .ptj--product-grid .commitments-container
    {
        grid-column: span 3;
        --ph: 200px;
        --cell: calc((100% - var(--ph)) * 0.25);
        display: grid;
        grid-template-areas:
            ". . ph . ."
            ". . ph . ."
            ". . ph . ."
            ". . ph . ."
            ". . ph . ."
            ". . ph . ."
            ". . ph . ."
            ". . ph . ."
            ". . ph . ."
            ". . ph . .";
        grid-template-columns: var(--cell)
                             var(--cell)
                             var(--ph) 
                             var(--cell)
                             var(--cell);
        grid-auto-rows: auto;
    }
    .ph
    {
      grid-area: ph;
    }
    .commitment-cell:last-child:nth-child(4n + 2), /* last item, if last row has 1 items */
    .commitment-cell:nth-last-child(2):nth-child(4n + 2), /* penultimate item, if last row has 2 items */
    .commitment-cell:last-child:nth-child(4n + 3), /* last item, if last row has 2 items */
    .commitment-cell:last-child:nth-child(4n + 4) /* last item, if last row has 3 items */
    {
      grid-column: span 2;
    }
}

h1.product-header-heading
{
    font-size: clamp(35px, 5vw, 80px);
    line-height: clamp(45px, 5vw, 100px);
}

@media (min-width: 768px) and (max-width: 967px)
{
    .ptj--product-grid
    {
        grid-template-columns: 1fr 0 1fr;
    }
    .commitments-container
    {
        --ph: 0 !important;
    }
    .ptj--navbar[data-sticky="true"] ~ .section--main .sticky-img-area
    {
        z-index: 0;
    }
    .ptj--navbar[data-sticky="true"] ~ .section--main .product--main-img-container
    {
        z-index: 0;
        opacity: 0.2;
    }
    .product--main-img-container
    {
        transition: opacity 1s ease 0s;
    }
    .ptj--product-grid,
    .product--details
    {
        position: relative;
    }
}


.recipe-item__guests-count-2::before
{
    content: "";
    display: inline-block;
    width: 26px;
    height: 26px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-right: 1em;
}
.recipe-item__guests-count-2:nth-child(1)::before
{
    background-image: url("../img/recipe-guests.png");
}
.recipe-item__guests-count-2:nth-child(2)::before
{
    background-image: url("../img/prep-time.png");
}
.product-header-heading
{
    max-width: 16ch;
}


/* remove ingredients when the user starts scrolling */
.product--garniture-container
{
    transition: opacity 1s ease 0s;
}
.ptj--navbar[data-sticky="true"] ~ .section--main .product--garniture-container
{
    opacity: 0;
}

.recipe-item-pictos-container
{
    max-width: 300px;
}

.inline-svg-container
{
    width: 60px;
}
@media screen and (max-width: 767px)
{
    .inline-svg-container
    {
        transform: translateY(-50%);
    }
    .sticky-img-area > .product--details:nth-child(2n + 4) .inline-svg-container 
    {
        transform: translateY(-100%);
    }
    .commitment-cell
    {
        width: 50%;
        min-width: 140px;
    }
}
.commitment
{
    /*width: 200px;*/
    width: 90%;
}


@media screen and (min-width: 768px) and (max-width: 816px)
{
    .commitments-container
    {
        grid-template-columns: 1fr 1fr 0 1fr 1fr;
    }
}

.swiper-container.recipes-container,
.swiper-container.swiper-container-products-container
{
    width: 100%;
}

@media screen and (min-width: 768px)
{
    .swiper-button-next,
    .swiper-button-prev,
    .swiper-pagination
    {
        display: none;
    }
    .swiper-wrapper
    {
        justify-content: space-between !important;
    }
    .swiper-slide.single-ptj-product-page
    {
        max-width: 30%;
    }
}
.swiper-button-prev::after, 
.swiper-button-next::after 
{
    content: url(../img/next_red.svg);
}
.swiper-button-next
{
    right: 24px;
}
.swiper-button-prev::after 
{
    transform: rotateZ(180deg);
    position: absolute;
    left: 10px;
}
.single-related-item.product-item 
{
    width: 100%;
}
@media screen and (max-width: 767px)
{
    .swiper-slide > a
    {
        margin: 0 6vw;
    }
}
.swiper-pagination.single-ptj-product-page 
{
    bottom: -46px !important;
}
.swiper-pagination.swiper-pagination-bullets
{
    bottom: -46px !important;
}