/* --- 最近瀏覽 LTS v8.10.30 Single Product Favorite Safe：桌機取消 hover 展開，保留點擊展開／收合，調整膠囊按鈕垂直間距 --- */

#vht-floating-wrap,
#vht-button,
#vht-panel,
#vht-backdrop{
    box-sizing:border-box;
}

#vht-floating-wrap{
    position:fixed;
    right:17px !important;
    bottom:calc(112px + env(safe-area-inset-bottom, 0px)) !important;
    width:45px !important;
    min-width:45px !important;
    max-width:45px !important;
    height:45px !important;
    min-height:45px !important;
    max-height:45px !important;
    z-index:99980;
    overflow:visible !important;
    pointer-events:auto;
}

#vht-button{
    position:absolute;
    inset:0;
    width:45px !important;
    min-width:45px !important;
    max-width:45px !important;
    height:45px !important;
    min-height:45px !important;
    max-height:45px !important;
    padding:0 !important;
    margin:0 !important;
    background:linear-gradient(180deg,#eef7f7 0%,#d9ecee 100%) !important;
    border:1px solid rgba(141,184,186,.82) !important;
    color:#44696d !important;
    border-radius:15px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
    box-shadow:0 8px 18px rgba(96,135,138,.22) !important;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
    user-select:none;
    appearance:none;
    -webkit-appearance:none;
    overflow:visible !important;
    text-decoration:none !important;
    font-family:inherit !important;
    z-index:2;
}

#vht-button .vht-main-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    color:#5b8083;
    pointer-events:none;
}

#vht-button .vht-main-icon svg{
    width:28px;
    height:28px;
    display:block;
    overflow:visible;
}

#vht-button .vht-main-icon svg *{
    fill:none;
    stroke:currentColor;
    stroke-width:1.72;
    stroke-linecap:round;
    stroke-linejoin:round;
}

#vht-button .vht-main-icon .vht-icon-card{
    stroke:#5b8083;
}

#vht-button .vht-main-icon .vht-icon-line{
    stroke:#6f9699;
    stroke-width:1.62;
}

#vht-button .vht-main-icon .vht-icon-heart{
    fill:#d6a49b !important;
    stroke:#c78d84 !important;
    stroke-width:1.35;
}

#vht-button:active{
    transform:translateY(1px);
}

#vht-button.vht-bounce{
    animation:vhtButtonBounce .40s cubic-bezier(.22,.72,.28,1);
}

@keyframes vhtButtonBounce{
    0%{ transform:translateY(0) scale(1); }
    42%{ transform:translateY(-4px) scale(1.04); }
    70%{ transform:translateY(1px) scale(.995); }
    100%{ transform:translateY(0) scale(1); }
}

#vht-floating-actions{
    position:absolute;
    right:calc(100% + 8px);
    bottom:0;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:10px;
    opacity:0;
    visibility:hidden;
    transform:translateX(8px) scale(.98);
    pointer-events:none;
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
    z-index:1;
}

/* 保留按鈕與膠囊之間的透明連接區，避免點擊膠囊時產生間隙。 */
#vht-floating-actions::after{
    content:"";
    position:absolute;
    top:-8px;
    bottom:-8px;
    right:-24px;
    width:32px;
    background:transparent;
    pointer-events:auto;
}

/* v8.10.29：快捷膠囊只由點擊切換，不再因桌機 hover / focus 自動展開。 */
#vht-floating-wrap.vht-action-open #vht-floating-actions{
    opacity:1;
    visibility:visible;
    transform:translateX(0) scale(1);
    pointer-events:auto;
}

button.vht-floating-action{
    height:34px;
    min-height:34px;
    width:126px;
    min-width:126px;
    max-width:126px;
    padding:0 10px 0 12px !important;
    margin:0 !important;
    border-radius:999px !important;
    border:1px solid rgba(255,255,255,.82) !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:9px;
    box-shadow:0 7px 16px rgba(74,72,62,.15) !important;
    appearance:none;
    -webkit-appearance:none;
    cursor:pointer;
    font-family:inherit !important;
    font-size:13px;
    font-weight:600;
    line-height:1;
    white-space:nowrap;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
}

