/* =================================================
   Location: /assets/css/cart-page.css
   Purpose: Premium Cart Page UI (sidebar-free feel, 1400px width, premium notices)
   Related PHP:
   - /inc/features/cart/cart-page.php (stm-cartx markup + wc_print_notices inside stm-cartx__notices)
   - /page.php (cart/checkout uses .stm-container--wide-1400 wrapper)
   Related JS:
   - (optional) /assets/js/cart-page.js if qty buttons handled there
   Linkage/Loader:
   - Enqueued via /inc/assets.php on is_cart() (recommended conditional loading)
================================================= */

/* =================================================
   CART WRAPPER — LOCK TO 1400px (match requirement)
================================================= */
.stm-cartx{
  max-width: 1400px; /* ✅ was 1500px */
  margin: 0 auto;
  padding: 16px 16px 40px;
}

/* Cart/checkout wide container (used by page.php) */
.stm-container--wide-1400{
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

/* Remove extra top spacing on clean woo pages */
.stm-page--woo-clean{
  padding-top: 0;
}

/* =================================================
   HEADER
================================================= */
.stm-cartx__header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin:10px 0 14px;
}
.stm-cartx__title{
  margin:0;
  font-size:26px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:-0.2px;
}
.stm-cartx__meta{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:8px;
  font-size:13px;
  opacity:.85;
}
.stm-cartx__dot{ opacity:.5; }
.stm-cartx__link{
  text-decoration:none;
  border-bottom:1px solid rgba(0,0,0,.18);
  padding-bottom:2px;
}

/* =================================================
   PREMIUM NOTICES (Continue shopping message polish)
   - Woo adds .woocommerce-message and may output a button/link inside.
================================================= */
.stm-cartx__notices{ margin:10px 0 14px; }

.stm-cartx__notices .woocommerce-message,
.stm-cartx__notices .woocommerce-info,
.stm-cartx__notices .woocommerce-error{
  border:1px solid rgba(0,0,0,.10);
  background:#fff;
  border-radius:16px;
  padding:12px 14px;
  margin:0 0 10px;
  font-size:13px;
  line-height:1.4;
  box-shadow:0 10px 28px rgba(0,0,0,.06);

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.stm-cartx__notices .woocommerce-message::before,
.stm-cartx__notices .woocommerce-info::before,
.stm-cartx__notices .woocommerce-error::before{
  display:none !important; /* ✅ remove default Woo icon spacing */
}

/* Woo notice action button/link (often "Continue shopping") */
.stm-cartx__notices .woocommerce-message a.button,
.stm-cartx__notices .woocommerce-info a.button{
  height:36px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.14);
  background:#111;
  color:#fff;
  font-weight:900;
  font-size:12px;
  line-height:36px;
  text-decoration:none;
  white-space:nowrap;
}

.stm-cartx__notices .woocommerce-message a.button:hover,
.stm-cartx__notices .woocommerce-info a.button:hover{
  filter:brightness(.95);
}

/* If Woo outputs a normal link instead of .button */
.stm-cartx__notices .woocommerce-message a:not(.button),
.stm-cartx__notices .woocommerce-info a:not(.button){
  font-weight:900;
  text-decoration:none;
  border-bottom:1px dashed rgba(0,0,0,.22);
}

/* Error notice readability */
.stm-cartx__notices .woocommerce-error{
  border-color: rgba(210, 0, 0, .20);
}

/* Mobile: stack notice content nicely */
@media (max-width: 768px){
  .stm-cartx__notices .woocommerce-message,
  .stm-cartx__notices .woocommerce-info,
  .stm-cartx__notices .woocommerce-error{
    flex-direction:column;
    align-items:flex-start;
  }

  .stm-cartx__notices .woocommerce-message a.button,
  .stm-cartx__notices .woocommerce-info a.button{
    width:100%;
    text-align:center;
  }
}

/* =================================================
   PAGE GRID
================================================= */
.stm-cartx-grid{
  display:grid;
  grid-template-columns: 1fr 380px;
  gap:16px;
  align-items:start;
}
@media (max-width: 1024px){
  .stm-cartx-grid{ grid-template-columns:1fr; }
}

/* Cards */
.stm-cartx-card,
.stm-cartx-sum{
  background:#fff;
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
}
.stm-cartx-card{ overflow:hidden; }

/* Desktop head */
.stm-cartx-head{
  display:grid;
  grid-template-columns: 1.35fr .45fr .55fr .55fr;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(0,0,0,.08);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .3px;
  text-transform: uppercase;
  opacity: .70;
}
.stm-cartx-head > div:nth-child(2),
.stm-cartx-head > div:nth-child(3),
.stm-cartx-head > div:nth-child(4){
  text-align: right;
}
@media (max-width: 900px){
  .stm-cartx-head{ display:none; }
}

