/*!
 * PaviBhuvi — WooCommerce skin.
 * Loaded after WooCommerce's own woocommerce-general.css/woocommerce-
 * layout.css (see inc/enqueue.php) on purpose: core handles the fiddly
 * structural bits (responsive table collapse, form validation states,
 * the star-rating icon font, RTL) correctly for free, and this file only
 * re-skins colour/spacing/type on top of it.
 */

/* generic content wrapper used by cart/checkout/account (their own
   default templates — not overridden by this theme, see content-
   product.php's header comment for why) */
.woo-wrap{max-width:1180px;margin:0 auto}

/* notices */
.woocommerce-message,.woocommerce-error,.woocommerce-info{list-style:none;border:1px solid var(--border);border-left:4px solid var(--primary);background:var(--surface);padding:16px 20px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.woocommerce-error{border-left-color:oklch(50% .17 25)}
.woocommerce-message .button,.woocommerce-error .button,.woocommerce-info .button{order:2}

/* ---------- shop layout: filters sidebar + products grid ---------- */
.shop-wrap{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(24px,4vw,54px);padding:clamp(30px,4vw,48px) 5% clamp(56px,8vw,110px);align-items:start}
.shop-main{min-width:0}

/* WooCommerce core layout.css floats every li.product at a fixed %
   width and drops ::before/::after table clearfixes — inside our
   display:grid that renders as scattered cards plus phantom empty
   cells. #main gives us ID specificity so those rules can never win,
   regardless of stylesheet load order. */
#main ul.products{clear:none}
#main ul.products::before,#main ul.products::after{content:none}
#main ul.products li.product{float:none;clear:none;width:auto;min-width:0;margin:0}
#main ul.products li.product.first,#main ul.products li.product.last{clear:none;margin-right:0}

/* Card internals — core sets a 1em title, margin under the image and
   a block-level .price; restore the boutique card styling. */
#main li.product a img{display:block;margin:0}
#main li.product .photo img{height:100%}
#main li.product h3{padding:0;font-size:23px;font-weight:600}
#main li.product .price{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:15px;font-weight:600;margin:2px 0 0}
#main li.product .price del{opacity:.7}

/* Core's green circle .onsale → our flat gold tag (top-right so it
   doesn't fight the .tag badge on the left). */
#main span.onsale{top:12px;right:12px;left:auto;min-width:0;min-height:0;line-height:normal;padding:4px 10px;background:var(--gold);color:#fff;border-radius:2px;font-size:12px;font-weight:600}
#main li.product .onsale{top:12px;right:12px;left:auto;margin:0}

/* Same trick for the product page: core forces div.summary to a
   floated 48% column, which squeezes it inside the .pdp grid cell. */
#main div.product div.summary{float:none;clear:none;width:auto;margin-bottom:0}
/* Grid children default to min-width:auto, so an unbreakable word like
   a long product title can push the 1fr column past the viewport on
   small screens. */
#main .pdp>*{min-width:0}
#main .product_title{overflow-wrap:break-word}
#main div.product .woocommerce-product-rating{margin-bottom:0}
#main .woocommerce-product-rating .star-rating{font-size:16px}
#main form.cart .variations select{min-width:0}

/* Core also ships its own boxed-tab styling (.woocommerce div.product
   .woocommerce-tabs ul.tabs li) which outranks our underline tabs — reset
   the pieces we don't use, our .woocommerce-tabs rules below supply
   the rest. */
#main .woocommerce-tabs ul.tabs{padding:0}
#main .woocommerce-tabs ul.tabs li{background:none;border:0;border-radius:0;padding:0;margin:0}
#main .woocommerce-tabs ul.tabs li::before,#main .woocommerce-tabs ul.tabs li::after{content:none;box-shadow:none}
#main .woocommerce-tabs ul.tabs li a{padding:14px 26px;font-weight:600;font-size:14.5px;color:var(--muted)}
#main .woocommerce-tabs ul.tabs li a:hover{color:var(--primary)}
#main .woocommerce-tabs ul.tabs li.active a{color:var(--primary);box-shadow:none}
#main .woocommerce-tabs ul.tabs::before{display:none}
#main .woocommerce-tabs .panel{padding:clamp(22px,3vw,36px) 4px}

/* ---------- shop filters sidebar ---------- */
.filters{position:sticky;top:calc(126px + 12px);display:flex;flex-direction:column;gap:0;border:1px solid var(--border);background:var(--surface)}
.f-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}
.f-head h2{font-size:24px}
.f-head a{font-size:12.5px;color:var(--gold-deep);text-decoration:underline;font-weight:600}
.f-close{display:none}
.f-group{padding:18px 20px;border-bottom:1px solid var(--border)}
.f-group:last-child{border-bottom:0}
.f-group>h3{font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:14px}
.f-check{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:14px;cursor:pointer;transition:color .2s}
.f-check:hover{color:var(--primary)}
label.f-check input{position:absolute;opacity:0;width:0;height:0}
.f-check-box{width:16px;height:16px;border:1px solid var(--border);display:inline-block;flex:none;position:relative;transition:background .2s,border-color .2s,box-shadow .2s}
a.f-check.active .f-check-box,a.f-check:hover .f-check-box,label.f-check:hover .f-check-box{border-color:var(--primary)}
label.f-check input:checked+.f-check-box{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
label.f-check input:checked+.f-check-box::after{content:'';position:absolute;left:5px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
label.f-check input:focus-visible+.f-check-box{outline:2px solid var(--gold-deep);outline-offset:2px}
.f-check span:not(.f-check-box){flex:1}
.f-check em{font-style:normal;font-size:12px;color:var(--muted);background:var(--background);border:1px solid var(--border);border-radius:20px;padding:1px 8px}
a.f-check.f-cat{color:var(--ink);text-decoration:none}
a.f-check.f-cat:hover{color:var(--primary)}
.f-col{display:inline-flex;align-items:center;gap:8px;font-size:13px;margin:0 14px 10px 0;cursor:pointer}
.f-col input{position:absolute;opacity:0;width:0}
.f-col i{width:20px;height:20px;border-radius:50%;background:var(--c);border:1px solid color-mix(in oklab,var(--ink) 20%,transparent);transition:box-shadow .2s,transform .2s;display:block}
.f-col:hover i{transform:scale(1.12)}
.f-col input:checked+i{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--c);transform:scale(1.12)}
.f-col input:focus-visible+i{outline:2px solid var(--gold-deep);outline-offset:2px}
.f-sizes{display:flex;gap:8px;flex-wrap:wrap}
.f-size{min-width:44px;height:40px;font-size:13px}
.f-price-out{display:block;font-size:14px;font-weight:600;color:var(--primary);margin-top:10px}
input[type="range"].f-range{width:100%;accent-color:var(--gold-deep);height:26px;cursor:pointer}
.f-toggle{display:none;align-items:center;gap:8px;padding:12px 22px;border:1px solid var(--primary);color:var(--primary);font-weight:600;font-size:14px;background:var(--surface);border-radius:2px;margin:0 5% 4px}
.f-toggle svg{width:18px;height:18px}
.f-apply-wrap{padding-top:20px}

/* ---------- toolbar: result count + ordering (native WC markup) ---------- */
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.toolbar .woocommerce-result-count{font-size:13.5px;color:var(--muted);margin:0}
.toolbar .woocommerce-ordering{margin:0}
.toolbar .woocommerce-ordering select{border:1px solid var(--border);background:var(--surface);padding:9px 12px;font:inherit;color:var(--ink);border-radius:2px}

/* subcategory tiles (shown automatically above the result count when a
   category has children) */
ul.products li.product-category{list-style:none;position:relative;overflow:hidden;background:var(--primary);aspect-ratio:4/3}
ul.products li.product-category a{display:block;height:100%;color:#fff}
ul.products li.product-category img{width:100%;height:100%;object-fit:cover;opacity:.85}
ul.products li.product-category h2,ul.products li.product-category h3{position:absolute;left:16px;bottom:14px;font-family:var(--font-heading);font-size:22px;margin:0}
ul.products li.product-category mark{background:none;color:inherit;opacity:.85;font-size:12px}

/* ---------- pagination (native WC markup) ---------- */
.woocommerce-pagination{margin-top:44px}
.woocommerce-pagination ul.page-numbers{display:flex;gap:8px;justify-content:center;list-style:none;flex-wrap:wrap}
.woocommerce-pagination .page-numbers li{list-style:none}
.woocommerce-pagination a.page-numbers,.woocommerce-pagination span.page-numbers{display:flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--border);background:var(--surface);font-weight:600;font-size:14px;transition:all .2s}
.woocommerce-pagination a.page-numbers:hover{border-color:var(--primary);color:var(--primary)}
.woocommerce-pagination span.page-numbers.current{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}

/* ---------- product page layout: gallery + summary ---------- */
.pdp{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(30px,4vw,64px);padding:clamp(10px,2vw,24px) 5% clamp(24px,3vw,40px);align-items:start}

/* ---------- product gallery / lens zoom ---------- */
.pdp-gal{position:sticky;top:calc(126px + 12px)}
/* Sale badge renders inside .pdp-gal (above .zoom-box which is also positioned) */
.pdp-gal>.tag.sale{z-index:4}
.zoom-box{position:relative;overflow:hidden;background:var(--blush);cursor:crosshair;aspect-ratio:2/3}
.zoom-box>img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.zoom-box.inner-zoom>img{transition:transform .25s ease}
.zoom-box.inner-zoom:hover>img{transform:scale(1.9)}
.lens{position:absolute;z-index:3;border:1.5px solid var(--gold);background:oklch(95% .02 90/.22);box-shadow:0 0 0 1px oklch(25% .05 158/.15);pointer-events:none;display:none}
.zoom-view{position:absolute;top:0;left:calc(100% + 18px);width:94%;height:100%;z-index:6;background-color:var(--surface);background-repeat:no-repeat;border:1px solid var(--border);box-shadow:0 18px 50px oklch(25% .05 158/.18);display:none}
.zoom-box.zooming .lens,.zoom-box.zooming .zoom-view{display:block}
.zoom-hint{position:absolute;right:12px;bottom:12px;z-index:3;background:color-mix(in oklab,var(--primary) 82%,transparent);color:var(--primary-foreground);font-size:11.5px;font-weight:600;letter-spacing:.06em;padding:6px 12px;border-radius:20px;pointer-events:none;display:flex;gap:6px;align-items:center}
.zoom-hint svg{width:13px;height:13px}
.thumbs{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}
.th{width:86px;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--border);background:var(--blush);padding:0;transition:border-color .2s,box-shadow .2s,transform .2s}
.th img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.th:hover{transform:translateY(-2px)}
.th.on{border-color:var(--gold-deep);box-shadow:0 0 0 1px var(--gold-deep)}

