/* ============================================================
   SADAN — WooCommerce surfaces
   ============================================================ */

.woo-wrap { padding-block: clamp(7.5rem, 13vw, 10rem) var(--rhythm); }

/* ---------- shop archive ---------- */
.shop-intro { margin-bottom: clamp(2.5rem, 5vw, 4.5rem); max-width: 46ch; }
.shop-intro .eyebrow { display: block; margin-bottom: .875rem; }
.shop-intro p { color: var(--ink-soft); margin-top: 1.25rem; }

ul.products {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1rem, 3.5vw, 3.5rem);
  margin: 0; padding: 0; list-style: none;
}
ul.products::before, ul.products::after { content: none; }
ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; }

.woocommerce-notices-wrapper:empty { display: none; }

/* ---------- single product ---------- */
.single-product .product {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(2rem, 6vw, 5.5rem);
  align-items: start;
}
.single-product .product::before, .single-product .product::after { content: none; }

/* woocommerce-layout.css still floats these at 48% — we lay them out with grid. */
.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce-page div.product div.images,
.woocommerce-page div.product div.summary {
  float: none;
  width: 100%;
  margin: 0;
  clear: none;
}
.woocommerce div.product div.woocommerce-tabs { width: 100%; float: none; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  float: none; width: auto; margin: 0; clear: none;
}
.woocommerce ul.products li.product::before { content: none; }

.woocommerce-product-gallery { position: relative; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image { background: var(--blush); }
.woocommerce-product-gallery__image img { width: 100%; height: auto; display: block; }
.woocommerce-product-gallery .flex-control-thumbs {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: .625rem;
  margin: .625rem 0 0; padding: 0; list-style: none;
}
.woocommerce-product-gallery .flex-control-thumbs li { margin: 0; }
.woocommerce-product-gallery .flex-control-thumbs img {
  width: 100%; cursor: pointer; opacity: .55; background: var(--blush);
  transition: opacity var(--med) var(--ease);
}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }
.woocommerce-product-gallery__trigger {
  position: absolute; z-index: 5; inset-block-start: 1rem; inset-inline-end: 1rem;
  width: 2.25rem; height: 2.25rem; border-radius: 999px;
  background: rgba(253,251,250,.85); backdrop-filter: blur(8px);
  display: grid; place-items: center; font-size: 0;
}
.woocommerce-product-gallery__trigger::after {
  content: "⤢"; font-size: .875rem; color: var(--ink);
}

.product-eyebrow { display: block; margin-bottom: 1rem; }

.single-product .product_title {
  font-family: var(--display); font-weight: 300;
  font-size: clamp(2.25rem, 4.2vw, 3.5rem); line-height: 1.02;
  letter-spacing: -.01em; margin-bottom: 1rem;
}
html[dir="rtl"] .single-product .product_title { font-family: var(--arabic); line-height: 1.3; }

.single-product .price {
  display: block; font-size: 1.125rem; color: var(--ink); margin-bottom: 1.75rem;
  font-weight: 400;
}
.single-product .price del { color: var(--ink-faint); margin-inline-end: .5rem; }
.single-product .price ins { text-decoration: none; }

.woocommerce-product-details__short-description {
  color: var(--ink-soft); max-width: 48ch; padding-bottom: 1.75rem;
  border-bottom: 1px solid var(--line);
}

.sadan-flash {
  position: absolute; z-index: 4; inset-block-start: 1rem; inset-inline-start: 1rem;
  background: var(--ink); color: var(--cream);
  font-size: .625rem; letter-spacing: .16em; text-transform: uppercase;
  padding: .35rem .7rem; border-radius: 999px;
}
html[dir="rtl"] .sadan-flash { letter-spacing: 0; font-size: .75rem; text-transform: none; }

/* ---------- variation form ---------- */
.variations { width: 100%; border-collapse: collapse; margin: 1.75rem 0 0; }
.variations tr { display: block; margin-bottom: 1.5rem; }
.variations th, .variations td { display: block; text-align: start; padding: 0; }
.variations th.label label {
  font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--ink-faint); margin-bottom: .75rem; display: block;
}
html[dir="rtl"] .variations th.label label { letter-spacing: 0; font-size: .875rem; text-transform: none; }

.variations select {
  width: 100%; padding: .85rem 1rem; background: var(--porcelain);
  border: 1px solid var(--line); border-radius: 0; appearance: none;
  font-size: .9375rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%), linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%);
  background-position: calc(100% - 20px) calc(50% + 2px), calc(100% - 15px) calc(50% + 2px);
  background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
}
html[dir="rtl"] .variations select { background-position: 15px calc(50% + 2px), 20px calc(50% + 2px); }
.variations select:focus-visible { outline: 1px solid var(--ink); outline-offset: 2px; }

