/* ==========================================================================
   WOOCOMMERCE OVERRIDES — Rex Custom Prints
   ========================================================================== */

/* Strip default WC styling in favor of theme look */
.woocommerce ul.products{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:var(--gap);
  list-style:none;
}
.woocommerce ul.products li.product{
  background:var(--paper);
  border:1px solid var(--line);
  padding:0;
  transition:border-color 0.15s ease, box-shadow 0.15s ease;
  position:relative;
}
.woocommerce ul.products li.product:hover{ border-color:var(--ink); box-shadow:6px 6px 0 var(--rex-red); }
.woocommerce ul.products li.product a{ display:block; }
.woocommerce ul.products li.product img{
  width:100%; aspect-ratio:4/5; object-fit:cover; margin:0;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--font-body); text-transform:none; font-size:1rem;
  padding:16px 16px 0; margin:0;
}
.woocommerce ul.products li.product .price{
  font-family:var(--font-mono); padding:8px 16px 18px; display:block; color:var(--ink);
}
.woocommerce ul.products li.product .price del{ color:var(--ink-soft); opacity:1; margin-right:8px; }
.woocommerce ul.products li.product .price ins{ color:var(--rex-red); text-decoration:none; }
.woocommerce ul.products li.product .onsale{
  position:absolute; top:12px; left:12px; right:auto;
  background:var(--rex-red); color:#fff;
  font-family:var(--font-mono); font-size:0.68rem; font-weight:400;
  text-transform:uppercase; letter-spacing:0.05em;
  min-height:auto; min-width:auto; line-height:1;
  padding:5px 10px; border-radius:0;
}
.woocommerce ul.products li.product .button{
  margin:0 16px 18px; width:calc(100% - 32px);
  font-family:var(--font-mono); font-size:0.8rem; text-transform:uppercase;
  background:var(--ink); color:var(--paper); border:2px solid var(--ink);
  padding:10px 0; border-radius:var(--radius);
}
.woocommerce ul.products li.product .button:hover{ background:var(--rex-red); border-color:var(--rex-red); }

