/* Catalog */
.shop-hero { position: relative; display: grid; align-items: center; min-height: clamp(170px, 26vw, 280px); overflow: hidden; background: radial-gradient(90% 120% at 50% 30%, #4a2632 0%, var(--velvet) 55%, var(--velvet-deep) 100%); color: #fff; }
.shop-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.shop-hero::after { content: ""; position: absolute; inset: 0; background: rgba(31, 15, 22, .52); }
.shop-hero .wrap { position: relative; z-index: 1; width: 100%; text-align: center; }
.shop-hero h1 { font-size: var(--step-3); }
.shop-main { padding-block: 26px clamp(46px, 7vw, 86px); }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 18px; color: var(--muted); font-size: .84rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--muted); }
.shop-chips { display: flex; gap: 8px; margin-bottom: 16px; overflow-x: auto; scrollbar-width: none; }
.shop-chips a { flex: none; padding: 7px 16px; border: 1px solid var(--line); font-size: .88rem; transition: background .2s ease, color .2s ease; }
.shop-chips a:hover, .shop-chips a[aria-current] { background: var(--velvet); border-color: var(--velvet); color: #fff; }
.shop-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 10px 12px; margin-bottom: 20px; padding: 12px 14px; background: var(--shell); }
.shop-filters label { display: grid; gap: 3px; color: var(--muted); font-size: .78rem; }
.shop-filters select, .shop-filters input { width: 130px; min-height: 42px; padding-inline: 8px; background: #fff; border: 1px solid var(--line); color: var(--ink); font-size: .9rem; }
.shop-filters button { min-height: 42px; padding-inline: 22px; background: var(--velvet); border: 0; color: #fff; }
.shop-filters .text-link { align-self: center; }
.woocommerce .woocommerce-result-count { margin-block: 10px 18px; color: var(--muted); font-size: .88rem; }
.woocommerce .woocommerce-ordering { margin-bottom: 18px; }
.woocommerce ul.products li.product { position: relative; }
.woocommerce nav.woocommerce-pagination ul { border-color: var(--line); }
.woocommerce nav.woocommerce-pagination ul li { border-color: var(--line); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--velvet); color: #fff; }

/* Wishlist */
.wish-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; background: rgba(248, 244, 241, .92); border: 1px solid var(--line); color: var(--ink); transition: color .2s ease; }
.wish-btn svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; }
.wish-btn:hover { color: var(--danger); }
.wish-btn[aria-pressed="true"] { color: var(--danger); }
.wish-btn[aria-pressed="true"] svg { fill: currentColor; }
.product-card > .wish-btn, .woocommerce ul.products li.product > .wish-btn { position: absolute; z-index: 2; inset-block-start: 8px; inset-inline-end: 8px; }
.wish-count { position: absolute; inset-block-start: 3px; inset-inline-end: 1px; display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding-inline: 4px; border-radius: 9px; background: var(--danger); color: #fff; font-size: .68rem; }
.wish-empty { color: var(--muted); }

/* Product page */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 20px clamp(24px, 4vw, 60px); align-items: start; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product div.images img { background: var(--shell); }
.woocommerce div.product .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 8px; padding: 0; }
.woocommerce div.product .flex-control-thumbs li { float: none; width: auto; }
.woocommerce div.product .product_title { font-size: var(--step-3); margin-bottom: 8px; }
.woocommerce div.product div.summary p.price { margin-bottom: 14px; color: #8a6a35; font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.product-metal { margin-bottom: 14px; color: var(--muted); }
.product-metal b { color: var(--ink); font-weight: 500; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; margin-bottom: 18px; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce .quantity .qty { width: 68px; min-height: 50px; background: #fff; border: 1px solid var(--line); }
.woocommerce div.product form.cart .single_add_to_cart_button { float: none; flex: 1; min-height: 50px; padding-inline: 24px; }
.woocommerce div.product form.cart .wish-btn { width: 50px; height: 50px; }
.product-facts { display: grid; margin: 0 0 16px; padding: 0; list-style: none; border-top: 1px solid var(--line); font-size: .92rem; }
.product-facts li { display: flex; justify-content: space-between; gap: 12px; padding-block: 10px; border-bottom: 1px solid var(--line); }
.product-facts span { color: var(--muted); }
.product-facts a { border-bottom: 1px solid var(--gold); }
.product-design { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; padding: 14px 16px; background: var(--velvet); color: var(--gold-bright); font-size: .92rem; }
.product-design b { color: #fff; font-weight: 500; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-tabs { margin-top: 20px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 22px; margin: 0 0 14px; padding: 0; border-bottom: 1px solid var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 8px 0; color: var(--muted); font-weight: 400; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--gold); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.related > h2 { margin-block: 26px 18px; font-size: var(--step-2); }
.buy-bar { display: none; }

/* Cart drawer */
.cart-drawer { position: fixed; inset-block: 0; inset-inline: auto 0; width: min(420px, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0 18px 18px; background: var(--pearl); border: 0; color: var(--ink); }
.cart-drawer[open] { display: flex; flex-direction: column; animation: mb-drawer .28s ease both; }
.cart-drawer::backdrop { background: rgba(31, 15, 22, .55); }
@keyframes mb-drawer { from { opacity: 0; transform: translateX(32px); } to { opacity: 1; transform: none; } }
html[dir="rtl"] .cart-drawer[open] { animation-name: mb-drawer-rtl; }
@keyframes mb-drawer-rtl { from { opacity: 0; transform: translateX(-32px); } to { opacity: 1; transform: none; } }
.cart-drawer-head { display: flex; align-items: center; justify-content: space-between; padding-block: 10px; border-bottom: 1px solid var(--line); }
.cart-drawer-head h2 { font-size: 1.5rem; }
.mb-drawer-body { flex: 1; min-height: 0; overflow-y: auto; padding-top: 12px; }
.mb-drawer-body ul.product_list_widget { margin: 0; padding: 0; list-style: none; }
.mb-drawer-body li.mini_cart_item { position: relative; padding: 0 0 14px; margin-bottom: 14px; padding-inline-end: 34px; border-bottom: 1px solid var(--line); font-size: .92rem; }
.mb-drawer-body li.mini_cart_item::after { content: ""; display: table; clear: both; }
.cart-drawer .mb-drawer-body ul li.mini_cart_item img { float: inline-start; width: 72px; height: 90px; margin-inline-end: 12px; object-fit: cover; }
.mb-drawer-body li.mini_cart_item a.remove { position: absolute; inset-block-start: 0; inset-inline-end: 0; width: 28px; height: 28px; color: var(--muted) !important; font-size: 1.3rem; line-height: 26px; text-align: center; }
.mb-drawer-body .variation { margin: 4px 0; color: var(--muted); font-size: .8rem; }
.mb-drawer-body .variation dt, .mb-drawer-body .variation dd, .mb-drawer-body .variation p { display: inline; margin: 0; }
.mb-drawer-body .quantity { display: block; color: var(--muted); }
.mb-drawer-body .woocommerce-mini-cart__total { display: flex; justify-content: space-between; margin: 0 0 12px; font-size: 1.05rem; }
.mb-drawer-body .woocommerce-mini-cart__buttons { display: grid; gap: 8px; margin: 0; }
.mb-drawer-body .woocommerce-mini-cart__buttons a { display: flex; align-items: center; justify-content: center; min-height: 48px; background: transparent; border: 1px solid var(--velvet); color: var(--velvet); }
.mb-drawer-body .woocommerce-mini-cart__buttons a.checkout { background: var(--velvet); color: #fff; }
.mb-drawer-body .woocommerce-mini-cart__empty-message { color: var(--muted); }

/* WhatsApp */
.whatsapp-float { position: fixed; z-index: 8; inset-block-end: max(18px, env(safe-area-inset-bottom, 0px)); inset-inline-end: 18px; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: #128c5e; color: #fff; box-shadow: 0 10px 22px -10px rgba(31, 15, 22, .7); }
.whatsapp-float svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }

/* Cart and checkout */
.checkout-steps { display: flex; justify-content: center; gap: clamp(14px, 4vw, 44px); margin: 0 0 26px; padding: 0 0 16px; border-bottom: 1px solid var(--line); list-style: none; color: var(--muted); font-size: .9rem; }
.checkout-steps li { display: flex; align-items: center; gap: 8px; }
.checkout-steps span { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 50%; font-size: .8rem; }
.checkout-steps [aria-current] { color: var(--ink); font-weight: 500; }
.checkout-steps [aria-current] span { background: var(--velvet); border-color: var(--velvet); color: #fff; }
.woocommerce-cart .page-title, .woocommerce-checkout .page-title { text-align: center; }
.woocommerce table.shop_table th { font-weight: 500; }
.woocommerce table.cart img { width: 72px; }
.woocommerce table.cart td.actions .coupon .input-text { min-height: 44px; min-width: 150px; border: 1px solid var(--line); }
.woocommerce .cart-collaterals .cart_totals { float: none; width: min(460px, 100%); margin-inline-start: auto; }
.woocommerce .cart-collaterals .cart_totals h2 { margin-bottom: 10px; font-size: 1.5rem; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { background: var(--velvet); font-size: 1.02rem; }
.woocommerce-checkout .woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 0 clamp(24px, 4vw, 52px); align-items: start; }
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
.woocommerce-checkout #order_review_heading { grid-column: 2; margin-bottom: 10px; font-size: 1.5rem; }
.woocommerce-checkout #order_review { grid-column: 2; padding: 16px; background: var(--shell); }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment div.payment_box { background: var(--pearl); border-radius: 0; color: var(--ink); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment #place_order { width: 100%; float: none; min-height: 52px; font-size: 1.05rem; }
.order-next { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-bottom: 22px; padding: 16px 18px; background: var(--shell); }
.order-next p { flex-basis: 100%; }
.contact-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.contact-links .cta { background: var(--velvet); border-color: var(--velvet); color: #fff; }

@media (max-width: 860px) {
  .woocommerce div.product { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-checkout .woocommerce form.checkout { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-checkout #customer_details, .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; }
}
@media (max-width: 620px) {
  .single-product { padding-bottom: 70px; }
  .buy-bar { position: fixed; z-index: 8; inset-block-end: 0; inset-inline: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 16px max(10px, env(safe-area-inset-bottom, 0px)); background: var(--pearl); border-top: 1px solid var(--line); }
  .buy-bar-price { font-variant-numeric: tabular-nums; font-weight: 500; }
  .buy-bar button { min-height: 46px; padding-inline: 26px; background: var(--velvet); border: 0; color: #fff; }
  .single-product .whatsapp-float { inset-block-end: 82px; }
  .shop-filters label { flex: 1 1 40%; }
  .shop-filters select, .shop-filters input { width: 100%; }
  .shop-filters button { flex: 1 1 100%; }
  .woocommerce .woocommerce-ordering { float: none; width: 100%; }
  .woocommerce .woocommerce-ordering select { width: 100%; }
  .checkout-steps { font-size: .78rem; }
  .woocommerce table.shop_table_responsive tr td, .woocommerce-page table.shop_table_responsive tr td { text-align: end !important; }
}
@media (prefers-reduced-motion: reduce) {
  .cart-drawer[open] { animation: none; }
}

/* Studio sharing and on-body preview */
.stage-modes { display: flex; gap: 8px; margin-bottom: 10px; }
.design-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.design-actions .choice { display: inline-flex; align-items: center; font-size: .86rem; cursor: pointer; }
.design-actions .choice:hover, .stage-modes .choice:hover { border-color: var(--gold-bright); }
.design-status { word-break: break-all; color: var(--velvet-soft); }
#ring-size { width: 100%; min-height: 48px; padding-inline: 10px; background: var(--velvet-deep); border: 1px solid var(--velvet-line); color: #fff; }
.size-guide { margin-top: 8px; color: var(--velvet-soft); font-size: .86rem; }
.size-guide summary { cursor: pointer; }
.size-guide p { margin-top: 6px; }

/* Order tracking */
.track-form { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; max-width: 640px; }
.track-form label { flex: 1 1 200px; display: grid; gap: 4px; color: var(--muted); font-size: .86rem; }
.track-form input { min-height: 48px; padding-inline: 10px; background: #fff; border: 1px solid var(--line); color: var(--ink); }
.track-form .cta { background: var(--velvet); border-color: var(--velvet); color: #fff; }
.track-error { margin-top: 12px; color: var(--danger); }
.track-result { display: grid; gap: 12px; max-width: 760px; margin-top: 26px; padding: 20px; background: var(--shell); }
.track-result h2 { font-size: 1.6rem; }
.track-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; color: var(--muted); font-size: .86rem; text-align: center; }
.track-steps li { position: relative; display: grid; justify-items: center; gap: 6px; }
.track-steps li::before { content: ""; position: absolute; inset-block-start: 8px; inset-inline-start: -50%; width: 100%; height: 2px; background: var(--line); }
.track-steps li:first-child::before { display: none; }
.track-steps li.is-done::before { background: var(--gold); }
.track-steps span { position: relative; width: 18px; height: 18px; border: 2px solid var(--line); border-radius: 50%; background: var(--pearl); }
.track-steps .is-done { color: var(--ink); }
.track-steps .is-done span { background: var(--gold); border-color: var(--gold); }
.track-steps [aria-current] { font-weight: 500; }
.track-items { margin: 0; padding-inline-start: 18px; }
