:root {
  --font-weight-base: 400;
  --font-weight-heading: 400;
  --line-height-base: 1.4;
  --line-height-heading: 1.2;
                        
  --sp-24-160: clamp(1.5rem, -1.7692rem + 13.0769vw, 10rem); /* 24 - 160 */
  --sp-40-112: clamp(2rem, 0.0769rem + 7.6923vw, 7rem); /* 32 - 112 */
  --sp-40-80: clamp(2.5rem, 1.5385rem + 3.8462vw, 5rem); /* 40 - 80 */
  --sp-32-112: clamp(2rem, 0.0769rem + 7.6923vw, 7rem); /* 32 - 112 */
  --sp-32-64: clamp(2rem, 1.2308rem + 3.0769vw, 4rem); /* 32 - 64 */
  --sp-32-40: clamp(2rem, 1.8077rem + 0.7692vw, 2.5rem); /* 32 - 40 */
  --sp-28-48: clamp(1.75rem, 1.2692rem + 1.9231vw, 3rem); /* 28 - 48 */
  --sp-24-64: clamp(1.5rem, 0.5385rem + 3.8462vw, 4rem); /* 24 - 64 */
  --sp-24-48: clamp(1.5rem, 0.9231rem + 2.3077vw, 3rem); /* 24 - 48 */
  --sp-24-40: clamp(1.5rem, 1.1154rem + 1.5385vw, 2.5rem); /* 24 - 40 */
  --sp-24-32: clamp(1.5rem, 1.3077rem + 0.7692vw, 2rem); /* 24 - 32 */
  --sp-16-80: clamp(1rem, -0.5385rem + 6.1538vw, 5rem); /* 16 - 80 */
  --sp-16-64: clamp(1rem, -0.1538rem + 4.6154vw, 4rem); /* 16 - 64 */
  --sp-16-40: clamp(1rem, 0.4231rem + 2.3077vw, 2.5rem); /* 16 - 40 */
  --sp-16-32: clamp(1rem, 0.6154rem + 1.5385vw, 2rem); /* 16 - 32 */
  --sp-16-24: clamp(1rem, 0.8077rem + 0.7692vw, 1.5rem); /* 16 - 24 */
  --sp-12-32: clamp(0.75rem, 0.2692rem + 1.9231vw, 2rem); /* 12 - 32 */
  --sp-12-24: clamp(0.75rem, 0.4615rem + 1.1538vw, 1.5rem); /* 12 - 24 */
  --sp-8-32: clamp(0.5rem, -0.0769rem + 2.3077vw, 2rem); /* 8 - 32 */
  --sp-8-16: clamp(0.5rem, 0.3077rem + 0.7692vw, 1rem); /* 8 - 16 */
  --sp-6-12: clamp(0.375rem, 0.2308rem + 0.5769vw, 0.75rem); /* 6 - 12*/
  --sp-0-16: clamp(0rem, -0.3846rem + 1.5385vw, 1rem); /* 0 - 16 */
  
  --border-r--40: clamp(1.5rem, 1.1154rem + 1.5385vw, 2.5rem); /* 24 - 40 */
  --border-r--24: clamp(0.75rem, 0.4615rem + 1.1538vw, 1.5rem); /* 12 - 24 */
  --border-r--16: clamp(0.75rem, 0.6538rem + 0.3846vw, 1rem); /* 12 - 16 */
  --border-r--12: clamp(0.5rem, 0.4038rem + 0.3846vw, 0.75rem); /* 8 - 12 */
  --border-r--8: 8px;
  --border-r--6: 6px;
}

body {
    overflow-x: clip!important;
}