button.vht-floating-action-fav{
    background:linear-gradient(135deg,#fff7f3 0%,#f7dfdb 100%) !important;
    color:#9a706a !important;
    border-color:rgba(214,164,155,.58) !important;
}

button.vht-floating-action-history{
    background:linear-gradient(135deg,#f4faf9 0%,#d9eaec 100%) !important;
    color:#547c7f !important;
    border-color:rgba(141,184,186,.58) !important;
}

button.vht-floating-action-bis{
    background:linear-gradient(135deg,#fffaf0 0%,#f2e7c9 100%) !important;
    color:#8b754c !important;
    border-color:rgba(214,190,128,.62) !important;
}

.vht-floating-action-main{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    flex:1 1 auto;
    min-width:0;
}

.vht-floating-action-icon{
    display:none !important;
}

.vht-floating-action-label{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
}

.vht-floating-action-count{
    min-width:20px;
    height:20px;
    padding:0 6px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    font-weight:600;
    line-height:20px;
    border:1px solid rgba(255,255,255,.88);
    box-shadow:0 2px 7px rgba(0,0,0,.08);
}

.vht-floating-action-fav .vht-floating-action-count{
    background:linear-gradient(135deg,#d6a49b 0%,#c78d84 100%);
    color:#fff;
}

.vht-floating-action-history .vht-floating-action-count{
    background:linear-gradient(135deg,#8db8ba 0%,#78a7aa 100%);
    color:#fff;
}

.vht-floating-action-bis .vht-floating-action-count{
    background:linear-gradient(135deg,#d6bd79 0%,#c5a85e 100%);
    color:#fff;
}

@media (hover:hover) and (pointer:fine){
    button.vht-floating-action:hover,
    button.vht-floating-action:focus-visible{
        transform:translateX(-2px);
        outline:none !important;
    }
}

.woocommerce ul.products li.product,
.products li.product{
    position:relative;
}

/* v8.10.33：產品列表收藏按鈕改用與單產品頁相同的粉棕收藏色系。 */
button.vht-loop-fav-btn{
    position:absolute;
    right:10px;
    top:10px;
    width:30px;
    min-width:30px;
    max-width:30px;
    height:30px;
    min-height:30px;
    max-height:30px;
    padding:0 !important;
    margin:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    border:1px solid rgba(214,164,155,.72) !important;
    border-radius:999px !important;
    background:#fff7f3 !important;
    background-color:#fff7f3 !important;
    background-image:none !important;
    color:#bd7f7f !important;
    -webkit-text-fill-color:#bd7f7f !important;
    text-decoration:none !important;
    font-size:0 !important;
    line-height:1 !important;
    overflow:visible !important;
    box-sizing:border-box !important;
    box-shadow:none !important;
    cursor:pointer !important;
    appearance:none;
    -webkit-appearance:none;
    z-index:8;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    opacity:.96;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

button.vht-loop-fav-btn.vht-loop-fav-positioned{
    top:var(--vht-loop-fav-top, 10px);
    right:var(--vht-loop-fav-right, 10px);
}

@media (hover:hover) and (pointer:fine){
    button.vht-loop-fav-btn:hover,
    button.vht-loop-fav-btn:focus{
        background:#f7dfdb !important;
        background-color:#f7dfdb !important;
        color:#b96f72 !important;
        -webkit-text-fill-color:#b96f72 !important;
        border-color:#c78d84 !important;
        outline:none !important;
        transform:translateY(-1px);
    }
}

button.vht-loop-fav-btn.is-fav{
    background:#d99d96 !important;
    background-color:#d99d96 !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
    border-color:#c9827a !important;
}

@media (hover:hover) and (pointer:fine){
    button.vht-loop-fav-btn.is-fav:hover,
    button.vht-loop-fav-btn.is-fav:focus{
        background:#c9827a !important;
        background-color:#c9827a !important;
        color:#ffffff !important;
        -webkit-text-fill-color:#ffffff !important;
        border-color:#b97169 !important;
    }
}

button.vht-loop-fav-btn.is-vht-added{
    animation:vhtLoopFavPop .34s ease;
}

.vht-loop-fav-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    line-height:1;
    pointer-events:none;
    filter:drop-shadow(0 1px 3px rgba(255,255,255,.95)) drop-shadow(0 2px 5px rgba(0,0,0,.16));
}

.vht-loop-fav-icon svg{
    width:20px;
    height:20px;
    display:block;
    overflow:visible;
}

.vht-loop-fav-icon .vht-heart-fill{
    fill:rgba(255,255,255,.84);
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
    transition:fill .18s ease, stroke .18s ease, transform .18s ease;
    transform-origin:center;
}

button.vht-loop-fav-btn.is-fav .vht-heart-fill{
    fill:#ffffff;
    stroke:#ffffff;
}

.vht-loop-fav-sr{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
}

@keyframes vhtLoopFavPop{
    0%{ transform:scale(1); }
    45%{ transform:scale(1.15); }
    100%{ transform:scale(1); }
}

@media screen and (max-width:767px){
    button.vht-loop-fav-btn{
        width:30px;
        min-width:30px;
        max-width:30px;
        height:30px;
        min-height:30px;
        max-height:30px;
    }

    .vht-loop-fav-icon,
    .vht-loop-fav-icon svg{
        width:20px;
        height:20px;
    }
}

/* v8.10.33：單產品頁收藏按鈕位於商品優惠標籤區塊最右側。
 * 桌機固定 40×40px；手機固定 38×38px。
 * touch-action 優先保留頁面垂直滑動，JS 再以移動距離判定防止滑動誤觸。
 */
body.single-product .summary .yds-badge-wrapper > button.vht-single-product-fav-btn{
    -webkit-appearance:none !important;
    appearance:none !important;
    position:relative !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 38px !important;
    width:38px !important;
    min-width:38px !important;
    max-width:38px !important;
    height:38px !important;
    min-height:38px !important;
    max-height:38px !important;
    margin:0 0 0 auto !important;
    padding:0 !important;
    border:1px solid rgba(214,164,155,.72) !important;
    border-radius:14px !important;
    background:#fff7f3 !important;
    background-color:#fff7f3 !important;
    background-image:none !important;
    color:#bd7f7f !important;
    -webkit-text-fill-color:#bd7f7f !important;
    box-sizing:border-box !important;
    box-shadow:none !important;
    overflow:visible !important;
    cursor:pointer !important;
    line-height:1 !important;
    text-decoration:none !important;
    touch-action:pan-y pinch-zoom !important;
    -webkit-tap-highlight-color:transparent !important;
    transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease !important;
}

body.single-product .summary .yds-badge-wrapper > button.vht-single-product-fav-btn:hover,
body.single-product .summary .yds-badge-wrapper > button.vht-single-product-fav-btn:focus,
body.single-product .summary .yds-badge-wrapper > button.vht-single-product-fav-btn:focus-visible{
    border-color:#c78d84 !important;
    background:#f7dfdb !important;
    background-color:#f7dfdb !important;
    color:#b96f72 !important;
    -webkit-text-fill-color:#b96f72 !important;
    outline:none !important;
    box-shadow:none !important;
    transform:translateY(-1px);
}

body.single-product .summary .yds-badge-wrapper > button.vht-single-product-fav-btn.is-fav{
    border-color:#c9827a !important;
    background:#d99d96 !important;
    background-color:#d99d96 !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
}

body.single-product .summary .yds-badge-wrapper > button.vht-single-product-fav-btn.is-fav:hover,
body.single-product .summary .yds-badge-wrapper > button.vht-single-product-fav-btn.is-fav:focus,
body.single-product .summary .yds-badge-wrapper > button.vht-single-product-fav-btn.is-fav:focus-visible{
    border-color:#b97169 !important;
    background:#c9827a !important;
    background-color:#c9827a !important;
    color:#ffffff !important;
    -webkit-text-fill-color:#ffffff !important;
}

.vht-single-product-fav-icon{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:22px !important;
    height:22px !important;
    margin:0 !important;
    padding:0 !important;
    color:inherit !important;
    pointer-events:none;
}

.vht-single-product-fav-icon svg{
    display:block;
    width:22px;
    height:22px;
    overflow:visible;
}

.vht-single-product-fav-icon .vht-heart-fill{
    fill:rgba(255,255,255,.84);
    stroke:currentColor;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
    transition:fill .18s ease,stroke .18s ease,transform .18s ease;
    transform-origin:center;
}

button.vht-single-product-fav-btn.is-fav .vht-heart-fill{
    fill:#ffffff;
    stroke:#ffffff;
}

button.vht-single-product-fav-btn.is-vht-added{
    animation:vhtLoopFavPop .34s ease;
}

.vht-single-product-fav-sr{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
}

/* 手機版固定 38×38px；含直向與橫向手機寬度。 */
@media (max-width:767px){
    body.single-product .summary .yds-badge-wrapper > button.vht-single-product-fav-btn{
        flex-basis:38px !important;
        width:38px !important;
        min-width:38px !important;
        max-width:38px !important;
        height:38px !important;
        min-height:38px !important;
        max-height:38px !important;
        margin-left:auto !important;
    }

    .vht-single-product-fav-icon,
    .vht-single-product-fav-icon svg{
        width:21px !important;
        height:21px !important;
    }
}

#vht-backdrop{
    position:fixed;
    inset:0;
    background:rgba(64,72,70,.24);
    z-index:99990;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .24s ease, visibility .24s ease;
}

#vht-backdrop.vht-open{
    opacity:1;
    visibility:visible;
    pointer-events:none;
}

#vht-panel{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    width:100%;
    height:72vh;
    max-height:calc(100dvh - 96px);
    background:#FBFAF6;
    border-radius:24px 24px 0 0;
    z-index:99999;
    box-shadow:0 -14px 34px rgba(74,72,62,.18);
    border:1px solid rgba(227,207,155,.72);
    border-bottom:none;
    overflow:hidden;
    transform:translateY(calc(110% + 120px));
    display:flex;
    flex-direction:column;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:transform .28s cubic-bezier(.22,.82,.25,1), opacity .22s ease, visibility .28s ease;
    padding-bottom:env(safe-area-inset-bottom, 0px);
}

#vht-panel.vht-open{
    transform:translateY(0);
    pointer-events:auto;
    opacity:1;
    visibility:visible;
}

.vht-drag-bar{
    width:42px;
    height:5px;
    border-radius:999px;
    background:#d7e7e5;
    margin:10px auto 4px;
}

.vht-panel-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:8px 16px 10px;
    border-bottom:1px dashed rgba(227,207,155,.80);
}

.vht-panel-header > div:first-child{
    flex:1 1 auto;
    min-width:0;
}

.vht-panel-header h3{
    margin:0;
    font-size:16px;
    color:#4f5f60;
    font-weight:600;
    letter-spacing:.02em;
}

.vht-panel-header p{
    margin:5px 0 0;
    font-size:12px;
    line-height:1.35;
    color:#9a8f7c;
}

.vht-tabs{
    display:flex;
    align-items:center;
    gap:7px;
    margin-top:9px;
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
}

.vht-tabs::-webkit-scrollbar{
    display:none;
}

.vht-tab{
    appearance:none;
    -webkit-appearance:none;
    border:1px solid rgba(141,184,186,.46);
    background:#f4faf9;
    color:#5f7779;
    border-radius:999px;
    min-height:30px;
    padding:0 10px;
    margin:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    font-size:13px;
    font-weight:600;
    line-height:30px;
    cursor:pointer;
    box-shadow:none;
    white-space:nowrap;
    box-sizing:border-box;
    flex:0 0 auto;
}

.vht-tab.is-active{
    background:linear-gradient(135deg,#8db8ba 0%,#78a7aa 100%);
    border-color:rgba(120,167,170,.88);
    color:#fff;
    box-shadow:0 4px 10px rgba(117,157,160,.18);
}

.vht-tab-count{
    min-width:18px;
    height:18px;
    padding:0 5px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#d9eaec;
    color:#476b6d;
    font-size:13px;
    font-weight:400;
    line-height:18px;
}

.vht-tab.is-active .vht-tab-count{
    background:rgba(255,255,255,.92);
    color:#6c9da0;
}

/* v8.10.17：最近瀏覽與收藏用不同色系，頁籤與內容同步區分。 */
.vht-tab[data-vht-tab="history"]{
    background:#f4faf9;
    border-color:rgba(141,184,186,.50);
    color:#547c7f;
}

.vht-tab[data-vht-tab="favorites"]{
    background:#fff7f3;
    border-color:rgba(214,164,155,.52);
    color:#9a706a;
}

.vht-tab[data-vht-tab="bis"]{
    background:#fffaf0;
    border-color:rgba(214,190,128,.58);
    color:#8b754c;
}

.vht-tab[data-vht-tab="history"].is-active{
    background:linear-gradient(135deg,#8db8ba 0%,#78a7aa 100%);
    border-color:rgba(120,167,170,.88);
    color:#fff;
    box-shadow:0 4px 10px rgba(117,157,160,.18);
}

.vht-tab[data-vht-tab="favorites"].is-active{
    background:linear-gradient(135deg,#d6a49b 0%,#c78d84 100%);
    border-color:rgba(199,141,132,.86);
    color:#fff;
    box-shadow:0 4px 10px rgba(199,141,132,.18);
}

.vht-tab[data-vht-tab="bis"].is-active{
    background:linear-gradient(135deg,#d6bd79 0%,#c5a85e 100%);
    border-color:rgba(197,168,94,.88);
    color:#fff;
    box-shadow:0 4px 10px rgba(173,145,72,.18);
}

.vht-tab[data-vht-tab="history"] .vht-tab-count{
    background:#d9eaec;
    color:#476b6d;
}

.vht-tab[data-vht-tab="favorites"] .vht-tab-count{
    background:#f5ddd9;
    color:#996b65;
}

.vht-tab[data-vht-tab="bis"] .vht-tab-count{
    background:#f3e7c6;
    color:#806b42;
}

.vht-tab[data-vht-tab="history"].is-active .vht-tab-count{
    background:rgba(255,255,255,.92);
    color:#6c9da0;
}

.vht-tab[data-vht-tab="favorites"].is-active .vht-tab-count{
    background:rgba(255,255,255,.92);
    color:#c78d84;
}

.vht-tab[data-vht-tab="bis"].is-active .vht-tab-count{
    background:rgba(255,255,255,.92);
    color:#b39342;
}

#vht-panel.vht-view-history #vht-list{
    background:linear-gradient(180deg,rgba(244,250,249,.62) 0%,rgba(251,250,246,0) 64px);
}

#vht-panel.vht-view-favorites #vht-list{
    background:linear-gradient(180deg,rgba(255,247,243,.72) 0%,rgba(251,250,246,0) 64px);
}

#vht-panel.vht-view-bis #vht-list{
    background:linear-gradient(180deg,rgba(255,250,240,.82) 0%,rgba(251,250,246,0) 72px);
}

#vht-panel.vht-view-bis #vht-list{
    padding-bottom:22px;
}

#vht-panel.vht-view-history .vht-row{
    background:#f4faf9;
    border-color:rgba(141,184,186,.58);
    box-shadow:0 3px 10px rgba(96,135,138,.07);
}

