/* Web2Ink — Custom Cart (own premium markup) + Custom Checkout (WC shortcode) layout & skin.
   Scoped under .w2i-woo-layout so it never leaks into the rest of WooCommerce.
   Colors are neutral defaults — Elementor Style controls / store theme tokens override them. */

.w2i-woo-layout{box-sizing:border-box;}
.w2i-woo-layout *{box-sizing:border-box;}
.w2i-woo-layout .w2i-woo-title{margin:0 0 18px;}

/* ============================ CART (custom premium markup) ============================ */

.w2i-cart{display:grid;gap:var(--w2i-cart-gap,32px);align-items:start;}
.w2i-cart-main{min-width:0;}

/* Elementor Custom Cart widget — left items panel defaults (Style tab overrides with !important) */
.elementor-widget-w2i_store_cart .w2i-cart-main{
  border:1px solid #e5e7eb;
  border-radius:16px;
  background:#fff;
  padding:20px;
  box-sizing:border-box;
}

.w2i-cart-progress{grid-column:1 / -1;}

/* layout modes */
.w2i-cart-layout-stacked .w2i-cart{grid-template-columns:1fr;}
.w2i-cart-layout-stacked .w2i-cart-aside{width:100%;max-width:460px;margin-left:auto;}
.w2i-cart-layout-sidebar .w2i-cart{grid-template-columns:minmax(0,1fr) var(--w2i-cart-side-w,34%);}
.w2i-cart-side-left .w2i-cart{grid-template-columns:var(--w2i-cart-side-w,34%) minmax(0,1fr);}
.w2i-cart-side-left .w2i-cart-main{order:2;}
.w2i-cart-side-left .w2i-cart-aside{order:1;}
.w2i-cart-sticky .w2i-cart-aside{position:sticky;top:var(--w2i-cart-sticky-top,24px);}