/* ---------- product summary ---------- */
.pdp-sum{display:flex;flex-direction:column;gap:15px}
.pdp-sum .product_title{font-size:clamp(34px,3.6vw,48px);color:var(--primary)}
.pd-sub{color:var(--muted);font-size:14px;margin-top:-8px}
.pd-rate{display:flex;align-items:center;gap:10px;font-size:13.5px}
.woocommerce-product-rating{display:flex;align-items:center;gap:10px;margin:0}
.woocommerce-product-rating .star-rating{margin:0;font-size:16px;color:var(--gold-deep)}
.woocommerce-product-rating .woocommerce-review-link{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.woocommerce-product-rating .woocommerce-review-link:hover{color:var(--gold-deep)}
.star-rating{color:var(--gold-deep)}
.pdp-sum .price{font-size:27px;font-weight:700;color:var(--primary);margin:0}
.pdp-sum .price del{font-size:17px;opacity:.7;margin-right:8px}
.pdp-sum .price ins{text-decoration:none}
.woocommerce-product-details__short-description{color:var(--muted);font-size:15px;line-height:1.7;padding-bottom:6px;border-bottom:1px solid var(--border)}
.woocommerce-product-details__short-description p:last-child{margin-bottom:0}
.pd-sw{display:flex;gap:10px}
.psw{width:30px;height:30px;border-radius:50%;background:var(--c);border:1px solid color-mix(in oklab,var(--ink) 22%,transparent)}
.pd-fabric{font-size:13.5px;color:var(--muted)}
.pd-fabric b{color:var(--ink);font-weight:600}
.product_meta{border-top:1px solid var(--border);padding-top:16px;display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--muted)}
.product_meta>span{display:block}
.product_meta a{color:var(--muted);text-decoration:underline}
.product_meta a:hover{color:var(--gold-deep)}
.pd-meta{border-top:1px solid var(--border);padding-top:16px;display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--muted)}
.pd-meta b{color:var(--ink);font-weight:600;min-width:92px;display:inline-block}
.pd-meta a{color:var(--muted);text-decoration:underline}
.pd-meta a:hover{color:var(--gold-deep)}
.pd-perks{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border:1px solid var(--border);background:var(--surface);padding:14px;margin-top:4px}
.pd-perks li{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:12px;color:var(--muted)}
.pd-perks svg{width:22px;height:22px;color:var(--gold-deep)}