/* 34 - 64px */
.fs--64 {
    font-size: clamp(2.125rem, 1.4038rem + 2.8846vw, 4rem);
}
/* 32 - 44px */
.fs--48 {
    font-size: clamp(2rem, 1.7115rem + 1.1538vw, 2.75rem);
}
/* 32 - 40px */
.fs--40 {
    font-size: clamp(2rem, 1.8077rem + 0.7692vw, 2.5rem);
}
/* 26 - 36px */
.fs--36 {
    font-size: clamp(1.5rem, 1.2115rem + 1.1538vw, 2.25rem);
}
/* 26 - 36px */
.fs--20-36 {
    font-size: clamp(1.25rem, 0.8654rem + 1.5385vw, 2.25rem);
}
/* 28 - 34px */
.fs--28-34 {
    font-size: clamp(1.75rem, 1.6058rem + 0.5769vw, 2.125rem);
}
/* 24 - 32px */
.fs--32 {
    font-size: clamp(1.5rem, 1.3077rem + 0.7692vw, 2rem);
}
/* 22 - 28px */
.fs--28 {
    font-size: clamp(1.375rem, 1.2308rem + 0.5769vw, 1.75rem);
}
/* 20 - 24px */
.fs--24 {
    font-size: clamp(1.25rem, 1.1538rem + 0.3846vw, 1.5rem);
}
/* 18 - 22px */
.fs--22 {
    font-size: clamp(1.125rem, 1.0288rem + 0.3846vw, 1.375rem);
}
/* 18 - 20px */
.fs--20 {
    font-size: clamp(1.125rem, 1.0769rem + 0.1923vw, 1.25rem);
}
/* 15 - 18px */
.fs--18 {
    font-size: clamp(0.9375rem, 0.8654rem + 0.2885vw, 1.125rem);
}
/* 14 - 16px */
.fs--16 {
    font-size: 16px;
    /*font-size: clamp(0.875rem, 0.8269rem + 0.1923vw, 1rem);*/
}
/* 12 - 14px */
.fs--14 {
    font-size: clamp(0.75rem, 0.7019rem + 0.1923vw, 0.875rem)!important;
}
.fs--10--14 {
    font-size: clamp(0.625rem, 0.5288rem + 0.3846vw, 0.875rem)!important;
}
/* 10 - 12px */
.fs--10-12 {
    font-size: clamp(0.625rem, 0.5769rem + 0.1923vw, 0.75rem)!important;
}
.fs--12 {
    font-size: 12px!important;
}
.fs--10 {
    font-size: 10px;
}

.fw--800 {
    font-weight: 800;
}
.fw--700 {
    font-weight: 700;
}
.fw--600 {
    font-weight: 600;
}
.fw--500 {
    font-weight: 500;
}
.fw--400 {
    font-weight: 400;
}
.fw--300 {
    font-weight: 300;
}


.l-h--15,
.l-h--15 p{
    line-height: 1.5;
}
.l-h--13,
.l-h--13 p{
    line-height: 1.3;
}
.l-h--12
.l-h--12 p{
    line-height: 1.2;
}
.l-h--11
.l-h--11 p{
    line-height: 1.1;
}

.b-radius--40 {
    border-radius: var(--border-r--40);
}
.b-radius--24 {
    border-radius: var(--border-r--24);
}
.b-radius--16 {
    border-radius: var(--border-r--16);
}

.pad-t--xl {
    padding-top: clamp(2rem, 1.2308rem + 3.0769vw, 4rem);/* 32 - 64px */
}
.pad-b--xl {
    padding-bottom: clamp(2rem, 1.2308rem + 3.0769vw, 4rem); /* 32 - 64px */
}
.pad-t--sm {
    padding-top: clamp(1rem, 0.2308rem + 3.0769vw, 3rem); /* 16 - 48px */
}
.pad-b--sm {
    padding-bottom: clamp(1rem, 0.2308rem + 3.0769vw, 3rem); /* 16 - 48px */
}
.pad-t--0 {
    padding-top: 0!important;
}
.pad-b--0 {
    padding-bottom: 0!important;
}




.w--100 {
    width: 100%;
}

.col-wrap {
    display: flex;
    gap: var(--sp-40-80);
    flex-grow: 1;
}
.col--rev {
    flex-direction: row-reverse;
}
.col--80,
.col--75,
.col--70, 
.col--65,
.col--60,
.col--55, 
.col--50, 
.col--45,
.col--40,
.col--35,
.col--30,
.col--25,
.col--20,
.col--10 {
    position: relative;
}
.col--80 {
    width: 80%;
}
.col--75 {
    width: 75%;
}
.col--70 {
    width: 70%;
}
.col--65 {
    width: 65%;
}
.col--60 {
    width: 60%;
}
.col--55 {
    width: 55%;
}
.col--50 {
    width: 50%;
}
.col--45 {
    width: 45%;
}
.col--40 {
    width: 40%;
}
.col--35 {
    width: 35%;
}
.col--30 {
    width: 30%;
}
.col--25 {
    width: 25%;
}
.col--20 {
    width: 20%;
}
.col--10 {
    width: 10%;
}
.max-w--1200 {
    width: 100%;
    max-width: 1200px;
}
.max-w--1100 {
    width: 100%;
    max-width: 1100px;
}
.max-w--1000 {
    width: 100%;
    max-width: 1000px;
}
.max-w--900 {
    width: 100%;
    max-width: 900px;
}
.max-w--800 {
    width: 100%;
    max-width: 800px;
}
.max-w--550 {
    width: 100%;
    max-width: 550px;
}
.max-w--450 {
    width: 100%;
    max-width: 450px;
}