/* Items */
.stm-cartx-items{ padding:6px 10px; }

/* Desktop row */
.stm-cartx-item{
  display:grid;
  grid-template-columns: 1.35fr .45fr .55fr .55fr;
  gap:10px;
  padding:14px 6px;
  border-bottom:1px solid rgba(0,0,0,.06);
  align-items:center;
}
.stm-cartx-item:last-child{ border-bottom:0; }

/* Product cell */
.stm-cartx-item__product{
  display:flex;
  gap:12px;
  align-items:flex-start;
  min-width:0;
}
.stm-cartx-item__media{
  width:74px;
  height:74px;
  flex:0 0 74px;
  display:block;
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}
.stm-cartx-item__thumb{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.stm-cartx-item__meta{ min-width:0; }
.stm-cartx-item__title{
  font-size:14px;
  font-weight:900;
  line-height:1.25;
  margin:0 0 6px;
}
.stm-cartx-item__title a{ color:inherit; text-decoration:none; }
.stm-cartx-item__sku{
  font-size:12px;
  opacity:.78;
  margin-top:6px;
}
.stm-cartx-item__remove{
  display:inline-block;
  margin-top:8px;
  font-size:12px;
  text-decoration:none;
  opacity:.85;
  border-bottom:1px dashed rgba(0,0,0,.22);
}

/* Controls wrapper */
.stm-cartx-item__controls{
  display: contents;
}

.stm-cartx-item__price{
  grid-column: 2;
  font-size:14px;
  font-weight:900;
  white-space:nowrap;
  justify-self:end;
  text-align:right;
  letter-spacing:-0.1px;
  padding-right: 8px;
}

.stm-cartx-item__qty{
  grid-column: 3;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

.stm-cartx-item__sub{
  grid-column: 4;
  font-size:14px;
  font-weight:900;
  white-space:nowrap;
  justify-self:end;
  padding-right: 8px;
  letter-spacing: -0.1px;
}

/* Qty pill */
.stm-cartx-qty{
  display:flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:14px;
  padding:5px 6px;
  background:#fff;
  margin-left: auto;
}
.stm-cartx-qty__btn{
  width:32px;
  height:32px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  font-weight:900;
  font-size:17px;
  line-height:1;
  cursor:pointer;
}

.stm-cartx-qty input.qty,
.stm-cartx-qty__input{
  width:64px;
  height:32px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:12px;
  outline:none;
  text-align:center;
  font-weight:900;
  background:#fff;
  color:#111;
  padding:0;
  font-size:14px;
}

.stm-cartx-qty input::-webkit-outer-spin-button,
.stm-cartx-qty input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.stm-cartx-qty input[type=number]{ -moz-appearance:textfield; }

/* Actions */
.stm-cartx-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  padding:12px 14px 14px;
  border-top:1px solid rgba(0,0,0,.08);
}

.stm-cartx-btn{
  height:42px;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.16);
  padding:0 14px;
  font-weight:900;
  font-size:13px;
  background:#fff;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.stm-cartx-btn--primary{ background:#111; color:#fff; border-color:rgba(0,0,0,.12); }
.stm-cartx-btn--block{ width:100%; }

/* Summary */
.stm-cartx-right .stm-cartx-sum{
  padding:14px;
  position:sticky;
  top:18px;
}
@media (max-width: 1024px){
  .stm-cartx-right .stm-cartx-sum{ position:static; }
}
.stm-cartx-sum__title{
  font-size:13px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.4px;
  opacity:.78;
  margin-bottom:12px;
}
.stm-cartx-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  padding:9px 0;
  font-size:13px;
}
.stm-cartx-row__l{ opacity:.82; }
.stm-cartx-row__r{ font-weight:900; }
.stm-cartx-divider{
  height:1px;
  background:rgba(0,0,0,.08);
  margin:10px 0;
}
.stm-cartx-row--total{ font-size:14px; }

.stm-cartx-safe{
  font-size:12px;
  opacity:.72;
  margin-top:10px;
  line-height:1.4;
}

/* Desktop premium feel */
@media (min-width: 901px){
  .stm-cartx-item__sub{ font-weight: 900; }
  .stm-cartx-item__price{ opacity: .95; }
}

