/* ============================================================
   NovaMall · PC 首页 v2 · 精致版
   命名空间：.hv2-*   与旧 home.css 完全隔离
   ============================================================ */

/* ---------- 设计令牌 ---------- */
:root {
    --hv2-primary: #6366f1;
    --hv2-primary-2: #8b5cf6;
    --hv2-accent: #06b6d4;
    --hv2-pink: #ec4899;
    --hv2-dark: #0a0e1a;
    --hv2-dark-2: #1e1b4b;
    --hv2-dark-3: #312e81;
    --hv2-radius: 20px;
    --hv2-radius-sm: 14px;
    --hv2-shadow-xs: 0 1px 2px rgba(17,24,39,.04);
    --hv2-shadow-sm: 0 4px 12px -4px rgba(17,24,39,.08);
    --hv2-shadow:    0 8px 24px -8px rgba(17,24,39,.10);
    --hv2-shadow-lg: 0 20px 48px -16px rgba(17,24,39,.16);
    --hv2-shadow-primary: 0 12px 32px -10px rgba(99,102,241,.45);
    --hv2-ease: cubic-bezier(.22,1,.36,1);
}

.hv2-wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
}

/* ============================================================
   ① 顶部公告条
   ============================================================ */
.hv2-announce {
    background: linear-gradient(90deg, #fef3c7 0%, #ffedd5 50%, #fce7f3 100%);
    border-bottom: 1px solid rgba(251,146,60,.15);
}
.hv2-announce-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 10px 32px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: #9a3412;
    font-weight: 500;
}
.hv2-announce-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: linear-gradient(135deg, #f59e0b, #ef4444);
    box-shadow: 0 0 0 4px rgba(245,158,11,.18);
    animation: hv2Pulse 2s ease-in-out infinite;
    flex: 0 0 auto;
}
@keyframes hv2Pulse {
    0%,100% { box-shadow: 0 0 0 4px rgba(245,158,11,.18); }
    50%     { box-shadow: 0 0 0 8px rgba(245,158,11,.05); }
}

/* ============================================================
   ② Hero 主视觉（深色高级版）
   ============================================================ */
.hv2-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #0a0a1f 0%, #0d0d2b 40%, #141432 100%);
    color: #fff;
    padding: 80px 0 100px;
}
/* 光晕装饰 */
.hv2-hero::before {
    content: '';
    position: absolute;
    top: -200px; left: 50%; transform: translateX(-50%);
    width: 700px; height: 700px;
    background: radial-gradient(circle, rgba(251,191,36,.20) 0%, transparent 70%);
    filter: blur(60px);
    pointer-events: none;
}
.hv2-hero::after { display: none; }
.hv2-hero-inner {
    position: relative;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 60px;
    align-items: center;
    z-index: 1;
}
.hv2-hero-copy { max-width: 620px; }

.hv2-hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    background: rgba(251,191,36,.10);
    border: 1px solid rgba(251,191,36,.25);
    border-radius: 999px;
    font-size: 12px;
    color: #fbbf24;
    font-weight: 600;
    letter-spacing: 1.5px;
    margin-bottom: 28px;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
.hv2-hero-tag-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: #fbbf24;
    box-shadow: 0 0 10px #fbbf24;
    animation: hv2Blink 1.6s ease-in-out infinite;
}
@keyframes hv2Blink {
    0%,100% { opacity: 1; }
    50%     { opacity: .3; }
}