.reset_variations {
  display: inline-block; margin-top: .625rem; font-size: .75rem; color: var(--ink-faint);
  border-bottom: 1px solid var(--line);
}

.woocommerce-variation-price { margin-bottom: 1.25rem; font-size: 1.0625rem; }
.woocommerce-variation-availability p { font-size: .8125rem; color: var(--ink-soft); }

/* ---------- add to cart ---------- */
.cart { display: flex; align-items: stretch; gap: .75rem; flex-wrap: wrap; margin-top: 1.5rem; }
.quantity { display: inline-flex; align-items: center; border: 1px solid var(--line); background: var(--porcelain); }
.quantity .qty {
  width: 3.5rem; height: 100%; min-height: 3rem; text-align: center;
  border: 0; background: transparent; padding: 0; font-size: .9375rem;
  -moz-appearance: textfield;
}
.quantity .qty::-webkit-outer-spin-button, .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity .qty:focus-visible { outline: 1px solid var(--ink); outline-offset: -1px; }

.single_add_to_cart_button, .button, button.button, input.button, a.button, .wc-block-components-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  padding: .95rem 2.1rem; min-height: 3rem;
  font-family: var(--body);
  font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 400;
  border: 1px solid var(--ink); background: var(--ink); color: var(--cream);
  border-radius: 999px; cursor: pointer;
  transition: background var(--med) var(--ease), color var(--med) var(--ease), opacity var(--med) var(--ease);
}
html[dir="rtl"] .single_add_to_cart_button, html[dir="rtl"] .button, html[dir="rtl"] button.button,
html[dir="rtl"] input.button, html[dir="rtl"] a.button {
  font-family: var(--arabic); letter-spacing: 0; font-size: .9375rem; text-transform: none;
}
.single_add_to_cart_button:hover, .button:hover, button.button:hover, input.button:hover, a.button:hover {
  background: transparent; color: var(--ink);
}
.single_add_to_cart_button { flex: 1 1 12rem; }
.single_add_to_cart_button.disabled, .button.disabled { opacity: .35; cursor: not-allowed; }

.button.alt, .checkout-button { background: var(--ink); color: var(--cream); }