/* ---------- variations: native <select> hidden + visually replaced by
   button pills built by assets/js/product-variations.js. The table stays
   in the DOM (so WooCommerce's own JS keeps working) and only disappears
   visually once JS confirms it has built a working replacement. ---------- */
.pdp-sum table.variations{width:100%;margin:0}
.pdp-sum table.variations tbody{display:block}
.pdp-sum table.variations tr{display:block}
.pdp-sum table.variations td.label{display:none}
.pdp-sum table.variations td.value{display:block}
.pdp-sum table.variations td.value select{border:1px solid var(--border);background:var(--surface);padding:11px 14px;font:inherit;width:100%;max-width:260px}
.pdp-sum table.variations.pb-enhanced{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden}
.pdp-sum .reset_variations{display:inline-block;margin-top:8px;font-size:12.5px;color:var(--muted);text-decoration:underline}
.pb-size-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.pb-size-pills .size{border:1px solid var(--border);background:var(--surface);padding:10px 16px;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.pb-size-pills .size:hover{border-color:var(--primary);color:var(--primary)}
.pb-size-pills .size[aria-checked="true"]{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}
.pb-size-pills .size[disabled]{opacity:.4;cursor:not-allowed;text-decoration:line-through}
/* Core's default .button.alt is purple — keep the boutique green. */
#main .single_add_to_cart_button.button.alt,#main .single_add_to_cart_button.button.alt:hover{background-color:var(--primary);color:var(--primary-foreground)}
#main .single_add_to_cart_button.button.alt:hover{background-color:var(--ink)}
.single_variation_wrap{margin-top:4px}
.woocommerce-variation-price .price{font-size:22px}
.woocommerce-variation-availability .stock{margin:6px 0}
.woocommerce-variation-description p{color:var(--muted);font-size:14px}

/* ---------- quantity + add to cart ---------- */
.quantity{display:inline-flex;align-items:center;border:1px solid var(--border);background:var(--surface)}
.quantity .qty{width:56px;height:46px;border:0;background:transparent;text-align:center;font:inherit;font-weight:700;-moz-appearance:textfield;appearance:textfield}
.quantity .qty::-webkit-inner-spin-button,.quantity .qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.single_add_to_cart_button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;font-weight:600;font-size:14px;border-radius:2px;min-height:48px;background:var(--primary);color:var(--primary-foreground)!important;transition:background .2s}
.single_add_to_cart_button:hover{background:var(--ink)}
.single_add_to_cart_button.disabled{opacity:.6;cursor:not-allowed}
.pd-buy-wrap{display:flex;align-items:flex-end;gap:12px;margin-top:6px}
.pd-buy-wrap .cart{flex:1;min-width:0}
/* buy row: qty stepper + growing Add to cart, like the static design */
#main form.cart:not(.variations_form){display:flex;gap:12px;align-items:stretch}
/* WC's variation JS toggles this div with inline display:block/none —
   only flex it once a variation is actually enabled so the hidden
   pre-selection state still works, and !important beats the inline
   "block" jQuery leaves behind. */