/* Shop toolbar (result count + ordering) */
.woocommerce-result-count, .woocommerce-ordering{
  font-family:var(--font-mono); font-size:0.82rem; color:var(--ink-soft);
}
.woocommerce-ordering select{ border:1.4px solid var(--line); padding:8px 12px; background:var(--paper); }
.woocommerce-pagination ul.page-numbers{ display:flex; gap:8px; list-style:none; }
.woocommerce-pagination .page-numbers li a, .woocommerce-pagination .page-numbers li span{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border:1.4px solid var(--line); font-family:var(--font-mono);
}
.woocommerce-pagination .page-numbers li span.current{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

/* Sidebar filter widgets (price filter, attribute filter, layered nav) */
.woocommerce .widget_price_filter .price_slider_amount .button{
  background:var(--ink); border-radius:var(--radius); font-family:var(--font-mono); font-size:0.78rem;
}
.woocommerce .widget_layered_nav ul li a{ font-size:0.9rem; }
.woocommerce .widget_layered_nav_filters ul li a{
  border:1px solid var(--line); border-radius:var(--radius); font-family:var(--font-mono); font-size:0.75rem;
}

/* Single product page */
.woocommerce div.product{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:start;
}
.woocommerce div.product .woocommerce-product-gallery{ width:100%; }
.woocommerce div.product .woocommerce-product-gallery__image{ border:1px solid var(--line); }
.woocommerce div.product .summary{ width:100%; margin:0; }
.woocommerce div.product .summary .product_title{ font-size:clamp(1.6rem,3vw,2.2rem); }
.woocommerce div.product .summary p.price{
  font-family:var(--font-mono); font-size:1.4rem; margin:10px 0 20px; color:var(--ink);
}
.woocommerce div.product .summary p.price del{ color:var(--ink-soft); margin-right:10px; }
.woocommerce div.product .summary p.price ins{ color:var(--rex-red); text-decoration:none; }
.woocommerce div.product .summary .woocommerce-product-details__short-description{
  color:var(--ink-soft); margin-bottom:24px;
}

/* Variation / attribute swatches */
.woocommerce div.product form.cart .variations{ margin-bottom:20px; width:100%; }
.woocommerce div.product form.cart .variations td.label{
  font-family:var(--font-mono); font-size:0.78rem; text-transform:uppercase;
  letter-spacing:0.05em; padding-bottom:10px; display:block;
}
.woocommerce div.product form.cart .variations select{
  width:100%; padding:12px 14px; border:1.4px solid var(--line); border-radius:var(--radius);
  font-family:var(--font-body); background:var(--paper);
}
.woocommerce div.product form.cart .variations tr{ display:block; margin-bottom:16px; }
.woocommerce div.product form.cart .variations td.value{ display:block; }

.woocommerce div.product form.cart .quantity{ float:none; margin-right:12px; }
.woocommerce div.product form.cart .quantity input.qty{
  width:70px; padding:12px; border:1.4px solid var(--line); text-align:center;
}
.woocommerce div.product form.cart .single_add_to_cart_button{
  font-family:var(--font-mono); text-transform:uppercase; font-size:0.85rem;
  background:var(--rex-red); border:2px solid var(--rex-red); color:#fff;
  padding:16px 32px; border-radius:var(--radius);
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover{ background:var(--ink); border-color:var(--ink); }

/* Custom field: artwork upload + instructions, injected before add-to-cart */
.rex-custom-fields{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:24px 0; margin-bottom:24px;
}
.rex-custom-fields .field{ margin-bottom:18px; }
.rex-custom-fields label{
  display:block; font-family:var(--font-mono); font-size:0.78rem;
  text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px;
}
.rex-custom-fields input[type="file"]{
  width:100%; padding:12px; border:1.4px dashed var(--line); background:var(--paper-dim);
  font-family:var(--font-body); font-size:0.85rem;
}
.rex-custom-fields textarea{
  width:100%; padding:12px 14px; border:1.4px solid var(--line);
  font-family:var(--font-body); min-height:90px; border-radius:var(--radius);
}
.rex-custom-fields .form-note{ font-size:0.78rem; color:var(--ink-soft); margin-top:4px; }

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs{
  display:flex; gap:0; border-bottom:1px solid var(--ink); list-style:none; padding:0; margin:60px 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:none; border:none; margin:0; padding:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:block; padding:14px 22px; font-family:var(--font-mono); font-size:0.82rem;
  text-transform:uppercase; letter-spacing:0.04em;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{ background:var(--ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--paper); }
.woocommerce div.product .woocommerce-tabs .panel{ padding:30px 0; }

/* Cart & checkout tables */
.woocommerce table.shop_table{ border:1px solid var(--line); border-collapse:collapse; width:100%; }
.woocommerce table.shop_table th{
  font-family:var(--font-mono); font-size:0.75rem; text-transform:uppercase;
  letter-spacing:0.05em; background:var(--paper-dim); padding:14px; text-align:left;
}
.woocommerce table.shop_table td{ padding:14px; border-top:1px solid var(--line); }
.woocommerce-cart-form .product-remove a{ color:var(--rex-red); }
.woocommerce a.remove{ color:var(--rex-red) !important; }
.woocommerce #content table.cart td.actions .button,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button{
  font-family:var(--font-mono); text-transform:uppercase; font-size:0.8rem;
  background:var(--ink); color:var(--paper); border-radius:var(--radius); padding:14px 26px;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button{
  background:var(--rex-red); width:100%; text-align:center; display:block;
}

/* Checkout form */
.woocommerce-checkout input.input-text, .woocommerce-checkout select, .woocommerce-checkout textarea{
  border:1.4px solid var(--line); padding:12px 14px; border-radius:var(--radius);
}
.woocommerce-checkout #payment{ background:var(--paper-dim); border:1px solid var(--line); padding:20px; }
.woocommerce-checkout #place_order{
  font-family:var(--font-mono); text-transform:uppercase; background:var(--rex-red);
  border:2px solid var(--rex-red); color:#fff; padding:16px 32px; width:100%; border-radius:var(--radius);
}

/* Notices */
.woocommerce-message, .woocommerce-info{
  border-top-color:var(--rex-red); font-family:var(--font-body);
}
.woocommerce-error{ border-top-color:var(--rex-red); }

@media (max-width: 900px){
  .woocommerce div.product{ grid-template-columns:1fr; }
}

/* ==========================================================================
   FIGMA CART / CHECKOUT / ACCOUNT IMPLEMENTATION
   ========================================================================== */
.woocommerce-cart,
.woocommerce-checkout,
.woocommerce-account{
  background:var(--fig-page);
}
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main{
  padding:40px 0 64px;
}
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce{
  max-width:1280px;
  margin:0 auto;
  padding:0 24px;
  color:#0f172a;
}
.woocommerce-cart h1,
.woocommerce-checkout h1,
.woocommerce-account h1,
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-account .entry-title{
  color:var(--fig-navy);
  font-family:var(--font-body);
  font-size:30px;
  font-weight:900;
  letter-spacing:0;
  margin-bottom:28px;
  text-transform:none;
}
.woocommerce table.shop_table{
  border:1px solid var(--fig-line);
  border-radius:16px;
  background:#fff;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
}
.woocommerce table.shop_table th{
  background:#fff;
  border-bottom:1px solid var(--fig-line);
  color:#64748b;
  font-family:var(--font-body);
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  padding:16px;
  text-transform:uppercase;
}
.woocommerce table.shop_table td{
  border-top:1px solid #f1f5f9;
  color:#334155;
  padding:18px 16px;
}
.woocommerce table.shop_table .product-name a{
  color:#1e293b;
  font-weight:800;
}
.woocommerce table.shop_table .product-name a:hover{
  color:var(--fig-orange);
}
.woocommerce-cart-form,
.cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce form.login,
.woocommerce form.register{
  background:#fff;
  border:1px solid var(--fig-line);
  border-radius:16px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.woocommerce-cart-form{ padding:0; }
.cart_totals{
  padding:20px;
}
.cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-account h2,
.woocommerce form.login h2,
.woocommerce form.register h2{
  color:var(--fig-navy);
  font-family:var(--font-body);
  font-size:18px;
  font-weight:900;
  letter-spacing:0;
  text-transform:none;
}
.woocommerce-cart .cart-collaterals .cart_totals{
  width:100%;
}
.woocommerce-cart .cart-collaterals{
  display:flex;
  justify-content:flex-end;
}
.woocommerce-cart .cart-collaterals::before,
.woocommerce-cart .cart-collaterals::after{ display:none; }
.woocommerce-cart-form .coupon{
  display:flex;
  gap:8px;
  align-items:center;
}
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce select,
.woocommerce-cart table.cart td.actions .coupon .input-text{
  border:1px solid #cbd5e1;
  border-radius:8px;
  background:#fff;
  color:#334155;
  font-size:14px;
  padding:11px 13px;
}
.woocommerce input.input-text:focus,
.woocommerce textarea:focus,
.woocommerce select:focus{
  border-color:var(--fig-orange);
  box-shadow:0 0 0 2px rgba(241,105,49,.2);
  outline:none;
}
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-checkout #place_order{
  background:var(--fig-orange);
  border:0;
  border-radius:12px;
  color:#fff;
  font-family:var(--font-body);
  font-size:15px;
  font-weight:800;
  letter-spacing:0;
  padding:13px 22px;
  text-transform:none;
}
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-checkout #place_order:hover{
  background:var(--fig-orange-dark);
  color:#fff;
}
.woocommerce-cart table.cart img{
  width:80px;
  border-radius:12px;
}
.woocommerce .quantity .qty{
  width:64px;
  border:1px solid #cbd5e1;
  border-radius:8px;
  padding:9px;
}
.woocommerce a.remove{
  color:#ef4444 !important;
  font-size:18px;
}
.woocommerce-cart .wc-proceed-to-checkout{
  padding:16px 0 0;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button{
  display:flex;
  justify-content:center;
  width:100%;
  margin-bottom:0;
  padding:16px;
}

.woocommerce-checkout form.checkout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 380px;
  gap:32px;
  align-items:start;
}
.woocommerce-checkout #customer_details{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{
  float:none;
  width:100%;
}
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields,
.woocommerce-checkout-review-order{
  padding:24px;
}
.woocommerce-checkout #order_review_heading{
  display:none;
}
.woocommerce-checkout-review-order{
  position:sticky;
  top:112px;
}
.woocommerce-checkout #payment{
  background:#fff;
  border:0;
  padding:0;
}
.woocommerce-checkout #payment ul.payment_methods{
  border-bottom:1px solid var(--fig-line);
  padding:0 0 16px;
}
.woocommerce-checkout #payment div.payment_box{
  background:#f8fafc;
  border:1px solid var(--fig-line);
  border-radius:12px;
  color:#64748b;
}
.woocommerce-checkout #payment div.payment_box::before{ display:none; }
.woocommerce form .form-row label{
  color:#334155;
  font-size:14px;
  font-weight:700;
}
.woocommerce form .form-row{
  padding:0;
  margin:0 0 16px;
}

