/* ---------- single product page ---------- */
.single-product-page{ padding:150px var(--edge-gap) 120px; }
.sp-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:70px; max-width:1280px; margin:0 auto; }
@media (max-width:900px){ .sp-grid{ grid-template-columns:1fr; gap:40px; } }

.sp-visual{ position:relative; background:#0f0d0b; aspect-ratio:4/5; overflow:hidden; }
.sp-visual img{ width:100%; height:100%; object-fit:cover; }
.sp-visual .tag{
  position:absolute; top:20px; left:20px;
  background:rgba(15,13,11,0.55); color:var(--paper);
  font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  padding:6px 14px; border-radius:14px; backdrop-filter:blur(4px);
}

.sp-text{ display:flex; flex-direction:column; gap:16px; padding-top:10px; }
.sp-artist{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.sp-title{
  font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
  font-size:clamp(30px,3.6vw,46px); line-height:1.1; color:var(--ink);
}
.sp-specs{
  display:grid; grid-template-columns:1fr 1fr; gap:12px 24px;
  padding:20px 0; margin:8px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.sp-specs div{ display:flex; flex-direction:column; gap:3px; }
.sp-specs .label{ font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--mist); }
.sp-specs .value{ font-size:14px; color:var(--ink); }
.sp-story{ font-size:15px; line-height:1.85; color:#4a463f; max-width:480px; }
.sp-price-row{ margin-top:6px; }
.sp-price{ font-family:'Playfair Display', serif; font-size:30px; color:var(--ink); }
.sp-price ins{ text-decoration:none; }
.sp-price del{ opacity:.5; margin-right:10px; }

/* re-skin WooCommerce's own add-to-cart form to match unspoken */
.single-product-page form.cart{
  display:flex; align-items:center; gap:14px; margin-top:10px; flex-wrap:wrap;
}
.single-product-page form.cart .quantity{ display:flex; }
.single-product-page form.cart .qty{
  width:64px; padding:14px 10px; text-align:center;
  border:1px solid var(--line); background:transparent; color:var(--ink); font-size:14px;
}
.single-product-page form.cart button.single_add_to_cart_button{
  padding:16px 34px; background:var(--ink); color:var(--paper); border:none;
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; cursor:pointer;
  transition:background .3s ease;
}
.single-product-page form.cart button.single_add_to_cart_button:hover{ background:var(--ember); }
.single-product-page .stock{ font-size:12px; color:var(--mist); }
.single-product-page table.variations{ width:100%; margin-bottom:6px; }
.single-product-page table.variations td, .single-product-page table.variations th{ padding:6px 0; font-size:13px; }
.single-product-page .woocommerce-variation-add-to-cart{ display:flex; align-items:center; gap:14px; }

.sp-inquire{
  margin-top:6px; align-self:flex-start;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--mist); border-bottom:1px solid var(--line); padding-bottom:3px;
  transition:color .3s ease, border-color .3s ease;
}
.sp-inquire:hover{ color:var(--ember); border-color:var(--ember); }

/* ---------- checkout ---------- */
.unspoken-checkout-wrap{ padding:150px var(--edge-gap) 120px; max-width:1100px; margin:0 auto; }
.unspoken-checkout-wrap h1{
  font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
  font-size:clamp(30px,3.6vw,46px); margin-bottom:40px; color:var(--ink);
}
.unspoken-checkout-wrap, .unspoken-checkout-wrap * { color:var(--ink); }
.unspoken-checkout-wrap input[type="text"],
.unspoken-checkout-wrap input[type="email"],
.unspoken-checkout-wrap input[type="tel"],
.unspoken-checkout-wrap textarea,
.unspoken-checkout-wrap select{
  width:100%; padding:14px 16px; border:1px solid var(--line); background:transparent;
  font-family:'Inter', sans-serif; font-size:14px; color:var(--ink); margin-bottom:4px;
}
.unspoken-checkout-wrap label{ font-size:12px; letter-spacing:.06em; color:#4a463f; }
.unspoken-checkout-wrap #place_order,
.unspoken-checkout-wrap button.button{
  padding:16px 34px; background:var(--ink); color:var(--paper) !important; border:none;
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; cursor:pointer;
  transition:background .3s ease;
}
.unspoken-checkout-wrap #place_order:hover,
.unspoken-checkout-wrap button.button:hover{ background:var(--ember); }
.unspoken-checkout-wrap #order_review, .unspoken-checkout-wrap .woocommerce-checkout-review-order-table{
  background:transparent; border:1px solid var(--line); padding:24px;
}
.unspoken-checkout-wrap table.shop_table{ width:100%; border-collapse:collapse; }
.unspoken-checkout-wrap table.shop_table th, .unspoken-checkout-wrap table.shop_table td{
  padding:12px 0; border-bottom:1px solid var(--line); font-size:14px;
}

/* ---------- cart page ---------- */
.unspoken-cart-wrap{ padding:150px var(--edge-gap) 120px; max-width:1100px; margin:0 auto; }
.unspoken-cart-wrap h1{
  font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
  font-size:clamp(30px,3.6vw,46px); margin-bottom:40px; color:var(--ink);
}
.unspoken-cart-wrap, .unspoken-cart-wrap * { color:var(--ink); }
.unspoken-cart-wrap table.shop_table{ width:100%; border-collapse:collapse; margin-bottom:40px; }
.unspoken-cart-wrap table.shop_table th{
  text-align:left; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--mist);
  padding:0 0 16px; border-bottom:1px solid var(--line);
}
.unspoken-cart-wrap table.shop_table td{ padding:24px 12px 24px 0; border-bottom:1px solid var(--line); font-size:14px; vertical-align:middle; }
.unspoken-cart-wrap table.shop_table td.product-name a{ font-family:'Playfair Display', serif; font-style:italic; font-size:17px; }
.unspoken-cart-wrap table.shop_table img{ width:64px; height:80px; object-fit:cover; }
.unspoken-cart-wrap .quantity .qty{
  width:56px; padding:10px; text-align:center; border:1px solid var(--line); background:transparent; color:var(--ink);
}
.unspoken-cart-wrap table.shop_table td.product-remove a{
  color:var(--mist); font-size:18px; transition:color .3s ease;
}
.unspoken-cart-wrap table.shop_table td.product-remove a:hover{ color:var(--ember); }
.unspoken-cart-wrap .actions .button, .unspoken-cart-wrap button[name="update_cart"]{
  padding:14px 26px; background:transparent; color:var(--ink) !important; border:1px solid var(--line);
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; cursor:pointer;
}
.unspoken-cart-wrap .cart-collaterals{ margin-top:20px; }
.unspoken-cart-wrap .cart_totals{ max-width:420px; margin-left:auto; border:1px solid var(--line); padding:28px; }
.unspoken-cart-wrap .cart_totals h2{
  font-family:'Playfair Display', serif; font-style:italic; font-weight:400; font-size:22px; margin-bottom:20px;
}
.unspoken-cart-wrap .cart_totals table{ width:100%; }
.unspoken-cart-wrap .cart_totals table th, .unspoken-cart-wrap .cart_totals table td{
  padding:12px 0; border-bottom:1px solid var(--line); font-size:14px;
}
.unspoken-cart-wrap .wc-proceed-to-checkout .checkout-button{
  display:block; text-align:center; margin-top:20px; padding:16px 26px;
  background:var(--ink); color:var(--paper) !important; border:none;
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; transition:background .3s ease;
}
.unspoken-cart-wrap .wc-proceed-to-checkout .checkout-button:hover{ background:var(--ember); }
.unspoken-cart-wrap .woocommerce-message, .unspoken-cart-wrap .woocommerce-info{
  border:1px solid var(--line); padding:16px 20px; margin-bottom:30px; font-size:14px; list-style:none;
}
.unspoken-cart-wrap .cart-empty{ font-size:16px; margin-bottom:20px; }
.unspoken-cart-wrap .return-to-shop .button{
  display:inline-block; padding:14px 26px; background:var(--ink); color:var(--paper) !important;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
}
@media (max-width:760px){
  .unspoken-cart-wrap table.shop_table thead{ display:none; }
  .unspoken-cart-wrap table.shop_table tr{ display:block; padding:16px 0; }
  .unspoken-cart-wrap table.shop_table td{ display:block; border:none; padding:4px 0; }
  .unspoken-cart-wrap .cart_totals{ margin-left:0; max-width:none; }
}