#vht-panel.vht-view-favorites .vht-row{
    background:#fff7f3;
    border-color:rgba(214,164,155,.58);
    box-shadow:0 3px 10px rgba(199,141,132,.07);
}

#vht-panel.vht-view-bis .vht-row{
    background:#fffaf0;
    border-color:rgba(214,190,128,.60);
    box-shadow:0 3px 10px rgba(173,145,72,.07);
}

#vht-panel.vht-view-history .vht-empty{
    color:#7f9da0;
}

#vht-panel.vht-view-favorites .vht-empty{
    color:#b28a83;
}

#vht-panel.vht-view-bis .vht-empty{
    color:#9a8558;
}

#vht-close{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border:0;
    border-radius:50%;
    background:#d6a49b;
    color:#fff;
    font-size:24px;
    line-height:31px;
    text-align:center;
    cursor:pointer;
    box-shadow:0 3px 8px rgba(166,117,108,.20);
}

#vht-list{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    display:flex;
    flex-direction:column;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:10px 12px 8px;
    scrollbar-width:none;
}

#vht-list::-webkit-scrollbar{
    display:none;
}

.vht-empty{
    flex:1 1 auto;
    min-height:180px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    font-size:13px;
    color:#aaa;
    padding:24px 0 26px;
}

.vht-rucss-template{
    display:none !important;
}

.vht-row{
    position:relative;
    display:flex;
    align-items:center;
    gap:10px;
    background:#fff7f3;
    border:1px solid rgba(227,207,155,.70);
    border-radius:15px;
    padding:8px 92px 8px 8px;
    margin-bottom:10px;
    box-shadow:0 3px 10px rgba(120,101,70,.07);
}

.vht-row-link{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    width:100%;
    text-decoration:none!important;
    color:inherit!important;
}

.vht-row img{
    width:58px!important;
    height:58px!important;
    flex:0 0 58px;
    border-radius:12px!important;
    object-fit:cover!important;
    background:#f3efe7;
    display:block!important;
}

.vht-row-info{
    min-width:0;
    flex:1 1 auto;
}

.vht-title{
    display:block;
    font-size:13px!important;
    color:#514d45!important;
    line-height:1.4;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    margin-bottom:3px;
}

