/*
==========================================================
FantasyFanzone WooCommerce
Version: 4.10.1
==========================================================
*/

/*========================================================
HEADER CART
========================================================*/

.ffz-header-cart{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:46px;
    height:46px;
    flex:0 0 46px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:999px;
    background:rgba(255,255,255,.055);
    color:#fff;
    text-decoration:none;
    transition:
        transform var(--ffz-transition-normal),
        border-color var(--ffz-transition-normal),
        background var(--ffz-transition-normal),
        box-shadow var(--ffz-transition-normal);
}

.ffz-header-cart:hover,
.ffz-header-cart:focus-visible{
    transform:translateY(-2px);
    border-color:rgba(124,58,237,.58);
    background:rgba(124,58,237,.14);
    box-shadow:var(--ffz-shadow-md);
    outline:none;
}

.ffz-header-cart__icon,
.ffz-header-cart__icon svg{
    display:block;
    width:21px;
    height:21px;
}

.ffz-header-cart__count{
    position:absolute;
    top:-4px;
    right:-4px;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    padding:0 5px;
    border:2px solid var(--ffz-background,#0b1020);
    border-radius:999px;
    background:var(--ffz-primary);
    color:#fff;
    font-size:10px;
    font-weight:900;
    line-height:1;
    font-variant-numeric:tabular-nums;
}

.ffz-header-cart.is-updated{
    animation:ffzCartPop .5s ease;
}

@keyframes ffzCartPop{
    0%,100%{transform:scale(1)}
    45%{transform:scale(1.12)}
}

/*========================================================
MAIN WOOCOMMERCE SURFACE
========================================================*/

.ffz-woocommerce-main{
    position:relative;
    min-height:60vh;
}

.ffz-woocommerce-section{
    padding:var(--ffz-section-padding) 0;
}

.ffz-woocommerce-container{
    min-width:0;
}

.ffz-woocommerce-container > .woocommerce,
.woocommerce-page .site-main > .woocommerce,
.ffz-account__content .woocommerce{
    width:100%;
}

/*========================================================
SHOP HEADER / BREADCRUMBS
========================================================*/

.woocommerce .woocommerce-breadcrumb{
    margin:0 0 18px;
    color:var(--ffz-text-muted);
    font-size:13px;
}

.woocommerce .woocommerce-breadcrumb a{
    color:#c4b5fd;
    text-decoration:none;
}

.woocommerce .woocommerce-products-header,
.ffz-woocommerce-container .woocommerce-products-header{
    margin-bottom:26px;
}

.woocommerce .woocommerce-products-header__title.page-title,
.ffz-woocommerce-container .product_title,
.woocommerce-page h1.page-title{
    margin:0;
    color:#fff;
    font-size:clamp(32px,4vw,52px);
    font-weight:850;
    line-height:1.08;
    letter-spacing:-.03em;
}

.woocommerce .term-description,
.woocommerce .woocommerce-products-header__description{
    max-width:760px;
    margin-top:14px;
    color:var(--ffz-text-muted);
    font-size:15px;
    line-height:1.75;
}

/*========================================================
CATEGORY NAVIGATION
========================================================*/

.ffz-shop-categories{
    display:flex;
    align-items:center;
    gap:9px;
    margin:0 0 24px;
    padding:6px 0 2px;
    overflow-x:auto;
    scrollbar-width:none;
}

.ffz-shop-categories::-webkit-scrollbar{display:none}

.ffz-shop-categories__link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:0 15px;
    flex:0 0 auto;
    border:1px solid rgba(255,255,255,.08);
    border-radius:999px;
    background:rgba(255,255,255,.035);
    color:var(--ffz-text-muted);
    font-size:12px;
    font-weight:750;
    text-decoration:none;
    transition:var(--ffz-transition-normal);
}

.ffz-shop-categories__link:hover,
.ffz-shop-categories__link.is-active{
    border-color:rgba(124,58,237,.45);
    background:rgba(124,58,237,.14);
    color:#fff;
}

/*========================================================
RESULT COUNT / SORT
========================================================*/

.woocommerce .woocommerce-result-count{
    margin:10px 0 24px;
    color:var(--ffz-text-muted);
    font-size:13px;
}

.woocommerce .woocommerce-ordering{
    margin:0 0 24px;
}

.woocommerce .woocommerce-ordering select{
    min-height:44px;
    padding:0 38px 0 14px;
    border:1px solid var(--ffz-border);
    border-radius:12px;
    background:var(--ffz-surface);
    color:#fff;
    font:inherit;
    font-size:13px;
}

/*========================================================
ARCHIVE PRODUCT GRID
========================================================*/