.product-reassurance { margin-top: 1.75rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.product-reassurance li { font-size: .8125rem; color: var(--ink-soft); }
.product-reassurance li + li { margin-top: .5rem; }

/* ---------- spec table ---------- */
.product-specs { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.product-specs .eyebrow { display: block; margin-bottom: 1.25rem; }
.product-specs dl { margin: 0; }
.spec-row {
  display: grid; grid-template-columns: 6.5rem 1fr; gap: 1rem;
  padding-block: .75rem; border-bottom: 1px solid var(--line-soft);
}
.spec-row dt { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }
html[dir="rtl"] .spec-row dt { letter-spacing: 0; font-size: .875rem; text-transform: none; }
.spec-row dd { margin: 0; font-size: .9375rem; color: var(--ink); }

.other-piece { border-top: 1px solid var(--line); margin-top: var(--rhythm); }
.duo--single { grid-template-columns: repeat(2, 1fr); }
.duo--single .piece:only-child { grid-column: span 1; }

/* tabs — quiet */
.woocommerce-tabs { grid-column: 1 / -1; margin-top: clamp(3rem, 6vw, 5rem); }
.woocommerce-tabs ul.tabs { display: flex; gap: 2rem; border-bottom: 1px solid var(--line); margin-bottom: 2rem; padding: 0; }
.woocommerce-tabs ul.tabs li { margin: 0; }
.woocommerce-tabs ul.tabs a {
  display: block; padding-bottom: .875rem; font-size: .75rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--ink-faint); border-bottom: 1px solid transparent; margin-bottom: -1px;
}
html[dir="rtl"] .woocommerce-tabs ul.tabs a { letter-spacing: 0; font-size: .9375rem; text-transform: none; }
.woocommerce-tabs ul.tabs li.active a { color: var(--ink); border-bottom-color: var(--ink); }
.woocommerce-tabs .panel { max-width: 62ch; color: var(--ink-soft); }
.woocommerce-tabs .panel h2 { display: none; }

/* ---------- cart ---------- */
.woocommerce-cart-form table.shop_table { width: 100%; border-collapse: collapse; }
.shop_table th {
  text-align: start; font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase;
  font-weight: 400; color: var(--ink-faint); padding-bottom: 1rem; border-bottom: 1px solid var(--line);
}
html[dir="rtl"] .shop_table th { letter-spacing: 0; font-size: .875rem; text-transform: none; }
.shop_table td { padding-block: 1.5rem; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
.shop_table .product-thumbnail img { width: 84px; height: auto; background: var(--blush); }
.shop_table .product-name a { font-family: var(--display); font-size: 1.125rem; }
html[dir="rtl"] .shop_table .product-name a { font-family: var(--arabic); }
.shop_table .product-remove a {
  display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem;
  color: var(--ink-faint); font-size: 1.1rem;
}
.shop_table .product-remove a:hover { color: var(--ink); }

.cart-collaterals { margin-top: clamp(2.5rem, 5vw, 4rem); display: flex; justify-content: flex-end; }
.cart_totals { width: min(28rem, 100%); }
.cart_totals h2 { font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-faint); font-weight: 400; margin-bottom: 1.25rem; }
html[dir="rtl"] .cart_totals h2 { letter-spacing: 0; font-size: .875rem; text-transform: none; }
.cart_totals table { width: 100%; border-collapse: collapse; }
.cart_totals th, .cart_totals td { padding-block: .875rem; border-bottom: 1px solid var(--line-soft); text-align: start; font-weight: 400; }
.cart_totals td { text-align: end; }
.cart_totals .order-total th, .cart_totals .order-total td { font-size: 1.0625rem; border-bottom: 0; padding-top: 1.25rem; }
.wc-proceed-to-checkout { margin-top: 1.75rem; }
.wc-proceed-to-checkout .checkout-button { width: 100%; }

.coupon { display: flex; gap: .625rem; margin-bottom: 2rem; flex-wrap: wrap; }
.coupon .input-text { flex: 1 1 12rem; }
.cart-empty-note { color: var(--ink-soft); }

/* ---------- checkout ---------- */
.woocommerce-checkout .woo-wrap > .woocommerce { display: block; }
/* Woo emits #customer_details, #order_review_heading and #order_review as three
   siblings. Place them explicitly or the heading and the panel end up in
   different rows. */
form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: clamp(1rem, 2.5vw, 2rem) clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}
#customer_details      { grid-column: 1; grid-row: 1 / span 2; min-width: 0; }
#order_review_heading  { grid-column: 2; grid-row: 1; margin: 0; }
#order_review          { grid-column: 2; grid-row: 2; min-width: 0; }
form.checkout > .woocommerce-NoticeGroup,
form.checkout > .woocommerce-form-coupon-toggle { grid-column: 1 / -1; }

/* one address column, not two floated halves */
.col2-set { display: block; width: 100%; }
.col2-set .col-1, .col2-set .col-2 { float: none; width: 100%; margin: 0; }
.col2-set .col-2 { margin-top: 2.5rem; }
#order_review_heading { font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-faint); font-weight: 400; margin-bottom: 1.25rem; }
html[dir="rtl"] #order_review_heading { letter-spacing: 0; font-size: .875rem; text-transform: none; }
#order_review { background: var(--blush); padding: clamp(1.5rem, 3vw, 2.25rem); position: sticky; top: 6rem; }

.woocommerce-billing-fields h3, .woocommerce-additional-fields h3, .woocommerce-shipping-fields h3 {
  font-family: var(--display); font-weight: 300; font-size: 1.5rem; margin-bottom: 1.5rem;
}
html[dir="rtl"] .woocommerce-billing-fields h3 { font-family: var(--arabic); }

.form-row { margin-bottom: 1.25rem; display: block; }
.form-row label { display: block; font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: .5rem; }
html[dir="rtl"] .form-row label { letter-spacing: 0; font-size: .875rem; text-transform: none; }
.form-row .required { color: var(--ink); text-decoration: none; }

.input-text, .form-row input[type="text"], .form-row input[type="email"], .form-row input[type="tel"],
.form-row input[type="password"], .form-row textarea, .form-row select, .select2-container .select2-selection {
  width: 100%; padding: .85rem 1rem; min-height: 3rem;
  background: var(--porcelain); border: 1px solid var(--line); border-radius: 0;
  font-size: .9375rem; color: var(--ink);
}
.input-text::placeholder { color: var(--ink-faint); }
.input-text:focus-visible, .form-row select:focus-visible, .form-row textarea:focus-visible { outline: 1px solid var(--ink); outline-offset: 2px; }
.form-row textarea { min-height: 6rem; resize: vertical; }
.sadan-hidden { display: none !important; }

