/* 
Theme Name: Divi Child 
Theme URL: https://grainandframe.com
Description: Divi Child 
Theme Author: Andy Chadwick
Author URL: https://www.digitalquokka.com
Template: Divi
Version: 1.0.0 
Text Domain: Divi-child 
*/
/* =====================================================================
   SITE OVERHAUL 2026 — PHASE 0 FOUNDATION
   Added 23 Apr 2026. See /grain-and-frame/cro/site-overhaul-2026/
   Tokens + tactile feedback + safe-area insets. Pure Tier 1 usability.
   ===================================================================== */

:root {
    /* Type scale (desktop / mobile in media query below) */
    --font-heading: 'Manrope', Arial, Helvetica, sans-serif;
    --font-body: 'Inter', Arial, Helvetica, sans-serif;

    --fs-h1: 40px;
    --fs-h2: 32px;
    --fs-h3: 24px;
    --fs-h4: 20px;
    --fs-h5: 18px;
    --fs-body-lg: 18px;
    --fs-body: 16px;
    --fs-body-sm: 14px;
    --fs-micro: 13px;

    /* Spacing scale (8px base grid) */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --space-16: 64px;
    --space-20: 80px;
    --space-24: 96px;

    /* Touch targets */
    --tap-target-min: 44px;

    /* Motion */
    --tactile-transition: transform 0.1s ease-out;
    --tactile-scale: 0.97;

    /* Color — brand */
    --c-brand: #5d7b95;
    --c-brand-dark: #4a6378;
    --c-text: #1a1a1a;
    --c-text-soft: #666;
    --c-text-muted: #9ca3af;
    --c-bg: #fff;
    --c-bg-soft: #f0f9ff;
    --c-border: #e5e7eb;
    --c-border-strong: #6b7280;

    /* Color — semantic */
    --c-danger: #d33;
    --c-danger-strong: #d33;
    --c-success: #166534;
    --c-success-bg: #dcfce7;

    /* Radius */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-pill: 999px;
}

@media (max-width: 768px) {
    :root {
        --fs-h1: 32px;
        --fs-h2: 26px;
        --fs-h3: 20px;
        --fs-h4: 18px;
        --fs-h5: 16px;
        --fs-body-lg: 17px;
    }
}

/* Tactile feedback on all interactive buttons and button-styled links.
   Scoped broadly but only fires on :active so no static visual impact. */
button,
.button,
a.button,
input[type="submit"],
input[type="button"],
.single_add_to_cart_button,
.et_pb_button,
.share-config-link,
#gf-add-to-cart-btn,
.add-to-cart-btn,
.gf-dm-toggle,
.gf-reviews__pill,
.gf-reviews__showmore-btn,
.gaf-pill,
.gaf-lb-pill {
    transition: var(--tactile-transition), background 0.15s, color 0.15s, border-color 0.15s;
}

button:active,
.button:active,
a.button:active,
input[type="submit"]:active,
input[type="button"]:active,
.single_add_to_cart_button:active,
.et_pb_button:active,
.share-config-link:active,
#gf-add-to-cart-btn:active,
.add-to-cart-btn:active,
.gf-dm-toggle:active,
.gf-reviews__pill:active,
.gf-reviews__showmore-btn:active,
.gaf-pill:active,
.gaf-lb-pill:active {
    scale: var(--tactile-scale);
}

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
    button:active,
    .button:active,
    a.button:active,
    input[type="submit"]:active,
    input[type="button"]:active,
    .single_add_to_cart_button:active,
    .et_pb_button:active,
    .share-config-link:active,
    #gf-add-to-cart-btn:active,
    .add-to-cart-btn:active {
        scale: 1;
    }
}

/* Safe-area insets on sticky/fixed bottom bars (iPhone home-indicator devices).
   Adds padding-bottom = max(existing, safe-area). Scoped to known sticky bars. */
.gf-sticky-footer,
.woofc-area-total,
.flux-checkout-footer,
#gf-sticky-atc {
    padding-bottom: max(var(--space-4), env(safe-area-inset-bottom));
}

/* END PHASE 0 FOUNDATION */

/* Cleaned: 19 Apr 2026 - Removed dead CSS for Ninja Forms, TM EPO, #left-area, WooThumbs, RichPlugins */

.filter.filter--style-premmerce .button-filter-submit {
  display: none;
}

.tax-product_cat #sidebar .button-filter-submit {
  background-color: var(--c-brand);
  width: 100%;
  color: #fff !important;
  border: 0 none;
  font-size: 17px;
  min-width: 110px;
  text-align: center;
}


@media(min-width:992px) {
  #cookie-law-info-bar[data-cli-style="cli-style-v2"] {
    padding-right: 100px;
  }


}


.woocommerce a.remove {
  color: #ccc !important;
}

.woocommerce a.remove:hover {
  color: #fff !important;
}

@media only screen and (max-width: 991px) {

  }

  .archive.tax-product_cat #main-content .container {
    width: 100%;
    max-width: calc(100% - 30px);
  }

  .woocommerce-page.archive .woocommerce-result-count {
    float: none;
    display: flex;
    width: 100%;
    justify-content: center;
    font-weight: 600;
  }
}


@media only screen and (max-width: 980px) {
  #main-content #content-area #sidebar {
    z-index: 999999 !important;
    padding: 30px 15px !important;
  }

  #main-content #content-area .product_sidebar.open-cms {
    z-index: 9999999 !important;
  }
}


@media only screen and (max-width: 767px) {
  .single-product .et-db #et-boc .et-l .et_pb_text_align_left {
    text-align: center !important;
  }

  .single-product .et-db #et-boc .et-l .et-custom-section .et_pb_image_1_tb_body,
  .single-product .et-db #et-boc .et-l .et-custom-section.et_pb_image_0_tb_body,
  .single-product .et-db #et-boc .et-l .et-custom-section .et_pb_image_2_tb_body,
  .single-product .et-db #et-boc .et-l .et-custom-section .et_pb_image_3_tb_body {
    margin: 0 auto !important;
  }

  .single-product .et_pb_code {
    max-height: inherit !important;
    margin-bottom: 10px !important;
  }


  .single-product .pa-inline-buttons .et_pb_button_module_wrapper.et_pb_button_1_tb_body_wrapper.et_pb_button_alignment_right.et_pb_module {
    float: none !important;
  }

  .cms-sort-filter-wrapper .fillterbutton {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: inherit !important;
    background-color: #fff !important;
    color: var(--c-text-soft) !important;
    padding: 10px 10px !important;
    font-size: 13px !important;
    z-index: 1 !important;
    line-height: 1 !important;
    width: 50%;
    border: 1px solid #ececec !important;
    display: inline-block !important;
    font-weight: 500 !important;
    font-family: Open Sans, Arial, sans-serif !important;
    text-transform: uppercase !important;
  }

  .cms-sort-filter-wrapper .fillterbutton i.fa.fa-sliders {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    right: 5px !important;
  }

  .woocommerce .cms-sort-filter-wrapper .woocommerce-ordering {
    width: 50%;
    display: inline-block !important;
    position: relative;
  }

  .woocommerce .cms-sort-filter-wrapper .woocommerce-ordering select {
    background-color: #fff !important;
    line-height: 1 !important;
    width: 100%;
    padding: 0px 10px !important;
    height: 35px !important;
    border: 1px solid #ececec !important;
    display: inline-block !important;
    float: none !important;
    border-radius: 0px !important;
    text-transform: uppercase !important;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
  }


  .woocommerce .cms-sort-filter-wrapper .woocommerce-ordering:after {
    content: "\f107";
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    text-decoration: inherit;
    /*--adjust as necessary--*/
    color: var(--c-text-soft);
    font-size: 14px;
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
  }

}


@media only screen and (max-width: 400px) {
  /*
    .fillterbutton {
        width: 100% !important;
        margin-bottom: 20px !important;
    }

    .woocommerce .cms-sort-filter-wrapper .woocommerce-ordering {
        width: 100%;
        display: inline-block !important;
    }
*/
}



/* end here  */
/* by mubin mansuri */
body.woocommerce-page.woocommerce-cart a.checkout-button {
  background-color: #018849 !important;
  color: #fff !important;
  border: 0 none !important;
  margin-bottom: 15px;
  width: 100%;
  max-width: 400px;
  text-align: center;
}

body.woocommerce-page.woocommerce-cart a.checkout-button:hover {
  color: #fff !important;
}

body.woocommerce-page.woocommerce-cart a.checkout-button {
  display: none;
}

body.woocommerce-page.woocommerce-cart .cart-collaterals a.checkout-button {
  display: block;
}

.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order {
  background-color: #018849;
  color: #fff;
  margin-bottom: 20px;
}

.woocommerce #payment #place_order:hover,
.woocommerce-page #payment #place_order:hover {
  color: #fff !important;
}

.woocommerce .cart-main .cart-collaterals .cross-sells {
  float: none;
}

.woocommerce .cart-main .cart-collaterals .cart_totals {
  width: 100%;
  float: none;
}

.woocommerce .cart-main .woocommerce-cart-form {
  width: 62%;
}

.woocommerce .cart-main .cart-collaterals {
  width: 35%;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column-reverse;
}

.woocommerce .cart-main {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-content: flex-start;
}

.woocommerce .cart-collaterals .cart_totals {
  display: none;
}

.woocommerce .cart-main .cart-collaterals .cart_totals {
  display: block;
}

.woocommerce .cart-collaterals .cross-sells {
  width: 100%;
}

.woocommerce .cart-collaterals .cross-sells ul.products li,
.woocommerce-page .cart-collaterals .cross-sells ul.products li {
  width: 48%;
}

.woocommerce .cart-main .cart-collaterals .cart_totals + .cart_totals {
  display: none;
}

.cust-accord .cms-accordion {
  color: var(--c-text-soft) !important;
  text-transform: none !important;
  font-size: 16px !important;
}

body.woocommerce-cart table.cart td.actions .coupon .input-text {
  background-color: #fff !important;
  border: 1px solid var(--c-text-soft) !important;
  color: #3d4246 !important;
  border-radius: 1px;
  max-width: 70%;
  font-size: 16px !important;
  height: 46px;
  width: 100%;
}

@media(min-width:768px) {
  .cust-accord.main .coupon {
    display: flex !important;
    float: none !important;
  }
}


.woocommerce-cart table.cart td.actions .coupon .input-text {
  width: calc(100% - 180px);
}

.woocommerce-cart table.cart td.actions .coupon .input-text::-moz-placeholder {
  color: #222;
}

.woocommerce-cart table.cart td.actions .coupon .input-text:-moz-placeholder,
.woocommerce-cart table.cart td.actions .coupon .input-text::placeholder {
  color: #222;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
  height: 46px;
}

.woocommerce-cart table.cart td.actions .coupon .button {
  background-color: var(--c-brand);
  color: #fff;
  border: 0 none;
  min-width: 30%;
  font-size: 16px;
  min-height: 46px;
}

.woocommerce-cart table.cart td.actions .coupon .button::after {
  font-size: 26px;
}

.woocommerce-cart table.cart td.actions .coupon .button:hover {
  color: #fff !important;
}

.cart_totals table.shop_table {
  margin-bottom: 10px !important;
}

.woocommerce-SavedPaymentMethods.wc-saved-payment-methods:empty {
  display: none;
}

#stripe-payment-data > p {
  padding-bottom: 5px;
}

.woocommerce-checkout #payment div.payment_box .wc-credit-card-form {
  margin-top: 0px;
}

.woocommerce-checkout #payment div.form-row {
  padding-top: 0;
  padding-bottom: 0;
  margin-bottom: 5px !important;
}

.woocommerce-checkout-payment {
  margin-top: 30px;
}

div#premmerce_filter_filter_widget-2 button.button.button-filter-submit {
  color: var(--c-brand);
}

.single-product.woocommerce div.product form.cart div.quantity {
  float: left !important;
}

.woocommerce-variation-add-to-cart.variations_button {
  display: flex;
  justify-content: center;
  flex-flow: row wrap;
}

body #page-container .et_pb_section .et_pb_wc_add_to_cart_0_tb_body .button {
  width: 76%;
}

.wpgs-image .wpgs-video {
  background-color: #f00;
  color: #fff;
  top: 5px;
  right: 5px;
  padding: 2px 2px 2px 4px;
  /* border-radius: 15px 15px 15px 15px / 45px 45px 45px 45px; */
  border-radius: 4px;
  font-size: 1.5rem;
}

/* CHANGES - SP - Start - 22-04-2021 */

body #page-container .et_pb_section .et_pb_wc_add_to_cart_0_tb_body .button {
  width: 100%;
}

/* CHANGES - SP - ENd - 22-04-2021 */

@media(max-width:991px) {
  table.cart tr.woocommerce-cart-form__cart-item {
    padding-top: 0 !important;
  }

  .woocommerce-checkout #customer_details .col-2 .woocommerce-checkout-payment,
  .woocommerce-checkout .woocommerce #customer_details .col-2 h3#order_review_heading,
  .woocommerce-checkout #customer_details .col-2 .woocommerce-checkout-review-order-table {
    display: none;
  }

  body.woocommerce-cart table.cart td.actions .coupon .input-text {
    max-width: calc(60% - 1rem);
    margin-right: 1rem;
    width: 100% !important;
  }

  .woocommerce-cart table.cart td.actions .coupon .button {
    max-width: calc(40%);
    width: 100%;
  }

  .archive.tax-product_cat #main-content .container {
    padding-top: 10px;
  }
}


@media(max-width:768px) {
  .woocommerce-cart table.cart td.actions .coupon .input-text {
    width: calc(100% - 180px) !important;
  }

}


@media only screen and (max-width: 767px) {
  body.woocommerce-page.woocommerce-cart a.checkout-button {
    display: block;
  }

  .woocommerce .cart-main .woocommerce-cart-form {
    width: 100%;
  }

  .woocommerce .cart-main .cart-collaterals {
    width: 100%;
  }

  .woocommerce-cart table.cart td.actions .coupon .input-text {
    max-width: 100% !important;
    width: 100% !important;
    margin-bottom: 10px;
  }

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

  .cart_totals table.shop_table {
    margin-bottom: 10px !important;
  }

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


  body #page-container .et_pb_section .et_pb_wc_add_to_cart_0_tb_body .button {
    width: 65%;
  }

  .single-product .pa-inline-buttons .et_pb_button_module_wrapper.et_pb_button_1_tb_body_wrapper.et_pb_button_alignment_right.et_pb_module {
    float: left !important;
    margin-right: 1rem;
    clear: left;
    position: relative;
    z-index: 5;
  }

  .single-product .pa-inline-buttons .et_pb_button_module_wrapper.et_pb_button_0_tb_body_wrapper.et_pb_module {
    float: right !important;
    clear: right;
    position: relative;
    z-index: 5;
  }

}


@media only screen and (max-width: 575px) {
  body .checkout .woocommerce-billing-fields .woocommerce-billing-fields__field-wrapper .form-row label .tooltiptext {
    max-width: 180px;
    width: 100%;
    bottom: -26px;
  }
}

.term-description .fulldesc {
    display: none;
}
.shortdesc div {
    display: inline;
}
/* 2023 category card pricing rules removed 26 Apr 2026 — superseded by tokenized block at end of file */
/* cmsMinds variable simple and composite data css */
.simple-product-price-wrapper {
    display: flex;
    align-items: center;
    gap: 15px;
}
@media (min-width: 768px) {
.wooco_component_product_selection .dd-desc .stock {
     display: contents !important;
  }
}

.dd-options > li:last-child > .dd-option {
    border-bottom: 1px solid #ddd !important;
}
body.custom-class-product-type-simple p.stock.available-on-backorder {
    color: black !important;
}
button.single_add_to_cart_button.button.alt {
    margin-top: 15px;
}
body.custom-class-product-type-simple .quantity.woopq-quantity{
    border: 1px solid #ddd;
    display: block;
    border-top: 0;
    margin-right: 0 !important;
    width: 100% !important;
    padding-inline: 16px;
    margin-bottom: 10px !important;
    border-radius: 0px 0px 5px 5px;
}
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-qty .quantity {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding-bottom: 0px !important;
    padding-inline: 0px !important;
    border: 0px !important;
}

body.custom-class-product-type-simple .quantity.woopq-quantity {
    padding-bottom: 20px;
}

body.custom-class-product-type-simple p.stock {
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
    padding-inline: 15px;
}
body.custom-class-product-type-simple p.stock.available-on-backorder::before {
    content: '🟡';
    font-size: 0.82rem;
    font-style: italic;
}
body.custom-class-product-type-simple p.stock.in-stock::before {
    content: '🟢';
    font-size: 0.82rem;
    font-style: italic;
}
body.custom-class-product-type-simple.et-db #et-boc .et-l .et_pb_wc_add_to_cart.et_pb_hide_stock .stock {
	display:flex;
	gap: 10px !important;
	padding-top: 20px;
}
body.custom-class-product-type-simple .stock.in-stock{
	display:flex !important;
	gap: 10px !important;
	padding: 10px;
}
/* simple product end */
/*  14/05 */
@media only screen and (max-width: 767px) {
.wooco_component_product_selection .dd-desc .stock {
	display: inline-block;
}
.dd-desc {
    display:unset !important;
}
.wooco_component_product{
    margin-top:0px;
}
.woocommerce div.product p.stock {
    font-size: 0.82rem;
}
strong#estimated-delivery-date{
    font-size: 14px;
}
body.custom-class-product-type-composite #page-container .et_pb_section .et_pb_wc_add_to_cart_0_tb_body .button {
	width:100% !important;
}
.wooco_component_product_selection .dd-desc, .wooco_component_product_selection .dd-desc * {
    white-space: inherit !important;
}
}

.woocommerce div.product p.stock {
    font-style: italic;
}
/*  24/04*/
body.custom-class-product-type-composite label.dd-selected-text.intro::after {
    transform: rotateX(180deg);
}
body.custom-class-product-type-composite label.dd-selected-text::after {
    content: "";
    position: absolute;
    border-top: 6px solid #000;
    border-inline: 5px solid transparent;
    margin-left: 7px;
    top: 13px;
}
span.dd-pointer.dd-pointer-down {
    display: none;
}
.single-product .wooco_component_product_selection .dd-desc>span {
	gap: 10px !important;
}
.component-was-price {
    text-decoration-line: line-through;
    font-style: italic;
    font-size: 14px;
    line-height: 16px;
    color: var(--c-text-soft) !important;
    font-weight: 400;
}
@media only screen and (max-width: 768px) {
  .dd-selected-description span:nth-of-type(2) {
    display: block !important;
  }
	body.custom-class-product-type-composite p.stock.in-stock::before {
		margin-right:10px;
	}
	body.custom-class-product-type-composite p.stock.available-on-backorder::before {
			margin-right:10px;
	}
	body.custom-class-product-type-simple.et-db #et-boc .et-l .et_pb_wc_add_to_cart.et_pb_hide_stock .stock {
		display: block !important;
	}
}


@media only screen and (max-width: 1024px) {
  .dd-selected-description span:nth-of-type(2) {
    display: block !important;
  }
    body.custom-class-product-type-simple.et-db #et-boc .et-l .et_pb_wc_add_to_cart.et_pb_hide_stock .stock {
	display: block !important;
	}
}


.wooco_component_product_selection .dd-desc, .wooco_component_product_selection .dd-desc * {
    white-space: nowrap;
}
body.custom-class-product-type-composite  .dd-options { 
    position:inherit;
}
body.custom-class-product-type-composite .wooco_components .wooco_component {
    border-bottom: 0px solid #ddd !important;
}
body.custom-class-product-type-composite .wooco_component_product > div {
    padding-left: 0px !important;
    padding-top: 5px !important;
}
.wooco_component_product_selection .dd-desc .stock {
    display: contents; 
}
.wooco_component_product_selection .dd-selected-description.dd-desc .stock {
   display: contents !important;
}
body.custom-class-product-type-composite label.dd-selected-text {
    background: #f1f1f1;
    padding: 3px 10px;
    border-radius: 8px;
    border: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
		position:relative;
}
body.custom-class-product-type-composite .dd-pointer {
    width: 0;
    height: 0;
    position: absolute;
   	right: 25px !important;
    top: 15% !important;
    margin-top: -3px;
}
body.custom-class-product-type-composite .wooco_component_product_selection .dd-options {
    max-height: fit-content;
}
body.custom-class-product-type-composite a.dd-option {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 0.6rem;
    cursor: pointer;
    background: #fafafa;
    margin-bottom: 8px;
}
body.custom-class-product-type-composite .dd-selected {
	padding: 1px !important;
}
body.custom-class-product-type-composite .dd-select {
    border: unset !important;
	  padding: 0 !important;
}
body.custom-class-product-type-composite a.dd-option.dd-option-selected {
		border-color: #4e728c;
    background: #eef4f7;
    border: 1px solid #4e728c;
    border-bottom: 1px solid #4e728c !important;
}
body.custom-class-product-type-composite .dd-options {
    border: unset !important;
    box-shadow: unset !important;
}
/*  24/04 composite type product*/

/*  22/04  */
@media only screen and (max-width: 768px) {
body.custom-class-product-type-composite .wooco_component_product_availability p.stock.in-stock {
    gap: 2px !important;
}
	body.custom-class-product-type-composite p.stock.available-on-backorder {
    gap: 2px !important;
}
}

