/* =========================================================
   Vastra – WooCommerce styles (shop, product, cart, checkout, account)
   ========================================================= */

/* ---------- notices ---------- */
.woocommerce-notices-wrapper{margin-bottom:18px}
.woocommerce-message,.woocommerce-info,.woocommerce-error{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;margin:0 0 18px;padding:15px 20px;border-radius:14px;background:var(--v-accent-2);border-left:4px solid var(--v-primary);font-size:14.5px;animation:v-pop .5s var(--v-ease)}
.woocommerce-message{border-color:#2e9e5b;background:#eaf6ef}
.woocommerce-error{border-color:#c0392b;background:#fdecea;display:block}
.woocommerce-error li{margin:3px 0}
.woocommerce-message .button,.woocommerce-info .button{order:2;padding:8px 18px;border-radius:99px;background:var(--v-primary);color:#fff;font-weight:600;font-size:13px}
.woocommerce-message .button:hover{background:var(--v-accent)}
.woocommerce-error a,.woocommerce-info a,.woocommerce-message a:not(.button){text-decoration:underline}

/* ---------- generic form controls ---------- */
.woocommerce form .form-row{margin:0 0 16px;display:block}
.woocommerce form .form-row label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--v-text)}
.woocommerce form .form-row .required{color:var(--v-accent);text-decoration:none;border:0}
.woocommerce form .form-row .optional{font-weight:400;color:var(--v-muted)}
.woocommerce input.input-text,.woocommerce textarea,.woocommerce select,.woocommerce .select2-container .select2-selection--single,
.v-coupon input,form.woocommerce-checkout input[type=text],form.woocommerce-checkout input[type=tel],form.woocommerce-checkout input[type=email]{width:100%;height:50px;border:1.5px solid var(--v-border);border-radius:12px;padding:0 16px;background:#fff;font-size:15px;transition:border-color .25s,box-shadow .25s;outline:0;-webkit-appearance:none;appearance:none}
.woocommerce textarea{height:auto;padding:14px 16px;min-height:96px;resize:vertical}
.woocommerce select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;padding-right:42px}
.woocommerce input.input-text:focus,.woocommerce textarea:focus,.woocommerce select:focus,.v-coupon input:focus{border-color:var(--v-primary);box-shadow:0 0 0 4px rgba(0,0,0,.06)}
.woocommerce form .form-row.woocommerce-invalid input.input-text,.woocommerce form .form-row.woocommerce-invalid select,.woocommerce form .form-row.woocommerce-invalid .select2-selection{border-color:#c0392b}
.woocommerce form .form-row.woocommerce-validated input.input-text{border-color:#2e9e5b}
.woocommerce form .form-row-first,.woocommerce form .form-row-last{width:calc(50% - 8px);float:left}
.woocommerce form .form-row-last{float:right}
.woocommerce form .form-row-wide{clear:both;width:100%}
.woocommerce-billing-fields__field-wrapper::after,.woocommerce-additional-fields__field-wrapper::after{content:"";display:table;clear:both}
.vastra-hidden-field{display:none!important}
.woocommerce .select2-container{width:100%!important}
.woocommerce .select2-container .select2-selection--single{display:flex;align-items:center;padding:0 38px 0 16px}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered{padding:0;line-height:normal;color:var(--v-text)}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;right:10px}
.select2-dropdown{border:1.5px solid var(--v-primary)!important;border-radius:12px!important;overflow:hidden;box-shadow:0 24px 50px -20px rgba(0,0,0,.35);z-index:1100}
.select2-search--dropdown .select2-search__field{border:1.5px solid var(--v-border);border-radius:8px;padding:8px 12px;outline:0}
.select2-container--default .select2-results__option--highlighted[aria-selected],.select2-container--default .select2-results__option--highlighted[data-selected]{background:var(--v-primary)}
.woocommerce form .form-row .woocommerce-input-wrapper{display:block}
.woocommerce-form__label-for-checkbox{display:flex!important;align-items:center;gap:10px;font-weight:500!important;cursor:pointer}
input[type=checkbox],input[type=radio]{accent-color:var(--v-primary)}
.v-ship-hint{color:var(--v-muted);font-size:13px}

/* ---------- shop ---------- */
.v-shop-head.has-bg{color:#fff;padding-block:clamp(50px,8vw,110px)}
.v-shop-head__bg,.v-shop-head__bg img{position:absolute;inset:0;width:100%;height:100%}
.v-shop-head__bg img{object-fit:cover}
.v-shop-head__bg::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.5)}
.v-shop-head.has-bg .v-container{position:relative;z-index:1}
.v-shop-head.has-bg .v-breadcrumb{color:rgba(255,255,255,.8)}
.v-shop-head .term-description{max-width:60ch;margin:12px auto 0;color:var(--v-muted)}
.v-shop-head.has-bg .term-description{color:rgba(255,255,255,.85)}
.v-shop{padding-block:clamp(24px,3vw,44px) 0}
.v-shop__layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(24px,3vw,48px);align-items:start}
.v-shop__sidebar{position:sticky;top:calc(var(--v-header-h) + 20px);display:grid;gap:30px}
.v-shop__sidebar-head{display:none}
.filter-widget .widget-title{font-size:17px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--v-border);font-family:var(--v-font-body);font-weight:700;letter-spacing:.02em}
.v-cat-list,.filter-widget ul{list-style:none;display:grid;gap:2px}
.v-cat-list a,.filter-widget ul a{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;margin-inline:-12px;border-radius:10px;font-size:15px;transition:background .25s,padding .35s var(--v-ease),color .2s}
.v-cat-list a:hover,.filter-widget ul a:hover{background:var(--v-accent-2);padding-left:18px}
.v-cat-list .is-active a,.filter-widget li.current-cat>a{background:var(--v-primary);color:#fff}
.v-cat-list small,.filter-widget .count{color:var(--v-muted);font-size:12px}
.v-cat-list .is-active small{color:rgba(255,255,255,.7)}
.v-price-filter__row{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.v-price-filter input{height:44px;min-width:0;width:100%;border:1.5px solid var(--v-border);border-radius:10px;padding:0 12px;outline:0}
.v-price-filter input:focus{border-color:var(--v-primary)}
.v-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:26px;padding-bottom:18px;border-bottom:1px solid var(--v-border);flex-wrap:wrap}
.v-toolbar__filter{display:none;align-items:center;gap:8px;padding:10px 18px;border:1.5px solid var(--v-border);border-radius:99px;font-weight:600;font-size:14px}
.v-toolbar__count{flex:1;font-size:14px;color:var(--v-muted)}
.v-toolbar__count .woocommerce-result-count{margin:0}
.v-toolbar__cols{display:flex;gap:6px}
.v-toolbar__cols button{display:flex;gap:2px;padding:8px;border-radius:8px;opacity:.45;transition:opacity .2s,background .2s}
.v-toolbar__cols button i{display:block;width:5px;height:16px;background:currentColor;border-radius:1px}
.v-toolbar__cols button:hover,.v-toolbar__cols button.is-active{opacity:1;background:var(--v-accent-2)}
.v-toolbar__order select{height:44px;border-radius:99px;padding-left:18px;font-size:14px;font-weight:500;width:auto;min-width:190px}
.v-empty--shop .v-empty__icon,.v-empty--cart .v-empty__icon{width:110px;height:110px;margin:0 auto 18px;display:grid;place-items:center;border-radius:50%;background:var(--v-accent-2);color:var(--v-accent)}
.v-empty h3{font-size:28px;color:var(--v-text)}
.v-filters-overlay{display:none}

/* ---------- single product ---------- */
.v-single-crumb{padding-top:22px}
.v-single-crumb .v-breadcrumb{margin:0}
.v-single-wrap{padding-bottom:20px}
.v-single{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start;margin-top:10px}
.v-gallery{display:grid;gap:14px;position:sticky;top:calc(var(--v-header-h) + 20px)}
.v-gallery.has-thumbs{grid-template-columns:84px minmax(0,1fr)}
.v-gallery__thumbs{display:flex;flex-direction:column;gap:12px;max-height:640px;overflow:auto;scrollbar-width:none}
.v-gallery__thumbs::-webkit-scrollbar{display:none}
.v-gallery__thumb{flex:none;border-radius:12px;overflow:hidden;border:2px solid transparent;opacity:.65;transition:opacity .25s,border-color .25s;background:var(--v-accent-2)}
.v-gallery__thumb img{width:100%;aspect-ratio:4/5;object-fit:cover}
.v-gallery__thumb:hover{opacity:1}
.v-gallery__thumb.is-active{border-color:var(--v-primary);opacity:1}
.v-gallery__main{position:relative;border-radius:20px;overflow:hidden;background:var(--v-accent-2)}
.v-gallery__stage{position:relative;aspect-ratio:4/5;overflow:hidden;cursor:zoom-in}
.v-gallery__img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--v-ease),opacity .35s;transform-origin:var(--zx,50%) var(--zy,50%)}
.v-gallery__stage.is-zoom .v-gallery__img{transform:scale(1.9)}
.v-gallery__img.is-swap{opacity:0}
.v-gallery__badges{top:16px;left:16px}
.v-gallery__zoom,.v-gallery__nav{position:absolute;z-index:3;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 8px 24px -10px rgba(0,0,0,.4);transition:background .25s,color .25s,transform .35s var(--v-ease)}
.v-gallery__zoom{right:16px;top:16px}
.v-gallery__nav{top:50%;margin-top:-22px;opacity:0}
.v-gallery__main:hover .v-gallery__nav{opacity:1}
.v-gallery__nav.is-prev{left:14px}.v-gallery__nav.is-next{right:14px}
.v-gallery__zoom:hover,.v-gallery__nav:hover{background:var(--v-primary);color:#fff}
.v-lightbox{position:fixed;inset:0;z-index:1500;background:rgba(10,10,12,.92);display:grid;place-items:center;padding:30px;animation:v-pop .35s var(--v-ease)}
.v-lightbox img{max-height:92vh;max-width:92vw;border-radius:10px;object-fit:contain}
.v-lightbox button{position:absolute;top:18px;right:18px;width:48px;height:48px;border-radius:50%;background:#fff;display:grid;place-items:center}

.v-single__summary .product_title{font-size:clamp(28px,3.2vw,42px);margin:0 0 12px}
.v-single__summary .woocommerce-product-rating{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:14px;color:var(--v-muted)}
.v-single__summary .price{display:flex;align-items:baseline;gap:12px;font-size:28px;font-weight:700;margin:0 0 18px;flex-wrap:wrap}
.v-single__summary .price del{font-size:19px;color:var(--v-muted);font-weight:400}
.v-single__summary .price ins{text-decoration:none;color:var(--v-accent)}
.v-single__summary .woocommerce-product-details__short-description{color:var(--v-muted);margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--v-border)}
.v-single__summary .stock{font-size:13px;font-weight:600;color:#2e9e5b;margin:0 0 14px}
.v-single__summary .stock.out-of-stock{color:#c0392b}
.v-single__summary .variations{border:0;margin:0 0 18px;width:100%;border-collapse:collapse}
.v-single__summary .variations tr{display:block;margin-bottom:18px}
.v-single__summary .variations th,.v-single__summary .variations td{display:block;padding:0;text-align:left}
.v-single__summary .variations label{font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:10px}
.v-single__summary .variations select{display:none}
.v-single__summary .variations select.v-no-swatch{display:block}
.v-swatches{display:flex;flex-wrap:wrap;gap:10px}
.v-swatch{min-width:48px;height:46px;padding:0 16px;border:1.5px solid var(--v-border);border-radius:12px;font-weight:600;font-size:14px;background:#fff;transition:border-color .25s,background .25s,color .25s,transform .3s var(--v-ease);position:relative}
.v-swatch:hover{border-color:var(--v-primary);transform:translateY(-2px)}
.v-swatch.is-active{background:var(--v-primary);color:#fff;border-color:var(--v-primary)}
.v-swatch.is-disabled{opacity:.35;text-decoration:line-through;pointer-events:none}
.v-swatch--color{width:44px;min-width:44px;height:44px;padding:0;border-radius:50%;display:grid;place-items:center}
.v-swatch--color i{display:block;width:30px;height:30px;border-radius:50%;background:var(--sw,#ccc);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.v-swatch--color.is-active{background:#fff;border-color:var(--v-primary);box-shadow:0 0 0 2px #fff inset}
.v-swatch--color.is-active{outline:2px solid var(--v-primary);outline-offset:2px}
.v-single__summary .reset_variations{display:inline-block;margin-top:8px;font-size:12px;color:var(--v-muted);text-decoration:underline}
.v-single__summary .single_variation_wrap .woocommerce-variation-price{margin-bottom:10px}
.v-single__summary form.cart,.v-single__summary .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.v-single__summary form.variations_form{display:block}
.v-single__summary .woocommerce-variation-add-to-cart{margin-top:6px}
.v-single__summary .single_add_to_cart_button{flex:1 1 180px;min-height:52px;padding:0 28px;border-radius:999px;background:var(--v-primary);color:#fff;font-weight:600;font-size:15px;letter-spacing:.03em;position:relative;overflow:hidden;isolation:isolate;transition:transform .3s var(--v-ease),box-shadow .35s}
.v-single__summary .single_add_to_cart_button::before{content:"";position:absolute;inset:0;background:var(--v-accent);transform:translateY(101%);transition:transform .45s var(--v-ease);z-index:-1}
.v-single__summary .single_add_to_cart_button:hover::before{transform:none}
.v-single__summary .single_add_to_cart_button:hover{transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(0,0,0,.5)}
.v-single__summary .single_add_to_cart_button.disabled,.v-single__summary .single_add_to_cart_button:disabled{opacity:.45;pointer-events:none}
.v-single__summary .single_add_to_cart_button.is-loading{opacity:.7;pointer-events:none}
.v-buynow{flex:1 1 140px;min-height:52px}
.v-trust{list-style:none;display:grid;gap:10px;margin:26px 0;padding:18px 20px;border-radius:16px;background:var(--v-accent-2);font-size:14px}
.v-trust li{display:flex;align-items:center;gap:12px}
.v-trust .vi{color:var(--v-accent)}
.v-single__summary .product_meta{font-size:13px;color:var(--v-muted);display:grid;gap:4px;padding-top:18px;border-top:1px solid var(--v-border)}
.v-single__summary .product_meta a{color:var(--v-text);text-decoration:underline}
.v-acc-wrap{margin-top:clamp(36px,5vw,72px);border-top:1px solid var(--v-border)}
.v-acc{border-bottom:1px solid var(--v-border)}
.v-acc summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:22px 4px;font-weight:700;font-size:18px;font-family:var(--v-font-head);cursor:pointer}
.v-acc summary::-webkit-details-marker{display:none}
.v-acc summary .vi{transition:transform .4s var(--v-ease)}
.v-acc[open] summary .vi{transform:rotate(180deg)}
.v-acc__body{padding:0 4px 28px;animation:v-pop .5s var(--v-ease)}
.v-acc__body h2{font-size:22px}
.woocommerce-product-attributes{width:100%;border-collapse:collapse}
.woocommerce-product-attributes th,.woocommerce-product-attributes td{padding:12px 0;border-bottom:1px solid var(--v-border);text-align:left;font-size:15px}
.woocommerce-product-attributes th{width:30%;font-weight:600}
.woocommerce-product-attributes p{margin:0}
.v-single-more{margin-top:clamp(20px,3vw,40px)}
/* reviews */
#reviews .commentlist{list-style:none;display:grid;gap:22px;margin:0 0 26px}
#reviews .comment_container{display:flex;gap:16px}
#reviews .avatar{border-radius:50%;width:52px;height:52px}
#reviews .comment-text{flex:1}
#reviews .meta{font-size:13px;color:var(--v-muted);margin:4px 0}
#reviews .comment-reply-title{font-family:var(--v-font-head);font-size:22px;display:block;margin-bottom:12px}
#reviews #respond .comment-form-comment textarea{min-height:130px}
#reviews #respond .submit{background:var(--v-primary);color:#fff;border-radius:99px;padding:14px 32px;font-weight:600;transition:background .3s}
#reviews #respond .submit:hover{background:var(--v-accent)}
.star-rating{position:relative;display:inline-block;width:5.6em;height:1.1em;font-size:15px;line-height:1.1;overflow:hidden;color:#dcd8d0;font-family:Arial,sans-serif;vertical-align:middle}
.star-rating::before{content:"\2605\2605\2605\2605\2605";position:absolute;left:0;top:0;letter-spacing:.1em}
.star-rating span{position:absolute;left:0;top:0;height:100%;overflow:hidden;padding-top:2em}
.star-rating span::before{content:"\2605\2605\2605\2605\2605";position:absolute;left:0;top:0;letter-spacing:.1em;color:#e8a317}
p.stars{margin:0 0 14px}
p.stars span{display:inline-flex;gap:3px}
p.stars a{position:relative;width:1.2em;height:1.2em;overflow:hidden;text-indent:-999px;font-size:26px;display:inline-block}
p.stars a::before{content:"\2605";position:absolute;left:0;top:0;text-indent:0;color:#dcd8d0;font-family:Arial,sans-serif;line-height:1.2em;transition:color .2s,transform .25s var(--v-ease)}
p.stars:hover a::before,p.stars.selected a::before{color:#e8a317}
p.stars a:hover~a::before{color:#dcd8d0}
p.stars.selected a.active~a::before{color:#dcd8d0}
p.stars a:hover::before{transform:scale(1.2)}

/* ---------- steps ---------- */
.v-steps{list-style:none;display:flex;justify-content:center;gap:clamp(10px,3vw,34px);margin-top:22px;font-size:14px;font-weight:600;color:var(--v-muted)}
.v-steps li{display:flex;align-items:center;gap:10px;position:relative}
.v-steps li:not(:last-child)::after{content:"";width:clamp(18px,5vw,56px);height:2px;background:var(--v-border);margin-left:clamp(4px,1.4vw,14px)}
.v-steps__n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1.5px solid var(--v-border);font-size:13px;transition:all .4s var(--v-ease)}
.v-steps .is-active{color:var(--v-text)}
.v-steps .is-active .v-steps__n{background:var(--v-primary);border-color:var(--v-primary);color:#fff;transform:scale(1.1)}
.v-steps .is-done{color:var(--v-text)}
.v-steps .is-done .v-steps__n{background:#2e9e5b;border-color:#2e9e5b;color:#fff}
.v-steps .is-done::after{background:#2e9e5b!important}

/* ---------- boxes ---------- */
.v-box{background:#fff;border:1px solid var(--v-border);border-radius:20px;padding:clamp(20px,2.6vw,34px)}
.v-box--sticky{position:sticky;top:calc(var(--v-header-h) + 20px)}
.v-box-title{font-size:22px;margin-bottom:20px}

/* ---------- cart page ---------- */
.v-page-body.is-woo{padding-top:clamp(24px,3vw,44px)}
.v-cart-page{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(24px,3vw,44px);align-items:start}
.v-cart-items{border:1px solid var(--v-border);border-radius:20px;overflow:hidden;background:#fff}
.v-cart-head,.v-cart-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 140px 120px 44px;gap:16px;align-items:center;padding:18px 24px}
.v-cart-head{background:var(--v-accent-2);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding-block:14px}
.v-cart-row{border-bottom:1px solid var(--v-border);animation:v-pop .5s var(--v-ease) both}
.v-cart-row__product{display:flex;align-items:center;gap:18px;min-width:0}
.v-cart-row__img img{width:84px;height:105px;object-fit:cover;border-radius:12px;background:var(--v-accent-2)}
.v-cart-row__name{font-weight:600;line-height:1.35}
.v-cart-row__name:hover{color:var(--v-accent)}
.v-cart-row__info dl.variation{margin:4px 0 0;font-size:13px;color:var(--v-muted)}
.v-cart-row__info dl.variation dt,.v-cart-row__info dl.variation dd{display:inline;margin:0}
.v-cart-row__info dl.variation p{display:inline;margin:0}
.v-cart-row__sub{font-weight:700}
.v-cart-row__remove a{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:var(--v-muted);transition:background .2s,color .2s,transform .3s var(--v-ease)}
.v-cart-row__remove a:hover{background:#fdecea;color:#c0392b;transform:rotate(90deg)}
.v-cart-actions{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;padding:20px 24px;align-items:center}
.v-coupon{display:flex;gap:8px;flex:1 1 320px;max-width:420px}
.v-coupon input{height:44px}
.v-cart-continue{margin-top:20px}
.v-cart-side .cart_totals{background:#fff;border:1px solid var(--v-border);border-radius:20px;padding:26px;position:sticky;top:calc(var(--v-header-h) + 20px)}
.cart_totals h2{font-size:22px;margin-bottom:16px}
.cart_totals table,.woocommerce-checkout-review-order-table{width:100%;border-collapse:collapse;font-size:15px}
.cart_totals th,.cart_totals td,.woocommerce-checkout-review-order-table th,.woocommerce-checkout-review-order-table td{padding:13px 0;border-bottom:1px solid var(--v-border);text-align:left;vertical-align:top}
.cart_totals td,.woocommerce-checkout-review-order-table td:last-child,.woocommerce-checkout-review-order-table tfoot td{text-align:right}
.cart_totals .order-total th,.cart_totals .order-total td,.woocommerce-checkout-review-order-table .order-total th,.woocommerce-checkout-review-order-table .order-total td{font-size:19px;font-weight:700;border-bottom:0}
.woocommerce-shipping-methods{list-style:none;margin:0;padding:0}
.woocommerce-shipping-methods li{margin:0 0 4px}
.woocommerce-shipping-methods label{font-weight:500}
.wc-proceed-to-checkout{margin-top:18px}
.wc-proceed-to-checkout .checkout-button{display:flex;align-items:center;justify-content:center;min-height:54px;border-radius:999px;background:var(--v-primary);color:#fff;font-weight:600;position:relative;overflow:hidden;isolation:isolate;transition:transform .3s var(--v-ease),box-shadow .3s}
.wc-proceed-to-checkout .checkout-button::before{content:"";position:absolute;inset:0;background:var(--v-accent);transform:translateY(101%);transition:transform .45s var(--v-ease);z-index:-1}
.wc-proceed-to-checkout .checkout-button:hover::before{transform:none}
.wc-proceed-to-checkout .checkout-button:hover{transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(0,0,0,.5);color:#fff}
.blockUI.blockOverlay{background:rgba(255,255,255,.6)!important;border-radius:20px}
.cross-sells{display:none}
.js-update-cart{display:none}

/* ---------- checkout ---------- */
.v-checkout{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:clamp(24px,3vw,44px);align-items:start}
.woocommerce-checkout-review-order-table .product-name{font-weight:500}
.woocommerce-checkout-review-order-table .product-quantity{font-weight:700;color:var(--v-muted)}
.woocommerce-checkout-review-order-table dl.variation{margin:2px 0 0;font-size:12px;color:var(--v-muted)}
.woocommerce-checkout-review-order-table dl.variation dt,.woocommerce-checkout-review-order-table dl.variation dd{display:inline;margin:0}
.woocommerce-checkout-review-order-table dl.variation p{display:inline;margin:0}
.woocommerce-checkout-review-order-table thead{display:none}
.woocommerce-checkout #payment{margin-top:22px}
.woocommerce-checkout #payment ul.payment_methods{list-style:none;display:grid;gap:10px;margin:0 0 18px}
.woocommerce-checkout #payment ul.payment_methods>li{border:1.5px solid var(--v-border);border-radius:14px;padding:14px 16px;transition:border-color .25s,background .25s}
.woocommerce-checkout #payment ul.payment_methods>li:has(input:checked){border-color:var(--v-primary);background:var(--v-accent-2)}
.woocommerce-checkout #payment ul.payment_methods label{display:inline;margin-left:8px;font-weight:600;font-size:15px;cursor:pointer}
.woocommerce-checkout #payment .payment_box{margin-top:10px;font-size:14px;color:var(--v-muted)}
.woocommerce-checkout #payment .payment_box p{margin:0}
.woocommerce-checkout #payment .payment_box::before{display:none}
.woocommerce-terms-and-conditions-wrapper{font-size:13px;color:var(--v-muted);margin-bottom:14px}
#place_order{width:100%;min-height:56px;border-radius:999px;background:var(--v-accent);color:#fff;font-weight:700;font-size:16px;letter-spacing:.03em;position:relative;overflow:hidden;isolation:isolate;transition:transform .3s var(--v-ease),box-shadow .35s}
#place_order::before{content:"";position:absolute;inset:0;background:var(--v-primary);transform:translateY(101%);transition:transform .45s var(--v-ease);z-index:-1}
#place_order:hover::before{transform:none}
#place_order:hover{transform:translateY(-2px);box-shadow:0 16px 32px -14px rgba(0,0,0,.5)}
.woocommerce-checkout .woocommerce-form-coupon-toggle{margin-bottom:18px}
.woocommerce-form-coupon{display:flex;gap:10px;flex-wrap:wrap;background:var(--v-accent-2);padding:18px;border-radius:14px;margin-bottom:20px}
.woocommerce-form-coupon p{margin:0}
.woocommerce-form-coupon .form-row-first{flex:1}
.woocommerce-form-coupon .button{height:50px;padding:0 26px;border-radius:99px;background:var(--v-primary);color:#fff;font-weight:600}
.woocommerce-form-login-toggle .woocommerce-info,.woocommerce-form-coupon-toggle .woocommerce-info{background:var(--v-accent-2)}

/* ---------- thank you ---------- */
.v-thanks__hero{text-align:center;max-width:760px;margin:0 auto 40px}
.v-thanks__icon{width:96px;height:96px;margin:0 auto 22px;display:grid;place-items:center;border-radius:50%;background:#eaf6ef;color:#2e9e5b}
.v-thanks__icon.is-failed{background:#fdecea;color:#c0392b}
.v-thanks__circle{stroke-dasharray:152;stroke-dashoffset:152;animation:v-draw .9s .1s var(--v-ease) forwards}
.v-thanks__tick{stroke-dasharray:40;stroke-dashoffset:40;animation:v-draw .6s .7s var(--v-ease) forwards}
@keyframes v-draw{to{stroke-dashoffset:0}}
.v-thanks__hero h2{font-size:clamp(28px,4vw,42px)}
.v-thanks__hero>p{color:var(--v-muted)}
.v-thanks__meta{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:28px 0}
.v-thanks__meta li{padding:16px;border:1px dashed var(--v-border);border-radius:14px;display:grid;gap:4px}
.v-thanks__meta span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--v-muted)}
.v-thanks__actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.woocommerce-order-details,.woocommerce-customer-details{max-width:820px;margin:0 auto 30px;background:#fff;border:1px solid var(--v-border);border-radius:20px;padding:clamp(20px,3vw,34px)}
.woocommerce-order-details__title,.woocommerce-column__title{font-size:22px;margin-bottom:14px}
.woocommerce-table--order-details{width:100%;border-collapse:collapse}
.woocommerce-table--order-details th,.woocommerce-table--order-details td{padding:12px 0;border-bottom:1px solid var(--v-border);text-align:left}
.woocommerce-table--order-details td:last-child,.woocommerce-table--order-details tfoot td{text-align:right}
.woocommerce-customer-details address{font-style:normal;line-height:1.7}

/* ---------- account ---------- */
.woocommerce-account .woocommerce{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(20px,3vw,44px);align-items:start}
.woocommerce-MyAccount-navigation ul{list-style:none;display:grid;gap:4px;border:1px solid var(--v-border);border-radius:18px;padding:10px}
.woocommerce-MyAccount-navigation a{display:block;padding:12px 16px;border-radius:12px;font-weight:500;transition:background .25s,padding .3s var(--v-ease)}
.woocommerce-MyAccount-navigation a:hover{background:var(--v-accent-2);padding-left:22px}
.woocommerce-MyAccount-navigation .is-active a{background:var(--v-primary);color:#fff}
.woocommerce-MyAccount-content{min-width:0}
.woocommerce-account:not(.logged-in) .woocommerce,.woocommerce-account .woocommerce:has(#customer_login),.woocommerce-account .woocommerce:has(.woocommerce-form-login){display:block}
#customer_login{display:grid;grid-template-columns:1fr 1fr;gap:28px}
#customer_login .u-column1,#customer_login .u-column2,.woocommerce-form-login,.woocommerce-form-register{background:#fff;border:1px solid var(--v-border);border-radius:20px;padding:clamp(22px,3vw,36px)}
.woocommerce-account h2{font-size:26px}
.woocommerce-orders-table,.shop_table{width:100%;border-collapse:collapse}
.woocommerce-orders-table th,.woocommerce-orders-table td{padding:14px 10px;border-bottom:1px solid var(--v-border);text-align:left}
.woocommerce a.button,.woocommerce button.button,.woocommerce .woocommerce-Button,.woocommerce-form-login__submit,.woocommerce-form-register__submit{display:inline-flex;align-items:center;justify-content:center;padding:12px 26px;border-radius:99px;background:var(--v-primary);color:#fff;font-weight:600;font-size:14px;transition:background .3s,transform .3s var(--v-ease)}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce .woocommerce-Button:hover{background:var(--v-accent);color:#fff;transform:translateY(-2px)}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .v-cart-page,.v-checkout{grid-template-columns:1fr}
  .v-box--sticky,.v-cart-side .cart_totals{position:static}
  .v-single{grid-template-columns:1fr}
  .v-gallery{position:static}
}
@media (max-width:900px){
  .v-shop__layout{grid-template-columns:1fr}
  .v-toolbar__filter{display:inline-flex}
  .v-toolbar__cols{display:none}
  .v-shop__sidebar{position:fixed;left:0;top:0;bottom:0;width:min(340px,88vw);background:#fff;z-index:1002;padding:20px;overflow:auto;transform:translateX(-105%);transition:transform .5s var(--v-ease);box-shadow:0 0 50px rgba(0,0,0,.25);align-content:start}
  .v-shop__sidebar.is-open{transform:none}
  .v-shop__sidebar-head{display:flex;justify-content:space-between;align-items:center;font-size:20px;font-family:var(--v-font-head)}
  .v-filters-overlay{position:fixed;inset:0;background:rgba(10,10,12,.5);z-index:1001;display:block}
  .v-filters-overlay[hidden]{display:none}
  .v-toolbar__count{order:3;flex-basis:100%}
  .v-toolbar__order{margin-left:auto}
  .woocommerce-account .woocommerce,#customer_login{grid-template-columns:1fr}
}
@media (max-width:760px){
  .v-cart-head{display:none}
  .v-cart-row{grid-template-columns:1fr auto;grid-template-areas:"prod remove" "price price" "qty sub";gap:12px;padding:18px}
  .v-cart-row__product{grid-area:prod}
  .v-cart-row__remove{grid-area:remove;align-self:start}
  .v-cart-row__price{grid-area:price;font-size:14px;color:var(--v-muted)}
  .v-cart-row__price::before{content:attr(data-title) ": "}
  .v-cart-row__qty{grid-area:qty}
  .v-cart-row__sub{grid-area:sub;text-align:right;font-size:17px}
  .v-gallery.has-thumbs{grid-template-columns:1fr}
  .v-gallery__thumbs{flex-direction:row;order:2;max-height:none;overflow-x:auto}
  .v-gallery__thumb{width:72px}
  .woocommerce form .form-row-first,.woocommerce form .form-row-last{width:100%;float:none}
  .v-single__summary form.cart{gap:10px}
  .v-steps__l{display:none}
  .v-steps .is-active .v-steps__l{display:inline}
  .v-toolbar__order select{min-width:150px}
}

/* quantity stepper inputs must beat the generic input rule */
.woocommerce .v-qty input.qty,.woocommerce .v-qty input.input-text{width:46px;height:100%;border:0;border-radius:0;padding:0;background:transparent;box-shadow:none}
.v-shop__sidebar{min-width:0}
.v-shop__sidebar input[type=search],.v-shop__sidebar input[type=text]{max-width:100%}
