/*
Theme Name: ZZVUE Vault
Description: ZZVUE 会员私藏；深色灰阶与原生 WooCommerce。
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.3
Text Domain: zzvue-vault
License: GPL-2.0-or-later
*/
:root{--zz-bg:#121212;--zz-panel:#191919;--zz-fg:#eceae7;--zz-muted:#b9b7b3;--zz-line:rgba(236,234,231,.16);--zz-pad:clamp(24px,6vw,100px);--zz-serif:"Noto Serif SC","Noto Serif CJK SC","Songti SC",STSong,serif;--zz-sans:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-padding-top:32px}
body{margin:0;background:var(--zz-bg);color:var(--zz-fg);font-family:var(--zz-serif);font-weight:400;font-size:15px;line-height:1.9;-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:.3em;overflow-wrap:anywhere}
a:hover{color:var(--zz-muted)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--zz-fg);outline-offset:4px}
img,video{max-width:100%;height:auto}
figure{margin:0}
h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.5;overflow-wrap:anywhere}
h1{font-size:clamp(28px,3vw,42px);margin:0 0 40px}
h2{font-size:clamp(23px,2.2vw,30px);margin:40px 0 24px}
h3{font-size:20px}
p{margin:0 0 24px}
strong,b{font-weight:500}
button,input,select,textarea{font:inherit;max-width:100%}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
.vault-wrap{width:100%;max-width:1400px;margin-inline:auto;padding-inline:var(--zz-pad)}
.vault-header{border-bottom:1px solid var(--zz-line)}
.vault-bar{min-height:102px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.vault-brand{display:inline-flex;align-items:center;gap:20px;text-decoration:none;flex-shrink:0}
.vault-brand img{display:block;width:176px;height:42px;object-fit:contain}
.vault-brand span,.vault-footer small{font-family:var(--zz-sans);font-size:10px;font-weight:400;letter-spacing:.24em;color:var(--zz-muted)}
.vault-nav{display:flex;align-items:center;flex-wrap:wrap;gap:12px 32px}
.vault-nav a{padding-block:12px;text-decoration:none;font-size:13px;letter-spacing:.1em;color:var(--zz-muted)}
.vault-nav a:hover{text-decoration:underline;color:var(--zz-fg)}
.vault-main{padding-block:64px 96px;min-height:65svh;overflow-wrap:anywhere}
.vault-main:focus{outline:none}
.vault-page,.vault-commerce,.vault-commerce>*{min-width:0}
.vault-skip{position:fixed;top:12px;left:24px;z-index:99999;padding:10px 18px;background:var(--zz-fg);color:var(--zz-bg);transform:translateY(-180%)}
.vault-skip:focus{transform:none;color:var(--zz-bg)}
.vault-footer{border-top:1px solid var(--zz-line);color:var(--zz-muted)}
.vault-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:32px;font-size:12px;letter-spacing:.08em}
.vault-footer small{margin-left:14px}
.vault-footer p{margin:0}
/* Native catalog and single-product markup; no template replacements. */
.woocommerce .woocommerce-breadcrumb{margin:0 0 32px;color:var(--zz-muted);font-size:12px}
.woocommerce .woocommerce-breadcrumb a{color:inherit}
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering{margin:0 0 32px;color:var(--zz-muted);font-size:13px}
.woocommerce ul.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 32px;margin:0 0 56px;padding:0;clear:both}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product,.woocommerce ul.products[class*="columns-"] li.product{float:none;width:auto;margin:0;min-width:0}
.woocommerce ul.products li.product a img{display:block;aspect-ratio:4/5;object-fit:contain;background:var(--zz-panel);margin:0 0 20px}
.woocommerce ul.products li.product .woocommerce-loop-product__title{padding:0;font-size:18px;font-weight:400;line-height:1.6}
.woocommerce ul.products li.product .price{margin:10px 0 18px;color:var(--zz-muted);font-size:14px}
.woocommerce ul.products li.product .button{margin-top:0}
.woocommerce span.onsale{min-height:0;min-width:0;line-height:1.7;padding:5px 12px;background:var(--zz-panel);color:var(--zz-fg);border:1px solid var(--zz-line);border-radius:0;font-size:12px;font-weight:400}
.woocommerce div.product .product_title{font-weight:400;margin-bottom:24px}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--zz-fg);font-size:21px}
.woocommerce div.product p.stock,.woocommerce div.product .stock{color:var(--zz-muted);font-size:13px}
.woocommerce div.product div.images{margin-bottom:40px}
.woocommerce div.product div.images img{background:var(--zz-panel);object-fit:contain;max-height:760px}
.woocommerce-product-gallery__wrapper{margin:0}
.woocommerce div.product .product_meta{border-top:1px solid var(--zz-line);padding-top:24px;font-size:12px;color:var(--zz-muted)}
.woocommerce div.product .product_meta>span{display:block}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 32px;border-bottom:1px solid var(--zz-line)}
.woocommerce div.product .woocommerce-tabs ul.tabs li,.woocommerce div.product .woocommerce-tabs ul.tabs li.active{padding:0;margin:0 28px 0 0;background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--zz-muted)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{color:var(--zz-fg);border-bottom:1px solid var(--zz-fg)}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-weight:400;padding:12px 0;color:inherit}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,.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 .panel{margin-bottom:56px}
.woocommerce div.product .woocommerce-tabs .panel h2{font-size:24px;margin-top:0}
.woocommerce .related.products{clear:both;padding-top:24px}
.woocommerce .star-rating{color:var(--zz-muted)}
/* Buttons, forms and enhanced selects remain WooCommerce controls. */
.woocommerce :is(a,button,input).button,.vault-main button,.vault-main input[type=submit]{display:inline-block;background:transparent;color:var(--zz-fg);border:1px solid var(--zz-line);border-radius:0;padding:13px 22px;font-size:14px;font-weight:400;line-height:1.5;text-decoration:none;text-shadow:none;box-shadow:none;cursor:pointer;white-space:normal;overflow-wrap:anywhere}
.woocommerce :is(a,button,input).button:hover,.vault-main button:hover{background:var(--zz-panel);color:var(--zz-fg);border-color:var(--zz-muted)}
.woocommerce :is(a,button,input).button.alt,.woocommerce :is(a,button,input).button.alt.disabled{background:var(--zz-fg);color:var(--zz-bg);border-color:var(--zz-fg)}
.woocommerce :is(a,button,input).button.alt:hover{background:var(--zz-muted);color:var(--zz-bg);border-color:var(--zz-muted)}
.woocommerce :is(a,button,input).button:disabled,.woocommerce :is(a,button,input).button.disabled{opacity:.45;cursor:not-allowed}
.woocommerce .quantity .qty{width:4.8em;padding:10px 6px;min-height:48px}
.woocommerce form .form-row{margin-bottom:20px;padding:0}
.woocommerce form .form-row label{line-height:1.7;margin-bottom:8px;color:var(--zz-muted)}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce .input-text,.vault-main select,.vault-main textarea{background:var(--zz-panel);color:var(--zz-fg);border:1px solid var(--zz-line);border-radius:0;padding:11px 14px;min-height:48px;font-size:16px;box-shadow:none}
.vault-main textarea{width:100%;min-height:120px}
.vault-main select{cursor:pointer}
.vault-main option{background:var(--zz-panel);color:var(--zz-fg)}
.vault-main input[type=checkbox],.vault-main input[type=radio]{accent-color:var(--zz-fg);width:18px;height:18px;vertical-align:middle;margin-right:8px}
.woocommerce form .form-row .required,.woocommerce form .form-row .woocommerce-error{color:var(--zz-fg)}
.woocommerce form .form-row.woocommerce-invalid :is(input.input-text,select){border-color:var(--zz-fg)}
.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register{padding:28px;border:1px solid var(--zz-line);border-radius:0;background:var(--zz-panel)}
.vault-main .select2-container{max-width:100%}
.vault-main .select2-container--default .select2-selection--single{background:var(--zz-panel);border:1px solid var(--zz-line);border-radius:0;min-height:48px}
.vault-main .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--zz-fg);line-height:46px;padding-inline:14px 30px}
.vault-main .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px}
.select2-dropdown{background:var(--zz-panel);color:var(--zz-fg);border-color:var(--zz-line);border-radius:0}
.select2-container--default .select2-results__option--highlighted[aria-selected],.select2-container--default .select2-results__option[data-selected=true]{background:var(--zz-fg);color:var(--zz-bg)}
.select2-search--dropdown .select2-search__field{background:var(--zz-bg);color:var(--zz-fg);border:1px solid var(--zz-line);font-size:16px}
/* Native notices, order tables and manual-payment details. */
.woocommerce-error,.woocommerce-info,.woocommerce-message{background:var(--zz-panel);color:var(--zz-fg);border-top:1px solid var(--zz-muted);padding:22px 24px 22px 52px;margin:0 0 32px;overflow-wrap:anywhere}
.woocommerce-error::before,.woocommerce-info::before,.woocommerce-message::before{color:var(--zz-muted);top:24px;left:22px}
.woocommerce table.shop_table{width:100%;border:1px solid var(--zz-line);border-collapse:collapse;border-radius:0;margin-bottom:32px;font-size:14px}
.woocommerce table.shop_table :is(th,td){padding:16px;vertical-align:middle;border-color:var(--zz-line);overflow-wrap:anywhere;font-weight:400}
.woocommerce table.shop_table thead th{color:var(--zz-muted);background:var(--zz-panel)}
.woocommerce table.shop_table :is(tfoot th,tfoot td){font-weight:400;border-top:1px solid var(--zz-line)}
.woocommerce-cart table.cart img{width:72px}
.woocommerce table.cart td.actions .input-text{width:180px;min-height:48px}
.woocommerce a.remove{color:var(--zz-muted)!important;border-radius:0}
.woocommerce a.remove:hover{background:var(--zz-panel);color:var(--zz-fg)!important}
.woocommerce .cart-collaterals{margin-top:40px}
.woocommerce .cart_totals h2,.woocommerce-checkout h3{font-weight:400}
.woocommerce-checkout #payment{background:var(--zz-panel);border:1px solid var(--zz-line);border-radius:0;margin-top:32px}
.woocommerce-checkout #payment ul.payment_methods{padding:24px;border-bottom:1px solid var(--zz-line)}
.woocommerce-checkout #payment div.payment_box{background:var(--zz-bg);color:var(--zz-muted);border-radius:0;padding:20px;font-size:14px}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:var(--zz-bg)}
.woocommerce-checkout #payment div.form-row{padding:24px;margin:0}
.woocommerce-privacy-policy-text{color:var(--zz-muted);font-size:13px}
.woocommerce ul.order_details{display:flex;flex-wrap:wrap;gap:24px;margin:32px 0;padding:0}
.woocommerce ul.order_details li{float:none;max-width:100%;margin:0;padding-right:24px;border-right:1px solid var(--zz-line);font-size:12px;color:var(--zz-muted)}
.woocommerce ul.order_details li strong{color:var(--zz-fg);font-size:15px;font-weight:400}
.woocommerce .woocommerce-customer-details address{border:1px solid var(--zz-line);border-radius:0;padding:24px;background:var(--zz-panel);overflow-wrap:anywhere}
.woocommerce .woocommerce-MyAccount-navigation{width:22%;border-top:1px solid var(--zz-line)}
.woocommerce .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0}
.woocommerce .woocommerce-MyAccount-navigation li{border-bottom:1px solid var(--zz-line)}
.woocommerce .woocommerce-MyAccount-navigation a{display:block;padding:14px 0;color:var(--zz-muted);text-decoration:none}
.woocommerce .woocommerce-MyAccount-navigation .is-active a{color:var(--zz-fg)}
.woocommerce .woocommerce-MyAccount-content{width:72%;min-width:0}
.woocommerce nav.woocommerce-pagination ul,.woocommerce nav.woocommerce-pagination ul li{border-color:var(--zz-line)}
.woocommerce nav.woocommerce-pagination ul li :is(a,span){min-width:44px;padding:14px;color:var(--zz-muted)}
.woocommerce nav.woocommerce-pagination ul li :is(a:hover,a:focus,span.current){background:var(--zz-panel);color:var(--zz-fg)}
.vault-commerce .widget-area{margin-top:48px;border-top:1px solid var(--zz-line);padding-top:24px;color:var(--zz-muted)}
@media(max-width:900px){.vault-brand{gap:12px}.vault-nav{gap:10px 20px}.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
.vault-bar{min-height:0;flex-direction:column;align-items:flex-start;gap:10px;padding-block:22px 12px}
.vault-brand img{width:158px;height:38px}.vault-nav{width:100%;justify-content:space-between;gap:8px}.vault-nav a{font-size:12px;letter-spacing:.04em}
.vault-main{padding-block:40px 64px}.vault-footer-inner{align-items:flex-start;flex-direction:column;gap:12px;padding-block:28px}
.woocommerce ul.products{grid-template-columns:minmax(0,1fr);gap:40px;margin-bottom:40px}.woocommerce ul.products li.product a img{max-height:480px}
.woocommerce .woocommerce-ordering,.woocommerce .woocommerce-result-count{float:none;max-width:100%;margin-bottom:20px}.woocommerce .woocommerce-ordering select{width:100%}
.woocommerce div.product div.images,.woocommerce div.product div.summary{float:none;width:100%}.woocommerce div.product .woocommerce-tabs ul.tabs li{margin-right:20px}
.woocommerce .woocommerce-MyAccount-navigation,.woocommerce .woocommerce-MyAccount-content{float:none;width:100%}.woocommerce .woocommerce-MyAccount-navigation{margin-bottom:32px}
.woocommerce table.shop_table :is(th,td){padding:12px;font-size:13px}.woocommerce table.shop_table_responsive tr:nth-child(2n) td{background:var(--zz-panel)}
.woocommerce table.shop_table_responsive tr td::before{font-weight:400;color:var(--zz-muted)}.woocommerce table.my_account_orders .button{margin:4px;max-width:100%}
.woocommerce-error .button,.woocommerce-info .button,.woocommerce-message .button{float:none;display:table;margin-bottom:14px}
.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register{padding:20px}.woocommerce-checkout #payment ul.payment_methods,.woocommerce-checkout #payment div.form-row{padding:20px}
.woocommerce ul.order_details{gap:20px}.woocommerce ul.order_details li{width:100%;border-right:0;padding-right:0}
.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2{float:none;width:100%}.woocommerce form .form-row-first,.woocommerce form .form-row-last{float:none;width:100%}
.woocommerce table.cart td.actions .coupon .input-text{width:48%;min-width:0}.woocommerce #payment #place_order{width:100%;float:none}
}
/* Brand the native WordPress login without replacing authentication. */
body.login{background:var(--zz-bg);color:var(--zz-fg);font-family:var(--zz-serif)}
body.login #login{width:min(360px,calc(100% - 48px));padding:64px 0 32px}
body.login h1 a{width:176px;height:42px;background-image:url('assets/logo-softwhite-transparent.png');background-size:contain;background-position:center;margin-bottom:36px}
body.login #loginform{background:var(--zz-panel);border:1px solid var(--zz-line);box-shadow:none;border-radius:0;margin-top:24px;padding:26px}
body.login label{color:var(--zz-muted);font-size:14px}
body.login form .input{background:var(--zz-bg);border:1px solid var(--zz-line);color:var(--zz-fg);border-radius:0;box-shadow:none;font:16px var(--zz-sans);min-height:48px;padding:10px 12px}
body.login .button-primary{background:var(--zz-fg);border:1px solid var(--zz-fg);border-radius:0;color:var(--zz-bg);box-shadow:none;font:14px var(--zz-serif);min-height:42px;padding:8px 22px}
body.login .button.wp-hide-pw{color:var(--zz-muted)}
body.login .message,body.login #login_error{background:var(--zz-panel);color:var(--zz-fg);border:1px solid var(--zz-line);box-shadow:none;padding:18px;font-size:13px}
body.login #backtoblog a,body.login #nav a,body.login .privacy-policy-page-link a{color:var(--zz-muted)}
body.login #nav a[href*="lostpassword"]{display:none}
body.login input:focus-visible,body.login button:focus-visible{outline:2px solid var(--zz-fg);outline-offset:3px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
