/* Standard WooCommerce markup remains intact: no checkout fields/hooks hidden. */
.woocommerce, .woocommerce-page, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { color: var(--kfn-text); }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 1.6rem; font-size: .75rem; color: var(--kfn-muted); }
.woocommerce div.product .product_title { font-size: clamp(1.9rem, 3vw, 3.3rem); line-height: 1.08; font-weight: 500; letter-spacing: -.045em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--kfn-text); font-size: 1.3rem; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--kfn-muted); font-size: .9rem; }
.woocommerce div.product div.images { margin-bottom: 2rem; }
.woocommerce div.product div.images .woocommerce-product-gallery__image a { display: block; background: var(--kfn-surface); border-radius: var(--kfn-radius); overflow: hidden; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img:not(.zoomImg) { width: 100%; aspect-ratio: 1/1.12; object-fit: var(--kfn-image-fit, contain); }
body.kfn-image-cover .woocommerce div.product div.images .woocommerce-product-gallery__image img:not(.zoomImg) { object-fit: cover; }
.wp-block-woocommerce-product-gallery .wc-block-product-gallery-large-image img { object-fit: var(--kfn-image-fit, contain); }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .75rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: calc(20% - .52rem); }
.woocommerce div.product div.images .flex-control-thumbs li img { width: 100%; aspect-ratio: 1; object-fit: contain; border: 1px solid transparent; border-radius: var(--kfn-radius); opacity: .65; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { opacity: 1; border-color: var(--kfn-accent); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-block: 1.8rem; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 1rem; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { border: 0; padding: .45rem 0; vertical-align: middle; }
.woocommerce div.product form.cart .variations th { min-width: 6rem; }
.woocommerce div.product form.cart .variations label { font-size: .85rem; }
.woocommerce div.product form.cart .variations select { width:100%; margin:0; box-sizing:border-box; min-height:48px; height:48px; padding-block:0; padding-inline:.9rem 2rem; font-size:.875rem; line-height:normal; vertical-align:middle; }
.woocommerce div.product form.cart .reset_variations { margin-top: .45rem; font-size: .75rem; text-decoration: underline; }
.woocommerce div.product form.cart .single_variation_wrap { width: 100%; }
.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1rem; }
.woocommerce-variation-description { font-size: .875rem; }
.woocommerce .quantity .qty { min-height: 48px; width: 5rem; background: var(--kfn-surface); border-color: var(--kfn-line); }
.woocommerce div.product form.cart div.quantity { margin: 0; float: none; }
.woocommerce div.product form.cart .button { float: none; }
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1; min-width: 10rem; min-height: 48px; }
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce input.button.alt, .woocommerce #respond input#submit.alt { color: var(--kfn-on-accent, #fff); background: var(--kfn-accent); border: 1px solid transparent; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit { padding: .85rem 1.3rem; min-height: 44px; border-radius: var(--kfn-radius); font-size: .85rem; line-height: 1.4; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; text-align: center; }
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover, .woocommerce input.button.alt:hover { background: var(--kfn-accent); color: var(--kfn-on-accent, #fff); filter: brightness(.9); }
.woocommerce div.product .stock { font-size: .8rem; font-weight: 500; }
.woocommerce div.product .in-stock { color: #33734d; }
.woocommerce div.product .out-of-stock { color: #a53131; }
.woocommerce .product_meta { border-top: 1px solid var(--kfn-line); padding-top: 1.25rem; font-size: .75rem; color: var(--kfn-muted); }
.woocommerce .product_meta > span { display: block; margin-top: .4rem; }
.woocommerce div.product .woocommerce-tabs { clear: both; padding-top: 2rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; display: flex; flex-wrap: wrap; gap: 1.5rem; border-bottom: 1px solid var(--kfn-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; margin: 0; padding: .7rem 0; font-size: .9rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; border-bottom-color: var(--kfn-text); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 0; color: inherit; }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 850px; font-size: .95rem; }
.woocommerce div.product .woocommerce-tabs .panel > h2 { font-size: 1.5rem; }
.woocommerce .related.products { margin-top: 4rem; }
.woocommerce .related.products > h2 { margin-bottom: 1.8rem; font-size: clamp(1.6rem, 3vw, 2.5rem); font-weight: 500; }
.woocommerce .star-rating, .woocommerce p.stars a { color: var(--kfn-accent); }
.woocommerce #reviews #comments ol.commentlist { padding: 0; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border-color: var(--kfn-line); border-radius: var(--kfn-radius); padding: 1.25rem; }
.woocommerce #reviews #comments ol.commentlist li img.avatar { border: 0; background: var(--kfn-surface); border-radius: 50%; }
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error { background: var(--kfn-surface); color: var(--kfn-text); border-radius: var(--kfn-radius); font-size: .875rem; padding-block: 1.2rem; }
.woocommerce .woocommerce-message { border-top-color: #33734d; }
.woocommerce .woocommerce-info { border-top-color: var(--kfn-accent); }
.woocommerce .woocommerce-error { border-top-color: #b03b37; }
.woocommerce .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce table.shop_table { width: 100%; border: 1px solid var(--kfn-line); border-radius: var(--kfn-radius); background: var(--kfn-surface); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 1.1rem; border-top-color: var(--kfn-line); }
.woocommerce table.shop_table th { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.woocommerce table.shop_table td { font-size: .875rem; }
.woocommerce table.shop_table td.product-thumbnail img { width: 80px; height: 100px; object-fit: contain; background: var(--kfn-bg); }
.woocommerce a.remove { color: var(--kfn-muted) !important; font-size: 1.3rem; min-width: 28px; min-height: 28px; display: inline-grid; place-items: center; }
.woocommerce a.remove:hover { color: #fff !important; background: #a53131; }
.woocommerce-cart table.cart td.actions .coupon .input-text { min-width: 160px; min-height: 44px; padding: .7rem; margin-inline-end: .5rem; border-color: var(--kfn-line); }
.woocommerce .cart-collaterals { margin-top: 2rem; }
.woocommerce .cart-collaterals .cart_totals { padding: 1.5rem; background: var(--kfn-surface); border: 1px solid var(--kfn-line); border-radius: var(--kfn-radius); }
.woocommerce .cart-collaterals .cart_totals h2 { margin-top: 0; font-size: 1.5rem; }
.woocommerce .cart-collaterals .cart_totals .shop_table { border: 0; }
.woocommerce .cart-collaterals .cart_totals .shop_table th, .woocommerce .cart-collaterals .cart_totals .shop_table td { padding-inline: 0; }
.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button { display: flex; margin-bottom: 0; font-size: .9rem; }
.woocommerce-checkout .woocommerce .col2-set { margin-bottom: 2.5rem; }
.woocommerce .woocommerce-billing-fields h3, .woocommerce .woocommerce-additional-fields h3, .woocommerce #order_review_heading { font-size: 1.5rem; font-weight: 500; }
.woocommerce form .form-row { padding: 0; margin-bottom: 1rem; }
.woocommerce form .form-row label { font-size: .8rem; margin-bottom: .35rem; line-height: 1.6; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { width: 100%; }
.woocommerce form .form-row.woocommerce-invalid label { color: #a53131; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: #a53131; }
.woocommerce .select2-container .select2-selection--single { height: 48px; border-color: var(--kfn-line); background: var(--kfn-surface); border-radius: var(--kfn-radius); }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--kfn-text); line-height: 46px; padding-inline: .9rem; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce-checkout #payment { background: var(--kfn-surface); border: 1px solid var(--kfn-line); border-radius: var(--kfn-radius); }
.woocommerce-checkout #payment ul.payment_methods { border-color: var(--kfn-line); padding: 1.5rem; }
.woocommerce-checkout #payment div.payment_box { color: var(--kfn-text); background: var(--kfn-bg); border-radius: var(--kfn-radius); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--kfn-bg); }
.woocommerce-checkout #payment .place-order { padding: 1.5rem; }
.woocommerce #payment #place_order, .woocommerce-page #payment #place_order { float: none; width: 100%; margin: .5rem 0 0; min-height: 50px; }
.woocommerce .woocommerce-terms-and-conditions-wrapper { font-size: .8rem; }
.woocommerce .woocommerce-privacy-policy-text a, .woocommerce .woocommerce-terms-and-conditions-wrapper a { text-decoration: underline; }
.woocommerce ul.order_details { margin: 1.5rem 0 2.5rem; padding: 1.5rem; background: var(--kfn-surface); border-radius: var(--kfn-radius); display: flex; flex-wrap: wrap; gap: 1.2rem; }
.woocommerce ul.order_details li { float: none; border: 0; margin: 0; padding: 0; min-width: 8rem; }
.woocommerce ul.order_details li strong { margin-top: .3rem; font-size: .95rem; }
.woocommerce .woocommerce-customer-details address { background: var(--kfn-surface); border-color: var(--kfn-line); border-radius: var(--kfn-radius); padding: 1.2rem; font-style: normal; font-size: .875rem; }
.woocommerce-account .woocommerce-MyAccount-navigation { width: 24%; }
.woocommerce-account .woocommerce-MyAccount-content { width: 72%; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: .5rem 0; border: 1px solid var(--kfn-line); border-radius: var(--kfn-radius); background: var(--kfn-surface); }
.woocommerce-MyAccount-navigation a { display: block; padding: .8rem 1rem; font-size: .875rem; }
.woocommerce-MyAccount-navigation .is-active a { font-weight: 650; border-inline-start: 3px solid var(--kfn-accent); background: var(--kfn-bg); }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon { border-color: var(--kfn-line); border-radius: var(--kfn-radius); background: var(--kfn-surface); padding: 1.5rem; }
.woocommerce .woocommerce-Address-title h2, .woocommerce .woocommerce-Address-title h3 { font-size: 1.3rem; }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { max-width: var(--kfn-width); margin-inline: auto; }
.wc-block-components-button:not(.is-link) { min-height: 48px; border-radius: var(--kfn-radius); }
.wc-block-components-button.wp-element-button { color: var(--kfn-on-accent, #fff); background: var(--kfn-accent); }
.wc-block-components-text-input input, .wc-block-components-combobox-control input { font-family: var(--kfn-font); }
.wc-block-components-text-input input[type], .wc-blocks-components-select .wc-blocks-components-select__select { background: var(--kfn-surface); color: var(--kfn-text); border-color: var(--kfn-line); border-radius: var(--kfn-radius); }
.wc-block-components-text-input label, .wc-blocks-components-select label { color: var(--kfn-muted); }
/* Woo's form stylesheet can arrive after theme styles and restore a white
   field surface. Keep foreground and background paired, including dark presets.
   Leave padding, floating-label transforms, validation borders and logic native. */
body.kfn-storefront .wc-block-components-text-input input,
body.kfn-storefront .wc-block-components-combobox-control input,
body.kfn-storefront .wc-blocks-components-select select,
body.kfn-storefront textarea.wc-block-components-textarea,
body.kfn-storefront .wc-block-components-textarea textarea,
body.kfn-storefront .woocommerce form input.input-text,
body.kfn-storefront .woocommerce form textarea,
body.kfn-storefront .woocommerce form select {
  background-color: var(--kfn-surface) !important;
  color: var(--kfn-text) !important;
}
body.kfn-storefront .wc-block-components-text-input input::placeholder,
body.kfn-storefront .wc-block-components-combobox-control input::placeholder,
body.kfn-storefront textarea.wc-block-components-textarea::placeholder,
body.kfn-storefront .wc-block-components-textarea textarea::placeholder,
body.kfn-storefront .woocommerce form input.input-text::placeholder,
body.kfn-storefront .woocommerce form textarea::placeholder {
  color: var(--kfn-muted) !important;
  opacity: 1;
}
body.kfn-storefront .wc-block-components-text-input:not(.has-error) label,
body.kfn-storefront .wc-blocks-components-select:not(.has-error) label {
  color: var(--kfn-muted) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input { border-color: var(--kfn-muted); }
.wc-block-components-checkout-step__title, .wc-block-cart__totals-title { font-weight: 550; letter-spacing: -.025em; }
.wc-block-components-order-summary, .wc-block-components-totals-wrapper, .wc-block-cart-items { border-color: var(--kfn-line); }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { background: var(--kfn-surface); object-fit: contain; border-radius: var(--kfn-radius); }
.wc-block-mini-cart__drawer .wc-block-components-drawer__content { color: var(--kfn-text); background: var(--kfn-bg); }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer { background: var(--kfn-surface); border-top-color: var(--kfn-line); }
.wc-block-mini-cart__drawer .wc-block-components-product-image img { aspect-ratio: 1; object-fit: contain; }
@media (min-width: 960px) { .woocommerce div.product div.images { width: 52%; } .woocommerce div.product div.summary { width: 42%; } }
@media (max-width: 781px) {
  .woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100%; }
  .woocommerce div.product .product_title { font-size: 2rem; }
  .woocommerce div.product .woocommerce-tabs ul.tabs { gap: 1.1rem; }
  .woocommerce div.product .woocommerce-tabs ul.tabs li { font-size: .8rem; }
  .woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; padding: 1rem; }
  .woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: .9rem; }
  .woocommerce table.shop_table_responsive tr { border-bottom: 1px solid var(--kfn-line); }
  .woocommerce table.shop_table_responsive tr td { background: var(--kfn-surface); border-bottom: 0; }
  .woocommerce table.shop_table_responsive tr:nth-child(2n) td { background: var(--kfn-surface); }
  .woocommerce-cart table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: .5rem; }
  .woocommerce-cart table.cart td.actions .coupon .input-text, .woocommerce-cart table.cart td.actions .coupon .button { width: 100%; margin: 0; }
  .woocommerce-cart table.cart td.actions > .button { width: 100%; }
  .woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: 100%; float: none; }
  .woocommerce .col2-set .col-2 { margin-top: 2rem; }
  .woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; }
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 2rem; }
  .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; padding: .5rem; gap: .25rem; }
  .woocommerce-MyAccount-navigation a { padding: .6rem .8rem; font-size: .8rem; border-radius: var(--kfn-radius); }
  .woocommerce-MyAccount-navigation .is-active a { border-inline-start: 0; background: var(--kfn-bg); }
  .woocommerce ul.order_details { display: grid; grid-template-columns: 1fr 1fr; padding: 1.1rem; gap: 1.1rem; }
  .woocommerce ul.order_details li { min-width: 0; overflow-wrap: anywhere; }
  .woocommerce .woocommerce-orders-table { font-size: .8rem; }
  .woocommerce .woocommerce-orders-table a.button { margin: .2rem; font-size: .75rem; }
}
@media (max-width: 420px) { .woocommerce div.product form.cart .quantity .qty { width: 4.2rem; } .woocommerce ul.order_details { grid-template-columns: 1fr; } }

/* Native Woo Block cart: keep every cell and control inside a narrow viewport.
   Page-scoped mobile layout only; no hidden prices, DOM replacement or cart API changes. */
@media(max-width:767px){
 body.kfn-storefront.woocommerce-cart .wc-block-cart table.wc-block-cart-items,
 body.kfn-storefront.woocommerce-cart .wc-block-cart table.wc-block-cart-items tbody{
  display:block;width:100%;max-width:100%;min-width:0
 }
 body.kfn-storefront.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row{
  display:grid;width:100%;min-width:0;grid-template-columns:64px minmax(0,1fr);column-gap:16px;row-gap:12px
 }
 body.kfn-storefront.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image{
  grid-column:1;grid-row:1;min-width:0;padding-right:0
 }
 body.kfn-storefront.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product{
  grid-column:2;grid-row:1;min-width:0;overflow-wrap:anywhere
 }
 body.kfn-storefront.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__quantity{
  grid-column:1/-1;grid-row:2;min-width:0;padding-right:0;flex-wrap:wrap
 }
 body.kfn-storefront.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total{
  grid-column:2;grid-row:3;min-width:0;justify-self:end
 }
 body.kfn-storefront.woocommerce-cart .wc-block-components-notices__snackbar{
  box-sizing:border-box;left:12px;right:12px;width:auto;max-width:calc(100% - 24px)
 }
}