.vht-price{
    display:block;
    font-size:14px!important;
    color:#b97863!important;
    font-weight:600!important;
    line-height:1.35;
}

.vht-price del{
    color:#b9b0a1!important;
    font-weight:400!important;
    margin-right:4px;
}

.vht-price ins{
    color:#b97863!important;
    text-decoration:none!important;
}

.vht-variation-meta{
    display:block;
    margin:1px 0 3px;
    color:#8e8172;
    font-size:11px;
    font-weight:500;
    line-height:1.35;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

#vht-panel.vht-view-favorites .vht-row.vht-row-has-cart{
    padding-bottom:46px;
}

.vht-row-cart{
    position:absolute;
    left:76px;
    right:10px;
    bottom:8px;
    height:30px;
    min-height:30px;
    margin:0 !important;
    padding:0 12px !important;
    border:1px solid rgba(120,167,170,.82) !important;
    border-radius:10px !important;
    background:#8db8ba !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-family:inherit !important;
    font-size:12px !important;
    font-weight:700 !important;
    line-height:28px !important;
    text-align:center !important;
    cursor:pointer;
    box-shadow:0 4px 9px rgba(117,157,160,.16) !important;
    appearance:none;
    -webkit-appearance:none;
    touch-action:manipulation;
    z-index:3;
}

.vht-row-cart.is-loading{
    opacity:.68;
    cursor:wait;
}

.vht-row-cart.is-added{
    background:#78a7aa !important;
}

@media (hover:hover) and (pointer:fine){
    .vht-row-cart:hover,
    .vht-row-cart:focus-visible{
        background:#78a7aa !important;
        outline:none !important;
        transform:translateY(-1px);
    }
}

.vht-row-fav{
    position:absolute;
    right:52px;
    top:50%;
    transform:translateY(-50%);
    width:32px;
    height:32px;
    border:0;
    border-radius:50%;
    background:#dfeded;
    color:#749ea0;
    font-size:18px;
    line-height:30px;
    z-index:4;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    text-align:center;
    cursor:pointer;
}

.vht-row-fav.is-fav{
    background:#f9e2df;
    color:#d4868c;
}

.vht-row-del{
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    width:32px;
    height:32px;
    border:0;
    border-radius:50%;
    background:#f1e5dd;
    color:#b78c82;
    font-size:21px;
    line-height:30px;
    z-index:4;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    text-align:center;
    cursor:pointer;
}

.vht-row.vht-bis-row{
    padding-right:96px;
}