.woocommerce ul.products,
.woocommerce-page ul.products{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:var(--ffz-grid-gap);
    clear:both;
    margin:0;
    padding:0;
    list-style:none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after{
    display:none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
    float:none;
    width:auto;
    margin:0;
}

.ffz-product-card--archive{
    height:100%;
}

/*========================================================
PAGINATION
========================================================*/

.woocommerce nav.woocommerce-pagination{
    margin-top:38px;
    text-align:center;
}

.woocommerce nav.woocommerce-pagination ul{
    display:inline-flex;
    gap:8px;
    margin:0;
    padding:0;
    border:0;
}

.woocommerce nav.woocommerce-pagination ul li{
    border:0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    height:42px;
    padding:0 12px;
    border:1px solid var(--ffz-border);
    border-radius:12px;
    background:rgba(255,255,255,.035);
    color:#fff;
    font-weight:750;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover{
    border-color:transparent;
    background:var(--ffz-gradient-primary);
    color:#fff;
}

/*========================================================
SINGLE PRODUCT
========================================================*/

.woocommerce div.product{
    min-width:0;
}

.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product div.summary{
    margin-bottom:42px;
}

.woocommerce div.product .woocommerce-product-gallery{
    overflow:hidden;
    border:1px solid var(--ffz-border);
    border-radius:24px;
    background:rgba(255,255,255,.035);
}

.woocommerce div.product .woocommerce-product-gallery__wrapper{
    margin:0;
}

.woocommerce div.product .woocommerce-product-gallery__image a,
.woocommerce div.product .woocommerce-product-gallery__image img{
    display:block;
    width:100%;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
    padding:12px;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li{
    width:auto;
    float:none;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img{
    border:1px solid transparent;
    border-radius:10px;
    opacity:.7;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active{
    border-color:var(--ffz-primary);
    opacity:1;
}

.woocommerce div.product div.summary{
    padding:30px;
    border:1px solid var(--ffz-border);
    border-radius:24px;
    background:linear-gradient(180deg,rgba(124,58,237,.07),rgba(255,255,255,.025));
    box-shadow:var(--ffz-shadow-md);
}

.woocommerce div.product .product_title{
    margin-bottom:12px;
    font-size:clamp(30px,4vw,48px);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price{
    color:#c4b5fd;
    font-size:26px;
    font-weight:850;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del{
    color:var(--ffz-text-muted);
    font-size:16px;
    opacity:.7;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins{
    color:var(--ffz-success);
    text-decoration:none;
}

.woocommerce-product-details__short-description{
    margin:18px 0;
    color:var(--ffz-text-muted);
    line-height:1.75;
}

.woocommerce div.product form.cart{
    display:flex;
    align-items:center;
    gap:12px;
    margin:24px 0;
}

.woocommerce div.product form.cart .button,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt{
    min-height:50px;
    padding:0 24px;
    border:0;
    border-radius:14px;
    background:var(--ffz-gradient-primary);
    color:#fff;
    font-weight:800;
    box-shadow:var(--ffz-shadow-md);
}

.woocommerce div.product form.cart .button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover{
    background:var(--ffz-gradient-primary);
    color:#fff;
    filter:brightness(1.06);
}

.woocommerce div.product .product_meta{
    display:flex;
    flex-direction:column;
    gap:7px;
    padding-top:18px;
    border-top:1px solid rgba(255,255,255,.07);
    color:var(--ffz-text-muted);
    font-size:12px;
}

.woocommerce div.product .product_meta a{color:#c4b5fd}

/*========================================================
QUANTITY
========================================================*/

.woocommerce .quantity{
    display:inline-grid;
    grid-template-columns:38px 56px 38px;
    align-items:center;
    overflow:hidden;
    border:1px solid var(--ffz-border);
    border-radius:12px;
    background:rgba(255,255,255,.035);
}

.woocommerce .quantity .qty{
    width:56px;
    height:44px;
    padding:0 4px;
    border:0;
    border-right:1px solid rgba(255,255,255,.06);
    border-left:1px solid rgba(255,255,255,.06);
    outline:0;
    background:transparent;
    color:#fff;
    text-align:center;
    -moz-appearance:textfield;
}

.woocommerce .quantity .qty::-webkit-inner-spin-button,
.woocommerce .quantity .qty::-webkit-outer-spin-button{
    margin:0;
    -webkit-appearance:none;
}

.ffz-quantity-button{
    width:38px;
    height:44px;
    padding:0;
    border:0;
    background:transparent;
    color:#fff;
    font-size:18px;
    cursor:pointer;
}

.ffz-quantity-button:hover{background:rgba(124,58,237,.14)}

/*========================================================
VARIABLE PRODUCTS
========================================================*/

.woocommerce div.product form.cart .variations{
    margin-bottom:18px;
}

.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th{
    padding:6px 0;
    color:#fff;
}

.woocommerce div.product form.cart .variations select,
.woocommerce .woocommerce-input-wrapper select{
    min-height:44px;
    padding:0 12px;
    border:1px solid var(--ffz-border);
    border-radius:12px;
    background:var(--ffz-surface);
    color:#fff;
}

.woocommerce div.product form.cart .reset_variations{
    color:#c4b5fd;
    font-size:12px;
}

/*========================================================
TABS / RELATED PRODUCTS
========================================================*/

.woocommerce div.product .woocommerce-tabs,
.woocommerce .related.products,
.woocommerce .upsells.products{
    clear:both;
    margin-top:42px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs{
    display:flex;
    gap:8px;
    margin:0 0 18px;
    padding:0;
    overflow-x:auto;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none}

.woocommerce div.product .woocommerce-tabs ul.tabs li{
    margin:0;
    padding:0;
    border:1px solid var(--ffz-border);
    border-radius:999px;
    background:rgba(255,255,255,.035);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}

.woocommerce div.product .woocommerce-tabs ul.tabs li a{
    padding:10px 16px;
    color:var(--ffz-text-muted);
    font-size:12px;
    font-weight:800;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active{
    border-color:rgba(124,58,237,.45);
    background:rgba(124,58,237,.14);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:#fff}

.woocommerce div.product .woocommerce-tabs .panel{
    padding:24px;
    border:1px solid var(--ffz-border);
    border-radius:18px;
    background:rgba(255,255,255,.025);
    color:var(--ffz-text-muted);
    line-height:1.75;
}

.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2{
    margin:0 0 24px;
    color:#fff;
    font-size:28px;
}

/*========================================================
NOTICES
========================================================*/

.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
    margin:0 0 22px !important;
    padding:16px 18px 16px 48px !important;
    border:1px solid var(--ffz-border);
    border-top:1px solid var(--ffz-border);
    border-radius:14px;
    background:rgba(255,255,255,.04);
    color:#fff;
    line-height:1.6;
}

.woocommerce-message{border-color:rgba(34,197,94,.26)}
.woocommerce-info{border-color:rgba(59,130,246,.26)}
.woocommerce-error{border-color:rgba(239,68,68,.30)}

.woocommerce-message::before{color:var(--ffz-success)}
.woocommerce-info::before{color:#60a5fa}
.woocommerce-error::before{color:var(--ffz-danger)}

.woocommerce-message a.button,
.woocommerce-info a.button{
    border-radius:10px;
}

/*========================================================
FORMS
========================================================*/

.woocommerce form .form-row label{
    color:#fff;
    font-size:13px;
    font-weight:700;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container--default .select2-selection--single{
    min-height:48px;
    border:1px solid var(--ffz-border);
    border-radius:12px;
    background:rgba(255,255,255,.035);
    color:#fff;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea{
    padding:11px 14px;
}

.woocommerce form .form-row textarea{min-height:110px}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus{
    border-color:var(--ffz-primary);
    outline:none;
    box-shadow:0 0 0 3px rgba(124,58,237,.14);
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{
    color:#fff;
    line-height:46px;
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{
    height:46px;
}

/*========================================================
CART
========================================================*/

.woocommerce-cart .woocommerce,
.ffz-woocommerce-cart .woocommerce{
    color:#fff;
}

.woocommerce table.shop_table{
    overflow:hidden;
    border:1px solid var(--ffz-border);
    border-radius:18px;
    background:rgba(255,255,255,.025);
    border-collapse:separate;
}

.woocommerce table.shop_table th{
    padding:16px;
    color:var(--ffz-text-muted);
    font-size:11px;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.woocommerce table.shop_table td{
    padding:16px;
    border-top:1px solid rgba(255,255,255,.06);
    color:#fff;
}

.woocommerce table.shop_table a{color:#fff}

.woocommerce table.shop_table .product-thumbnail img{
    width:70px;
    border-radius:12px;
}

.woocommerce a.remove{
    display:flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    color:#fca5a5 !important;
}

.woocommerce a.remove:hover{
    background:rgba(239,68,68,.14);
    color:#fff !important;
}

.woocommerce .cart .button,
.woocommerce .cart input.button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button{
    min-height:44px;
    padding:0 17px;
    border:1px solid var(--ffz-border);
    border-radius:12px;
    background:rgba(255,255,255,.055);
    color:#fff;
    font-weight:750;
}

.woocommerce .cart .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover{
    border-color:rgba(124,58,237,.42);
    background:rgba(124,58,237,.14);
    color:#fff;
}

.woocommerce .coupon .input-text{
    min-width:160px;
    min-height:44px;
    padding:0 12px !important;
    border:1px solid var(--ffz-border) !important;
    border-radius:12px !important;
    background:rgba(255,255,255,.035);
    color:#fff;
}

.woocommerce .cart-collaterals .cart_totals{
    width:min(100%,520px);
    margin-left:auto;
    padding:24px;
    border:1px solid var(--ffz-border);
    border-radius:18px;
    background:rgba(255,255,255,.03);
}

.woocommerce .cart_totals h2{
    margin-top:0;
    color:#fff;
}

/*========================================================
CHECKOUT
========================================================*/

.woocommerce-checkout form.checkout{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
    gap:28px;
}

.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review{
    float:none;
    width:auto;
}

.woocommerce-checkout #customer_details{
    grid-column:1;
}

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review{
    grid-column:2;
}

.woocommerce-checkout #order_review_heading{
    align-self:end;
    margin:0 0 -10px;
    color:#fff;
}

.woocommerce-checkout #order_review{
    padding:22px;
    border:1px solid var(--ffz-border);
    border-radius:18px;
    background:rgba(255,255,255,.03);
}

.woocommerce-checkout h3{
    color:#fff;
}

.woocommerce-checkout #payment{
    background:transparent;
}

.woocommerce-checkout #payment ul.payment_methods{
    padding:16px 0;
    border-bottom:1px solid rgba(255,255,255,.07);
}

.woocommerce-checkout #payment div.payment_box{
    border-radius:12px;
    background:rgba(255,255,255,.055);
    color:var(--ffz-text-muted);
}

.woocommerce-checkout #payment div.payment_box::before{
    border-bottom-color:rgba(255,255,255,.055);
}

/*========================================================
ORDER / ACCOUNT CONTENT
========================================================*/

.woocommerce-order-details,
.woocommerce-customer-details,
.woocommerce-MyAccount-content{
    color:#fff;
}

.woocommerce-order-details h2,
.woocommerce-customer-details h2,
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3{
    color:#fff;
}

.woocommerce-Address{
    padding:18px;
    border:1px solid var(--ffz-border);
    border-radius:16px;
    background:rgba(255,255,255,.025);
}

.woocommerce address{
    color:var(--ffz-text-muted);
    line-height:1.7;
}

/*========================================================
BLOCK CART / CHECKOUT COMPATIBILITY
========================================================*/

.wc-block-cart,
.wc-block-checkout,
.wc-block-components-sidebar,
.wc-block-components-order-summary{
    color:#fff;
}

.wc-block-components-sidebar,
.wc-block-components-totals-wrapper,
.wc-block-cart-items,
.wc-block-components-order-summary{
    border-color:var(--ffz-border) !important;
}

.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input{
    border-color:var(--ffz-border) !important;
    border-radius:12px !important;
    background:rgba(255,255,255,.035) !important;
    color:#fff !important;
}

.wc-block-components-button:not(.is-link){
    border-radius:12px;
    background:var(--ffz-gradient-primary);
    color:#fff;
}

/*========================================================
EMPTY CART
========================================================*/

.woocommerce .cart-empty,
.woocommerce .return-to-shop{
    text-align:center;
}

.woocommerce .cart-empty{
    margin-top:20px !important;
}

/*========================================================
TABLET
========================================================*/

@media(max-width:1100px){
    .woocommerce ul.products,
    .woocommerce-page ul.products{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .woocommerce-checkout form.checkout{
        grid-template-columns:1fr;
    }

    .woocommerce-checkout #customer_details,
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review{
        grid-column:1;
    }
}

/*========================================================
MOBILE
========================================================*/

@media(max-width:768px){
    .ffz-woocommerce-section{
        padding:64px 0;
    }

    .ffz-header-cart{
        width:42px;
        height:42px;
        flex-basis:42px;
    }

    .ffz-header-cart__count{
        min-width:18px;
        height:18px;
        font-size:9px;
    }

    .woocommerce ul.products,
    .woocommerce-page ul.products{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:14px;
    }

    .woocommerce div.product div.summary{
        padding:20px;
    }

    .woocommerce div.product form.cart{
        align-items:stretch;
        flex-wrap:wrap;
    }

    .woocommerce div.product form.cart .button{
        flex:1;
    }

    .woocommerce table.shop_table_responsive tr,
    .woocommerce-page table.shop_table_responsive tr{
        margin-bottom:14px;
        overflow:hidden;
        border:1px solid var(--ffz-border);
        border-radius:14px;
        background:rgba(255,255,255,.025);
    }

    .woocommerce table.shop_table_responsive tr td,
    .woocommerce-page table.shop_table_responsive tr td{
        border-top:1px solid rgba(255,255,255,.05);
    }

    .woocommerce .cart-collaterals .cart_totals{
        width:100%;
        padding:18px;
    }

    .woocommerce-checkout #order_review{
        padding:16px;
    }
}

/*========================================================
SMALL MOBILE
========================================================*/

@media(max-width:480px){
    .ffz-header-cart{
        width:38px;
        height:38px;
        flex-basis:38px;
    }

    .ffz-header-cart__icon,
    .ffz-header-cart__icon svg{
        width:18px;
        height:18px;
    }

    .woocommerce ul.products,
    .woocommerce-page ul.products{
        grid-template-columns:1fr;
    }

    .woocommerce .woocommerce-products-header__title.page-title,
    .woocommerce-page h1.page-title{
        font-size:30px;
    }
}

/*========================================================
REDUCED MOTION
========================================================*/

@media(prefers-reduced-motion:reduce){
    .ffz-header-cart,
    .ffz-shop-categories__link{
        transition:none;
    }

    .ffz-header-cart.is-updated{
        animation:none;
    }
}

/*========================================================
COMPACT HEADER WITH CART
========================================================*/

@media(max-width:480px){
    .ffz-header__inner{
        gap:8px;
    }

    .ffz-logo__custom .custom-logo{
        max-width:105px;
    }

    .ffz-header__login{
        max-width:76px;
        padding:0 8px;
    }
}

@media(max-width:360px){
    .ffz-logo__custom .custom-logo{
        max-width:96px;
    }

    .ffz-header__login{
        max-width:68px;
        padding:0 7px;
        font-size:10px;
    }

    .ffz-header-cart{
        width:36px;
        height:36px;
        flex-basis:36px;
    }

    .ffz-mobile-toggle{
        width:40px;
        height:40px;
        flex-basis:40px;
    }
}


/*========================================================
4.10.1 MOBILE STABILITY HOTFIX
========================================================*/

/* Keep every WooCommerce surface inside the viewport. */
.ffz-woocommerce-main,
.ffz-woocommerce-section,
.ffz-woocommerce-container,
.ffz-page-content > .woocommerce,
.ffz-page-content > .wc-block-cart,
.ffz-page-content > .wc-block-checkout,
.woocommerce,
.woocommerce-page{
    min-width:0;
    max-width:100%;
}

.woocommerce *,
.woocommerce-page *,
.wc-block-cart *,
.wc-block-checkout *{
    box-sizing:border-box;
}

/* Cart and checkout need more horizontal room than editorial pages. */
body.ffz-woocommerce-cart .ffz-page-article,
body.ffz-woocommerce-checkout .ffz-page-article{
    max-width:1280px;
}

/* The icon must remain visible before and after Woo fragments refresh. */
.ffz-header-cart__icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:currentColor;
    opacity:1;
    visibility:visible;
}

.ffz-header-cart__icon svg{
    display:block !important;
    flex:0 0 auto;
    overflow:visible;
    stroke:currentColor;
    opacity:1;
    visibility:visible;
}

/* Prevent WooCommerce/Blocks from forcing horizontal page overflow. */
.wc-block-cart,
.wc-block-checkout,
.wc-block-components-main,
.wc-block-components-sidebar,
.wc-block-cart__main,
.wc-block-cart__sidebar,
.wc-block-checkout__main,
.wc-block-checkout__sidebar{
    min-width:0 !important;
    max-width:100% !important;
}

.wc-block-cart table,
.wc-block-checkout table,
.woocommerce table.shop_table{
    max-width:100%;
}

@media(max-width:768px){

    /* WooCommerce archive / single-product mobile reset. */
    .ffz-woocommerce-section{
        padding:48px 0;
    }

    .woocommerce div.product .woocommerce-product-gallery,
    .woocommerce div.product div.images,
    .woocommerce div.product div.summary,
    .woocommerce-page div.product div.images,
    .woocommerce-page div.product div.summary{
        float:none !important;
        width:100% !important;
        max-width:100% !important;
        margin-right:0 !important;
        margin-left:0 !important;
    }

    .woocommerce div.product div.summary{
        padding:18px;
    }

    .woocommerce div.product form.cart,
    .woocommerce div.product form.cart .variations_button{
        width:100%;
    }

    .woocommerce div.product form.cart .button,
    .woocommerce div.product form.cart .single_add_to_cart_button{
        width:100%;
        flex:1 1 100%;
    }

    .woocommerce .quantity{
        flex:0 0 auto;
    }

    /* Classic cart: turn controls into touch-friendly stacked rows. */
    .woocommerce table.shop_table_responsive,
    .woocommerce-page table.shop_table_responsive{
        width:100%;
        border:0;
        background:transparent;
    }

    .woocommerce table.shop_table_responsive tbody,
    .woocommerce-page table.shop_table_responsive tbody{
        display:block;
        width:100%;
    }

    .woocommerce table.shop_table_responsive tr,
    .woocommerce-page table.shop_table_responsive tr{
        display:block;
        width:100%;
    }

    .woocommerce table.shop_table_responsive tr td,
    .woocommerce-page table.shop_table_responsive tr td{
        width:100%;
        min-width:0;
        overflow-wrap:anywhere;
    }

    .woocommerce table.cart td.actions,
    .woocommerce-page table.cart td.actions{
        display:flex !important;
        flex-direction:column;
        align-items:stretch;
        gap:10px;
        text-align:initial !important;
    }

    .woocommerce table.cart td.actions .coupon,
    .woocommerce-page table.cart td.actions .coupon{
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        gap:8px;
        width:100%;
    }

    .woocommerce table.cart td.actions .coupon .input-text,
    .woocommerce-page table.cart td.actions .coupon .input-text{
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
    }

    .woocommerce table.cart td.actions > .button,
    .woocommerce-page table.cart td.actions > .button{
        width:100%;
        margin:0 !important;
    }

    .woocommerce .cart-collaterals,
    .woocommerce .cart-collaterals .cart_totals,
    .woocommerce-page .cart-collaterals,
    .woocommerce-page .cart-collaterals .cart_totals{
        float:none;
        width:100% !important;
        max-width:100%;
    }

    /* Checkout: remove desktop floats and force full-width controls. */
    .woocommerce-checkout form.checkout,
    .woocommerce-checkout #customer_details,
    .woocommerce-checkout #order_review,
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout .col2-set,
    .woocommerce-checkout .col2-set .col-1,
    .woocommerce-checkout .col2-set .col-2{
        float:none !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .woocommerce form .form-row,
    .woocommerce form .form-row-first,
    .woocommerce form .form-row-last,
    .woocommerce form .form-row-wide{
        float:none !important;
        width:100% !important;
        max-width:100%;
    }

    .woocommerce .select2-container,
    .woocommerce form .form-row input.input-text,
    .woocommerce form .form-row textarea,
    .woocommerce form .form-row select{
        width:100% !important;
        max-width:100%;
    }

    /* WooCommerce Cart / Checkout blocks. */
    .wc-block-cart,
    .wc-block-checkout{
        width:100%;
        overflow-x:hidden;
    }

    .wc-block-cart__main,
    .wc-block-cart__sidebar,
    .wc-block-checkout__main,
    .wc-block-checkout__sidebar{
        width:100% !important;
        flex-basis:100% !important;
    }

    .wc-block-components-sidebar-layout{
        display:flex !important;
        flex-direction:column !important;
        gap:22px;
    }

    .wc-block-cart-items{
        width:100% !important;
        table-layout:fixed;
    }

    .wc-block-cart-item__image{
        width:72px !important;
    }

    .wc-block-components-button{
        max-width:100%;
    }
}

@media(max-width:480px){

    .ffz-woocommerce-section{
        padding:40px 0;
    }

    /* Keep two products per row on practical phones; use one only when needed. */
    .woocommerce ul.products,
    .woocommerce-page ul.products{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
    }

    .ffz-product-card__content{
        padding:14px;
    }

    .ffz-product-card__title{
        font-size:14px;
    }

    .ffz-product-card__price{
        font-size:16px;
    }

    .ffz-product-card__actions{
        flex-direction:column;
        align-items:stretch;
    }

    .ffz-product-card__actions .button,
    .ffz-product-card__actions .added_to_cart{
        width:100%;
        min-width:0;
        padding:0 10px;
        font-size:11px;
    }

    .woocommerce table.cart td.actions .coupon,
    .woocommerce-page table.cart td.actions .coupon{
        grid-template-columns:1fr;
    }

    .woocommerce table.cart td.actions .coupon .button,
    .woocommerce-page table.cart td.actions .coupon .button{
        width:100%;
    }
}

@media(max-width:360px){
    .woocommerce ul.products,
    .woocommerce-page ul.products{
        grid-template-columns:1fr;
    }
}

/*========================================================
4.10.2 MOBILE SHOP CARD REFINEMENT
========================================================*/

@media(max-width:768px){
    body.woocommerce-shop .woocommerce ul.products,
    body.woocommerce-shop .woocommerce-page ul.products,
    body.tax-product_cat .woocommerce ul.products,
    body.tax-product_tag .woocommerce ul.products{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:12px !important;
    }

    body.woocommerce-shop .ffz-product-card,
    body.tax-product_cat .ffz-product-card,
    body.tax-product_tag .ffz-product-card{
        min-height:0;
        border-radius:16px;
    }

    body.woocommerce-shop .ffz-product-card__image,
    body.tax-product_cat .ffz-product-card__image,
    body.tax-product_tag .ffz-product-card__image{
        aspect-ratio:1 / 1;
        padding:6px;
        background:#f7f7f8;
    }

    body.woocommerce-shop .ffz-product-card__image img,
    body.tax-product_cat .ffz-product-card__image img,
    body.tax-product_tag .ffz-product-card__image img{
        width:100%;
        height:100%;
        object-fit:contain;
        object-position:center;
    }

    body.woocommerce-shop .ffz-product-card__content,
    body.tax-product_cat .ffz-product-card__content,
    body.tax-product_tag .ffz-product-card__content{
        padding:12px;
    }

    body.woocommerce-shop .ffz-product-card__title,
    body.tax-product_cat .ffz-product-card__title,
    body.tax-product_tag .ffz-product-card__title{
        display:-webkit-box;
        min-height:2.7em;
        margin:0 0 8px;
        overflow:hidden;
        font-size:13px;
        line-height:1.35;
        overflow-wrap:anywhere;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:2;
    }

    body.woocommerce-shop .ffz-product-card__rating,
    body.tax-product_cat .ffz-product-card__rating,
    body.tax-product_tag .ffz-product-card__rating{
        margin-bottom:7px;
    }

    body.woocommerce-shop .ffz-product-card__price,
    body.tax-product_cat .ffz-product-card__price,
    body.tax-product_tag .ffz-product-card__price{
        font-size:15px;
        line-height:1.25;
    }

    body.woocommerce-shop .ffz-product-card__price del,
    body.tax-product_cat .ffz-product-card__price del,
    body.tax-product_tag .ffz-product-card__price del{
        display:block;
        margin:0 0 2px;
        font-size:10px;
    }

    body.woocommerce-shop .ffz-product-card__actions,
    body.tax-product_cat .ffz-product-card__actions,
    body.tax-product_tag .ffz-product-card__actions{
        gap:6px;
        margin-top:10px;
    }

    body.woocommerce-shop .ffz-product-card__actions .button,
    body.woocommerce-shop .ffz-product-card__actions .added_to_cart,
    body.tax-product_cat .ffz-product-card__actions .button,
    body.tax-product_cat .ffz-product-card__actions .added_to_cart,
    body.tax-product_tag .ffz-product-card__actions .button,
    body.tax-product_tag .ffz-product-card__actions .added_to_cart{
        width:100%;
        min-width:0;
        min-height:38px;
        padding:0 8px;
        overflow:hidden;
        font-size:10px;
        line-height:1.15;
        text-align:center;
        text-overflow:ellipsis;
        white-space:normal;
    }
}

@media(max-width:380px){
    body.woocommerce-shop .woocommerce ul.products,
    body.woocommerce-shop .woocommerce-page ul.products,
    body.tax-product_cat .woocommerce ul.products,
    body.tax-product_tag .woocommerce ul.products{
        gap:8px !important;
    }

    body.woocommerce-shop .ffz-product-card__content,
    body.tax-product_cat .ffz-product-card__content,
    body.tax-product_tag .ffz-product-card__content{
        padding:10px 9px;
    }

    body.woocommerce-shop .ffz-product-card__title,
    body.tax-product_cat .ffz-product-card__title,
    body.tax-product_tag .ffz-product-card__title{
        font-size:12px;
    }

    body.woocommerce-shop .ffz-product-card__rating,
    body.tax-product_cat .ffz-product-card__rating,
    body.tax-product_tag .ffz-product-card__rating{
        display:none;
    }
}

/*========================================================
4.10.3 MOBILE SHOP GRID — TWO COMPACT PRODUCTS PER ROW
========================================================*/

@media(max-width:768px){
    .ffz-woocommerce-container .woocommerce ul.products,
    .ffz-woocommerce-container .woocommerce-page ul.products,
    .woocommerce-page .ffz-woocommerce-container ul.products,
    body.woocommerce-shop ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:10px !important;
        width:100% !important;
    }

    .ffz-woocommerce-container ul.products li.product,
    body.woocommerce-shop ul.products li.product,
    body.tax-product_cat ul.products li.product,
    body.tax-product_tag ul.products li.product{
        min-width:0 !important;
        width:auto !important;
        margin:0 !important;
    }

    .ffz-woocommerce-container .ffz-product-card,
    body.woocommerce-shop .ffz-product-card,
    body.tax-product_cat .ffz-product-card,
    body.tax-product_tag .ffz-product-card{
        min-width:0;
        height:100%;
        border-radius:14px;
    }

    .ffz-woocommerce-container .ffz-product-card__image,
    body.woocommerce-shop .ffz-product-card__image,
    body.tax-product_cat .ffz-product-card__image,
    body.tax-product_tag .ffz-product-card__image{
        aspect-ratio:1 / 1;
        padding:4px;
        background:#f7f7f8;
    }

    .ffz-woocommerce-container .ffz-product-card__image img,
    body.woocommerce-shop .ffz-product-card__image img,
    body.tax-product_cat .ffz-product-card__image img,
    body.tax-product_tag .ffz-product-card__image img{
        width:100% !important;
        height:100% !important;
        object-fit:contain !important;
        object-position:center !important;
        transform:none !important;
    }

    .ffz-woocommerce-container .ffz-product-card__content,
    body.woocommerce-shop .ffz-product-card__content,
    body.tax-product_cat .ffz-product-card__content,
    body.tax-product_tag .ffz-product-card__content{
        padding:10px 9px 11px;
    }

    .ffz-woocommerce-container .ffz-product-card__title,
    body.woocommerce-shop .ffz-product-card__title,
    body.tax-product_cat .ffz-product-card__title,
    body.tax-product_tag .ffz-product-card__title{
        display:-webkit-box;
        min-height:2.55em;
        margin:0 0 6px;
        overflow:hidden;
        font-size:11.5px;
        font-weight:750;
        line-height:1.28;
        overflow-wrap:normal;
        word-break:normal;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:2;
    }

    .ffz-woocommerce-container .ffz-product-card__title a,
    body.woocommerce-shop .ffz-product-card__title a,
    body.tax-product_cat .ffz-product-card__title a,
    body.tax-product_tag .ffz-product-card__title a{
        display:block;
    }

    .ffz-woocommerce-container .ffz-product-card__rating,
    body.woocommerce-shop .ffz-product-card__rating,
    body.tax-product_cat .ffz-product-card__rating,
    body.tax-product_tag .ffz-product-card__rating{
        display:none;
    }

    .ffz-woocommerce-container .ffz-product-card__price,
    body.woocommerce-shop .ffz-product-card__price,
    body.tax-product_cat .ffz-product-card__price,
    body.tax-product_tag .ffz-product-card__price{
        margin-top:2px;
        font-size:13px;
        line-height:1.2;
    }

    .ffz-woocommerce-container .ffz-product-card__price del,
    body.woocommerce-shop .ffz-product-card__price del,
    body.tax-product_cat .ffz-product-card__price del,
    body.tax-product_tag .ffz-product-card__price del{
        display:block;
        margin:0 0 1px;
        font-size:9px;
    }

    .ffz-woocommerce-container .ffz-product-card__actions,
    body.woocommerce-shop .ffz-product-card__actions,
    body.tax-product_cat .ffz-product-card__actions,
    body.tax-product_tag .ffz-product-card__actions{
        display:block;
        margin-top:8px;
    }

    .ffz-woocommerce-container .ffz-product-card__actions .button,
    .ffz-woocommerce-container .ffz-product-card__actions .added_to_cart,
    body.woocommerce-shop .ffz-product-card__actions .button,
    body.woocommerce-shop .ffz-product-card__actions .added_to_cart,
    body.tax-product_cat .ffz-product-card__actions .button,
    body.tax-product_cat .ffz-product-card__actions .added_to_cart,
    body.tax-product_tag .ffz-product-card__actions .button,
    body.tax-product_tag .ffz-product-card__actions .added_to_cart{
        display:flex;
        width:100%;
        min-width:0;
        min-height:34px;
        padding:5px 6px;
        border-radius:9px;
        font-size:9px;
        line-height:1.15;
        text-align:center;
        white-space:normal;
        overflow-wrap:anywhere;
    }

    .ffz-woocommerce-container .ffz-product-card__badge,
    body.woocommerce-shop .ffz-product-card__badge,
    body.tax-product_cat .ffz-product-card__badge,
    body.tax-product_tag .ffz-product-card__badge{
        padding:4px 6px;
        font-size:8px;
    }
}

@media(max-width:360px){
    .ffz-woocommerce-container .woocommerce ul.products,
    .ffz-woocommerce-container .woocommerce-page ul.products,
    .woocommerce-page .ffz-woocommerce-container ul.products,
    body.woocommerce-shop ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:7px !important;
    }

    .ffz-woocommerce-container .ffz-product-card__content,
    body.woocommerce-shop .ffz-product-card__content,
    body.tax-product_cat .ffz-product-card__content,
    body.tax-product_tag .ffz-product-card__content{
        padding:8px 7px 9px;
    }

    .ffz-woocommerce-container .ffz-product-card__title,
    body.woocommerce-shop .ffz-product-card__title,
    body.tax-product_cat .ffz-product-card__title,
    body.tax-product_tag .ffz-product-card__title{
        font-size:10.5px;
    }
}
