/**
 * Purchase flow
 *
 * One authoritative layout layer for cart and checkout.  Woo Blocks keeps
 * ownership of data, validation and submission; this file only controls the
 * composition.  Keep payment/provider availability in PHP/Store API.
 */

:root{
  --k4g-commerce-bg:#0b101b;
  --k4g-commerce-head:#1d2737;
  --k4g-commerce-panel:#202a3a;
  --k4g-commerce-panel-strong:#263246;
  --k4g-commerce-row:#222d3e;
  --k4g-commerce-line:#344156;
  --k4g-commerce-copy:#f6f7fb;
  --k4g-commerce-muted:#a3adbd;
  --k4g-commerce-green:#45d344;
  --k4g-commerce-violet:#9b58eb;
}

body.woocommerce-cart,
body.woocommerce-checkout:not(.woocommerce-order-received){background:var(--k4g-commerce-bg)}

body.k4g-payment-context-pending .cur-opt,
body.k4g-payment-context-pending [data-k4g-currency-select],
body.k4g-payment-context-pending [aria-controls="k4g-cur-menu"]{
  pointer-events:none!important;
  opacity:.5!important;
}

body.woocommerce-cart .site-header,
body.woocommerce-checkout:not(.woocommerce-order-received) .site-header{
  position:sticky;
  z-index:80;
  top:0;
  border-bottom:1px solid rgba(255,255,255,.045);
  background:var(--k4g-commerce-head);
}

body.woocommerce-cart .legal-wrap,
body.woocommerce-checkout .legal-wrap{
  box-sizing:border-box;
  width:min(1140px,calc(100% - 32px));
  max-width:1140px;
  margin-inline:auto;
  padding-inline:0!important;
}

/* ------------------------------ Cart ------------------------------ */

@media (min-width:960px){
  body.woocommerce-cart .wc-block-components-sidebar-layout.wc-block-cart{
    display:grid!important;
    grid-template-columns:minmax(0,810px) minmax(280px,300px)!important;
    gap:30px!important;
  }
  body.woocommerce-cart .wc-block-cart__sidebar{position:sticky!important;top:94px!important}
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image{
    width:316px!important;
    padding:20px 0 20px 20px!important;
  }
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image>a{
    width:300px!important;
    height:150px!important;
  }
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image img{
    width:300px!important;
    height:150px!important;
    object-fit:contain!important;
    background:#111827;
  }
}

body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items){
  padding:0!important;
  border:1px solid var(--k4g-commerce-line)!important;
  border-radius:12px!important;
  background:var(--k4g-commerce-panel)!important;
  box-shadow:none!important;
}
body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-items__row{
  min-height:190px!important;
}
body.woocommerce-cart .wc-block-cart__sidebar.wc-block-components-sidebar{
  padding:20px!important;
  border:1px solid var(--k4g-commerce-line)!important;
  border-radius:12px!important;
  background:var(--k4g-commerce-panel-strong)!important;
  box-shadow:none!important;
}

/* ---------------------------- Checkout ---------------------------- */

body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout{
  align-items:start;
}
@media (min-width:960px){
  body.woocommerce-checkout .legal-wrap{padding-top:9px!important}
  body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout{
    display:grid!important;
    grid-template-columns:minmax(0,750px) minmax(0,360px)!important;
    gap:30px!important;
  }
  body.woocommerce-checkout .wc-block-checkout__main,
  body.woocommerce-checkout .wc-block-checkout__sidebar{
    width:auto!important;
    max-width:none!important;
    margin:0!important;
  }
  body.woocommerce-checkout .wc-block-checkout__sidebar{
    position:sticky!important;
    top:94px!important;
  }
}

body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__form{
  min-width:0;
}
body.woocommerce-checkout .wc-block-checkout__form{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:20px 0;
}
body.woocommerce-checkout .wc-block-checkout__form>
  .wp-block-woocommerce-checkout-shipping-method-block,
body.woocommerce-checkout .wc-block-checkout__form>
  .wp-block-woocommerce-checkout-pickup-options-block,
body.woocommerce-checkout .wc-block-checkout__form>.wc-block-checkout__order-notes{
  display:none!important;
}
body.woocommerce-checkout #payment-method{
  grid-column:1/-1;
  grid-row:1;
  margin:0!important;
}
body.woocommerce-checkout #contact-fields{
  grid-column:1/-1;
  grid-row:2;
}
body.woocommerce-checkout #billing-fields{
  display:none!important;
}
body.woocommerce-checkout #order-fields{
  grid-column:1/-1;
  grid-row:3;
}
body.woocommerce-checkout .k4g-checkout-policy-links{
  grid-column:1/-1;
  grid-row:4;
}
body.woocommerce-checkout .wc-block-checkout__terms{
  grid-column:1/-1;
  grid-row:5;
}
body.woocommerce-checkout .wc-block-checkout__actions{
  grid-column:1/-1;
  grid-row:6;
}