body.custom-class-product-type-composite p.stock.in-stock:nth-child(2) {
    display: none !important;
}
body.custom-class-product-type-composite .woopq-quantity-input {
    display: none;
}
body.custom-class-product-type-composite .wooco_components .wooco_component {
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    margin-bottom: 0.6rem;
    padding: 0.8rem 1rem;
}
body.custom-class-product-type-composite p.stock.in-stock::before {
    content: '🟢';
	font-size: 0.82rem;
    font-style: italic;
}
body.custom-class-product-type-composite p.stock.available-on-backorder::before{
	content: '🟡';
	font-size: 0.82rem;
  font-style: italic;
}
body.custom-class-product-type-composite .wooco_component_product_qty.wooco-qty-wrap {
    padding-top: 10px;
}
body.custom-class-product-type-composite p.stock.available-on-backorder {
    gap: 10px;
    align-items: center;
    color: black;
    flex-wrap: wrap;
}
body.custom-class-product-type-composite.et-db #et-boc .et-l .et_pb_wc_add_to_cart.et_pb_hide_stock .stock {
    display: flex;
}
body.custom-class-product-type-composite .wooco_component_product_availability span.available-delivery-date {
    display: inline-block;
    color: #444;
}
body.custom-class-product-type-composite .wooco_component_product_availability p.stock.in-stock {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}
body.custom-class-product-type-composite select#wooco_component_product_select_1, #wooco_component_product_select_2,#wooco_component_product_select_3 {
    width: 100%;
    background-color: #ffffff;
    color: black;
		border-radius: 5px;
    border: 1px solid #ffffff;
		font-size: 16px;
}
body.custom-class-product-type-composite .wooco_component_product {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
/*  22/04 */


/* CSS 30-06-2025 Here */
.woofc-area.woofc-style-02 .woofc-area-mid .woofc-item{
	position:relative;
}

.woofc-area.woofc-style-02 .woofc-area-mid .woofc-item .woofc-item-inner{
	justify-content: flex-start;
	padding-bottom: 40px;
}

.woofc-item-qty.woofc-item-qty-plus-minus {
    position: absolute;
    bottom: 10px;
    left: 110px;
}

.woofc-area.woofc-style-02 .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-thumb {
    width: 100px;
    flex: 0 0 100px;
    margin-right: 10px;
}

.woofc-area.woofc-style-02 .woofc-suggested .woofc-suggested-product-atc .button{
	display:inline-block !important;
	padding:5px 15px 3px 15px;
}

.woofc-area .woofc-suggested .woofc-suggested-product {
    border-bottom: 1px dashed #eeeeee;
    padding-bottom: 20px;
}

.woofc-area .woofc-suggested .woofc-suggested-product-image img {
    border-radius: 4px;
}

.woofc-area .woofc-suggested .woofc-suggested-product-name {
    font-weight: 700;
    line-height: 1.2;
}
body.custom-class-product-type-composite .woofc-item-qty-inner .woopq-quantity-input {
    display: block !important;
}
@media only screen and (max-width: 768px) {
    .woofc-area.woofc-style-02 .woofc-area-mid .woofc-item.woofc-item-has-remove .woofc-item-inner {
        padding: 10px 30px 50px 0;
    }
}

@media only screen and (max-width: 425px) {
	.woofc-item-delivery {
		display: flex;
		flex-direction: column;
		gap: 0;
		line-height: 1.2;
		margin-top: 10px;
	}
}


/* ====================================================================
   EXTRACTED SNIPPET CSS - Migrated from Code Snippets Pro inline styles
   Date: 19 Apr 2026
   ==================================================================== */



/* ====== Extracted from snippet-88-css.css ====== */
/**
 * GAF Gallery v9 — Filterable Product Gallery CSS
 * Extracted from Code Snippet 88 (staging)
 * Source: wp_head hook, priority 5, <style id="gaf-gallery-css">
 * Lines 376-629 of snippet
 * Date: 2026-04-19
 *
 * Sections:
 *   1. Gallery container
 *   2. Filter pills (on-page)
 *   3. Main viewport (slides, images, video, GIF)
 *   4. USP overlay (frosted glass, bottom-left)
 *   5. Nav arrows
 *   6. Expand button
 *   7. Counter badge
 *   8. Thumbnails (horizontal mobile / vertical desktop)
 *   9. Lightbox — vertical scroll feed (AutoTrader-style)
 *  10. Zoom overlay (swipeable + pinch-to-zoom)
 *  11. Dot indicators (mobile only)
 *  12. Desktop: lightbox + zoom adjustments (@media min-width:768px)
 *  13. Desktop: vertical thumbs on left (@media min-width:768px)
 *  14. AI People toggle
 *  15. Mobile overrides (@media max-width:767px)
 *  16. Reduced motion
 *  17. Utility: table overflow fix
 *  18. Z-index stack overrides
 *  19. Hide WooCommerce Sale badge
 *  20. Hide Crisp chat when lightbox open
 */

/* ── Gallery container ── */
.gaf-gallery{position:relative;width:100%;contain:layout style}

/* ── Filter pills ── */
.gaf-pills-wrap{position:relative;margin-bottom:10px}
.gaf-pills-wrap::after{content:'';position:absolute;top:0;right:0;width:44px;height:100%;pointer-events:none;background:linear-gradient(to right,transparent,#fff 60%);transition:opacity .25s;z-index:2}
.gaf-pills-arrow{position:absolute;top:50%;right:2px;transform:translateY(-50%);z-index:3;pointer-events:none;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--c-brand);opacity:1;transition:opacity .25s;animation:gaf-nudge 1.5s ease-in-out infinite}
@keyframes gaf-nudge{0%,100%{transform:translateY(-50%) translateX(0)}50%{transform:translateY(-50%) translateX(3px)}}
.gaf-pills-wrap.scrolled-end::after{opacity:0}
.gaf-pills-wrap.scrolled-end .gaf-pills-arrow{opacity:0}
.gaf-pills{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x mandatory}
.gaf-pills::-webkit-scrollbar{display:none}
.gaf-pill{white-space:nowrap;padding:5px 14px;border-radius:20px;background:#fff;border:1.5px solid var(--c-border);color:#4b5563;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:'Manrope',sans-serif;scroll-snap-align:start;flex-shrink:0;user-select:none;-webkit-user-select:none;line-height:1.4;letter-spacing:0;-webkit-appearance:none;appearance:none}
.gaf-pill:hover{border-color:var(--c-brand);color:#5d7b95}
.gaf-pill.active{background:var(--c-brand);border-color:var(--c-brand);color:#fff}

/* ── Main viewport ── */
.gaf-main{position:relative;overflow:hidden;background:#f8f8f8;border-radius:4px}
.gaf-viewport{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;contain:strict;transition:aspect-ratio .3s ease}
.gaf-slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:0}
.gaf-slide.active{opacity:1;pointer-events:auto;z-index:1}
.gaf-slide img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}
.gaf-slide[data-type="video"]{background:#f5f3f0;display:flex;align-items:center;justify-content:center}
.gaf-slide[data-type="video"] img{width:auto!important;height:100%!important;max-width:100%;object-fit:contain!important}
.gaf-slide[data-type="gif"] img{object-fit:contain;background:#f8f8f8}
.gaf-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;pointer-events:none;opacity:.85;transition:opacity .2s}
.gaf-slide:hover .gaf-play{opacity:1}
.gaf-pdp-video-frame{position:absolute;inset:0;width:100%;height:100%;border:none;z-index:3;display:none}
.gaf-video-swipe{position:absolute;inset:0;z-index:4}

/* ── USP overlay (frosted glass, bottom-left) ── */
.gaf-usp{position:absolute;bottom:14px;left:14px;z-index:5;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:7px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.5);box-shadow:0 2px 10px rgba(0,0,0,.08);display:flex;align-items:center;gap:7px;transform:translateY(8px);opacity:0;transition:transform .35s ease .15s,opacity .35s ease .15s;pointer-events:none}
.gaf-slide.active .gaf-usp{transform:translateY(0);opacity:1}
.gaf-usp-icon{color:var(--c-success);display:flex;flex-shrink:0}
.gaf-usp-text{font-family:'Manrope',sans-serif;font-weight:700;color:var(--c-text);font-size:12.5px;line-height:1;letter-spacing:-.01em}

/* ── Nav arrows ── */
.gaf-arr{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:38px;height:38px;border-radius:50%;background:#fff;color:#557B97;border:2px solid #557B97;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;box-shadow:0 2px 8px rgba(0,0,0,.1);padding:0;line-height:1;-webkit-appearance:none;appearance:none}
.gaf-arr:hover{background:#557B97;color:#fff}
.gaf-arr-prev{left:10px}
.gaf-arr-next{right:10px}

/* ── Expand button ── */
.gaf-expand{position:absolute;top:10px;right:10px;z-index:10;width:34px;height:34px;border-radius:50%;background:#fff;color:#557B97;border:2px solid #557B97;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;box-shadow:0 2px 8px rgba(0,0,0,.1);padding:0;line-height:1;-webkit-appearance:none;appearance:none}
.gaf-expand:hover{background:#557B97;color:#fff}

/* ── Counter badge ── */
.gaf-counter{position:absolute;bottom:14px;right:14px;z-index:5;background:rgba(0,0,0,.5);color:#fff;font-family:'Manrope',sans-serif;font-weight:600;font-size:11.5px;padding:4px 10px;border-radius:12px;pointer-events:none;backdrop-filter:blur(4px);line-height:1}

/* ── Thumbnails ── */
.gaf-thumbs{position:relative;margin-top:8px;overflow:hidden;contain:layout style}
.gaf-thumbs-track{display:flex;gap:6px;transition:transform .3s ease;touch-action:pan-y}
.gaf-thumb{flex:0 0 calc((100% - 36px)/7);aspect-ratio:1/1;position:relative;cursor:pointer;border:2px solid transparent;border-radius:4px;overflow:hidden;transition:border-color .2s,opacity .2s;opacity:.55}
.gaf-thumb.active,.gaf-thumb:hover{border-color:#557B97;opacity:1}
.gaf-thumb.gaf-hide{display:none}
.gaf-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.gaf-thumb[data-type="video"] img{object-fit:contain;background:#f5f3f0}
.gaf-thumb[data-type="gif"] img{object-fit:contain;background:#f8f8f8}
.gaf-thumb-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;background:rgba(0,0,0,.6);border-radius:50%;display:flex;align-items:center;justify-content:center}

/* ══════ LIGHTBOX (AutoTrader-style vertical feed) ══════ */
.gaf-lightbox{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.97);display:none;flex-direction:column;overflow:hidden}
.gaf-lightbox.open{display:flex}

/* Topbar (fixed, hides on scroll down) */
.gaf-lb-topbar{position:fixed;top:0;left:0;right:0;z-index:100001;background:rgba(0,0,0,.97);transition:transform .3s ease,opacity .3s ease;display:flex;flex-direction:column;overflow:hidden;pointer-events:none}
.gaf-lb-topbar.hidden{transform:translateY(-100%);opacity:0;pointer-events:none}

/* Top row: counter + people + close */
.gaf-lb-toprow{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 0;gap:16px}
.gaf-lb-counter{font-family:'Manrope',sans-serif;font-weight:600;font-size:13px;color:rgba(255,255,255,.8)}
.gaf-lb-close{width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;-webkit-appearance:none;appearance:none;padding:0;line-height:1;pointer-events:auto}
.gaf-lb-close:hover{background:rgba(255,255,255,.25)}

/* People toggle in topbar */
.gaf-lb-people{flex-shrink:0;display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;-webkit-user-select:none;pointer-events:auto}
.gaf-lb-people .gaf-lb-people-label{color:rgba(255,255,255,.9);font-family:'Manrope',sans-serif;font-weight:700;font-size:12.5px;line-height:1;white-space:nowrap}
.gaf-lb-people .gaf-ai-switch{position:relative;display:block;width:38px;height:22px;border-radius:11px;background:rgba(255,255,255,.2);transition:background .25s ease;flex-shrink:0}
.gaf-lb-people .gaf-ai-switch::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .25s ease}
.gaf-lb-people.ai-on .gaf-ai-switch{background:#5d7b95}
.gaf-lb-people.ai-on .gaf-ai-switch::after{transform:translateX(16px)}
.gaf-lb-people .gaf-lb-ai-info{position:relative;display:flex;color:rgba(255,255,255,.4);cursor:help;flex-shrink:0;line-height:0}
.gaf-lb-people .gaf-lb-ai-tip{position:absolute;bottom:calc(100% + 8px);right:-8px;background:rgba(0,0,0,.85);color:#fff;font-family:'Inter',sans-serif;font-size:11px;font-weight:500;padding:6px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease;line-height:1.3}
.gaf-lb-people .gaf-lb-ai-tip::after{content:'';position:absolute;top:100%;right:12px;border:5px solid transparent;border-top-color:rgba(0,0,0,.85)}
.gaf-lb-people .gaf-lb-ai-info:hover .gaf-lb-ai-tip{opacity:1}

/* Filter pills row */
.gaf-lb-filters{display:flex;align-items:center;gap:8px;padding:10px 14px 14px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;pointer-events:auto}
.gaf-lb-filters::-webkit-scrollbar{display:none}
.gaf-lb-pill{flex-shrink:0;padding:12px 22px;border-radius:28px;border:1.5px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:rgba(255,255,255,.7);font-family:'Manrope',sans-serif;font-weight:600;font-size:15px;cursor:pointer;transition:all .2s ease;-webkit-appearance:none;appearance:none;white-space:nowrap}
.gaf-lb-pill:active{transform:scale(.95)}
.gaf-lb-pill.active{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.4);color:#fff}

/* Scroll feed */
.gaf-lb-feed{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;padding:100px 0 60px;scrollbar-width:none;-ms-overflow-style:none}
.gaf-lb-feed::-webkit-scrollbar{display:none}

/* Alternating row layout: full-width then 50/50 split */
.gaf-lb-row{display:flex;gap:3px;padding:0 0 3px}
.gaf-lb-row .gaf-lb-item{flex:1;padding:0}

/* Feed items */
.gaf-lb-item{width:100%;padding:3px 0;position:relative}
.gaf-lb-item img{width:100%;display:block;cursor:pointer;transition:opacity .2s}
.gaf-lb-item img:active{opacity:.85}

/* Video in feed */
.gaf-lb-item .gaf-lb-video{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.gaf-lb-item .gaf-lb-video.portrait{aspect-ratio:9/16;max-height:80vh;width:auto;margin:0 auto}
.gaf-lb-item .gaf-lb-video iframe{width:100%;height:100%;border:none}
.gaf-lb-item .gaf-lb-video img{width:100%;height:100%;object-fit:cover;cursor:pointer}
.gaf-lb-item .gaf-lb-video .gaf-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:rgba(0,0,0,.55);border:2px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff;pointer-events:none}

/* Category label on first of group */
.gaf-lb-item .cat-label{position:absolute;top:12px;left:12px;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:rgba(255,255,255,.9);font-family:'Manrope',sans-serif;font-weight:600;font-size:11px;padding:4px 10px;border-radius:6px;letter-spacing:.3px;pointer-events:none;z-index:2}

/* Per-image USP badge in feed */
.gaf-lb-item .gaf-img-usp{position:absolute;bottom:14px;left:12px;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.5);box-shadow:0 2px 10px rgba(0,0,0,.08);display:flex;align-items:center;gap:6px;font-family:'Manrope',sans-serif;font-weight:700;color:var(--c-text);font-size:12px;line-height:1;pointer-events:none;z-index:2}
.gaf-lb-item .gaf-img-usp svg{color:var(--c-success);flex-shrink:0}

/* AI badge in feed */
.gaf-lb-item .lb-ai-badge{display:none;position:absolute;bottom:40px;left:12px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:rgba(255,255,255,.9);font-family:'Inter',sans-serif;font-weight:500;font-size:11px;padding:4px 10px;border-radius:6px;pointer-events:none;z-index:2}
.gaf-lb-item.ai-on .lb-ai-badge{display:block}

/* ══════ ZOOM OVERLAY ══════ */
.gaf-zoom{position:fixed;inset:0;z-index:100010;background:rgba(0,0,0,.98);display:none;flex-direction:column;overflow:hidden;touch-action:none}
.gaf-zoom.open{display:flex}
.gaf-zoom-close{position:absolute;top:10px;right:10px;z-index:100012;width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-appearance:none;appearance:none;padding:0;line-height:1}
.gaf-zoom-counter{position:absolute;top:16px;left:16px;z-index:100012;font-family:'Manrope',sans-serif;font-weight:600;font-size:13px;color:rgba(255,255,255,.8)}
.gaf-zoom-track{display:flex;width:100%;height:100%;transition:transform .3s cubic-bezier(.25,.46,.45,.94);will-change:transform}
.gaf-zoom-track.dragging{transition:none}
.gaf-zoom-slide{flex:0 0 100%;width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}
.gaf-zoom-slide img{max-width:100%;max-height:100dvh;object-fit:contain;pointer-events:none;animation:gaf-zoomIn .25s cubic-bezier(.25,.46,.45,.94)}
.gaf-zoom-video{position:relative;width:100%;max-width:1400px;aspect-ratio:16/9;max-height:calc(100dvh - 60px);margin:auto;cursor:pointer}
.gaf-zoom-video.portrait{aspect-ratio:9/16;width:auto;max-width:100%;height:calc(100dvh - 60px)}
.gaf-zoom-video img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.gaf-zoom-video iframe{position:absolute;inset:0;width:100%;height:100%;border:none}
.gaf-zoom-video .gaf-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:rgba(0,0,0,.55);border:2px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff;pointer-events:none}
.gaf-zoom-people{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:100012;display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;-webkit-user-select:none;background:rgba(0,0,0,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:8px 16px;border-radius:22px;transition:opacity .3s ease}
.gaf-zoom-people .gaf-lb-people-label{color:rgba(255,255,255,.9);font-family:'Manrope',sans-serif;font-weight:700;font-size:12.5px;line-height:1;white-space:nowrap}
.gaf-zoom-people .gaf-ai-switch{position:relative;display:block;width:38px;height:22px;border-radius:11px;background:rgba(255,255,255,.2);transition:background .25s ease;flex-shrink:0}
.gaf-zoom-people .gaf-ai-switch::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .25s ease}
.gaf-zoom-people.ai-on .gaf-ai-switch{background:#5d7b95}
.gaf-zoom-people.ai-on .gaf-ai-switch::after{transform:translateX(16px)}
.gaf-zoom-usp{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:8px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.5);box-shadow:0 2px 10px rgba(0,0,0,.08);display:flex;align-items:center;gap:6px;font-family:'Manrope',sans-serif;font-weight:700;color:var(--c-text);font-size:13px;line-height:1;pointer-events:none;z-index:2;white-space:nowrap}
.gaf-zoom-usp svg{color:var(--c-success);flex-shrink:0}
@keyframes gaf-uspIn{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.gaf-zoom-usp.animate{animation:gaf-uspIn .4s ease .3s both}
@keyframes gaf-zoomIn{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
.gaf-zoom-arrow{display:none;position:absolute;top:50%;transform:translateY(-50%);z-index:100012;width:48px;height:48px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;-webkit-appearance:none;appearance:none;padding:0;line-height:1}
.gaf-zoom-arrow:hover{background:rgba(255,255,255,.25)}
.gaf-zoom-arrow.prev{left:20px}
.gaf-zoom-arrow.next{right:20px}

/* ── Dot indicators (mobile only) ── */
.gaf-dots{display:none}

/* Desktop lightbox + zoom adjustments */
@media(min-width:768px){
/* Single-row topbar: counter | pills | people + close */
.gaf-lb-topbar{flex-direction:row;align-items:center;padding:12px 24px;gap:16px}
.gaf-lb-toprow{display:contents}
.gaf-lb-filters{justify-content:center;padding:0;gap:6px}
.gaf-lb-close{width:40px;height:40px;order:10;margin-left:auto}
.gaf-lb-people{order:9}
.gaf-lb-counter{margin-right:auto}
.gaf-lb-pill{padding:8px 12px;font-size:12px;font-weight:400;border-radius:1rem;border-width:1px}
.gaf-lb-pill:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3)}
.gaf-lb-feed{padding:80px 0 80px;max-width:900px;margin:0 auto;width:100%}
.gaf-lb-row{gap:4px;padding:0 0 4px}
.gaf-lb-item{padding:0}
.gaf-lb-item img{border-radius:4px}
.gaf-lb-item img:hover{opacity:.9}
.gaf-lb-item .cat-label{font-size:12px;padding:5px 12px;top:16px;left:16px}
.gaf-zoom-arrow{display:flex}
.gaf-zoom-close{top:16px;right:24px;width:44px;height:44px}
.gaf-zoom-counter{font-size:14px;top:22px;left:24px}
.gaf-zoom-video{width:96%;max-height:calc(100dvh - 80px);border-radius:4px}
.gaf-zoom-video img{border-radius:4px}
.gaf-zoom-video iframe{border-radius:4px}
}

/* ── Desktop: vertical thumbs on left ── */
@media(min-width:768px){
.gaf-body{position:relative;padding-left:80px}
.gaf-main{width:100%}
.gaf-thumbs{position:absolute;left:0;top:0;bottom:0;width:72px;margin-top:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none;contain:initial}
.gaf-thumbs::-webkit-scrollbar{display:none}
.gaf-thumbs-track{flex-direction:column;gap:6px;transition:none}
.gaf-thumb{flex:0 0 auto;width:100%}
}

/* ── AI People toggle (lives on .gaf-main, global state) ── */
.gaf-ai-after{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease;z-index:1;pointer-events:none}
.gaf-main.ai-on .gaf-ai-after{opacity:1}
.gaf-ai-toggle{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:8;display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:24px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 12px rgba(0,0,0,.12);cursor:pointer;user-select:none;-webkit-user-select:none;transition:box-shadow .2s,opacity .25s ease;opacity:0;pointer-events:none}
.gaf-main.ai-slide-active .gaf-ai-toggle{opacity:1;pointer-events:auto}
.gaf-ai-toggle:hover{box-shadow:0 2px 16px rgba(0,0,0,.18)}
.gaf-ai-icon{width:18px;height:18px;color:var(--c-brand);flex-shrink:0}
.gaf-ai-label{font-family:'Manrope',sans-serif;font-weight:700;font-size:12.5px;color:var(--c-text);line-height:1;white-space:nowrap}
.gaf-ai-info{position:relative;display:flex;color:#999;cursor:help;flex-shrink:0;line-height:0}
.gaf-ai-tip{position:absolute;bottom:calc(100% + 8px);right:-8px;background:rgba(0,0,0,.85);color:#fff;font-family:'Inter',sans-serif;font-size:11px;font-weight:500;padding:6px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease;line-height:1.3}
.gaf-ai-tip::after{content:'';position:absolute;top:100%;right:12px;border:5px solid transparent;border-top-color:rgba(0,0,0,.85)}
.gaf-ai-info:hover .gaf-ai-tip{opacity:1}
.gaf-ai-switch{position:relative;display:block;width:38px;height:22px;border-radius:11px;background:#ccc;transition:background .25s ease;flex-shrink:0}
.gaf-ai-switch::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .25s ease}
.gaf-main.ai-on .gaf-ai-switch{background:#5d7b95}
.gaf-main.ai-on .gaf-ai-switch::after{transform:translateX(16px)}

/* ── Mobile ── */
@media(max-width:767px){
.gaf-gallery{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);width:100vw}
.gaf-pills-wrap{padding:0 12px;margin-bottom:6px}
.gaf-viewport{aspect-ratio:3/2}
.gaf-arr{width:34px;height:34px}
.gaf-arr-prev{left:8px}.gaf-arr-next{right:8px}
.gaf-expand{width:30px;height:30px;top:8px;right:8px}
.gaf-thumbs{display:none}
.gaf-dots{display:flex;justify-content:center;gap:6px;padding:10px 0 4px}
.gaf-dot{width:8px;height:8px;border-radius:50%;background:#d1d5db;cursor:pointer;transition:background .2s,transform .2s}
.gaf-dot.active{background:var(--c-brand);transform:scale(1.2)}
.gaf-usp{display:none}
.gaf-counter{bottom:10px;right:10px}
.gaf-ai-toggle{display:none}
.gaf-pills{gap:6px}.gaf-pill{padding:8px 16px;font-size:13.5px;min-height:40px;display:flex;align-items:center}
}

/* ── Reduced motion ── */
@media(prefers-reduced-motion:reduce){
.gaf-slide{transition:none}
.gaf-usp{transition:none}
.gaf-thumbs-track{transition:none}
.gaf-lb-item img{transition:none}
.gaf-zoom-slide img{transition:none;animation:none}
.gaf-pills-arrow{animation:none}
}

/* ── Utility: table overflow fix ── */
.et_pb_text_inner table,.woocommerce-Tabs-panel table,.entry-content table{max-width:100%!important;width:100%!important;table-layout:auto!important}
.et_pb_text_inner table td,.et_pb_text_inner table th,.woocommerce-Tabs-panel table td,.woocommerce-Tabs-panel table th,.entry-content table td,.entry-content table th{width:auto!important;max-width:none!important;word-wrap:break-word;overflow-wrap:break-word}
@media(max-width:767px){.et_pb_text_inner table,.woocommerce-Tabs-panel table,.entry-content table{font-size:13px}}

/* ── Z-index stack ── */
.mw-modal-overlay{z-index:100001!important}
.mw-modal-content{z-index:100002!important}
.gf-sticky-footer{z-index:999!important}

/* ── Hide WooCommerce Sale badge (price area already shows savings) ── */
.et_pb_wc_images .onsale{display:none!important}

/* ── Hide Crisp chat when lightbox open ── */
body.gaf-lb-open .crisp-client{display:none!important}


/* ====== Extracted from snippet-92-css.css ====== */
/* =============================================
   Snippet 92: G&F Mobile Menu | Native v1.0 (Combined)
   Extracted: 19 Apr 2026
   ============================================= */

/* ---------------------------------------------------------
   BLOCK 1: CRITICAL CSS (wp_head priority 1, anti-flicker)

   WARNING: This CSS is injected at wp_head priority 1 to
   prevent Max Mega Menu flash and unstyled header flash on
   mobile. If moved to style.css, it MUST be loaded before
   any other stylesheet, or the anti-flicker effect is lost.
   Consider keeping this inline or loading via a separate
   early-enqueued critical.css file.
   --------------------------------------------------------- */

/* Hide trigger bar on desktop by default */
.gfmm-header {
    display: none;
    align-items: center;
    height: 64px;
    padding: 0 24px;
    border-bottom: 1px solid var(--c-border);
    background: #fff;
    width: 100%;
    box-sizing: border-box;
}
/* Header column layout */
.gfmm-header-left,
.gfmm-header-right {
    flex: 1;
    display: flex;
    align-items: center;
    min-width: 0;
    box-sizing: border-box;
}
.gfmm-header-right { justify-content: flex-end; }
.gfmm-header-center {
    flex: 0 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 8px;
    box-sizing: border-box;
}
/* Logo - constrain size immediately so it never flashes large */
.gfmm-logo-img {
    height: auto;
    width: auto;
    max-width: 100%;
    max-height: 40px;
    display: block;
    object-fit: contain;
}
.gfmm-logo-link { display: block; max-width: 180px; }
/* Buttons - sized from the start */
.gfmm-trigger,
.gfmm-cart {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
    text-decoration: none !important;
}
.gfmm-cart { position: relative; }
.gfmm-trigger i,
.gfmm-cart i { font-size: 22px; color: #000; }
.gfmm-cart-count {
    position: absolute;
    top: -2px;
    right: -6px;
    background: #000;
    color: #fff;
    font-size: 10px;
    border-radius: 999px;
    height: 16px;
    width: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 700;
}
@media (max-width: 980px) {
    /* Show GFMM trigger bar */
    .gfmm-header { display: flex !important; }
    /* Hide Max Mega Menu + old Divi mobile menu elements */
    .mega-menu-wrap,
    #mega-menu-wrap-primary-menu,
    .max-mega-menu,
    .et_mobile_menu,
    .et_pb_menu { display: none !important; }
}

/* ---------------------------------------------------------
   BLOCK 2: FOOTER CSS (wp_footer, full drawer styles)

   This block is safe to move to style.css. It styles the
   drawer panel which is hidden by default (display:none).
   --------------------------------------------------------- */

/* -- Reset -- */
.gfmm-header, .gfmm-header *,
.gfmm-drawer,  .gfmm-drawer  * { box-sizing: border-box !important; }

/* -- Trigger Bar: hidden on desktop, shown on mobile (server-side, no flash) -- */
.gfmm-header {
    display: none;
    align-items: center;
    height: 64px;
    padding: 0 24px;
    border-bottom: 1px solid var(--c-border);
    background: #fff;
    z-index: 10;
    width: 100%;
    max-width: 100vw;
}
@media (max-width: 980px) {
    /* Show new trigger bar */
    .gfmm-header { display: flex !important; }
    /* Hide old Divi / Max Mega Menu mobile elements */
    .mega-menu-wrap,
    #mega-menu-wrap-primary-menu,
    .max-mega-menu,
    .et_mobile_menu,
    .et_pb_menu { display: none !important; }
}

/* -- Drawer Header (always visible inside open drawer) -- */
.gfmm-drawer-header {
    display: flex !important;
    align-items: center;
    height: 64px;
    padding: 0 24px;
    border-bottom: 1px solid var(--c-border);
    background: #fff;
    flex: 0 0 auto;
}

/* -- Header column helpers -- */
.gfmm-header-left, .gfmm-header-right {
    flex: 1; display: flex; align-items: center; min-width: 0;
}
.gfmm-header-right { justify-content: flex-end; }
.gfmm-header-center {
    flex: 0 0 auto; display: flex;
    justify-content: center; align-items: center; padding: 0 8px;
}

/* -- Logo -- */
.gfmm-logo-img {
    height: auto; width: auto; max-width: 100%;
    max-height: 40px; display: block; object-fit: contain;
}
.gfmm-logo-link { display: block; max-width: 180px; }

/* -- Icon Buttons -- */
.gfmm-close, .gfmm-trigger, .gfmm-cart {
    display: inline-flex !important; align-items: center !important;
    justify-content: center !important; width: 44px !important; height: 44px !important;
    border: none !important; background: transparent !important;
    box-shadow: none !important; cursor: pointer !important;
    margin: 0 !important; padding: 0 !important;
    outline: none !important; border-radius: 0 !important;
    text-decoration: none !important;
}
.gfmm-close:hover, .gfmm-trigger:hover, .gfmm-cart:hover { background: transparent !important; }
.gfmm-close i, .gfmm-trigger i { font-size: 22px; color: #000; }
.gfmm-cart { position: relative; font-size: 18px; }
.gfmm-cart i { font-size: 22px; color: #000; }
.gfmm-cart-count {
    position: absolute; top: -2px; right: -6px;
    background: #000; color: #fff; font-size: 10px;
    border-radius: 999px; height: 16px; width: 16px;
    display: flex; justify-content: center; align-items: center; font-weight: 700;
}

/* -- Drawer Overlay + Panel -- */
#gfmm-mobile-menu-container {
    position: fixed; inset: 0; z-index: 99999; background: rgba(0,0,0,0.3);
}
.gfmm-drawer {
    width: 100%; height: 100dvh; background: #fff;
    display: flex; flex-direction: column; box-shadow: 0 0 20px rgba(0,0,0,0.08);
}
@media (min-width: 768px) { .gfmm-drawer { max-width: 480px; } }
.gfmm-menu-wrapper {
    position: relative; flex: 1 1 auto;
    overflow-y: auto; overflow-x: hidden;
    background: #fff; padding-bottom: 120px;
}

/* -- Content Blocks -- */
.gfmm-banner { padding: 12px 16px; background: #f9fafb; border-bottom: 1px solid var(--c-border); }
.gfmm-banner-sub { font-size: 12px; font-weight: 500; display: flex; gap: 6px; align-items: center; }
.gfmm-stars { color: #f5c518; font-size: 12px; }
.gfmm-search-container { padding: 16px; border-bottom: 1px solid var(--c-border); }
.gfmm-search-form { display: flex; position: relative; }
.gfmm-search-input {
    width: 100%; padding: 10px 40px 10px 12px; border: 1px solid #d1d5db;
    border-radius: 4px; font-size: 16px; background: #f9fafb; color: #111827;
}
.gfmm-search-input:focus { outline: none; border-color: #111827; background: #fff; }
.gfmm-search-submit {
    position: absolute; right: 4px; top: 0; bottom: 0;
    background: none; border: none; color: var(--c-border-strong); padding: 0 12px;
    cursor: pointer; font-size: 16px;
}
.gfmm-coaster-cta { background: #ecfdf5; border-left: 4px solid #10b981; }
.gfmm-coaster-icon i { color: #059669; }
.gfmm-coaster-headline { font-size: 14px; font-weight: 600; color: #065f46; }
.gfmm-coaster-badge {
    background: #10b981; color: #fff; font-size: 10px;
    padding: 3px 6px; border-radius: 6px; font-weight: 600;
    margin-top: 4px; display: inline-block;
}
.gfmm-spacer { height: 12px; background: #f4f4f4; }

/* -- Menu Items -- */
.gfmm-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 16px; border-bottom: 1px solid var(--c-border); font-size: 17px;
    color: #111827; text-decoration: none; background: #fff;
    cursor: pointer; width: 100%;
}
.gfmm-item:hover { background: #f9fafb; }
.gfmm-left { display: flex; align-items: center; gap: 12px; }
.gfmm-icon { width: 24px; text-align: center; font-size: 18px; }
.gfmm-icon i { position: relative; top: 1px; }
.gfmm-chevron { font-size: 13px; color: #9ca3af; }
.gfmm-section-label {
    padding: 8px 16px 4px; font-size: 11px; letter-spacing: 0.06em;
    text-transform: uppercase; color: var(--c-border-strong); font-weight: 600;
}
.gfmm-sale, .gfmm-sale .gfmm-left { color: #b91c1c; font-weight: 600; }
.gfmm-sale i, .gfmm-sale .gfmm-chevron { color: #b91c1c; }

/* -- Panel Container - height managed by JS on switch -- */
.gfmm-panel-container { position: relative; overflow: hidden; }
.gfmm-menu-panel {
    position: absolute; top: 0; left: 0; width: 100%;
    transition: transform 0.3s ease; transform: translateX(100%);
    background: #fff;
}
.gfmm-menu-panel-active { transform: translateX(0); }

/* -- Sub-menu / Back -- */
.gfmm-sub-header { cursor: default; background: #f3f4f6; }
.gfmm-back-btn {
    font-size: 24px; color: #9ca3af; padding: 0; width: 24px; height: 24px;
    border: none; background: none; cursor: pointer; line-height: 1;
    display: flex; align-items: center; justify-content: center;
}
.gfmm-back-label { font-size: 17px; font-weight: 600; color: #111827; cursor: pointer; }
.gfmm-link-button { border: none; background: none; width: 100%; text-align: left; padding: 16px; }


/* ====== Extracted from snippet-93-css.css ====== */
/* =============================================
   Snippet 93: G&F Size Selector Native v1.0
   Extracted: 19 Apr 2026
   ============================================= */

/* ---------------------------------------------------------
   BLOCK 1: CRITICAL CSS (wp_head priority 1, anti-flicker)
   id="gfss-critical"

   WARNING: This CSS hides the native WooCommerce select
   dropdown and shows the custom widget wrapper on product
   pages. If moved to style.css, it MUST load before
   WooCommerce styles or users will see a flash of the
   native select before it hides. Consider keeping inline
   or loading via early-enqueued critical.css.

   SCOPE: Only needed on is_product() pages.
   --------------------------------------------------------- */

form.variations_form .variations select,
form.variations_form .variations .label,
form.variations_form .reset_variations,
form.variations_form .value > ul,
form.variations_form .value > *:not(.mw-variation-wrapper) { display: none !important; }
.variations td.value::before,
.variations td.value::after { content: none !important; }
.mw-variation-wrapper { display: block !important; }
.variations tr,
.variations td { display: block !important; width: 100% !important; padding: 0 !important; border: none !important; }

/* ---------------------------------------------------------
   BLOCK 2: WIDGET CSS (wp_head priority 5)
   id="gfss-css"

   Safe to move to style.css. Styles the custom size
   selector widget, modals, size guide table, and SVG
   diagram. All classes are prefixed with mw-.

   SCOPE: Only needed on is_product() pages.
   --------------------------------------------------------- */

/* Pseudo-element reset for variation elements */
.variations *::before, .variations *::after,
.mw-variation-wrapper *::before, .mw-variation-wrapper *::after,
td.value::before, td.value::after,
.mw-rich-dropdown-trigger::before, .mw-rich-dropdown-trigger::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    border: none !important;
    background: none !important;
    position: static !important;
}
.variations select::after,
.variations .value::after { display: none !important; }

/* -- Variation header (label + size guide link) -- */
.mw-variation-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    margin-top: 10px;
    position: relative;
    z-index: 20;
}
.mw-header-label {
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    color: var(--c-text);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.mw-variation-header a[href],
.mw-open-guide-link,
.mw-open-guide-link *,
.mw-open-guide-link::before,
.mw-open-guide-link::after {
    all: unset !important;
    all: initial !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--c-brand) !important;
    text-decoration: underline !important;
    cursor: pointer !important;
}
.mw-open-guide-link svg {
    display: block !important;
    width: 12px !important;
    height: 12px !important;
    text-decoration: none !important;
}
.mw-open-guide-link:hover {
    text-decoration: underline !important;
    color: #4a6278 !important;
}

/* -- Dropdown trigger button -- */
.mw-rich-dropdown-trigger {
    width: 100%;
    background: #fff;
    border: 1px solid #e5e5e5;
    padding: 16px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,.05);
    transition: all .2s;
    margin-bottom: 20px;
    position: relative;
    z-index: 10;
}
.mw-rich-dropdown-trigger:hover { border-color: var(--c-brand); }
.mw-trigger-label {
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    color: var(--c-text);
    font-size: 14px;
}
.mw-trigger-sub {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: var(--c-brand);
    margin-top: 2px;
}

/* -- Modal overlay (shared by selector + size guide) -- */
.mw-modal-overlay {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,.6);
    backdrop-filter: blur(4px);
    z-index: 2147483647;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
    padding: 16px;
    box-sizing: border-box;
}
.mw-modal-overlay.open { opacity: 1; pointer-events: auto; }
.mw-modal-content {
    background: #fff;
    width: 90%;
    max-width: 500px;
    max-height: 85vh;
    border-radius: 16px;
    box-shadow: 0 25px 50px rgba(0,0,0,.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: scale(.95);
    transition: transform .3s ease;
}
.mw-modal-overlay.open .mw-modal-content { transform: scale(1); }
#mw-dims-modal .mw-modal-content { max-width: 900px; width: 95%; }
.mw-modal-header {
    padding: 16px 20px;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
    flex-shrink: 0;
    position: relative;
    z-index: 20;
}
.mw-modal-title {
    font-family: 'Manrope', sans-serif;
    font-size: 18px;
    font-weight: 800;
    color: var(--c-text);
    margin: 0;
}
.mw-modal-close {
    background: #f5f5f5;
    border: none;
    cursor: pointer;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #555;
    transition: background .2s;
}
.mw-modal-close:hover { background: #e5e5e5; }
.mw-modal-body {
    padding: 0;
    background: #fff;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
#mw-selector-modal .mw-modal-body { overflow-y: auto; display: block; }

/* -- Option tiles (in selector modal) -- */
.mw-rich-option {
    background: #fff;
    border: 1px solid #e5e5e5;
    padding: 12px 14px;
    border-radius: 12px;
    cursor: pointer;
    margin: 16px;
    margin-bottom: 8px;
    display: flex;
    justify-content: space-between;
    gap: 10px;
}
.mw-rich-option:hover { border-color: var(--c-brand); background-color: #f9fcff; }
.mw-rich-option.active { border-color: var(--c-brand); background-color: var(--c-bg-soft); box-shadow: 0 0 0 1px var(--c-brand); }
.mw-opt-name {
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    color: var(--c-text);
    font-size: 14px;
    display: block;
    margin-bottom: 4px;
}
.mw-opt-meta {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    color: var(--c-text-soft);
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.mw-opt-dims { color: #595f6b; font-size: 11px; display: block; width: 100%; margin-top: 6px; }
.mw-opt-price { font-weight: 800; color: var(--c-text); font-size: 16px; margin-left: auto; }
.mw-opt-price del { font-weight: 400; color: var(--c-border-strong); font-size: 11px; margin-right: 4px; }
.mw-opt-price ins { text-decoration: none; }
.mw-badge {
    font-size: 9px;
    font-weight: 700;
    padding: 3px 6px;
    border-radius: 4px;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
}
.mw-badge-stock { background: var(--c-success-bg); color: var(--c-success); }
.mw-badge-backorder { background: #dbeafe; color: #1e40af; }

/* -- Size guide diagram area -- */
.mw-diagram-box {
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    padding: 20px;
    position: relative;
    text-align: center;
    flex-shrink: 0;
    z-index: 10;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-shadow: 0 4px 6px -4px rgba(0,0,0,.05);
    min-height: 220px;
    transition: min-height .2s ease;
}
.mw-leaf-count-label {
    margin-top: 12px;
    font-family: 'Manrope', sans-serif;
    font-size: 11px;
    color: var(--c-success);
    font-weight: 700;
    background: var(--c-success-bg);
    padding: 4px 10px;
    border-radius: 99px;
    display: none;
    align-items: center;
    gap: 6px;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.mw-table-scroll-area {
    flex-grow: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 20px;
}

/* -- SVG table diagram -- */
.mw-table-svg { width: 100%; height: auto; max-width: 500px; display: block; }
.mw-chair-base { fill: #9CA3AF; }
.mw-chair-ext { fill: #fff; stroke: #9CA3AF; stroke-width: 1.5; }
.mw-table-rect { fill: none; stroke: var(--c-border-strong); stroke-width: 1.5; }
.mw-leaf-line { stroke: var(--c-border-strong); stroke-width: 1.5; stroke-dasharray: 4 4; }

/* -- Dimensions table -- */
.mw-dims-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 12px;
    font-family: 'Inter', sans-serif;
    table-layout: fixed;
}
.mw-dims-table th {
    text-align: left;
    padding: 12px 24px;
    background: #f9fafb;
    color: var(--c-text);
    font-family: 'Manrope', sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
    border-bottom: 1px solid #e5e5e5;
    position: sticky;
    top: 0;
    z-index: 5;
    box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.mw-dims-table th:first-child { width: 40%; }
.mw-dims-table th:nth-child(2),
.mw-dims-table th:nth-child(3),
.mw-dims-table th:nth-child(4) { width: 20%; }
.mw-dims-table td {
    padding: 12px 24px;
    border-bottom: 1px solid #f0f0f0;
    color: var(--c-text-soft);
    cursor: pointer;
    position: relative;
    vertical-align: middle;
    height: 75px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    z-index: 1;
}
.mw-dims-table td:first-child { white-space: normal; padding-right: 40px; }
.mw-dims-table tr {
    cursor: pointer;
    transition: background-color .2s;
    position: relative;
}
.mw-dims-table tr::before {
    content: '';
    position: absolute;
    inset: 0;
    border: 2px solid transparent;
    border-radius: 12px;
    pointer-events: none;
    z-index: 10;
    transition: border-color .2s ease;
}
.mw-dims-table tr.active-row { background: var(--c-bg-soft); border-radius: 12px; }
.mw-dims-table tr.active-row::before { border-color: var(--c-brand); }
.mw-dims-table tr.active-row td {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    color: var(--c-brand) !important;
    font-weight: 400;
}
.mw-dims-table tr:hover { background: #f9fafb; }
.mw-selected-badge {
    background: var(--c-brand);
    color: #fff;
    font-size: 9px;
    padding: 4px 8px;
    border-radius: 99px;
    font-weight: 700;
    text-transform: uppercase;
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    display: none;
    z-index: 20;
}
.active-row .mw-selected-badge { display: block !important; }
.mw-dims-green { color: var(--c-success); font-weight: 400; }

/* -- Mobile responsive -- */
@media (max-width: 768px) {
    .mw-modal-overlay { align-items: flex-end; padding: 0; }
    .mw-modal-content {
        width: 100%;
        max-width: 100%;
        border-radius: 20px 20px 0 0;
        max-height: 90vh;
        margin-bottom: 0;
    }
    .mw-diagram-box { padding: 10px; min-height: 180px; }
    .mw-diagram-box p { margin-bottom: 5px !important; font-size: 9px !important; }
    .mw-dims-table th,
    .mw-dims-table td { padding: 10px 12px; font-size: 11px; }
    .mw-dims-table th:first-child { width: 35%; }
    .mw-dims-table th:nth-child(2),
    .mw-dims-table th:nth-child(3),
    .mw-dims-table th:nth-child(4) { width: 21.6%; }
    .mw-dims-table td { white-space: normal; }
    .mw-selected-badge {
        font-size: 0;
        padding: 4px;
        width: 20px;
        height: 20px;
        display: none;
        align-items: center;
        justify-content: center;
        right: 4px;
    }
    .mw-selected-badge::after { content: '\2713'; font-size: 12px; display: block; }
    .active-row .mw-selected-badge { display: flex !important; }
}


/* ====== Extracted from snippet-102-css.css ====== */
/* =============================================
   Snippet 102: Convert Cart - Product Nudge HP
   Extracted: 19 Apr 2026
   ============================================= */

/* -- Lookbook: Shop by Collection -- */
.gf-lookbook-wrap {
    padding: 54px 0;
    border-top: 1px solid #d9d9d9;
    background: #f5f1ec;
    box-sizing: border-box;
}
.gf-lookbook-wrap * {
    box-sizing: border-box;
}
.gf-lookbook-title {
    font-family: 'Metro Sans', Helvetica, Arial, Lucida, sans-serif;
    font-size: 45px;
    padding-bottom: 30px;
    display: block;
    width: 100%;
    font-weight: 600;
    text-align: center;
}
.gf-lookbook-card {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    width: 100%;
    height: 100%;
}
.gf-lookbook-content {
    display: flex;
    max-width: 100%;
    position: relative;
    z-index: 1;
    overflow: hidden;
}

/* -- Main image -- */
.gf-lookbook-image {
    display: inline-flex;
    position: relative;
    width: 100%;
    transition: width 3s ease;
}
.gf-lookbook-image img {
    display: flex;
    height: 600px;
    width: 100%;
    max-width: 100%;
    object-fit: cover;
    object-position: center;
}
.gf-lookbook-image .gf-img-btm-info {
    position: absolute;
    bottom: 16px;
    z-index: 10;
    width: 100%;
    box-sizing: border-box;
    padding: 0 32px 0 56px;
}
.gf-lookbook-image .gf-img-btm-info button {
    display: flex;
    align-items: center;
    float: right;
    text-decoration: none;
    border: 1px solid var(--c-brand);
    padding: 7px 15px 8px;
    font-size: 16px;
    color: #fff;
    border-radius: 0;
    background: var(--c-brand);
    cursor: pointer;
}

/* -- Hotspot markers -- */
.gf-lookbook-markers {
    transition: all 3s ease;
}
.gf-hotspot {
    position: absolute;
    transition: all 3s ease;
}
.gf-hotspot-dot {
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid #fff;
    background-color: rgba(0,0,0,0.1);
    padding: 8px;
    width: 32px !important;
    height: 32px !important;
    cursor: pointer;
    transition: all 0.5s ease;
    position: relative;
}
.gf-hotspot-dot:hover {
    transform: scale(1.3);
}
.gf-hotspot-dot:hover .gf-hotspot-inner {
    transform: scale(0.6);
}
.gf-hotspot-inner {
    position: absolute;
    width: 15px;
    height: 15px;
    background: #fff;
    border: 1px solid #fff;
    border-radius: 50%;
    transition: all 0.5s ease;
}
.gf-hotspot-dot.active .gf-hotspot-inner {
    transform: scale(0.7);
    background: #ff5d55;
}

/* Default hotspot positions (full-width image) */
.gf-pointer-1 { left: 18%; top: 68%; }
.gf-pointer-2 { left: 50%; top: 55%; }
.gf-pointer-3 { left: 45%; top: 30%; }
.gf-pointer-5 { left: 75%; top: 45%; }

/* -- Products side panel -- */
.gf-lookbook-products {
    float: right;
    max-width: 30%;
    width: 100%;
    z-index: initial;
    overflow-x: hidden;
    margin-left: 0;
    background: #f5f1ec;
    align-self: center;
    position: absolute;
    right: 0;
    transition: all 2s linear;
    opacity: 0.2;
    top: 50%;
    transform: translateY(-50%);
    height: 100%;
    padding-right: 10px;
}

/* -- Slider area -- */
.gf-slider-wrap {
    position: relative;
    padding: 30px 0 30px 20px;
    height: 100%;
    display: flex;
    width: 100%;
    align-items: center;
}
.gf-slider-track {
    display: block;
    width: 100%;
    overflow: hidden;
}
.gf-slider-track li.product {
    list-style: none;
    display: none;
    width: 100%;
    padding: 0 15px;
}
.gf-slider-track li.product.gf-slide-active {
    display: block;
}
.gf-slider-track li.product .woocommerce-loop-product__title {
    font-size: 18px;
    font-weight: 500;
    line-height: 25px;
}
.gf-slider-track li.product .price {
    font-size: 16px;
    display: flex !important;
    align-items: center;
    width: 100%;
    column-gap: 15px;
    color: var(--c-text-soft) !important;
    margin: 0 !important;
    font-weight: 400;
}
.gf-slider-track li.product .price .amount bdi {
    color: var(--c-danger);
    font-size: 30px;
    line-height: 30px;
    font-weight: 700;
}
.gf-slider-loader {
    display: none;
}

/* Slider arrows (matches product gallery) */
.gf-slider-arrow {
    position: absolute;
    width: 40px;
    height: 40px;
    padding: 0 !important;
    cursor: pointer;
    top: 50%;
    transform: translateY(-50%);
    z-index: 9;
    margin: 0;
    background: #fff;
    color: #557B97;
    border: 2px solid #557B97;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, color 0.2s;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.gf-slider-arrow:hover {
    background: #557B97;
    color: #fff;
}
.gf-slider-arrow.gf-arrow-prev { left: 2px; }
.gf-slider-arrow.gf-arrow-next { right: 2px; }
.gf-slider-arrow.gf-arrow-disabled {
    opacity: 0.3;
    cursor: default;
}

/* -- Fetched product card overrides (WooCommerce category page HTML) -- */
.gf-slider-track li.product {
    padding: 0 15px;
}
.gf-slider-track li.product a {
    text-decoration: none;
    color: inherit;
}
/* Image: show only primary, hide hover variant */
.gf-slider-track li.product .tp-image-hover {
    display: none !important;
}
.gf-slider-track li.product img {
    width: 100%;
    height: auto;
}
/* Hide "Sale!" badge */
.gf-slider-track li.product .onsale {
    display: none !important;
}
/* Title */
.gf-slider-track li.product .woocommerce-loop-product__title {
    font-size: 18px;
    font-weight: 500;
    line-height: 25px;
}
/* Price container */
.gf-slider-track li.product .price {
    font-size: 16px;
    display: flex !important;
    align-items: center;
    width: 100%;
    column-gap: 15px;
    color: var(--c-text-soft) !important;
    margin: 0 !important;
    font-weight: 400;
}
/* Sale price (ins) */
.gf-slider-track li.product .price ins.sale_price {
    width: auto;
    background: 0 0;
    font-weight: 700;
    display: block !important;
    text-decoration: none;
}
.gf-slider-track li.product .price .amount bdi {
    color: var(--c-danger);
    font-size: 30px;
    line-height: 30px;
    font-weight: 700;
}
/* Save discount section */
.gf-slider-track li.product .price .save_discount_price {
    display: block;
    line-height: normal;
}
.gf-slider-track li.product .price .save_discount_price span.save_price {
    color: var(--c-danger);
    font-size: 16px;
    font-weight: 600;
    line-height: 20px;
    display: block;
}
.gf-slider-track li.product .price .save_discount_price del {
    text-decoration: none !important;
    width: 100%;
    display: block;
    font-size: 16px;
    line-height: 20px;
    color: var(--c-text-soft) !important;
    font-weight: 400;
    margin: 0 !important;
    opacity: 0.7;
}
.gf-slider-track li.product .price .save_discount_price del .amount bdi {
    display: inline;
    font-size: 16px;
    line-height: 20px;
    color: var(--c-text-soft) !important;
    font-weight: 400;
    text-decoration-line: line-through;
}
/* Hide WC default button, tracking data, empty excerpt */
.gf-slider-track li.product .button,
.gf-slider-track li.product .add_to_cart_button,
.gf-slider-track li.product .gtm4wp_productdata,
.gf-slider-track li.product .wpmProductId,
.gf-slider-track li.product script,
.gf-slider-track li.product .excerpt {
    display: none !important;
}

/* -- "View all products" list -- */
.gf-all-products-list {
    display: none;
    height: 100%;
    padding: 0 0 0 30px;
}
.gf-all-products-scroll {
    height: calc(100% - 60px);
    overflow: auto;
    padding: 0 15px 0 0;
}
.gf-all-products-scroll::-webkit-scrollbar-track {
    border-radius: 10px;
    background-color: #dde;
}
.gf-all-products-scroll::-webkit-scrollbar {
    width: 4px;
    background-color: var(--c-brand);
}
.gf-all-products-scroll::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background-color: var(--c-brand);
}
.gf-all-products-footer {
    display: block;
    width: 100%;
    padding: 10px 0 0;
    box-shadow: -1px -4px 4px -4px #8f8f8f;
}
.gf-all-cart-btn {
    text-decoration: none;
    border: 1px solid var(--c-brand);
    padding: 7px 0 8px;
    font-size: 16px;
    color: #fff;
    border-radius: 0;
    background: var(--c-brand);
    cursor: pointer;
    display: block;
    width: 60%;
    margin: 0 auto;
}
.gf-all-cart-btn.loading {
    background-color: #d2d2d3;
    cursor: not-allowed;
    border-color: #d2d2d3;
}

/* Product list items */
.gf-list-item {
    display: flex;
    padding: 0 0 20px;
    border-bottom: 1px solid #d9d9d9;
    margin-bottom: 20px;
}
.gf-list-item-img {
    width: 120px;
}
.gf-list-item-img a {
    display: block;
}
.gf-list-item-img img {
    border-radius: 6px;
    width: 100%;
    height: auto;
}
.gf-list-item-info {
    width: calc(100% - 120px);
    padding-left: 15px;
}
.gf-list-item-title {
    font-size: 15px;
    line-height: 17px;
    display: block;
    color: #000;
    text-decoration: none;
}
.gf-list-price-was {
    display: flex;
    height: 30px;
    align-items: center;
}
.gf-list-price-was del {
    font-weight: 500;
    font-size: 14px;
    margin-right: 5px;
}
.gf-list-price-save {
    color: var(--c-danger);
    font-weight: 600;
    font-size: 14px;
}
.gf-list-price-now {
    font-size: 23px;
    color: #dd3000;
    font-weight: 600;
}
.gf-list-atc-wrap {
    display: block;
    width: 100%;
    padding-top: 5px;
}
.gf-list-atc-btn {
    text-decoration: none;
    border: 1px solid var(--c-brand);
    padding: 7px 0 8px;
    font-size: 16px;
    color: #fff;
    border-radius: 0;
    background: var(--c-brand);
    cursor: pointer;
    display: block;
    width: 100%;
}
.gf-list-atc-btn.loading {
    background-color: #d2d2d3;
    cursor: not-allowed;
    border-color: #d2d2d3;
}

/* -- Show/hide states -- */
.gf-lookbook-card.show-products .gf-lookbook-image {
    width: 70% !important;
}
.gf-lookbook-card.show-products .gf-lookbook-image img {
    object-fit: cover;
    object-position: center;
}
.gf-lookbook-card.show-products .gf-lookbook-products {
    max-width: 30%;
    opacity: 1;
    z-index: initial;
}
.gf-lookbook-card.z-index-up .gf-lookbook-products {
    z-index: 2 !important;
}

/* Hotspot positions when panel is open */
.gf-lookbook-card.show-products .gf-pointer-1 { left: 9.8%; top: 64%; }
.gf-lookbook-card.show-products .gf-pointer-2 { left: 35%; top: 54%; }
.gf-lookbook-card.show-products .gf-pointer-3 { left: 31%; top: 34%; }
.gf-lookbook-card.show-products .gf-pointer-5 { left: 55%; top: 46%; }

/* "All products" mode */
.gf-lookbook-wrap.all-products-mode .gf-all-products-list {
    display: block;
}
.gf-lookbook-wrap.all-products-mode .gf-slider-wrap {
    display: none;
}

/* -- Responsive -- */
@media only screen and (max-width: 1100px) {
    .gf-lookbook-image img {
        height: 400px;
    }
    .gf-all-products-list {
        padding: 0 0 0 15px;
    }
    .gf-list-item-img {
        width: 90px;
    }
    .gf-list-item-info {
        width: calc(100% - 90px);
        padding-left: 10px;
    }
    .gf-list-item-title {
        font-size: 11px;
    }
    .gf-list-price-was del,
    .gf-list-price-save {
        font-size: 12px;
    }
    .gf-list-price-now {
        font-size: 20px;
    }
    .gf-list-atc-btn {
        padding: 5px 0;
        font-size: 14px;
    }
}


/* ====== Extracted from snippet-105-css.css ====== */
/* =============================================
   Snippet 105: G&F FlyCart Upsell
   Extracted: 19 Apr 2026
   ============================================= */

/* Global FlyCart font override for consistency */
.woofc-area,
.woofc-area .woofc-area-mid,
.woofc-area .woofc-area-bot,
.woofc-area #gf-trust-row,
.woofc-area #gf-trust-row .gf-review-text {
    font-family: 'Inter', -apple-system, sans-serif;
}

/* Hide native FlyCart suggestions */
.woofc-suggested { display: none !important; }

/* -- Scroll fade indicator -- */
.woofc-area-mid {
    position: relative;
}
.woofc-area-mid::after {
    content: '';
    position: sticky;
    bottom: 0; left: 0; right: 0;
    display: block;
    height: 32px;
    background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.95));
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 5;
}
.woofc-area-mid.gf-scrolled-bottom::after {
    opacity: 0;
}

/* -- Shared -- */
.gf-upsell-chairs, .gf-upsell-set, .gf-upsell-browse {
    font-family: 'Inter', -apple-system, sans-serif;
    line-height: 1.4;
}
.gf-upsell-header {
    display: flex; align-items: center; gap: 6px; margin-bottom: 4px;
}
.gf-upsell-icon {
    width: 20px; height: 20px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.gf-upsell-icon.blue { background: var(--c-brand); }
.gf-upsell-icon.green { background: var(--c-success-bg); }
.gf-upsell-icon svg { width: 11px; height: 11px; }
.gf-upsell-icon.blue svg { color: white; }
.gf-upsell-icon.green svg { color: var(--c-success); }
.gf-upsell-title {
    font-family: 'Manrope', sans-serif;
    font-size: 12.5px; font-weight: 700;
}
.gf-upsell-title.blue { color: var(--c-brand); }
.gf-upsell-title.green { color: var(--c-success); }
.gf-upsell-social {
    font-size: 10px; font-weight: 500; font-style: italic;
    margin-bottom: 2px; padding-left: 28px;
}
.gf-upsell-social.blue { color: var(--c-brand); }
.gf-upsell-social.green { color: var(--c-text-soft); }

/* -- Tier 1: Chairs -- */
.gf-upsell-chairs {
    padding: 10px 20px 12px; background: var(--c-bg-soft);
    border-bottom: 1px solid var(--c-border);
}
.gf-upsell-chair-body {
    display: flex; gap: 10px; align-items: flex-start;
}
.gf-upsell-chair-img {
    width: 56px; height: 56px; border-radius: 8px; background: #e8e2d8;
    flex-shrink: 0; overflow: hidden;
}
.gf-upsell-chair-img img {
    width: 100%; height: 100%; object-fit: cover !important;
}
.gf-upsell-chair-info { flex: 1; min-width: 0; }

.gf-upsell-chair-select {
    width: 100%; padding: 4px 8px; margin-bottom: 4px;
    font-size: 11px; font-family: 'Inter', sans-serif;
    border: 1px solid #ccc; border-radius: 5px;
    background: white; color: var(--c-text); cursor: pointer;
    appearance: auto;
}
.gf-upsell-chair-pricing {
    display: flex; align-items: center; gap: 6px; margin-bottom: 4px;
    font-size: 11px;
}
.gf-upsell-chair-pricing .gf-upsell-was {
    text-decoration: line-through; color: var(--c-border-strong); font-size: 11px;
}
.gf-upsell-chair-pricing .gf-upsell-now {
    font-weight: 700; color: var(--c-text); font-size: 12px;
}
.gf-upsell-chair-save {
    font-size: 9px; font-weight: 700; color: #dc2626;
    background: #fef2f2; padding: 2px 5px; border-radius: 3px;
    white-space: nowrap;
}
.gf-upsell-qty-row {
    display: flex; align-items: center; gap: 6px; margin-bottom: 6px;
}
.gf-upsell-qty-label {
    font-size: 10px; font-weight: 600; color: var(--c-text-soft);
    text-transform: uppercase; letter-spacing: 0.3px; white-space: nowrap;
}
.gf-upsell-qty-btns { display: flex; gap: 4px; }
.gf-upsell-qty-btn {
    width: 32px; height: 28px;
    border: 1.5px solid var(--c-border); background: white;
    border-radius: 6px; font-size: 12px; font-weight: 600;
    color: var(--c-text-soft); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.12s ease;
}
.gf-upsell-qty-btn:hover {
    border-color: var(--c-brand); color: var(--c-brand);
}
.gf-upsell-qty-btn.selected {
    border-color: var(--c-brand); background: var(--c-brand); color: white;
}
.gf-upsell-chair-add {
    display: flex; align-items: center; justify-content: center;
    width: 100%; padding: 7px 14px;
    font-size: 11px; font-weight: 700; letter-spacing: 0.4px;
    text-transform: uppercase;
    border: none; background: var(--c-brand); color: white;
    border-radius: 6px; cursor: pointer; transition: opacity 0.15s;
}
.gf-upsell-chair-add:hover { opacity: 0.9; }
.gf-upsell-chair-add:disabled { opacity: 0.6; cursor: not-allowed; }
.gf-upsell-risk {
    font-size: 9px; color: var(--c-text-soft); text-align: center;
    margin-top: 3px;
}

/* -- Delivery indicator (backorder only) -- */
.gf-upsell-delivery {
    font-size: 10px; font-weight: 600; margin-top: 4px;
    display: flex; align-items: center; gap: 4px;
    color: #1e40af;
}
.gf-upsell-delivery::before {
    content: '';
    display: inline-block; width: 6px; height: 6px;
    border-radius: 50%; flex-shrink: 0;
    background: #1e40af;
}
.gf-upsell-chairs .gf-upsell-delivery { justify-content: center; }

/* -- Tier 2: Set accessories -- */
.gf-upsell-set {
    padding: 8px 20px 10px;
    border-bottom: 1px solid var(--c-border);
}
.gf-upsell-set-note {
    font-size: 10px; color: var(--c-border-strong); padding-left: 28px;
    margin-bottom: 4px; font-style: normal;
}
.gf-upsell-set-item {
    display: flex; gap: 10px; padding: 7px 0;
    border-top: 1px solid #f3f4f6; align-items: flex-start;
}
.gf-upsell-set-item:first-of-type { border-top: 1px solid var(--c-border); }
.gf-upsell-set-img {
    width: 48px; height: 48px; border-radius: 8px; background: #f3efe8;
    flex-shrink: 0; overflow: hidden;
}
.gf-upsell-set-img img {
    width: 100%; height: 100%; object-fit: cover !important;
}
.gf-upsell-set-info { flex: 1; min-width: 0; }
.gf-upsell-set-name {
    font-size: 11.5px; font-weight: 600; color: var(--c-text);
    line-height: 1.3; margin-bottom: 4px;
}
.gf-upsell-set-pricing {
    display: flex; align-items: baseline; gap: 6px; margin-bottom: 2px;
}
.gf-upsell-was {
    font-size: 12px; color: #aaa; text-decoration: line-through;
}
.gf-upsell-now {
    font-size: 15px; font-weight: 700; color: var(--c-text);
}
.gf-upsell-save {
    font-size: 10px; font-weight: 600; color: var(--c-success);
    background: var(--c-success-bg); padding: 2px 6px;
    border-radius: 100px; display: inline-block; margin-bottom: 3px;
}
.gf-upsell-set-add {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 12px; font-size: 10px; font-weight: 700;
    letter-spacing: 0.4px; text-transform: uppercase;
    border: 1.5px solid var(--c-success); background: white; color: var(--c-success);
    border-radius: 6px; cursor: pointer; transition: all 0.15s ease;
}
.gf-upsell-set-add:hover { background: var(--c-success); color: white; }
.gf-upsell-set-add:disabled { opacity: 0.6; cursor: not-allowed; }

/* -- Browse tables fallback -- */
.gf-upsell-browse {
    padding: 16px 20px; border-bottom: 1px solid var(--c-border);
}
.gf-upsell-browse-inner {
    background: var(--c-bg-soft); border-radius: 12px; padding: 16px;
    text-align: center;
}
.gf-upsell-browse-title {
    font-family: 'Manrope', sans-serif;
    font-size: 14px; font-weight: 700; color: var(--c-text);
    margin-bottom: 4px;
}
.gf-upsell-browse-text {
    font-size: 12px; color: var(--c-text-soft); margin-bottom: 12px;
}
.gf-upsell-browse-cta {
    display: inline-block; padding: 10px 24px;
    font-size: 12px; font-weight: 700; letter-spacing: 0.3px;
    text-transform: uppercase; text-decoration: none;
    background: var(--c-brand); color: white; border-radius: 6px;
    transition: opacity 0.15s;
}
.gf-upsell-browse-cta:hover { opacity: 0.9; color: white; }

/* -- Flux Checkout: hide native cross-sells, show our upsell -- */
.flux-crosssell__title,
.flux-crosssell__product { display: none !important; }

.gf-checkout-upsell {
    font-family: 'Inter', -apple-system, sans-serif;
    padding: 16px 0 8px;
}
.gf-checkout-upsell-header {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 12px; padding-bottom: 8px;
    border-bottom: 1px solid var(--c-border);
}
.gf-checkout-upsell-title {
    font-family: 'Manrope', sans-serif;
    font-size: 13px; font-weight: 700; color: var(--c-success);
}
.gf-checkout-upsell-note {
    font-size: 10.5px; color: #595f6b; font-style: italic;
    margin-top: -8px; margin-bottom: 10px;
}
.gf-checkout-bump {
    display: flex; gap: 10px; padding: 10px 0;
    border-bottom: 1px solid #f3f4f6; align-items: center;
}
.gf-checkout-bump:last-child { border-bottom: none; }
.gf-checkout-bump-img {
    width: 48px; height: 48px; border-radius: 6px;
    background: #f3efe8; flex-shrink: 0; overflow: hidden;
}
.gf-checkout-bump-img img {
    width: 100%; height: 100%; object-fit: cover !important;
}
.gf-checkout-bump-info { flex: 1; min-width: 0; }
.gf-checkout-bump-name {
    font-size: 11.5px; font-weight: 600; color: var(--c-text);
    line-height: 1.3; margin-bottom: 2px;
}
.gf-checkout-bump-pricing {
    display: flex; align-items: baseline; gap: 5px;
    margin-bottom: 2px;
}
.gf-checkout-bump-was {
    font-size: 11px; color: #aaa; text-decoration: line-through;
}
.gf-checkout-bump-now {
    font-size: 13px; font-weight: 700; color: var(--c-text);
}
.gf-checkout-bump-save {
    font-size: 9.5px; font-weight: 600; color: var(--c-success);
    background: var(--c-success-bg); padding: 1px 5px;
    border-radius: 100px; display: inline-block;
}
.gf-checkout-bump-save-inline {
    font-size: 9.5px; font-weight: 600; color: var(--c-success);
    background: var(--c-success-bg); padding: 2px 6px; border-radius: 100px;
    display: inline-block; white-space: nowrap;
}
.gf-checkout-bump-add {
    flex-shrink: 0; padding: 7px 14px;
    font-size: 10px; font-weight: 700; letter-spacing: 0.3px;
    text-transform: uppercase;
    border: 1.5px solid var(--c-success); background: white; color: var(--c-success);
    border-radius: 5px; cursor: pointer; transition: all 0.15s ease;
    white-space: nowrap;
}
.gf-checkout-bump-add:hover { background: var(--c-success); color: white; }
.gf-checkout-bump-add:disabled { opacity: 0.6; cursor: not-allowed; }
.gf-co-qty-btn:hover { border-color: var(--c-brand) !important; color: var(--c-brand) !important; }
.gf-co-qty-selected { background: var(--c-brand) !important; color: white !important; border-color: var(--c-brand) !important; }


/* ====== Extracted from snippet-107-css.css ====== */
/**
 * Snippet 107 - G&F ATC & Quantity Redesign v2.0
 * Extracted from wp_head style block (lines 282-941)
 * Injected via: add_action("wp_head", ..., 5) with is_product() guard
 *
 * IMPORTANT: This CSS only applies to single product pages.
 * Wrap in body.single-product {} or use existing body.single-product selectors.
 */

    /* -- STOCK / DELIVERY BANNER -- */
    body.single-product .et_pb_wc_add_to_cart .stock {
        border: none !important;
        padding-inline: 0 !important;
    }
    body.single-product .quantity.woopq-quantity {
        border: none !important;
        padding-inline: 0 !important;
        padding-bottom: 0 !important;
        margin-bottom: 0 !important;
        border-radius: 0 !important;
    }
    body.single-product .stock.in-stock,
    body.single-product .stock.available-on-backorder {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 8px 12px !important;
        border-radius: 8px !important;
        font-size: 13px !important;
        font-weight: 500 !important;
        font-style: normal !important;
        margin-bottom: 8px !important;
        margin-top: 4px !important;
        border: none !important;
        flex-wrap: wrap !important;
    }
    body.single-product .stock.in-stock {
        background: #f0fdf4 !important;
        color: var(--c-success) !important;
    }
    body.single-product .stock.available-on-backorder {
        background: #dbeafe !important;
        color: #1e40af !important;
    }
    body.single-product .stock.in-stock::before,
    body.single-product .stock.available-on-backorder::before {
        content: '' !important;
        display: inline-block !important;
        width: 16px !important;
        height: 16px !important;
        font-size: 0 !important;
        background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23166534' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 18H3a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h10l4 4v7a1 1 0 0 1-1 1h-1'/%3E%3Ccircle cx='7.5' cy='18.5' r='1.5'/%3E%3Ccircle cx='17.5' cy='18.5' r='1.5'/%3E%3Cpath d='M14 7h4l3 3v5a1 1 0 0 1-1 1h-1'/%3E%3C/svg%3E") !important;
        background-repeat: no-repeat !important;
        background-size: contain !important;
        flex-shrink: 0 !important;
        margin-right: 0 !important;
    }
    body.single-product .stock.available-on-backorder::before {
        background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231e40af' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") !important;
    }
    @media (max-width: 767px) {
        body.single-product .stock.in-stock,
        body.single-product .stock.available-on-backorder {
            padding: 6px 10px !important;
            margin-bottom: 6px !important;
            margin-top: 2px !important;
            font-size: 12px !important;
        }
    }
    .gf-delivery-skeleton {
        display: inline-block;
        width: 160px;
        height: 13px;
        background: rgba(0,0,0,0.08);
        border-radius: 6px;
        position: relative;
        overflow: hidden;
        vertical-align: middle;
    }
    .gf-delivery-skeleton::after {
        content: '';
        position: absolute;
        top: 0; left: -100%; width: 100%; height: 100%;
        background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5), transparent);
        animation: gf-shimmer 1.5s infinite;
    }
    @keyframes gf-shimmer { 100% { left: 100%; } }
    .available-delivery-date { font-style: normal !important; }
    /* Divider between stock text and delivery date */
    body.single-product .stock br { display: none !important; }
    body.single-product .stock .available-delivery-date::before {
        content: '|' !important;
        margin: 0 8px !important;
        opacity: 0.4 !important;
    }

    /* -- HIDE NATIVE QTY on PDP only: replaced by custom steppers -- */
    body.gf-cat-dining-tables .et_pb_wc_add_to_cart .quantity.woopq-quantity,
    body.gf-cat-dining-tables .et_pb_wc_add_to_cart .quantity,
    body.gf-cat-samples .et_pb_wc_add_to_cart .quantity.woopq-quantity,
    body.gf-cat-samples .et_pb_wc_add_to_cart .quantity,
    body.gf-cat-dining-chairs .et_pb_wc_add_to_cart .quantity.woopq-quantity,
    body.gf-cat-dining-chairs .et_pb_wc_add_to_cart .quantity,
    body.gf-cat-dining-stools .et_pb_wc_add_to_cart .quantity.woopq-quantity,
    body.gf-cat-dining-stools .et_pb_wc_add_to_cart .quantity,
    body.gf-cat-dining-benches:not(.gf-cat-dining-stools) .et_pb_wc_add_to_cart .quantity.woopq-quantity,
    body.gf-cat-extension-leaves .et_pb_wc_add_to_cart .quantity.woopq-quantity,
    body.gf-cat-extension-leaves .et_pb_wc_add_to_cart .quantity {
        display: none !important;
    }

    /* -- +/- STEPPER (shared by chairs, stools, benches) -- */
    body.single-product .woocommerce-variation-add-to-cart {
        flex-wrap: wrap !important;
    }
    .gf-stepper-wrapper {
        margin-bottom: 8px;
        width: 100% !important;
        text-align: left !important;
    }
    .gf-stepper-label {
        font-size: 12px;
        font-weight: 600;
        color: var(--c-text-soft);
        text-transform: uppercase;
        letter-spacing: 0.5px;
        margin-bottom: 6px;
    }
    .gf-stepper {
        display: inline-flex;
        align-items: center;
        border: 1.5px solid var(--c-border);
        border-radius: 10px;
        overflow: hidden;
    }
    .gf-stepper-btn {
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #f9fafb;
        border: none;
        cursor: pointer;
        font-size: 18px;
        color: var(--c-brand);
        font-weight: 700;
        transition: background 0.15s;
        font-family: 'Inter', sans-serif;
        user-select: none;
        line-height: 1;
    }
    .gf-stepper-btn:hover { background: var(--c-border); }
    .gf-stepper-btn:active { background: #d1d5db; }
    .gf-stepper-value {
        width: 48px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 16px;
        font-weight: 600;
        color: var(--c-text);
        border-left: 1.5px solid var(--c-border);
        border-right: 1.5px solid var(--c-border);
        background: #fff;
    }

    /* Total summary (chairs) */
    .gf-total-summary {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        padding: 8px 0;
        margin-bottom: 4px;
        border-top: 1px solid var(--c-border);
    }
    .gf-total-label {
        font-size: 13px;
        color: var(--c-text-soft);
    }
    .gf-total-value {
        font-family: 'Manrope', sans-serif;
        font-size: 20px;
        font-weight: 800;
        color: var(--c-text);
    }
    .gf-total-saved {
        font-size: 12px;
        font-weight: 600;
        color: var(--c-success);
        margin-left: 8px;
    }

    /* -- ATC BUTTON -- */
    body.single-product:not(.custom-class-product-type-composite) button.single_add_to_cart_button.button.alt {
        width: 100% !important;
        padding: 14px 24px !important;
        background: var(--c-brand) !important;
        color: #fff !important;
        border: none !important;
        border-radius: 10px !important;
        font-size: 16px !important;
        font-weight: 700 !important;
        font-family: 'Manrope', sans-serif !important;
        letter-spacing: 0.3px !important;
        transition: background 0.15s, transform 0.1s !important;
        margin-top: 6px !important;
        margin-bottom: 6px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
        line-height: 1.2 !important;
    }
    body.single-product button.single_add_to_cart_button.button.alt:hover {
        background: #4a6278 !important;
    }
    body.single-product button.single_add_to_cart_button.button.alt:active {
        transform: scale(0.99);
    }
    body.single-product button.single_add_to_cart_button.button.alt::after,
    body.single-product button.single_add_to_cart_button.button.alt:hover::after {
        display: none !important;
        content: none !important;
    }
    body.single-product button.single_add_to_cart_button.button.alt.gf-preorder {
        background: #1e40af !important;
    }
    body.single-product button.single_add_to_cart_button.button.alt.gf-preorder:hover {
        background: #1e3a8a !important;
    }

    /* -- SET SAVINGS BANNER (Tier 2 PDPs) -- */
    .gf-set-savings-banner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 14px 18px;
        margin: 8px 0 0;
        background: var(--c-success-bg);
        border: 1px solid #bbf7d0;
        border-radius: 12px;
        text-decoration: none !important;
        transition: background 0.15s;
    }
    .gf-set-savings-banner:hover {
        background: #d1fae5;
    }
    .gf-ssb-text {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 14px;
        font-weight: 600;
        color: var(--c-success);
        line-height: 1.3;
    }
    .gf-ssb-text svg {
        flex-shrink: 0;
        color: var(--c-success);
    }
    .gf-ssb-link {
        font-size: 13px;
        font-weight: 600;
        color: var(--c-success);
        white-space: nowrap;
        text-decoration: underline;
        text-underline-offset: 2px;
    }
    @media (max-width: 768px) {
        .gf-set-savings-banner {
            flex-direction: column;
            align-items: flex-start;
            gap: 6px;
        }
    }

    /* -- TRUST STRIP -- */
    .gf-trust-strip {
        display: flex;
        justify-content: center;
        gap: 16px;
        margin-top: 8px;
        padding-top: 10px;
        border-top: 1px solid #f0f0f0;
        flex-wrap: wrap;
    }
    .gf-trust-item {
        display: flex;
        align-items: center;
        gap: 5px;
        font-size: 11px;
        color: var(--c-text-soft);
        white-space: nowrap;
    }
    .gf-trust-item svg {
        flex-shrink: 0;
        color: var(--c-brand);
    }

    /* -- MICRO REVIEW PROOF -- */
    .gf-micro-proof {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        flex-basis: 100%;
        margin-top: 8px;
        margin-bottom: 4px;
        font-size: 11px;
        color: var(--c-text-soft);
        cursor: pointer;
    }
    .gf-micro-proof:hover { opacity: 0.8; }
    .gf-stars {
        display: flex;
        gap: 1px;
        align-items: center;
    }

    /* -- SAMPLE BANNER (below gallery) -- */
    .gf-samples-banner {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 14px 16px;
        margin-top: 20px;
        border: 1px solid rgba(93, 123, 149, 0.2);
        border-radius: 10px;
        background: #fff;
        cursor: pointer;
        transition: all 0.2s ease;
        text-decoration: none;
        width: 100%;
    }
    .gf-samples-banner:hover {
        background: rgba(93, 123, 149, 0.04);
        border-color: rgba(93, 123, 149, 0.35);
    }
    .samples-icon {
        background: rgba(93, 123, 149, 0.1);
        padding: 10px;
        border-radius: 50%;
        color: var(--c-brand);
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        transition: all 0.2s ease;
    }
    .gf-samples-banner:hover .samples-icon {
        background: var(--c-brand);
        color: #fff;
    }
    .samples-text {
        flex: 1;
        min-width: 0;
    }
    .samples-text h4 {
        font-size: 13px;
        font-weight: 700;
        color: var(--c-text);
        margin: 0 0 2px 0;
        font-family: 'Manrope', sans-serif;
    }
    .samples-text p {
        font-size: 12px;
        color: var(--c-border-strong);
        margin: 0;
        line-height: 1.3;
    }
    .samples-arrow {
        color: var(--c-border-strong);
        flex-shrink: 0;
        transition: transform 0.2s ease;
    }
    .gf-samples-banner:hover .samples-arrow {
        transform: translateX(4px);
    }
    @media (max-width: 767px) {
        .gf-samples-banner { gap: 10px; padding: 12px 14px; }
        .samples-text h4 { margin: 0; }
        .samples-text p { margin: 0; font-size: 0; }
        .samples-text p::before { content: 'Order free wood samples'; font-size: 12px; }
    }

    /* -- FIX FLYCART QTY OVERLAP ON MOBILE -- */
    @media (max-width: 768px) {
        .woofc-item-inner {
            display: grid !important;
            grid-template-columns: 70px 1fr auto !important;
            grid-template-rows: auto auto auto !important;
            gap: 2px 8px !important;
            align-items: center !important;
        }
        .woofc-item-thumb {
            grid-row: 1 / 4 !important;
            grid-column: 1 !important;
        }
        .woofc-item-info .woofc-item-title {
            display: block !important;
        }
        .woofc-item-info .woofc-item-price {
            display: block !important;
        }
        .woofc-item-info {
            grid-column: 2 !important;
            grid-row: 1 !important;
        }
        .woofc-item-remove {
            position: relative !important;
            grid-column: 3 !important;
            grid-row: 1 !important;
            align-self: start !important;
            top: auto !important;
            right: auto !important;
        }
        .woofc-item-qty {
            position: relative !important;
            grid-column: 2 / 4 !important;
            grid-row: 3 !important;
            justify-self: start !important;
            margin-top: 4px !important;
            top: auto !important;
            bottom: auto !important;
            left: auto !important;
        }
    }

    /* -- FIX CART/FLYCART UPSELL IMAGES (4:3 in square containers) -- */
    .cross-sells ul.products li img,
    .woofc-suggested-product-image img,
    .gf-upsell-chair-img img,
    .gf-upsell-set-img img,
    .gf-checkout-bump-img img {
        aspect-ratio: 1 / 1;
        object-fit: cover;
        width: 100%;
    }

    /* -- COLLAPSE SECTION BOTTOM PADDING (Divi default 4%) -- */
    body.single-product #main_product_section { padding-bottom: 0 !important; }

    /* -- HIDE TRUCK ROW (replaced by stock banner) -- */
    body.single-product .et_pb_code_1_tb_body {
        display: none !important;
    }

    /* -- DELIVERY INFO LINK (in stock banner) -- */
    .gf-delivery-info-link {
        display: inline;
        background: none;
        border: none;
        padding: 0;
        margin-left: 6px;
        font-size: inherit;
        font-family: inherit;
        color: inherit;
        opacity: 0.7;
        cursor: pointer;
        text-decoration: underline;
        text-underline-offset: 2px;
    }
    .gf-delivery-info-link:hover { opacity: 1; }

    /* -- DELIVERY MODAL -- */
    .gf-delivery-overlay {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.5);
        z-index: 999999;
        justify-content: center;
        align-items: center;
        padding: 20px;
    }
    .gf-delivery-overlay.gf-open { display: flex; }
    .gf-delivery-modal {
        background: #fff;
        border-radius: 12px;
        max-width: 560px;
        width: 100%;
        max-height: 85vh;
        overflow-y: auto;
        padding: 28px 24px;
        position: relative;
        font-family: 'Inter', sans-serif;
    }
    .gf-delivery-modal-close {
        position: absolute;
        top: 12px;
        right: 16px;
        background: none;
        border: none;
        font-size: 22px;
        color: var(--c-text-soft);
        cursor: pointer;
        line-height: 1;
        padding: 4px;
    }
    .gf-delivery-modal-close:hover { color: var(--c-text); }
    .gf-delivery-modal h3 {
        font-family: 'Manrope', sans-serif;
        font-size: 18px;
        font-weight: 800;
        margin: 0 0 16px;
        color: var(--c-text);
    }
    .gf-dm-section {
        border-bottom: 1px solid #f0f0f0;
    }
    .gf-dm-section:last-child { border-bottom: none; }
    .gf-dm-toggle {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        background: none;
        border: none;
        padding: 14px 0;
        cursor: pointer;
        font-family: 'Manrope', sans-serif;
        font-size: 14px;
        font-weight: 700;
        color: var(--c-text);
        text-align: left;
    }
    .gf-dm-toggle:hover { color: var(--c-brand); }
    .gf-dm-toggle::after {
        content: '+';
        font-size: 18px;
        font-weight: 400;
        color: var(--c-border-strong);
        flex-shrink: 0;
        margin-left: 12px;
        transition: transform 0.2s;
    }
    .gf-dm-section.gf-open .gf-dm-toggle::after {
        content: '\2212';
    }
    .gf-dm-body {
        display: none;
        padding: 0 0 14px;
        font-size: 13px;
        line-height: 1.6;
        color: var(--c-text-soft);
    }
    .gf-dm-section.gf-open .gf-dm-body { display: block; }
    .gf-dm-body p { margin: 0 0 8px; }
    .gf-dm-body p:last-child { margin-bottom: 0; }
    .gf-dm-body strong { color: var(--c-text); font-weight: 600; }
    .gf-dm-postcodes {
        font-size: 11px;
        color: var(--c-border-strong);
        margin-top: 4px;
    }

    /* -- MOBILE PDP SIZING FIXES -- */
    @media (max-width: 768px) {
        /* H1: bigger + bolder to outrank price visually */
        body.single-product .et_pb_wc_title_0_tb_body h1 {
            font-family: 'Manrope', sans-serif !important;
            font-size: 22px !important;
            font-weight: 700 !important;
            line-height: 1.3 !important;
        }
        /* Kill gap between sale bar and gallery */
        body.single-product #main_product_section {
            padding-top: 0 !important;
            margin-top: -20px !important;
        }
        body.single-product .et_pb_row_0_tb_body {
            padding-top: 0 !important;
        }
        /* Kill gallery column bottom margin (was 30px) */
        body.single-product .et_pb_column_0_tb_body {
            margin-bottom: 8px !important;
        }
        /* Tighten gallery bottom margin */
        body.single-product .et_pb_wc_images_0_tb_body {
            margin-bottom: 4px !important;
        }
        /* Tighten price top margin (was 20px) */
        body.single-product .et_pb_wc_price_0_tb_body {
            margin-top: 8px !important;
        }
        /* Tighten ATC module bottom margin */
        body.single-product .et_pb_wc_add_to_cart_0_tb_body {
            margin-bottom: 8px !important;
        }
        /* Tighten size selector internals */
        body.single-product table.variations {
            margin-bottom: 0 !important;
        }
        body.single-product .mw-variation-header {
            margin-top: 0 !important;
            margin-bottom: 4px !important;
        }
        body.single-product .mw-rich-dropdown-trigger {
            padding-top: 10px !important;
            padding-bottom: 10px !important;
            margin-bottom: 0 !important;
        }
        /* REMOVED 23 Apr 2026: rule hid the entire variation container on mobile. Price-only hide lives at line ~4393. */
        /* Tighten stars/rating to H1 gap */
        body.single-product .et_pb_code_0_tb_body {
            margin-bottom: 4px !important;
        }
    }

    /* -- MOBILE PDP HIERARCHY REORDER -- */
    @media (max-width: 768px) {
        /* Hide gallery filter pills on mobile (available in lightbox) */
        body.single-product .gaf-pills-wrap {
            display: none !important;
        }
        /* Hide breadcrumbs visually but keep schema markup for SEO */
        body.single-product .et_pb_text_0_tb_body {
            position: absolute !important;
            width: 1px !important;
            height: 1px !important;
            padding: 0 !important;
            margin: -1px !important;
            overflow: hidden !important;
            clip: rect(0,0,0,0) !important;
            white-space: nowrap !important;
            border: 0 !important;
        }
        /* Hide SKU / Categories row on mobile */
        body.single-product .et_pb_wc_meta_0_tb_body {
            display: none !important;
        }
        /* Hide "Priced individually; sold only in pairs" - redundant with "per chair" */
        body.single-product .et_pb_text_2_tb_body {
            display: none !important;
        }
        /* Description block repositioned by JS */
        body.single-product .et_pb_text_3_tb_body.gf-mobile-moved {
            margin-top: 20px !important;
            padding-top: 20px !important;
            border-top: 1px solid var(--c-border) !important;
        }
        body.single-product .et_pb_text_3_tb_body.gf-mobile-moved .et_pb_text_inner {
            font-size: 14px !important;
            line-height: 1.6 !important;
            color: #444 !important;
        }
        body.single-product .et_pb_text_3_tb_body.gf-mobile-moved .et_pb_text_inner::before {
            content: 'About This Product' !important;
            display: block !important;
            font-family: 'Manrope', sans-serif !important;
            font-size: 15px !important;
            font-weight: 700 !important;
            color: var(--c-text) !important;
            margin-bottom: 8px !important;
        }
        /* Sample banner repositioned by JS */
        body.single-product .gf-samples-banner.gf-mobile-moved {
            margin-top: 16px !important;
            margin-bottom: 32px !important;
        }
    }


/* ====== Extracted from snippet-108-css.css ====== */
  /* ============================================
     G&F Review Aggregator v2 — Scoped Styles
     Brand: Manrope headings, Inter body
     Primary: #5d7b95 | BG: #f0f9ff
     ============================================ */
  .gf-reviews { max-width: 960px; margin: 0 auto; font-family: 'Inter', sans-serif; }
  .gf-reviews *, .gf-reviews *::before, .gf-reviews *::after { box-sizing: border-box; margin: 0; padding: 0; }

  /* --- Header --- */
  .gf-reviews__header { margin-bottom: 24px; }
  .gf-reviews__title {
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    font-size: 24px;
    color: var(--c-text);
    margin-bottom: 4px;
  }
  .gf-reviews__subtitle {
    font-size: 14px;
    font-weight: 400;
    color: var(--c-text-soft);
    margin-bottom: 20px;
  }
  .gf-reviews__badges { display: flex; gap: 12px; flex-wrap: nowrap; }
  .gf-reviews__badge {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #f9fafb;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    padding: 10px 16px;
    flex: 1;
    min-width: 0;
  }
  .gf-reviews__badge-logo { flex-shrink: 0; }
  .gf-reviews__badge-logo svg { display: block; }
  .gf-reviews__badge-info { display: flex; flex-direction: column; gap: 2px; }
  .gf-reviews__badge-platform {
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    font-size: 14px;
    color: var(--c-text);
  }
  .gf-reviews__badge-stars { display: flex; align-items: center; gap: 6px; }
  .gf-reviews__badge-stars svg { display: block; }
  .gf-reviews__badge-rating {
    font-weight: 600;
    font-size: 15px;
    color: var(--c-text);
  }
  .gf-reviews__badge-count {
    font-size: 13px;
    font-weight: 400;
    color: var(--c-text-soft);
  }

  /* --- Insights Bar --- */
  .gf-reviews__insights {
    display: flex;
    gap: 16px;
    background: var(--c-bg-soft);
    border-radius: 10px;
    padding: 12px 18px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: center;
  }
  .gf-reviews__insight {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--c-text);
  }
  .gf-reviews__insight-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--c-success);
    flex-shrink: 0;
  }
  .gf-reviews__insight-check svg { display: block; }
  .gf-reviews__insight-value {
    font-weight: 700;
    color: var(--c-brand);
  }
  .gf-reviews__insight--clickable {
    cursor: pointer;
    transition: opacity 0.2s;
  }
  .gf-reviews__insight--clickable:hover { opacity: 0.7; }
  .gf-reviews__insight--clickable::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-left: 4px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235d7b95' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E") no-repeat center;
    vertical-align: middle;
  }

  /* --- Filter Pills --- */
  .gf-reviews__filters {
    display: flex;
    gap: 8px;
    margin-bottom: 24px;
    flex-wrap: wrap;
    align-items: center;
  }
  .gf-reviews__filter-sep {
    width: 1px;
    height: 20px;
    background: #d1d5db;
    margin: 0 4px;
  }
  .gf-reviews__pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 7px 14px;
    border-radius: 20px;
    border: 1px solid var(--c-border);
    background: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: var(--c-text-soft);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
  }
  .gf-reviews__pill:hover { border-color: var(--c-brand); color: var(--c-brand); }
  .gf-reviews__pill--active {
    background: var(--c-brand);
    border-color: var(--c-brand);
    color: #fff;
  }
  .gf-reviews__pill-count {
    font-size: 12px;
    opacity: 0.7;
  }

  /* --- Review Grid --- */
  .gf-reviews__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 20px;
  }
  .gf-reviews__card {
    border: 1px solid var(--c-border);
    border-radius: 12px;
    padding: 20px;
    background: #fff;
    transition: opacity 0.3s, transform 0.3s;
  }
  .gf-reviews__card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
  }
  .gf-reviews__card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
  }
  .gf-reviews__card-stars { display: flex; gap: 1px; }
  .gf-reviews__card-stars svg { display: block; }
  .gf-reviews__card-name {
    font-weight: 600;
    font-size: 14px;
    color: var(--c-text);
  }
  .gf-reviews__card-dot {
    color: #d1d5db;
    font-size: 10px;
  }
  .gf-reviews__card-date {
    font-size: 13px;
    font-weight: 400;
    color: var(--c-border-strong);
  }
  .gf-reviews__card-platform { flex-shrink: 0; }
  .gf-reviews__card-platform svg { display: block; }
  .gf-reviews__card-text {
    font-size: 14px;
    line-height: 1.55;
    color: #444;
    margin-bottom: 12px;
  }
  .gf-reviews__card-text--clamped {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .gf-reviews__card-readmore {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-brand);
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    margin-bottom: 12px;
    font-family: 'Inter', sans-serif;
  }
  .gf-reviews__card-readmore:hover { text-decoration: underline; }
  .gf-reviews__card-images {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .gf-reviews__card-images::-webkit-scrollbar { display: none; }
  .gf-reviews__card-image {
    width: 120px;
    height: 90px;
    object-fit: cover;
    border-radius: 8px;
    flex-shrink: 0;
    cursor: pointer;
    transition: opacity 0.2s;
  }
  .gf-reviews__card-image:hover { opacity: 0.85; }
  .gf-reviews__card-images--single .gf-reviews__card-image {
    width: 100%;
    height: 200px;
  }
  /* Lightbox overlay for full-size photo */
  .gf-reviews__lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: rgba(0,0,0,0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }
  .gf-reviews__lightbox-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 90vw;
    max-height: 92vh;
    gap: 0;
  }
  .gf-reviews__lightbox img {
    max-width: 90vw;
    max-height: 65vh;
    border-radius: 8px 8px 0 0;
    object-fit: contain;
    user-select: none;
  }
  .gf-reviews__lightbox-spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 36px;
    height: 36px;
    border: 3px solid rgba(255,255,255,0.2);
    border-top-color: #fff;
    border-radius: 50%;
    animation: gf-spin 0.7s linear infinite;
    z-index: 1;
  }
  @keyframes gf-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
  .gf-reviews__lightbox-content { position: relative; }
  .gf-reviews__lightbox img[data-loaded="false"] { opacity: 0; }
  .gf-reviews__lightbox img[data-loaded="true"] { opacity: 1; transition: opacity 0.2s; }
  .gf-reviews__lightbox-caption {
    background: rgba(0,0,0,0.7);
    border-radius: 0 0 8px 8px;
    padding: 14px 18px;
    max-width: 90vw;
    width: 100%;
    max-width: 700px;
    color: #fff;
    font-family: 'Inter', sans-serif;
  }
  .gf-reviews__lightbox-caption-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
  }
  .gf-reviews__lightbox-caption-name {
    font-weight: 600;
    font-size: 14px;
    color: #fff;
  }
  .gf-reviews__lightbox-caption-stars { display: flex; gap: 1px; }
  .gf-reviews__lightbox-caption-stars svg { width: 13px; height: 13px; }
  .gf-reviews__lightbox-caption-text {
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255,255,255,0.85);
    max-height: 80px;
    overflow-y: auto;
    scrollbar-width: thin;
  }
  .gf-reviews__lightbox-close {
    position: absolute; top: 16px; right: 16px;
    width: 40px; height: 40px; border: none; background: rgba(255,255,255,0.15);
    border-radius: 50%; color: #fff; font-size: 24px; cursor: pointer;
    display: flex; align-items: center; justify-content: center; z-index: 2;
  }
  .gf-reviews__lightbox-close:hover { background: rgba(255,255,255,0.3); }
  .gf-reviews__lightbox-prev,
  .gf-reviews__lightbox-next {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 44px; height: 44px; border: none; background: rgba(255,255,255,0.15);
    border-radius: 50%; color: #fff; font-size: 28px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    z-index: 2; transition: background 0.2s;
  }
  .gf-reviews__lightbox-prev:hover,
  .gf-reviews__lightbox-next:hover { background: rgba(255,255,255,0.3); }
  .gf-reviews__lightbox-prev { left: 16px; }
  .gf-reviews__lightbox-next { right: 16px; }
  .gf-reviews__lightbox-counter {
    position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);
    color: rgba(255,255,255,0.8); font-size: 14px; font-family: 'Inter', sans-serif;
    z-index: 2;
  }
  .gf-reviews__card-tags { display: flex; gap: 6px; flex-wrap: wrap; }
  .gf-reviews__tag {
    font-size: 11px;
    font-weight: 500;
    color: var(--c-brand);
    background: var(--c-bg-soft);
    padding: 3px 8px;
    border-radius: 4px;
  }

  /* --- Show More --- */
  .gf-reviews__showmore {
    display: flex;
    justify-content: center;
    margin-bottom: 28px;
  }
  .gf-reviews__showmore-btn {
    padding: 10px 28px;
    border-radius: 8px;
    border: 1px solid var(--c-brand);
    background: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-brand);
    cursor: pointer;
    transition: all 0.2s;
  }
  .gf-reviews__showmore-btn:hover,
  .gf-reviews__loadall-btn:hover {
    background: var(--c-brand);
    color: #fff;
  }
  .gf-reviews__loadall-btn {
    padding: 10px 28px;
    border-radius: 8px;
    border: 1px solid var(--c-brand);
    background: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-brand);
    cursor: pointer;
    transition: all 0.2s;
  }
  .gf-reviews__loadall-btn:disabled {
    opacity: 0.6;
    cursor: wait;
  }

  /* --- Footer --- */
  .gf-reviews__footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding-top: 20px;
    border-top: 1px solid var(--c-border);
    flex-wrap: wrap;
  }
  .gf-reviews__footer-label {
    font-size: 13px;
    font-weight: 400;
    color: var(--c-border-strong);
  }
  .gf-reviews__footer-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    font-weight: 500;
    color: var(--c-brand);
    text-decoration: none;
    transition: color 0.2s;
  }
  .gf-reviews__footer-link:hover { text-decoration: underline; }
  .gf-reviews__footer-link svg { display: block; }
  .gf-reviews__footer-sep {
    color: #d1d5db;
    font-size: 13px;
  }

  /* --- Responsive --- */
  @media (max-width: 640px) {
    .gf-reviews__grid { grid-template-columns: 1fr; }
    .gf-reviews__title { font-size: 20px; }
    .gf-reviews__badges { flex-wrap: wrap; gap: 10px; }
    .gf-reviews__badge { padding: 10px 14px; min-width: 0; flex: 1 1 100%; }
    .gf-reviews__insights { gap: 8px; padding: 12px 16px; font-size: 13px; }
    .gf-reviews__insight { font-size: 13px; }
    .gf-reviews__filters { gap: 6px; }
    .gf-reviews__pill { padding: 6px 11px; font-size: 12px; }
    .gf-reviews__filter-sep { display: none; }
    .gf-reviews__card { padding: 16px; overflow: hidden; }
    .gf-reviews__card-meta { gap: 6px; }
    .gf-reviews__card-name { font-size: 13px; }
    .gf-reviews__card-date { font-size: 12px; }
    .gf-reviews__card-text { font-size: 13px; word-wrap: break-word; overflow-wrap: break-word; }
    .gf-reviews__card-tags { flex-wrap: wrap; }
  }
  /* Hide old RichPlugins review popup trigger on staging */
  .lightbox-content-reviews { display: none !important; }

  /* --- Review Drawer --- */
  .gf-reviews-drawer__overlay {
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: rgba(0,0,0,0.4);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
  }
  .gf-reviews-drawer__overlay--open {
    opacity: 1;
    visibility: visible;
  }
  .gf-reviews-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 99999;
    width: 520px;
    max-width: 100vw;
    background: #fff;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
    display: flex;
    flex-direction: column;
    box-shadow: -4px 0 24px rgba(0,0,0,0.12);
  }
  .gf-reviews-drawer--open { transform: translateX(0); }
  .gf-reviews-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--c-border);
    flex-shrink: 0;
  }
  .gf-reviews-drawer__header-title {
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    font-size: 18px;
    color: var(--c-text);
  }
  .gf-reviews-drawer__close {
    width: 36px;
    height: 36px;
    border: none;
    background: #f3f4f6;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    flex-shrink: 0;
  }
  .gf-reviews-drawer__close:hover { background: var(--c-border); }
  .gf-reviews-drawer__close svg { display: block; }
  .gf-reviews-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    -webkit-overflow-scrolling: touch;
  }
  /* Override grid to single column inside drawer */
  .gf-reviews-drawer .gf-reviews__grid { grid-template-columns: 1fr; }
  .gf-reviews-drawer .gf-reviews { max-width: 100%; }
  .gf-reviews-drawer .gf-reviews__badge { min-width: 0; }
  .gf-reviews-drawer__body { overflow-x: hidden; }
  .gf-reviews-drawer .gf-reviews__card { overflow: hidden; }
  .gf-reviews-drawer .gf-reviews__card-text { word-wrap: break-word; overflow-wrap: break-word; }
  .gf-reviews-drawer .gf-reviews__card-tags { flex-wrap: wrap; }
  .gf-reviews-drawer .gf-reviews__card-images { max-width: 100%; }
  .gf-reviews-drawer .gf-reviews__insights { flex-wrap: wrap; }
  /* Make star rating + micro proof clickable */
  .lightbox-trigger-reviews .gf-rating { cursor: pointer; }
  .lightbox-trigger-reviews .gf-rating span { text-decoration: underline; transition: opacity 0.2s; }
  .lightbox-trigger-reviews .gf-rating:hover { opacity: 0.7; }
  .gf-micro-proof { cursor: pointer; }
  .gf-micro-proof:hover { opacity: 0.8; }
  @media (max-width: 640px) {
    .gf-reviews-drawer { width: 100vw; }
  }

  /* --- Wrapper (currently inline in JS line 1758 - move here and remove from JS) --- */
  /* .gf-reviews-section { padding: 40px 20px; background: #fff; } */


/* ====== Extracted from snippet-109-css.css ====== */
/* =============================================
   Snippet 109: G&F Unified Price Display v1.0
   Extracted: 19 Apr 2026
   ============================================= */

/* ---------------------------------------------------------
   BLOCK 1: SITE-WIDE PRICE CSS (wp_head priority 9999)
   id="gf-unified-price-css"

   Loads on ALL pages. Covers archive/category, cart,
   checkout (Flux), FlyCart side cart, and FlyCart
   suggested products.
   --------------------------------------------------------- */

/* -- SITE-WIDE -- */
.gf-from {
    vertical-align: top;
    font-size: 16px;
    align-self: flex-start;
    padding-top: 10px;
    margin-right: 0;
    line-height: 0;
}

/* -- ARCHIVE / CATEGORY PAGES -- */
.woocommerce-page ul.products li.product .price {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    column-gap: 7px !important;
}
.woocommerce-page ul.products li.product .price ins.sale_price {
    display: block !important;
    width: auto !important;
}
@media (min-width: 769px) {
.woocommerce-page ul.products li.product .price ins.sale_price .amount bdi {
    color: var(--c-danger) !important;
    font-size: 30px !important;
    line-height: 30px !important;
    font-weight: 700 !important;
}
.woocommerce-page ul.products li.product .price .woocommerce-Price-amount.amount bdi {
    color: var(--c-brand) !important;
    font-size: 30px !important;
    line-height: 30px !important;
    font-weight: 700 !important;
}
}
.woocommerce-page ul.products li.product .price .save_discount_price {
    display: block !important;
    line-height: normal !important;
}
.woocommerce-page ul.products li.product .price .save_discount_price span.save_price {
    color: var(--c-danger) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 16px !important;
    display: block !important;
}
.woocommerce-page ul.products li.product .price .save_discount_price del,
.woocommerce-page ul.products li.product .price .save_discount_price del .amount bdi {
    text-decoration: none !important;
    font-size: 14px !important;
    line-height: 16px !important;
    color: var(--c-text-soft) !important;
    font-weight: 400 !important;
}

/* -- CART PAGE + CHECKOUT (Flux) -- */
/* Our priority-200 hook outputs final HTML - no Flux del/ins wrapping */
td.product-total, td.product-subtotal {
    text-align: right !important;
}
.gf-line-subtotal {
    display: inline-flex !important;
    align-items: baseline !important;
    column-gap: 6px !important;
    text-align: right !important;
}
.gf-line-subtotal .sale_price .amount bdi {
    color: var(--c-danger) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}
.gf-line-subtotal .save_discount_price {
    display: block !important;
    line-height: normal !important;
    text-align: left !important;
}
.gf-line-subtotal .save_discount_price .save_price {
    color: var(--c-danger) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 13px !important;
    display: block !important;
    white-space: nowrap !important;
}
.gf-line-subtotal .save_discount_price .gf-was-price,
.gf-line-subtotal .save_discount_price .gf-was-price .amount bdi {
    font-size: 11px !important;
    line-height: 13px !important;
    color: var(--c-text-soft) !important;
    font-weight: 400 !important;
    display: block !important;
    white-space: nowrap !important;
    text-decoration: none !important;
}
/* Non-sale line subtotal */
td.product-subtotal .amount bdi,
td.product-total .amount bdi {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #333 !important;
}

/* -- FLYCART / SIDE CART (matches PDP stacked layout) -- */
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info .woofc-item-price {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    column-gap: 6px !important;
}
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info .woofc-item-price ins.sale_price {
    text-decoration: none !important;
}
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info .woofc-item-price .sale_price .amount bdi {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--c-danger) !important;
}
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info .save_discount_price {
    display: block !important;
    line-height: normal !important;
}
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info span.save_price {
    color: var(--c-danger) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 13px !important;
    display: block !important;
}
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info .save_discount_price .save_price br {
    display: none !important;
}
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info .save_discount_price del,
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info .save_discount_price del .amount bdi {
    text-decoration: none !important;
    font-size: 11px !important;
    line-height: 13px !important;
    color: var(--c-text-soft) !important;
    font-weight: 400 !important;
}
/* Non-sale price in FlyCart */
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info .woofc-item-price > .amount > bdi {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #333 !important;
}

/* -- FLYCART SUGGESTED PRODUCTS (upsells) -- */
.woofc-area .woofc-suggested .woofc-suggested-product-price {
    opacity: 1 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    column-gap: 6px !important;
}
.woofc-area .woofc-suggested .woofc-suggested-product-price .sale_price .amount bdi {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--c-danger) !important;
}
.woofc-area .woofc-suggested .woofc-suggested-product-price .save_discount_price {
    display: block !important;
    line-height: normal !important;
}
.woofc-area .woofc-suggested .woofc-suggested-product-price .save_discount_price span.save_price {
    color: var(--c-danger) !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    line-height: 12px !important;
    display: block !important;
}
.woofc-area .woofc-suggested .woofc-suggested-product-price .save_discount_price .save_price br {
    display: none !important;
}
.woofc-area .woofc-suggested .woofc-suggested-product-price .save_discount_price del,
.woofc-area .woofc-suggested .woofc-suggested-product-price .save_discount_price del .amount bdi {
    text-decoration: none !important;
    font-size: 10px !important;
    line-height: 12px !important;
    color: var(--c-border-strong) !important;
    font-weight: 400 !important;
}
.woofc-suggested-product-price > .amount > bdi {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #333 !important;
}

/* -- FLYCART: delivery date below item name (backorder only) -- */
.gf-cart-delivery {
    font-size: 10px !important;
    font-weight: 600 !important;
    margin-top: 2px !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    color: #1e40af !important;
}
.gf-cart-delivery::before {
    content: '' !important;
    display: inline-block !important;
    width: 5px !important;
    height: 5px !important;
    border-radius: 50% !important;
    flex-shrink: 0 !important;
    background: #1e40af !important;
}

/* -- FLYCART: action buttons (from Snippet 16) -- */
.woofc-area .woofc-inner .woofc-area-bot .woofc-action .woofc-action-inner > div a {
    background-color: var(--c-brand) !important;
    border-color: var(--c-brand) !important;
    color: #ffffff !important;
    border-radius: 1px !important;
}
.woofc-area .woofc-inner .woofc-area-bot .woofc-action .woofc-action-inner > div a:hover {
    background-color: transparent !important;
    border-color: var(--c-brand) !important;
    color: var(--c-brand) !important;
}

/* -- FLYCART: ensure qty inputs are visible (Snippet 107 hides .quantity on PDPs) -- */
.woofc-area .woofc-item-qty,
.woofc-area .woofc-item-qty .quantity,
.woofc-area .woofc-item-qty .quantity.woopq-quantity,
.woofc-area .woofc-item-qty .quantity input.qty {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.woofc-area .woofc-item-qty .quantity input.qty {
    display: inline-block !important;
}

/* -- FLYCART: square thumbnails + tighter mobile layout -- */
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-thumb {
    width: 80px !important;
    flex: 0 0 80px !important;
}
.woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-thumb img {
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    width: 100% !important;
    height: auto !important;
    border-radius: 6px !important;
}
@media (max-width: 767px) {
    .woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-thumb {
        width: 70px !important;
        flex: 0 0 70px !important;
    }
    .woofc-area .woofc-area-mid .woofc-item .woofc-item-inner {
        padding: 8px 4px !important;
        gap: 8px !important;
    }
    .woofc-area .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-info .woofc-item-name {
        font-size: 13px !important;
        line-height: 1.3 !important;
    }
}

/* ---------------------------------------------------------
   BLOCK 2: PDP-ONLY PRICE CSS (wp_head priority 9999)
   id="gf-unified-price-pdp-css"

   Only output on is_product() pages. Styles the Divi WC
   Price module on product detail pages.

   SCOPE: Only needed on single product pages.
   --------------------------------------------------------- */

/* -- PRICE MODULE CLEANUP (PDP) -- */
body.single-product .et_pb_wc_price_0_tb_body,
body.single-product .et_pb_row .et_pb_column div.et_pb_wc_price_0_tb_body {
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin-bottom: 4px !important;
}
body.single-product .et_pb_wc_price_0_tb_body .et_pb_module_inner {
    display: block !important;
    text-align: left !important;
}

/* Sale price (ins): red, no underline, sized to match category */
body.single-product .et_pb_wc_price_0_tb_body ins.sale_price {
    text-decoration: none !important;
}
body.single-product .et_pb_wc_price_0_tb_body ins.sale_price .amount bdi {
    color: var(--c-danger) !important;
    font-size: 30px !important;
    line-height: 30px !important;
    font-weight: 700 !important;
}
/* Non-sale price: same size, default colour */
body.single-product .et_pb_wc_price_0_tb_body p.price > .woocommerce-Price-amount.amount bdi {
    font-size: 30px !important;
    line-height: 30px !important;
    font-weight: 700 !important;
    color: var(--c-brand) !important;
}

/* Price container: flex row so sale price + save badge sit side by side */
body.single-product .et_pb_wc_price_0_tb_body p.price {
    display: flex !important;
    align-items: center !important;
    column-gap: 7px !important;
}
/* Save badge: stacked SAVE/Was inside, sits to the right of sale price */
body.single-product .et_pb_module.et_pb_wc_price.et_pb_wc_price_0_tb_body .et_pb_module_inner .save_discount_price {
    display: block !important;
}
body.single-product .save_discount_price .save_price {
    background: none !important;
    color: var(--c-danger) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 14px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    display: block !important;
}
body.single-product .save_discount_price .save_price br {
    display: none !important;
}
body.single-product .save_discount_price del {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.single-product .save_discount_price del,
body.single-product .save_discount_price del .amount bdi {
    text-decoration: none !important;
    font-size: 14px !important;
    line-height: 14px !important;
    color: var(--c-text-soft) !important;
    font-weight: 400 !important;
}

/* "From" prefix on PDP */
body.single-product .et_pb_wc_price_0_tb_body .gf-from {
    font-size: 16px !important;
    color: var(--c-brand) !important;
    font-weight: 400 !important;
    vertical-align: top !important;
    line-height: 30px !important;
}

/* Hide snippet-29 duplicate price wrapper */
body.single-product .simple-product-price-wrapper {
    display: none !important;
}

/* PDP: sale price sizing (ins element itself) */
body.single-product .et_pb_wc_price_0_tb_body p.price ins {
    font-size: 30px !important;
    line-height: 30px !important;
}

/* PDP: hide WC default del (our badge has its own) */
body.single-product .et_pb_wc_price_0_tb_body p.price > del {
    display: none !important;
}

/* Variation price range hidden (main price module updated via JS) */
body.single-product .woocommerce-variation-price {
    display: none !important;
}

/* Composite product pricing (dining sets) */
body.single-product .wooco_component_product_selection .dd-desc ins.sale_price .woocommerce-Price-amount {
    color: var(--c-danger) !important;
    font-weight: 700 !important;
}
body.single-product .wooco-wrap ins .woocommerce-Price-amount:last-child {
    color: var(--c-danger) !important;
    font-weight: 700 !important;
}
body.single-product .wooco_component_product_selection .dd-desc > span {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    line-height: normal !important;
    margin-top: 10px !important;
}


/* ====== Extracted from snippet-110-css.css ====== */
/* =============================================
   Snippet 110: GAF Video Carousel - Below ATC
   Extracted: 19 Apr 2026
   ============================================= */

/* -- Video Carousel: Below ATC -- */
.vsp-wrap{position:relative;margin-top:4px}
.vsp-divider{height:1px;background:#e2e8f0;margin-bottom:20px}
.vsp-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.vsp-title{font-family:'Manrope',sans-serif;font-weight:700;font-size:15px;color:var(--c-text);display:flex;align-items:center;gap:8px}
.vsp-title .vsp-icon{width:18px;height:18px;color:#5d7b95}
.vsp-count{font-size:12px;color:var(--c-text-soft);font-weight:500}
.vsp-track-wrap{position:relative}
.vsp-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding:2px}
.vsp-track::-webkit-scrollbar{display:none}
.vsp-track-wrap::after{content:'';position:absolute;right:0;top:0;bottom:0;width:40px;background:linear-gradient(to right,transparent,#fff);pointer-events:none;opacity:1;transition:opacity .3s}
.vsp-track-wrap.scrolled-end::after{opacity:0}
.vsp-card{flex:0 0 calc((100% - 24px)/3);scroll-snap-align:start;cursor:pointer;position:relative}
.vsp-thumb{position:relative;width:100%;padding-top:177.78%;border-radius:10px;overflow:hidden;background:#e8e5e0;border:2px solid #e2e2e0;transition:border-color .2s}
.vsp-card:hover .vsp-thumb{border-color:#5d7b95}
.vsp-thumb img{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.25,.1,.25,1)}
.vsp-card:hover .vsp-thumb img{transform:scale(1.03)}
.vsp-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.vsp-play-btn{width:52px;height:52px;border-radius:50%;background:rgba(93,123,149,.8);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;transition:transform .3s cubic-bezier(.25,.1,.25,1),background .3s;box-shadow:0 2px 16px rgba(0,0,0,.2)}
.vsp-card:hover .vsp-play-btn{transform:scale(1.1);background:rgba(93,123,149,.95)}
.vsp-play-btn svg{width:22px;height:22px;color:#fff;margin-left:3px}
.vsp-expand{position:absolute;top:10px;right:10px;width:28px;height:28px;background:rgba(0,0,0,.35);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:6px;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s}
.vsp-card:hover .vsp-expand{opacity:1}
.vsp-expand svg{width:14px;height:14px;color:#fff}
.vsp-duration{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,.65);color:#fff;font-size:11px;font-weight:600;padding:3px 7px;border-radius:4px;letter-spacing:.3px}
.vsp-caption{margin-top:8px;font-size:12px;font-weight:500;color:var(--c-text-soft);line-height:1.3;text-align:center}
.vsp-arrow{position:absolute;top:50%;transform:translateY(calc(-50% - 12px));width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;box-shadow:0 2px 8px rgba(0,0,0,.1);transition:box-shadow .2s,border-color .2s;color:#1a1a1a}
.vsp-arrow:hover{box-shadow:0 3px 12px rgba(0,0,0,.15);border-color:var(--c-brand);color:#5d7b95}
.vsp-arrow svg{width:16px;height:16px}
.vsp-arrow-prev{left:-18px}
.vsp-arrow-next{right:-18px}
.vsp-arrow.hidden{display:none}

/* -- Modal -- */
.vsp-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.92);animation:vspFadeIn .25s ease-out}
.vsp-modal.open{display:flex}
.vsp-modal-close{position:absolute;top:16px;right:16px;z-index:100000;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.2);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}
.vsp-modal-close:hover{background:rgba(255,255,255,.35);transform:scale(1.1)}
.vsp-modal-close svg{width:22px;height:22px;color:#fff}
.vsp-modal-player{position:relative;width:100%;max-width:380px;aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:#111;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:vspSlideUp .35s cubic-bezier(.16,1,.3,1)}
.vsp-modal-player iframe{width:100%;height:100%;border:none;position:absolute;inset:0}
.vsp-modal-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.15);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}
.vsp-modal-nav:hover{background:rgba(255,255,255,.3);transform:translateY(-50%) scale(1.1)}
.vsp-modal-nav svg{width:22px;height:22px;color:#fff}
.vsp-modal-prev{left:calc(50% - 230px - 48px)}
.vsp-modal-next{right:calc(50% - 230px - 48px)}
.vsp-modal-info{position:absolute;top:calc(50% + min(380px * 16/9 / 2, 45vh) + 12px);left:0;right:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}
.vsp-modal-caption{color:rgba(255,255,255,.8);font-size:14px;font-weight:600;font-family:'Manrope',sans-serif}
.vsp-modal-counter{color:rgba(255,255,255,.4);font-size:12px;font-weight:500}
@keyframes vspFadeIn{from{opacity:0}to{opacity:1}}
@keyframes vspSlideUp{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}

/* -- Mobile: hide entirely -- */
@media(max-width:767px){.vsp-wrap{display:none!important}.vsp-modal{display:none!important}}



/* ====================================================================
   DIVI THEME OPTIONS > CUSTOM CSS - Migrated from et_divi option
   Date: 19 Apr 2026
   (Divi Space mobile menu block excluded - replaced by Snippet 92)
   ==================================================================== */

/* =============================================
   DIVI THEME OPTIONS > CUSTOM CSS
   Migrated to child theme style.css
   Date: 19 Apr 2026
   Source: wp_options > et_divi > divi_custom_css
   Original: ~820 lines, ~12KB
   Blocks: 41 (6 dead blocks already removed in Phase 2a)
   ============================================= */


/* === HEADER & NAVIGATION === */
/* Blocks #1, #5, #6, #14, #20, #34 */

/* Mega Menu secondary icons (account + cart) - normal + hover states */
/* FLAG: staging URLs - must change to grainandframe.com for production */
body #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li#mega-menu-item-3570 > a.mega-menu-link::before {
  background-image: url('/wp-content/uploads/2021/01/user_white.svg');
}
body #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li#mega-menu-item-3571 > a.mega-menu-link::before {
  background-image: url('/wp-content/uploads/2021/01/shopping-cart_white.svg');
}
body #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li#mega-menu-item-3570 > a.mega-menu-link:hover:before {
  background-image: url(/wp-content/uploads/2021/01/user_rollover.svg);
}
body #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu li#mega-menu-item-3571 > a.mega-menu-link:hover::before {
  background-image: url('/wp-content/uploads/2021/01/shopping-cart_rollover.svg');
}

/* Mega Menu toggle: replace hamburger with X on open */
body #mega-menu-wrap-primary-menu .mega-menu-toggle.mega-menu-open .mega-toggle-block-4::after {
  content: '\f00d' !important;
}

/* Mega Menu dropdown: rotated arrow on open state */
#mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator::after {
  content: url(/wp-content/uploads/assets/angle-down.svg);
  filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(0deg);
  mix-blend-mode: lighten;
  transform: rotate(180deg);
  margin-top: -7px;
}

/* Mega Menu: angle-down SVG replacing dashicon */
#mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after {
  content: url(/wp-content/uploads/assets/angle-down.svg);
}

/* Mega Menu: angle-down hover colour */
#mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:hover:after {
  content: url(/wp-content/uploads/assets/angle-down-556b97.svg);
}

/* Mega Menu: angle-right SVG replacing dashicon */
#mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item.mega-icon-right > a.mega-menu-link:before,
#mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-tabbed > ul.mega-sub-menu > li.mega-menu-item.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after {
  content: url(/wp-content/uploads/assets/angle-right.svg);
}

/* Mega Menu: angle-right hover colour */
#mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item.mega-icon-right > a.mega-menu-link:hover:before {
  content: url(/wp-content/uploads/assets/angle-right-556b97.svg);
}

/* Mega Menu: arrow indicator positioning */
#mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after,
#mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item.mega-icon-right > a.mega-menu-link:before {
  top: 4px;
  position: relative;
}

/* Header: icons side by side */
.icon-inline .et_pb_button_module_wrapper {
  display: inline-block;
  padding-bottom: 20px;
  margin: 0 10px;
}

/* Header: flex row-reverse on header columns (Theme Builder) */
header div.et_pb_column.et_pb_column_4_4.et_pb_column_1_tb_header.et_pb_css_mix_blend_mode_passthrough.et-last-child {
  display: inline-flex;
  flex-direction: row-reverse;
}
header div.et_pb_row_0_tb_header div.et_pb_column.et_pb_column_1_2.et_pb_column_1_tb_header.et-last-child {
  display: flex;
  flex-direction: row-reverse;
}

/* Header: remove padding from section 2 (Theme Builder) */
.et_pb_section_2_tb_header {
  padding: 0 !important;
}


/* === TYPOGRAPHY === */
/* Block #7, #23, #46 */

/* Metro Sans Light - local @font-face */
@font-face {
  font-family: 'Metro Sans';
  font-weight: 300;
  font-display: swap;
  src: url('/wp-content/uploads/fonts/assets/metrosans-light.woff2') format('woff2');
}

/* Bullet & numbered list styling for Divi text modules */
.et_pb_text ul, .et_pb_text ol { margin: 30px; }
.et_pb_text li { margin-top: 16px; }

/* Hide empty BR tags inside styled text */
.et_pb_bg_layout_light div p strong em br {
  display: none !important;
}


/* === SEARCH === */
/* Block #8 */

/* AJAX search bar: padding fix */
.dgwt-wcas-no-submit .dgwt-wcas-sf-wrapp input[type=search].dgwt-wcas-search-input {
  padding-left: 36px !important;
}

/* AJAX search bar: icon position fix */
.dgwt-wcas-no-submit .dgwt-wcas-ico-magnifier {
  top: 10px;
}


/* === CATEGORY / ARCHIVE PAGES === */
/* Blocks #13, #21, #22, #39 */

/* Archive: full-width container */
.tax-product_cat #main-content .container {
  width: 100%;
  max-width: calc(100% - 120px);
}

