/* Soluky CART CRO enhancements — Blocks (React) cart.
   Loaded only on the cart page (see functions.php). Self-contained:
   remove this file + cart-enhance.js + the enqueue block to fully revert.
   Stage 1: trust strip + autoship nudge + hide line-item descriptions. */

/* ---- #6  Hide the short product description inside each cart line item ----
   The Blocks cart prints the product short-description under the name, which
   clutters the line (esp. on mobile). Keep name + variation + price; drop the blurb. */
.wc-block-cart-item__product .wc-block-components-product-metadata__description{
  display:none !important;
}

/* ---- #5  Secure-checkout badge at the top of the cart -------------------- */
#sk-cart-secure-top{
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin:0 auto 18px; padding:11px 16px;
  width:calc(100% - 8px); max-width:620px; box-sizing:border-box;
  background:#eef5ee; border:1px solid #d6e6d6; border-radius:11px;
  font-size:13px; font-weight:600; color:#33522f; text-align:center;
}
#sk-cart-secure-top .sk-ic{ width:16px; height:16px; flex:0 0 16px; color:#4a8c4a; }
html[dir="rtl"] #sk-cart-secure-top{ direction:rtl; }

/* ---- #5  Trust strip (above the Proceed-to-Checkout / totals) ------------ */
.sk-cart-trust{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:6px 0; margin:14px 0 4px; padding:13px 14px;
  background:#fff; border:1px solid #e7e0cf; border-radius:14px;
  box-shadow:0 1px 3px rgba(60,50,30,.05);
  font-size:12.5px; line-height:1.35; color:#36352f;
}
.sk-cart-trust span{ display:inline-flex; align-items:center; gap:7px; padding:2px 14px; white-space:nowrap; }
.sk-cart-trust span + span{ border-inline-start:1px solid #ece5d5; }
.sk-cart-trust .sk-ic{ width:15px; height:15px; flex:0 0 15px; color:#5b8c5a; }
.sk-cart-trust b{ font-weight:700; color:#2f2f29; }
html[dir="rtl"] .sk-cart-trust span{ direction:rtl; }

/* ---- #4  Autoship nudge card (in the totals sidebar) --------------------- */
.sk-cart-autoship{
  margin:14px 0; padding:15px 16px;
  background:linear-gradient(180deg,#fff8ec 0%,#fdf3df 100%);
  border:1px solid #ecd9a8; border-radius:14px;
  box-shadow:0 1px 4px rgba(120,90,30,.08);
  text-align:start;
}
.sk-cart-autoship .sk-au-head{ display:flex; align-items:center; gap:8px; margin:0 0 5px; }
.sk-cart-autoship .sk-au-head .sk-ic{ width:18px; height:18px; flex:0 0 18px; color:#c8881f; }
.sk-cart-autoship .sk-au-title{ font-size:14.5px; font-weight:800; color:#5a3e10; }
.sk-cart-autoship .sk-au-body{ font-size:12.5px; line-height:1.5; color:#6b5828; margin:0 0 11px; }
.sk-cart-autoship .sk-au-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  width:100%; box-sizing:border-box; padding:10px 14px;
  background:#e2a13b; color:#fff !important; text-decoration:none !important;
  font-size:13.5px; font-weight:700; border-radius:10px;
  transition:background .15s;
}
.sk-cart-autoship .sk-au-cta:hover{ background:#cf8f2c; }
html[dir="rtl"] .sk-cart-autoship{ direction:rtl; text-align:right; }

.sk-cart-autoship .sk-au-cta .sk-ic{ width:16px; height:16px; flex:0 0 16px; }

/* ---- Stage 2a  Quantity-change "updating" feedback ---------------------- */
/* While a +/- change is recalculating, dim the totals and show a spinner on the
   Estimated-total row so a frozen price reads as "working" (kills the re-tapping). */
.sk-cart-updating .wc-block-components-totals-item__value{ opacity:.4 !important; transition:opacity .12s; }
.sk-cart-updating .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{ position:relative; }
.sk-cart-updating .wc-block-components-totals-footer-item .wc-block-components-totals-item__value::before{
  content:''; position:absolute; inset-inline-start:-22px; top:50%; margin-top:-7px;
  width:14px; height:14px; box-sizing:border-box;
  border:2px solid #e2a13b; border-top-color:transparent; border-radius:50%;
  animation:sk-cart-spin .7s linear infinite;
}
@keyframes sk-cart-spin{ to{ transform:rotate(360deg); } }
/* Make the minus button's disabled (minimum-qty) state obvious so it isn't hammered. */
.wc-block-components-quantity-selector__button--minus:disabled{ opacity:.4 !important; cursor:not-allowed; }

/* ---- Stage 2b  Curated cross-sell "Complete your order" row ------------- */
.sk-cart-xsell{ margin:22px 0 4px; padding-top:18px; border-top:1px solid #ece4d2; }
.sk-cart-xsell .sk-xs-title{ font-size:15px; font-weight:800; color:#2f2f29; margin:0 0 11px; }
.sk-cart-xsell .sk-xs-grid{ display:flex; flex-direction:column; gap:10px; }
.sk-cart-xsell .sk-xs-card{
  display:flex; align-items:center; gap:12px; padding:9px 11px;
  background:#fff; border:1px solid #e7e0cf; border-radius:12px;
  box-shadow:0 1px 3px rgba(60,50,30,.05);
}
.sk-cart-xsell .sk-xs-img{
  flex:0 0 48px; width:48px; height:48px; border-radius:9px;
  background:#f6f1e6 center/cover no-repeat; border:1px solid #efe7d6;
}
.sk-cart-xsell .sk-xs-info{ flex:1 1 auto; min-width:0; }
.sk-cart-xsell .sk-xs-name{ font-size:13px; font-weight:600; color:#36352f; line-height:1.3; }
.sk-cart-xsell .sk-xs-price{ font-size:12.5px; font-weight:700; color:#7a6a3e; margin-top:2px; }
.sk-cart-xsell .sk-xs-add{
  flex:0 0 auto; cursor:pointer; border:1px solid #e2a13b;
  background:#fff7ea; color:#b5791d; font-size:12.5px; font-weight:700;
  padding:7px 16px; border-radius:999px; transition:background .15s, color .15s;
}
.sk-cart-xsell .sk-xs-add:hover{ background:#e2a13b; color:#fff; }
.sk-cart-xsell .sk-xs-add[disabled]{ opacity:.6; cursor:default; }
html[dir="rtl"] .sk-cart-xsell{ text-align:right; }

/* ---- Stage 2c  Per-line "Autoship & save 15%" convert (frequency picker) - */
.sk-autoship{ display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:9px 0 2px; }
.sk-autoship .sk-au-lbl{ display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; color:#b5791d; }
.sk-autoship .sk-au-lbl .sk-ic{ width:14px; height:14px; flex:0 0 14px; }
.sk-autoship .sk-au-freq{
  font-size:12px; padding:4px 8px; border:1px solid #e2c79a; border-radius:8px;
  background:#fffdf8; color:#5a3e10; cursor:pointer;
}
.sk-autoship .sk-au-go{
  cursor:pointer; background:#e2a13b; border:1px solid #e2a13b; color:#fff;
  font-size:12px; font-weight:700; padding:5px 14px; border-radius:999px;
  transition:background .15s;
}
.sk-autoship .sk-au-go:hover{ background:#cf8f2c; }
.sk-autoship .sk-au-go[disabled]{ opacity:.6; cursor:default; }
html[dir="rtl"] .sk-autoship{ justify-content:flex-end; }

/* ---- Layout-shift guard (2026-10-03) ----------------------------------------
   The cross-sell row and the per-line Autoship widget wait on network calls.
   They now render as same-size placeholders the moment the cart appears and are
   filled in place, so nothing below them moves (cart CLS was 0.43 on mobile).
   Cards get a fixed min-height so a one-line and a two-line product name, and
   the placeholder, all take the same space. */
.sk-cart-xsell .sk-xs-card{ min-height:73px; box-sizing:border-box; }
.sk-cart-xsell .sk-xs-name{ min-height:2.6em; }
.sk-xs-skel .sk-xs-img,
.sk-xs-skel .sk-xs-name,
.sk-xs-skel .sk-xs-price{
  background:linear-gradient(90deg,#f3eee2 25%,#faf6ec 50%,#f3eee2 75%);
  background-size:200% 100%; animation:sk-shimmer 1.2s linear infinite; border-radius:6px;
}
.sk-xs-skel .sk-xs-name{ width:70%; }
.sk-xs-skel .sk-xs-price{ width:30%; }
.sk-au-skel{ opacity:.55; pointer-events:none; }
/* Line being removed: collapse at tap time, not 1-3s later when the server answers. */
.wc-block-cart-items__row[data-sk-removing]{ display:none !important; }
@keyframes sk-shimmer{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }
@media (prefers-reduced-motion:reduce){ .sk-xs-skel .sk-xs-img, .sk-xs-skel .sk-xs-name, .sk-xs-skel .sk-xs-price{ animation:none; } }

@media (max-width:600px){
  .sk-cart-trust{ gap:8px 0; padding:11px 9px; font-size:11.5px; }
  .sk-cart-trust span{ flex:0 0 50%; box-sizing:border-box; justify-content:flex-start; padding:5px 9px; white-space:normal; }
  .sk-cart-trust span + span{ border-inline-start:none; }
  .sk-cart-xsell .sk-xs-name{ font-size:12.5px; }
  .sk-cart-xsell .sk-xs-add{ padding:7px 13px; }
}

/* --- Suppress newsletter signup UI at the money step (2026-08-04) ---
   The Brevo inline signup form (footer widget) and any Brevo pop-up render
   here and intercept email input mid-purchase (rage-click source on
   #sib-email; Brevo's Where-targeting cannot exclude /ar/checkout).
   This file is page-scoped (checkout/cart only), so no body-class guard. */
.sib_signup_form,
.sib-form,
.sib-form-block,
#sib-container,
#sib-form-container,
[id^="sib_signup_form"],
iframe[src*="sibforms.com"] { display: none !important; }