/* Payment is the page's primary decision, matching the reference hierarchy. */
body.woocommerce-checkout #payment-method .wc-block-components-checkout-step__heading{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  padding:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  white-space:nowrap!important;
}
body.woocommerce-checkout #payment-method .wc-block-components-checkout-step__content{
  margin:0!important;
  padding:0!important;
}
body.woocommerce-checkout #payment-method .wc-block-components-radio-control{
  max-height:520px;
  box-sizing:border-box;
  padding:0 4px 0 0!important;
  overflow-y:auto;
  overscroll-behavior:contain;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  scrollbar-color:#6b778a transparent;
  scrollbar-width:thin;
}
body.woocommerce-checkout .k4g-payment-tools{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:20px!important;
  margin:0 0 20px!important;
}
body.woocommerce-checkout .k4g-payment-tools--region-only{
  grid-template-columns:minmax(0,1fr)!important;
}
body.woocommerce-checkout .k4g-payment-empty[hidden]{display:none!important}
body.woocommerce-checkout .k4g-payment-search,
body.woocommerce-checkout .k4g-payment-region{
  min-height:54px!important;
  border:0!important;
  border-radius:10px!important;
  background:var(--k4g-commerce-panel)!important;
}
body.woocommerce-checkout .k4g-payment-region-control{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  color:#fff!important;
  font-size:14px!important;
}
body.woocommerce-checkout .k4g-payment-region-flag{
  display:grid;
  flex:0 0 24px;
  width:24px;
  height:24px;
  place-items:center;
  overflow:hidden;
  border-radius:50%;
  background:#334055;
  font-size:17px;
  line-height:1;
}
body.woocommerce-checkout .k4g-payment-filter-status{
  grid-column:1/-1;
  margin:-10px 0 0;
  color:#ffb4b4;
  font-size:12px;
}
body.woocommerce-checkout .k4g-payment-security{
  min-height:34px;
  box-sizing:border-box;
  margin:0 0 20px!important;
  padding:7px 14px!important;
  border:0!important;
  border-radius:4px!important;
  background:var(--k4g-commerce-panel)!important;
}
body.woocommerce-checkout .k4g-payment-total-truth{
  display:grid;
  gap:5px;
  box-sizing:border-box;
  margin:0 0 14px!important;
  padding:12px 14px!important;
  border:1px solid var(--k4g-commerce-line)!important;
  border-radius:10px!important;
  background:var(--k4g-commerce-panel)!important;
}
body.woocommerce-checkout .k4g-payment-total-truth[hidden]{display:none!important}
body.woocommerce-checkout .k4g-payment-total-summary{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  min-width:0;
}
body.woocommerce-checkout .k4g-payment-total-label{
  color:#fff;
  font-size:13px;
  font-weight:700;
  line-height:1.35;
}
body.woocommerce-checkout .k4g-payment-total-value{
  flex:none;
  color:#fff;
  font-size:19px;
  font-weight:800;
  line-height:1.2;
}
body.woocommerce-checkout .k4g-payment-total-provider,
body.woocommerce-checkout .k4g-payment-fee-disclosure{
  margin:0!important;
  color:var(--k4g-commerce-muted)!important;
  font-size:11.5px!important;
  line-height:1.4!important;
}
body.woocommerce-checkout .k4g-payment-total-provider{
  color:#cfd7e5!important;
  font-weight:700!important;
}
body.woocommerce-checkout .k4g-payment-option{
  position:relative!important;
  overflow:hidden!important;
  min-height:60px!important;
  margin:0 0 5px!important;
  border:0!important;
  border-radius:10px!important;
  background:var(--k4g-commerce-row)!important;
  box-shadow:none!important;
}
body.woocommerce-checkout .k4g-payment-option:has(:checked){
  border:0!important;
  background:#2c394c!important;
  box-shadow:none!important;
}
/* Selection is a durable state, not a hover/focus effect. One checked row owns
   one green leading strip and one visible radio marker, including after Woo
   remounts the payment-method subtree. */