.select2-container--default .select2-selection--single { height: auto; border-radius: 0; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding: 0; color: var(--ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); inset-inline-end: 12px; }
.select2-dropdown { border-color: var(--line); border-radius: 0; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--blush); color: var(--ink); }

#payment { background: transparent; border-radius: 0; margin-top: 1.5rem; }
#payment ul.payment_methods { padding: 0; border-bottom: 1px solid var(--line); margin-bottom: 1.5rem; }
#payment li.wc_payment_method { list-style: none; margin-bottom: 1rem; }
#payment li.wc_payment_method > label {
  display: flex; align-items: center; gap: .625rem; font-size: .9375rem;
  letter-spacing: 0; text-transform: none; color: var(--ink); cursor: pointer; margin: 0;
}
#payment li.wc_payment_method input[type="radio"] { accent-color: var(--ink); width: 1rem; height: 1rem; }
#payment .payment_box {
  background: var(--porcelain); border: 1px solid var(--line);
  padding: 1.25rem; margin-top: .75rem; font-size: .875rem; color: var(--ink-soft);
}
#payment .payment_box::before { content: none; }
#payment .place-order { padding: 0; }
#payment #place_order { width: 100%; }
.woocommerce-terms-and-conditions-wrapper { font-size: .8125rem; color: var(--ink-soft); margin-bottom: 1.25rem; }

/* ---------- notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  background: var(--blush); border: 0; border-inline-start: 2px solid var(--ink);
  padding: 1rem 1.25rem; margin-bottom: 1.5rem; list-style: none;
  font-size: .9375rem; color: var(--ink); display: flex; align-items: center;
  gap: 1rem; flex-wrap: wrap; justify-content: space-between;
}
.woocommerce-error { border-inline-start-color: var(--cw-burgundy); }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { content: none; }
.woocommerce-message .button, .woocommerce-info .button { padding: .55rem 1.25rem; min-height: 0; font-size: .6875rem; }

/* ---------- order received ---------- */
.woocommerce-order { max-width: 46rem; }
.woocommerce-thankyou-order-received { font-family: var(--display); font-size: clamp(1.75rem, 3.4vw, 2.5rem); font-weight: 300; line-height: 1.15; margin-bottom: 2rem; }
html[dir="rtl"] .woocommerce-thankyou-order-received { font-family: var(--arabic); }
.woocommerce-order-overview {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: 1.5rem; padding: 1.75rem 0; border-block: 1px solid var(--line); margin-bottom: 2.5rem;
}
.woocommerce-order-overview li { font-size: 1.0625rem; }
.woocommerce-order-overview li strong { display: block; font-weight: 400; }
.woocommerce-order-overview li {
  font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-faint);
}
html[dir="rtl"] .woocommerce-order-overview li { letter-spacing: 0; font-size: .875rem; text-transform: none; }
.woocommerce-order-overview li strong { font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--ink); margin-top: .5rem; }

/* ---------- my account ---------- */
.woocommerce-MyAccount-navigation ul { border-bottom: 1px solid var(--line); display: flex; gap: 1.75rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
.woocommerce-MyAccount-navigation a { display: block; padding-bottom: .875rem; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-faint); }
html[dir="rtl"] .woocommerce-MyAccount-navigation a { letter-spacing: 0; font-size: .9375rem; text-transform: none; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--ink); }

/* ---------- responsive ---------- */
@media (max-width: 900px) {
  .single-product .product { grid-template-columns: 1fr; gap: 2rem; }
  form.checkout { grid-template-columns: 1fr; }
  #order_review { position: static; }
}

@media (max-width: 640px) {
  ul.products { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .shop_table thead { display: none; }
  .shop_table tr { display: grid; grid-template-columns: 84px 1fr auto; gap: .75rem 1rem; padding-block: 1.25rem; border-bottom: 1px solid var(--line-soft); align-items: center; }
  .shop_table td { display: block; padding: 0; border: 0; }
  .shop_table td.product-remove { grid-row: 1; grid-column: 3; }
  .shop_table td.product-thumbnail { grid-row: 1 / span 2; grid-column: 1; }
  .shop_table td.product-name { grid-column: 2; }
  .shop_table td.product-price { display: none; }
  .shop_table td.product-quantity { grid-column: 2; }
  .shop_table td.product-subtotal { grid-column: 3; text-align: end; }
  .shop_table td::before { content: attr(data-title) ": "; display: none; }
  .cart-collaterals { justify-content: stretch; }
  .cart_totals { width: 100%; }
  .cart { flex-direction: column; }
  .quantity { align-self: flex-start; }
  .single_add_to_cart_button { width: 100%; }
}
