/*
Theme Name: LIZTOR
Theme URI: http://localhost:8080
Author: LIZTOR Replica
Description: A custom replica of the LIZTOR store (Canopy/Boost theme). Poppins font, light theme, pill buttons, rounded product cards.
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: lizvie
*/

/* ==========================================================================
   1. VARIABLES & BASE
   ========================================================================== */
:root {
    --lizvie-bg: #000000;
    --lizvie-text: #ffffff;
    --lizvie-heading: #ffffff;
    --lizvie-primary: #ffffff;
    --lizvie-primary-hover-filter: contrast(90%) brightness(.92);
    --lizvie-btn-text: #000000;
    --lizvie-secondary: #ffffff;
    --lizvie-secondary-text: #000000;
    --lizvie-sale: #1acdcd;
    --lizvie-compare: rgba(255, 255, 255, 0.5);
    --lizvie-announce-bg: #000000;
    --lizvie-announce-text: #ffffff;
    --lizvie-soft-bg: #161616;
    --lizvie-rich-bg: #141414;
    --lizvie-rich-text: #f5f5f5;
    --lizvie-footer-bg: #f1f2f6;
    --lizvie-footer-text: #000000;
    --lizvie-border: #2a2a2a;
    --lizvie-radius: 25px;
    --lizvie-radius-img: 30px;
    --lizvie-container: 1600px;
    --lizvie-font: 'Poppins', 'Helvetica Neue', Arial, sans-serif;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    background: var(--lizvie-bg);
    color: var(--lizvie-text);
    font-family: var(--lizvie-font);
    font-size: 16px;
    line-height: 1.6;
}

img { max-width: 100%; height: auto; }

a { color: var(--lizvie-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--lizvie-font);
    color: var(--lizvie-heading);
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 0.6em;
}

h1 { font-size: 2.2em; }
h2 { font-size: 1.8em; }
h3 { font-size: 1.4em; }
h4 { font-size: 1.15em; }

p { margin: 0 0 1em; }

.container, .page-width {
    max-width: var(--lizvie-container);
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
}

.page-width {
    width: 100%;
    max-width: 1600px;
}

.visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
}