body.woocommerce-checkout .k4g-payment-option:has(:checked)::before{
  content:"";
  position:absolute;
  z-index:2;
  inset-block:8px;
  inset-inline-start:0;
  width:4px;
  border-radius:0 3px 3px 0;
  background:var(--k4g-commerce-green);
  pointer-events:none;
}
html[dir="rtl"] body.woocommerce-checkout .k4g-payment-option:has(:checked)::before{
  border-radius:3px 0 0 3px;
}
body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control__input{
  position:absolute!important;
  z-index:3!important;
  top:50%!important;
  right:auto!important;
  left:auto!important;
  inset-inline-start:13px!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  min-height:20px!important;
  max-width:20px!important;
  max-height:20px!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  clip:auto!important;
  clip-path:none!important;
  opacity:1!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  border:2px solid #8994a6!important;
  border-radius:50%!important;
  outline:0!important;
  background:#181d31!important;
  box-shadow:none!important;
  transform:translateY(-50%)!important;
  cursor:pointer!important;
}
body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control__input:checked{
  border-color:var(--k4g-commerce-green)!important;
  background:var(--k4g-commerce-green)!important;
  box-shadow:inset 0 0 0 4px #181d31!important;
}
body.woocommerce-checkout .k4g-payment-option>.wc-block-components-radio-control__option{
  min-height:58px!important;
  padding-block:8px!important;
}
body.woocommerce-checkout .k4g-gateway-mark{
  flex-basis:var(--k4g-payment-mark-width)!important;
  width:var(--k4g-payment-mark-width)!important;
  height:var(--k4g-payment-mark-height)!important;
  min-height:var(--k4g-payment-mark-height)!important;
  border-radius:7px!important;
}
body.woocommerce-checkout .k4g-gateway-mark img{
  display:block;
  width:auto!important;
  max-width:var(--k4g-payment-logo-max-width)!important;
  height:auto!important;
  max-height:var(--k4g-payment-logo-max-height)!important;
  margin:auto!important;
  object-fit:contain;
  object-position:center;
}
@media (min-width:641px){
  /* The final amount has one owner above the list. Method rows carry only a
     non-numeric external-fee status, so switching methods cannot imply a quote. */
  body.woocommerce-checkout .k4g-payment-option{padding-inline:0!important}
  body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control__option-layout{
    padding-inline-start:44px!important;
  }
  body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control__label{
    display:grid!important;
    grid-template-columns:var(--k4g-payment-mark-width) minmax(0,1fr) max-content max-content!important;
    align-items:center!important;
    gap:12px!important;
    width:100%!important;
  }
  body.woocommerce-checkout .k4g-payment-option .k4g-gateway-mark{
    grid-column:1!important;
    grid-row:1!important;
    margin:0!important;
  }
  body.woocommerce-checkout .k4g-payment-option .k4g-gateway-name{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  body.woocommerce-checkout .k4g-payment-option .k4g-gateway-badge{
    grid-column:3!important;
    grid-row:1!important;
    margin:0!important;
  }
  body.woocommerce-checkout .k4g-payment-option .k4g-method-fee-note{
    position:static!important;
    grid-column:4!important;
    grid-row:1!important;
    justify-self:end!important;
    max-width:150px!important;
    transform:none!important;
    color:var(--k4g-commerce-muted)!important;
    font-size:11px!important;
    font-weight:600!important;
    line-height:1.25!important;
    text-align:end!important;
  }
}
body.woocommerce-checkout .k4g-payment-filter-close,
body.woocommerce-checkout .k4g-payment-filter-title,
body.woocommerce-checkout .k4g-payment-filter-actions,
body.woocommerce-checkout .k4g-payment-mobile-bar{display:none}

/* Email is the only required guest contact for delivery and order recovery. */
body.woocommerce-checkout #contact-fields{
  min-width:0;
  margin:0!important;
  padding:14px!important;
  border:1px solid var(--k4g-commerce-line)!important;
  border-radius:10px!important;
  background:rgba(32,42,58,.72)!important;
}
body.woocommerce-checkout #contact-fields .wc-block-components-checkout-step__heading{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
}
body.woocommerce-checkout #contact-fields .wc-block-components-checkout-step__content{
  margin:0!important;
  padding:0!important;
}
body.woocommerce-checkout #wc-guest-checkout-notice{display:none!important}
body.woocommerce-checkout #contact-fields .wc-block-components-text-input{
  margin:0!important;
}

/* Compact legal confirmation; no third oversized Woo card. */
body.woocommerce-checkout #order-fields{
  margin:0!important;
  padding:14px 16px!important;
  border:0!important;
  border-radius:10px!important;
  background:rgba(32,42,58,.56)!important;
}
body.woocommerce-checkout #order-fields .wc-block-components-checkout-step__heading{display:none!important}
body.woocommerce-checkout #order-fields .wc-block-components-checkout-step__content{
  margin:0!important;
  padding:0!important;
}
body.woocommerce-checkout #order-fields .wc-block-components-address-form{
  gap:10px!important;
}
body.woocommerce-checkout .k4g-checkout-policy-links{
  margin:-12px 0 0!important;
}
body.woocommerce-checkout .wc-block-checkout__terms:not(:has(input,select,textarea,button)){
  display:none!important;
}
body.woocommerce-checkout .wc-block-checkout__terms:has(input,select,textarea,button){
  margin:-12px 0 0!important;
  padding:0!important;
  border:0!important;
  color:var(--k4g-commerce-muted)!important;
  font-size:11.5px!important;
}