#main .woocommerce-variation-add-to-cart-enabled{display:flex!important;gap:12px;align-items:stretch}
#main .woocommerce-variation-add-to-cart{display:flex;gap:12px;align-items:stretch}
#main form.cart:not(.variations_form) .single_add_to_cart_button,#main .woocommerce-variation-add-to-cart .single_add_to_cart_button{flex:1}
.quantity .pd-step{width:44px;height:46px;min-height:48px;font-size:19px;color:var(--ink);display:grid;place-items:center;flex:none}
.quantity .pd-step:hover{color:var(--gold-deep)}
.quantity .qty{width:44px;border-inline:1px solid var(--border)}
.pd-heart,.pd-compare{position:static;width:52px;min-height:48px;border-radius:2px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;transition:all .2s;flex:none}
.pd-heart:hover,.pd-compare:hover{border-color:var(--gold-deep)}
.pd-heart svg,.pd-compare svg{width:21px;height:21px;fill:none;stroke:var(--primary);stroke-width:2}
.pd-heart[aria-pressed="true"] svg{fill:var(--gold-deep);stroke:var(--gold-deep)}
.pd-compare[aria-pressed="true"]{background:var(--primary);border-color:var(--primary)}
.pd-compare[aria-pressed="true"] svg{stroke:var(--primary-foreground)}
p.stock{font-size:13.5px;margin-top:8px}
p.stock.in-stock{color:var(--primary)}
p.stock.out-of-stock,p.stock.unavailable{color:oklch(50% .17 25)}
p.stock.on-backorder{color:var(--gold-deep)}
.woocommerce-variation-add-to-cart .pavibhuvi-wishlist-btn,.cart .pavibhuvi-wishlist-btn{margin-left:4px}