.vht-bis-variation{
    display:block;
    margin-top:2px;
    color:#756b59;
    font-size:12px;
    line-height:1.4;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.vht-bis-meta{
    display:flex;
    flex-wrap:wrap;
    gap:3px 8px;
    margin-top:4px;
    color:#9a8b68;
    font-size:11px;
    line-height:1.35;
}

.vht-bis-expiry{
    white-space:nowrap;
}

.vht-bis-status{
    display:inline-flex;
    align-items:center;
    min-height:20px;
    padding:0 7px;
    border-radius:999px;
    background:#f2e6c5;
    color:#806b42;
    font-size:11px;
    font-weight:600;
    line-height:20px;
}

.vht-bis-cancel{
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    width:74px;
    min-width:74px;
    height:32px;
    min-height:32px;
    padding:0 8px !important;
    margin:0 !important;
    border:1px solid rgba(199,141,132,.48) !important;
    border-radius:999px !important;
    background:#fff7f3 !important;
    color:#9a706a !important;
    font-size:12px !important;
    font-weight:600 !important;
    line-height:30px !important;
    text-align:center;
    cursor:pointer;
    box-sizing:border-box !important;
    appearance:none;
    -webkit-appearance:none;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
}

.vht-bis-cancel:disabled{
    opacity:.55;
    cursor:wait;
}

.vht-bis-loading{
    flex:1 1 auto;
    min-height:180px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:26px 22px;
    color:#8f7d58;
    font-size:13px;
    line-height:1.65;
}

.vht-bis-login{
    flex:0 0 auto;
    min-height:0;
    display:block;
    text-align:left;
    padding:10px 10px 12px;
    color:#8f7d58;
    font-size:13px;
    line-height:1.55;
}

/* v8.10.47：缺貨訂閱未登入面板。登入表單只在分頁打開後按需取得 fresh nonce。 */
.vht-bis-login-card{
    position:relative;
    width:100%;
    max-width:372px;
    margin:auto;
    padding:14px 14px 12px;
    border:1px solid rgba(214,190,142,.56);
    border-radius:18px;
    background:linear-gradient(180deg,#fffdf9 0%,#fffaf4 100%);
    box-shadow:0 8px 18px rgba(120,101,70,.08);
    text-align:left;
    box-sizing:border-box;
    overflow:hidden;
}

.vht-bis-login-card::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:3px;
    background:linear-gradient(90deg,#8db8ba 0%,#d6a49b 100%);
}

.vht-bis-login-copy{
    text-align:center;
    margin-bottom:10px;
}

.vht-bis-login-copy::before{
    display:none;
    content:none;
}

.vht-bis-login-title{
    display:block;
    color:#5d5548;
    font-size:16px;
    font-weight:700;
    line-height:1.35;
    letter-spacing:.01em;
}

.vht-bis-login-note,
.vht-bis-email-note{
    margin:4px 0 0;
    color:#8f8576;
    font-size:11px;
    line-height:1.5;
}

.vht-bis-login-form{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin:0;
}

.vht-bis-login-field{
    display:block;
    margin:0;
}

.vht-bis-login-field label{
    display:block;
    margin:0 0 4px;
    color:#655f55;
    font-size:12px;
    font-weight:700;
    line-height:1.25;
}

.vht-bis-login-field input[type="text"],
.vht-bis-login-field input[type="password"]{
    width:100% !important;
    min-width:0 !important;
    height:40px !important;
    min-height:40px !important;
    margin:0 !important;
    padding:0 12px !important;
    border:1px solid rgba(141,184,186,.42) !important;
    border-radius:12px !important;
    background:#fff !important;
    color:#514d45 !important;
    font-size:14px !important;
    line-height:38px !important;
    box-shadow:0 2px 6px rgba(120,101,70,.04) !important;
    box-sizing:border-box !important;
    outline:none;
    transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.vht-bis-login-field input::placeholder{
    color:#b0a593;
}

.vht-bis-login-field input:focus{
    border-color:#78a7aa !important;
    background:#fffcf7 !important;
    box-shadow:0 0 0 3px rgba(141,184,186,.16) !important;
}

.vht-bis-login-options{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:0;
    color:#81796c;
    font-size:12px;
    line-height:1.35;
}

.vht-bis-login-remember{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin:0;
    cursor:pointer;
}

.vht-bis-login-remember input{
    margin:0 !important;
    accent-color:#7faeb0;
}

.vht-bis-login-lost{
    color:#648d90 !important;
    text-decoration:none !important;
    white-space:nowrap;
    font-weight:600;
}

.vht-bis-login-submit{
    width:100%;
    height:40px;
    min-height:40px;
    margin:2px 0 0 !important;
    padding:0 16px !important;
    border:1px solid #8db8ba !important;
    border-radius:12px !important;
    background:#8db8ba !important;
    color:#fff !important;
    font-family:inherit !important;
    font-size:14px !important;
    font-weight:700 !important;
    line-height:38px !important;
    text-align:center;
    letter-spacing:.02em;
    box-shadow:0 6px 12px rgba(117,157,160,.18) !important;
    cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.vht-bis-login-divider{
    display:flex;
    align-items:center;
    gap:8px;
    margin:10px 0 8px;
    color:#aaa092;
    font-size:11px;
    line-height:1;
}

.vht-bis-login-divider::before,
.vht-bis-login-divider::after{
    content:"";
    flex:1 1 auto;
    height:1px;
    background:rgba(214,190,142,.44);
}

.vht-bis-line-login{
    width:100%;
    margin:0;
    padding:0;
}

/* v8.10.47：LINE 登入按鈕完全隔離。
 * 不再使用 btn-line / wpdt-line-connect / yds-wpdt-line-login-btn 等外部 class，
 * 避免 LINE Connect、The7 或其他補丁對 span / img / pseudo element 的樣式污染。
 */
.vht-bis-line-login-btn{
    -webkit-appearance:none !important;
    appearance:none !important;
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:40px !important;
    min-height:40px !important;
    max-height:40px !important;
    margin:0 !important;
    padding:0 14px 0 52px !important;
    border:1px solid #8db8ba !important;
    border-radius:12px !important;
    background:#8db8ba !important;
    background-color:#8db8ba !important;
    background-image:none !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    font-family:inherit !important;
    font-size:14px !important;
    font-weight:700 !important;
    font-style:normal !important;
    line-height:38px !important;
    letter-spacing:.02em !important;
    text-align:center !important;
    text-decoration:none !important;
    text-indent:0 !important;
    white-space:nowrap !important;
    box-shadow:0 6px 12px rgba(117,157,160,.18) !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
    opacity:1 !important;
    visibility:visible !important;
    cursor:pointer !important;
    transform:none;
    isolation:isolate;
    transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.vht-bis-line-login-btn::before{
    content:"LINE" !important;
    position:absolute !important;
    left:10px !important;
    top:50% !important;
    right:auto !important;
    bottom:auto !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:32px !important;
    min-width:32px !important;
    max-width:32px !important;
    height:20px !important;
    min-height:20px !important;
    max-height:20px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:7px !important;
    background:#fff !important;
    background-color:#fff !important;
    background-image:none !important;
    color:#6f9ea1 !important;
    -webkit-text-fill-color:#6f9ea1 !important;
    font-family:inherit !important;
    font-size:9px !important;
    font-weight:800 !important;
    font-style:normal !important;
    line-height:20px !important;
    letter-spacing:0 !important;
    text-align:center !important;
    text-decoration:none !important;
    text-transform:none !important;
    white-space:nowrap !important;
    box-shadow:none !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(-50%) !important;
    box-sizing:border-box !important;
    pointer-events:none !important;
    z-index:1 !important;
}

.vht-bis-line-login-btn::after{
    content:none !important;
    display:none !important;
}

.vht-bis-email-note{
    margin-top:8px;
    padding:0;
    border-radius:0;
    background:transparent;
    border:0;
    text-align:center;
}

@media (max-width:480px){
    #vht-panel.vht-view-bis #vht-list{
        padding:8px 10px calc(12px + env(safe-area-inset-bottom, 0px));
    }

    .vht-bis-login{
        padding:0;
    }

    .vht-bis-loading{
        padding:16px 12px;
    }

    .vht-bis-login-card{
        max-width:none;
        margin:0 auto 6px;
        padding:12px 12px 10px;
        border-radius:16px;
    }

    .vht-bis-login-title{
        font-size:15px;
    }

    .vht-bis-login-note,
    .vht-bis-email-note{
        font-size:11px;
        line-height:1.45;
    }

    .vht-bis-login-options{
        flex-wrap:wrap;
        align-items:center;
        justify-content:space-between;
        row-gap:6px;
    }
}

@media (hover:hover) and (pointer:fine){
    .vht-bis-login-submit:hover,
    .vht-bis-login-submit:focus-visible{
        background:#7aa9ab !important;
        box-shadow:0 8px 14px rgba(117,157,160,.22) !important;
        transform:translateY(-1px);
        outline:none !important;
    }

    .vht-bis-line-login-btn:hover,
    .vht-bis-line-login-btn:focus-visible{
        background:#7aa9ab !important;
        background-color:#7aa9ab !important;
        color:#fff !important;
        -webkit-text-fill-color:#fff !important;
        box-shadow:0 8px 14px rgba(117,157,160,.22) !important;
        transform:translateY(-1px);
        outline:none !important;
    }
}


/* v8.10.56：Side Cart 收藏改用原生 Woo-Side-Cart 愛心 icon font，並同步垃圾桶實際樣式。 */
.vht-sidecart-fav-wrap{
    display:none;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:auto;
    min-width:0;
    height:auto;
    min-height:0;
    margin:0;
    padding:0;
    box-sizing:border-box;
}

.vht-sidecart-fav-wrap.is-positioned{
    display:inline-flex;
}

.xoo-wsc-sm-right-tools > .vht-sidecart-fav-wrap{
    order:-100;
}

.xoo-wsc-sm-right > .vht-sidecart-fav-wrap{
    align-self:center;
    margin:0;
}

button.vht-sidecart-fav-btn{
    appearance:none !important;
    -webkit-appearance:none !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    background-image:none !important;
    color:var(--vht-sidecart-tool-color,currentColor) !important;
    -webkit-text-fill-color:var(--vht-sidecart-tool-color,currentColor) !important;
    font-family:inherit !important;
    font-size:var(--vht-sidecart-tool-size,inherit) !important;
    font-weight:400 !important;
    line-height:var(--vht-sidecart-tool-line-height,1) !important;
    text-decoration:none !important;
    box-shadow:none !important;
    cursor:pointer !important;
    box-sizing:border-box !important;
    overflow:visible !important;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
    opacity:var(--vht-sidecart-tool-opacity,1) !important;
    vertical-align:middle !important;
}

.vht-sidecart-fav-icon{
    display:inline-block !important;
    width:auto !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    color:inherit !important;
    -webkit-text-fill-color:currentColor !important;
    font-size:inherit !important;
    font-weight:400 !important;
    line-height:1 !important;
    pointer-events:none;
    vertical-align:middle !important;
}

button.vht-sidecart-fav-btn.is-loading{
    opacity:.45 !important;
    pointer-events:none !important;
    cursor:wait !important;
}

/* v1.0.1：依 Side Cart 實際版面微調收藏工具位置。 */
button.vht-sidecart-fav-btn{
    margin-bottom:3px !important;
    font-size:17px !important;
}
.vht-sidecart-fav-wrap,
.xoo-wsc-sm-right > .vht-sidecart-fav-wrap{
    margin-right:13px !important;
}

.vht-sidecart-fav-toast{
    position:sticky;
    top:0;
    z-index:40;
    display:block;
    margin:0 10px 10px;
    padding:9px 12px;
    border:1px solid rgba(141,184,186,.55);
    border-radius:12px;
    background:#f4faf9;
    color:#547c7f;
    font-size:13px;
    font-weight:600;
    line-height:1.45;
    text-align:center;
    box-shadow:0 6px 16px rgba(96,135,138,.14);
}

.vht-sidecart-fav-toast.is-error{
    border-color:rgba(214,164,155,.60);
    background:#fff7f3;
    color:#9a706a;
}

@media (hover:hover) and (pointer:fine){
    button.vht-sidecart-fav-btn:hover,
    button.vht-sidecart-fav-btn:focus-visible{
        border-color:transparent !important;
        background:transparent !important;
        color:var(--vht-sidecart-tool-color,currentColor) !important;
        -webkit-text-fill-color:var(--vht-sidecart-tool-color,currentColor) !important;
        opacity:1 !important;
        outline:none !important;
        transform:none !important;
    }
}

.vht-row-fav,
.vht-row-del{
    min-width:32px !important;
    max-width:32px !important;
    min-height:32px !important;
    max-height:32px !important;
    padding:0 !important;
    margin:0 !important;
    appearance:none;
    -webkit-appearance:none;
    box-sizing:border-box !important;
    display:block !important;
}

.vht-panel-footer.is-hidden{
    display:none !important;
}

.vht-panel-footer{
    display:flex;
    gap:8px;
    position:relative;
    bottom:auto;
    z-index:2;
    padding:9px 12px calc(12px + env(safe-area-inset-bottom, 0px));
    border-top:1px solid rgba(227,207,155,.65);
    background:#FBFAF6;
}

#vht-see-all,
#vht-clear-btn{
    flex:1 1 0;
    border-radius:13px;
    min-height:40px;
    font-size:14px;
    cursor:pointer;
    font-weight:600;
    border:1px solid rgba(141,184,186,.58);
}

#vht-see-all{
    background:linear-gradient(135deg,#8db8ba 0%,#78a7aa 100%);
    color:#fff;
    box-shadow:0 4px 10px rgba(117,157,160,.20);
    gap:6px;
}

#vht-see-all .vht-see-all-count{
    min-width:22px;
    height:22px;
    padding:0 7px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.92);
    color:#6c9da0;
    font-size:13px;
    font-weight:600;
    line-height:22px;
    box-shadow:0 2px 6px rgba(96,135,138,.16);
}

#vht-see-all .vht-see-all-unit{
    font-size:13px;
    font-weight:600;
    line-height:1;
    color:rgba(255,255,255,.94);
}

