/* Fancy Labs 2 — shop, product, cart, checkout, account + styles for functions.php output. */

/* ---------- Notices ---------- */
.fl2 .woocommerce-message, .fl2 .woocommerce-info, .fl2 .woocommerce-error, .fl2 .woocommerce-notice { border: 0; border-left: 5px solid var(--fl-green); border-radius: var(--fl-radius-sm); background: #fff; box-shadow: 0 1px 0 var(--fl-line), 0 0 0 1px var(--fl-line) inset; padding: 14px 18px 14px 50px; font-size: 15px; font-weight: 500; color: var(--fl-ink); }
.fl2 .woocommerce-info { border-left-color: var(--fl-honey); }
.fl2 .woocommerce-error { border-left-color: var(--fl-red); }
.fl2 .woocommerce-message::before { color: var(--fl-green); }
.fl2 .woocommerce-info::before { color: var(--fl-honey); }
.fl2 .woocommerce-message .button, .fl2 .woocommerce-info .button { float: right; min-height: 38px; padding: 6px 14px; }

/* ---------- Progress steps ---------- */
.fl-steps { display: flex; gap: 8px; list-style: none; margin: 0 0 22px; padding: 0; counter-reset: none; }
.fl-steps li { flex: 1; display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: var(--fl-radius-sm); background: #fff; border: 1px solid var(--fl-line); font-weight: 700; font-size: 14px; color: var(--fl-muted); }
.fl-steps li span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--fl-bg); font-size: 13px; flex-shrink: 0; }
.fl-steps li.is-current { border-color: var(--fl-green); color: var(--fl-ink); box-shadow: inset 0 -3px 0 var(--fl-green); }
.fl-steps li.is-current span { background: var(--fl-green); color: #fff; }
.fl-steps li.is-done { color: var(--fl-green-dark); }
.fl-steps li.is-done span { background: var(--fl-green-soft); color: var(--fl-green); }

/* ---------- Trust box ---------- */
.fl-trust { margin: 18px 0 0; padding: 14px 16px; border-radius: var(--fl-radius-sm); background: var(--fl-green-soft); font-size: 14px; }
.fl-trust-flag { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; font-weight: 700; color: var(--fl-green-dark); }
.fl-trust ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.fl-trust li { display: flex; align-items: center; gap: 10px; }
.fl-trust .fl-icon { color: var(--fl-green); }
.fl-trust a { font-weight: 700; }

/* ---------- Shop archive ---------- */
.fl2 .shop-content { max-width: var(--fl-container); padding-inline: var(--fl-gutter); padding-top: clamp(16px, 2.5vw, 28px); }
.fl2 .woocommerce-breadcrumb { font-size: 13px; color: var(--fl-muted) !important; margin: 0 0 14px !important; }
.fl2 .woocommerce-breadcrumb a { color: var(--fl-muted) !important; }
.fl2 .woocommerce-products-header__title, .fl2 .product_title { font-size: clamp(26px, 3.4vw, 38px) !important; margin-bottom: 8px; }
.fl2 .term-description { color: var(--fl-muted); margin-bottom: 14px; }
.fl2 .woocommerce-result-count { font-size: 14px; color: var(--fl-muted); margin: 10px 0 16px !important; }
.fl2 .woocommerce-ordering select, .fl2 select.orderby { min-height: 44px; padding: 8px 36px 8px 12px; border: 1px solid var(--fl-line); border-radius: var(--fl-radius-sm); background-color: #fff; font-size: 14px; }
.fl2 .sidebar-shop .widget-wrapper { position: static; }
.fl2 ul.product-categories { list-style: none; margin: 0; padding: 0; font-size: 14.5px; }
.fl2 ul.product-categories li { position: relative; padding: 5px 0 5px 30px; border-bottom: 1px solid #f0f2ef; }
.fl2 ul.product-categories:not(.has-toggle) li { padding-left: 0; }
.fl2 ul.product-categories ul.children { list-style: none; padding: 4px 0 0 4px; margin: 0; }
.fl2 ul.product-categories ul.children li { border: 0; padding-block: 3px; }
.fl2 ul.product-categories a { color: var(--fl-ink); text-decoration: none; }
.fl2 ul.product-categories a:hover, .fl2 ul.product-categories .current-cat > a { color: var(--fl-green); font-weight: 700; }
.fl2 ul.product-categories .count { color: var(--fl-muted); font-size: 12px; cursor: pointer; }
.fl2 ul.product-categories button.toggle { position: absolute; left: 0; top: 4px; width: 24px; height: 24px; padding: 0; border: 0; background: none; color: var(--fl-green); cursor: pointer; }
:is(.fl2.woocommerce, .fl2 .woocommerce) .widget_price_filter .ui-slider .ui-slider-range, :is(.fl2.woocommerce, .fl2 .woocommerce) .widget_price_filter .ui-slider .ui-slider-handle { background: var(--fl-green); }

/* ---------- Single product ---------- */
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product { margin-top: 6px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product div.images { background: #fff; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); padding: 14px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product div.images .flex-control-thumbs li { padding: 4px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product div.images .flex-control-thumbs img { border-radius: var(--fl-radius-sm); border: 1px solid var(--fl-line); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .summary { background: #fff; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); padding: clamp(18px, 2.5vw, 28px); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product p.price, :is(.fl2.woocommerce, .fl2 .woocommerce) div.product span.price { font-size: 30px; font-weight: 800; color: var(--fl-ink); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product p.price del { font-size: 18px; font-weight: 400; color: var(--fl-muted); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product p.price ins { text-decoration: none; color: var(--fl-red); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .stock { font-weight: 700; font-size: 15px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .stock.in-stock { color: var(--fl-green); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .stock.out-of-stock { color: var(--fl-red); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; margin: 18px 0; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product form.cart::before, :is(.fl2.woocommerce, .fl2 .woocommerce) div.product form.cart::after { display: none; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product form.cart.variations_form, :is(.fl2.woocommerce, .fl2 .woocommerce) div.product form.cart.grouped_form { display: block; }
:is(.fl2.woocommerce, .fl2 .woocommerce) .quantity .qty { width: 84px; min-height: 52px; border: 2px solid var(--fl-line); border-radius: var(--fl-radius-sm); font-size: 17px; font-weight: 700; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product form.cart .button { flex: 1; min-height: 52px; font-size: 17px; margin: 0; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product form.cart .variations td, :is(.fl2.woocommerce, .fl2 .woocommerce) div.product form.cart .variations th { padding: 6px 0; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product form.cart .variations select { min-height: 46px; padding: 8px 12px; border: 1px solid var(--fl-line); border-radius: var(--fl-radius-sm); min-width: 220px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-variation-add-to-cart { display: flex; gap: 10px; flex-wrap: wrap; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .product_meta { font-size: 13px; color: var(--fl-muted); margin-top: 14px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs { clear: both; padding-top: 30px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0 0 -1px; border-bottom: 1px solid var(--fl-line); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs ul.tabs::before, :is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs ul.tabs li::before, :is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs ul.tabs li::after { display: none; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 1px solid var(--fl-line); border-radius: var(--fl-radius-sm) var(--fl-radius-sm) 0 0; background: var(--fl-bg); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs ul.tabs li a { padding: 12px 18px; font-weight: 700; color: var(--fl-muted); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs ul.tabs li.active { background: #fff; border-bottom-color: #fff; }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs ul.tabs li.active a { color: var(--fl-ink); }
:is(.fl2.woocommerce, .fl2 .woocommerce) div.product .woocommerce-tabs .panel { background: #fff; border: 1px solid var(--fl-line); border-top: 0; border-radius: 0 0 var(--fl-radius) var(--fl-radius); padding: clamp(18px, 2.5vw, 28px); font-size: 15.5px; line-height: 1.75; }
.fl2 .related > h2, .fl2 .upsells > h2, .fl2 .cross-sells > h2 { font-size: 28px; margin: 34px 0 16px; }
.fl2 .date-of-avail { padding: 10px 14px; border-radius: var(--fl-radius-sm); background: var(--fl-red-soft); color: var(--fl-red); }

/* Product question form (bbloomer_woocommerce_cf7_single_product + secondary.js) */
.fl2 #trigger_cf { width: 100%; min-height: 48px; margin-top: 10px; border: 2px solid var(--fl-green); border-radius: var(--fl-radius-sm); background: #fff; color: var(--fl-green-dark); font-weight: 700; cursor: pointer; }
.fl2 #trigger_cf:hover { background: var(--fl-green-soft); }
.fl2 #product_inq { margin-top: 12px; padding: 18px; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); background: var(--fl-bg); }
.fl2 #product_inq label { display: block; margin-bottom: 4px; font-weight: 700; }
.fl2 #product_inq input[type="text"], .fl2 #product_inq input[type="email"], .fl2 #product_inq textarea { width: 100%; padding: 10px 12px; margin-bottom: 12px; border: 1px solid var(--fl-line); border-radius: var(--fl-radius-sm); }
.fl2 #product_inq input[type="submit"], .fl2 #product_inq button { min-height: 46px; padding: 10px 20px; border: 0; border-radius: var(--fl-radius-sm); background: var(--fl-green); color: #fff; font-weight: 700; }

/* ---------- Cart ---------- */
:is(.fl2.woocommerce, .fl2 .woocommerce) table.shop_table { border: 1px solid var(--fl-line); border-radius: var(--fl-radius); background: #fff; border-collapse: separate; overflow: hidden; }
:is(.fl2.woocommerce, .fl2 .woocommerce) table.shop_table th { font-size: 13px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--fl-muted); background: var(--fl-bg); }
:is(.fl2.woocommerce, .fl2 .woocommerce) table.shop_table td { border-top: 1px solid var(--fl-line); vertical-align: middle; }
:is(.fl2.woocommerce, .fl2 .woocommerce) table.cart img { width: 72px; border-radius: var(--fl-radius-sm); border: 1px solid var(--fl-line); }
:is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.product-name a { font-weight: 600; color: var(--fl-ink); text-decoration: none; }
:is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.product-remove a.remove { width: 32px; height: 32px; line-height: 30px; border-radius: 50%; color: var(--fl-red) !important; border: 1px solid #f2caca; font-size: 22px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.product-remove a.remove:hover { background: var(--fl-red); color: #fff !important; }
:is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
:is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.actions .coupon .input-text { min-width: 180px; min-height: 46px; padding: 8px 12px; border: 1px solid var(--fl-line); border-radius: var(--fl-radius-sm); }
:is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.actions > .button { float: right; }
.fl2 a.button.svuota-carrello { background: #fff; color: var(--fl-red); box-shadow: inset 0 0 0 1px #f2caca; margin-top: 0; }
.fl2 a.button.svuota-carrello:hover { background: var(--fl-red-soft); color: var(--fl-red); }
:is(.fl2.woocommerce, .fl2 .woocommerce) .cart-collaterals { display: flex; justify-content: flex-end; }
:is(.fl2.woocommerce, .fl2 .woocommerce) .cart-collaterals .cart_totals { float: none; width: min(100%, 460px); padding: 22px; background: #fff; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); box-shadow: var(--fl-shadow); }
:is(.fl2.woocommerce, .fl2 .woocommerce) .cart-collaterals .cart_totals h2 { font-size: 24px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) .cart_totals table.shop_table { border: 0; box-shadow: none; }
:is(.fl2.woocommerce, .fl2 .woocommerce) .cart_totals .order-total td { font-size: 22px; font-weight: 800; }
:is(.fl2.woocommerce, .fl2 .woocommerce) .wc-proceed-to-checkout a.checkout-button { display: flex; min-height: 58px; font-size: 18px; margin-bottom: 0; }
:is(.fl2.woocommerce, .fl2 .woocommerce) .cross-sells { width: 100% !important; }

/* ---------- Checkout: form left, sticky order summary right ---------- */
:is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout::after { content: ""; display: table; clear: both; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #customer_details { float: left; width: calc(100% - 460px); }
:is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #customer_details .col-1, :is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #customer_details .col-2 { float: none; width: 100%; max-width: none; padding: 22px; margin-bottom: 18px; background: #fff; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); }
:is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #order_review_heading, :is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #order_review { float: right; clear: right; width: 430px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #order_review_heading { margin: 0; padding: 18px 22px 0; background: #fff; border: 1px solid var(--fl-line); border-bottom: 0; border-radius: var(--fl-radius) var(--fl-radius) 0 0; font-size: 24px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #order_review { position: sticky; top: calc(var(--fl-header-h) + 16px); padding: 0 22px 22px; background: #fff; border: 1px solid var(--fl-line); border-top: 0; border-radius: 0 0 var(--fl-radius) var(--fl-radius); box-shadow: var(--fl-shadow); }
:is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout h3 { font-size: 22px; margin-bottom: 14px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row { margin-bottom: 14px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row label { font-weight: 600; font-size: 14px; margin-bottom: 4px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row .input-text, :is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row select, .fl2 .select2-container .select2-selection--single { min-height: 48px; padding: 10px 12px; border: 1px solid #cfd6d1; border-radius: var(--fl-radius-sm); font-size: 16px; background: #fff; }
/* Bootstrap 4 also defines .col-1/.col-2 (1/12 and 2/12 wide): undo it for WooCommerce two-column sets (login/register, addresses, checkout). */
:is(.fl2.woocommerce, .fl2 .woocommerce) .col2-set .col-1, :is(.fl2.woocommerce, .fl2 .woocommerce) .col2-set .col-2 { flex: none; max-width: none; min-height: 0; padding-left: 0; padding-right: 0; }
:is(.fl2.woocommerce, .fl2 .woocommerce) #customer_login .col-1, :is(.fl2.woocommerce, .fl2 .woocommerce) #customer_login .col-2 { width: 48%; }
:is(.fl2.woocommerce, .fl2 .woocommerce) #customer_login form { padding: clamp(16px, 2.5vw, 26px); margin-top: 10px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) #customer_login h2 { font-size: 26px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) #customer_login .woocommerce-form-login__submit, :is(.fl2.woocommerce, .fl2 .woocommerce) #customer_login .woocommerce-form-register__submit { width: 100%; min-height: 50px; margin-top: 8px; background: var(--fl-green); color: #fff; }
/* Bootstrap 4 also defines .form-row (flex row): undo it inside WooCommerce forms. */
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row { display: block; margin-left: 0; margin-right: 0; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row label { display: block; line-height: 1.4; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row .woocommerce-input-wrapper { display: block; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row .input-text, :is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row select, :is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row textarea, .fl2 .select2-container { width: 100% !important; box-sizing: border-box; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row textarea { min-height: 96px; padding: 10px 12px; border: 1px solid #cfd6d1; border-radius: var(--fl-radius-sm); }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row.woocommerce-invalid label { color: var(--fl-ink); }
.fl2 .select2-container .select2-selection--single .select2-selection__rendered { line-height: 26px; padding-left: 0; }
.fl2 .select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row .input-text:focus, :is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row select:focus { border-color: var(--fl-green); box-shadow: 0 0 0 3px rgba(10, 122, 61, 0.15); outline: 0; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row.woocommerce-invalid .input-text { border-color: var(--fl-red); }
:is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row .required { color: var(--fl-red); text-decoration: none; }
.fl2.woocommerce-checkout #payment { background: var(--fl-bg); border-radius: var(--fl-radius); }
.fl2.woocommerce-checkout #payment ul.payment_methods { padding: 12px; border-bottom: 0; }
.fl2.woocommerce-checkout #payment ul.payment_methods > li { padding: 12px 14px; margin-bottom: 8px; background: #fff; border: 1px solid var(--fl-line); border-radius: var(--fl-radius-sm); list-style: none; }
.fl2.woocommerce-checkout #payment ul.payment_methods > li:has(input:checked) { border-color: var(--fl-green); box-shadow: inset 0 0 0 1px var(--fl-green); }
.fl2.woocommerce-checkout #payment ul.payment_methods li label { font-weight: 700; cursor: pointer; }
.fl2.woocommerce-checkout #payment div.payment_box { background: var(--fl-green-soft); border-radius: var(--fl-radius-sm); font-size: 14px; }
.fl2.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--fl-green-soft); }
.fl2.woocommerce-checkout #payment div.place-order { padding: 14px; }
.fl2.woocommerce-checkout #payment #place_order { width: 100%; min-height: 60px; font-size: 19px; float: none; }
.fl2.woocommerce-checkout .shop_table { font-size: 14.5px; }
.fl2.woocommerce-checkout .shop_table .order-total td, .fl2.woocommerce-checkout .shop_table .order-total th { font-size: 20px; font-weight: 800; }
.fl2.woocommerce-checkout #shipping_method li { margin-bottom: 6px; }
.fl2 .woocommerce-form-coupon-toggle .woocommerce-info, .fl2 .woocommerce-form-login-toggle .woocommerce-info { font-weight: 500; }
:is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout_coupon, :is(.fl2.woocommerce, .fl2 .woocommerce) form.login { background: #fff; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); padding: 18px; }

/* Info boxes printed by functions.php (VIES, express checkout, weight) */
.fl2 .info-container { margin-top: 10px; }
.fl2 .info-box { padding: 10px 12px; margin-top: 6px; border: 1px solid var(--fl-line); border-radius: var(--fl-radius-sm); background: #fff; font-size: 14px; color: var(--fl-ink); position: relative; z-index: 5; }
.fl2 .info-link { display: block; cursor: pointer; color: var(--fl-green); text-decoration: underline; }

/* ---------- Thank you & account ---------- */
.fl2 .woocommerce-order .woocommerce-thankyou-order-received { padding: 18px 20px; border-radius: var(--fl-radius); background: var(--fl-green-soft); color: var(--fl-green-dark); font-weight: 600; }
:is(.fl2.woocommerce, .fl2 .woocommerce) ul.order_details { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; }
:is(.fl2.woocommerce, .fl2 .woocommerce) ul.order_details li { flex: 1 1 180px; margin: 0; padding: 14px; border: 1px solid var(--fl-line) !important; border-radius: var(--fl-radius-sm); background: #fff; }
.fl2 .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; background: #fff; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); }
.fl2 .woocommerce-MyAccount-navigation li a { display: block; padding: 10px 12px; border-radius: var(--fl-radius-sm); color: var(--fl-ink); text-decoration: none; font-weight: 600; }
.fl2 .woocommerce-MyAccount-navigation li.is-active a, .fl2 .woocommerce-MyAccount-navigation li a:hover { background: var(--fl-green-soft); color: var(--fl-green-dark); }
.fl2 .woocommerce-MyAccount-content { background: #fff; border: 1px solid var(--fl-line); border-radius: var(--fl-radius); padding: clamp(16px, 2.5vw, 26px); }
:is(.fl2.woocommerce, .fl2 .woocommerce) form.login, :is(.fl2.woocommerce, .fl2 .woocommerce) form.register { border: 1px solid var(--fl-line); border-radius: var(--fl-radius); background: #fff; }

/* ---------- Shop filters: column on tablet/desktop, drawer on phones ---------- */
.fl-filters-head, .fl-filters-apply, .fl-filters-toggle { display: none !important; }
@media (max-width: 767px) {
  .js .fl-filters-toggle { display: inline-flex !important; width: 100%; margin: 4px 0 12px; box-shadow: inset 0 0 0 2px var(--fl-green); background: #fff; }
  .js .sidebar-shop { position: fixed; inset: 0 auto 0 0; z-index: 200; width: min(360px, 90vw); max-width: none; height: 100dvh; margin: 0; padding: 0 16px calc(90px + env(safe-area-inset-bottom)); overflow-y: auto; background: var(--fl-bg); transform: translateX(-105%); visibility: hidden; transition: transform 0.2s ease, visibility 0.2s; }
  .js .sidebar-shop.is-open { transform: none; visibility: visible; }
  .js .fl-filters-head { display: flex !important; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 2; margin: 0 -16px 14px; padding: 12px 16px; background: var(--fl-green); color: #fff; }
  .js .fl-filters-head strong { font-family: var(--fl-display); font-size: 22px; }
  .js .fl-filters-apply { display: flex !important; position: fixed; left: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); width: calc(min(360px, 90vw) - 32px); min-height: 52px; box-shadow: var(--fl-shadow-lg); }
  .fl2 .sidebar-shop { margin-top: 20px; }
}
@media (max-width: 1023px) {
  :is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #customer_details, :is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #order_review_heading, :is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #order_review { float: none; width: 100%; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #order_review { position: static; }}
@media (max-width: 768px) {
  .fl-steps li { padding: 8px; font-size: 12px; flex-direction: column; text-align: center; gap: 4px; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) table.shop_table_responsive tr, .fl2.woocommerce-page table.shop_table_responsive tr { display: block; padding: 10px 0; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.product-thumbnail { display: block !important; text-align: center !important; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.actions .coupon { display: grid; grid-template-columns: 1fr auto; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.actions .coupon .input-text { width: 100% !important; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) table.cart td.actions > .button { float: none; width: 100%; margin-top: 8px; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) .cart-collaterals .cart_totals { width: 100%; padding: 16px; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #customer_details .col-1, :is(.fl2.woocommerce, .fl2 .woocommerce) form.checkout #customer_details .col-2 { padding: 16px; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row-first, :is(.fl2.woocommerce, .fl2 .woocommerce) form .form-row-last { width: 100%; float: none; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) #customer_login .col-1, :is(.fl2.woocommerce, .fl2 .woocommerce) #customer_login .col-2, :is(.fl2.woocommerce, .fl2 .woocommerce) .woocommerce-Addresses .col-1, :is(.fl2.woocommerce, .fl2 .woocommerce) .woocommerce-Addresses .col-2 { float: none; width: 100%; }
  :is(.fl2.woocommerce, .fl2 .woocommerce) div.product .summary { margin-top: 14px; }
}