/* Archive: centered pagination */
.woocommerce nav.woocommerce-pagination {
  text-align: center;
  margin-bottom: 20px;
}

/* Archive: hide filter button + sidebar on desktop */
#main-content .content-area .fillterbutton,
.product_sidebar {
  display: none !important;
}

/* Archive: desktop - hide CMS filter/sidebar */
/* FLAG: OVERLAP with child theme style.css lines 60-68 (same selectors at 980px) */
@media only screen and (min-width: 981px) {
  #main-content #content-area .fillterbutton,
  #main-content #content-area .product_sidebar {
    display: none !important;
  }
}

/* Archive: mobile filter sidebar slide-in */
/* FLAG: OVERLAP with child theme style.css lines 60-68 (.product_sidebar.open-cms z-index) */
@media only screen and (max-width: 980px) {
  #main-content #content-area .fillterbutton {
    position: fixed;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--c-brand);
    color: #fff;
    padding: 6px 6px;
    font-size: 24px;
    z-index: 99;
  }

  #main-content #content-area #sidebar {
    position: fixed;
    top: 0;
    background-color: #fff;
    left: 0;
    z-index: 99;
    height: 100vh;
    overflow: auto;
    transform: translateX(-100%);
    transition: all 1s;
    padding: 30px 0;
    border: none;
  }

  #main-content #content-area #sidebar.open {
    transform: translateX(0);
  }

  #main-content #content-area .product_sidebar.open-cms {
    position: fixed;
    display: block !important;
    z-index: 9999;
    top: 5px;
    right: 10px;
    font-size: 20px;
  }

  #main-content #content-area #sidebar .filter--style-premmerce .filter__item {
    border-top: 0;
    border-left: 0;
    border-right: 0;
  }
}