#vht-clear-btn{
    background:#fff7f3;
    color:#8f7c70;
    border-color:rgba(227,207,155,.75);
}


/* v8.10.29：沿用頁籤色系延伸到分頁背景、內容與下方按鈕。
 * 最近瀏覽：藍綠系；我的收藏：粉棕系。
 */
#vht-panel.vht-view-history{
    background:#f8fbfa;
    border-color:rgba(141,184,186,.58);
}

#vht-panel.vht-view-favorites{
    background:#fffaf8;
    border-color:rgba(214,164,155,.58);
}

#vht-panel.vht-view-bis{
    background:#fffdf8;
    border-color:rgba(214,190,128,.60);
}

#vht-panel.vht-view-history .vht-panel-header{
    background:linear-gradient(180deg,#f4faf9 0%,#FBFAF6 100%);
    border-bottom-color:rgba(141,184,186,.46);
}

#vht-panel.vht-view-favorites .vht-panel-header{
    background:linear-gradient(180deg,#fff7f3 0%,#FBFAF6 100%);
    border-bottom-color:rgba(214,164,155,.46);
}

#vht-panel.vht-view-bis .vht-panel-header{
    background:linear-gradient(180deg,#fffaf0 0%,#FBFAF6 100%);
    border-bottom-color:rgba(214,190,128,.50);
}

#vht-panel.vht-view-history .vht-panel-footer{
    background:#f4faf9;
    border-top-color:rgba(141,184,186,.50);
}

#vht-panel.vht-view-favorites .vht-panel-footer{
    background:#fff7f3;
    border-top-color:rgba(214,164,155,.50);
}

#vht-panel.vht-view-bis .vht-panel-footer{
    background:#fffaf0;
    border-top-color:rgba(214,190,128,.54);
}

#vht-panel.vht-view-history #vht-see-all{
    background:linear-gradient(135deg,#8db8ba 0%,#78a7aa 100%);
    border-color:rgba(120,167,170,.86);
    color:#fff;
    box-shadow:0 4px 10px rgba(117,157,160,.20);
}

#vht-panel.vht-view-favorites #vht-see-all{
    background:linear-gradient(135deg,#d6a49b 0%,#c78d84 100%);
    border-color:rgba(199,141,132,.86);
    color:#fff;
    box-shadow:0 4px 10px rgba(199,141,132,.20);
}

#vht-panel.vht-view-bis #vht-see-all{
    background:linear-gradient(135deg,#d6bd79 0%,#c5a85e 100%);
    border-color:rgba(197,168,94,.88);
    color:#fff;
    box-shadow:0 4px 10px rgba(173,145,72,.18);
}

#vht-panel.vht-view-history #vht-see-all .vht-see-all-count{
    color:#6c9da0;
    box-shadow:0 2px 6px rgba(96,135,138,.16);
}

#vht-panel.vht-view-favorites #vht-see-all .vht-see-all-count{
    color:#c78d84;
    box-shadow:0 2px 6px rgba(199,141,132,.16);
}

#vht-panel.vht-view-bis #vht-see-all .vht-see-all-count{
    color:#b39342;
    box-shadow:0 2px 6px rgba(173,145,72,.16);
}

#vht-panel.vht-view-history #vht-clear-btn{
    background:#eef7f7;
    color:#5f7779;
    border-color:rgba(141,184,186,.58);
}

#vht-panel.vht-view-favorites #vht-clear-btn{
    background:#f9e2df;
    color:#9a706a;
    border-color:rgba(214,164,155,.58);
}

#vht-panel.vht-view-bis #vht-clear-btn{
    background:#f5ebd2;
    color:#806b42;
    border-color:rgba(214,190,128,.62);
}

#vht-panel.vht-view-history #vht-clear-btn:hover,
#vht-panel.vht-view-history #vht-clear-btn:focus-visible{
    background:#e2f1f1;
    border-color:rgba(120,167,170,.70);
}

#vht-panel.vht-view-favorites #vht-clear-btn:hover,
#vht-panel.vht-view-favorites #vht-clear-btn:focus-visible{
    background:#f5ddd9;
    border-color:rgba(199,141,132,.70);
}


/* 按鈕提示工具｜桌機 hover / 鍵盤 focus 顯示，手機不干擾點擊
 * v8.10.2：不可用通用 [data-vht-tip]{position:relative;} 覆蓋商品列右側按鈕。
 * .vht-row-fav / .vht-row-del 必須維持 absolute，否則單品項排列會錯亂。
 */
[data-vht-tip]:not(.vht-row-fav):not(.vht-row-del):not(.vht-loop-fav-btn):not(.vht-bis-cancel){
    position:relative;
}

.vht-row-fav[data-vht-tip],
.vht-row-del[data-vht-tip],
.vht-loop-fav-btn[data-vht-tip],
.vht-bis-cancel[data-vht-tip]{
    position:absolute !important;
}

