/**
 * 发货平台多模板主题色桥接层
 *
 * 使用约定：
 * 1. 页面 <html> 必须包含 data-fh-template="t15|t16|t18|t5|t8"。
 * 2. 后台启用自定义主题时，在页面 head 内注入：
 *      html { --fh-theme: #376cf6; }
 * 3. 可选注入 --fh-theme-dark、--fh-theme-deep、--fh-theme-soft、
 *    --fh-theme-faint、--fh-theme-border、--fh-theme-secondary、
 *    --fh-theme-contrast，以精确控制派生色。
 * 4. 后台未注入 --fh-theme 时，各模板使用其原有主色回退。
 *
 * 所有选择器均以 data-fh-template 为边界，避免模板之间互相污染。
 */

/* --------------------------------------------------------------------------
 * t15：桌面商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t15"] {
    --fh-bridge-primary: var(--fh-theme, #5566df);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 86%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 72%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 12%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 34%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 80%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
    --accent-color: var(--fh-bridge-primary);
}

html[data-fh-template="t15"] .home-cat-nav-wrap .cat-nav .btn:hover,
html[data-fh-template="t15"] .home-cat-nav-wrap .cat-nav .btn.active {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t15"] .home-cat-pager button:hover:not(:disabled),
html[data-fh-template="t15"] .home-product-pager button:hover:not(:disabled),
html[data-fh-template="t15"] .home-product-pager a:hover,
html[data-fh-template="t15"] .store-page-btn:hover,
html[data-fh-template="t15"] .store-page-btn.active {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t15"] .main-menu .nav-list > li > a:hover,
html[data-fh-template="t15"] .main-menu .nav-list > li.current-menu-item > a,
html[data-fh-template="t15"] .navbar-button,
html[data-fh-template="t15"] .login-btn,
html[data-fh-template="t15"] .btn--primary,
html[data-fh-template="t15"] .button-primary,
html[data-fh-template="t15"] input[type="submit"],
html[data-fh-template="t15"] button[type="submit"] {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t15"] .navbar-button:hover,
html[data-fh-template="t15"] .login-btn:hover,
html[data-fh-template="t15"] .btn--primary:hover,
html[data-fh-template="t15"] .button-primary:hover,
html[data-fh-template="t15"] input[type="submit"]:hover,
html[data-fh-template="t15"] button[type="submit"]:hover {
    border-color: var(--fh-bridge-dark);
    background-color: var(--fh-bridge-dark);
}

html[data-fh-template="t15"] .pagination .current,
html[data-fh-template="t15"] #pager ul.pages li.pgCurrent,
html[data-fh-template="t15"] #pager ul.pages li:hover,
html[data-fh-template="t15"] .filter--content .on,
html[data-fh-template="t15"] .filter--content .active,
html[data-fh-template="t15"] .term-bar {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t15"] .detail-buy-btn {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
    box-shadow: 0 9px 22px
        color-mix(in srgb, var(--fh-bridge-primary) 24%, transparent);
}

html[data-fh-template="t15"] .detail-buy-btn:hover {
    background: linear-gradient(
        135deg,
        var(--fh-bridge-dark),
        var(--fh-bridge-deep)
    );
}

html[data-fh-template="t15"] .detail-category-list .count,
html[data-fh-template="t15"] i.dot[style] {
    color: var(--fh-bridge-on-primary) !important;
    background-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t15"] a:not(.detail-pay-price):hover {
    color: var(--fh-bridge-primary);
}

/* --------------------------------------------------------------------------
 * t16：响应式商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t16"] {
    --fh-bridge-primary: var(--fh-theme, #ff3b30);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 86%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 72%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 11%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 32%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 78%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
    --mall-primary: var(--fh-bridge-primary);
    --mall-primary-dark: var(--fh-bridge-dark);
}

html[data-fh-template="t16"] .mall-search-box button,
html[data-fh-template="t16"] .mall-btn.primary,
html[data-fh-template="t16"] .product-purchase-actions .butnow,
html[data-fh-template="t16"] .product-purchase-actions .addcart,
html[data-fh-template="t16"] .pj_btn,
html[data-fh-template="t16"] .vip_button,
html[data-fh-template="t16"] .vip_long,
html[data-fh-template="t16"] .btn_info,
html[data-fh-template="t16"] .shop-enter-button {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t16"] .mall-search-box button:hover,
html[data-fh-template="t16"] .mall-btn.primary:hover,
html[data-fh-template="t16"] .product-purchase-actions .butnow:hover,
html[data-fh-template="t16"] .product-purchase-actions .addcart:hover,
html[data-fh-template="t16"] .pj_btn:hover,
html[data-fh-template="t16"] .vip_button:hover,
html[data-fh-template="t16"] .vip_long:hover,
html[data-fh-template="t16"] .btn_info:hover,
html[data-fh-template="t16"] .shop-enter-button:hover {
    border-color: var(--fh-bridge-dark);
    background-color: var(--fh-bridge-dark);
}

html[data-fh-template="t16"] .sub_sort_active,
html[data-fh-template="t16"] .tab .active,
html[data-fh-template="t16"] #pager ul.pages li.pgCurrent {
    color: var(--fh-bridge-on-primary) !important;
    border-color: var(--fh-bridge-primary) !important;
    background-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t16"] .sub_sort_active:hover,
html[data-fh-template="t16"] #pager ul.pages li:hover {
    color: var(--fh-bridge-on-primary) !important;
    border-color: var(--fh-bridge-dark) !important;
    background-color: var(--fh-bridge-dark) !important;
}

html[data-fh-template="t16"] .search-hero,
html[data-fh-template="t16"] .text-hero,
html[data-fh-template="t16"] .contact-hero,
html[data-fh-template="t16"] .mall-side-ad-orange,
html[data-fh-template="t16"] .mall-channel-main {
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t16"] .mall-product-carousel,
html[data-fh-template="t16"] .mall-random-slide {
    border-color: var(--fh-bridge-border);
    background: linear-gradient(
        145deg,
        var(--fh-bridge-faint),
        var(--fh-bridge-soft)
    );
}

html[data-fh-template="t16"] .mall-slide-copy > span,
html[data-fh-template="t16"] .mall-product-tags span,
html[data-fh-template="t16"] .product-service-label,
html[data-fh-template="t16"] .role_title,
html[data-fh-template="t16"] .icon_bg {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t16"] .product-service-text::before,
html[data-fh-template="t16"] .contact-icon,
html[data-fh-template="t16"] .contact-card:hover strong,
html[data-fh-template="t16"] .contact-note a,
html[data-fh-template="t16"] .vip_info,
html[data-fh-template="t16"] .vip_over {
    color: var(--fh-bridge-primary);
}

html[data-fh-template="t16"] .mall-category-card:hover,
html[data-fh-template="t16"] .mall-product-card:hover {
    border-color: var(--fh-bridge-border);
    box-shadow: 0 12px 30px
        color-mix(in srgb, var(--fh-bridge-primary) 13%, transparent);
}

/* --------------------------------------------------------------------------
 * t18：游戏商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t18"] {
    --fh-bridge-primary: var(--fh-theme, #376cf6);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 82%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 68%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 11%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 31%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 74%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
    --g18-primary: var(--fh-bridge-primary);
    --g18-primary-dark: var(--fh-bridge-dark);
    --g18-secondary: var(--fh-bridge-secondary);
}

html[data-fh-template="t18"] body a:hover,
html[data-fh-template="t18"] .site-header .nav-item-active .link,
html[data-fh-template="t18"] .site-header .header-nav .nav-list .nav-item a:hover,
html[data-fh-template="t18"] .site-header .header-search .hot-words a:hover,
html[data-fh-template="t18"] .filter-list a:hover,
html[data-fh-template="t18"] .filter-list dd.active,
html[data-fh-template="t18"] .order-list-box .order-list li.active a {
    color: var(--fh-bridge-primary);
}

html[data-fh-template="t18"] .site-header .header-nav .nav-list .nav-category .site-category-list .children-list li .link:hover,
html[data-fh-template="t18"] .xm-plain-box .box-hd .more .tab-list li:hover,
html[data-fh-template="t18"] .xm-plain-box .box-hd .more .tab-list li.tab-active,
html[data-fh-template="t18"] .goods-list-box .goods-item .thumb-list .active a,
html[data-fh-template="t18"] .goods-list-box .goods-item .thumb-list .active a:hover {
    color: var(--fh-bridge-primary);
    border-color: var(--fh-bridge-primary);
}

html[data-fh-template="t18"] .site-header .search-form-focus .search-text,
html[data-fh-template="t18"] .site-header .search-form-focus .search-btn,
html[data-fh-template="t18"] .site-header .header-search .search-btn,
html[data-fh-template="t18"] .add_ok,
html[data-fh-template="t18"] .order-list-box .type-list .checkbox-checked {
    border-color: var(--fh-bridge-primary);
}

html[data-fh-template="t18"] .site-header .header-search .search-btn:hover,
html[data-fh-template="t18"] .video-item:hover .play,
html[data-fh-template="t18"] .xm-pagers li.pager-active,
html[data-fh-template="t18"] .xm-pagers .pager-active .dot,
html[data-fh-template="t18"] .add_ok .go a.btn,
html[data-fh-template="t18"] .bnt_blue_1,
html[data-fh-template="t18"] .bnt_blue,
html[data-fh-template="t18"] .bnt_blue_2,
html[data-fh-template="t18"] .sort .curr .search_ASC,
html[data-fh-template="t18"] .sort .curr .search_DESC,
html[data-fh-template="t18"] #pager ul.pages li.pgCurrent {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t18"] .add_ok .go a.back {
    color: var(--fh-bridge-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-faint);
}

html[data-fh-template="t18"] .g18-btn--primary,
html[data-fh-template="t18"] .g18-search__btn {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t18"] .g18-btn--primary:hover,
html[data-fh-template="t18"] .g18-search__btn:hover {
    border-color: var(--fh-bridge-dark);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-dark),
        var(--fh-bridge-deep)
    );
}

/* --------------------------------------------------------------------------
 * t5：轻量商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t5"] {
    --fh-bridge-primary: var(--fh-theme, #ff4d2d);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 84%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 69%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 11%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 30%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 72%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
    --t5m-primary: var(--fh-bridge-primary);
    --t5m-primary-dark: var(--fh-bridge-dark);
    --t5m-secondary: var(--fh-bridge-secondary);
    --t5m-accent: var(--fh-bridge-primary);
}

html[data-fh-template="t5"] .t5m-hero-feature {
    background: linear-gradient(
        135deg,
        var(--fh-bridge-primary),
        var(--fh-bridge-secondary)
    );
}

html[data-fh-template="t5"] .t5m-hero-cats__all,
html[data-fh-template="t5"] .t5m-user-card__benefit,
html[data-fh-template="t5"] .t5m-detail-info__badges span,
html[data-fh-template="t5"] .t5m-search-item > a:last-child {
    color: var(--fh-bridge-primary);
    border-color: var(--fh-bridge-border);
    background-color: var(--fh-bridge-soft);
}

html[data-fh-template="t5"] .t5m-feature-card__price span,
html[data-fh-template="t5"] .t5m-side-card a:hover {
    color: var(--fh-bridge-primary);
}

html[data-fh-template="t5"] .t5m-search-item:hover,
html[data-fh-template="t5"] .t5m-product-card:hover {
    border-color: var(--fh-bridge-border);
    box-shadow: 0 12px 30px
        color-mix(in srgb, var(--fh-bridge-primary) 13%, transparent);
}

html[data-fh-template="t5"] .btn-primary,
html[data-fh-template="t5"] .button-primary,
html[data-fh-template="t5"] input[type="submit"],
html[data-fh-template="t5"] button[type="submit"],
html[data-fh-template="t5"] #pager ul.pages li.pgCurrent {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background-color: var(--fh-bridge-primary);
}

html[data-fh-template="t5"] .btn-primary:hover,
html[data-fh-template="t5"] .button-primary:hover,
html[data-fh-template="t5"] input[type="submit"]:hover,
html[data-fh-template="t5"] button[type="submit"]:hover,
html[data-fh-template="t5"] #pager ul.pages li:hover {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-dark);
    background-color: var(--fh-bridge-dark);
}

/* --------------------------------------------------------------------------
 * t8：移动商城
 * -------------------------------------------------------------------------- */