/* Archive: single column on small mobile */
/* NOTE: #left-area doesn't exist in Theme Builder templates - may be dead */
@media only screen and (max-width: 479px) {
  body #left-area ul.products li {
    flex-basis: 100% !important;
  }
}

/* Category description "See More" toggle */
/* NOTE: CSS pairs with JS in Divi Integration > Body (block #4) */
.category-toggle-text .et_pb_text_inner {
  max-height: 100px;
  transition: max-height 0.3s ease-out;
  overflow: hidden;
}
.category-toggle-text .et_pb_text_inner:after {
  content: "";
  display: inline-block;
  position: absolute;
  pointer-events: none;
  height: 25px;
  width: 100%;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: linear-gradient(0deg, #fff 50%, transparent);
}
.category-toggle-text .category-text-expand-button {
  padding: 0.5em;
  text-align: center;
  color: var(--c-brand) !important;
}
.category-toggle-text .category-text-expand-button span {
  cursor: pointer;
}
.category-toggle-text .category-text-expand-button .category-text-toggle-icon {
  font-family: ETMODULES, "sans-serif";
}
.category-toggle-text .category-text-toggle-expanded {
  max-height: 2000px;
  transition: max-height 0.3s ease-in;
}
.category-toggle-text .category-text-toggle-expanded.et_pb_text_inner:after {
  background: none;
}


/* === PRODUCT PAGES === */
/* Blocks #4, #9, #10, #11, #12, #30, #38, #40, #42 */

/* PDP: ATC inner wrapper display fix */
.single-product .et_pb_wc_add_to_cart .et_pb_module_inner {
  display: block;
}

/* PDP: ATC button bottom margin */
.single-product button.single_add_to_cart_button.button.alt {
  margin-bottom: 30px;
}

/* PDP: hide quantity on product 26885 (sample pack) */
.postid-26885 .woocommerce #content div.product form.cart div.quantity,
.woocommerce-page #content div.product form.cart div.quantity {
  display: none;
}