/* free-shipping progress bar */
.w2i-cart-progress{margin:0;}
.w2i-cart-progress-msg{margin:0 0 10px;font-size:14px;color:#374151;text-align:center;}
.w2i-cart-progress-msg strong{color:#111827;}
.w2i-cart-progress-track{height:8px;border-radius:99px;background:#eef0f2;overflow:hidden;}
.w2i-cart-progress-bar{display:block;height:100%;border-radius:99px;background:var(--w2i-prod-accent,#16a34a);transition:width .45s ease;}

/* items list — ONE shared grid (rows use display:contents) so the header and every row line up
   in the SAME columns. Previously each row was its own grid, so the columns drifted and the
   Price/Quantity/Subtotal values didn't sit under their headers. Cells are flex so the row
   dividers stay continuous (stretch) while content is vertically centred. */
.w2i-clines{display:grid;grid-template-columns:minmax(0,1fr) 96px 138px 104px;column-gap:20px;}
.w2i-cart-row{display:contents;}
.w2i-cart-head > *{display:flex;align-items:flex-end;padding:0 0 14px;border-bottom:1px solid #e5e7eb;
  text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600;color:#6b7280;}
.w2i-cline > *{display:flex;align-items:center;padding:20px 0;border-bottom:1px solid #f1f2f4;}
/* per-column horizontal alignment, shared by header + data so they line up */
.w2i-c-prod{justify-content:flex-start;gap:16px;min-width:0;align-items:flex-start;}
.w2i-cart-head .w2i-c-price,.w2i-cline .w2i-c-price{justify-content:center;}
.w2i-cart-head .w2i-c-qty,.w2i-cline .w2i-c-qty{justify-content:center;}
.w2i-cart-head .w2i-c-sub,.w2i-cline .w2i-c-sub{justify-content:flex-end;}
.w2i-c-thumb a{display:block;}
.w2i-c-thumb img{width:74px;height:74px;object-fit:cover;border-radius:12px;display:block;background:#f3f4f6;}
.w2i-c-info{min-width:0;}
.w2i-c-name a,.w2i-c-name span{font-weight:600;color:#111827;text-decoration:none;font-size:15px;line-height:1.35;}
.w2i-c-name a:hover{color:var(--w2i-prod-accent,#2563eb);}
.w2i-c-meta{margin:4px 0 0;font-size:13px;color:#6b7280;}
.w2i-c-meta p{margin:0;}
/* Variation meta as a compact table: labels on row 1, values on row 2
   (Color | Size / Black | XS). Extra pairs (addons, etc.) become extra columns. */
.w2i-c-meta dl,.w2i-c-meta dl.variation{
  display:grid;grid-template-rows:auto auto;grid-auto-flow:column;
  grid-auto-columns:minmax(0,max-content);column-gap:20px;row-gap:2px;
  margin:6px 0 0;width:max-content;max-width:100%;}
.w2i-c-meta dl dt,.w2i-c-meta dl.variation dt{
  grid-row:1;margin:0;padding:0;float:none;display:block;
  font-size:11px;font-weight:600;line-height:1.3;letter-spacing:.04em;
  text-transform:uppercase;color:#9ca3af;}
.w2i-c-meta dl dd,.w2i-c-meta dl.variation dd{
  grid-row:2;margin:0;padding:0;float:none;display:block;
  font-size:13px;font-weight:500;line-height:1.35;color:#374151;}
.w2i-c-meta dl dd p,.w2i-c-meta dl.variation dd p{margin:0;display:inline;}
.w2i-c-meta dl dd::after,.w2i-c-meta dl.variation dd::after{content:none;display:none;}
/* small danger "Remove" button — icon is a real <span> inside the <a> (not ::before on
   the wrapper), so theme circular-× / absolute positioning on a.remove can't pull it out. */
.w2i-c-remove{margin-top:10px;}
.w2i-c-remove a.remove,.w2i-c-remove a.w2i-c-remove-link{
  position:static !important;display:inline-flex !important;align-items:center;gap:5px;
  width:auto !important;height:auto !important;min-width:0 !important;min-height:0 !important;
  float:none !important;padding:5px 10px !important;border-radius:8px !important;
  font-size:12px !important;font-weight:600 !important;line-height:1.25 !important;
  color:#fff !important;background:#ef4444 !important;border:1px solid #ef4444 !important;
  text-decoration:none;box-shadow:none !important;cursor:pointer;
  transition:background .15s,border-color .15s,filter .15s;opacity:.9 !important;}
.w2i-c-remove a.remove::before,.w2i-c-remove a.remove::after,
.w2i-c-remove a.w2i-c-remove-link::before,.w2i-c-remove a.w2i-c-remove-link::after{display:none !important;content:none !important;}
.w2i-c-remove .w2i-c-remove-icon{width:12px;height:12px;flex:0 0 auto;display:inline-block;
  background-color:currentColor;border-radius:0;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3v1H4v2h16V4h-5V3H9zM7 8l1 12h8l1-12H7zm3 2h1v8h-1v-8zm3 0h1v8h-1v-8z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3v1H4v2h16V4h-5V3H9zM7 8l1 12h8l1-12H7zm3 2h1v8h-1v-8zm3 0h1v8h-1v-8z'/%3E%3C/svg%3E") center/contain no-repeat;}
.w2i-c-remove a.remove:hover,.w2i-c-remove a.w2i-c-remove-link:hover{
  color:#fff !important;background:#dc2626 !important;border-color:#dc2626 !important;filter:none;}
.w2i-c-price{color:#374151;font-weight:500;}
.w2i-c-sub{color:#111827;font-weight:700;}

/* quantity stepper: − [input] + as one pill. Hard overrides so the theme's .quantity
   width / input alignment can't shove the number off-centre. */
.w2i-c-qty .w2i-cstep{display:flex !important;align-items:stretch;width:124px;max-width:100%;flex:0 0 auto;
  border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;}
.w2i-c-qty .w2i-cstep .quantity{flex:1 1 auto !important;display:flex !important;width:auto !important;
  max-width:none !important;min-width:0;margin:0 !important;padding:0 !important;border:0 !important;}
/* hide any +/- buttons the active theme injects inside .quantity — we render our own */
.w2i-c-qty .w2i-cstep .quantity > :not(input){display:none !important;}
.w2i-c-qty .w2i-cstep input.qty{flex:1 1 auto !important;width:100% !important;min-width:0;
  text-align:center !important;border:0 !important;border-radius:0 !important;padding:10px 0 !important;
  margin:0 !important;background:transparent !important;font:inherit;-moz-appearance:textfield;box-shadow:none !important;}
.w2i-c-qty .w2i-cstep input.qty::-webkit-outer-spin-button,
.w2i-c-qty .w2i-cstep input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.w2i-c-qty .w2i-cstep .w2i-cstep-btn{flex:0 0 38px !important;width:38px !important;align-self:stretch;
  border:0 !important;background:transparent !important;cursor:pointer;font-size:18px;line-height:1;
  color:#374151 !important;display:flex;align-items:center;justify-content:center;padding:0;
  text-decoration:none;box-shadow:none !important;transition:background .15s,color .15s;}
.w2i-c-qty .w2i-cstep .w2i-cstep-btn:hover{background:#f3f4f6 !important;color:#111827 !important;}
.w2i-qty-fixed{display:inline-block;min-width:32px;text-align:center;font-weight:600;}

/* AJAX updating state */
.w2i-cart.w2i-cart-loading{opacity:.5;pointer-events:none;transition:opacity .15s;}

/* coupon + update actions */
.w2i-cart-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:22px 0 0;}
.w2i-cart-coupon{display:flex;gap:10px;flex:1 1 320px;max-width:440px;}
.w2i-cart-coupon input{flex:1;min-width:0;border:1px solid #e5e7eb;border-radius:10px;padding:11px 14px;font:inherit;background:#fff;}
.w2i-cart-actions .button{border:0;border-radius:10px;padding:11px 20px;cursor:pointer;
  background:#eef1f5;color:#111827;}
.w2i-cart-actions .button:hover{filter:brightness(.97);}

/* summary card */
.w2i-cart-summary{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:26px 24px;
  box-shadow:0 1px 2px rgba(16,24,40,.05);}
.w2i-cart-summary-title{margin:0 0 16px;font-size:18px;font-weight:700;line-height:1.2;}
.w2i-sum-rows{margin:0;}
.w2i-sum-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding:13px 0;border-bottom:1px solid #f1f2f4;font-size:14px;}
.w2i-sum-row > span:first-child{color:#6b7280;}
.w2i-sum-val{text-align:right;color:#111827;font-weight:600;white-space:nowrap;}
.w2i-sum-shipping{padding:13px 0;border-bottom:1px solid #f1f2f4;font-size:13px;}
.w2i-sum-shipping ul{margin:0;padding:0;list-style:none;}
.w2i-sum-shipping ul li{margin:0 0 6px;}
.w2i-sum-shipping .woocommerce-shipping-destination{margin:8px 0 0;color:#6b7280;}
.w2i-sum-shipping .shipping-calculator-button{color:var(--w2i-prod-accent,#2563eb);}
.w2i-sum-total{border-bottom:0;padding-top:16px;font-size:18px;}
.w2i-sum-total > span:first-child{color:#111827;font-weight:700;}
.w2i-sum-total .w2i-sum-val{font-size:18px;font-weight:700;}

/* proceed-to-checkout button (color from control / theme; layout here) */
.w2i-cart-checkout{margin:20px 0 0;padding:0;}
.w2i-cart-checkout a.checkout-button{display:block;width:100%;text-align:center;padding:15px 22px;
  border-radius:12px;font-weight:700;font-size:15px;text-decoration:none;
  background:#111827;color:#fff;transition:filter .15s;}
.w2i-cart-checkout a.checkout-button:hover{filter:brightness(1.12);}

/* empty state */
.w2i-cart-empty{text-align:center;padding:60px 20px;color:#6b7280;}
.w2i-cart-empty-ic{color:#cbd5e1;margin:0 auto 14px;display:block;}
.w2i-cart-empty-txt{font-size:17px;margin:0 0 20px;color:#374151;}
.w2i-cart-empty .button{display:inline-block;background:#111827;color:#fff;text-decoration:none;
  padding:13px 26px;border-radius:12px;font-weight:600;}

/* ============================ CHECKOUT (WC shortcode) ============================ */

.w2i-co-layout-stacked .woocommerce-checkout-review-order{width:100%;float:none;}

/* Two columns via FLOAT (not grid): the right column (heading + order review) must stack
   independently of the tall billing/shipping column. CSS grid can't do that from a flat
   sibling list — the tall spanning details column inflates the heading's row, dropping the
   summary card ~500px below its heading. Floats with clear:right size each column to its
   own content. */
.w2i-co-layout-two .checkout.woocommerce-checkout{display:block;}
.w2i-co-layout-two .checkout.woocommerce-checkout::after{content:"";display:table;clear:both;}
.w2i-co-layout-two #customer_details{
  float:left; width:calc(100% - var(--w2i-co-side-w, 38%) - var(--w2i-co-gap, 40px)); margin:0;
}
.w2i-co-layout-two #order_review_heading{
  float:right; clear:right; width:var(--w2i-co-side-w, 38%); margin:0 0 18px;
}
.w2i-co-layout-two #order_review{
  float:right; clear:right; width:var(--w2i-co-side-w, 38%);
}
/* notices / login / coupon stay full width above the two columns */
.w2i-co-layout-two .checkout > .woocommerce-NoticeGroup,
.w2i-co-layout-two .checkout > .woocommerce-form-login,
.w2i-co-layout-two .checkout > .woocommerce-form-coupon{float:none;width:100%;clear:both;}
/* inside the narrower details column, stack billing + shipping vertically */
.w2i-co-layout-two #customer_details.col2-set,
.w2i-co-layout-two #customer_details .col2-set{display:block;}
.w2i-co-layout-two #customer_details .col-1,
.w2i-co-layout-two #customer_details .col-2{width:100%;float:none;margin:0 0 10px;}
/* Order summary on the left */
.w2i-co-side-left #customer_details{float:right;}
.w2i-co-side-left #order_review_heading{float:left;clear:left;}
.w2i-co-side-left #order_review{float:left;clear:left;}
.w2i-co-sticky #order_review{position:sticky;top:var(--w2i-co-sticky-top, 24px);}

/* ---- Premium checkout skin (over the real WC checkout form — safe) ----
   Neutral defaults; Elementor Style controls / theme tokens override. */

/* section headings */
.w2i-woo-checkout #customer_details h3,
.w2i-woo-checkout h3#order_review_heading,
.w2i-woo-checkout .woocommerce-additional-fields h3,
.w2i-woo-checkout .woocommerce-shipping-fields h3{
  font-size:18px;font-weight:700;line-height:1.2;margin:0 0 18px;
}
.w2i-woo-checkout .woocommerce-billing-fields > h3,
.w2i-woo-checkout .woocommerce-additional-fields > h3,
.w2i-woo-checkout h3#order_review_heading,
.w2i-woo-checkout .w2i-order-review-title{
  border-bottom:1px solid #e5e7eb;
  padding-bottom:12px;
}
.w2i-woo-checkout .woocommerce-billing-fields h3{margin-top:0;}

/* fields */
.w2i-woo-checkout .woocommerce form .form-row{margin:0 0 16px;padding:0;}
.w2i-woo-checkout .woocommerce form .form-row label{display:block;font-weight:600;font-size:13px;color:#374151;margin:0 0 6px;}
.w2i-woo-checkout .woocommerce form .form-row .required{color:#ef4444;border:0;}
.w2i-woo-checkout .woocommerce form .form-row input.input-text,
.w2i-woo-checkout .woocommerce form .form-row textarea,
.w2i-woo-checkout .woocommerce form .form-row select,
.w2i-woo-checkout .woocommerce .select2-container .select2-selection--single{
  width:100%;border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px;min-height:48px;
  background:#fff;font:inherit;line-height:1.4;box-shadow:none;
}
.w2i-woo-checkout .woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:24px;padding:0;}
.w2i-woo-checkout .woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px;}
.w2i-woo-checkout .woocommerce form .form-row input.input-text:focus,
.w2i-woo-checkout .woocommerce form .form-row textarea:focus{
  border-color:var(--w2i-prod-accent,#2563eb);outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.w2i-woo-checkout .woocommerce-shipping-fields .shipping_address{margin-top:8px;}

/* order review → premium card */
.w2i-woo-checkout #order_review{
  background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:24px;
  box-shadow:0 1px 2px rgba(16,24,40,.05);
}
.w2i-woo-checkout #order_review table.shop_table{border:0;margin:0;background:transparent;}
.w2i-woo-checkout #order_review table.shop_table thead th{
  text-transform:uppercase;letter-spacing:.05em;font-size:12px;color:#6b7280;font-weight:600;
  border:0;border-bottom:1px solid #e5e7eb;padding:0 0 12px;background:transparent;
}
.w2i-woo-checkout #order_review table.shop_table td,
.w2i-woo-checkout #order_review table.shop_table tfoot th{
  border:0;border-bottom:1px solid #f1f2f4;padding:13px 0;background:transparent;
}
.w2i-woo-checkout #order_review .cart_item .product-name{color:#111827;font-weight:600;}
.w2i-woo-checkout #order_review tfoot .order-total th,
.w2i-woo-checkout #order_review tfoot .order-total td{
  border-bottom:0;padding-top:16px;font-size:18px;font-weight:700;color:#111827;
}
/* two-column: merge the "Your order" heading into the top of the card (it floats directly
   above #order_review). Heading = card header (top border + radius, no bottom); card = body. */
.w2i-co-layout-two #order_review_heading,
.w2i-co-side-left #order_review_heading{
  margin:0 !important;background:#fff;border:1px solid #e5e7eb;border-bottom:0 !important;
  border-radius:16px 16px 0 0;padding:24px 24px 4px !important;font-size:18px;font-weight:700;
}
.w2i-co-layout-two #order_review,
.w2i-co-side-left #order_review{border-top:0;border-radius:0 0 16px 16px;padding-top:18px;}

/* payment methods */
.w2i-woo-checkout #payment{background:transparent;border-radius:0;}
.w2i-woo-checkout #payment ul.wc_payment_methods{border:0;margin:8px 0 0;padding:0;list-style:none;}
.w2i-woo-checkout #payment ul.wc_payment_methods li.wc_payment_method{
  border:1px solid #e5e7eb;border-radius:12px;padding:14px 16px;margin:0 0 10px;
}
.w2i-woo-checkout #payment ul.wc_payment_methods li.wc_payment_method label{font-weight:600;margin:0;}
.w2i-woo-checkout #payment .payment_box{background:#f8fafc;border-radius:10px;margin-top:12px;font-size:13px;}
.w2i-woo-checkout #payment .payment_box::before{display:none;}
.w2i-woo-checkout #payment .place-order{padding:18px 0 0;margin:0;}

/* place order button */
.w2i-woo-checkout #place_order{
  display:block;width:100%;padding:15px 22px;border-radius:12px;
  font-weight:700;font-size:15px;letter-spacing:.01em;
}

/* ============================ RESPONSIVE ============================ */
@media (max-width: 880px){
  .w2i-cart-layout-sidebar .w2i-cart,
  .w2i-cart-side-left .w2i-cart{grid-template-columns:1fr;}
  .w2i-cart-side-left .w2i-cart-main{order:1;}
  .w2i-cart-side-left .w2i-cart-aside{order:2;}
  .w2i-cart-aside{max-width:none;margin-left:0;}
  .w2i-cart-sticky .w2i-cart-aside{position:static;}

  .w2i-co-layout-two #customer_details,
  .w2i-co-layout-two #order_review_heading,
  .w2i-co-layout-two #order_review,
  .w2i-co-side-left #customer_details,
  .w2i-co-side-left #order_review_heading,
  .w2i-co-side-left #order_review{float:none;width:100%;}
  .w2i-co-layout-two #order_review_heading{margin-top:24px;}
  .w2i-co-sticky #order_review{position:static;}
}

@media (max-width: 560px){
  /* drop the shared grid; each item becomes its own stacked card with data-title labels */
  .w2i-clines{display:block;}
  .w2i-cart-head{display:none;}
  .w2i-cart-row{display:block;}
  .w2i-cline{padding:18px 0;border-bottom:1px solid #f1f2f4;}
  .w2i-cline > *{padding:0;border-bottom:0;}
  .w2i-cline .w2i-c-prod{margin-bottom:12px;}
  .w2i-cline .w2i-c-price,
  .w2i-cline .w2i-c-qty,
  .w2i-cline .w2i-c-sub{display:flex !important;justify-content:space-between;align-items:center;
    text-align:left !important;margin-top:8px;}
  .w2i-cline .w2i-c-price::before,
  .w2i-cline .w2i-c-qty::before,
  .w2i-cline .w2i-c-sub::before{content:attr(data-title);color:#6b7280;font-size:13px;font-weight:500;}
}

/* ============================ ELEMENTOR CHECKOUT WIDGET LAYOUT ============================
   store-themes.css gives every subsection its own bordered box; woo-layout splits the order
   summary heading from the card in two-column mode. The widget uses unified panels instead. */

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget{
  --w2i-co-card-radius:16px;
  --w2i-co-card-pad:24px;
  --w2i-co-section-gap:22px;
}

/* Remove per-section store-theme boxes inside the widget */
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout .woocommerce-billing-fields,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout .woocommerce-shipping-fields,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout .woocommerce-additional-fields,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout #customer_details,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout #order_review,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout #payment{
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .w2i-checkout-left-panel,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .w2i-checkout-right-panel{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:var(--w2i-co-card-radius);
  padding:var(--w2i-co-card-pad);
  box-shadow:0 1px 2px rgba(16,24,40,.05);
  box-sizing:border-box;
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .w2i-checkout-left-panel .woocommerce-shipping-fields,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .w2i-checkout-left-panel .woocommerce-additional-fields{
  margin-top:var(--w2i-co-section-gap);
  padding-top:var(--w2i-co-section-gap);
  border-top:1px solid #e5e7eb;
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #ship-to-different-address{
  border:none !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 0 14px !important;
  float:none !important;
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #order_review_heading{
  margin:0 0 18px !important;
  padding:0 0 12px !important;
  float:none !important;
  width:auto !important;
  border-top:none !important;
  border-left:none !important;
  border-right:none !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #payment{
  margin-top:var(--w2i-co-section-gap) !important;
  padding-top:var(--w2i-co-section-gap) !important;
  border-top:1px solid #e5e7eb !important;
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #payment .place-order{
  padding:16px 0 0 !important;
  margin:0 !important;
}

.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-stacked .w2i-checkout-right-panel{
  margin-top:24px;
}

/* Disable legacy split-card floats inside the widget (panels own the layout) */
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-two #customer_details,
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-two #order_review_heading,
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-two #order_review,
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-side-left #order_review_heading,
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-side-left #order_review{
  float:none !important;
  width:auto !important;
  margin:0 !important;
  border-top:none !important;
  border-left:none !important;
  border-right:none !important;
  border-radius:0 !important;
  background:transparent !important;
  padding:0 !important;
  box-shadow:none !important;
}
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-two #order_review_heading{
  margin:0 0 18px !important;
  padding:0 0 12px !important;
}

.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-two .w2i-checkout-left-panel{
  float:left;
  width:calc(100% - var(--w2i-co-side-w, 38%) - var(--w2i-co-gap, 40px));
  margin:0;
}
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-two .w2i-checkout-right-panel{
  float:right;
  clear:right;
  width:var(--w2i-co-side-w, 38%);
  margin:0;
}
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-side-left.w2i-co-layout-two .w2i-checkout-left-panel{float:right;}
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-side-left.w2i-co-layout-two .w2i-checkout-right-panel{float:left;clear:left;}
.elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-sticky .w2i-checkout-right-panel{
  position:sticky;
  top:var(--w2i-co-sticky-top, 24px);
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #customer_details.col2-set,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #customer_details .col-1,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #customer_details .col-2{
  width:100% !important;
  float:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* Let Elementor Style-tab colours beat store-themes !important */
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .input-text,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget textarea,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget select:not(.select2-hidden-accessible),
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #web2inkOrderProductionFrontend,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .w2i-order-production-select,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .select2-container--default .select2-selection--single,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .select2-container--default .select2-selection--single .select2-selection__rendered{
  background-color:initial !important;
  border-color:initial !important;
  color:initial !important;
  box-shadow:none !important;
  /* Do NOT reset font-size here — Elementor Form fields typography sets it with !important */
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce a.button:not(#place_order),
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce button.button:not(#place_order),
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce input.button:not(#place_order){
  background-color:initial !important;
  color:initial !important;
  border-color:initial !important;
  filter:none !important;
}

/* Place-order button defaults — Elementor "Place-order button" tab overrides with !important */
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #place_order{
  display:block !important;
  width:100%;
  margin:0 !important;
  float:none !important;
  border:0;
  box-shadow:none;
  border-radius:12px;
  padding:15px 22px;
  font-size:15px;
  font-weight:700;
  line-height:1.35;
  text-transform:uppercase;
  letter-spacing:.02em;
  box-sizing:border-box;
  cursor:pointer;
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce form .form-row input.input-text,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce form .form-row textarea,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce form .form-row select:not(.select2-hidden-accessible),
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget #web2inkOrderProductionFrontend,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .w2i-order-production-select,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{
  font-size:15px;
  line-height:1.4;
  min-height:0;
  padding:12px 14px;
  box-sizing:border-box;
}

.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout-review-order-table th,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout-review-order-table td{
  background:initial !important;
  color:initial !important;
  /* Do NOT reset border-color here — it forced row dividers to browser default (black). */
}

/* Default row dividers — Elementor Table → Row border color overrides with !important */
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout-review-order-table thead th{
  border:0 !important;
  border-bottom:1px solid #e5e7eb !important;
}
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout-review-order-table tbody td,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout-review-order-table tfoot th,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout-review-order-table tfoot td,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout-review-order-table .web2ink-order-production-description td{
  border:0 !important;
  border-bottom:1px solid #e5e7eb !important;
}
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout-review-order-table tfoot tr.order-total th,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget .woocommerce-checkout-review-order-table tfoot tr.order-total td{
  border-bottom:0 !important;
}

/* Product name + variation — reset hard-coded typography/color so Elementor Style controls win */
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget table.woocommerce-checkout-review-order-table td.product-name > a,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget table.woocommerce-checkout-review-order-table td.product-name a,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget table.woocommerce-checkout-review-order-table td.product-name .product-quantity{
  font-size:initial;
  font-weight:initial;
  line-height:initial;
}
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget table.woocommerce-checkout-review-order-table dl.variation,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget table.woocommerce-checkout-review-order-table dl.variation dt,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget table.woocommerce-checkout-review-order-table dl.variation dd,
.elementor-widget-w2i_store_checkout .w2i-woo-checkout-widget table.woocommerce-checkout-review-order-table dl.variation dd p{
  font-size:initial;
  font-weight:initial;
  line-height:initial;
  /* Drop store-themes var(--w2i-muted)/var(--w2i-ink) so Elementor Order-summary colors apply */
  color:unset;
}

@media (max-width:880px){
  .elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-two .w2i-checkout-left-panel,
  .elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-two .w2i-checkout-right-panel{
    float:none !important;
    width:100% !important;
  }
  .elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-sticky .w2i-checkout-right-panel{position:static;}
  .elementor-widget-w2i_store_checkout .w2i-woo-layout.w2i-co-layout-two .w2i-checkout-right-panel{margin-top:24px;}
}

/* ============================ ELEMENTOR CART WIDGET — beat store-themes ============================
   Body carries .woocommerce-cart / theme tokens load store-themes.css with !important rules on
   .input-text / .button. Reset those INSIDE the Custom Cart widget so Elementor Style-tab
   selectors (also !important, higher specificity via .elementor-element-xxx) actually win. */

/* Defaults use !important so they beat body.woocommerce-cart / store-themes rules.
   Elementor Style-tab CSS is more specific (.elementor-N .elementor-element-xxx …)
   so saved Style values still win. */
.elementor-widget-w2i_store_cart .w2i-cart-coupon input,
.elementor-widget-w2i_store_cart .w2i-cart-coupon .input-text,
.elementor-widget-w2i_store_cart .w2i-cart input.input-text,
.elementor-widget-w2i_store_cart #coupon_code{
  background-color:#fff !important;
  border:1px solid #e5e7eb !important;
  border-color:#e5e7eb !important;
  color:#111827 !important;
  box-shadow:none !important;
  min-height:0 !important;
  height:auto !important;
  border-radius:10px !important;
  padding:11px 14px !important;
  font:inherit;
  box-sizing:border-box;
}
.elementor-widget-w2i_store_cart .w2i-cart input.input-text{border:none !important;}

.elementor-widget-w2i_store_cart .w2i-cart-actions .button,
.elementor-widget-w2i_store_cart .w2i-cart-coupon .button,
.elementor-widget-w2i_store_cart .w2i-cart-update,
.elementor-widget-w2i_store_cart .woocommerce .button:not(.checkout-button),
.elementor-widget-w2i_store_cart .woocommerce button.button:not(.checkout-button),
.elementor-widget-w2i_store_cart .woocommerce input.button:not(.checkout-button){
  background-color:#eef1f5 !important;
  color:#111827 !important;
  border:0 !important;
  border-color:transparent !important;
  filter:none !important;
  min-height:0 !important;
  height:auto !important;
  border-radius:10px !important;
  padding:11px 20px !important;
  box-shadow:none !important;
  font:inherit;
  font-weight:600;
  cursor:pointer;
  box-sizing:border-box;
}

.elementor-widget-w2i_store_cart .w2i-cart-checkout a.checkout-button,
.elementor-widget-w2i_store_cart .wc-proceed-to-checkout a.checkout-button,
.elementor-widget-w2i_store_cart .w2i-cart-empty a.w2i-checkout-btn{
  min-height:0 !important;
  height:auto !important;
  filter:none !important;
  width:fit-content !important;
  margin:0 auto !important;
}
.elementor-widget-w2i_store_cart .w2i-c-remove a.remove,
.elementor-widget-w2i_store_cart .w2i-c-remove a.w2i-c-remove-link{
  font-size:12px !important;
  line-height:1.25 !important;
  width:auto !important;
  height:auto !important;
  min-height:0 !important;
  padding:5px 10px !important;
}