.skip-link { position: absolute; left: -9999px; top: 0; z-index: 999; }
.skip-link:focus { left: 10px; top: 10px; background: #fff; padding: 10px 16px; }

/* ==========================================================================
   3. HEADER
   ========================================================================== */
/* 头部整体固定：滚动时 logo + 导航 + 服务通栏保持可见 */
.header-group { position: sticky; top: 0; z-index: 200; }
.site-header { background: #ffffff; color: #000; position: relative; z-index: 102; border-top: 1px solid rgba(0,0,0,.12); }
.header-content { padding: 12px 0; }
.utils { display: flex; align-items: center; position: relative; }

/* 三栏居中版（头部第一行）：左汉堡 / 中 LOGO / 右图标，logo 严格几何居中
   （原 .utils__right 的 flex-grow 会吃掉剩余空间导致 logo 偏左，grid 轨道固定三栏） */
.utils--center { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }

.utils__left { flex: 1 1 0; display: flex; align-items: center; gap: 18px; }
.utils__right { flex: 1 1 0; display: flex; align-items: center; justify-content: flex-end; gap: 22px; }
.utils--center .store-logo { margin: 0 auto; }

.burger-icon {
    background: none; border: 0;
    color: inherit; cursor: pointer;
    padding: 6px;
}
.icon--header svg { width: 24px; height: 24px; display: block; }

/* search */
.search-bar { position: relative; }
.search-form {
    display: flex; align-items: center;
    border-bottom: 2px solid rgba(255,255,255,.6);
    min-width: 240px;
}
.search-form__input {
    border: 0; background: none; outline: none;
    font-family: inherit; font-size: 18px;
    padding: 6px 10px; width: 100%; color: #fff;
}
.search-form__button { background: none; border: 0; cursor: pointer; padding: 6px; color: #fff; }

/* logo */
.store-logo { text-align: center; }
.store-logo img { width: 246px; height: auto; display: block; }

/* account */
.header-icon-link { display: block; color: #000; padding: 6px; }
.header-icon-link:hover { color: #333; }
.customer-account { position: relative; }
.customer-account__parent-link { display: block; color: #000; padding: 6px; }
.customer-account__menu {
    display: none;
    position: absolute; right: 0; top: 100%;
    background: #161616; border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,.6);
    border: 1px solid rgba(255,255,255,.1);
    list-style: none; margin: 0; padding: 8px 0;
    min-width: 200px; z-index: 300;
}
.customer-account:hover .customer-account__menu { display: block; }
.customer-account__link a { display: block; padding: 8px 18px; color: #d8d8d8; font-size: 15px; }
.customer-account__link a:hover { background: rgba(255,255,255,.08); text-decoration: none; }

/* cart */
.header-cart { position: relative; }
.header-cart > a { display: flex; align-items: center; gap: 6px; color: #000; padding: 6px; }
.header-cart__count {
    background: #000;
    color: #fff;
    font-size: 12px;
    min-width: 20px; height: 20px;
    border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0 5px;
}

/* currency */
.header-localization .disclosure__toggle {
    background: none; border: 0; cursor: pointer;
    font-family: inherit; font-size: 15px; color: #404040;
    display: inline-flex; align-items: center; gap: 4px; padding: 6px;
}
.disclosure__toggle-arrow svg { width: 14px; height: 14px; }

/* ==========================================================================
   4. NAVIGATION
   ========================================================================== */
.docked-navigation-container { background: #000; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.header-navigation { padding: 0; }
.navigation__container { display: flex; justify-content: center; }

/* 服务通栏（导航下方）：浅灰底三段文字，随头部固定 */
.service-banner { background: #f5f5f5; border-bottom: 1px solid rgba(0,0,0,.08); }
.service-banner__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    padding: 9px 0;
    color: #333;
    font-size: 13px;
}
.service-banner__item { white-space: nowrap; }

.site-nav {
    list-style: none; margin: 0; padding: 0;
    display: flex; justify-content: center; align-items: center;
    gap: 4px;
}
.site-nav__item { position: relative; }
.site-nav__link {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 12px 16px;
    font-size: 18px; font-weight: 400; color: #ffffff;
    text-decoration: none;
}
.site-nav__link:hover { text-decoration: none; color: var(--lizvie-primary); }
.site-nav__icon svg {
    width: 12px; height: 12px;
    stroke: rgba(255,255,255,.55); fill: none;
    transition: transform .2s;
}
.site-nav__link:hover .site-nav__icon svg { stroke: rgba(255,255,255,.9); }
.site-nav__item:hover .site-nav__icon svg { transform: rotate(180deg); }

.site-nav__dropdown {
    display: none;
    position: absolute; top: 100%; left: 0;
    background: #161616;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,.6);
    padding: 14px 0;
    min-width: 260px;
    z-index: 400;
}
.site-nav__item:hover .site-nav__dropdown { display: block; }
.small-dropdown__container { list-style: none; margin: 0; padding: 0; }
.small-dropdown__item a {
    display: block; padding: 8px 24px;
    color: #d8d8d8; font-size: 14px; text-decoration: none;
    white-space: nowrap;
}
.small-dropdown__item a:hover { background: rgba(255,255,255,.08); color: var(--lizvie-primary); text-decoration: none; }

/* ==========================================================================
   5. BUTTONS
   ========================================================================== */
.btn, button.btn, input[type="submit"].btn, .button {
    --button-border-color: #ffffff;
    --button-hover-filter: contrast(90%) brightness(1.1);
    appearance: none;
    display: inline-block;
    font-family: var(--lizvie-font);
    font-size: 18px;
    line-height: 1.3;
    color: var(--lizvie-btn-text);
    background-color: var(--lizvie-primary);
    border: 0;
    border-radius: 25px;
    padding: 11px 39px;
    min-width: 160px;
    margin: 1px;
    text-align: center;
    cursor: pointer;
    text-decoration: none;
    text-transform: none;
    transition: all .1s ease-in-out;
}
.btn:hover, button.btn:hover, input[type="submit"].btn:hover, .button:hover {
    color: var(--lizvie-btn-text);
    filter: var(--button-hover-filter);
    box-shadow: 0 0 0 1px var(--button-border-color), 0 4px 10px -4px var(--button-border-color), 0 2px 6px rgba(0,0,0,.5);
    transform: translateY(-3px);
    text-decoration: none;
}
.btn--secondary {
    --button-border-color: #ffffff;
    background-color: #ffffff;
    color: #000000;
}
.btn--secondary:hover { color: #000000; }

.btn--plain {
    background: none; border: 0; box-shadow: none;
    color: inherit; min-width: 0; padding: 0; margin: 0;
}
.btn--plain:hover { background: none; border: 0; box-shadow: none; color: inherit; transform: none; }

/* 置于 .btn 规则之后：同特异性下后定义者胜出，保证桌面端汉堡按钮隐藏；
   同时覆盖 button.btn 的高特异性默认样式（padding/min-width/背景），
   让移动端汉堡按钮保持纯图标尺寸，不撑开头部布局 */
button.burger-icon {
    display: none;
    background: none; border: 0; box-shadow: none;
    color: inherit; min-width: 0; padding: 6px; margin: 0;
    border-radius: 0;
}
button.burger-icon:hover { background: none; box-shadow: none; transform: none; filter: none; }

/* 覆盖 .btn 的块状样式（button.btn 特异性同级，位置在后胜出），搜索按钮回归下划线风格 */
button.search-form__button {
    background: none;
    border: 0;
    color: #ffffff;
    font-size: 18px;
    padding: 6px;
    min-width: 0;
    width: auto;
    box-shadow: none;
}

.btn--quicklook, .quick-buy {
    --button-border-color: rgba(0,0,0,.25);
    padding: 11px 16px; width: 100%; max-width: 320px; min-width: auto;
}
.btn--quicklook:hover, .quick-buy:hover {
    background-color: #f5f5f5; color: #000000;
}

.btn--small { font-size: 15px; padding: 8px 22px; min-width: 118px; }

/* 描边按钮（次行动作）：透明底 + 白色边框 */
.btn--outline {
    background: transparent; color: #ffffff; min-width: 0;
    border: 1px solid rgba(255,255,255,.45); border-radius: 25px;
}
.btn--outline:hover { background: rgba(255,255,255,.08); color: #ffffff; }

/* ==========================================================================
   6. HOMEPAGE
   ========================================================================== */
/* slideshow */
.full-width-slideshow {
    position: relative;
    padding: 20px 0 0;
}
.slideshow__slide { position: relative; overflow: hidden; border-radius: 30px; }
.slideshow__slide img { width: 100%; display: block; }
.slideshow {
    position: relative;
    overflow: hidden;
    border-radius: 30px;
}
.slideshow__slide {
    display: none;
    position: relative;
}
.slideshow__slide.is-active { display: block; }
.slideshow__slide-link { display: block; }
.slideshow__slide img { width: 100%; display: block; }

.slideshow__dots {
    position: absolute;
    bottom: 18px; left: 0; right: 0;
    display: flex; justify-content: center; gap: 8px;
    z-index: 5;
}
.slideshow__dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    border: 0;
    background: rgba(255,255,255,.6);
    cursor: pointer;
    padding: 0;
    transition: background .2s;
}
.slideshow__dot.is-active { background: #fff; }

.btn.loading { opacity: .6; pointer-events: none; }
.variation-price { font-size: 20px; font-weight: 600; margin: 6px 0 0; }
.variation-availability { color: #66bb6a; margin: 2px 0; }
.variation-unavailable { color: #ef5350; margin: 6px 0 0; }

/* rich text */
.rich-text-section {
    background: var(--lizvie-rich-bg);
    color: var(--lizvie-rich-text);
    text-align: center;
    padding: 50px 20px;
    margin: 20px 0 0;
}
.rich-text-section .large-title,
.rich-text-section h2 { color: var(--lizvie-rich-text); }
.rich-text-section .rte { max-width: 880px; margin: 0 auto; font-size: 18px; }

/* banner grid（已移除：8 横幅改为 Hero 单图横幅） */

/* featured collections */
.featured-collection { padding: 50px 0 20px; text-align: center; }
.featured-collection__heading { font-size: 2em; margin-bottom: 8px; }
.featured-collection__sub { color: #999999; margin-bottom: 30px; }
.featured-collection__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    text-align: left;
}
.featured-collection .btn { margin-top: 30px; }

/* real footage videos (homepage hidden camera section) */
.footage-section { padding: 50px 0 20px; text-align: center; }
.footage-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    text-align: left;
}
.footage-item { position: relative; }
.footage-item__video {
    display: block;
    width: 100%;
    aspect-ratio: 9 / 16;
    object-fit: cover;
    background: #161616;
    border-radius: 30px;
}
.footage-item__title {
    font-size: 15px;
    font-weight: 600;
    margin: 12px 4px 0;
    text-align: center;
}

/* ==========================================================================
   7. PRODUCT CARD
   ========================================================================== */
.product-block { position: relative; }
.product-block__image {
    display: block; position: relative;
    overflow: hidden;
    border-radius: 30px;
    background: #161616;
    margin-bottom: 1em; /* 图片下间距移至容器，替代 WooCommerce 默认 img margin */
}
.product-block__image img {
    width: 100%; height: auto; display: block;
    transition: opacity .3s ease;
}
/* 覆盖 WooCommerce 默认规则 ul.products li.product a img 的 margin: 0 0 1em，
   图片下间距统一由 .product-block__image 的 margin-bottom 承担 */
.woocommerce ul.products li.product a img { margin: 0; }
.product-block__image .second-img { position: absolute; top: 0; left: 0; opacity: 0; }
.product-block:hover .product-block__image .first-img { opacity: 0; }
.product-block:hover .product-block__image .second-img { opacity: 1; }

.product-block__quick-buy {
    position: absolute; left: 50%; bottom: 14px;
    transform: translateX(-50%) translateY(10px);
    opacity: 0; transition: all .25s;
    z-index: 5;
    width: 90%;
}
.product-block:hover .product-block__quick-buy { opacity: 1; transform: translateX(-50%) translateY(0); }
/* Quick Buy 成功后隐藏 WooCommerce 默认插入的 View cart 小链接（提示由 cart-toast 承担） */
.product-block__quick-buy .added_to_cart.wc-forward { display: none; }

/* 加购成功提示 toast */
.cart-toast {
    position: fixed; top: 20px; left: 50%;
    transform: translateX(-50%) translateY(-24px);
    display: flex; align-items: center; gap: 14px;
    background: #161616; color: #ffffff;
    padding: 12px 18px; border-radius: 30px;
    box-shadow: 0 10px 34px rgba(0,0,0,.45);
    z-index: 9999;
    opacity: 0; pointer-events: none;
    transition: transform .3s ease, opacity .3s ease;
}
.cart-toast.is-visible { transform: translateX(-50%) translateY(0); opacity: 1; pointer-events: auto; }
.cart-toast__msg { font-size: 15px; white-space: nowrap; }
.cart-toast__link {
    font-size: 14px; font-weight: 600;
    background: var(--lizvie-primary); color: var(--lizvie-btn-text);
    padding: 8px 18px; border-radius: 20px; text-decoration: none;
    transition: filter .15s;
}
.cart-toast__link:hover { filter: brightness(1.06); color: var(--lizvie-btn-text); }
.cart-toast__close { background: none; border: 0; color: #999; font-size: 18px; line-height: 1; cursor: pointer; padding: 2px 4px; }
.cart-toast__close:hover { color: #fff; }

.product-label {
    position: absolute; top: 10px; right: 10px;
    z-index: 4;
    font-size: 13px;
    padding: 4px 12px;
    border-radius: 12px;
    font-weight: 600;
    letter-spacing: .02em;
}
.product-label--on-sale { color: #fff; background: var(--lizvie-sale); }
.product-label--sold-out { color: #fff; background: #444649; }

.product-block__title {
    margin: 12px 0 0; font-size: 16px; font-weight: 400; text-transform: none;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
    overflow: hidden; min-height: 2.6em;
}
.product-block__title a { color: #ffffff; text-decoration: none; }
.product-block__title a:hover { color: var(--lizvie-primary); }

.product-block__price { margin-top: 4px; font-size: 16px; }
.product-block__price ins,
.product-info__price ins { text-decoration: none; }
.price { font-size: 1rem; }
.price__sale { color: var(--lizvie-sale); font-weight: 600; }
.price__compare {
    font-size: 70%; opacity: .5;
    text-decoration: line-through;
    margin-left: 6px; color: inherit; font-weight: 400;
}
.price--sold-out { color: #888888; }

.product-block__rating {
    display: flex; align-items: center; gap: 6px;
    margin-top: 6px;
    font-size: 14px; color: #999999;
}
.stars { color: #f5a623; letter-spacing: 1px; font-size: 14px; }

/* archive header */
.collection-header { text-align: center; padding: 30px 20px 10px; }
.collection-header h1 { font-size: 2.4em; }
.collection-header__desc { color: #999999; max-width: 760px; margin: 0 auto; }

/* toolbar */
.shop-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 0; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12);
    margin-bottom: 30px;
}
.shop-toolbar .woocommerce-result-count { margin: 0; }
.shop-toolbar__count { color: #999999; font-size: 15px; }
.woocommerce-ordering select {
    font-family: inherit; font-size: 15px; color: #ffffff;
    padding: 8px 30px 8px 14px;
    border: 1px solid rgba(255,255,255,.3); border-radius: 25px;
    background: #161616 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;
    appearance: none;
    cursor: pointer;
    outline: none;
}

.products-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    list-style: none; margin: 0; padding: 0;
}
/* 覆盖 WooCommerce 默认 ul.products li.product 的百分比宽度/浮动，避免与 grid 轨道冲突 */
ul.products.products-grid li.product {
    width: auto; float: none; margin: 0;
}
/* 禁用 WooCommerce 默认 clearfix 伪元素（grid 中会占位导致首/末行缺卡片） */
ul.products.products-grid::before,
ul.products.products-grid::after {
    content: none;
}

/* pagination
   选择器加 .woocommerce 前缀以覆盖 WooCommerce 默认分页 CSS（其特异性更高） */
.woocommerce .woocommerce-pagination { text-align: center; padding: 40px 0 56px; }
.woocommerce .woocommerce-pagination .page-numbers {
    list-style: none; display: inline-flex; gap: 8px; margin: 0; padding: 0;
    border: 0; white-space: normal;
}
.woocommerce .woocommerce-pagination .page-numbers::before,
.woocommerce .woocommerce-pagination .page-numbers::after {
    content: none;
}
.woocommerce .woocommerce-pagination .page-numbers li {
    float: none; display: inline-flex; border: 0; margin: 0; padding: 0; overflow: visible;
}
.woocommerce .woocommerce-pagination .page-numbers li a,
.woocommerce .woocommerce-pagination .page-numbers li span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 42px; height: 42px; padding: 0; line-height: 1;
    border-radius: 21px;
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(255,255,255,.04);
    color: #e6e6e6; font-size: 16px; font-weight: 500;
    text-decoration: none;
    transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.woocommerce .woocommerce-pagination .page-numbers li span.current {
    background: var(--lizvie-primary);
    color: var(--lizvie-btn-text);
    border-color: var(--lizvie-primary);
    font-weight: 600;
    box-shadow: 0 0 0 4px rgba(255,255,255,.14), 0 4px 16px rgba(255,255,255,.2);
    cursor: default;
}
.woocommerce .woocommerce-pagination .page-numbers li a:hover,
.woocommerce .woocommerce-pagination .page-numbers li a:focus {
    background: var(--lizvie-primary);
    color: var(--lizvie-btn-text);
    border-color: var(--lizvie-primary);
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(255,255,255,.18);
}
.woocommerce .woocommerce-pagination .page-numbers li a:active { transform: translateY(0) scale(.94); }
.woocommerce .woocommerce-pagination .page-numbers li a.next,
.woocommerce .woocommerce-pagination .page-numbers li a.prev {
    font-size: 18px; font-weight: 400;
}
@media only screen and (max-width: 767px) {
    .woocommerce .woocommerce-pagination { padding: 28px 0 40px; }
    .woocommerce .woocommerce-pagination .page-numbers { gap: 5px; }
    .woocommerce .woocommerce-pagination .page-numbers li a,
    .woocommerce .woocommerce-pagination .page-numbers li span {
        min-width: 38px; height: 38px; border-radius: 19px; font-size: 14px;
    }
}

/* ==========================================================================
   8. SINGLE PRODUCT
   ========================================================================== */
.product-layout {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 50px;
    padding: 40px 0;
}
.product-gallery { position: relative; }
.product-gallery__main {
    border-radius: 30px; overflow: hidden;
    background: #161616;
    position: relative;
}
.product-gallery__main img { width: 100%; display: block; }
.product-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
    margin-top: 12px;
}
.product-gallery__thumbs img {
    width: 100%; border-radius: 12px; cursor: pointer;
    border: 2px solid transparent;
    background: #161616;
}
.product-gallery__thumbs img.is-active { border-color: var(--lizvie-primary); }

.product-info__title { font-size: 2em; margin-bottom: 8px; }
.product-info__rating {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 14px; color: #999999; font-size: 15px;
}
.product-info__price { font-size: 24px; margin-bottom: 18px; }
.product-info__price .price__sale { font-size: 1.3em; }

.product-info__description { margin: 18px 0; }
.product-info__description .rte { font-size: 16px; }

/* variations */
.variations-form { margin: 20px 0; }
.variation-row { margin-bottom: 16px; }
.variation-row label { display: block; font-weight: 600; margin-bottom: 8px; font-size: 15px; }
.variation-options { display: flex; flex-wrap: wrap; gap: 8px; }
.variation-options .opt-btn { position: absolute; opacity: 0; }
.variation-options .opt-label {
    display: inline-block;
    padding: 9px 22px;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 25px;
    font-size: 15px;
    cursor: pointer;
    transition: all .15s;
    color: #d8d8d8;
}
.variation-options .opt-label:hover { background: rgba(255,255,255,.06); }
.variation-options .opt-btn:checked + .opt-label {
    background-color: var(--lizvie-primary);
    border-color: var(--lizvie-primary);
    color: var(--lizvie-btn-text);
}

.quantity-row { display: flex; align-items: center; gap: 14px; margin: 24px 0; }
.quantity-row label { font-weight: 600; font-size: 15px; }
.quantity-input {
    width: 90px;
    padding: 10px 14px;
    border: 1px solid rgba(255,255,255,.25); border-radius: 25px;
    font-family: inherit; font-size: 16px; text-align: center;
    outline: none;
}

.add-to-cart-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }

/* tabs */
.product-tabs { margin: 40px 0 20px; }
.tabs-nav { display: flex; gap: 30px; border-bottom: 1px solid rgba(255,255,255,.15); margin-bottom: 24px; }
.tabs-nav button {
    background: none; border: 0; cursor: pointer;
    font-family: inherit; font-size: 18px; font-weight: 600;
    color: #999999; padding: 12px 2px;
    border-bottom: 2px solid transparent;
}
.tabs-nav button.is-active { color: var(--lizvie-primary); border-bottom-color: var(--lizvie-primary); }
.tab-content { display: none; }
.tab-content.is-active { display: block; }
.tab-content .rte { font-size: 16px; }

/* related */
.related-products { padding: 40px 0 60px; }
.related-products h2 { text-align: center; font-size: 1.8em; margin-bottom: 30px; }

/* ==========================================================================
   9. CART / CHECKOUT / ACCOUNT
   ========================================================================== */
.woocommerce .cart-empty { text-align: center; font-size: 20px; padding: 60px 0 20px; }
.woocommerce .return-to-shop { text-align: center; padding-bottom: 60px; }

/* ---- Cart 页（布局模仿 stetson-theme：5 列细线表格 + 底部左继续购物右 Totals） ---- */
.cart-page { max-width: 1200px; margin: 0 auto; }

.woocommerce table.cart-table {
    width: 100%; border-collapse: collapse;
    border: 0; border-radius: 0; overflow: visible;
    margin-bottom: 0;
}
.woocommerce table.cart-table th {
    font-size: 12px; text-transform: uppercase; letter-spacing: 1px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(255,255,255,.2);
    text-align: left; background: none;
}
.woocommerce table.cart-table td {
    padding: 20px 14px 20px 0;
    border-bottom: 1px solid rgba(255,255,255,.1);
    vertical-align: middle; font-size: 15px;
}
.woocommerce table.cart-table td:first-child { padding-left: 0; }
.woocommerce table.cart-table td:last-child { padding-right: 0; }
.woocommerce table.cart-table td.product-quantity { min-width: 0; } /* 覆盖 WooCommerce 默认 min-width:80px，避免撑宽表格 */

/* 商品列：缩略图 + 名称 + 变体信息合并一列 */
.cart-item-flex { display: flex; align-items: center; gap: 18px; }
.cart-item-thumb {
    width: 80px; height: 100px; flex-shrink: 0;
    overflow: hidden; border-radius: 12px; background: #161616;
}
.cart-item-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 压过插件样式表（如 table.cart img{width:32px}）对购物车缩略图尺寸的干扰 */
table.cart .cart-item-thumb img { width: 100% !important; height: 100% !important; object-fit: cover; }
/* 商品名称：描述性信息，弱化处理——常规字重、字号小于价格值，让价格成为卡片视觉重点
   （高特异性压过 .page-content .rte h3 的 1.25em 字号规则） */
table.cart .cart-item-details .cart-item-name { font-size: 14px; font-weight: 500; line-height: 1.45; margin: 0 0 4px; }
.cart-item-details .cart-item-name a { color: #ffffff; }
.cart-item-details .variation { font-size: 13px; color: #9b9b9b; margin: 0; padding: 0; }
.cart-item-details .variation dt { display: inline-block; margin: 0 4px 0 0; font-weight: 600; color: #bdbdbd; }
.cart-item-details .variation dd { display: inline; margin: 0 14px 0 0; padding: 0 0 0 0; }

/* 数量输入框 */
.woocommerce table.cart-table .quantity .qty {
    width: 64px; padding: 8px 10px;
    border: 1px solid rgba(255,255,255,.25); border-radius: 8px;
    background: transparent; color: #ffffff;
    font-family: inherit; text-align: center;
}
.woocommerce table.cart-table .quantity .qty:focus { border-color: var(--lizvie-primary); outline: none; }

/* 删除链接：最右列，灰色 × */
.woocommerce table.cart-table td.product-remove { width: 40px; text-align: right; }
.woocommerce table.cart-table td.product-remove .remove {
    color: #8a8a8a; font-size: 26px; line-height: 1; font-weight: 300;
    display: inline-block; padding: 2px 6px;
}
.woocommerce table.cart-table td.product-remove .remove:hover { color: #ffffff; }

/* 底部：左 Continue Shopping + 右 Totals 卡片 */
.cart-bottom { display: flex; justify-content: space-between; align-items: flex-start; margin-top: 30px; gap: 20px; }
.cart-continue { padding-top: 8px; }
.cart-continue .btn { padding: 12px 28px; font-size: 15px; }

.cart-totals-wrap { min-width: 320px; width: 100%; max-width: 400px; }
.cart-totals-box { background: #161616; border: 1px solid rgba(255,255,255,.15); border-radius: 20px; padding: 26px; }
.cart-totals__title { font-size: 16px; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 18px; }
.cart-totals-row { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; padding: 8px 0; }
.cart-totals-row--shipping { color: #9b9b9b; }
.cart-totals-row--total {
    border-top: 1px solid rgba(255,255,255,.15); margin-top: 8px; padding-top: 16px;
    font-size: 16px; font-weight: 700;
}
.cart-totals-row--total .amount { color: var(--lizvie-sale); }
.cart-totals__update { width: 100%; margin-top: 18px; padding: 12px 24px; font-size: 15px; min-width: 0; }
.cart-totals__checkout { width: 100%; display: block; text-align: center; margin-top: 10px; padding: 12px 24px; font-size: 15px; min-width: 0; }

/* 移动端：行变卡片、字段标签前置、删除按钮绝对定位右上 */
@media only screen and (max-width: 939px) {
    .cart-table, .cart-table tbody, .cart-table tr, .cart-table td { display: block; width: 100%; }
    .cart-table tr.woocommerce-cart-form__cart-item {
        position: relative;
        background: #161616; border: 1px solid rgba(255,255,255,.15); border-radius: 16px;
        padding: 16px; margin-bottom: 16px;
    }
    .cart-table td { border-bottom: 0; padding: 0; }
    /* 覆盖 WooCommerce smallscreen.css 的 .woocommerce table.cart .product-thumbnail{display:none}
       （该文件按视口条件全局加载、无 @media 包裹），保证 <939px 缩略图始终可见 */
    .woocommerce table.cart-table td.product-thumbnail { display: block; }
    .cart-table td.product-thumbnail { padding-right: 40px; margin-bottom: 14px; }
    /* 移动端商品名再降一档：13px 常规体，与下方 PRICE/QUANTITY 标签形成平缓层级 */
    table.cart .cart-item-details .cart-item-name { font-size: 13px; font-weight: 400; }
    .cart-table td.product-price,
    .cart-table td.product-quantity,
    .cart-table td.product-subtotal {
        display: flex; justify-content: space-between; align-items: center;
        padding: 10px 0; border-top: 1px solid rgba(255,255,255,.1); font-size: 14px;
    }
    .cart-table td.product-price::before,
    .cart-table td.product-quantity::before,
    .cart-table td.product-subtotal::before {
        content: attr(data-title);
        font-size: 11px; text-transform: uppercase; letter-spacing: 1px;
        font-weight: 600; color: #9b9b9b;
    }
    .cart-table td.product-remove { position: absolute; top: 12px; right: 12px; width: auto; }
    .cart-bottom { flex-direction: column; align-items: stretch; gap: 20px; margin-top: 20px; }
    .cart-continue .btn { display: block; width: 100%; text-align: center; }
    .cart-totals-wrap { min-width: 0; max-width: none; }
    .cart-totals-box { padding: 20px; }
}

.woocommerce .cart_totals .order-total .amount { color: var(--lizvie-sale); font-weight: 700; font-size: 1.2em; }
.woocommerce .checkout-button { width: 100%; }

/* checkout */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-additional-fields h3 {
    font-size: 1.3em;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    width: 100%; padding: 12px 16px;
    border: 1px solid rgba(255,255,255,.25); border-radius: 12px;
    font-family: inherit; font-size: 15px; color: #ffffff;
    background: #161616; outline: none;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: var(--lizvie-primary); }
.woocommerce #payment {
    background: #161616; border-radius: 20px; padding: 20px;
}
.woocommerce #payment ul.payment_methods { list-style: none; margin: 0 0 16px; padding: 0; }
.woocommerce #payment ul.payment_methods li { padding: 8px 0; }
.woocommerce #payment div.payment_box { background: #222222; border-radius: 12px; padding: 14px; margin-top: 8px; font-size: 14px; }
.woocommerce #place_order { width: 100%; }

/* forms (login/contact) */
.woocommerce form.login, .woocommerce form.register {
    border: 1px solid rgba(255,255,255,.2); border-radius: 20px; padding: 24px; max-width: 480px;
}
.woocommerce form.login p, .woocommerce form.register p { font-size: 15px; }

/* ==========================================================================
   10. PAGES (about / contact / policies)
   ========================================================================== */
.page-content { padding: 40px 0 70px; }
.page-content .rte { font-size: 16px; max-width: 900px; }
.page-content .rte h2 { font-size: 1.6em; margin-top: 1.4em; }
.page-content .rte h3 { font-size: 1.25em; margin-top: 1.2em; }
.page-content .rte ul, .page-content .rte ol { padding-left: 22px; }
.page-content .rte li { margin-bottom: .5em; }

.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.contact-info ul { list-style: none; padding: 0; }
.contact-info li { padding: 6px 0; font-size: 16px; }
.wpcf7-form, .contact-form {
    display: flex; flex-direction: column; gap: 14px;
}
.contact-form label { font-weight: 600; font-size: 15px; }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
    width: 100%; padding: 12px 16px;
    border: 1px solid rgba(255,255,255,.25); border-radius: 12px;
    font-family: inherit; font-size: 15px; outline: none;
}
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--lizvie-primary); }

/* ==========================================================================
   11. FOOTER
   ========================================================================== */
.page-footer { margin-top: 60px; }
.page-footer__inner {
    background: var(--lizvie-footer-bg);
    color: var(--lizvie-footer-text);
    padding: 50px 0 45px;
}
.page-footer__blocks {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}
.footer-block__heading { font-size: 18px; font-weight: 700; margin-bottom: 14px; color: #000; }
/* 折叠块的标题是 button：重置浏览器默认样式，桌面端外观与原来一致且不可交互 */
button.footer-block__heading {
    background: none; border: 0; padding: 0; margin: 0;
    color: inherit; text-align: left; cursor: default;
}
.footer-block .rte { font-size: 15px; line-height: 1.7; }
.footer_image { margin-top: 16px; }
.footer_image img { max-width: 90px; }

.footer-block ul.nav { list-style: none; margin: 0; padding: 0; }
.footer-block ul.nav li { margin-bottom: 8px; }
.footer-block ul.nav a {
    color: #333; font-size: 15px; text-decoration: none;
}
.footer-block ul.nav a:hover { color: #000; text-decoration: underline; }

.social-links__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 12px; }
.social-links__list a { display: inline-flex; color: #333; }
.social-links__list svg { width: 26px; height: 26px; fill: currentColor; }

.page-footer__end {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 16px;
    border-top: 1px solid rgba(0,0,0,.12);
    margin-top: 40px; padding-top: 26px;
    font-size: 14px; color: #666;
}
.payment-icons { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.payment-icons .payment-icon {
    height: 30px;
    display: inline-flex; align-items: center;
    padding: 3px 8px;
    background: #fff;
    border-radius: 6px;
    font-size: 12px; font-weight: 700; color: #333;
    letter-spacing: .02em;
    box-shadow: 0 0 0 1px rgba(0,0,0,.08);
}

/* ==========================================================================
   12. BREADCRUMB / WC MISC
   ========================================================================== */
.woocommerce-breadcrumb { font-size: 14px; color: #6d6d6d; padding: 16px 0 0; }
.woocommerce-breadcrumb a { color: #6d6d6d; }
.woocommerce-breadcrumb a:hover { color: var(--lizvie-primary); }

.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border-radius: 14px; padding: 14px 18px; margin-bottom: 20px;
    list-style: none; font-size: 15px;
}
.woocommerce-message { background: #e8f5e9; color: #2e7d32; border: 0; }
.woocommerce-info { background: #e3f2fd; color: #1565c0; }
.woocommerce-error { background: #fdecea; color: #c62828; }
.woocommerce-message .button { margin-left: 10px; font-size: 14px; padding: 8px 18px; min-width: 0; }

.woocommerce-notices-wrapper { max-width: var(--lizvie-container); margin: 0 auto; padding: 16px 20px 0; }

/* product meta */
.product_meta { font-size: 14px; color: #6d6d6d; margin-top: 20px; padding-top: 16px; border-top: 1px solid #eee; }
.product_meta > span { display: block; margin-bottom: 4px; }
.product_meta a { color: #6d6d6d; }

/* search results */
.search-page { padding: 40px 0 70px; }
.search-page .search-form { max-width: 520px; margin: 0 auto 36px; }

/* ==========================================================================
   13. RESPONSIVE
   ========================================================================== */
@media only screen and (max-width: 1023px) {
    .products-grid,
    .featured-collection__grid,
    .footage-grid { grid-template-columns: repeat(3, 1fr); }
    .product-layout { grid-template-columns: 1fr; gap: 30px; }
    .contact-grid { grid-template-columns: 1fr; }
}

/* 导航条随窗口宽度自适应：超宽屏 18px → 大屏 16px → 中屏 14px → 窄屏 13px */
@media only screen and (max-width: 1600px) {
    .site-nav__link { font-size: 16px; padding: 12px 16px; }
}
@media only screen and (max-width: 1440px) {
    .site-nav__link { font-size: 14px; padding: 12px 14px; }
}
@media only screen and (max-width: 1100px) {
    .site-nav__link { font-size: 14px; padding: 12px 12px; }
    .site-nav__icon svg { width: 11px; height: 11px; }
}
@media only screen and (max-width: 1000px) {
    .site-nav__link { font-size: 13px; padding: 12px 9px; }
    .site-nav { gap: 2px; }
}

/* 移动菜单默认隐藏：仅 ≤939px 显示，避免 PC 端 body 尾部露出菜单 HTML */
.mobile-menu { display: none; }

@media only screen and (max-width: 939px) {
    button.burger-icon { display: inline-flex; }
    .desktop-only { display: none !important; }
    .docked-navigation-container { display: none; }
    .site-nav { display: none; }
    .store-logo img { width: auto; max-width: 120px; }
    /* 移动端保持原有头部布局：汉堡 → LOGO → 搜索 → 账户/购物车
       （grid 三栏仅桌面生效；display:contents 让左栏子项直接参与 flex 排序） */
    .utils--center { display: flex; }
    .utils__left { display: contents; }
    .utils__left .burger-icon { order: 1; }
    .utils--center .store-logo { order: 2; margin: 0; }
    .utils__left .utils__item--search { order: 3; margin-left: auto; }
    .utils__right { order: 4; flex: 0 0 auto; }

    /* mobile menu */
    .mobile-menu {
        display: block;
        position: fixed; top: 0; left: 0; bottom: 0;
        width: 320px; max-width: 85vw;
        background: linear-gradient(180deg, #191919 0%, #101010 100%);
        border-right: 1px solid rgba(255,255,255,.1);
        box-shadow: 8px 0 32px rgba(0,0,0,.6);
        z-index: 1000;
        overflow-y: auto;
        transform: translateX(-100%);
        transition: transform .32s cubic-bezier(.22,.61,.36,1);
        padding: 0 0 28px;
        -webkit-overflow-scrolling: touch;
    }
    .mobile-menu.is-open { transform: translateX(0); }

    /* 品牌头部：logo + 关闭按钮 */
    .mobile-menu__head {
        position: sticky; top: 0; z-index: 1;
        display: flex; align-items: center; justify-content: space-between;
        gap: 12px;
        padding: 12px 16px 12px 18px;
        background: rgba(16,16,16,.94);
        border-bottom: 1px solid rgba(255,255,255,.08);
    }
    .mobile-menu__brand { display: block; line-height: 0; }
    .mobile-menu__brand img { height: 28px; width: auto; filter: invert(1); }

    /* 滚动条 */
    .mobile-menu::-webkit-scrollbar { width: 5px; }
    .mobile-menu::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18); border-radius: 3px; }
    .mobile-menu__close {
        flex: 0 0 auto;
        width: 36px; height: 36px;
        display: inline-flex; align-items: center; justify-content: center;
        background: rgba(255,255,255,.08);
        border: 0; border-radius: 50%;
        color: #fff; font-size: 20px; line-height: 1; cursor: pointer;
        transition: background .2s, transform .2s;
    }
    .mobile-menu__close:hover { background: rgba(255,255,255,.16); transform: rotate(90deg); }
    .mobile-menu ul { list-style: none; margin: 0; padding: 0; }
    .mobile-menu ul.mobile-menu__list { padding: 8px 12px 20px; }
    .mobile-menu .mm-item > a,
    .mobile-menu .mm-item__toggle {
        display: flex; align-items: center;
        padding: 13px 12px;
        border-radius: 12px;
        color: #fff; font-size: 15px; font-weight: 500; text-decoration: none;
    }
    .mobile-menu .mm-item > a:hover,
    .mobile-menu .mm-item__head:hover { background: rgba(255,255,255,.07); }
    .mobile-menu .mm-item__head {
        display: flex; align-items: center;
        border-radius: 12px;
        transition: background .2s;
    }
    .mobile-menu .mm-item__head .mm-item__toggle { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .mobile-menu .mm-item__arrow {
        flex: 0 0 auto;
        width: 34px; height: 34px;
        margin-right: 4px;
        display: inline-flex; align-items: center; justify-content: center;
        background: rgba(255,255,255,.06);
        border: 0; border-radius: 50%;
        color: rgba(255,255,255,.7); cursor: pointer;
        transition: background .2s, color .2s, transform .25s;
    }
    .mobile-menu .mm-item__arrow:hover { background: rgba(255,255,255,.14); color: #fff; }
    .mobile-menu .mm-item.is-open .mm-item__arrow { transform: rotate(90deg); color: #fff; }
    .mobile-menu .mm-item.is-active > .mm-item__head,
    .mobile-menu .mm-item.is-active > a {
        background: rgba(255,255,255,.06);
        font-weight: 600;
    }
    .mobile-menu .mm-sub {
        max-height: 0; overflow: hidden;
        opacity: 0; padding-left: 8px;
        transition: max-height .35s ease, opacity .3s ease;
    }
    .mobile-menu .mm-item.is-open .mm-sub { max-height: 520px; opacity: 1; }
    .mobile-menu .mm-sub__item > a {
        display: block;
        padding: 10px 12px;
        border-radius: 10px;
        color: rgba(255,255,255,.72);
        font-size: 14px; text-decoration: none;
        transition: background .2s, color .2s, padding-left .2s;
    }
    .mobile-menu .mm-sub__item > a:hover { background: rgba(255,255,255,.05); color: #fff; padding-left: 16px; }
    .mobile-menu__overlay {
        position: fixed; top: 0; left: 0; right: 0; bottom: 0;
        background: rgba(0,0,0,.55);
        z-index: 999;
        opacity: 0; pointer-events: none;
        transition: opacity .3s;
    }
    .mobile-menu__overlay.is-open { opacity: 1; pointer-events: auto; }

    /* 页脚折叠（移动端）：Corporate / Informations 标题可点击，菜单默认收起 */
    html.js .footer-block--collapsible .footer-block__nav {
        max-height: 0; overflow: hidden;
        transition: max-height .3s ease;
    }
    html.js .footer-block--collapsible.is-open .footer-block__nav {
        max-height: 400px;
    }
    .footer-block--collapsible .footer-block__heading {
        display: flex; align-items: center; justify-content: space-between;
        width: 100%; padding: 10px 0; margin-bottom: 0;
        color: #000; cursor: pointer;
    }
    .footer-block--collapsible .footer-block__heading::after {
        content: '+';
        font-size: 20px; line-height: 1; color: #666;
        transition: transform .25s ease;
    }
    .footer-block--collapsible.is-open .footer-block__heading::after {
        transform: rotate(45deg);
    }
    .footer-block--collapsible .footer-block__nav { padding-bottom: 10px; }
}

@media only screen and (max-width: 767px) {
    /* 服务通栏：移动端收窄边距 + 字号随屏自适应，保证三项始终一行 */
    .service-banner .container,
    .service-banner .page-width { padding-left: 8px; padding-right: 8px; }
    .service-banner__inner {
        justify-content: center;
        gap: 6px;
        font-size: clamp(8.5px, 2.6vw, 12px);
        padding: 7px 0;
    }
    .products-grid,
    .featured-collection__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .footage-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
    .page-footer__blocks { grid-template-columns: 1fr 1fr; gap: 24px; }
    h1 { font-size: 1.7em; }
    .product-info__title { font-size: 1.5em; }
    /* slideshow: 移动端全宽无边框 */
    .full-width-slideshow { padding: 0; }
    .full-width-slideshow .container,
    .full-width-slideshow .page-width { padding-left: 0; padding-right: 0; }
    .full-width-slideshow .slideshow,
    .full-width-slideshow .slideshow__slide { border-radius: 0; }
    /* rich text 标题: 移动端缩小 */
    .rich-text-section .large-title,
    .rich-text-section h2 { font-size: 1.25em; }
    /* rich text 正文: 移动端缩小字号、拉大行距提升可读性 */
    .rich-text-section .rte { font-size: 15px; line-height: 1.75; }
    /* rich text 容器: 移动端收窄边距，让文字区域更宽 */
    .rich-text-section { padding-left: 0; padding-right: 0; }
    .rich-text-section .container,
    .rich-text-section .page-width { padding-left: 12px; padding-right: 12px; }
    /* 商品列表/分类页（.archive-container）：移动端左右边距 20px+20px → 10px+10px，仅本页生效 */
    .archive-container,
    .archive-container .page-width { padding-left: 10px; padding-right: 10px; }
    /* 移动端隐藏结果计数，排序下拉独占一行 */
    .shop-toolbar .woocommerce-result-count { display: none; }
    /* 商品卡片文字：移动端缩小字号，提升两列布局信息密度
       （标题需高特异性选择器：WooCommerce 默认 .woocommerce ul.products li.product h3 后加载且特异性高） */
    .woocommerce ul.products.products-grid li.product .product-block__title { font-size: 14px; }
    .products-grid .product-block__rating,
    .products-grid .stars { font-size: 12.5px; }
    .products-grid .product-block__price { font-size: 15px; }
}

@media only screen and (max-width: 479px) {
    /* 商品列表/分类页 + 首页 Best Selling：手机端一行 2 个
       minmax(0,1fr)：列宽不被卡片内长内容（评分/价格）撑开，防止横向溢出 */
    .products-grid,
    .featured-collection__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .page-footer__blocks { grid-template-columns: 1fr; }
    .btn { padding: 11px 24px; min-width: 130px; }
    /* 窄屏下结果计数与排序下拉放不下时换行，避免横向溢出 */
    .shop-toolbar { flex-wrap: wrap; gap: 8px; }
    /* 两列卡片变窄：评分行（星级+评分+销量）放不下时换行 */
    .products-grid .product-block__rating,
    .featured-collection__grid .product-block__rating { flex-wrap: wrap; row-gap: 2px; }
    /* 产品页 Related products：手机端保持一行 2 个（与商店/分类列表一致） */
    .related-products .products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}

/* ==========================================================================
   返回顶部按钮（商品详情页，仅移动端显示）
   ========================================================================== */
.back-to-top {
    display: none;
    position: fixed;
    right: 16px;
    bottom: 84px; /* 避开移动端底部固定栏（storefront-handheld-footer-bar） */
    z-index: 998;
    width: 44px;
    height: 44px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(17, 17, 17, 0.85);
    color: #fff;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
}
.back-to-top svg { width: 22px; height: 22px; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:active { transform: scale(0.92); }

@media only screen and (max-width: 939px) {
    .back-to-top { display: flex; }
}