/* =================================================
   TABLET + MOBILE — SLIM ANDROID-LIKE
================================================= */
@media (max-width: 900px){

  .stm-cartx{ padding-bottom:110px; }
  .stm-cartx-items{ padding:12px; }

  .stm-cartx-item{
    grid-template-columns: 1fr;
    gap:10px;
    padding:12px;
    border:1px solid rgba(0,0,0,.10);
    border-radius:16px;
    margin-bottom:12px;
    box-shadow:0 12px 36px rgba(0,0,0,.05);
  }

  .stm-cartx-item__media{
    width:58px;
    height:58px;
    flex:0 0 58px;
    border-radius:14px;
  }

  .stm-cartx-item__title{
    font-size:13.5px;
    line-height:1.25;
    margin:0 0 4px;
  }

  .stm-cartx-item__sku{ font-size:11.5px; }
  .stm-cartx-item__remove{ margin-top:6px; }

  .stm-cartx-item__controls{
    display:grid;
    grid-template-columns: 1fr auto 1fr;
    gap:10px;
    align-items:center;
    padding-top:6px;
  }

  .stm-cartx-item__price{
    grid-column:auto;
    justify-self:start;
    font-size:12.5px;
  }

  .stm-cartx-item__qty{
    grid-column:auto;
    justify-self:center;
  }

  .stm-cartx-item__sub{
    grid-column:auto;
    justify-self:end;
    font-size:12.5px;
  }

  .stm-cartx-qty{
    padding:6px 8px;
    border-radius:14px;
  }
  .stm-cartx-qty__btn{
    width:32px;
    height:32px;
    border-radius:12px;
  }
  .stm-cartx-qty input.qty,
  .stm-cartx-qty__input{
    width:46px;
    height:32px;
    border-radius:12px;
    font-size:13px;
  }

  .stm-cartx-sum__cta{
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    background:#fff;
    border:1px solid rgba(0,0,0,.10);
    border-radius:18px;
    padding:10px;
    box-shadow:0 18px 60px rgba(0,0,0,.16);
    z-index:999;
    margin:0;
  }

  .stm-cartx-sum__cta .stm-cartx-btn--block{
    height:48px;
    border-radius:18px;
    font-size:14px;
  }

  .stm-cartx-safe{ display:none; }

  .stm-cartx-actions{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
}

/* =================================================
   CART PAGE — FORCE "YOU MAY ALSO LIKE" HORIZONTAL SCROLL
================================================= */
@media (max-width: 1024px){

  body.woocommerce-cart .woocommerce ul.products{
    display: flex !important;
    flex-wrap: nowrap !important;
    flex-direction: row !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;

    gap: 14px !important;

    margin: 0 !important;
    padding: 6px 2px 14px !important;
    list-style: none !important;

    touch-action: pan-x !important;
  }

  body.woocommerce-cart .woocommerce ul.products > li.product{
    float: none !important;
    clear: none !important;

    flex: 0 0 auto !important;
    max-width: none !important;
    margin: 0 !important;

    scroll-snap-align: start !important;
  }

  body.woocommerce-cart .woocommerce ul.products > li.product img{
    height: 120px !important;
    max-height: 120px !important;
    width: 100% !important;
    object-fit: contain !important;
  }

  body.woocommerce-cart .woocommerce .woocommerce-loop-product__title{
    font-size: 13px !important;
    line-height: 1.3 !important;
  }
  body.woocommerce-cart .woocommerce .price{
    font-size: 13px !important;
  }
}

@media (min-width: 769px) and (max-width: 1024px){
  body.woocommerce-cart .woocommerce ul.products > li.product{
    width: calc((100% - (14px * 2)) / 2.5) !important;
    flex: 0 0 calc((100% - (14px * 2)) / 2.5) !important;
  }
}

@media (max-width: 768px){
  body.woocommerce-cart .woocommerce ul.products{
    gap: 12px !important;
  }

  body.woocommerce-cart .woocommerce ul.products > li.product{
    width: calc((100% - 12px) / 1.5) !important;
    flex: 0 0 calc((100% - 12px) / 1.5) !important;
  }

  body.woocommerce-cart .woocommerce ul.products > li.product img{
    height: 110px !important;
    max-height: 110px !important;
  }
}


/* =================================================
   CART CTA — DISABLE STICKY on Tablet/Mobile
   File: assets/css/cart-page.css
   Purpose: Proceed to checkout bar should NOT be fixed/sticky on small screens
================================================= */

@media (max-width: 900px){
  .stm-cartx-sum__cta{
    position: static !important;   /* unsticky */
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    margin: 12px 0 0 !important;   /* spacing under summary */
    box-shadow: none !important;   /* remove floating look */
    z-index: auto !important;
  }

  /* since CTA is no longer fixed, remove extra bottom padding */
  .stm-cartx{
    padding-bottom: 40px !important;
  }
}