/* WooCommerce: hide blockUI loading overlay */
.woocommerce .blockUI.blockOverlay {
  display: none !important;
}

/* PDP: "Read More/Less" truncation on mobile */
@media (max-width: 767px) {
  .morecontent {
    display: none;
  }
  .morelink {
    display: block;
    font-weight: bold;
    margin: 0 0 15px;
  }
}

/* TM EPO rules removed 26 Apr 2026 — plugin uninstalled */

/* Product description "See More" toggle */
/* NOTE: CSS pairs with JS in Divi Integration > Body (block #3) */
.pa-toggle-text .et_pb_text_inner {
  max-height: 80px;
  transition: max-height 0.3s ease-out;
  overflow: hidden;
}
.pa-toggle-text .et_pb_text_inner:after {
  content: "";
  display: inline-block;
  position: absolute;
  pointer-events: none;
  height: 100px;
  width: 100%;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: linear-gradient(0deg, #fff 10%, transparent);
}
.pa-toggle-text .pa-text-expand-button {
  padding: 0.25em;
  text-align: center;
  color: var(--c-brand) !important;
}
.pa-toggle-text .pa-text-expand-button span {
  cursor: pointer;
}
.pa-toggle-text .pa-text-expand-button .pa-text-toggle-icon {
  font-family: ETMODULES, "sans-serif";
}
.pa-toggle-text .pa-text-toggle-expanded {
  max-height: 2000px;
  transition: max-height 0.3s ease-in;
}
.pa-toggle-text .pa-text-toggle-expanded.et_pb_text_inner:after {
  background: none;
}

/* WPC Product Bundles: mobile layout */
@media only screen and (max-width: 767px) {
  .woosb-products .woosb-product {
    flex-direction: column;
    justify-content: center;
  }
  .woosb-products .woosb-product > div {
    width: 100%;
    flex-basis: 100%;
    flex: 0 0 100% !important;
    text-align: center !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .woosb-products .woosb-product .woosb-thumb {
    width: 80px;
    flex: 0 0 80px;
  }
  .woosb-products .woosb-product .woosb-thumb img {
    width: 80px;
    min-width: 80px;
    max-width: 80px;
    height: auto;
  }
  .woosb-products .woosb-product .woosb-title {
    text-align: center !important;
  }
  .woosb-products .woosb-product .woosb-qty,
  .woosb-products .woosb-product .woosb-price {
    width: auto !important;
    flex-basis: auto !important;
  }
  .woosb-products .woosb-product .variations {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-bottom: 5px !important;
  }
  .woosb-products .woosb-product .variations .reset {
    display: none !important;
  }
}

/* WPC Composite: quantity input sizing */
.wooco_component_product .wooco_component_product_qty input {
  width: 40px !important;
  min-width: 40px !important;
  padding: 0 4px !important;
}

/* PDP gallery: responsive image sizing + slick borders */
@media all and (min-width: 1025px) {
  .wpgs-has-gallery-images .woocommerce div.product div.images img {
    width: fit-content;
    min-height: 175px;
  }
  .product .et_pb_row {
    max-width: 90%;
  }
  [data-slick-index="0"],
  [data-slick-index="1"],
  [data-slick-index="2"],
  [data-slick-index="3"] {
    border-right: 12px solid white;
  }
}

@media all and (min-width: 1920px) {
  .product .et_pb_row {
    max-width: 1800px;
  }
}

@media all and (max-width: 1024px) {
  .woocommerce div.product div.images img {
    width: fit-content;
    min-height: 120px;
  }
  .product .et_pb_row {
    max-width: 90%;
  }
  .container-image-and-badge {
    border-right: 10px solid white;
  }
}

@media all and (max-width: 480px) {
  .woocommerce div.product div.images img {
    width: fit-content;
    min-height: 80px;
  }
  [data-slick-index="0"],
  [data-slick-index="1"] {
    border-right: 12px solid white;
  }
}


/* === CART & CHECKOUT === */
/* Blocks #24, #47 */

/* Cart: hide "Update Cart" button */
button[name='update_cart'] {
  display: none !important;
}

/* Checkout (Flux): hide duplicate cart-subtotal row */
body.woocommerce-checkout tfoot tr.cart-subtotal:first-of-type {
  display: none !important;
}

/* Checkout: "You Save" in red */
tr.you-save td span bdi,
tr.you-save td span {
  color: red !important;
}

/* Checkout (Flux): hide billing heading */
body.woocommerce-checkout .flux-heading.flux-heading--billing {
  visibility: hidden;
}

/* Checkout (Flux): order review heading size */
body.woocommerce-checkout #order_review_heading {
  font-size: 22px !important;
}

/* Checkout: hide line-through on product totals */
body.woocommerce-checkout td.product-total > del {
  display: none;
}

/* Checkout: spacing for product total ins/del */
.product-total ins del {
  margin-right: 5px;
}

/* Checkout (Flux): full-width content row */
body.woocommerce-checkout main.flux-checkout__content .et_pb_row.et_pb_row_0 {
  width: 100%;
  max-width: 100%;
  padding: 0px;
}


/* === MOBILE === */
/* Blocks #15, #16, #17, #33, #36 */


/* Mobile flex column reordering */
@media all and (max-width: 980px) {
  .custom_row {
    display: flex;
    flex-wrap: wrap;
  }
  .first-on-mobile { order: 1; }
  .second-on-mobile { order: 2; }
  .third-on-mobile { order: 3; }
  .fourth-on-mobile { order: 4; }
  .custom_row:last-child .et_pb_column:last-child {
    margin-bottom: 30px;
  }
}

/* Mobile: USP four-column section layout */
@media screen and (max-width: 980px) {
  .et-custom-section .et_pb_column .et_pb_module {
    display: block !important;
    width: 100% !important;
    max-width: 100%;
    padding-right: 0px !important;
    text-align: center;
  }
  .et-custom-section .et_pb_column {
    display: block !important;
  }
  .et-custom-section .et_pb_column .et_pb_module span.et_pb_image_wrap {
    max-width: 50%;
  }
}

/* Mobile: column width overrides (2/3/4/5 col) */
@media only screen and (max-width: 980px) {
  .et-db #et-boc .et-l .two-columns .et_pb_column { width: 50% !important; }
  .et-db #et-boc .et-l .three-columns .et_pb_column { width: 33.33% !important; }
  .et-db #et-boc .et-l .four-columns .et_pb_column { width: 25% !important; }
  .et-db #et-boc .et-l .five-columns .et_pb_column { width: 20% !important; }
  .et_pb_row_1-4_1-4 > .et_pb_column.et_pb_column_1_4,
  .et_pb_row_1-4_1-4_1-2 > .et_pb_column.et_pb_column_1_4,
  .et_pb_row_4col > .et_pb_column.et_pb_column_1_4 {
    margin-right: 0 !important;
  }
}

/* Column min-height */
@media screen and (min-width: 981px) {
  .et_pb_column_1 {
    min-height: 400px !important;
  }
}
@media screen and (max-width: 600px) {
  .et_pb_column_1 {
    min-height: 250px !important;
  }
}

/* Blog: hide burger menu, keep desktop nav on mobile */
.lwp-hide-mobile-menu.et_pb_menu .et_pb_menu__menu,
.lwp-hide-mobile-menu.et_pb_fullwidth_menu .et_pb_menu__menu {
  display: flex !important;
}
.lwp-hide-mobile-menu .et_mobile_nav_menu {
  display: none;
}


/* === LIGHTBOX & MODALS === */
/* Block #31 */

/* Magnific Popup helper classes */
/* NOTE: pairs with JS initialiser in Divi Integration > Body (blocks #1/#2) */
[class*="lightbox-trigger-"] { cursor: pointer; }
[class*="lightbox-content-"] { position: relative; z-index: unset !important; }
[class*="lightbox-content-"] .mfp-close { color: var(--c-border-strong) !important; }
[class*="lightbox-content-"] .mfp-close:active { top: 0px !important; }


/* === THIRD-PARTY === */
/* Blocks #27, #29, #35, #44 */

/* Google Reviews badge alignment (header) */
.rplg .rplg-badge-cnt { text-align: right !important; }
.rplg .rplg-badge-cnt .rplg-badge2 { margin: 0 !important; box-shadow: none !important; }
.rplg .rplg-badge2 .rplg-badge2-border { display: none; }
.rplg-badge2 .rplg-badge2-btn > svg { display: none; }

/* Google review header + icon vertical alignment */
.google-review-header-bar p {
  display: flex;
  flex-direction: row;
  align-items: center;
  text-align: center !important;
  justify-content: center !important;
}
.customisable-icon-text-popup p {
  display: flex;
  flex-direction: row;
  align-items: center;
  text-align: center !important;
}
.delivery-estimate-product-page p {
  display: flex;
  flex-direction: row;
  align-items: center;
  text-align: center !important;
}

/* SmashBalloon Instagram Feed: lightbox text colour */
#sbi_lightbox.sbi_lb-comments-enabled .sbi_lb-caption .sbi_caption_text {
  color: #3D4246 !important;
}
#sbi_lightbox.sbi_lb-comments-enabled .sbi_lb-commentBox .sbi_lb-comment-text {
  color: #3D4246 !important;
}