html[data-fh-template="t8"] {
    --fh-bridge-primary: var(--fh-theme, #7c4dff);
    --fh-bridge-dark: var(
        --fh-theme-dark,
        color-mix(in srgb, var(--fh-bridge-primary) 78%, #000)
    );
    --fh-bridge-deep: var(
        --fh-theme-deep,
        color-mix(in srgb, var(--fh-bridge-primary) 64%, #000)
    );
    --fh-bridge-soft: var(
        --fh-theme-soft,
        color-mix(in srgb, var(--fh-bridge-primary) 11%, #fff)
    );
    --fh-bridge-faint: var(
        --fh-theme-faint,
        color-mix(in srgb, var(--fh-bridge-primary) 5%, #fff)
    );
    --fh-bridge-border: var(
        --fh-theme-border,
        color-mix(in srgb, var(--fh-bridge-primary) 31%, #fff)
    );
    --fh-bridge-secondary: var(
        --fh-theme-secondary,
        color-mix(in srgb, var(--fh-bridge-primary) 74%, #fff)
    );
    --fh-bridge-on-primary: var(--fh-theme-contrast, #fff);
}

/*
 * t8 在页面容器上重新声明了变量，必须在相同容器层覆盖，
 * 仅写到 html 上会被其局部变量遮蔽。
 */
html[data-fh-template="t8"] .t8-home-page,
html[data-fh-template="t8"] .t8-detail-page {
    --t8-purple: var(--fh-bridge-primary);
    --t8-purple-dark: var(--fh-bridge-dark);
    --t8-purple-soft: var(--fh-bridge-soft);
}

html[data-fh-template="t8"] .t8-home-page .zyw-header,
html[data-fh-template="t8"] .t8-detail-page .zyw-header,
html[data-fh-template="t8"] .t8-detail-page .item-precent h4::before,
html[data-fh-template="t8"] .t8-detail-page .zyw-footer .footer-warning,
html[data-fh-template="t8"] .t8-detail-page .item-layer-button,
html[data-fh-template="t8"] .t8-detail-page .t8-login-dialog .weui-dialog__hd::before,
html[data-fh-template="t8"] .t8-detail-page .t8-login-dialog .weui-dialog__btn.primary {
    color: var(--fh-bridge-on-primary);
    border-color: var(--fh-bridge-primary);
    background: linear-gradient(
        135deg,
        var(--fh-bridge-secondary),
        var(--fh-bridge-primary),
        var(--fh-bridge-dark)
    );
}

html[data-fh-template="t8"] .weui-tabbar__item.weui-bar__item--on .weui-tabbar__label,
html[data-fh-template="t8"] .weui-navbar__item.weui-bar__item--on,
html[data-fh-template="t8"] .theme-color,
html[data-fh-template="t8"] .active2,
html[data-fh-template="t8"] .weui-search-bar__cancel-btn {
    color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t8"] .theme-bgcolor,
html[data-fh-template="t8"] .swiper-pagination-bullet-active,
html[data-fh-template="t8"] .index-news .news-cont strong em,
html[data-fh-template="t8"] .class-cont .class-hd > li.active > a,
html[data-fh-template="t8"] .find-cart .cart-tab.active,
html[data-fh-template="t8"] .group1-hd .hd-take,
html[data-fh-template="t8"] #pager ul.pages li.pgCurrent {
    color: var(--fh-bridge-on-primary) !important;
    border-color: var(--fh-bridge-primary) !important;
    background-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t8"] .theme-bdcolor,
html[data-fh-template="t8"] .weui-count .weui-count__btn,
html[data-fh-template="t8"] .weui-count .weui-count__increase,
html[data-fh-template="t8"] .item-spec-layer .spec-info .spec-info-bd ul li.active {
    color: var(--fh-bridge-primary) !important;
    border-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t8"] .weui-count .weui-count__btn::after,
html[data-fh-template="t8"] .weui-count .weui-count__btn::before,
html[data-fh-template="t8"] .weui-count .weui-count__increase::after,
html[data-fh-template="t8"] .weui-count .weui-count__increase::before {
    background-color: var(--fh-bridge-primary) !important;
}

html[data-fh-template="t8"] .class-cont .class-hd > li.active > a:focus,
html[data-fh-template="t8"] .class-cont .class-hd > li.active > a:hover {
    color: var(--fh-bridge-on-primary) !important;
    background-color: var(--fh-bridge-dark) !important;
}

/* --------------------------------------------------------------------------
 * crmeb_style：修正旧样式中残留的固定红色渐变
 * -------------------------------------------------------------------------- */

html[data-fh-template="crmeb_style"] .btn--primary,
html[data-fh-template="crmeb_style"] .button-primary,
html[data-fh-template="crmeb_style"] input[type="submit"],
html[data-fh-template="crmeb_style"] .detail-buy-btn,
html[data-fh-template="crmeb_style"] .crmeb-buy-now,
html[data-fh-template="crmeb_style"] .cb-user-actions a:first-child,
html[data-fh-template="crmeb_style"] .cb-search button,
html[data-fh-template="crmeb_style"] .cb-all-cats {
    color: var(--fh-theme-contrast, #fff) !important;
    border-color: var(--fh-theme) !important;
    background: linear-gradient(135deg, var(--fh-theme), var(--fh-theme-dark)) !important;
}

html[data-fh-template="crmeb_style"] .term-bar,
html[data-fh-template="crmeb_style"] .crmeb-mall-hero,
html[data-fh-template="crmeb_style"] .crmeb-search-hero {
    background: linear-gradient(135deg, var(--fh-theme-soft), var(--fh-theme-faint)) !important;
    border-color: var(--fh-theme-border) !important;
}

html[data-fh-template="crmeb_style"] .crmeb-price-panel {
    background: linear-gradient(90deg, var(--fh-theme-soft), var(--fh-theme-faint)) !important;
}

html[data-fh-template="crmeb_style"] .main-menu .nav-list > li > a:hover,
html[data-fh-template="crmeb_style"] .main-menu .nav-list > li.current-menu-item > a,
html[data-fh-template="crmeb_style"] .cb-main-nav a:hover,
html[data-fh-template="crmeb_style"] .cb-vip-link {
    color: var(--fh-theme) !important;
}

/* t15 的独立课程页沿用 Bootstrap 类名。 */
html[data-fh-template="t15"] .btn-primary,
html[data-fh-template="t15"] .list-group-item.active,
html[data-fh-template="t15"] .list-group-item.active:hover,
html[data-fh-template="t15"] .list-group-item.active:focus {
    color: var(--fh-theme-contrast, #fff) !important;
    border-color: var(--fh-theme) !important;
    background-color: var(--fh-theme) !important;
}

/* t8 数量加号必须保持白色，按钮底色跟随主题。 */
html[data-fh-template="t8"] .weui-navbar__item.weui-bar__item--on,
html[data-fh-template="t8"] .find-cart .cart-tab.active {
    border-color: var(--fh-theme) !important;
}

html[data-fh-template="t8"] .weui-count .weui-count__increase {
    color: var(--fh-theme-contrast, #fff) !important;
    border-color: var(--fh-theme) !important;
    background-color: var(--fh-theme) !important;
}

html[data-fh-template="t8"] .weui-count .weui-count__increase::after,
html[data-fh-template="t8"] .weui-count .weui-count__increase::before {
    background-color: var(--fh-theme-contrast, #fff) !important;
}

/* --------------------------------------------------------------------------
 * t15：后台站点名称与官方介绍页
 * -------------------------------------------------------------------------- */

html[data-fh-template="t15"] .site-branding-link {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    color: #202333;
    text-decoration: none;
}

html[data-fh-template="t15"] .site-branding-link .tap-logo {
    flex: 0 0 auto;
}

html[data-fh-template="t15"] .site-brand-title {
    display: inline-block;
    max-width: 250px;
    margin: 0;
    overflow: hidden;
    color: #202333;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.35;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
}

html[data-fh-template="t15"] .footer-site-title {
    margin: 0 0 12px;
    color: #34495e;
    font-size: 17px;
    line-height: 1.5;
}

html[data-fh-template="t15"] .footer-widget .footer--logo {
    margin-bottom: 18px;
}

html[data-fh-template="t15"] .footer-mobile-accordions {
    display: none;
}

html[data-fh-template="t15"] .footer-search-label {
    display: none;
}

html[data-fh-template="t15"] .official-page {
    color: #3e4658;
    font-size: 16px;
    line-height: 1.9;
}

html[data-fh-template="t15"] .official-page-lead {
    margin: 0 0 28px;
    padding: 30px;
    border: 1px solid var(--fh-theme-border);
    border-radius: 16px;
    background: linear-gradient(135deg, var(--fh-theme-faint), var(--fh-theme-soft));
}

html[data-fh-template="t15"] .official-page-eyebrow,
html[data-fh-template="t15"] .official-contact-label {
    display: block;
    margin: 0 0 8px;
    color: var(--fh-theme-dark);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

html[data-fh-template="t15"] .official-page-lead h2 {
    margin: 0 0 12px;
    color: #202333;
    font-size: 28px;
    line-height: 1.4;
}

html[data-fh-template="t15"] .official-page-lead p,
html[data-fh-template="t15"] .official-info-card p,
html[data-fh-template="t15"] .official-contact-card p {
    margin: 0;
}

html[data-fh-template="t15"] .official-info-grid,
html[data-fh-template="t15"] .official-service-grid,
html[data-fh-template="t15"] .official-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 24px;
}

html[data-fh-template="t15"] .official-info-card,
html[data-fh-template="t15"] .official-service-card,
html[data-fh-template="t15"] .official-contact-card {
    padding: 24px;
    border: 1px solid #eaedf4;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(32, 35, 51, .06);
}

html[data-fh-template="t15"] .official-business-list {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 10px 14px;
    margin: 0;
}

html[data-fh-template="t15"] .official-business-list dt {
    color: #202333;
    font-weight: 700;
}

html[data-fh-template="t15"] .official-business-list dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    color: #5c6578;
}

html[data-fh-template="t15"] .official-business-list a {
    color: var(--fh-theme-dark);
}

html[data-fh-template="t15"] .official-info-card h3,
html[data-fh-template="t15"] .official-service-card h3,
html[data-fh-template="t15"] .official-contact-card h3 {
    margin: 0 0 10px;
    color: #202333;
    font-size: 19px;
    line-height: 1.55;
}

html[data-fh-template="t15"] .official-service-card {
    position: relative;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

html[data-fh-template="t15"] .official-service-card:hover {
    border-color: var(--fh-theme-border);
    box-shadow: 0 14px 34px rgba(var(--fh-theme-rgb), .13);
    transform: translateY(-2px);
}

html[data-fh-template="t15"] .official-service-card a,
html[data-fh-template="t15"] .official-contact-card a {
    color: var(--fh-theme-dark);
    text-decoration: none;
}

html[data-fh-template="t15"] .official-service-link {
    display: inline-flex;
    align-items: center;
    margin-top: 14px;
    font-weight: 700;
}

html[data-fh-template="t15"] .official-service-link::after {
    content: "→";
    margin-left: 7px;
}

html[data-fh-template="t15"] .official-process {
    margin: 28px 0 0;
    padding: 25px 28px;
    border-left: 4px solid var(--fh-theme);
    border-radius: 0 12px 12px 0;
    background: #f8f9fc;
}

html[data-fh-template="t15"] .official-process h3 {
    margin: 0 0 12px;
    color: #202333;
}

html[data-fh-template="t15"] .official-process ol {
    margin: 0;
    padding-left: 22px;
}

html[data-fh-template="t15"] .official-contact-card-wide {
    grid-column: 1 / -1;
}

html[data-fh-template="t15"] .official-contact-note {
    margin: 4px 0 8px;
    padding: 16px 18px;
    border: 1px solid #f0dfad;
    border-radius: 10px;
    color: #725a1e;
    background: #fffaf0;
}

@media (max-width: 1199px) {
    html[data-fh-template="t15"] .site-brand-title {
        max-width: 180px;
        font-size: 15px;
    }
}

@media (max-width: 767px) {
    html[data-fh-template="t15"] .site-brand-title {
        max-width: 145px;
        font-size: 14px;
    }

    html[data-fh-template="t15"] .official-page-lead {
        padding: 22px 18px;
    }

    html[data-fh-template="t15"] .official-page-lead h2 {
        font-size: 23px;
    }

    html[data-fh-template="t15"] .official-info-grid,
    html[data-fh-template="t15"] .official-service-grid,
    html[data-fh-template="t15"] .official-contact-grid {
        grid-template-columns: 1fr;
    }

    html[data-fh-template="t15"] .official-business-list {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    html[data-fh-template="t15"] .official-business-list dt:not(:first-of-type) {
        margin-top: 8px;
    }

    html[data-fh-template="t15"] .official-contact-card-wide {
        grid-column: auto;
    }
}

@media (max-width: 576px) {
    /* 手机端顶部导航：压缩非核心区域，确保菜单入口始终清晰可见。 */
    html[data-fh-template="t15"] .navbar {
        min-width: 0;
    }

    html[data-fh-template="t15"] .navbar .logo-wrapper {
        flex: 1 1 auto;
        min-width: 0;
    }

    html[data-fh-template="t15"] .navbar .site-branding-link {
        display: flex;
        align-items: center;
        min-width: 0;
    }

    html[data-fh-template="t15"] .navbar .site-branding-link .tap-logo {
        flex: 0 0 auto;
        max-width: 72px;
        margin-right: 0;
    }

    html[data-fh-template="t15"] .navbar .site-branding-link .site-brand-title {
        /* 手机端 Logo 已包含品牌识别，隐藏重复标题以腾出操作区。 */
        display: none;
        flex: 1 1 auto;
        min-width: 0;
        max-width: none;
        margin-right: 0;
        font-size: 13px;
    }

    html[data-fh-template="t15"] .navbar .actions {
        flex: 0 0 auto;
    }

    html[data-fh-template="t15"] .navbar .login-btn {
        width: auto;
        min-width: 62px;
        height: 36px;
        margin-right: 6px;
        padding: 0 9px;
        border-radius: 9px;
        font-size: 12px;
        font-weight: 700;
        box-shadow: 0 5px 12px color-mix(in srgb, var(--fh-bridge-primary) 24%, transparent);
    }

    html[data-fh-template="t15"] .navbar .login-btn .mdi {
        margin-right: 3px;
        font-size: 16px;
    }

    html[data-fh-template="t15"] .navbar .search-open.navbar-button {
        flex: 0 0 36px;
        width: 36px;
        height: 36px;
        margin-right: 6px;
        border-radius: 9px;
        box-shadow: 0 5px 12px color-mix(in srgb, var(--fh-bridge-primary) 24%, transparent);
    }

    html[data-fh-template="t15"] .navbar .burger {
        flex: 0 0 42px;
        width: 42px;
        height: 36px;
        margin-left: 0;
        padding: 0;
        border: 1px solid var(--fh-bridge-primary);
        border-radius: 9px;
        appearance: none;
        -webkit-appearance: none;
        background: linear-gradient(135deg, var(--fh-bridge-primary), var(--fh-bridge-dark));
        box-shadow: 0 5px 12px color-mix(in srgb, var(--fh-bridge-primary) 26%, transparent);
    }

    html[data-fh-template="t15"] .navbar .burger::before,
    html[data-fh-template="t15"] .navbar .burger::after {
        left: 11px;
        width: 18px;
        height: 2px;
        border-radius: 999px;
        background-color: var(--fh-bridge-on-primary);
    }

    html[data-fh-template="t15"] .navbar .burger::before {
        top: 11px;
        box-shadow: 0 6px 0 var(--fh-bridge-on-primary);
    }

    html[data-fh-template="t15"] .navbar .burger::after {
        bottom: 11px;
    }

    html[data-fh-template="t15"] .navbar .burger:active {
        transform: translateY(1px);
    }

    html[data-fh-template="t15"] .site-footer {
        padding-top: 0;
    }

    html[data-fh-template="t15"] .footer-widget {
        display: block;
        padding: 26px 0 18px;
    }

    html[data-fh-template="t15"] .footer-widget .row {
        display: flex;
        flex-wrap: wrap;
        margin-right: -10px;
        margin-left: -10px;
    }

    html[data-fh-template="t15"] .footer-widget .row > [class*="col-"] {
        padding-right: 10px;
        padding-left: 10px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--about,
    html[data-fh-template="t15"] .footer-widget .widget--newsletter {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
    }

    html[data-fh-template="t15"] .footer-widget .widget--about {
        margin-bottom: 24px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--links {
        flex: 0 0 50%;
        width: 50%;
        max-width: 50%;
        margin-bottom: 24px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter {
        margin-top: 2px;
    }

    html[data-fh-template="t15"] .footer-widget .footer--logo {
        max-width: 150px;
        margin-bottom: 14px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--title h5 {
        margin-bottom: 15px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--about p {
        margin-bottom: 0;
        line-height: 1.8;
    }

    html[data-fh-template="t15"] .footer-widget .widget--links ul li a {
        margin-bottom: 7px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter .newsletter--form {
        margin-bottom: 4px;
    }

    /* 手机端：导航默认展开，便于直接浏览。 */
    html[data-fh-template="t15"] .footer-widget {
        padding: 20px 0 14px;
    }

    html[data-fh-template="t15"] .footer-widget .footer-desktop-links {
        display: none;
    }

    html[data-fh-template="t15"] .footer-mobile-accordions {
        display: block;
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        margin: 0 0 18px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--about {
        margin-bottom: 16px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--about .widget--content {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }

    html[data-fh-template="t15"] .footer-widget .footer--logo {
        flex: 0 0 96px;
        width: 96px;
        max-width: 96px;
        margin: 0 12px 0 0;
    }

    html[data-fh-template="t15"] .footer-widget .footer-site-title {
        flex: 1 1 0;
        min-width: 0;
        margin: 0;
        color: #263b5a;
        font-size: 15px;
        line-height: 1.45;
    }

    html[data-fh-template="t15"] .footer-widget .widget--about p {
        display: -webkit-box;
        flex: 0 0 100%;
        margin-top: 12px;
        overflow: hidden;
        color: #7c8798;
        font-size: 13px;
        line-height: 1.7;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion {
        border-top: 1px solid #e8edf5;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion:last-child {
        border-bottom: 1px solid #e8edf5;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 50px;
        color: #263b5a;
        cursor: pointer;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.2;
        list-style: none;
        user-select: none;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion summary::-webkit-details-marker {
        display: none;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion summary::after {
        content: "+";
        color: var(--fh-bridge-primary);
        font-size: 22px;
        font-weight: 400;
        line-height: 1;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion[open] summary::after {
        content: "−";
    }

    html[data-fh-template="t15"] .footer-mobile-accordion summary:focus-visible {
        outline: 3px solid var(--fh-bridge-border);
        outline-offset: -3px;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion__content {
        padding: 0 0 12px;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion__content ul {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin: 0;
        padding: 0;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion__content li {
        min-width: 0;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion__content a {
        display: flex;
        align-items: center;
        min-height: 40px;
        padding: 8px 10px;
        overflow: hidden;
        border: 1px solid #e8edf5;
        border-radius: 8px;
        color: #40516c;
        font-size: 13px;
        font-weight: 500;
        line-height: 1.3;
        text-overflow: ellipsis;
        white-space: nowrap;
        background: #f8f9fc;
    }

    html[data-fh-template="t15"] .footer-mobile-accordion__content a:active {
        border-color: var(--fh-bridge-border);
        color: var(--fh-bridge-primary);
        background: var(--fh-bridge-faint);
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter {
        margin-top: 0;
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter .widget--title h5 {
        margin-bottom: 11px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter .newsletter--form {
        margin-bottom: 0;
    }

    /* 手机端搜索按钮改为清晰的主操作，避免窄箭头难以点击。 */
    html[data-fh-template="t15"] .footer-widget .widget--newsletter .newsletter--form {
        min-height: 48px;
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter .form-control {
        height: 48px;
        padding-right: 88px;
        border-color: #e4eaf3;
        border-radius: 10px;
        background: #f8f9fc;
        box-shadow: none;
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter button[type="submit"] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 5px;
        top: 4px;
        right: 4px;
        min-width: 72px;
        height: 40px;
        padding: 0 12px;
        border: 0;
        border-radius: 8px;
        color: var(--fh-bridge-on-primary);
        font-size: 13px;
        font-weight: 700;
        line-height: 1;
        background: linear-gradient(135deg, var(--fh-bridge-primary), var(--fh-bridge-dark));
        box-shadow: 0 4px 10px color-mix(in srgb, var(--fh-bridge-primary) 22%, transparent);
        transform: none;
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter button[type="submit"]:hover {
        transform: none;
        background: linear-gradient(135deg, var(--fh-bridge-dark), var(--fh-bridge-deep));
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter button[type="submit"]:active {
        transform: translateY(1px);
    }

    html[data-fh-template="t15"] .footer-widget .widget--newsletter button[type="submit"] i {
        font-size: 12px;
    }

    html[data-fh-template="t15"] .footer-widget .footer-search-label {
        display: inline;
    }

    html[data-fh-template="t15"] .footer-links {
        display: block;
        margin-top: 14px;
        text-align: left;
    }

    html[data-fh-template="t15"] .footer-links h6 {
        display: block;
        margin: 0 0 8px;
    }

    html[data-fh-template="t15"] .footer-links ul {
        display: flex;
        flex-wrap: wrap;
    }

    html[data-fh-template="t15"] .footer-links li {
        margin: 0 14px 7px 0;
        white-space: normal;
    }

    html[data-fh-template="t15"] .site-info {
        margin-top: 10px;
        overflow-wrap: anywhere;
    }
}
/* --------------------------------------------------------------------------
 * 统一键盘焦点反馈：仅覆盖五套已接入模板
 * -------------------------------------------------------------------------- */

html[data-fh-template="t15"] :is(a, button, input, select, textarea):focus-visible,
html[data-fh-template="t16"] :is(a, button, input, select, textarea):focus-visible,
html[data-fh-template="t18"] :is(a, button, input, select, textarea):focus-visible,
html[data-fh-template="t5"] :is(a, button, input, select, textarea):focus-visible,
html[data-fh-template="t8"] :is(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--fh-bridge-border);
    outline-offset: 2px;
}