.woocommerce-account .woocommerce{
  display:grid;
  grid-template-columns:240px minmax(0, 1fr);
  gap:32px;
}
.woocommerce-account .woocommerce-notices-wrapper,
.woocommerce-account .woocommerce > h2,
.woocommerce-account .woocommerce > form,
.woocommerce-account .u-columns{
  grid-column:1 / -1;
}
.woocommerce-account .woocommerce-MyAccount-navigation{
  overflow:hidden;
  padding:8px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:flex;
  align-items:center;
  border-radius:12px;
  color:#475569;
  font-size:14px;
  font-weight:800;
  padding:11px 12px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{
  background:rgba(241,105,49,.1);
  color:var(--fig-orange);
}
.woocommerce-account .woocommerce-MyAccount-content{
  min-height:360px;
  padding:28px;
}
.woocommerce-account .u-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  max-width:1024px;
  margin:0 auto;
}
.woocommerce-account .u-column1,
.woocommerce-account .u-column2{
  float:none;
  width:auto;
}
.woocommerce form.login,
.woocommerce form.register{
  margin:0;
  padding:28px;
}
.woocommerce-form-login__rememberme{
  display:flex !important;
  gap:8px;
  align-items:center;
}
.woocommerce-LostPassword a,
.woocommerce-privacy-policy-text a,
.woocommerce-account a{
  color:var(--fig-orange);
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  border-top-color:var(--fig-orange);
  border-radius:12px;
  background:#fff;
}

@media (max-width: 980px){
  .woocommerce-checkout form.checkout,
  .woocommerce-account .woocommerce,
  .woocommerce-account .u-columns{
    grid-template-columns:1fr;
  }
  .woocommerce-checkout-review-order{
    position:static;
  }
}
@media (max-width: 680px){
  .woocommerce-cart .woocommerce,
  .woocommerce-checkout .woocommerce,
  .woocommerce-account .woocommerce{
    padding:0 16px;
  }
  .woocommerce-cart-form .coupon{
    flex-direction:column;
    align-items:stretch;
  }
}