/* FlyCart: suggested products carousel */
.woofc-suggested-products-slick .slick-dots li button:before {
  display: none;
}
.woofc-suggested-products-slick .slick-dots li {
  width: 10px;
  height: 10px;
}
.woofc-area .woofc-suggested .woofc-suggested-product-atc .button {
  height: auto;
  background-color: var(--c-brand) !important;
  color: #ffffff !important;
  font-weight: 600;
  padding: 8px 25px;
  border-radius: 0 !important;
  border: 2px solid transparent !important;
}
.woofc-area .woofc-suggested .woofc-suggested-product-atc .button:hover::after {
  display: none !important;
}
.woofc-area .woofc-suggested .woofc-suggested-product-atc .button:hover {
  background-color: #ffffff !important;
  border: 2px solid var(--c-brand) !important;
  color: var(--c-brand) !important;
}

/* Countdown timer: header label sizing */
.et_pb_column .et_pb_countdown_timer_0_tb_header.et_pb_countdown_timer .section p.label {
  font-size: 10px !important;
  line-height: 6px !important;
  max-width: 30px !important;
  text-align: center;
  margin-left: 20px !important;
}


/* === UTILITIES === */
/* Blocks #18, #19, #32, #37, #45 */

/* Gradient overlay for parallax sections */
.gradient-overlay:before {
  content: "";
  position: absolute;
  z-index: 1;
  background: inherit;
  top: 0;
  bottom: 0;
  width: 100%;
}
.gradient-overlay .et_pb_row {
  z-index: 2 !important;
}
.gradient-overlay {
  background-color: transparent;
}