.hv2-hero-title {
    font-size: 58px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -2px;
    margin: 0 0 20px;
    background: linear-gradient(110deg, #ffffff 0%, #f8fafc 40%, #fbbf24 90%);
    filter: drop-shadow(0 4px 24px rgba(251,191,36,.15));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.hv2-hero-sub {
    font-size: 17px;
    line-height: 1.7;
    color: rgba(255,255,255,.72);
    margin: 0 0 36px;
    max-width: 520px;
}

/* 玻璃拟态搜索框 */
.hv2-hero-search {
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 560px;
    padding: 8px 8px 8px 22px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 999px;
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    margin-bottom: 40px;
    transition: all .25s var(--hv2-ease);
    position: relative;
}
.hv2-hero-search:focus-within {
    background: rgba(255,255,255,.12);
    border-color: rgba(251,191,36,.5);
    box-shadow: 0 0 0 4px rgba(251,191,36,.15), 0 12px 32px -12px rgba(251,191,36,.4);
}
.hv2-hero-search-icon {
    display: flex;
    align-items: center;
    color: rgba(255,255,255,.5);
    flex: 0 0 auto;
}
.hv2-hero-search input {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: 0;
    outline: none;
    color: #fff;
    font-size: 15px;
    height: 46px;
    padding: 0;
}
.hv2-hero-search input::placeholder {
    color: rgba(255,255,255,.4);
}
.hv2-hero-search button {
    flex: 0 0 auto;
    height: 46px;
    padding: 0 32px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
    color: #0a0a1f;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 8px 20px -8px rgba(251,191,36,.6);
    transition: all .2s;
}
.hv2-hero-search button:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px -8px rgba(251,191,36,.8);
}

/* 数据 */
.hv2-hero-stats {
    display: flex;
    gap: 56px;
}
.hv2-stat b {
    display: inline-block;
    font-size: 38px;
    font-weight: 900;
    letter-spacing: -1.5px;
    background: linear-gradient(135deg, #fef3c7 0%, #fbbf24 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-variant-numeric: tabular-nums;
}
.hv2-stat > span {
    font-size: 24px;
    font-weight: 800;
    background: linear-gradient(135deg, #fef3c7 0%, #fbbf24 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-left: 2px;
}
.hv2-stat em {
    display: block;
    font-style: normal;
    font-size: 12.5px;
    color: rgba(255,255,255,.5);
    margin-top: 6px;
    letter-spacing: .3px;
}

/* 右侧 3D 卡片 */
.hv2-hero-visual {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}
.hv2-hero-card {
    position: relative;
    width: 100%;
    max-width: 420px;
    padding: 36px 32px;
    background: linear-gradient(135deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.03) 100%);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 28px;
    -webkit-backdrop-filter: blur(24px);
    backdrop-filter: blur(24px);
    box-shadow: 0 30px 80px -30px rgba(99,102,241,.5), inset 0 1px 0 rgba(255,255,255,.15);
    transform: perspective(1000px) rotateY(-6deg) rotateX(3deg);
    transition: transform .5s var(--hv2-ease);
}
.hv2-hero-card:hover {
    transform: perspective(1000px) rotateY(0) rotateX(0) translateY(-4px);
}
.hv2-hero-card-icon {
    width: 72px; height: 72px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 22px;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    box-shadow: 0 16px 40px -10px rgba(139,92,246,.7);
    margin-bottom: 24px;
    color: #fff;
}
.hv2-hero-card-title {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -.4px;
    margin-bottom: 10px;
    color: #fff;
}
.hv2-hero-card-sub {
    font-size: 13.5px;
    line-height: 1.7;
    color: rgba(255,255,255,.6);
    margin-bottom: 22px;
}
.hv2-hero-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.hv2-hero-card-tags > span {
    padding: 6px 16px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    font-size: 12px;
    color: rgba(255,255,255,.85);
    font-weight: 600;
    letter-spacing: .3px;
}

/* ============================================================
   ③ 特色服务
   ============================================================ */
.hv2-features {
    margin-top: -50px;
    position: relative;
    z-index: 5;
    margin-bottom: 60px;
}
.hv2-features-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}
.hv2-feature {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 24px;
    background: #fff;
    border-radius: var(--hv2-radius);
    box-shadow: var(--hv2-shadow);
    border: 1px solid #f1f5f9;
    transition: all .25s var(--hv2-ease);
}
.hv2-feature:hover {
    transform: translateY(-4px);
    box-shadow: var(--hv2-shadow-lg);
    border-color: rgba(99,102,241,.15);
}
.hv2-feature-icon {
    width: 52px; height: 52px;
    flex: 0 0 auto;
    display: flex; align-items: center; justify-content: center;
    border-radius: 14px;
    background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
    color: #6366f1;
}
.hv2-feature b {
    display: block;
    font-size: 15px;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -.2px;
}
.hv2-feature span {
    display: block;
    font-size: 12.5px;
    color: #64748b;
    margin-top: 4px;
}

/* ============================================================
   ④ 区块通用标题
   ============================================================ */
.hv2-section {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px 60px;
}
.hv2-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 28px;
    gap: 20px;
}
.hv2-section-title-wrap { flex: 1; min-width: 0; }
.hv2-section-title {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 26px;
    font-weight: 900;
    color: #0f172a;
    letter-spacing: -1px;
    margin: 0 0 6px;
    line-height: 1.2;
}
.hv2-section-title::before {
    content: '';
    width: 5px;
    height: 26px;
    border-radius: 3px;
    background: linear-gradient(180deg, #6366f1, #8b5cf6);
    box-shadow: 0 4px 12px -2px rgba(99,102,241,.5);
    flex: 0 0 auto;
}
.hv2-section-sub {
    font-size: 13.5px;
    color: #64748b;
    margin: 0;
    padding-left: 17px;
}
.hv2-section-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    text-decoration: none;
    transition: color .2s;
}
.hv2-section-more:hover { color: #6366f1; }
.hv2-section-more svg { transition: transform .2s; }
.hv2-section-more:hover svg { transform: translateX(4px); }

/* ============================================================
   ⑤ 优惠券
   ============================================================ */
.hv2-coupons-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
}
.hv2-coupon {
    display: flex;
    background: #fff;
    border-radius: var(--hv2-radius-sm);
    overflow: hidden;
    position: relative;
    cursor: pointer;
    border: 1px solid rgba(255,107,53,.14);
    box-shadow: 0 6px 18px -6px rgba(255,71,87,.18);
    transition: all .25s var(--hv2-ease);
}
.hv2-coupon:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 32px -10px rgba(255,71,87,.3);
}
.hv2-coupon::before,
.hv2-coupon::after {
    content: '';
    position: absolute;
    left: 100px;
    width: 14px; height: 14px;
    border-radius: 50%;
    background: #fff;
    z-index: 2;
    transform: translateX(-50%);
}
.hv2-coupon::before { top: -7px; }
.hv2-coupon::after { bottom: -7px; }
.hv2-coupon-left {
    flex: 0 0 100px;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    padding: 20px 8px;
    background: linear-gradient(135deg, #ff7a45 0%, #ff4757 55%, #e83e5c 100%);
    color: #fff;
    position: relative;
}
.hv2-coupon-left::after {
    content: '';
    position: absolute;
    right: 0; top: 12px; bottom: 12px;
    width: 1px;
    background-image: linear-gradient(to bottom, rgba(255,255,255,.55) 55%, transparent 55%);
    background-size: 1px 8px;
}
.hv2-coupon-face {
    font-size: 28px;
    font-weight: 900;
    letter-spacing: -1px;
    line-height: 1;
    text-shadow: 0 2px 4px rgba(180,40,60,.3);
}
.hv2-coupon-type {
    margin-top: 8px;
    padding: 2px 10px;
    background: rgba(255,255,255,.22);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 20px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .5px;
}
.hv2-coupon-right {
    flex: 1;
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    background: linear-gradient(180deg, #fff 0%, #fffaf7 100%);
}
.hv2-coupon-name {
    font-size: 15px;
    font-weight: 800;
    color: #1f2937;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 6px;
}
.hv2-coupon-desc {
    font-size: 12.5px;
    color: #9ca3af;
}

/* ============================================================
   ⑥ 推荐店铺
   ============================================================ */
.hv2-stores-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}
.hv2-store {
    display: block;
    padding: 28px 20px;
    background: #fff;
    border-radius: var(--hv2-radius);
    border: 1px solid #f1f5f9;
    text-align: center;
    text-decoration: none;
    color: inherit;
    position: relative;
    overflow: hidden;
    transition: all .3s var(--hv2-ease);
    box-shadow: var(--hv2-shadow-sm);
}
.hv2-store::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, #6366f1, #8b5cf6, #ec4899);
    opacity: 0;
    transition: opacity .3s;
}
.hv2-store:hover {
    transform: translateY(-6px);
    box-shadow: var(--hv2-shadow-lg);
    border-color: rgba(99,102,241,.15);
}
.hv2-store:hover::before { opacity: 1; }
.hv2-store-logo {
    width: 72px; height: 72px;
    margin: 0 auto 16px;
    border-radius: 50%;
    overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    color: #fff;
    font-size: 26px;
    font-weight: 800;
    box-shadow: 0 12px 28px -10px rgba(99,102,241,.5);
    border: 4px solid #fff;
}
.hv2-store-logo img { width: 100%; height: 100%; object-fit: cover; }
.hv2-store-name {
    font-size: 15px;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hv2-store-meta {
    display: flex;
    justify-content: center;
    gap: 12px;
    font-size: 12px;
    color: #64748b;
}
.hv2-store-meta > span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* ============================================================
   ⑦ 商品分类
   ============================================================ */
.hv2-cats-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
}
.hv2-cat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 24px 12px;
    background: #fff;
    border-radius: var(--hv2-radius-sm);
    border: 1px solid #f1f5f9;
    text-decoration: none;
    color: inherit;
    text-align: center;
    transition: all .25s var(--hv2-ease);
    box-shadow: var(--hv2-shadow-xs);
}
.hv2-cat:hover {
    transform: translateY(-4px);
    border-color: rgba(99,102,241,.25);
    box-shadow: 0 12px 28px -10px rgba(99,102,241,.25);
}
.hv2-cat-icon {
    width: 56px; height: 56px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 16px;
    background: linear-gradient(135deg, #eef2ff 0%, #e0e7ff 100%);
    color: #6366f1;
    transition: all .25s;
}
.hv2-cat:hover .hv2-cat-icon {
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    color: #fff;
    box-shadow: 0 12px 24px -8px rgba(99,102,241,.5);
}
.hv2-cat b {
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
}

/* ============================================================
   ⑧ 限时特惠
   ============================================================ */
.hv2-flash {
    background: linear-gradient(135deg, #1e1b4b 0%, #4c1d95 100%);
    border-radius: 28px;
    padding: 40px;
    position: relative;
    overflow: hidden;
    max-width: 1280px;
    margin: 0 auto 60px;
    width: calc(100% - 64px);
    box-sizing: border-box;
}
.hv2-flash::before {
    content: '';
    position: absolute;
    top: -100px; right: -80px;
    width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(236,72,153,.4) 0%, transparent 65%);
    pointer-events: none;
}
.hv2-flash-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 28px;
    position: relative;
    z-index: 1;
}
.hv2-flash-title-wrap {
    display: flex;
    align-items: center;
    gap: 16px;
}
.hv2-flash-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: linear-gradient(135deg, #f43f5e, #ec4899);
    color: #fff;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 1px;
    box-shadow: 0 8px 20px -8px rgba(244,63,94,.6);
}
.hv2-flash-title {
    font-size: 28px;
    font-weight: 900;
    color: #fff;
    letter-spacing: -1px;
    margin: 0;
}
.hv2-countdown {
    display: flex;
    align-items: center;
    gap: 6px;
}
.hv2-countdown-num {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 8px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 12px;
    font-size: 20px;
    font-weight: 800;
    color: #fff;
    font-variant-numeric: tabular-nums;
    letter-spacing: .5px;
}
.hv2-countdown-sep {
    color: rgba(255,255,255,.5);
    font-size: 20px;
    font-weight: 800;
}
.hv2-flash-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    position: relative;
    z-index: 1;
}
.hv2-flash-card {
    display: block;
    background: rgba(255,255,255,.96);
    border-radius: 18px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: all .25s var(--hv2-ease);
}
.hv2-flash-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 48px -12px rgba(0,0,0,.4);
}
.hv2-flash-img {
    aspect-ratio: 1/1;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.hv2-flash-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .5s var(--hv2-ease);
}
.hv2-flash-card:hover .hv2-flash-img img { transform: scale(1.08); }
.hv2-flash-info { padding: 16px 16px 18px; }
.hv2-flash-name {
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 10px;
}
.hv2-flash-price-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 6px;
}
.hv2-flash-price {
    font-size: 20px;
    font-weight: 900;
    color: #ef4444;
    letter-spacing: -.5px;
}
.hv2-flash-price-old {
    font-size: 13px;
    color: #94a3b8;
    text-decoration: line-through;
}
.hv2-flash-stock {
    font-size: 11.5px;
    color: #f59e0b;
    font-weight: 700;
}