/* ---------- tabs (native WC markup) ---------- */
.pdp-tabs{padding:0 5% clamp(30px,5vw,60px)}
.woocommerce-tabs ul.tabs,.woocommerce-tabs ul.wc-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);flex-wrap:wrap;list-style:none}
.woocommerce-tabs ul.tabs li,.woocommerce-tabs ul.wc-tabs li{list-style:none;margin:0}
.woocommerce-tabs ul.tabs li a,.woocommerce-tabs ul.wc-tabs li a{display:inline-block;padding:14px 26px;font-weight:600;font-size:14.5px;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--muted);transition:color .2s,border-color .2s}
.woocommerce-tabs ul.tabs li:hover a,.woocommerce-tabs ul.wc-tabs li:hover a{color:var(--primary)}
.woocommerce-tabs ul.tabs li.active a,.woocommerce-tabs ul.wc-tabs li.active a{color:var(--primary);border-color:var(--gold)}
.woocommerce-tabs .woocommerce-Tabs-panel{padding:clamp(22px,3vw,36px) 4px;max-width:78ch;color:var(--muted);line-height:1.8}
.woocommerce-tabs .woocommerce-Tabs-panel h2{color:var(--primary);font-size:24px;margin-bottom:12px}
.woocommerce-tabs table.shop_attributes{width:100%;border-collapse:collapse;font-size:14px;background:var(--surface);border:1px solid var(--border)}
.woocommerce-tabs table.shop_attributes th,.woocommerce-tabs table.shop_attributes td{padding:11px 16px;border-bottom:1px solid var(--border);text-align:left}
.woocommerce-tabs table.shop_attributes th{width:190px;font-weight:600;color:var(--primary);background:var(--background)}
.woocommerce-tabs table.shop_attributes tr:last-child th,.woocommerce-tabs table.shop_attributes tr:last-child td{border-bottom:0}
#reviews .comment-reply-title{font-size:24px;color:var(--primary);display:block;margin-bottom:16px}
#reviews ol.commentlist{list-style:none;display:flex;flex-direction:column;gap:14px;margin-bottom:30px}
#reviews .comment_container{display:flex;gap:16px;padding:20px;border:1px solid var(--border);background:var(--surface)}
#reviews .avatar{width:48px;height:48px;border-radius:50%}
#reviews .comment-text{flex:1}
#reviews .woocommerce-review__author{font-weight:600}
#reviews .woocommerce-review__dash{color:var(--muted)}
#reviews #respond input,#reviews #respond textarea{border:1px solid var(--border);background:var(--surface);padding:12px 14px;font:inherit;color:var(--ink);border-radius:2px;width:100%;max-width:520px}
#reviews #respond textarea{min-height:110px;resize:vertical}
#reviews #respond .form-submit input{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;font-weight:600;font-size:14px;border-radius:2px;min-height:48px;background:var(--primary);color:var(--primary-foreground);cursor:pointer}
.comment-form-rating select{border:1px solid var(--border);padding:8px 12px}

/* ---------- related / upsells ---------- */
.related.products,.upsells.products{padding-top:40px;border-top:1px solid var(--border);margin-top:10px}
.related.products>h2,.upsells.products>h2{font-size:clamp(30px,3.6vw,44px);color:var(--primary);margin-bottom:30px}

/* ---------- mini-cart drawer ---------- */
.widget_shopping_cart_content .woocommerce-mini-cart,ul.cart_list{list-style:none;display:flex;flex-direction:column}
.widget_shopping_cart_content li.mini_cart_item{display:grid;grid-template-columns:62px 1fr auto;gap:12px;padding:16px 0;border-bottom:1px solid var(--border);position:relative;align-items:start}
.widget_shopping_cart_content li.mini_cart_item .mini-cart-thumb{grid-column:1;grid-row:1;line-height:0}
.widget_shopping_cart_content li.mini_cart_item .mini-cart-thumb img{width:62px;height:82px;object-fit:cover}
.widget_shopping_cart_content li.mini_cart_item .mini-cart-info{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.widget_shopping_cart_content li.mini_cart_item .mini-cart-name{font-size:14.5px;font-weight:600;color:var(--ink)}
.widget_shopping_cart_content li.mini_cart_item .quantity{display:block;border:0;background:none;font-size:13px;color:var(--muted)}
.widget_shopping_cart_content li.mini_cart_item .quantity .amount{color:var(--muted)}
.widget_shopping_cart_content a.remove{grid-column:3;grid-row:1;justify-self:end;width:24px;height:24px;display:grid;place-items:center;color:var(--muted)!important;border-radius:50%;text-decoration:none!important}
.widget_shopping_cart_content a.remove:hover{background:var(--blush);color:oklch(50% .17 25)!important}
.woocommerce-mini-cart__empty-message{padding:40px 0;text-align:center;color:var(--muted)}
.woocommerce-mini-cart__total{display:flex;justify-content:space-between;font-weight:700;font-size:17px;margin:14px 0}
.woocommerce-mini-cart__total .amount{color:var(--primary)}
.woocommerce-mini-cart__buttons{display:flex;flex-direction:column;gap:10px}
.woocommerce-mini-cart__buttons .button{display:flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:2px;font-weight:600;font-size:14px;text-align:center}
.woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout){border:1px solid var(--primary);color:var(--primary)}
.woocommerce-mini-cart__buttons .button.checkout{background:var(--primary);color:var(--primary-foreground)}
.woocommerce-mini-cart__buttons .button.checkout:hover{background:var(--ink)}