/* Image aspect ratio: square 1:1 */
.pa-image-1-1 .et_pb_image_wrap {
  padding-top: 100%;
  display: block;
}
.pa-image-1-1 .et_pb_image_wrap img {
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  object-fit: cover;
}

/* Image aspect ratio: landscape 3:2 */
.pa-image-3-2 .et_pb_image_wrap {
  padding-top: 66.66%;
  display: block;
}
.pa-image-3-2 .et_pb_image_wrap img {
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  object-fit: cover;
}

/* Inline buttons helper */
.pa-inline-buttons .et_pb_button_module_wrapper {
  display: inline-block;
}

/* Inline buttons: right-aligned variant */
.pa-inline-buttons .et_pb_button_module_wrapper.et_pb_button_alignment_right {
  float: right;
}

/* Buttons fixed to bottom of flex columns */
.gq_r_fixed_buttons .et_pb_column {
  padding-bottom: 30px;
}
.gq_r_fixed_buttons .et_pb_button_module_wrapper {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

/* Animation override: force opacity 1 (disables Divi fade-in) */
.et_animated {
  opacity: 1 !important;
}


/* === PERFORMANCE === */
/* Block #2 */

/* Perfmatters: content-visibility hint */
#perfmatters {
  content-visibility: auto;
  contain-intrinsic-size: 1000px;
}


/* ====================================================================
   PHASE 4: Mobile PDP Hierarchy CSS
   Date: 19 Apr 2026
   ==================================================================== */

/* Phase 4: Mobile PDP Hierarchy - CSS order (replaces JS DOM reorder) */
@media (max-width: 768px) {
    body.single-product .et_pb_column_2_5.et_pb_column_1_tb_body {
        display: flex !important;
        flex-direction: column !important;
    }
    body.single-product .et_pb_text_3_tb_body {
        order: 20 !important;
        margin-top: 20px !important;
        padding-top: 20px !important;
        border-top: 1px solid var(--c-border) !important;
    }
    body.single-product .et_pb_text_3_tb_body .et_pb_text_inner {
        font-size: 14px !important;
        line-height: 1.6 !important;
        color: #444 !important;
    }
    body.single-product .et_pb_text_3_tb_body .et_pb_text_inner::before {
        content: 'About This Product' !important;
        display: block !important;
        font-family: 'Manrope', sans-serif !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        color: var(--c-text) !important;
        margin-bottom: 8px !important;
    }
    body.single-product .et_pb_wc_add_to_cart_0_tb_body {
        order: 10 !important;
    }
    body.single-product .et_pb_column_2_5.et_pb_column_1_tb_body .vsp-wrap {
        order: 15 !important;
    }
    body.single-product .et_pb_wc_meta_0_tb_body {
        order: 30 !important;
    }
}

/* ==========================================================================
   CLS FIX: Reserve space for countdown banner (Snippet 106)
   Banner starts display:none, JS adds .gf-cd-ready to show it.
   This reserves 30px so content doesn't shift when it appears.
   ========================================================================== */
#gf-cd-header {
    display: block !important;
    min-height: 30px;
    visibility: hidden;
}
#gf-cd-header.gf-cd-ready {
    visibility: visible;
}

/* Fix: Consistent PDP row width regardless of Divi builder flag */
body.single-product .et_pb_row_0_tb_body {
    width: 90% !important;
    max-width: 1920px !important;
}

/* ==========================================================================

/* ==========================================================================
   CWV: FA5 base class fix - MegaMenu Pro's FA5 CSS is icon-content only,
   missing the base .fas/.fab/.far class definitions. Add them here.
   ========================================================================== */
.fa, .fas, .far, .fal, .fad, .fab {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
}
body .fas, body .fa, body .fas::before, body .fa::before { font-family: "Font Awesome 5 Free" !important; font-weight: 900 !important; }
body .far, body .far::before { font-family: "Font Awesome 5 Free" !important; font-weight: 400 !important; }
body .fab, body .fab::before { font-family: "Font Awesome 5 Brands" !important; font-weight: 400 !important; }


/* ====================================================================
   MOBILE MENU — QUIZ CTA (moved from snippet 103 on 23 Apr 2026)
   Snippet 103 gated its output to quiz pages only, which meant this
   CSS didn't load on the homepage where the menu's quiz button lives.
   Moved here so it loads everywhere the mobile menu renders.
   ==================================================================== */

.gfmm-quiz-cta {
    background: #eff6ff;
    border-left: 4px solid var(--c-brand);
}
.gfmm-quiz-cta .gfmm-quiz-icon i { color: var(--c-brand); }
.gfmm-quiz-cta .gfmm-quiz-headline {
    font-size: 14px;
    font-weight: 600;
    color: #1e3a5f;
}
.gfmm-quiz-cta .gfmm-quiz-badge {
    background: var(--c-brand);
    color: #fff;
    font-size: 10px;
    padding: 3px 6px;
    border-radius: 6px;
    font-weight: 600;
    margin-top: 4px;
    display: inline-block;
}

/* ====================================================================
   MOBILE MENU CTAs — COMPACT (23 Apr 2026)
   Trim quiz + coaster CTAs from ~97px to ~72px. Still above 44px HIG
   tap-target minimum. Frees vertical space for nav items below.
   ==================================================================== */
.gfmm-item.gfmm-quiz-cta,
.gfmm-item.gfmm-coaster-cta {
    padding: 12px 16px;
}
.gfmm-item.gfmm-quiz-cta .gfmm-quiz-badge,
.gfmm-item.gfmm-coaster-cta .gfmm-coaster-badge {
    margin-top: 3px;
    padding: 2px 6px;
}
.gfmm-item.gfmm-quiz-cta .gfmm-quiz-headline,
.gfmm-item.gfmm-coaster-cta .gfmm-coaster-headline {
    font-size: 13px;
    line-height: 1.3;
}
.gfmm-item.gfmm-quiz-cta .gfmm-left,
.gfmm-item.gfmm-coaster-cta .gfmm-left {
    gap: 10px;
}

/* Restore coaster CTA bg tint (base rule lost cascade to .gfmm-item after 19 Apr consolidation). */
.gfmm-item.gfmm-coaster-cta {
    background: #ecfdf5;
}


/* =====================================================================
   SITE OVERHAUL 2026 — PHASE 0 TAP TARGET FIXES (23 Apr 2026)
   Bring every interactive element to ≥44×44 (Apple HIG minimum).
   Audited against: homepage, PDP, composite builder, review drawer.
   ===================================================================== */

/* Sale/countdown header bar */
.gf-cd-header {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 6px 12px !important;
}