/* ============================================================
   ⑨ 热销榜
   ============================================================ */
.hv2-rank {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
}
.hv2-rank-card {
    display: block;
    padding: 20px;
    background: #fff;
    border-radius: var(--hv2-radius-sm);
    border: 1px solid #f1f5f9;
    text-decoration: none;
    color: inherit;
    position: relative;
    text-align: center;
    transition: all .25s var(--hv2-ease);
    box-shadow: var(--hv2-shadow-sm);
}
.hv2-rank-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--hv2-shadow-lg);
    border-color: rgba(99,102,241,.15);
}
.hv2-rank-num {
    position: absolute;
    top: -10px; left: 12px;
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 900;
    color: #fff;
    background: #cbd5e1;
    box-shadow: 0 6px 14px -4px rgba(0,0,0,.2);
}
.hv2-rank-card:nth-child(1) .hv2-rank-num {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    box-shadow: 0 6px 14px -4px rgba(251,191,36,.6);
}
.hv2-rank-card:nth-child(2) .hv2-rank-num {
    background: linear-gradient(135deg, #cbd5e1, #94a3b8);
    box-shadow: 0 6px 14px -4px rgba(148,163,184,.5);
}
.hv2-rank-card:nth-child(3) .hv2-rank-num {
    background: linear-gradient(135deg, #cd7f32, #a5652a);
    box-shadow: 0 6px 14px -4px rgba(165,101,42,.5);
}
.hv2-rank-img {
    aspect-ratio: 1/1;
    margin: 16px 0 14px;
    background: #f8fafc;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hv2-rank-img img { width: 100%; height: 100%; object-fit: cover; }
.hv2-rank-name {
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 6px;
}
.hv2-rank-price {
    font-size: 15px;
    font-weight: 900;
    color: #ef4444;
}

/* ============================================================
   ⑩ 商品网格
   ============================================================ */
.hv2-products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}
.hv2-product {
    display: block;
    background: #fff;
    border-radius: var(--hv2-radius-sm);
    overflow: hidden;
    border: 1px solid #f1f5f9;
    text-decoration: none;
    color: inherit;
    transition: all .3s var(--hv2-ease);
    box-shadow: var(--hv2-shadow-sm);
}
.hv2-product:hover {
    transform: translateY(-6px);
    box-shadow: var(--hv2-shadow-lg);
    border-color: rgba(99,102,241,.15);
}
.hv2-product-img {
    aspect-ratio: 1/1;
    background: #f8fafc;
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hv2-product-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .5s var(--hv2-ease);
}
.hv2-product:hover .hv2-product-img img { transform: scale(1.08); }
.hv2-product-info { padding: 16px; }
.hv2-product-name {
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 40px;
    margin-bottom: 10px;
}
.hv2-product-foot {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.hv2-product-price {
    font-size: 18px;
    font-weight: 900;
    color: #ef4444;
    letter-spacing: -.5px;
}
.hv2-product-sales {
    font-size: 12px;
    color: #94a3b8;
}

/* ============================================================
   ⑪ 品牌墙
   ============================================================ */
.hv2-brands {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
}
.hv2-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 24px 12px;
    background: #fff;
    border-radius: var(--hv2-radius-sm);
    border: 1px solid #f1f5f9;
    text-decoration: none;
    color: inherit;
    transition: all .3s var(--hv2-ease);
    box-shadow: var(--hv2-shadow-xs);
}
.hv2-brand:hover {
    transform: translateY(-6px);
    box-shadow: var(--hv2-shadow-lg);
    border-color: rgba(99,102,241,.15);
}
.hv2-brand-badge {
    width: 68px; height: 68px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: #fff;
    font-size: 26px;
    font-weight: 800;
    border: 4px solid #fff;
    box-shadow: 0 8px 20px -8px rgba(17,24,39,.2);
}
.hv2-brand-badge img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.hv2-brand-name {
    font-size: 13px;
    font-weight: 700;
    color: #334155;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* ============================================================
   ⑫ 用户评价
   ============================================================ */
.hv2-reviews {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.hv2-review {
    padding: 28px;
    background: #fff;
    border-radius: var(--hv2-radius);
    border: 1px solid #f1f5f9;
    box-shadow: var(--hv2-shadow-sm);
    position: relative;
    transition: all .3s var(--hv2-ease);
}
.hv2-review:hover {
    transform: translateY(-4px);
    box-shadow: var(--hv2-shadow-lg);
}
.hv2-review::before {
    content: '"';
    position: absolute;
    top: 12px;
    right: 24px;
    font-size: 80px;
    line-height: 1;
    color: #e0e7ff;
    font-family: Georgia, serif;
    font-weight: 900;
    pointer-events: none;
}
.hv2-review-stars {
    color: #fbbf24;
    font-size: 15px;
    letter-spacing: 2px;
    margin-bottom: 16px;
}
.hv2-review-text {
    font-size: 14.5px;
    line-height: 1.75;
    color: #475569;
    margin: 0 0 22px;
    position: relative;
    z-index: 1;
}
.hv2-review-user {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 18px;
    border-top: 1px solid #f1f5f9;
    position: relative;
    z-index: 1;
}
.hv2-review-avatar {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 17px;
    font-weight: 800;
    flex: 0 0 auto;
}
.hv2-review-info b {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
}
.hv2-review-info span {
    display: block;
    font-size: 12px;
    color: #94a3b8;
    margin-top: 2px;
}

/* ============================================================
   ⑬ Newsletter
   ============================================================ */
.hv2-newsletter {
    max-width: 1280px;
    margin: 0 auto 60px;
    padding: 56px 48px;
    border-radius: 28px;
    background: linear-gradient(135deg, #1e1b4b 0%, #4c1d95 50%, #6b21a8 100%);
    color: #fff;
    position: relative;
    overflow: hidden;
    width: calc(100% - 64px);
    box-sizing: border-box;
    text-align: center;
}
.hv2-newsletter::before {
    content: '';
    position: absolute;
    top: -100px; right: -100px;
    width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(236,72,153,.35) 0%, transparent 60%);
    pointer-events: none;
}
.hv2-newsletter::after {
    content: '';
    position: absolute;
    bottom: -120px; left: -80px;
    width: 320px; height: 320px;
    background: radial-gradient(circle, rgba(6,182,212,.25) 0%, transparent 60%);
    pointer-events: none;
}
.hv2-newsletter h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 12px;
    letter-spacing: -1px;
    position: relative;
    z-index: 1;
}
.hv2-newsletter p {
    font-size: 15px;
    color: rgba(255,255,255,.72);
    margin: 0 0 32px;
    position: relative;
    z-index: 1;
}
.hv2-newsletter-form {
    display: flex;
    gap: 10px;
    max-width: 520px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.hv2-newsletter-form input {
    flex: 1;
    height: 52px;
    padding: 0 24px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    color: #fff;
    font-size: 14.5px;
    outline: none;
    transition: all .2s;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-sizing: border-box;
}
.hv2-newsletter-form input::placeholder { color: rgba(255,255,255,.5); }
.hv2-newsletter-form input:focus {
    background: rgba(255,255,255,.14);
    border-color: rgba(139,92,246,.5);
    box-shadow: 0 0 0 4px rgba(139,92,246,.15);
}
.hv2-newsletter-form button {
    height: 52px;
    padding: 0 36px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #fff, #f5f3ff);
    color: #6366f1;
    font-size: 14.5px;
    font-weight: 800;
    cursor: pointer;
    transition: all .2s;
    box-shadow: 0 12px 28px -10px rgba(255,255,255,.3);
}
.hv2-newsletter-form button:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px -10px rgba(255,255,255,.4);
}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width: 1100px) {
    .hv2-hero-inner { grid-template-columns: 1fr; gap: 40px; }
    .hv2-hero-visual { justify-content: flex-start; }
    .hv2-hero-card { transform: none; max-width: 100%; }
    .hv2-hero-card:hover { transform: translateY(-4px); }
    .hv2-stores-grid { grid-template-columns: repeat(3, 1fr); }
    .hv2-cats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .hv2-flash-grid { grid-template-columns: repeat(3, 1fr); }
    .hv2-rank { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .hv2-products { grid-template-columns: repeat(3, 1fr); }
    .hv2-brands { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .hv2-reviews { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .hv2-wrap, .hv2-section, .hv2-features-inner { padding-left: 20px; padding-right: 20px; }
    .hv2-hero { padding: 60px 0 80px; }
    .hv2-hero-inner { padding: 0 20px; }
    .hv2-hero-title { font-size: 40px; letter-spacing: -1.5px; }
    .hv2-hero-stats { gap: 32px; }
    .hv2-stat b { font-size: 28px; }
    .hv2-section-title { font-size: 22px; }
    .hv2-flash, .hv2-newsletter { width: calc(100% - 40px); padding: 28px; }
    .hv2-flash-grid { grid-template-columns: repeat(2, 1fr); }
    .hv2-stores-grid { grid-template-columns: repeat(2, 1fr); }
    .hv2-products { grid-template-columns: repeat(2, 1fr); }
    .hv2-rank { grid-template-columns: repeat(2, 1fr); }
    .hv2-cats-grid { grid-template-columns: repeat(3, 1fr); }
    .hv2-brands { grid-template-columns: repeat(3, 1fr); }
    .hv2-reviews { grid-template-columns: 1fr; }
    .hv2-features-inner { grid-template-columns: repeat(2, 1fr); }
    .hv2-newsletter-form { flex-direction: column; }
    .hv2-newsletter-form button { width: 100%; }
}

/* ============================================================
   公告跑马灯（>30 字自动滚动）
   ============================================================ */
.hv2-announce-text {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
}
.hv2-announce-text > span {
    display: inline-block;
    white-space: nowrap;
}
/* 长文本触发滚动（JS 判断后加 class） */
.hv2-announce-text.is-marquee > span {
    padding-left: 100%;
    animation: hv2Marquee 32s linear infinite;
}
.hv2-announce-text.is-marquee:hover > span {
    animation-play-state: paused;
}
@keyframes hv2Marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}

/* 公告跑马灯 · 速度优化 */
.hv2-announce-text.is-marquee > span {
    animation-duration: 20s !important;
}
.hv2-announce-text.is-marquee::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0; right: 0;
    width: 40px;
    background: linear-gradient(90deg, transparent, rgba(254,243,199,.95));
    pointer-events: none;
}

/* ============================================================
   Hero 高度压缩 · 520px
   ============================================================ */
.hv2-hero {
    padding: 56px 0 72px !important;
    min-height: 520px;
    display: flex;
    align-items: center;
}
.hv2-hero-inner {
    width: 100%;
}
.hv2-hero-tag {
    margin-bottom: 20px !important;
}
.hv2-hero-title {
    font-size: 52px !important;
    margin-bottom: 16px !important;
}
.hv2-hero-sub {
    font-size: 16px !important;
    margin-bottom: 28px !important;
}
.hv2-hero-search {
    margin-bottom: 28px !important;
}
.hv2-hero-card {
    padding: 28px 26px !important;
}
.hv2-hero-card-icon {
    width: 60px !important;
    height: 60px !important;
    margin-bottom: 18px !important;
}
.hv2-hero-card-title {
    font-size: 20px !important;
}
.hv2-hero-card-sub {
    margin-bottom: 18px !important;
}

/* 特色服务上浮距离相应调整 */
.hv2-features {
    margin-top: -44px !important;
}

/* 小屏 */
@media (max-width: 768px) {
    .hv2-hero {
        padding: 40px 0 60px !important;
        min-height: auto;
    }
    .hv2-hero-title {
        font-size: 36px !important;
    }
}

/* ============================================================
   Hero 元素放大 · 保持 520px 高度
   ============================================================ */

/* 顶部标签：大一圈 */
.hv2-hero-tag {
    padding: 10px 22px !important;
    font-size: 13px !important;
    letter-spacing: 2px !important;
    margin-bottom: 24px !important;
}
.hv2-hero-tag-dot {
    width: 8px !important;
    height: 8px !important;
}

/* 主标题：52 → 62px */
.hv2-hero-title {
    font-size: 62px !important;
    letter-spacing: -2px !important;
    line-height: 1.05 !important;
    margin-bottom: 22px !important;
}

/* 副标题：16 → 18px */
.hv2-hero-sub {
    font-size: 18px !important;
    line-height: 1.75 !important;
    margin-bottom: 32px !important;
}

/* 搜索框：整体放大 */
.hv2-hero-search {
    padding: 10px 10px 10px 26px !important;
    margin-bottom: 36px !important;
}
.hv2-hero-search-icon svg {
    width: 22px !important;
    height: 22px !important;
}
.hv2-hero-search input {
    height: 52px !important;
    font-size: 16px !important;
}
.hv2-hero-search button {
    height: 52px !important;
    padding: 0 36px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

/* 数据：数值更大 */
.hv2-stat b {
    font-size: 44px !important;
    letter-spacing: -2px !important;
}
.hv2-stat > span {
    font-size: 28px !important;
}
.hv2-stat em {
    font-size: 13.5px !important;
    margin-top: 8px !important;
}
.hv2-hero-stats {
    gap: 64px !important;
}

/* 右侧 3D 卡片稍微放大 */
.hv2-hero-card {
    padding: 32px 30px !important;
    max-width: 440px !important;
}
.hv2-hero-card-icon {
    width: 68px !important;
    height: 68px !important;
    margin-bottom: 20px !important;
}
.hv2-hero-card-icon svg {
    width: 40px !important;
    height: 40px !important;
}
.hv2-hero-card-title {
    font-size: 22px !important;
    margin-bottom: 12px !important;
}
.hv2-hero-card-sub {
    font-size: 14.5px !important;
    margin-bottom: 20px !important;
}
.hv2-hero-card-tags > span {
    padding: 7px 18px !important;
    font-size: 12.5px !important;
}

/* 小屏适配：保持可读性 */
@media (max-width: 1100px) {
    .hv2-hero-title { font-size: 48px !important; }
    .hv2-hero-sub   { font-size: 16px !important; }
    .hv2-hero-stats { gap: 40px !important; }
    .hv2-stat b     { font-size: 34px !important; }
    .hv2-stat > span { font-size: 22px !important; }
}
@media (max-width: 768px) {
    .hv2-hero-title { font-size: 38px !important; }
    .hv2-hero-sub   { font-size: 15px !important; }
    .hv2-hero-search input { height: 46px !important; font-size: 14.5px !important; }
    .hv2-hero-search button { height: 46px !important; padding: 0 26px !important; font-size: 14px !important; }
}

/* ============================================================
   右侧 3D 卡片 · 整体放大
   ============================================================ */
.hv2-hero-card {
    max-width: 520px !important;
    padding: 42px 40px !important;
    border-radius: 32px !important;
}
.hv2-hero-card-icon {
    width: 84px !important;
    height: 84px !important;
    border-radius: 24px !important;
    margin-bottom: 28px !important;
}
.hv2-hero-card-icon svg {
    width: 48px !important;
    height: 48px !important;
}
.hv2-hero-card-title {
    font-size: 28px !important;
    margin-bottom: 14px !important;
    letter-spacing: -.6px !important;
}
.hv2-hero-card-sub {
    font-size: 16px !important;
    line-height: 1.75 !important;
    margin-bottom: 26px !important;
}
.hv2-hero-card-tags {
    gap: 10px !important;
}
.hv2-hero-card-tags > span {
    padding: 9px 22px !important;
    font-size: 14px !important;
    border-radius: 999px !important;
}

/* Hero 网格比例调整，让右侧有更多空间 */
.hv2-hero-inner {
    grid-template-columns: 1.05fr 1fr !important;
    gap: 50px !important;
}

/* 小屏自适应 */
@media (max-width: 1100px) {
    .hv2-hero-card {
        max-width: 100% !important;
        padding: 32px 28px !important;
    }
    .hv2-hero-card-icon {
        width: 68px !important;
        height: 68px !important;
    }
    .hv2-hero-card-icon svg {
        width: 38px !important;
        height: 38px !important;
    }
    .hv2-hero-card-title { font-size: 22px !important; }
    .hv2-hero-card-sub   { font-size: 14.5px !important; }
    .hv2-hero-card-tags > span { padding: 7px 16px !important; font-size: 12.5px !important; }
}

/* ==========================================================
   首页公告（新位置 · 优惠券上方 · 紫渐变卡片）· 2026-09-28
   ========================================================== */
.hv2-announce-wrap {
    max-width: 1280px;
    margin: 40px auto 0;
    padding: 0 32px;
}

.hv2-announce-wrap .hv2-announce {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 14px 22px !important;
    background: linear-gradient(135deg,
        rgba(139,92,246,.08) 0%,
        rgba(99,102,241,.06) 50%,
        rgba(103,232,249,.05) 100%) !important;
    border: 1px solid rgba(139,92,246,.18) !important;
    border-radius: 16px !important;
    box-shadow:
        0 4px 20px -6px rgba(139,92,246,.15),
        inset 0 1px 0 rgba(255,255,255,.5) !important;
    position: relative;
    overflow: hidden;
    transition: all .3s ease;
}

.hv2-announce-wrap .hv2-announce::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 60%;
    background: linear-gradient(180deg, #8b5cf6, #6366f1, #67e8f9);
    border-radius: 0 4px 4px 0;
    box-shadow: 0 0 12px rgba(139,92,246,.5);
}

.hv2-announce-wrap .hv2-announce:hover {
    border-color: rgba(139,92,246,.35) !important;
    box-shadow:
        0 8px 28px -8px rgba(139,92,246,.3),
        inset 0 1px 0 rgba(255,255,255,.5) !important;
    transform: translateY(-2px);
}

.hv2-announce-icon {
    font-size: 20px !important;
    flex-shrink: 0;
    animation: hv2AnnShake 2.5s ease-in-out infinite;
}
@keyframes hv2AnnShake {
    0%, 88%, 100% { transform: rotate(0deg); }
    92%           { transform: rotate(-12deg); }
    96%           { transform: rotate(12deg); }
}

.hv2-announce-wrap .hv2-announce-dot { display: none !important; }
.hv2-announce-wrap .hv2-announce-inner {
    padding: 0 !important;
    max-width: none !important;
    background: none !important;
    border: none !important;
    flex: 1 !important;
    min-width: 0 !important;
}

.hv2-announce-wrap .hv2-announce-text {
    font-size: 13.5px !important;
    font-weight: 600 !important;
    color: #5b21b6 !important;
    line-height: 1.5 !important;
    letter-spacing: .2px;
}
.hv2-announce-wrap .hv2-announce-text > span { color: #5b21b6 !important; }
.hv2-announce-wrap .hv2-announce-text.is-marquee > span { color: #5b21b6 !important; }

@media (max-width: 768px) {
    .hv2-announce-wrap { margin: 24px auto 0; padding: 0 16px; }
    .hv2-announce-wrap .hv2-announce { padding: 12px 16px !important; border-radius: 12px !important; }
    .hv2-announce-wrap .hv2-announce-text { font-size: 12.5px !important; }
}

/* ==========================================================
   公告卡片排版修正 · 2026-09-28 · v2
   ========================================================== */

/* 外层容器：让卡片占满宽度，只留正常边距 */
.hv2-announce-wrap {
    max-width: 1280px !important;
    margin: 36px auto 0 !important;
    padding: 0 32px !important;
    display: block !important;
}

/* 卡片本体 */
.hv2-announce-wrap .hv2-announce {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 14px 22px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* 关键：内部 inner 不要居中、不要 max-width */
.hv2-announce-wrap .hv2-announce-inner {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
}

/* 文字块：左对齐 */
.hv2-announce-wrap .hv2-announce-text {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 13.5px !important;
    color: #5b21b6 !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

/* 公告和下方优惠券之间的距离压缩 */
.hv2-announce-wrap + section,
.hv2-announce-wrap + .hv2-section,
.hv2-announce-wrap + div {
    margin-top: 20px !important;
}

/* 小屏适配 */
@media (max-width: 768px) {
    .hv2-announce-wrap {
        margin: 20px auto 0 !important;
        padding: 0 16px !important;
    }
    .hv2-announce-wrap .hv2-announce {
        padding: 12px 14px !important;
    }
    .hv2-announce-wrap .hv2-announce-text {
        font-size: 12.5px !important;
        white-space: normal !important;
    }
}

/* ==========================================================
   公告文字改黑色 · 2026-09-28 · v3
   ========================================================== */
.hv2-announce-wrap .hv2-announce-text,
.hv2-announce-wrap .hv2-announce-text > span,
.hv2-announce-wrap .hv2-announce-text.is-marquee > span {
    color: #111827 !important;
    font-weight: 600 !important;
}

/* 保持 emoji 和图标原色 */
.hv2-announce-icon {
    color: initial !important;
}

/* ==========================================================
   公告卡片上下间距统一 · 2026-09-28 · v4
   ========================================================== */

/* 公告容器：上下各 28px，左右保持 */
.hv2-announce-wrap {
    margin: 28px auto !important;
    padding: 0 32px !important;
}

/* 清除后续 section 可能自带的额外间距 */
.hv2-announce-wrap + section,
.hv2-announce-wrap + .hv2-section,
.hv2-announce-wrap + div,
.hv2-announce-wrap + div.section {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

@media (max-width: 768px) {
    .hv2-announce-wrap {
        margin: 18px auto !important;
        padding: 0 16px !important;
    }
}


/* 中等屏幕：热销榜 4 列 */
@media (max-width: 1024px) {
    .hv2-rank { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* 热销榜硬约束：防止内容撑开 */
.hv2-rank .hv2-rank-card { min-width: 0; }
.hv2-rank .hv2-rank-img { min-width: 0; max-width: 100%; }
.hv2-rank .hv2-rank-name,
.hv2-rank .hv2-rank-shop { min-width: 0; }


/* ══════════ 公告 · 午夜黑金 v5（10-01） ══════════ */
.hv2-announce-wrap .hv2-announce{
  background:linear-gradient(180deg,#0a0a1f 0%,#0d0d2b 60%,#141432 100%)!important;
  border:1px solid rgba(251,191,36,.15)!important;
  border-radius:16px!important;
  box-shadow:0 12px 32px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.06)!important;
  padding:14px 22px!important}
.hv2-announce-wrap .hv2-announce::before{
  background:linear-gradient(180deg,#fbbf24,#f59e0b)!important;
  box-shadow:0 0 12px rgba(251,191,36,.6)!important;
  height:60%!important;width:4px!important}
.hv2-announce-wrap .hv2-announce:hover{
  border-color:rgba(251,191,36,.35)!important;
  box-shadow:0 16px 40px rgba(0,0,0,.5),0 4px 20px rgba(251,191,36,.15),inset 0 1px 0 rgba(255,255,255,.08)!important;
  transform:translateY(-2px)!important}

.hv2-announce-wrap .hv2-announce-text,
.hv2-announce-wrap .hv2-announce-text > span,
.hv2-announce-wrap .hv2-announce-text.is-marquee > span{
  color:rgba(255,255,255,.85)!important;
  font-weight:600!important}
.hv2-announce-wrap .hv2-announce-text::before{
  color:#fbbf24!important}

.hv2-announce-icon{
  color:initial!important;
  filter:drop-shadow(0 0 8px rgba(251,191,36,.3))!important}
/* ══════════ 公告 · 白金轻奢 v5（10-01） ══════════ */
.hv2-announce-wrap .hv2-announce{
  background:linear-gradient(135deg,#ffffff 0%,#fefcf7 100%)!important;
  border:1px solid rgba(15,23,42,.07)!important;
  border-radius:14px!important;
  box-shadow:0 8px 24px rgba(15,23,42,.06),inset 0 1px 0 rgba(255,255,255,1)!important;
  padding:14px 22px!important}
.hv2-announce-wrap .hv2-announce::before{
  background:linear-gradient(180deg,#fbbf24,#f59e0b)!important;
  box-shadow:0 0 10px rgba(251,191,36,.5)!important;
  height:60%!important;width:4px!important}
.hv2-announce-wrap .hv2-announce:hover{
  border-color:rgba(251,191,36,.4)!important;
  box-shadow:0 12px 32px rgba(15,23,42,.1),0 4px 16px rgba(251,191,36,.15),inset 0 1px 0 rgba(255,255,255,1)!important;
  transform:translateY(-2px)!important}

.hv2-announce-wrap .hv2-announce-text,
.hv2-announce-wrap .hv2-announce-text > span,
.hv2-announce-wrap .hv2-announce-text.is-marquee > span{
  color:#1e293b!important;
  font-weight:600!important}

.hv2-announce-icon{
  color:initial!important;
  filter:none!important}
/* ══════════ Newsletter 订阅 · 午夜黑金全宽 v2（10-02） ══════════ */
.hv2-newsletter{
  max-width:100%!important;
  width:100%!important;
  margin:60px 0!important;
  padding:64px 32px!important;
  border-radius:0!important;
  background:linear-gradient(180deg,#0a0a1f 0%,#0d0d2b 45%,#141432 100%)!important;
  border-top:1px solid rgba(251,191,36,.18)!important;
  border-bottom:1px solid rgba(251,191,36,.18)!important;
  position:relative!important;
  overflow:hidden!important}
.hv2-newsletter::before{
  content:''!important;
  position:absolute!important;
  top:-200px!important;left:50%!important;right:auto!important;
  transform:translateX(-50%)!important;
  width:600px!important;height:600px!important;
  background:radial-gradient(circle,rgba(251,191,36,.18),transparent 70%)!important;
  filter:blur(80px)!important;
  border-radius:50%!important;
  pointer-events:none!important}
.hv2-newsletter::after{display:none!important}

.hv2-newsletter h2{
  background:linear-gradient(110deg,#ffffff 0%,#f8fafc 40%,#fbbf24 90%)!important;
  -webkit-background-clip:text!important;background-clip:text!important;
  color:transparent!important;-webkit-text-fill-color:transparent!important;
  filter:drop-shadow(0 4px 20px rgba(251,191,36,.15))!important;
  font-size:36px!important;letter-spacing:-.8px!important;
  position:relative!important;z-index:1!important}

.hv2-newsletter p{
  color:rgba(255,255,255,.65)!important;
  font-weight:400!important;
  position:relative!important;z-index:1!important}

.hv2-newsletter-form{position:relative!important;z-index:1!important}

.hv2-newsletter-form input{
  background:rgba(255,255,255,.06)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:#fff!important;
  backdrop-filter:blur(20px)!important}
.hv2-newsletter-form input::placeholder{color:rgba(255,255,255,.4)!important}
.hv2-newsletter-form input:focus{
  background:rgba(255,255,255,.09)!important;
  border-color:rgba(251,191,36,.5)!important;
  box-shadow:0 0 0 4px rgba(251,191,36,.12)!important}

.hv2-newsletter-form button{
  background:linear-gradient(135deg,#fbbf24 0%,#f59e0b 100%)!important;
  color:#0a0a1f!important;
  box-shadow:0 12px 28px rgba(251,191,36,.35),0 4px 12px rgba(251,191,36,.2)!important}
.hv2-newsletter-form button:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 16px 40px rgba(251,191,36,.5),0 6px 16px rgba(251,191,36,.3)!important}

@media(max-width:768px){
  .hv2-newsletter{
    padding:44px 20px!important;
    margin:36px 0!important}
  .hv2-newsletter h2{font-size:24px!important}
  .hv2-newsletter p{font-size:13.5px!important}
}