@media (max-width: 992px) {
    .col-wrap {
        flex-direction: column;
    }
    .col-wrap--rev {
        flex-direction: column-reverse!important
    }
    .col--80,
    .col--75,
    .col--70, 
    .col--65,
    .col--60,
    .col--55, 
    .col--50, 
    .col--45,
    .col--40,
    .col--35,
    .col--30,
    .col--25,
    .col--20,
    .col--10 {
        width: 100%;
    }
}
.vert--center {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.vert--bottom {
    display: flex;
    align-items: flex-end;
}
.align--center {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.space-between {
    justify-content: space-between;
}
.align--right {
    margin-left: auto;
}
@media (min-width: 992px) {
    .sticky {
        position: sticky;
        top: 100px;
    }
}


.img-holder img {
    width: 100%;
    object-fit: cover;
}
.mb--4 {
    margin-bottom: 4px;
}
.mb--6 {
    margin-bottom: 6px;
}
.mb--8 {
    margin-bottom: 8px;
}
.mb--12 {
    margin-bottom: 12px;
}
.mb--16 {
    margin-bottom: 16px;
}
.mb--24 {
    margin-bottom: 24px;
}
.mb--32 {
    margin-bottom: 32px;
}
.mb--40 {
    margin-bottom: 40px;
}
.mb--48 {
    margin-bottom: 48px;
}
.mb--56 {
    margin-bottom: 56px;
}
.mb--64 {
    margin-bottom: 64px;
}
.mb--80 {
    margin-bottom: 80px;
}
.mb--120 {
    margin-bottom: 120px;
}
.mt--auto {
    margin-top: auto;
}
.mt--16 {
    margin-top: 16px;
}
.mt--24 {
    margin-top: 24px;
}
.mt--12 {
    margin-top: 12px;
}
.mt--8 {
    margin-top: 8px;
}

.grid--2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--sp-16-40);
}
.grid--3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-16-40);
}
.grid--4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sp-16-24);
}
.grid--5 {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--sp-16-24);
}
.grid--6 {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--sp-16-40);
}
.grid--8 {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: var(--sp-16-40);
}
@media (max-width: 1240px) {
    .grid--5 {
        grid-template-columns: repeat(3, 1fr);
    } 
    .grid--8 {
        grid-template-columns: repeat(4, 1fr);
    } 
}
@media (max-width: 992px) {
    .grid--6 {
        grid-template-columns: repeat(3, 1fr);
    }
    .grid--3 {
        grid-template-columns: repeat(1, 1fr);
    }
   .grid--4 {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 768px) {
    .grid--2,
    .grid--3 {
        grid-template-columns: repeat(1, 1fr);
    }
    .grid--4,
    .grid--5,
    .grid--6,
    .grid--8 {
        grid-template-columns: repeat(2, 1fr);
    }
}
.gap--32 {
    gap: var(--sp-16-32);
}
.gap--24 {
    row-gap: var(--sp-16-32);
    column-gap: var(--sp-16-24);
}
.gap--16 {
    gap: var(--sp-8-16);
}
.gap--12 {
    gap: 12px;
}
.gap--8 {
    gap: 8px;
}


@media (max-width: 768px) {
    .mb--32 {
        margin-bottom: 24px;
    }
    .mb--40 {
        margin-bottom: 24px;
    }
    .mb--48 {
        margin-bottom: 32px;
    }
    .mb--64 {
        margin-bottom: 32px;
    }
    .mb--80 {
        margin-bottom: 40px;
    }
    .mb--120 {
        margin-bottom: 48px;
    }
}


.swiper-slide {
    height: unset!important;
    min-height: 100%;
}
.swiper-nav {
    position: relative;
    height: 4px;
    margin-top: 16px;
    
    .swiper-pagination-progressbar {
        background: #ddd;
        border-radius: 32px;
        overflow: hidden;
        
        .swiper-pagination-progressbar-fill {
            background: var(--color-orange1);
        }
    }
}

.button-wrap {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px 12px;
    flex-wrap: wrap;
}

.button-ren {
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2px 24px;
    font-weight: 700;
    text-decoration: none!important;
    width: fit-content;
    border-radius: 32px;
}
.button-ren.--dark {
    background: #000;
    color: #fff;
    
    &:hover {
        background: var(--color-orange1);
    }
}
.button-ren.--icon {
    gap: 12px;
}
.button-ren.--icon svg {
    width: 24px;
    height: auto;
}


.d-mobile {
    display: none!important;
}
@media (max-width: 992px) {
    .d-mobile--none {
        display: none!important; 
    }
    .d-mobile {
        display: flex!important;
    }
}



.product-box {
    border: 1px solid #DCDCDC;
    border-radius: var(--border-r--6);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    height: 100%;
    transition: .3s;
    position: relative;
    z-index: 1;
    
    .product-box__compare-btn {
        position: absolute;
        right: 12px;
        top: 12px;
        border-radius: 32px;
        background: #F4FAF5;
        height: 26px;
        color: var(--color-orange1);
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        padding: 2px 8px;
        transition: .3s;
        cursor: pointer;
        
        svg {
            height: 14px;
            width: auto;
            
            path {
                stroke: var(--color-orange1);
                transition: .3s;
            }
        }
        .woosc-btn {
            position: relative;
            top: 0;
            left: 0;
            border: none;
            padding: 0;
            background: transparent;
            text-decoration: none;
            font-weight: 600;
            transition: .3s;
            font-size: 0!important;
            position: relative;
            transition: .3s!important;
            
            .woosc-btn-icon {
                font-size: 14px;
            }
            &:before {
                display: none;
            }
            &:not(.woosc-added) .woosc-btn-icon {
               
                &:before {
                    display: none;
                }
            }
            &:after {
                content: "Porównaj";
                font-size: 12px;
                transition: .3s!important;
            }
            &.woosc-added {
                
                &:after {
                    content: "Dodano";
                }
            }
        }
        &:hover {
            background: var(--color-orange1);
            color: #fff;
            
            svg path {
                stroke: #fff
            }
        }
    }
    .product-box__compare-btn:has(.woosc-added) {
        background: var(--color-orange1);
        color: #fff;
        
        svg {
            display: none;
        }
    }
    &:hover {
        box-shadow: 0px 0px 0px 2px #c6ebca;
    }
    
    .product-box__img-holder {
        display: flex;
        
        .product-box__img {
            aspect-ratio: 1/1;
            object-fit: contain;
            object-position: center;
        }
    }
    .product-box__inner {
        display: flex;
        flex-direction: column;
        flex-grow: 1;
        padding: 12px;
        gap: 12px;
        
        .product-extra-fields {
            margin-bottom: 0!important;
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            gap: 4px 8px;
            margin-bottom: 8px;
            
            .product-extra-fields__item {
                background: #0B1215;
                color: #fff;
                font-size: 12px;
                padding: 2px 6px;
                border-radius: 32px;
                font-weight: 500;
            }           
        }
        .product-box__title {
            text-decoration: none;
        }
        .product-box__labels-wrap .product-label-box__icon svg {
            
            rect { 
                fill: #EAEAEA;
            }
            path {
                stroke: #0B1215;
            }
        }
        .product-box__short-desc {
            margin-top: -4px;
        }
        .product-box__labels-wrap {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            gap: 6px 12px;
            
            .product-label-box {
                display: flex;
                flex-direction: row;
                align-items: center;
                gap: 8px;
        
                &__icon {
                    background: #E8F5EB;
                    border-radius: 4px;
                    width: 24px;
                    height: 24px;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                }
            }
        }
        .product-box__footer {
            border-top: 1px solid #DCDCDC;
            padding-top: 12px;
            display: flex;
            flex-direction: row;
            gap: 6px;
            align-items: center;
            justify-content: space-between;

            .product-box__price {
                
                .iworks-omnibus {
                    display: none;
                }
                .woocommerce-price-suffix {
                    display: none;
                }
                del .woocommerce-Price-amount {
                    font-weight: 500;
                    font-size: 16px;
                    text-decoration: line-through;
                    color: #666;
                }
            }
            .product-box__link {
                background: var(--color-orange1);
                width: 40px;
                min-width: 40px;
                height: 40px;
                display: flex;
                justify-content: center;
                align-items: center;
                border-radius: 50%;
            }
        }
    }
}