@media (hover:hover) and (pointer:fine){
    [data-vht-tip]::after{
        content:attr(data-vht-tip);
        position:absolute;
        left:50%;
        bottom:calc(100% + 8px);
        transform:translate(-50%, 4px);
        z-index:100002;
        min-width:max-content;
        max-width:160px;
        padding:6px 9px;
        border-radius:999px;
        background:rgba(79,95,96,.96);
        color:#fff !important;
        -webkit-text-fill-color:#fff !important;
        text-shadow:none !important;
        font-size:12px;
        font-weight:400;
        line-height:1.2;
        letter-spacing:.02em;
        text-align:center;
        white-space:nowrap;
        box-shadow:0 6px 16px rgba(55,64,64,.18);
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
    }

    [data-vht-tip]::before{
        content:"";
        position:absolute;
        left:50%;
        bottom:calc(100% + 3px);
        transform:translate(-50%, 4px);
        z-index:100001;
        width:0;
        height:0;
        border-left:5px solid transparent;
        border-right:5px solid transparent;
        border-top:5px solid rgba(79,95,96,.96);
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
    }

    [data-vht-tip]:hover::after,
    [data-vht-tip]:focus-visible::after,
    [data-vht-tip]:hover::before,
    [data-vht-tip]:focus-visible::before{
        opacity:1;
        visibility:visible;
        transform:translate(-50%, 0);
    }

    #vht-close[data-vht-tip]::after{
        left:auto;
        right:calc(100% + 8px);
        top:50%;
        bottom:auto;
        transform:translate(4px, -50%);
    }

    #vht-close[data-vht-tip]::before{
        left:auto;
        right:calc(100% + 3px);
        top:50%;
        bottom:auto;
        transform:translate(4px, -50%);
        border-top:5px solid transparent;
        border-bottom:5px solid transparent;
        border-left:5px solid rgba(79,95,96,.96);
        border-right:0;
    }

    #vht-close[data-vht-tip]:hover::after,
    #vht-close[data-vht-tip]:focus-visible::after{
        transform:translate(0, -50%);
    }

    #vht-close[data-vht-tip]:hover::before,
    #vht-close[data-vht-tip]:focus-visible::before{
        transform:translate(0, -50%);
    }
}

@media (hover:none), (pointer:coarse){
    [data-vht-tip]::after,
    [data-vht-tip]::before{
        display:none !important;
    }
}

@media (min-width:769px){
    #vht-floating-wrap{
        right:17px !important;
        bottom:110px !important;
        width:45px !important;
        height:45px !important;
        min-height:45px !important;
    }

    #vht-panel{
        left:auto;
        right:80px;
        bottom:22px;
        width:440px;
        max-width:calc(100vw - 44px);
        height:76vh;
        max-height:76vh;
        border-radius:24px;
        border-bottom:1px solid rgba(227,207,155,.72);
    }

    .vht-panel-header{
        padding:12px 18px 12px;
    }

    .vht-panel-header h3{
        font-size:18px;
    }

    .vht-panel-header p{
        font-size:13px;
    }

    #vht-list{
        max-height:none;
        padding:14px 14px 10px;
    }

    .vht-row{
        gap:13px;
        padding:10px 108px 10px 10px;
        margin-bottom:12px;
        border-radius:17px;
    }

    .vht-row-link{
        gap:13px;
    }

    .vht-row img{
        width:78px!important;
        height:78px!important;
        flex:0 0 78px;
        border-radius:14px!important;
    }

    .vht-title{
        font-size:14px!important;
        line-height:1.45;
        margin-bottom:5px;
    }

    .vht-price{
        font-size:15px!important;
    }

    .vht-variation-meta{
        font-size:12px;
    }

    #vht-panel.vht-view-favorites .vht-row.vht-row-has-cart{
        padding-bottom:54px;
    }

    .vht-row-cart{
        left:101px;
        right:12px;
        bottom:10px;
        height:32px;
        min-height:32px;
        font-size:13px !important;
        line-height:30px !important;
    }

    .vht-row-fav,
    .vht-row-del{
        width:36px;
        height:36px;
        line-height:34px;
    }

    .vht-row-fav{
        right:58px;
        font-size:20px;
    }

    .vht-row-del{
        right:12px;
        font-size:23px;
    }

    .vht-panel-footer{
        padding:11px 14px 14px;
    }
}



@media (max-width:480px){
    #vht-panel{
        height:72vh;
        max-height:calc(100dvh - 86px);
    }
}

@media (max-width:380px){
    #vht-floating-wrap{
        right:17px;
        bottom:calc(120px + env(safe-area-inset-bottom, 0px));
        width:45px !important;
        min-width:45px !important;
        max-width:45px !important;
        height:45px !important;
        min-height:45px !important;
        max-height:45px !important;
    }

    #vht-floating-actions{
        right:calc(100% + 8px);
        gap:8px;
    }

    button.vht-floating-action{
        width:112px;
        min-width:112px;
        max-width:112px;
        height:32px;
        min-height:32px;
        padding-left:10px !important;
        padding-right:8px !important;
        font-size:12px;
    }

    .vht-floating-action-count{
        min-width:18px;
        height:18px;
        padding:0 5px;
        font-size:11px;
        line-height:18px;
    }

    .vht-panel-header{
        padding-left:14px;
        padding-right:14px;
    }

    .vht-tabs{
        gap:5px;
    }

    .vht-tab{
        min-height:28px;
        padding:0 7px;
        gap:4px;
        font-size:12px;
        line-height:28px;
    }
}