/* Sidebar order: totals -> coupon -> action -> large product showcase. */
body.woocommerce-checkout .wc-block-checkout__sidebar{
  padding:0!important;
  overflow:hidden!important;
  border:1px solid var(--k4g-commerce-line)!important;
  border-radius:12px!important;
  background:var(--k4g-commerce-panel-strong)!important;
  box-shadow:none!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar{
  display:flex!important;
  flex-direction:column!important;
}
body.woocommerce-checkout .k4g-checkout-total-title{order:1;padding:18px 20px 10px!important}
body.woocommerce-checkout .wc-block-checkout__sidebar>.wc-block-components-notices,
body.woocommerce-checkout .wc-block-checkout__sidebar>.wc-block-components-notices__snackbar{order:2}
body.woocommerce-checkout .wc-block-checkout__sidebar>.wp-block-woocommerce-checkout-order-summary-block,
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__content{
  display:contents!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title{display:none!important}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block{
  order:3;
  padding:0 20px!important;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content>
  .wc-block-components-totals-wrapper:not(.wp-block-woocommerce-checkout-order-summary-cart-items-block):not(.wp-block-woocommerce-checkout-order-summary-coupon-form-block){
  order:4;
  padding:0 20px!important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block{
  order:5;
  margin:0!important;
  padding:8px 20px 14px!important;
  border:0!important;
}
body.woocommerce-checkout .k4g-checkout-sidebar-action{
  order:6;
  padding:0 20px 16px!important;
  background:transparent!important;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-cart-items-block{
  order:7;
  margin:0!important;
  padding:0 20px 20px!important;
  border:0!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-totals-footer-item{
  margin:0!important;
  padding:14px 0!important;
  border-top:1px solid var(--k4g-commerce-line)!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary{
  max-height:520px!important;
  overflow-y:auto!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary:focus{
  outline:2px solid var(--violet,#8b5cf6);
  outline-offset:-2px;
}
/* A multi-product checkout must not switch card language after the first row.
   The previous first-child showcase plus compact remainder is the exact mixed
   hierarchy the customer rejected. Keep every item as the same truthful
   product showcase inside the already bounded summary scroller. */
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item{
  position:relative;
  display:block!important;
  margin:8px 0 0!important;
  padding:0 0 10px!important;
  overflow:hidden;
  border-radius:9px!important;
  background:#151c29!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:first-child{
  margin-top:0!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:not(:first-child){
  display:block!important;
  grid-template-columns:none!important;
  gap:0!important;
  margin:8px 0 0!important;
  padding:0 0 10px!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item
  .wc-block-components-order-summary-item__image{
  display:block!important;
  flex:0 0 100%!important;
  align-self:stretch!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:not(:first-child)
  .wc-block-components-order-summary-item__image{
  display:block!important;
  width:100%!important;
  min-width:100%!important;
  max-width:none!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item
  .wc-block-components-order-summary-item__image img{
  display:block;
  width:100%!important;
  min-width:100%!important;
  max-width:none!important;
  height:164px!important;
  border:0!important;
  border-radius:0!important;
  object-fit:contain!important;
  background:#111827;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:not(:first-child)
  .wc-block-components-order-summary-item__image img{
  width:100%!important;
  min-width:100%!important;
  max-width:none!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item
  .wc-block-components-order-summary-item__quantity{
  top:10px!important;
  left:10px!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item
  .wc-block-components-order-summary-item__description{
  display:block!important;
  padding:12px 12px 0!important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item
  .wc-block-components-order-summary-item__total-price{
  position:absolute!important;
  z-index:2;
  top:126px!important;
  right:10px!important;
  padding:4px 8px;
  border-radius:6px;
  background:rgba(8,12,20,.78);
  color:#fff!important;
}

body.woocommerce-checkout.k4g-account-contact-ready.k4g-account-billing-ready .k4g-checkout-account{
  grid-column:1/-1;
  grid-row:2;
  margin:0!important;
}
body.woocommerce-checkout.k4g-account-contact-ready.k4g-account-billing-ready #order-fields{grid-row:3}
body.woocommerce-checkout.k4g-account-contact-ready.k4g-account-billing-ready .k4g-checkout-policy-links{grid-row:4}
body.woocommerce-checkout.k4g-account-contact-ready.k4g-account-billing-ready .wc-block-checkout__terms{grid-row:5}
body.woocommerce-checkout.k4g-account-contact-ready.k4g-account-billing-ready .wc-block-checkout__actions{grid-row:6}

/* ------------------------- Narrow checkout ------------------------- */

@media (max-width:959px){
  body.woocommerce-checkout .legal-wrap,
  body.woocommerce-cart .legal-wrap{width:min(100% - 24px,720px)}
  body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout{
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
  }
  body.woocommerce-checkout .wc-block-checkout__main,
  body.woocommerce-checkout .wc-block-checkout__sidebar{width:100%!important}
  body.woocommerce-checkout .wc-block-checkout__main{order:1!important}
  body.woocommerce-checkout .wc-block-checkout__sidebar{order:2!important}
  body.woocommerce-checkout .wc-block-checkout__form{
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
  }
  body.woocommerce-checkout #payment-method{order:1}
  body.woocommerce-checkout .k4g-checkout-account{order:2!important}
  body.woocommerce-checkout #contact-fields{order:2}
  body.woocommerce-checkout #order-fields{order:4}
  body.woocommerce-checkout .k4g-checkout-policy-links{order:5}
  body.woocommerce-checkout .wc-block-checkout__terms{order:6}
  body.woocommerce-checkout .wc-block-checkout__actions{order:7}
  body.woocommerce-checkout #contact-fields{
    width:100%;
    box-sizing:border-box;
    border:1px solid var(--k4g-commerce-line)!important;
    border-radius:10px!important;
  }
  body.woocommerce-checkout .wc-block-checkout__sidebar{position:static!important}
}

@media (min-width:641px) and (max-width:959px){
  body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:first-child
    .wc-block-components-order-summary-item__image img,
  body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:not(:first-child)
    .wc-block-components-order-summary-item__image img{
    height:auto!important;
    aspect-ratio:2/1;
  }
  body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:first-child
    .wc-block-components-order-summary-item__total-price,
  body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item:not(:first-child)
    .wc-block-components-order-summary-item__total-price{
    top:calc(min(50vw - 12px,360px) - 39px)!important;
  }
}

@media (max-width:640px){
  body.woocommerce-checkout{
    padding-bottom:calc(28px + env(safe-area-inset-bottom))!important;
  }
  body.woocommerce-checkout .legal-wrap{
    width:calc(100% - 24px);
    padding-top:14px!important;
  }
  /* Woo renders duplicate responsive summaries. Keep the compact payment-first
     flow and one in-flow decision panel; checkout must never have a fixed CTA. */
  body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block.checkout-order-summary-block-fill-wrapper,
  body.woocommerce-checkout .wc-block-checkout__sidebar{
    display:none!important;
  }
  /* Keep the compact progress rail on checkout, matching cart and Difmark.
     Labels remain available to assistive technology while the narrow visual
     uses only the three unambiguous status dots. */
  body.woocommerce-cart .site-header .hbar>.k4g-steps .k4g-step-label,
  body.woocommerce-checkout .site-header .hbar>.k4g-steps .k4g-step-label{
    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;
  }
  body.woocommerce-checkout #payment-method .wc-block-components-radio-control{
    max-height:none;
    padding:0!important;
    overflow:visible;
  }
  body.woocommerce-checkout .k4g-payment-mobile-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:44px;
    margin:0 0 8px;
  }
  body.woocommerce-checkout .k4g-payment-back{
    color:#eef2f8;
    font-size:13px;
    font-weight:700;
  }
  body.woocommerce-checkout .k4g-payment-back::before{content:'\2190';margin-right:8px}
  html[dir="rtl"] body.woocommerce-checkout .k4g-payment-back::before{content:'\2192';margin:0 0 0 8px}
  body.woocommerce-checkout .k4g-payment-filter-toggle{
    display:grid;
    width:44px;
    height:44px;
    place-items:center;
    border:0;
    border-radius:9px;
    background:transparent;
  }
  body.woocommerce-checkout .k4g-payment-filter-toggle>svg{
    display:block;
    width:21px;
    height:21px;
    color:#d9e0ea;
  }
  body.woocommerce-checkout .k4g-payment-tools{
    display:none!important;
    position:fixed;
    z-index:210;
    inset:0;
    grid-template-columns:1fr!important;
    align-content:start;
    gap:12px!important;
    margin:0!important;
    padding:78px 18px calc(164px + env(safe-area-inset-bottom));
    background:#151d2a;
  }
  body.woocommerce-checkout.k4g-payment-filters-open .site-main{z-index:90}
  body.woocommerce-checkout.k4g-payment-filters-open .k4g-consent{
    visibility:hidden!important;
    pointer-events:none!important;
  }
  /* Cart and checkout are deliberately focused payment flows. The signed-in
     LiveChat launcher otherwise covers a product row or the in-flow decision
     on short phones; support remains reachable outside these two routes. */
  body.woocommerce-cart #chat-widget-container,
  body.woocommerce-checkout #chat-widget-container{display:none!important}
  body.woocommerce-checkout.k4g-payment-filters-open{overflow:hidden}
  body.woocommerce-checkout.k4g-payment-filters-open .k4g-payment-tools{display:grid!important}
  body.woocommerce-checkout .k4g-payment-filter-title{
    position:absolute;
    top:23px;
    left:18px;
    display:block;
    margin:0;
    color:#fff;
    font-size:20px;
    line-height:32px;
  }
  html[dir="rtl"] body.woocommerce-checkout .k4g-payment-filter-title{right:18px;left:auto}
  body.woocommerce-checkout .k4g-payment-filter-close{
    position:absolute;
    display:grid;
    top:16px;
    right:18px;
    width:44px;
    height:44px;
    place-items:center;
    border:1px solid var(--k4g-commerce-line);
    border-radius:9px;
    background:var(--k4g-commerce-panel);
    color:#fff;
    font-size:26px;
  }
  html[dir="rtl"] body.woocommerce-checkout .k4g-payment-filter-close{right:auto;left:18px}
  body.woocommerce-checkout .k4g-payment-filter-actions{
    position:absolute;
    display:grid;
    right:18px;
    bottom:calc(18px + env(safe-area-inset-bottom));
    left:18px;
    gap:10px;
  }
  body.woocommerce-checkout .k4g-payment-filter-apply,
  body.woocommerce-checkout .k4g-payment-filter-clear{
    display:block;
    width:100%;
    min-height:54px;
    border:0;
    border-radius:9px;
    color:#fff;
    font:800 16px/1.25 'Inter',sans-serif;
    letter-spacing:.01em;
    cursor:pointer;
  }
  body.woocommerce-checkout .k4g-payment-filter-apply{
    background:var(--k4g-commerce-green);
    color:#07130a;
    box-shadow:0 12px 28px -16px rgba(69,211,68,.72);
  }
  body.woocommerce-checkout .k4g-payment-filter-clear{
    border:1px solid #56647a;
    background:#354156;
    color:#fff;
  }
  body.woocommerce-checkout .k4g-payment-filter-status{
    position:absolute;
    right:18px;
    bottom:calc(142px + env(safe-area-inset-bottom));
    left:18px;
    margin:0;
  }
  body.woocommerce-checkout .k4g-payment-tools--region-only .k4g-payment-search{display:flex!important}
  body.woocommerce-checkout .k4g-payment-region-control{gap:10px}
  body.woocommerce-checkout .k4g-payment-region-flag{flex-basis:28px;width:28px;height:28px;font-size:19px}
  html[dir="rtl"] body.woocommerce-checkout .k4g-payment-region{padding:7px 15px 7px 38px!important}
  html[dir="rtl"] body.woocommerce-checkout .k4g-payment-region::after{right:auto;left:16px}
  /* Difmark's mobile payment screen starts with the method cards. The desktop
     trust strip remains above the list, but duplicating it here wastes the
     small first viewport and looks like another selectable method. */
  body.woocommerce-checkout .k4g-payment-security{display:none!important}
  body.woocommerce-checkout .k4g-payment-option{
    min-height:126px!important;
    padding:0!important;
    background:linear-gradient(to bottom,#263246 0 61px,#202a3a 61px 100%)!important;
  }
  body.woocommerce-checkout .k4g-payment-option:has(:checked){
    border:0!important;
    background:linear-gradient(to bottom,#303e53 0 61px,#293649 61px 100%)!important;
    box-shadow:none!important;
  }
  html[dir="rtl"] body.woocommerce-checkout .k4g-payment-option{padding:0!important}
  body.woocommerce-checkout .k4g-payment-option>.wc-block-components-radio-control__option{
    min-height:124px!important;
    padding:0!important;
    border:0!important;
  }
  body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control__input{
    position:absolute!important;
    top:20px!important;
    right:auto!important;
    left:auto!important;
    inset-inline-start:auto!important;
    inset-inline-end:14px!important;
    transform:none!important;
  }
  body.woocommerce-checkout .k4g-payment-option:has(.wc-block-components-radio-control__input:focus-visible){
    outline:2px solid #b77aff!important;
    outline-offset:2px!important;
  }
  body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control__option-layout{
    width:100%!important;
    min-height:124px!important;
    padding:0!important;
  }
  body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control__label{
    display:grid!important;
    grid-template-columns:var(--k4g-payment-mark-width) minmax(0,1fr)!important;
    grid-template-rows:48px auto auto!important;
    align-items:center!important;
    gap:7px 12px!important;
    min-height:124px!important;
    box-sizing:border-box!important;
    padding:10px 14px 12px!important;
  }
  body.woocommerce-checkout .k4g-gateway-mark{
    grid-column:1!important;
    grid-row:1!important;
    width:var(--k4g-payment-mark-width)!important;
    height:var(--k4g-payment-mark-height)!important;
    min-height:var(--k4g-payment-mark-height)!important;
  }
  body.woocommerce-checkout .k4g-payment-option .k4g-gateway-name{
    grid-column:1/-1!important;
    grid-row:2!important;
    display:block!important;
    min-width:0!important;
    overflow:hidden!important;
    color:#fff!important;
    font-size:13.5px!important;
    font-weight:700!important;
    line-height:1.25!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  body.woocommerce-checkout .k4g-gateway-badge{
    grid-column:1/-1!important;
    grid-row:3!important;
    display:block!important;
    width:max-content!important;
    margin:0!important;
  }
  body.woocommerce-checkout .k4g-method-fee-note{
    position:static!important;
    grid-column:2!important;
    grid-row:1!important;
    justify-self:start!important;
    max-width:100%!important;
    transform:none!important;
    color:var(--k4g-commerce-muted)!important;
    font-size:11px!important;
    font-weight:600!important;
    line-height:1.25!important;
  }
  html[dir="rtl"] body.woocommerce-checkout .k4g-method-fee-note{right:auto!important;left:auto!important}
  body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control-accordion-content,
  body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control__description,
  body.woocommerce-checkout .k4g-payment-option .wc-block-components-radio-control__secondary-description{
    display:none!important;
  }
  body.woocommerce-checkout .k4g-payment-option:has(:checked) .wc-block-components-radio-control-accordion-content{
    display:block!important;
    padding:0 14px 14px!important;
    color:var(--k4g-commerce-muted)!important;
    font-size:12px!important;
  }
  body.woocommerce-checkout .k4g-checkout-mobile-action{
    position:static!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    width:100%!important;
    margin:0!important;
    padding:12px!important;
    border:1px solid var(--k4g-commerce-line)!important;
    border-radius:10px!important;
    background:var(--k4g-commerce-panel-strong)!important;
    box-shadow:none!important;
  }
  body.k4g-consent-open.woocommerce-cart .k4g-consent{bottom:calc(174px + env(safe-area-inset-bottom))!important}
  body.woocommerce-checkout .k4g-mobile-action-handle{
    display:none;
  }
  body.woocommerce-checkout .k4g-mobile-total-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#fff;
    font-size:13px;
  }
  body.woocommerce-checkout .k4g-mobile-total-row strong{font-size:19px}
  body.woocommerce-checkout .k4g-mobile-confirm-pay{min-height:50px!important}
  body.woocommerce-checkout .k4g-checkout-mobile-action .k4g-checkout-action-note{
    display:block!important;
    margin:0!important;
    color:var(--k4g-commerce-muted)!important;
    font-size:11px!important;
    text-align:center!important;
  }
  body.woocommerce-checkout .wc-block-checkout__sidebar .k4g-checkout-sidebar-action{display:none!important}
  body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary-item
    .wc-block-components-order-summary-item__image img{height:auto!important;aspect-ratio:2/1}

  body.woocommerce-cart{padding-bottom:calc(198px + env(safe-area-inset-bottom))!important}
  body.woocommerce-cart .wc-block-cart__main{
    max-height:calc(100dvh - 292px - env(safe-area-inset-bottom))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain;
    scrollbar-gutter:stable;
  }
  body.woocommerce-cart .wc-block-cart__sidebar{
    position:fixed!important;
    z-index:150!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:auto!important;
    margin:0!important;
    grid-template-columns:1fr!important;
    align-content:start!important;
    gap:10px!important;
    min-height:154px!important;
    box-sizing:border-box!important;
    padding:12px 16px calc(16px + env(safe-area-inset-bottom))!important;
    border:0!important;
    border-top:1px solid var(--k4g-commerce-line)!important;
    border-radius:0!important;
    background:rgba(29,39,55,.985)!important;
  }
  body.woocommerce-cart .wc-block-cart__sidebar::before{
    content:'';
    grid-column:1/-1;
    width:42px;
    height:4px;
    margin:-4px auto 0;
    border-radius:999px;
    background:#657186;
  }
  body.woocommerce-cart .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block,
  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__submit,
  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__submit-container{
    display:block!important;
    width:100%!important;
    margin:0!important;
  }
  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-footer-item{
    width:100%!important;
    min-height:30px!important;
  }
  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
  }
  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__submit-container .wc-block-components-button{
    width:100%!important;
    min-height:54px!important;
  }
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-items__row{
    min-height:150px!important;
    grid-template-columns:126px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:10px!important;
  }
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image,
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image>a{
    grid-column:1!important;
    grid-row:1!important;
    width:126px!important;
    height:63px!important;
  }
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image img{
    width:126px!important;
    height:63px!important;
    object-fit:contain!important;
    background:#111827;
  }
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__product{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
  }
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__total{
    grid-column:2!important;
    grid-row:2!important;
    justify-self:end!important;
    align-self:end!important;
    width:auto!important;
    min-width:0!important;
    padding:4px 0 0!important;
  }
}

/* One terminal-action contract across the drawer's sibling Woo surfaces.
   Responsive layout may move an action, but must not silently restyle it. */
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:not(.is-link),
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .k4g-confirm-pay,
body.woocommerce-checkout .k4g-mobile-confirm-pay,
body.woocommerce-checkout .woocommerce #place_order{
  display:flex!important;
  width:100%!important;
  min-height:var(--k4g-checkout-action-height)!important;
  box-sizing:border-box!important;
  align-items:center!important;
  justify-content:center!important;
  padding:var(--k4g-checkout-action-padding)!important;
  border:0!important;
  border-radius:var(--k4g-checkout-action-radius)!important;
  background:var(--k4g-checkout-action-bg)!important;
  background-image:none!important;
  box-shadow:var(--k4g-checkout-action-shadow)!important;
  color:var(--k4g-checkout-action-text)!important;
  font:600 14px/1.2 'Inter',sans-serif!important;
  text-transform:none!important;
  transform:none!important;
  cursor:pointer!important;
  transition:filter .18s ease,opacity .18s ease!important;
}
/* Woo renders the cart/checkout label inside its own span and older component
   CSS colors that span white. Own the rendered label as well as the button so
   all enabled terminal actions keep the same dark text and typography. */
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:not(.is-link) .wc-block-components-button__text,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button .wc-block-components-button__text,
body.woocommerce-checkout .k4g-confirm-pay .wc-block-components-button__text,
body.woocommerce-checkout .k4g-mobile-confirm-pay .wc-block-components-button__text,
body.woocommerce-checkout .woocommerce #place_order .wc-block-components-button__text{
  color:inherit!important;
  font:inherit!important;
  line-height:inherit!important;
  text-transform:inherit!important;
  text-shadow:none!important;
}
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:not(.is-link):hover:not(:disabled),
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover:not(:disabled),
body.woocommerce-checkout .k4g-confirm-pay:hover:not(:disabled),
body.woocommerce-checkout .k4g-mobile-confirm-pay:hover:not(:disabled),
body.woocommerce-checkout .woocommerce #place_order:hover:not(:disabled){filter:brightness(.94)!important;transform:none!important}
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:not(.is-link):active:not(:disabled),
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:active:not(:disabled),
body.woocommerce-checkout .k4g-confirm-pay:active:not(:disabled),
body.woocommerce-checkout .k4g-mobile-confirm-pay:active:not(:disabled),
body.woocommerce-checkout .woocommerce #place_order:active:not(:disabled){filter:brightness(.88)!important;transform:none!important}
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:not(.is-link):focus-visible,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus-visible,
body.woocommerce-checkout .k4g-confirm-pay:focus-visible,
body.woocommerce-checkout .k4g-mobile-confirm-pay:focus-visible,
body.woocommerce-checkout .woocommerce #place_order:focus-visible{
  outline:2px solid #fff!important;outline-offset:3px!important
}
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:not(.is-link):disabled,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button[aria-disabled="true"],
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:disabled,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button[aria-disabled="true"],
body.woocommerce-checkout .k4g-confirm-pay:disabled,
body.woocommerce-checkout .k4g-mobile-confirm-pay:disabled,
body.woocommerce-checkout .woocommerce #place_order:disabled{
  background:var(--k4g-checkout-action-disabled-bg)!important;
  background-image:none!important;
  box-shadow:none!important;
  color:var(--k4g-checkout-action-disabled-text)!important;
  opacity:.74!important;
  cursor:not-allowed!important;
  filter:none!important;
}

@media (max-width:360px){
  body.woocommerce-checkout .legal-wrap,
  body.woocommerce-cart .legal-wrap{width:calc(100% - 20px)}
  body.woocommerce-checkout .k4g-payment-option,
  html[dir="rtl"] body.woocommerce-checkout .k4g-payment-option{padding:0!important}
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-items__row{
    grid-template-columns:112px minmax(0,1fr)!important;
  }
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image,
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image>a,
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image img{
    width:112px!important;
  }
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image,
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image>a,
  body.woocommerce-cart table.wc-block-cart-items:not(.wc-block-mini-cart-items) .wc-block-cart-item__image img{
    height:56px!important;
  }
}

/* A phone rotated to landscape has less vertical space than the standard
   mobile reference. Keep both filter controls and both decisions reachable,
   and retain a real scroll viewport above the cart dock. */
@media (max-width:640px) and (max-height:480px){
  body.woocommerce-checkout .k4g-payment-tools{
    gap:6px!important;
    overflow-y:auto;
    padding:58px 14px calc(112px + env(safe-area-inset-bottom));
  }
  body.woocommerce-checkout .k4g-payment-filter-title{top:9px;left:14px}
  html[dir="rtl"] body.woocommerce-checkout .k4g-payment-filter-title{right:14px;left:auto}
  body.woocommerce-checkout .k4g-payment-filter-close{top:6px;right:14px}
  html[dir="rtl"] body.woocommerce-checkout .k4g-payment-filter-close{right:auto;left:14px}
  body.woocommerce-checkout .k4g-payment-search,
  body.woocommerce-checkout .k4g-payment-region{min-height:48px!important}
  body.woocommerce-checkout .k4g-payment-filter-actions{
    right:14px;
    bottom:calc(8px + env(safe-area-inset-bottom));
    left:14px;
    gap:6px;
  }
  body.woocommerce-checkout .k4g-payment-filter-apply,
  body.woocommerce-checkout .k4g-payment-filter-clear{min-height:46px}
  body.woocommerce-checkout .k4g-payment-filter-status{
    position:static;
    margin:0;
  }
  body.woocommerce-cart .wc-block-cart__main{
    min-height:80px!important;
    max-height:max(80px,calc(100dvh - 232px - env(safe-area-inset-bottom)))!important;
  }
  body.woocommerce-cart{padding-bottom:calc(120px + env(safe-area-inset-bottom))!important}
  body.k4g-consent-open.woocommerce-cart .k4g-consent{
    bottom:calc(128px + env(safe-area-inset-bottom))!important;
  }
  body.woocommerce-cart .wc-block-cart__sidebar{
    min-height:120px!important;
    height:120px!important;
    gap:6px!important;
    padding:6px 14px calc(8px + env(safe-area-inset-bottom))!important;
  }
  body.woocommerce-cart .wc-block-cart__sidebar::before{
    height:3px;
    margin:0 auto;
  }
  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-footer-item{
    min-height:24px!important;
  }
  body.woocommerce-cart .wc-block-cart__sidebar .wc-block-cart__submit-container .wc-block-components-button{
    min-height:46px!important;
  }
}

/* Short-landscape composition is allowed to tighten surrounding chrome, not
   the terminal action's accessible target or horizontal rhythm. */
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:not(.is-link),
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .k4g-confirm-pay,
body.woocommerce-checkout .k4g-mobile-confirm-pay,
body.woocommerce-checkout .woocommerce #place_order{
  min-height:var(--k4g-checkout-action-height)!important;
  padding:var(--k4g-checkout-action-padding)!important;
}