/* Gallery arrows (prev/next) + expand/zoom icon */
.gaf-arr,
.gaf-arr-prev,
.gaf-arr-next,
.gaf-expand {
    min-width: 44px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Homepage product slider arrows */
.gf-slider-arrow,
.gf-arrow-prev,
.gf-arrow-next {
    min-width: 44px !important;
    min-height: 44px !important;
}

/* Modal / drawer close buttons */
.gf-reviews-drawer__close,
.mw-modal-close,
.gaf-lb-close,
.gaf-zoom-close,
.gf-delivery-modal-close {
    min-width: 44px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Text/secondary buttons — bump to 44 tall */
.gf-all-btn,
.share-config-link,
.unit-toggle-btn,
.gf-reviews__card-readmore,
.gf-reviews__showmore-btn,
.gf-dm-toggle {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Divi buttons — consistent 44px minimum */
.et_pb_button {
    min-height: 44px;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Micro proof review row (tap zone opens review drawer) */
.gf-micro-proof {
    min-height: 44px;
    display: flex !important;
    align-items: center;
    padding: 0 16px;
}

/* Logo link tap area (secondary priority but worth expanding) */
.gfmm-logo-link {
    min-height: 44px;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

/* END PHASE 0 TAP TARGET FIXES */

/* mw-modal-close specificity bump (was 42x42 from base rule with size rule) */
body .mw-modal-close {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
}


/* =====================================================================
   SITE OVERHAUL 2026 — PHASE 0 CONTRAST FIXES (23 Apr 2026)
   Decisions: keep brand blue (4.44 vs 4.5 imperceptible), no sale badge on
   live, fix footer social icons + cool grey section text.
   ===================================================================== */

/* Footer social icons (Divi follow module) — was #557b97 on dark #3d4246 (2.26:1, fails).
   Switch to white for strong contrast on the dark footer section. */
.et_pb_section_0_tb_footer .et_pb_social_media_follow li a.icon:before {
    color: #ffffff !important;
}
.et_pb_section_0_tb_footer .et_pb_social_media_follow li a.icon:hover:before {
    color: rgba(255, 255, 255, 0.75) !important;
}

/* Cool grey section text — was #69727b on #ebebec (4.11:1, fails AA body).
   Darken body text to #555e68 (≥4.5:1) so 16-18px paragraphs pass. */
.et_pb_section_1_tb_body,
.et_pb_section_4_tb_body,
.et_pb_section_5_tb_body,
.et_pb_section_6_tb_body,
.et_pb_section_7_tb_body,
.et_pb_section_8_tb_body,
.et_pb_section_9_tb_body,
.et_pb_section_12_tb_body,
.et_pb_section_13_tb_body,
.et_pb_section_15_tb_body,
.et_pb_section_17_tb_body,
.et_pb_section_1_tb_footer {
    color: #555e68;
}
.et_pb_section_1_tb_body .et_pb_text_inner,
.et_pb_section_4_tb_body .et_pb_text_inner,
.et_pb_section_5_tb_body .et_pb_text_inner,
.et_pb_section_6_tb_body .et_pb_text_inner,
.et_pb_section_7_tb_body .et_pb_text_inner,
.et_pb_section_8_tb_body .et_pb_text_inner,
.et_pb_section_9_tb_body .et_pb_text_inner,
.et_pb_section_12_tb_body .et_pb_text_inner,
.et_pb_section_13_tb_body .et_pb_text_inner,
.et_pb_section_15_tb_body .et_pb_text_inner,
.et_pb_section_17_tb_body .et_pb_text_inner,
.et_pb_section_1_tb_footer .et_pb_text_inner {
    color: #555e68;
}

/* END PHASE 0 CONTRAST FIXES */

/* =====================================================================
   SITE OVERHAUL 2026 — PHASE 0.4 COMPONENT PRIMITIVES (23 Apr 2026)
   Reusable atomic components for PDP/cart/checkout rebuild.
   Uses design tokens from Phase 0 foundation (--fs-*, --space-*, fonts).
   Prefix: .gf-  Variants use BEM-style modifiers (e.g. .gf-btn--primary)
   ===================================================================== */


/* ─── BUTTON ──────────────────────────────────────────────────────── */

.gf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: var(--tap-target-min);
    padding: var(--space-3) var(--space-5);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-body);
    line-height: 1.2;
    letter-spacing: 0.2px;
    border-radius: 10px;
    border: 1.5px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s, var(--tactile-transition);
    -webkit-appearance: none;
    appearance: none;
}

.gf-btn:active:not(:disabled) {
    scale: var(--tactile-scale);
}

.gf-btn:disabled,
.gf-btn[aria-disabled="true"] {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

.gf-btn--block {
    width: 100%;
}

.gf-btn--sm {
    min-height: 36px;
    padding: var(--space-2) var(--space-4);
    font-size: var(--fs-body-sm);
}

.gf-btn--lg {
    min-height: 52px;
    padding: var(--space-4) var(--space-6);
    font-size: var(--fs-body-lg);
}

/* Primary — brand blue, strong CTA */
.gf-btn--primary {
    background: var(--c-brand);
    color: #ffffff;
    border-color: var(--c-brand);
}
.gf-btn--primary:hover:not(:disabled) {
    background: #4a6278;
    border-color: #4a6278;
}

/* Secondary — outline, brand blue */
.gf-btn--secondary {
    background: transparent;
    color: var(--c-brand);
    border-color: var(--c-brand);
}
.gf-btn--secondary:hover:not(:disabled) {
    background: var(--c-bg-soft);
}

/* Ghost — text-only, minimal */
.gf-btn--ghost {
    background: transparent;
    color: var(--c-brand);
    border-color: transparent;
}
.gf-btn--ghost:hover:not(:disabled) {
    background: #f5f1ec;
}

/* Destructive — reserved for irreversible actions (delete, cancel order) */
.gf-btn--destructive {
    background: var(--c-danger);
    color: #ffffff;
    border-color: var(--c-danger);
}
.gf-btn--destructive:hover:not(:disabled) {
    background: #b92828;
    border-color: #b92828;
}


/* ─── INPUT / TEXTAREA / SELECT ──────────────────────────────────── */

.gf-input,
.gf-textarea,
.gf-select {
    width: 100%;
    min-height: var(--tap-target-min);
    padding: var(--space-3) var(--space-4);
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px; /* 16px prevents iOS zoom on focus */
    line-height: 1.4;
    color: var(--c-text);
    background: #ffffff;
    border: 1.5px solid var(--c-border);
    border-radius: 10px;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
}

.gf-input::placeholder,
.gf-textarea::placeholder {
    color: #9ca3af;
}

.gf-input:focus,
.gf-textarea:focus,
.gf-select:focus {
    outline: none;
    border-color: var(--c-brand);
    box-shadow: 0 0 0 3px rgba(93, 123, 149, 0.15);
}

.gf-input[aria-invalid="true"],
.gf-input.is-invalid {
    border-color: var(--c-danger);
    box-shadow: 0 0 0 3px rgba(221, 51, 51, 0.15);
}

.gf-input:disabled {
    background: #f9fafb;
    color: var(--c-border-strong);
    cursor: not-allowed;
}

.gf-textarea {
    min-height: 96px;
    resize: vertical;
}

.gf-select {
    padding-right: var(--space-10);
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right var(--space-4) center;
    cursor: pointer;
}

.gf-field {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
}

.gf-field__label {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: var(--fs-body-sm);
    color: var(--c-text);
}

.gf-field__hint {
    font-family: var(--font-body);
    font-size: var(--fs-micro);
    color: var(--c-border-strong);
}

.gf-field__error {
    font-family: var(--font-body);
    font-size: var(--fs-micro);
    color: var(--c-danger);
}


/* ─── CARD ────────────────────────────────────────────────────────── */

.gf-card {
    background: #ffffff;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    padding: var(--space-6);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.gf-card--elevated {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    border-color: transparent;
}

.gf-card--flat {
    box-shadow: none;
}

.gf-card--interactive {
    cursor: pointer;
    transition: box-shadow 0.15s, transform 0.15s;
}

.gf-card--interactive:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    transform: translateY(-1px);
}

@media (max-width: 768px) {
    .gf-card {
        padding: var(--space-5);
    }
}


/* ─── PRICE DISPLAY ──────────────────────────────────────────────── */

.gf-price {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.gf-price__current {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: var(--fs-h3);
    color: var(--c-text);
    line-height: 1;
}

.gf-price__original {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: var(--fs-body);
    color: var(--c-border-strong);
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

.gf-price__save {
    display: inline-block;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-micro);
    color: #ffffff;
    background: var(--c-danger);
    padding: 2px 8px;
    border-radius: 999px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    line-height: 1.3;
}

.gf-price--lg .gf-price__current {
    font-size: var(--fs-h2);
}

.gf-price--sm .gf-price__current {
    font-size: var(--fs-body-lg);
}


/* ─── SKELETON ──────────────────────────────────────────────────── */

@keyframes gfSkeletonShimmer {
    0%   { background-position: -200px 0; }
    100% { background-position: calc(200px + 100%) 0; }
}

.gf-skeleton {
    display: inline-block;
    background: var(--c-border);
    background-image: linear-gradient(90deg, var(--c-border) 0%, #f3f4f6 50%, var(--c-border) 100%);
    background-size: 200px 100%;
    background-repeat: no-repeat;
    border-radius: 6px;
    animation: gfSkeletonShimmer 1.4s ease-in-out infinite;
    color: transparent;
    user-select: none;
}

.gf-skeleton--text {
    height: 14px;
    width: 100%;
}

.gf-skeleton--heading {
    height: 24px;
    width: 70%;
}

.gf-skeleton--circle {
    border-radius: 50%;
    width: 40px;
    height: 40px;
}

.gf-skeleton--card {
    width: 100%;
    height: 120px;
    border-radius: 12px;
}

@media (prefers-reduced-motion: reduce) {
    .gf-skeleton {
        animation: none;
        background-image: none;
    }
}


/* ─── TOAST ──────────────────────────────────────────────────────── */

@keyframes gfToastIn {
    from { transform: translateY(20px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

@keyframes gfToastOut {
    from { transform: translateY(0); opacity: 1; }
    to   { transform: translateY(20px); opacity: 0; }
}

.gf-toast-stack {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    z-index: 99999;
    pointer-events: none;
    padding-bottom: env(safe-area-inset-bottom);
    max-width: calc(100vw - var(--space-8));
}

.gf-toast {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-5);
    background: var(--c-text);
    color: #ffffff;
    border-radius: 10px;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: var(--fs-body-sm);
    line-height: 1.4;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    animation: gfToastIn 0.2s ease-out;
    pointer-events: auto;
    min-height: 44px;
    box-sizing: border-box;
}

.gf-toast--success {
    background: var(--c-success);
}

.gf-toast--error {
    background: var(--c-danger);
}

.gf-toast--dismissing {
    animation: gfToastOut 0.2s ease-in forwards;
}

.gf-toast__icon {
    display: inline-flex;
    flex-shrink: 0;
}


/* ─── BADGE (small utility) ──────────────────────────────────────── */

.gf-badge {
    display: inline-block;
    padding: 3px 8px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--fs-micro);
    border-radius: 999px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    line-height: 1.4;
}

.gf-badge--success { background: var(--c-success-bg); color: var(--c-success); }
.gf-badge--warning { background: #fef3c7; color: #92400e; }
.gf-badge--info    { background: var(--c-bg-soft); color: var(--c-brand); }
.gf-badge--error   { background: #fee2e2; color: var(--c-danger); }

/* END PHASE 0.4 COMPONENT PRIMITIVES */

/* Max Mega Menu font override — plugin was still injecting Metro Sans
   via its generated style.css. Force our tokens. */
#mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item > a.mega-menu-link,
#mega-menu-wrap-primary-menu #mega-menu-primary-menu .mega-sub-menu,
#mega-menu-wrap-primary-menu #mega-menu-primary-menu .mega-menu-link,
#mega-menu-wrap-secondary-menu #mega-menu-secondary-menu > li.mega-menu-item > a.mega-menu-link,
#mega-menu-wrap-secondary-menu #mega-menu-secondary-menu .mega-menu-link,
.mega-menu-item .mega-menu-title {
    font-family: var(--font-body) !important;
}
#mega-menu-wrap-primary-menu #mega-menu-primary-menu .mega-menu-title,
.mega-sub-menu > li.mega-menu-item.mega-menu-column > a.mega-menu-link {
    font-family: var(--font-heading) !important;
}

/* Gallery lightbox is a native <dialog> element (upgraded 23 Apr 2026 for
   focus trap + aria-modal). Override browser default dialog[open] display. */
dialog.gaf-lightbox {
    padding: 0;
    border: 0;
    max-width: 100vw;
    max-height: 100vh;
    width: 100vw;
    height: 100vh;
    color: inherit;
}
dialog.gaf-lightbox:not([open]) { display: none; }
dialog.gaf-lightbox[open]:not(.open) { display: none; }
dialog.gaf-lightbox[open].open { display: flex; }
dialog.gaf-lightbox::backdrop {
    background: rgba(0, 0, 0, 0.97);
}

/* Gallery lightbox topbar — positioning fix for <dialog> element (23 Apr 2026).
   Native <dialog> top-layer changes stacking behaviour, so position:fixed on
   descendants misbehaves. Switch topbar to sticky within the dialog flex column
   and restore pointer-events on interactive children. */
dialog.gaf-lightbox .gaf-lb-topbar {
    position: sticky;
    top: 0;
    flex-shrink: 0;
    pointer-events: auto;
}
dialog.gaf-lightbox .gaf-lb-toprow,
dialog.gaf-lightbox .gaf-lb-filters,
dialog.gaf-lightbox .gaf-lb-counter,
dialog.gaf-lightbox .gaf-lb-pill,
dialog.gaf-lightbox .gaf-lb-close {
    pointer-events: auto;
}

/* Size Guide button injected into .mw-modal-header (23 Apr 2026) */
.mw-modal-guide-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 8px;
    padding: 8px 12px;
    min-height: 44px;
    background: transparent;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    color: var(--c-brand);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    -webkit-appearance: none;
    appearance: none;
}
.mw-modal-guide-link:hover { background: var(--c-bg-soft); border-color: var(--c-brand); }
.mw-modal-guide-link svg { color: var(--c-brand); width: 14px; height: 14px; }
.mw-modal-guide-link:active { transform: scale(0.97); }
@media (max-width: 420px) {
    .mw-modal-guide-link { padding: 8px 10px; font-size: 12px; }
}

/* Size modal option card — normalise price layout across PDP (with .gf-sale-badge
   wrapper from snippet 109) and builder (plain WC markup). Both renderings now
   produce identical visual output. Added 23 Apr 2026. */
.mw-rich-option .mw-opt-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    line-height: 1.2;
    margin-left: auto;
    font-family: var(--font-heading);
}
.mw-rich-option .mw-opt-price > span.price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}
.mw-rich-option .mw-opt-price ins,
.mw-rich-option .mw-opt-price .sale_price {
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 16px;
    color: var(--c-text);
    text-decoration: none;
    display: block;
    line-height: 1.2;
}
.mw-rich-option .mw-opt-price .save_discount_price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    line-height: 1.2;
    margin: 0;
}
.mw-rich-option .mw-opt-price .save_price {
    display: block;
    color: var(--c-danger);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.3px;
    line-height: 1.2;
}
.mw-rich-option .mw-opt-price del {
    display: block;
    text-decoration: none;
    color: var(--c-border-strong);
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 11px;
    line-height: 1.2;
    margin-right: 0;
}
.mw-rich-option .mw-opt-price del .woocommerce-Price-amount {
    text-decoration: line-through;
}

/* Stock badge — normalise date format visual */
.mw-rich-option .mw-badge-stock {
    font-family: var(--font-heading);
}

/* Force the gf-sale-badge wrapper inside modal cards to stack vertically
   (it uses inline !important styles for row layout elsewhere). */
.mw-rich-option .mw-opt-price .gf-sale-badge {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 2px !important;
}
.mw-rich-option .mw-opt-price .price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

/* Review Aggregator (snippet 108) tap target fixes — overnight audit 23 Apr 2026 */
.gf-reviews__pill {
    min-height: 44px;
    padding: 10px 14px;
    display: inline-flex;
    align-items: center;
}
.gf-reviews__footer-link {
    min-height: 44px;
    padding: 10px 12px;
    display: inline-flex;
    align-items: center;
}

/* Normalise size modal cards — PDP was inheriting smaller base styles than builder.
   Force same sizes across both #mw-selector-modal (PDP) and #gf-selection-modal-body (builder).
   Reference is the builder's values. 24 Apr 2026 AM. */
.mw-rich-option .mw-opt-name {
    font-size: 16px !important;
    font-weight: 700 !important;
}
.mw-rich-option .mw-opt-meta {
    font-size: 12px !important;
}
.mw-rich-option .mw-opt-dims {
    font-size: 12px !important;
    color: #888 !important;
}
.mw-rich-option .mw-badge,
.mw-rich-option .mw-badge-stock,
.mw-rich-option .mw-badge-backorder,
.mw-rich-option .mw-badge-soldout {
    font-size: 12px !important;
    padding: 4px 10px !important;
}
.mw-rich-option .mw-opt-price ins,
.mw-rich-option .mw-opt-price .sale_price {
    font-weight: 600 !important;
    font-size: 16px !important;
}
.mw-rich-option .mw-opt-price del {
    font-size: 14px !important;
}
.mw-rich-option .mw-opt-price .save_price {
    font-size: 14px !important;
    font-weight: 600 !important;
}

/* Modal card stock badge — restyled to match PDP .woocommerce-variation-availability
   banner (light green, sentence case, Inter 12px). Applies to both size selector
   modals (PDP + builder). 24 Apr 2026. */
.mw-rich-option .mw-badge-stock {
    background: #f0fdf4 !important;
    color: var(--c-success) !important;
    font-family: var(--font-body) !important;
    font-weight: 500 !important;
    font-size: 12px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    border-radius: 8px !important;
    padding: 6px 10px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    line-height: 1.35 !important;
    align-self: flex-start !important;
    border: 0 !important;
}
.mw-rich-option .mw-badge-backorder {
    background: #dbeafe !important;
    color: #1e40af !important;
    font-family: var(--font-body) !important;
    font-weight: 500 !important;
    font-size: 12px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    border-radius: 8px !important;
    padding: 6px 10px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    line-height: 1.35 !important;
    align-self: flex-start !important;
    border: 0 !important;
}
.mw-rich-option .mw-badge-soldout {
    background: #fee2e2 !important;
    color: #991b1b !important;
    font-family: var(--font-body) !important;
    font-weight: 500 !important;
    font-size: 12px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    border-radius: 8px !important;
    padding: 6px 10px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    line-height: 1.35 !important;
    align-self: flex-start !important;
    border: 0 !important;
}

/* Max Mega Menu — tone down the first-column text-widget links (was caps + 500 = aggressive).
   Reduce weight, add letter-spacing so caps breathe. 24 Apr 2026. */
#mega-menu-wrap-primary-menu .mega-sub-menu .textwidget a,
#mega-menu-wrap-primary-menu .mega-sub-menu .textwidget p a {
    font-weight: 400 !important;
    font-size: 14px !important;
    letter-spacing: 0.04em !important;
    line-height: 1.8 !important;
}


/* FlyCart stepper alignment — match input size to +/- buttons so stepper fits cleanly. */
.woofc-area .woofc-item-qty-inner input.woofc-qty,
.woofc-area .woofc-item-qty-inner .quantity,
.woofc-area.woofc-style-02 .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-qty .woofc-item-qty-inner input,
.woofc-area.woofc-style-02 .woofc-area-mid .woofc-item .woofc-item-inner .woofc-item-qty .woofc-item-qty-inner .quantity {
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    padding: 0 !important;
    text-align: center !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

/* Category page — 1 column on mobile (was 2). Premium £900 AOV product feels
   better with full-width image cards than cramped side-by-side. 24 Apr 2026. */
@media (max-width: 768px) {
    body.woocommerce .et_pb_wc_breakdown ul.products,
    body.woocommerce ul.products,
    body.archive ul.products,
    body.tax-product_cat ul.products {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    body.woocommerce ul.products li.product,
    body.archive ul.products li.product,
    body.tax-product_cat ul.products li.product {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        float: none !important;
    }
    body.woocommerce ul.products li.product img {
        width: 100% !important;
        height: auto !important;
    }
}

/* Beat WC's [class*=columns-] specificity */
@media (max-width: 768px) {
    body.woocommerce ul.products[class*="columns-"] li.product,
    body.woocommerce-page ul.products[class*="columns-"] li.product,
    body.woocommerce ul.products.columns-3 li.product,
    body.woocommerce ul.products.columns-4 li.product,
    body.woocommerce ul.products.columns-2 li.product {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Beat Divi Theme Builder's #et-boc shop rule with matching ID specificity */
@media (max-width: 768px) {
    .et-db #et-boc .et-l .et_pb_shop ul.products li.product,
    .et-db #et-boc .et-l ul.products[class*="columns-"] li.product,
    body #et-boc ul.products[class*="columns-"] li.product {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
    }
}

/* Beat Divi's .columns-1 through .columns-6 specificity inside @media (max-width: 980px) */
@media (max-width: 768px) {
    .et-db #et-boc .et-l .et_pb_shop ul.products.columns-1 li.product,
    .et-db #et-boc .et-l .et_pb_shop ul.products.columns-2 li.product,
    .et-db #et-boc .et-l .et_pb_shop ul.products.columns-3 li.product,
    .et-db #et-boc .et-l .et_pb_shop ul.products.columns-4 li.product,
    .et-db #et-boc .et-l .et_pb_shop ul.products.columns-5 li.product,
    .et-db #et-boc .et-l .et_pb_shop ul.products.columns-6 li.product {
        width: 100% !important;
        max-width: 100% !important;
    }
}


/* =============================================================
   CATEGORY CARD — MOBILE (replaces 4 scattered blocks, 24 Apr 2026)
   Single source of truth for product grid card styling below 768px.
   Uses tokens from :root. Title flexes 1-2 lines, price sits under.
   Hierarchy: price (20px bold dark) > title (15px dark) > save/was (12px).
   ============================================================= */
@media (max-width: 768px) {

    /* Title — natural 1 or 2 line height */
    body.woocommerce ul.products li.product .woocommerce-loop-product__title,
    body.woocommerce ul.products li.product h2,
    .woocommerce-page ul.products li.product .woocommerce-loop-product__title {
        min-height: 0 !important;
        height: auto !important;
        font-family: var(--font-heading) !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        line-height: 1.3 !important;
        margin: 10px 0 4px 0 !important;
        color: var(--c-text) !important;
    }

    /* Price wrapper */
    body.woocommerce ul.products li.product .price {
        font-family: var(--font-heading) !important;
        line-height: 1.2 !important;
        color: var(--c-text) !important;
        margin-top: 4px !important;
    }

    /* Non-sale price (dark, readable) */
    body.woocommerce ul.products li.product .price .woocommerce-Price-amount.amount bdi,
    body.woocommerce ul.products li.product .price bdi {
        font-family: var(--font-heading) !important;
        font-size: 28px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        color: var(--c-text) !important;
        text-decoration: none !important;
    }
    /* Sale price (red — urgency signal, matches desktop) */
    body.woocommerce ul.products li.product .price ins,
    body.woocommerce ul.products li.product .price .sale_price,
    body.woocommerce ul.products li.product .price ins .amount bdi,
    body.woocommerce ul.products li.product .price ins.sale_price .amount bdi,
    body.woocommerce ul.products li.product .price ins bdi,
    body.woocommerce ul.products li.product .price ins.sale_price bdi {
        font-family: var(--font-heading) !important;
        font-size: 28px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        color: var(--c-danger) !important;
        text-decoration: none !important;
    }

    /* SAVE £X (red, small, only on sale products) */
    body.woocommerce ul.products li.product .price .save_discount_price .save_price,
    body.woocommerce ul.products li.product .price .save_price {
        font-family: var(--font-heading) !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        color: var(--c-danger) !important;
    }

    /* Was £X (muted, strikethrough off) — includes nested bdi to override the
       .price bdi rule above which would otherwise size the del price at 20px. */
    body.woocommerce ul.products li.product .price .save_discount_price del,
    body.woocommerce ul.products li.product .price del,
    body.woocommerce ul.products li.product .price .save_discount_price del .woocommerce-Price-amount,
    body.woocommerce ul.products li.product .price del .woocommerce-Price-amount,
    body.woocommerce ul.products li.product .price del bdi,
    body.woocommerce ul.products li.product .price .save_discount_price del bdi,
    body.woocommerce ul.products li.product .price del .woocommerce-Price-amount bdi,
    body.woocommerce ul.products li.product .price .save_discount_price del .woocommerce-Price-amount bdi,
    body.woocommerce ul.products li.product .price del .woocommerce-Price-amount.amount bdi,
    body.woocommerce ul.products li.product .price .save_discount_price del .woocommerce-Price-amount.amount bdi {
        font-family: var(--font-body) !important;
        font-size: 12px !important;
        font-weight: 400 !important;
        color: var(--c-text-soft) !important;
        text-decoration: none !important;
    }
}

/* =============================================================
   MMM HEADER — hover underline (Swyft Home pattern, 25 Apr 2026)
   Top-level menu links + dropdown widget links underline on hover.
   Tightens letter-spacing on dropdown links for better readability.
   ============================================================= */
#mega-menu-primary > li.mega-menu-item > a.mega-menu-link:hover,
#mega-menu-primary-menu > li.mega-menu-item > a.mega-menu-link:hover {
    text-decoration: underline !important;
}
#mega-menu-primary .mega-sub-menu .textwidget a,
#mega-menu-primary-menu .mega-sub-menu .textwidget a,
#mega-menu-wrap-primary-menu .mega-sub-menu .textwidget a,
#mega-menu-wrap-primary-menu .mega-sub-menu .textwidget p a {
    font-size: 16px !important;
    line-height: 1.7 !important;
    letter-spacing: 0 !important;
    transition: text-decoration 0.15s ease !important;
}
/* Block headers in dropdown columns — slightly larger than links */
#mega-menu-primary .mega-block-title,
#mega-menu-primary-menu .mega-block-title,
.mega-menu .mega-block-title {
    font-size: 16px !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
}
#mega-menu-primary .mega-sub-menu .textwidget a:hover,
#mega-menu-primary-menu .mega-sub-menu .textwidget a:hover,
#mega-menu-wrap-primary-menu .mega-sub-menu .textwidget a:hover,
#mega-menu-wrap-primary-menu .mega-sub-menu .textwidget p a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* MMM panel headers — force Title Case (override stale MMM theme CSS) */
#mega-menu-primary .mega-block-title,
#mega-menu-primary-menu .mega-block-title,
.mega-menu .mega-block-title {
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* Chevron stays visible when dropdown opens — MMM's white-invert filter only
   worked on the old dark header. With our light header it disappears. 26 Apr 2026. */
#mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator::after {
    filter: none !important;
    mix-blend-mode: normal !important;
    transform: none !important;
}

/* =============================================================
   CATEGORY CARDS — Swyft-inspired wrapper (mockup, 26 Apr 2026)
   White card + radius + subtle border + hover lift.
   Image flush to top edge, content padded below.
   Desktop + mobile both get the treatment.
   ============================================================= */
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product,
.et-db #et-boc .et-l .et_pb_shop ul.products li.product {
    background: var(--c-bg, #fff) !important;
    border: 1px solid var(--c-border, #e5e7eb) !important;
    border-radius: var(--radius-lg, 12px) !important;
    overflow: hidden !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03) !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Hover lift — premium feel */
body.woocommerce ul.products li.product:hover,
body.woocommerce-page ul.products li.product:hover,
.et-db #et-boc .et-l .et_pb_shop ul.products li.product:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
    border-color: #d1d5db !important;
}

/* Image flush to top — no gap */
body.woocommerce ul.products li.product a img,
body.woocommerce ul.products li.product .woocommerce-loop-product__link img,
body.woocommerce-page ul.products li.product a img {
    border-radius: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    display: block !important;
}

/* Content area gets padding, image stays edge-to-edge */
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product .price,
body.woocommerce ul.products li.product h2,
body.woocommerce ul.products li.product .button,
body.woocommerce ul.products li.product .added_to_cart {
    padding-left: 16px !important;
    padding-right: 16px !important;
}
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product h2 {
    padding-top: 16px !important;
}
body.woocommerce ul.products li.product .price {
    padding-bottom: 16px !important;
}

/* Mobile: card width still 100% (1 col layout already in place) */
@media (max-width: 768px) {
    body.woocommerce ul.products li.product,
    body.woocommerce-page ul.products li.product,
    .et-db #et-boc .et-l .et_pb_shop ul.products li.product {
        margin-bottom: 16px !important;
    }
}

/* Equal card heights — push price to bottom regardless of title wrap.
   Uses flex grow on title so price stays anchored at card bottom. */
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product h2 {
    flex: 1 1 auto !important;
    margin-bottom: 8px !important;
}
body.woocommerce ul.products li.product .price {
    margin-top: auto !important;
}

/* "Available in X sizes" indicator on category cards */
.gf-card-sizes {
    display: block;
    padding: 0 16px 8px 16px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 400;
    color: var(--c-text-soft, #666);
    letter-spacing: 0;
}

/* Force grid layout on product UL so cards in same row stretch to equal height.
   Default Divi uses floats which don't equalize heights. 26 Apr 2026. */
body.woocommerce ul.products,
body.woocommerce-page ul.products,
.et-db #et-boc .et-l ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
    align-items: stretch !important;
}
/* Remove clearfix pseudos which become grid items and shift products */
body.woocommerce ul.products::before,
body.woocommerce ul.products::after,
body.woocommerce-page ul.products::before,
body.woocommerce-page ul.products::after,
.et-db #et-boc .et-l ul.products::before,
.et-db #et-boc .et-l ul.products::after {
    display: none !important;
    content: none !important;
}
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product,
.et-db #et-boc .et-l ul.products li.product {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
    height: 100% !important;
}
@media (max-width: 980px) {
    body.woocommerce ul.products,
    body.woocommerce-page ul.products,
    .et-db #et-boc .et-l ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px !important;
    }
}
@media (max-width: 768px) {
    body.woocommerce ul.products,
    body.woocommerce-page ul.products,
    .et-db #et-boc .et-l ul.products {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}

/* Chevron — kill ALL transform/transition/filter changes regardless of state.
   Multiple MMM CSS copies were beating earlier override. 26 Apr 2026. */
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator::after,
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator::after,
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children.mega-menu-item-hover > a.mega-menu-link > span.mega-indicator::after {
    transform: none !important;
    transition: none !important;
    filter: none !important;
    mix-blend-mode: normal !important;
    animation: none !important;
}
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator,
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator {
    transform: translateY(-50%) !important;
    transition: none !important;
}

/* Cards — title flex-grow only (no clamping, equal heights via grid stretch) */
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product h2 {
    flex: 0 0 auto !important;
}
.gf-card-sizes {
    flex: 0 0 auto !important;
}
body.woocommerce ul.products li.product .price {
    margin-top: auto !important;
}

/* Title — allow natural 1-3 line height. Equal card heights still work because
   grid container uses align-items: stretch (cards in same row match tallest). */
body.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
body.woocommerce-page ul.products li.product h2.woocommerce-loop-product__title,
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    line-height: 1.4 !important;
    min-height: auto !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: block !important;
}

/* Chevron — explicitly no underline (parent's :hover underline can extend) */
body #mega-menu-wrap-primary-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator,
body #mega-menu-wrap-primary-menu li.mega-menu-item-has-children > a.mega-menu-link:hover > span.mega-indicator {
    text-decoration: none !important;
    display: inline-block !important;
}

/* Chevron — pull out of inline flow so underline/layout changes don't shift it.
   Position absolute relative to the link, vertically centred. 26 Apr 2026. */
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item-has-children > a.mega-menu-link {
    position: relative !important;
    padding-right: 24px !important;
}
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {
    position: absolute !important;
    right: 6px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
    pointer-events: none !important;
    text-decoration: none !important;
}

/* Lock down link layout in all states — no transitions, no transforms anywhere
   that could shift the absolute-positioned chevron. 26 Apr 2026. */
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item-has-children > a.mega-menu-link,
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item-has-children > a.mega-menu-link:hover,
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link,
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu > li.mega-menu-item-has-children.mega-menu-item-hover > a.mega-menu-link {
    transform: none !important;
    transition: none !important;
    animation: none !important;
}

/* Chevron — kill the -7px margin-top that MMM adds on .mega-toggle-on
   (rule appears 3x in MMM CSS, was the actual cause of "jump on hover"). 26 Apr 2026. */
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator::after,
body #mega-menu-wrap-primary-menu #mega-menu-primary-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator::after {
    margin: 0 !important;
    margin-top: 0 !important;
}

/* Lightbox feed — fill full dialog width so wheel events anywhere in the
   black area scroll the feed (was constrained to 900px with 150px gutters
   that captured wheel events to the unscrollable dialog). 29 Apr 2026. */
#gaf-lightbox #gaf-lb-feed {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: max(24px, calc((100% - 900px) / 2)) !important;
    padding-right: max(24px, calc((100% - 900px) / 2)) !important;
}