/* ---------- cart page ---------- */
.woo-wrap table.shop_table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border)}
.woo-wrap table.shop_table th,.woo-wrap table.shop_table td{padding:16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
.woo-wrap table.shop_table thead th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--background)}
.woo-wrap table.cart td.product-thumbnail img{width:78px;height:104px;object-fit:cover}
.woo-wrap table.cart td.product-name a{font-weight:600;color:var(--ink)}
.woo-wrap table.cart dl.variation{font-size:12.5px;color:var(--muted);margin-top:4px}
.woo-wrap table.cart dl.variation dt,.woo-wrap table.cart dl.variation dd{display:inline}
.woo-wrap a.remove{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;color:var(--muted)!important;font-size:20px;text-decoration:none!important}
.woo-wrap a.remove:hover{background:var(--blush);color:oklch(50% .17 25)!important}
.woo-wrap .coupon{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.woo-wrap .coupon input#coupon_code{border:1px solid var(--border);background:var(--background);padding:11px 14px;font:inherit;border-radius:2px;text-transform:uppercase;min-width:180px}
.woo-wrap .actions .button{background:var(--primary);color:var(--primary-foreground);padding:12px 24px;border-radius:2px;font-weight:600}
.woo-wrap .cart-collaterals{display:flex;justify-content:flex-end;margin-top:34px}
.woo-wrap .cart_totals{width:min(420px,100%);background:var(--surface);border:1px solid var(--border);padding:26px}
.woo-wrap .cart_totals h2{font-size:24px;color:var(--primary);margin-bottom:16px}
.woo-wrap .cart_totals table{border:0}
.woo-wrap .cart_totals table th,.woo-wrap .cart_totals table td{border-bottom:1px solid var(--border);padding:10px 0;background:none}
.woo-wrap .cart_totals .order-total th,.woo-wrap .cart_totals .order-total td{font-weight:700;font-size:18px;color:var(--primary);border-bottom:0}
.woo-wrap .wc-proceed-to-checkout{margin-top:16px}
.woo-wrap .checkout-button{display:flex;align-items:center;justify-content:center;width:100%;padding:15px;background:var(--gold);color:var(--primary);font-weight:700;border-radius:2px}
.woo-wrap .checkout-button:hover{background:var(--gold-deep);color:#fff}
.woo-wrap .wc-proceed-to-checkout a{display:block}

/* ---------- checkout page ---------- */
.woo-wrap .col2-set{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.woo-wrap .form-row{margin-bottom:16px}
.woo-wrap .form-row label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.woo-wrap .form-row .required{color:oklch(50% .17 25);text-decoration:none}
.woo-wrap .form-row input.input-text,.woo-wrap .form-row select,.woo-wrap .form-row textarea{width:100%;border:1px solid var(--border);background:var(--surface);padding:12px 14px;font:inherit;border-radius:2px}
.woo-wrap .form-row.woocommerce-invalid input.input-text{border-color:oklch(50% .17 25)}
.woo-wrap #order_review{background:var(--surface);border:1px solid var(--border);padding:26px}
.woo-wrap #order_review_heading{font-size:24px;color:var(--primary);margin-bottom:16px}
.woo-wrap table.woocommerce-checkout-review-order-table{border:0;background:none}
.woo-wrap table.woocommerce-checkout-review-order-table th,.woo-wrap table.woocommerce-checkout-review-order-table td{border-bottom:1px solid var(--border);background:none}
.woo-wrap #payment{background:var(--background);border:1px solid var(--border);margin-top:10px}
.woo-wrap #payment ul.payment_methods{list-style:none;padding:16px}
.woo-wrap #payment ul.payment_methods li{padding:10px 0;border-bottom:1px solid var(--border)}
.woo-wrap #payment ul.payment_methods li:last-of-type{border-bottom:0}
.woo-wrap #payment .payment_box{background:var(--surface);border:1px solid var(--border);padding:14px;margin-top:10px;font-size:13.5px;color:var(--muted)}
.woo-wrap #payment .place-order{padding:16px}
.woo-wrap #place_order{display:flex;align-items:center;justify-content:center;width:100%;padding:16px;background:var(--primary);color:var(--primary-foreground);font-weight:700;border-radius:2px;font-size:15px}
.woo-wrap #place_order:hover{background:var(--ink)}
.woo-wrap .woocommerce-terms-and-conditions-wrapper{margin:14px 0}

/* ---------- my account ---------- */
/* The account page is a plain WP page holding the [woocommerce_my_account]
   shortcode, so .woocommerce is the wrapper that owns nav + content.
   WC core already floats nav left / content right — we keep that model
   (no :has() so this also works on older engines): fixed-width nav card,
   content offset past it with margin-left. When logged out neither
   element exists and the login card simply flows centered. */
.woocommerce-account #main .woocommerce-MyAccount-navigation{float:left;width:248px}
.woocommerce-account #main .woocommerce-MyAccount-content{float:none;width:auto;margin-left:292px}
.woocommerce-MyAccount-navigation{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 0;position:sticky;top:110px}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0}
.woocommerce-MyAccount-navigation li{border-bottom:1px solid color-mix(in oklab,var(--border) 70%,transparent);margin:0}
.woocommerce-MyAccount-navigation li:last-child{border-bottom:0}
.woocommerce-MyAccount-navigation li a{display:flex;align-items:center;padding:13px 20px 13px 22px;font-weight:600;font-size:14px;color:var(--muted);border-left:3px solid transparent;transition:background .18s,color .18s,border-color .18s}
.woocommerce-MyAccount-navigation li:hover a{color:var(--primary);background:color-mix(in oklab,var(--gold) 9%,transparent)}
.woocommerce-MyAccount-navigation li.is-active a{color:var(--primary);border-left-color:var(--gold-deep);background:color-mix(in oklab,var(--primary) 5%,transparent)}
.woocommerce-MyAccount-content{min-width:0}
/* greeting line gets the boutique serif treatment */
.woocommerce-MyAccount-content>p:first-of-type{font-family:var(--font-heading);font-size:26px;line-height:1.3;color:var(--primary)}
.woocommerce-MyAccount-content>p:first-of-type a{color:var(--gold-deep);text-decoration:underline}
/* every action button inside the account content uses the dark boutique style */
.woocommerce-MyAccount-content .button,.woocommerce-MyAccount-content .woocommerce-Button,#main .woocommerce-message .button,#main .woocommerce-info .button,#main .woocommerce-error .button,#main .woocommerce-Message .button{display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:var(--primary-foreground);padding:11px 22px;border-radius:2px;font-weight:600;font-size:13.5px;text-decoration:none;border:0;cursor:pointer}
.woocommerce-MyAccount-content .button:hover,.woocommerce-MyAccount-content .woocommerce-Button:hover,#main .woocommerce-message .button:hover,#main .woocommerce-info .button:hover,#main .woocommerce-error .button:hover,#main .woocommerce-Message .button:hover{background:var(--ink);color:var(--primary-foreground)}
/* kill WC's icon-font ::before glyphs — they render as tofu boxes */
#main .woocommerce-message::before,#main .woocommerce-info::before,#main .woocommerce-error::before,#main .woocommerce-Message::before{display:none}
.woocommerce-MyAccount-content .woocommerce-Message{margin-bottom:20px}
.woocommerce-MyAccount-content table.shop_table a{color:var(--gold-deep)}
.woocommerce-MyAccount-content table.shop_table a.button{color:var(--primary-foreground);padding:8px 16px;font-size:12.5px}
/* order/payment-method tables get the soft card treatment */
.woocommerce-MyAccount-content .woocommerce-orders-table,.woocommerce-MyAccount-content .woocommerce-MyAccount-paymentMethods{border-radius:6px;overflow:hidden}
/* address boxes */
.woocommerce-MyAccount-content .woocommerce-Addresses{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.woocommerce-MyAccount-content .woocommerce-Address{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:24px 26px}
.woocommerce-MyAccount-content .woocommerce-Address .title,.woocommerce-MyAccount-content .woocommerce-Address-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;float:none;width:auto;margin:0 0 10px}
.woocommerce-MyAccount-content .woocommerce-Address-title h2,.woocommerce-MyAccount-content .woocommerce-Address-title h3{font-family:var(--font-heading);font-size:22px;color:var(--primary);margin:0;float:none}
.woocommerce-MyAccount-content .woocommerce-Address-title .edit{float:none;font-size:13px;font-weight:600;color:var(--gold-deep)}
.woocommerce-MyAccount-content .woocommerce-Address address{font-style:normal;color:var(--muted);line-height:1.7}
.woocommerce-Addresses .u-columns{list-style:none}
/* login / register / reset-password as centered boutique cards */
.woocommerce-form-login,.woocommerce-form-register,.woocommerce-ResetPassword,.lost_reset_password,.woocommerce-account .woocommerce>form.login{max-width:520px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:34px 36px;box-shadow:0 18px 44px oklch(30% .05 158/.08)}
#customer_login h2,.woocommerce-account h2{font-family:var(--font-heading);font-size:30px;color:var(--primary);margin:0 0 18px}
.woocommerce-form-row,.form-row{margin-bottom:14px}
#main .woocommerce-form-login .button,#main .woocommerce-form-register .button,#main #customer_login .button,#main .woocommerce-ResetPassword .button,#main .lost_reset_password .button{display:inline-flex;align-items:center;justify-content:center;width:100%;background:var(--primary);color:var(--primary-foreground);padding:14px 26px;border-radius:2px;font-weight:700;font-size:14.5px;border:0;cursor:pointer}
#main .woocommerce-form-login .button:hover,#main .woocommerce-form-register .button:hover,#main #customer_login .button:hover,#main .woocommerce-ResetPassword .button:hover,#main .lost_reset_password .button:hover{background:var(--ink);color:var(--primary-foreground)}
/* standalone "Login"/"Register" heading sits above the centered card */
.woocommerce-account #main .woo-wrap .woocommerce>h2{text-align:center}
.woocommerce-form-login__rememberme{display:flex;align-items:center;gap:8px;font-size:13.5px;margin:14px 0}
.woocommerce-LostPassword{margin-top:14px;font-size:13.5px}
.woocommerce-LostPassword a{color:var(--gold-deep)}
/* .page-content caps text at 72ch — fine for prose pages, wrong inside the
   1180px WooCommerce wrap (account/cart/checkout). Unlock it there. */
.woo-wrap .page-content{max-width:none}
.u-columns#customer_login{display:grid;grid-template-columns:1fr 1fr;gap:50px;list-style:none;max-width:880px;margin:0 auto}
/* WC core floats .col-1/.col-2 at width:48% — inside the grid that 48%
   resolves against the track (≈146px). Clear both so items fill it. */
.u-columns#customer_login>.u-column1,.u-columns#customer_login>.u-column2{float:none;width:auto}
.u-columns#customer_login>.u-column1{grid-area:1/1}
.u-columns#customer_login>.u-column2{grid-area:1/2}
.u-columns#customer_login .u-column1>.woocommerce-form-login,.u-columns#customer_login .u-column2>.woocommerce-form-register{max-width:none;margin:0}
/* privacy/register intro text above forms */
#customer_login .woocommerce-privacy-policy-text,#customer_login p{font-size:13.5px;color:var(--muted)}

@media (max-width:1100px){
  .zoom-view,.lens{display:none!important}
  .zoom-box{cursor:zoom-in}
  .pdp-gal{position:relative}
  .woo-wrap .col2-set,.u-columns#customer_login{grid-template-columns:1fr;gap:30px}
}
@media (max-width:860px){
  .shop-wrap{grid-template-columns:1fr}
  .filters{position:fixed;top:0;left:0;bottom:0;width:min(340px,88vw);z-index:75;transform:translateX(-102%);transition:transform .3s;overflow-y:auto;box-shadow:0 0 60px oklch(20% .04 158/.25)}
  .filters.on{transform:none}
  .f-toggle{display:inline-flex;align-self:flex-start;margin:22px 5% 0}
  .f-close{display:grid;position:absolute;top:10px;right:10px}
  .f-head{position:sticky;top:0;background:var(--surface);z-index:2}
  .pdp{grid-template-columns:1fr;gap:34px}
  .pd-perks{grid-template-columns:1fr 1fr 1fr;gap:6px}
  .woocommerce-tabs ul.tabs li a,.woocommerce-tabs ul.wc-tabs li a{padding:12px 16px;font-size:13.5px}
  .woocommerce-account #main .woocommerce-MyAccount-navigation{float:none;width:auto}
  .woocommerce-account #main .woocommerce-MyAccount-content{margin-left:0}
  .woocommerce-MyAccount-navigation{position:static;display:flex;overflow-x:auto;padding:0;scrollbar-width:none}
  .woocommerce-MyAccount-navigation ul{display:flex}
  .woocommerce-MyAccount-navigation li{border-bottom:0;border-right:1px solid color-mix(in oklab,var(--border) 70%,transparent)}
  .woocommerce-MyAccount-navigation li a{white-space:nowrap;border-left:0;border-bottom:3px solid transparent;padding:14px 18px}
  .woocommerce-MyAccount-navigation li.is-active a{border-bottom-color:var(--gold-deep)}
  .woo-wrap table.shop_table_responsive thead{display:none}
  .woo-wrap table.shop_table_responsive tr{display:block;border-bottom:1px solid var(--border)}
  .woo-wrap table.shop_table_responsive td{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:0;padding:8px 16px}
  .woo-wrap table.shop_table_responsive td::before{content:attr(data-title) ": ";font-weight:600;color:var(--muted);font-size:12px}
}
@media (max-width:520px){
  .cart{flex-wrap:wrap}
  .pd-buy-wrap{flex-wrap:wrap}
  #main .woocommerce-variation-add-to-cart,#main form.cart:not(.variations_form){flex-wrap:wrap}
  .pd-perks{grid-template-columns:1fr 1fr}
  .thumbs{gap:8px}.th{width:70px}
}

/* Centre-screen add-to-bag confirmation (cart-drawer.js). */
.pb-center-toast{position:fixed;left:50%;top:45%;transform:translate(-50%,-50%) scale(.92);z-index:120;background:var(--primary);color:var(--primary-foreground);padding:16px 34px;border-radius:4px;font-size:15px;font-weight:600;letter-spacing:.02em;box-shadow:0 24px 60px oklch(24% .03 158/.35);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.pb-center-toast.on{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* mini-cart variation meta (Size/Colour rows inside .mini-cart-info) */
.widget_shopping_cart_content li.mini_cart_item dl.variation{display:flex;flex-wrap:wrap;gap:2px 10px;margin:0;font-size:12px;color:var(--muted)}
.widget_shopping_cart_content li.mini_cart_item dl.variation dt{font-weight:600;color:var(--muted)}
.widget_shopping_cart_content li.mini_cart_item dl.variation dd{margin:0}