/* v8.10.60：會員收藏登入視窗雙路徑 Safe；核心 bootstrap 與完整 UI 皆可獨立開啟 modal。 */
#vht-member-auth-backdrop{
    position:fixed;
    inset:0;
    z-index:10000010;
    display:none;
    background:rgba(55,52,47,.36);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
}
#vht-member-auth-backdrop.is-open{display:block;}
#vht-member-auth-modal{
    position:fixed;
    inset:0;
    z-index:10000020;
    display:none;
    align-items:center;
    justify-content:center;
    padding:18px;
    box-sizing:border-box;
    pointer-events:none;
}
#vht-member-auth-modal.is-open{display:flex;}
.vht-member-auth-card{
    position:relative;
    width:min(390px,100%);
    max-height:calc(100dvh - 36px);
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    padding:20px 18px 18px;
    border:1px solid rgba(214,190,142,.55);
    border-radius:20px;
    background:#fffdf9;
    box-shadow:0 18px 50px rgba(75,67,55,.20);
    box-sizing:border-box;
    pointer-events:auto;
}
.vht-member-auth-close{
    position:absolute;
    top:10px;
    right:10px;
    width:32px;
    height:32px;
    border:0;
    border-radius:50%;
    background:#d6a49b;
    color:#fff;
    font-size:22px;
    line-height:32px;
    cursor:pointer;
}
.vht-member-auth-badge{
    display:table;
    margin:0 auto 9px;
    padding:5px 11px;
    border-radius:999px;
    background:#f2f7f6;
    color:#647978;
    font-size:14px;
    font-weight:700;
    line-height:1.2;
}
.vht-member-auth-title{
    margin:0 40px 5px;
    color:#5d5548;
    font-size:18px;
    font-weight:700;
    line-height:1.4;
    text-align:center;
}
.vht-member-auth-note{
    margin:0 8px 14px;
    color:#8f8576;
    font-size:12px;
    line-height:1.6;
    text-align:center;
}
.vht-member-auth-line{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:44px!important;
    margin:0!important;
    padding:0 14px!important;
    border:1px solid #8db8ba!important;
    border-radius:12px!important;
    background:#8db8ba!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:42px!important;
    text-decoration:none!important;
    box-sizing:border-box!important;
}
.vht-member-auth-line-icon{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    min-width:28px!important;
    height:28px!important;
    margin-right:15px!important;
    padding:4px 4px!important;
    border-radius:999px!important;
    background:#fff!important;
    color:#1c5658!important;
    -webkit-text-fill-color:#2b6163!important;
    font-size:8px!important;
    font-weight:600!important;
    letter-spacing:-.2px!important;
    line-height:28px!important;
    box-sizing:border-box!important;
    pointer-events:none!important;
}
.vht-member-auth-divider{
    display:flex;
    align-items:center;
    gap:9px;
    margin:13px 0 11px;
    color:#aaa092;
    font-size:11px;
}
.vht-member-auth-divider::before,.vht-member-auth-divider::after{
    content:"";
    flex:1;
    height:1px;
    background:rgba(214,190,142,.42);
}
.vht-member-auth-tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    margin-bottom:12px;
}
.vht-member-auth-tab{
    min-height:36px;
    border:1px solid rgba(141,184,186,.35);
    border-radius:10px;
    background:#fff;
    color:#756d60;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
}
.vht-member-auth-tab.is-active{
    border-color:#8db8ba;
    background:#f1f8f7;
    color:#557d80;
}
.vht-member-auth-pane{display:none;}
.vht-member-auth-pane.is-active{display:block;}
.vht-member-auth-form{display:flex;flex-direction:column;gap:9px;margin:0;}
.vht-member-auth-field{display:block;margin:0;}
.vht-member-auth-field label{
    display:block;
    margin:0 0 4px;
    color:#655f55;
    font-size:12px;
    font-weight:700;
}
.vht-member-auth-field input{
    width:100%!important;
    height:42px!important;
    min-height:42px!important;
    margin:0!important;
    padding:0 12px!important;
    border:1px solid rgba(141,184,186,.45)!important;
    border-radius:11px!important;
    background:#fff!important;
    color:#514d45!important;
    font-size:14px!important;
    box-shadow:none!important;
    box-sizing:border-box!important;
}
.vht-member-auth-options{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    color:#81796c;
    font-size:12px;
}
.vht-member-auth-options a{color:#648d90!important;text-decoration:none!important;}
.vht-member-auth-submit{
    width:100%;
    min-height:42px;
    border:1px solid #8db8ba!important;
    border-radius:11px!important;
    background:#8db8ba!important;
    color:#fff!important;
    font-size:14px!important;
    font-weight:700!important;
    cursor:pointer;
}
.vht-member-auth-register-note{
    margin:8px 0 0;
    color:#9a8f7c;
    font-size:11px;
    line-height:1.55;
    text-align:center;
}
.vht-member-fav-gate{
    flex:1 1 auto;
    min-height:180px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:24px 18px;
    text-align:center;
}
.vht-member-fav-gate-title{color:#665d4d;font-size:15px;font-weight:700;}
.vht-member-fav-gate-note{max-width:320px;color:#948878;font-size:12px;line-height:1.6;}
.vht-member-fav-gate-btn{
    min-width:190px;
    min-height:40px;
    margin-top:4px;
    border:1px solid #8db8ba!important;
    border-radius:11px!important;
    background:#8db8ba!important;
    color:#fff!important;
    font-size:13px!important;
    font-weight:700!important;
    cursor:pointer;
}

/* v1.0.2：未綁 LINE 收藏達 5 件時的專用提示視窗。 */
#vht-favorite-limit-backdrop{
    position:fixed;
    inset:0;
    z-index:10000036;
    display:none;
    background:rgba(42,47,48,.34);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
}
#vht-favorite-limit-backdrop.is-open{display:block;}
#vht-favorite-limit-modal{
    position:fixed;
    inset:0;
    z-index:10000037;
    display:none;
    align-items:center;
    justify-content:center;
    padding:18px;
    box-sizing:border-box;
}
#vht-favorite-limit-modal.is-open{display:flex;}
.vht-favorite-limit-card{
    position:relative;
    width:min(430px,calc(100vw - 32px));
    padding:24px 22px 20px;
    border:1px solid rgba(141,184,186,.38);
    border-radius:20px;
    background:#fff;
    box-shadow:0 18px 48px rgba(48,72,74,.20);
    text-align:center;
}
.vht-favorite-limit-close{
    position:absolute;
    top:9px;
    right:10px;
    width:34px;
    height:34px;
    padding:0 !important;
    border:0 !important;
    border-radius:50% !important;
    background:transparent !important;
    color:#8a9694 !important;
    font-size:22px !important;
    line-height:34px !important;
    cursor:pointer;
    box-shadow:none !important;
}
.vht-favorite-limit-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:26px;
    padding:2px 11px;
    margin-bottom:10px;
    border-radius:999px;
    background:#edf6f4;
    color:#668d86;
    font-size:12px;
    font-weight:700;
}
.vht-favorite-limit-title{
    margin:0 0 8px;
    color:#3f514e;
    font-size:20px;
    line-height:1.35;
}
.vht-favorite-limit-note{
    margin:0;
    color:#6f7e7b;
    font-size:14px;
    line-height:1.65;
}
.vht-favorite-limit-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin-top:18px;
}
.vht-favorite-limit-bind,
.vht-favorite-limit-organize{
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:8px 12px;
    border-radius:13px;
    font-size:14px;
    font-weight:700;
    text-decoration:none !important;
    box-sizing:border-box;
}
.vht-favorite-limit-bind{
    border:1px solid #83afb0;
    background:#8db8ba;
    color:#fff !important;
}
.vht-favorite-limit-organize{
    border:1px solid #d9dfdc;
    background:#fff;
    color:#647572 !important;
}
@media(max-width:480px){
    .vht-favorite-limit-card{padding:22px 16px 16px;border-radius:18px;}
    .vht-favorite-limit-actions{grid-template-columns:1fr;}
}

.vht-member-toast{
    position:fixed;
    left:50%;
    bottom:calc(24px + env(safe-area-inset-bottom,0px));
    z-index:10000030;
    max-width:min(360px,calc(100vw - 32px));
    transform:translateX(-50%);
    padding:10px 14px;
    border:1px solid rgba(141,184,186,.55);
    border-radius:12px;
    background:#f4faf9;
    color:#547c7f;
    font-size:13px;
    font-weight:600;
    line-height:1.4;
    text-align:center;
    box-shadow:0 8px 20px rgba(96,135,138,.18);
}
.vht-member-toast.is-error{border-color:rgba(214,164,155,.6);background:#fff7f3;color:#9a706a;}
@media(max-width:480px){
    #vht-member-auth-modal{align-items:center;padding:14px;}
    .vht-member-auth-card{width:100%;max-height:calc(100dvh - 28px);padding:18px 14px 14px;border-radius:20px;}
    .vht-member-auth-title{font-size:17px;}
}
