/* ============================================================
   中国电信宽带 - 全国总站模板样式
   纯手写 | 无依赖 | 响应式 | WCAG AA 合规
   主背景: #FFFFFF | 品牌色: #0052d9
   ============================================================ */

/* ===== Theme Tokens (CSS Variables) ===== */
:root {
  /* Brand Primary */
  --nb-primary: #0052d9;
  --nb-primary-dark: #003D9C;
  --nb-primary-light: #1A6FE0;
  --nb-primary-deep: #002A6E;
  --nb-primary-deepest: #001845;

  /* Accent Colors */
  --nb-accent-gold: #FFD700;
  --nb-accent-gold-light: #FFE082;
  --nb-accent-red: #E8330C;
  --nb-accent-red-dark: #C41E00;
  --nb-accent-green: #0A8B4F;
  --nb-accent-green-light: #36B37E;
  --nb-accent-orange: #FF6B35;
  --nb-accent-amber: #F59E0B;

  /* Neutrals */
  --nb-white: #FFFFFF;
  --nb-text-primary: #1A1A1A;
  --nb-text-secondary: #4A4A4A;
  --nb-text-muted: #808080;
  --nb-text-light: #9CA3AF;
  --nb-text-on-dark: #B3C4E0;
  --nb-bg-light: #F5F7FA;
  --nb-bg-blue: #EBF1FF;
  --nb-bg-warm: #FFF8F0;
  --nb-bg-page: #FFFFFF;
  --nb-bg-form: #F9FAFB;

  /* Borders */
  --nb-border: #E5E5E5;
  --nb-border-light: #D1D5DB;
  --nb-border-lighter: #F0F0F0;
  --nb-border-input: #D1D5DB;
  --nb-border-card: #E5E5E5;
  --nb-border-form: #D1D5DB;

  /* Shadows */
  --nb-shadow-card: 0 2px 8px rgba(0, 0, 0, 0.06);
  --nb-shadow-elevated: 0 12px 36px rgba(0, 82, 217, 0.12);
  --nb-shadow-modal: 0 16px 48px rgba(0, 0, 0, 0.2);

  /* Footer */
  --nb-footer-bg: #001A40;
  --nb-footer-text: #B3C4E0;
  --nb-footer-text-muted: #6B7F9E;

  /* Spacing Scale (4px base) */
  --nb-space-1: 0.25rem;
  --nb-space-2: 0.5rem;
  --nb-space-3: 0.75rem;
  --nb-space-4: 1rem;
  --nb-space-5: 1.25rem;
  --nb-space-6: 1.5rem;
  --nb-space-8: 2rem;
  --nb-space-10: 2.5rem;
  --nb-space-12: 3rem;
  --nb-space-14: 3.5rem;
  --nb-space-16: 4rem;
  --nb-space-20: 5rem;

  /* Border Radius */
  --nb-radius-sm: 6px;
  --nb-radius-md: 8px;
  --nb-radius-lg: 12px;
  --nb-radius-xl: 16px;
  --nb-radius-2xl: 20px;
  --nb-radius-full: 50px;

  /* Font Size Scale */
  --nb-font-xs: 0.75rem;
  --nb-font-sm: 0.8125rem;
  --nb-font-base: 1rem;
  --nb-font-md: 1.0625rem;
  --nb-font-lg: 1.125rem;
  --nb-font-xl: 1.25rem;
  --nb-font-2xl: 1.5rem;
  --nb-font-3xl: 1.75rem;
  --nb-font-4xl: 2rem;
  --nb-font-5xl: 2.5rem;

  /* Transitions */
  --nb-transition: 0.2s ease;
  --nb-transition-slow: 0.3s ease;

  /* CTA Section — unified final CTA bar for all pages */
  --nb-cta-bg: linear-gradient(135deg, var(--nb-primary-dark), var(--nb-primary-light));
  --nb-cta-text: #FFFFFF;
  --nb-cta-accent: var(--nb-accent-gold);
}
/* ===== End Theme Tokens ===== */

/* ===== CSS Reset ===== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--nb-text-primary);
    background: var(--nb-bg-page);
    overflow-x: hidden;
    overflow-wrap: break-word;
    word-break: break-word;
}
article, aside, details, figcaption, figure, footer, header, main, nav, section { display: block; }
img { max-width: 100%; height: auto; border: 0; }
a { color: var(--nb-primary); text-decoration: none; transition: color 0.2s ease; }
a:hover { color: var(--nb-primary-dark); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid var(--nb-primary);
    outline-offset: 2px;
}
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, select, textarea { font-family: inherit; font-size: inherit; }
table { border-collapse: collapse; width: 100%; }
hr { border: none; border-top: 1px solid var(--nb-border); }

/* ===== Accessibility Utilities ===== */
.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link {
    position: absolute; top: -100px; left: 0; background: var(--nb-primary); color: var(--nb-white);
    padding: 0.625rem 1.25rem; z-index: 10000; font-weight: 700; border-radius: 0 0 4px 0;
}
.skip-link:focus { top: 0; color: var(--nb-white); text-decoration: none; }

/* ===== Layout Container ===== */
.nb-container { max-width: 1200px; margin: 0 auto; padding: 0 1rem; overflow: visible; }
.nb-container-sm { max-width: 800px; margin: 0 auto; padding: 0 1rem; }
.nb-section { padding: 3.5rem 0; overflow: clip; }
/* Consecutive sections: moderate gap to maintain visual separation */
.nb-section + .nb-section { padding-top: 2rem; }
/* Same-blue consecutive sections: visual separator to prevent merging */
.nb-section.bg-blue + .nb-section.bg-blue { padding-top: 3rem; border-top: 1px solid rgba(0,82,217,.1); }
.nb-section-alt { background: var(--nb-bg-light); }
/* Visual rhythm: consecutive plain sections get alternating white/light backgrounds */
.nb-section:not(.bg-blue):not(.bg-blue-gradient)+.nb-section:not(.bg-blue):not(.bg-blue-gradient) { background: var(--nb-bg-light); }
/* bg-blue shorthand — used on nb-section for blue background sections */
.nb-section.bg-blue { background: var(--nb-bg-blue); }
.nb-section-condensed { padding: 2rem 0; }
.nb-section-condensed + .nb-section-condensed { padding-top: 0.5rem; }
#nb-main-content { overflow-x: hidden; }

/* ===== Typography ===== */
.nb-section-title {
    font-size: var(--nb-font-3xl); font-weight: 700; color: var(--nb-text-primary); text-align: center;
    margin-bottom: 0.5rem; letter-spacing: 0.5px;
}
.nb-section-subtitle {
    font-size: var(--nb-font-base); color: var(--nb-text-secondary); text-align: center; margin-bottom: 2.5rem;
}
.nb-section-title::after {
    content: ''; display: block; width: 50px; height: 3px; background: var(--nb-primary);
    margin: 0.75rem auto 0; border-radius: 2px;
}
/* Left-aligned variant — for split-layout cards (e.g. join page process/apply blocks) */
.nb-section-title--left { text-align: left; }
.nb-section-title--left::after { margin-left: 0; }
/* Dark-on-blue variant — used when section has nb-bg-blue background */
.nb-section.bg-blue .nb-section-title,
.nb-section.bg-blue .nb-section-subtitle { color: var(--nb-primary-dark); }
/* bg-blue → white gradient variant — for section transitions where blue fades out */
.nb-section.bg-blue-gradient { background: linear-gradient(180deg, var(--nb-bg-blue) 0%, #FFFFFF 100%); }
/* Generic footnote/disclaimer line at section bottom */
.nb-section-note { text-align: center; margin-top: 2rem; font-size: 0.875rem; color: var(--nb-text-secondary); opacity: 0.85; }

/* ===== Global Card Depth — subtle shadows on all white cards ===== */
.nb-bk-why-card,
.nb-bk-plan-card,
.nb-au-dash-card,
.nb-au-value-card,
.nb-au-tech-card,
.nb-au-ms-card,
.nb-sv-guarantee-card,
.nb-sv-self-card,
.nb-cu-contact-card,
.nb-cu-social-card,
.nb-ct-hot-card,
.nb-ct-city-card,
.nb-fq-quick-card,
.nb-gd-step-card,
.nb-gd-check-item,
.nb-hp-tutorial-card,
.nb-hp-trouble-card,
.nb-jn-why-card,
.nb-jn-position-card,
.nb-pp-match-card,
.nb-pp-plan-card { box-shadow: 0 2px 8px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.06); }

/* ===== Unified Page Hero ===== */
/* Base hero background — all single-page heroes share this */
.nb-page-hero {
    background: linear-gradient(135deg, var(--nb-bg-blue), #DBEAFE);
    padding: 4rem 0; position: relative; overflow: hidden;
}
.nb-page-hero::before {
    content: ''; position: absolute; right: -5%; bottom: -30%;
    width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(0,61,156,.08) 0%, transparent 70%);
    border-radius: 50%; pointer-events: none;
}
.nb-page-hero .nb-container,
.nb-page-hero .nb-container-sm { position: relative; z-index: 1; }
/* Center-aligned hero variant — for narrow/centered hero layouts */
.nb-page-hero.nb-hero-centered { text-align: center; }

/* ===== Unified CTA Section ===== */
/* Replaces all 11 page-specific *-cta-final blocks */
.nb-cta-section {
    background: var(--nb-cta-bg);
    color: var(--nb-white);
    padding: var(--nb-space-16);
    text-align: center;
}
.nb-cta-section h2 { font-size: var(--nb-font-4xl); font-weight: 800; margin-bottom: 0.5rem; }
.nb-cta-section > .nb-container-sm > p,
.nb-cta-section p.nb-cta-desc { font-size: var(--nb-font-lg); opacity: 0.9; margin-bottom: 1.5rem; }
.nb-cta-phone {
    font-size: 2.5rem; font-weight: 900; color: var(--nb-accent-gold);
    display: block; margin-bottom: 1.5rem; text-decoration: none;
}
.nb-cta-phone:hover { color: var(--nb-accent-gold-light); text-decoration: none; }
.nb-cta-btn-primary {
    display: inline-block; padding: 1rem 3rem; background: var(--nb-white);
    color: var(--nb-primary-dark); border-radius: var(--nb-radius-full); font-weight: 800;
    font-size: var(--nb-font-lg); text-decoration: none; transition: all var(--nb-transition-slow);
}
.nb-cta-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.15); text-decoration: none; }
.nb-cta-btn-ghost {
    display: inline-block; padding: 0.875rem 2.5rem;
    border: 2px solid rgba(255,255,255,.5); color: var(--nb-white);
    border-radius: var(--nb-radius-md); font-weight: 700;
    font-size: var(--nb-font-md); text-decoration: none; transition: all var(--nb-transition-slow);
}
.nb-cta-btn-ghost:hover { background: var(--nb-white); color: var(--nb-primary-dark); text-decoration: none; }
.nb-cta-btn-white {
    display: inline-block; padding: 1rem 3rem; background: var(--nb-white);
    color: var(--nb-primary); border-radius: var(--nb-radius-full); font-weight: 800;
    font-size: var(--nb-font-lg); text-decoration: none; transition: all var(--nb-transition-slow);
}
.nb-cta-btn-white:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.15); text-decoration: none; color: var(--nb-primary-dark); }
.nb-cta-btn-row { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ===== Top Bar ===== */
.nb-topbar {
    background: var(--nb-primary-deepest);
    color: rgba(255,255,255,.85);
    font-size: .8125rem;
    border-bottom: 2px solid rgba(0,82,217,.4);
    position: relative; z-index: 1001;
}
.nb-topbar::after {
    content: '';
    position: absolute; bottom: -2px; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--nb-primary-light), var(--nb-accent-gold), var(--nb-primary-light));
    opacity: .6;
}
.nb-topbar-inner {
    display: flex; justify-content: space-between; align-items: center;
    padding: .375rem 0; gap: 1rem;
}
.nb-topbar-left {
    display: flex; align-items: center; gap: .75rem; flex-wrap: wrap;
}
.nb-topbar-brand {
    display: flex; align-items: center; gap: .375rem;
    font-weight: 700; color: var(--nb-white); font-size: .8125rem;
    letter-spacing: .5px;
}
.nb-topbar-brand::before {
    content: '';
    display: inline-block; width: 8px; height: 8px;
    background: var(--nb-accent-gold); border-radius: 50%;
    box-shadow: 0 0 6px rgba(255,215,0,.5);
    flex-shrink: 0;
}
.nb-topbar-slogan {
    font-size: .6875rem; color: rgba(255,255,255,.55);
    padding-left: .625rem; border-left: 1px solid rgba(255,255,255,.2);
}
.nb-topbar-right {
    display: flex; align-items: center; gap: 1rem;
}
.nb-topbar-phone {
    display: inline-flex; align-items: center; gap: .375rem;
    font-weight: 700; font-size: .9375rem; color: var(--nb-white);
    text-decoration: none; transition: color .2s;
}
.nb-topbar-phone:hover { color: var(--nb-accent-gold); text-decoration: none; }
.nb-topbar-phone .nb-topbar-icon { font-size: .875rem; }
.nb-topbar-phone em {
    font-style: normal; color: var(--nb-accent-gold); letter-spacing: .5px;
}
.nb-topbar-city {
    display: inline-flex; align-items: center; gap: .375rem;
    padding: .25rem .625rem;
    background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15);
    border-radius: 4px; color: rgba(255,255,255,.85);
    font-size: .75rem; cursor: pointer; transition: all .2s;
    font-family: inherit; line-height: 1.4;
}
.nb-topbar-city:hover { background: rgba(255,255,255,.15); color: var(--nb-white); }
.nb-topbar-city-arrow { font-size: .625rem; opacity: .6; transition: transform .25s ease; }
.nb-topbar-city:hover .nb-topbar-city-arrow { transform: translateY(2px); }
/* Active state */
.nb-topbar-city.active { background: rgba(255,255,255,.2); color: var(--nb-white); border-color: rgba(255,255,255,.3); }
.nb-topbar-city.active .nb-topbar-city-arrow { transform: rotate(180deg); opacity: 1; }

/* ===== Topbar City Panel (Dropdown) ===== */
.nb-topbar-city-panel {
    background: var(--nb-white); color: var(--nb-text-primary);
    border-bottom: 1px solid var(--nb-border);
    box-shadow: 0 8px 24px rgba(0,0,0,.1); max-height: 0; overflow: hidden;
    transition: max-height .35s ease, padding .35s ease;
    padding: 0;
}
.nb-topbar-city-panel.open {
    max-height: 600px; padding: 1.25rem 0;
}
.nb-topbar-city-panel-header {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 1rem; font-size: .875rem; font-weight: 700; color: var(--nb-primary-dark);
}
.nb-topbar-city-panel-close {
    background: none; border: none; font-size: 1.25rem; color: var(--nb-text-muted);
    cursor: pointer; padding: .25rem; line-height: 1; border-radius: 4px;
    transition: color .2s, background .2s;
}
.nb-topbar-city-panel-close:hover { color: var(--nb-primary); background: var(--nb-bg-light); }
.nb-topbar-city-grid {
    display: grid; grid-template-columns: repeat(8, 1fr); gap: .5rem;
}
.nb-topbar-city-province {
    padding: .5rem .375rem; border: 1px solid var(--nb-border-lighter);
    border-radius: 6px; background: var(--nb-bg-light);
    font-size: .8125rem; color: var(--nb-text-primary); cursor: pointer;
    text-align: center; transition: all .2s; font-family: inherit;
}
.nb-topbar-city-province:hover { background: var(--nb-bg-blue); border-color: var(--nb-primary); color: var(--nb-primary); }
.nb-topbar-city-province.active { background: var(--nb-primary); color: var(--nb-white); border-color: var(--nb-primary); }
/* Sub-city list (slide-in from right) */
.nb-topbar-city-sublist {
    display: none; padding-top: .75rem; border-top: 1px solid var(--nb-border-lighter);
    margin-top: .75rem; animation: nbSlideIn .25s ease;
}
.nb-topbar-city-sublist.open { display: block; }
@keyframes nbSlideIn { from { opacity: 0; transform: translateX(8px); } to { opacity: 1; transform: translateX(0); } }
.nb-topbar-city-sublist-header {
    display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem;
    font-size: .875rem; font-weight: 700; color: var(--nb-primary-dark);
}
.nb-topbar-city-back {
    background: var(--nb-bg-light); border: 1px solid var(--nb-border);
    border-radius: 4px; padding: .25rem .625rem; font-size: .75rem;
    cursor: pointer; color: var(--nb-text-secondary); transition: all .2s;
    font-family: inherit;
}
.nb-topbar-city-back:hover { background: var(--nb-border-lighter); color: var(--nb-primary); }
.nb-topbar-city-subgrid {
    display: grid; grid-template-columns: repeat(6, 1fr); gap: .5rem;
}
.nb-topbar-city-subitem {
    padding: .5rem .375rem; border: 1px solid var(--nb-border-lighter);
    border-radius: 6px; font-size: .8125rem; color: var(--nb-primary); text-decoration: none;
    text-align: center; transition: all .2s;
}
.nb-topbar-city-subitem:hover { background: var(--nb-primary); color: var(--nb-white); border-color: var(--nb-primary); text-decoration: none; }

/* ===== Header ===== */
.nb-header {
    background: var(--nb-white); border-bottom: 2px solid var(--nb-primary);
    position: sticky; top: 0; z-index: 1000; box-shadow: var(--nb-shadow-card);
    transform: translateZ(0); will-change: transform;
}
.nb-header-inner { display: flex; align-items: center; justify-content: space-between; height: 72px; gap: 1.5rem; }
.nb-logo { display: flex; align-items: center; gap: 0.625rem; flex-shrink: 0; }
.nb-logo-icon {
    width: 40px; height: 40px; background: var(--nb-primary); border-radius: 8px;
    display: flex; align-items: center; justify-content: center; color: var(--nb-white);
    font-weight: 800; font-size: 1.25rem; flex-shrink: 0;
}
.nb-logo-text { font-size: 1.3rem; font-weight: 800; color: var(--nb-text-primary); white-space: nowrap; }
.nb-logo-text small { display: block; font-size: 0.6875rem; font-weight: 400; color: var(--nb-text-secondary); }

/* ===== Navigation ===== */
.nb-nav { flex: 1; min-width: 0; display: flex; justify-content: center; }
.nb-nav-list { display: flex; align-items: center; gap: 0.25rem; }
.nb-nav-item { position: relative; }
.nb-nav-link {
    display: block; padding: 0.625rem 1rem; font-size: 1rem; font-weight: 600;
    color: var(--nb-text-primary); border-radius: 6px; transition: all 0.2s ease; white-space: nowrap;
}
.nb-nav-link:hover, .nb-nav-link.active {
    background: var(--nb-primary); color: var(--nb-white); text-decoration: none;
}
.nb-nav-dropdown {
    position: absolute; top: 100%; left: 0; min-width: 180px; background: var(--nb-white);
    border: 1px solid var(--nb-border); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    opacity: 0; visibility: hidden; transform: translateY(10px); transition: all 0.25s ease; padding: 0.5rem 0;
    z-index: 100;
}
.nb-nav-item:hover .nb-nav-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.nb-nav-dropdown a {
    display: block; padding: 0.5rem 1.25rem; color: var(--nb-text-primary); font-size: 0.9375rem; font-weight: 500;
}
.nb-nav-dropdown a:hover { background: var(--nb-bg-light); color: var(--nb-primary); text-decoration: none; }

.nb-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.375rem;
    padding: 0.5625rem 1.5rem; border-radius: 6px; font-weight: 700; font-size: 0.9375rem;
    transition: all 0.2s ease; white-space: nowrap; border: 2px solid transparent;
}
.nb-btn-primary { background: var(--nb-primary); color: var(--nb-white); }
.nb-btn-primary:hover { background: var(--nb-primary-dark); color: var(--nb-white); text-decoration: none; }
.nb-btn-outline { border-color: var(--nb-primary); color: var(--nb-primary); background: var(--nb-white); }
.nb-btn-outline:hover { background: var(--nb-primary); color: var(--nb-white); text-decoration: none; }
.nb-btn-lg { padding: 0.875rem 2.5rem; font-size: 1.0625rem; }

/* Mobile menu toggle */
.nb-menu-toggle { display: none; flex-direction: column; gap: 5px; padding: 0.5rem; }
.nb-menu-toggle span { width: 24px; height: 3px; background: var(--nb-text-primary); border-radius: 2px; transition: 0.3s; }
.nb-menu-toggle.active span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nb-menu-toggle.active span:nth-child(2) { opacity: 0; }
.nb-menu-toggle.active span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ===== Hero Banner ===== */
.nb-hero {
    background: linear-gradient(160deg, var(--nb-primary-dark) 0%, var(--nb-primary) 40%, var(--nb-primary-light) 100%);
    color: var(--nb-white); padding: 5rem 0 4.5rem;
    position: relative; overflow: hidden;
}
/* Multi-layer decorative orbs */
.nb-hero::before {
    content: ''; position: absolute;
    top: -30%; right: -5%; width: 560px; height: 560px;
    background: radial-gradient(circle, rgba(255,255,255,.07) 0%, transparent 65%);
    border-radius: 50%;
}
.nb-hero::after {
    content: ''; position: absolute;
    bottom: -20%; left: -8%; width: 360px; height: 360px;
    background: radial-gradient(circle, rgba(255,215,0,.06) 0%, transparent 70%);
    border-radius: 50%;
}
/* Subtle grid dot pattern layer */
.nb-hero-bg-dots {
    position: absolute; inset: 0; opacity: .04; pointer-events: none;
    background-image: radial-gradient(circle, rgba(255,255,255,1) 1px, transparent 1px);
    background-size: 32px 32px;
}
.nb-hero-inner { position: relative; z-index: 1; display: flex; align-items: center; gap: 3rem; }
.nb-hero-content { flex: 1; min-width: 0; }
/* Badge / tag */
.nb-hero-badge, .nb-hero-tag {
    display: inline-flex; align-items: center; gap: .5rem;
    background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    padding: .35rem 1rem; border-radius: 50px; font-size: .8125rem;
    margin-bottom: 1.25rem; font-weight: 600; letter-spacing: .5px;
}
.nb-hero-badge-dot {
    display: inline-block; width: 7px; height: 7px;
    background: var(--nb-accent-gold); border-radius: 50%;
    box-shadow: 0 0 6px rgba(255,215,0,.6);
    animation: nbPulseDot 2s infinite;
}
/* Title */
.nb-hero-title {
    font-size: 2.75rem; font-weight: 800; line-height: 1.25;
    margin-bottom: 1rem; letter-spacing: .5px;
}
.nb-hero-title-accent {
    display: block; font-size: 1.125rem; font-weight: 500;
    color: var(--nb-accent-gold-light); letter-spacing: 2px;
    text-transform: uppercase; margin-top: .375rem;
}
/* Description */
.nb-hero-desc {
    font-size: 1.0625rem; opacity: .88; margin-bottom: 1.75rem;
    max-width: 520px; line-height: 1.7;
}
/* CTA Buttons */
.nb-hero-actions { display: flex; gap: .875rem; flex-wrap: wrap; align-items: center; margin-bottom: 1.5rem; }
.nb-btn-hero-primary {
    display: inline-flex; align-items: center; gap: .5rem;
    background: var(--nb-white); color: var(--nb-primary-dark);
    border: none; padding: .875rem 2rem; border-radius: 8px;
    font-weight: 700; font-size: 1.0625rem; text-decoration: none;
    transition: all .25s; box-shadow: 0 4px 16px rgba(0,0,0,.12);
}
.nb-btn-hero-primary:hover {
    transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,0,0,.18);
    color: var(--nb-primary-dark); text-decoration: none;
}
.nb-btn-hero-outline {
    display: inline-flex; align-items: center; gap: .5rem;
    background: transparent; color: rgba(255,255,255,.9);
    border: 1.5px solid rgba(255,255,255,.35);
    padding: .8125rem 1.75rem; border-radius: 8px;
    font-weight: 600; font-size: 1rem; text-decoration: none;
    transition: all .25s;
}
.nb-btn-hero-outline:hover {
    background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.6);
    color: var(--nb-white); text-decoration: none;
}
/* Trust indicators — moved under CTA buttons */
.nb-hero-trust {
    display: flex; gap: 1.5rem; flex-wrap: wrap;
    font-size: .8125rem; color: rgba(255,255,255,.65);
}
.nb-hero-trust span {
    display: inline-flex; align-items: center; gap: .25rem;
}
.nb-hero-trust span::before {
    content: '✓'; font-weight: 700; color: var(--nb-accent-gold);
}
/* ---- Phone info (secondary, subtle) ---- */
.nb-hero-phone {
    display: inline-flex; align-items: center; gap: .375rem;
    margin-left: .75rem; font-size: .875rem; opacity: .75;
}
/* ===== Hero Form Card ===== */
.nb-hero-formcard { flex: 0 0 400px; min-width: 0; }
.nb-hero-formcard-inner {
    background: var(--nb-white); border-radius: 14px; padding: 2rem 1.75rem;
    box-shadow: 0 16px 48px rgba(0,0,0,.2), 0 4px 12px rgba(0,0,0,.08);
}
.nb-hero-form-h {
    font-size: 1.25rem; font-weight: 800; color: var(--nb-text-primary);
    text-align: center; margin-bottom: .375rem;
}
.nb-hero-form-h em { color: var(--nb-primary); font-style: normal; }
.nb-hero-form-sub {
    text-align: center; color: var(--nb-accent-green); font-size: .8125rem;
    font-weight: 600; margin-bottom: 1.25rem;
    display: flex; align-items: center; justify-content: center; gap: .375rem;
}
.nb-hero-form-sub-dot {
    width: 8px; height: 8px; background: var(--nb-accent-green);
    border-radius: 50%; display: inline-block;
    animation: nbPulseDot 1.5s infinite;
}
@keyframes nbPulseDot {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .4; transform: scale(1.25); }
}
.nb-hero-form-privacy {
    text-align: center; font-size: .6875rem; color: var(--nb-text-light);
    margin-top: .75rem;
}
.nb-hero-form-btn {
    width: 100%; background: linear-gradient(135deg, var(--nb-primary), var(--nb-primary-dark));
    color: var(--nb-white); border: none; cursor: pointer;
    margin-top: .75rem; padding: .875rem 2rem; font-size: 1.0625rem;
    border-radius: 8px; font-weight: 700; transition: all .25s;
}
.nb-hero-form-btn:hover {
    background: linear-gradient(135deg, var(--nb-primary-dark), var(--nb-primary-deep));
    transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,61,156,.35);
}
.nb-hero-form-trust {
    display: flex; justify-content: center; gap: 1.25rem;
    color: var(--nb-text-muted); font-size: .75rem; margin-top: .875rem;
}
.nb-hero-form-trust span { display: flex; align-items: center; gap: .25rem; }
.nb-hero-form-trust span::before { content: '🔒'; font-size: .625rem; opacity: .7; }
/* Override eyou form fields in hero */
.nb-hero-formcard .eyou_form_attr { margin-bottom: 0.75rem; }
.nb-hero-formcard .eyou_form_text,
.nb-hero-formcard .eyou_form_select,
.nb-hero-formcard .eyou_form_textarea,
.nb-hero-formcard .eyou_form_phone {
    width: 100%; padding: 0.75rem 1rem; border: 1px solid var(--nb-border-form); border-radius: 8px;
    font-size: 0.9375rem; font-family: inherit; background: var(--nb-bg-form); transition: border-color 0.2s;
    box-sizing: border-box;
}
.nb-hero-formcard .eyou_form_text:focus,
.nb-hero-formcard .eyou_form_select:focus,
.nb-hero-formcard .eyou_form_textarea:focus {
    outline: none; border-color: var(--nb-primary); box-shadow: 0 0 0 3px rgba(0,82,217,0.1); background: var(--nb-white);
}
.nb-hero-formcard .eyou_form_textarea { min-height: 80px; resize: vertical; }
.nb-hero-formcard .eyou_form_select { cursor: pointer; appearance: auto; }
.nb-hero-formcard .eyou_form_radio,
.nb-hero-formcard .eyou_form_checkbox { margin-right: 0.375rem; }
.nb-hero-formcard label { font-size: 0.875rem; color: var(--nb-text-secondary); margin-right: 1rem; cursor: pointer; }
.nb-hero-formcard .eyou_form_file { font-size: 0.875rem; }
.nb-hero-formcard .eyou_form_verify_img { vertical-align: middle; margin-left: 0.5rem; }
.nb-hero-formcard .eyou_form_verify_a { font-size: 0.8125rem; color: var(--nb-primary); }
/* Three-level cascading selects (省-市-区): horizontal row */
.nb-hero-formcard .eyou_form_attr:has(select + select + select) {
    display: flex; flex-direction: row; gap: 0.5rem; flex-wrap: nowrap;
    min-width: 0;
}
.nb-hero-formcard .eyou_form_attr:has(select + select + select) select.eyou_form_select {
    flex: 1; min-width: 0; width: auto; max-width: 100%;
    overflow: hidden; text-overflow: ellipsis;
}

/* ===== Quick Stats Bar ===== */
.nb-stats { overflow: hidden; background: var(--nb-white); border-bottom: 1px solid var(--nb-border); padding: 1.5rem 0; }
.nb-stats-grid, .nb-about-stats-grid, .nb-citysite-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.nb-stat-item, .nb-about-stat-item, .nb-citysite-stat-item { text-align: center; min-width: 0; overflow: hidden; }
.nb-stat-num, .nb-about-stat-num, .nb-citysite-stat-num { font-size: 1.875rem; font-weight: 800; color: var(--nb-primary); word-break: break-word; }
.nb-stat-label, .nb-about-stat-label, .nb-citysite-stat-label { font-size: 0.875rem; color: var(--nb-text-secondary); margin-top: 0.25rem; }

/* ===== Product Cards ===== */
.nb-products-grid, .nb-lp-grid, .nb-bb-grid, .nb-contact-grid, .nb-join-grid, .nb-network-grid, .nb-service-grid, .nb-appt-grid, .nb-appt-process-grid {
    display: flex; flex-wrap: nowrap; gap: 1.5rem;
    width: 100%; max-width: 100%;
    overflow-x: auto; overflow-y: visible;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding: 0.5rem 0.25rem; /* room for card hover lift */
    /* hide scrollbar – cross-browser */
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.nb-products-grid::-webkit-scrollbar,
.nb-lp-grid::-webkit-scrollbar,
.nb-bb-grid::-webkit-scrollbar,
.nb-contact-grid::-webkit-scrollbar,
.nb-join-grid::-webkit-scrollbar,
.nb-network-grid::-webkit-scrollbar,
.nb-service-grid::-webkit-scrollbar,
.nb-appt-grid::-webkit-scrollbar,
.nb-appt-process-grid::-webkit-scrollbar { display: none; }
.nb-products-grid > .nb-tariff-card,
.nb-products-grid > .nb-product-card,
.nb-lp-grid > .nb-lp-card,
.nb-bb-grid > .nb-bb-card,
.nb-contact-grid > .nb-contact-card,
.nb-join-grid > .nb-join-card,
.nb-network-grid > .nb-network-card,
.nb-service-grid > .nb-service-card,
.nb-appt-grid > .nb-appt-card,
.nb-appt-process-grid > .nb-appt-process-card {
    flex: 0 0 auto;
    width: calc(25% - 1.125rem); /* 4 cards fit on desktop */
    min-width: 260px;
    scroll-snap-align: start;
}

/* ===== Home Products Grid (index — 全国宽带产品推荐) ===== */
.nb-home-products {
    display: flex; flex-wrap: nowrap; gap: 1.5rem;
    width: 100%; max-width: 100%;
    overflow-x: auto; overflow-y: visible;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding: 0.5rem 0.25rem;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.nb-home-products::-webkit-scrollbar { display: none; }
.nb-home-products > .nb-tariff-card {
    flex: 0 0 auto;
    width: calc(25% - 1.125rem);
    min-width: 260px;
    scroll-snap-align: start;
}

/* ===== Process Steps Grid (index — 办理流程) ===== */
.nb-process-grid {
    display: flex; flex-wrap: nowrap; gap: 1.5rem;
    width: 100%; max-width: 100%;
    overflow-x: auto; overflow-y: visible;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding: 0.5rem 0.25rem;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.nb-process-grid::-webkit-scrollbar { display: none; }
.nb-process-grid > .nb-process-card {
    flex: 0 0 auto;
    width: calc(25% - 1.125rem);
    min-width: 260px;
    scroll-snap-align: start;
}

/* Process step cards (index — 办理流程) */
.nb-process-card {
    background: var(--nb-white); border: 1px solid var(--nb-border); border-radius: 12px; padding: 2rem 1.5rem;
    text-align: center; transition: all 0.3s ease; position: relative; overflow: hidden;
}
.nb-process-card:hover {
    border-color: var(--nb-primary); box-shadow: var(--nb-shadow-elevated); transform: translateY(-4px);
}
.nb-process-step {
    font-size: 2.5rem; font-weight: 800; color: var(--nb-primary); line-height: 1;
}
.nb-process-title {
    font-size: 1.125rem; font-weight: 700; color: var(--nb-text-primary); margin: 0.75rem 0 0.5rem;
}

.nb-product-card, .nb-lp-card, .nb-bb-card, .nb-contact-card, .nb-join-card, .nb-network-card, .nb-service-card, .nb-appt-card, .nb-appt-process-card {
    background: var(--nb-white); border: 1px solid var(--nb-border); border-radius: 12px; padding: 2rem 1.5rem;
    text-align: center; transition: all 0.3s ease; position: relative; overflow: hidden;
}
.nb-product-card:hover, .nb-lp-card:hover, .nb-bb-card:hover, .nb-contact-card:hover, .nb-join-card:hover, .nb-network-card:hover, .nb-service-card:hover, .nb-appt-card:hover, .nb-appt-process-card:hover {
    border-color: var(--nb-primary); box-shadow: var(--nb-shadow-elevated); transform: translateY(-4px);
}
.nb-product-card.featured, .nb-bb-card.featured { border-color: var(--nb-primary); border-width: 2px; }
.nb-product-badge, .nb-bb-badge {
    position: absolute; top: 0; right: 0; background: var(--nb-primary); color: var(--nb-white);
    font-size: 0.6875rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 0 12px 0 8px;
}
.nb-product-speed, .nb-bb-speed, .nb-service-step, .nb-appt-process-step { font-size: 2.5rem; font-weight: 800; color: var(--nb-primary); line-height: 1; }
.nb-product-speed-unit, .nb-bb-speed-unit { font-size: 1rem; color: var(--nb-text-secondary); font-weight: 600; }
.nb-product-name, .nb-lp-name, .nb-bb-name, .nb-contact-name, .nb-join-name, .nb-network-name, .nb-service-name, .nb-appt-name, .nb-appt-process-name { font-size: 1.125rem; font-weight: 700; color: var(--nb-text-primary); margin: 0.75rem 0 0.5rem; }
.nb-product-price, .nb-lp-price, .nb-bb-price { margin: 1rem 0; }
.nb-product-price-num, .nb-lp-price-num, .nb-bb-price-num { font-size: 1.875rem; font-weight: 800; color: var(--nb-accent-red); }
.nb-product-price-unit, .nb-lp-price-unit, .nb-bb-price-unit { font-size: 0.875rem; color: var(--nb-text-secondary); }
.nb-product-features, .nb-bb-features { margin: 1rem 0; text-align: left; }
.nb-product-features li, .nb-bb-features li {
    padding: 0.25rem 0 0.25rem 1.5rem; position: relative; font-size: 0.875rem; color: var(--nb-text-secondary);
}
.nb-product-features li::before, .nb-bb-features li::before {
    content: '\2714'; position: absolute; left: 0; color: var(--nb-accent-green); font-weight: 700;
}
.nb-product-card .nb-btn, .nb-lp-card .nb-btn, .nb-bb-card .nb-btn, .nb-contact-card .nb-btn, .nb-join-card .nb-btn, .nb-network-card .nb-btn, .nb-service-card .nb-btn, .nb-appt-card .nb-btn, .nb-appt-process-card .nb-btn { width: 100%; margin-top: 0.5rem; }

/* ===== Tariff Cards ===== */
.nb-tariff-card {
    background: var(--nb-white); border: 1px solid var(--nb-border); border-radius: 12px;
    padding: 0; text-align: center; transition: all 0.3s ease;
    position: relative; overflow: hidden; display: flex; flex-direction: column;
}
.nb-tariff-card:hover {
    border-color: var(--nb-primary); box-shadow: var(--nb-shadow-elevated); transform: translateY(-4px);
}
.nb-tariff-card-recommend { border-color: var(--nb-primary); border-width: 2px; }
.nb-tariff-card-badge {
    position: absolute; top: 0; right: 0; background: var(--nb-accent-red); color: var(--nb-white);
    font-size: 0.6875rem; font-weight: 700; padding: 0.25rem 0.75rem;
    border-radius: 0 12px 0 8px; z-index: 1;
}
.nb-tariff-card-header {
    padding: 1.75rem 1.5rem 1rem; background: linear-gradient(180deg, #F0F5FF 0%, var(--nb-white) 100%);
}
.nb-tariff-card-recommend .nb-tariff-card-header { background: linear-gradient(180deg, #E8F0FE 0%, var(--nb-white) 100%); }
.nb-tariff-card-speed {
    font-size: 2.5rem; font-weight: 800; color: var(--nb-primary); line-height: 1.1;
}
.nb-tariff-card-speed-unit { font-size: 1rem; font-weight: 600; color: var(--nb-text-secondary); }
.nb-tariff-card-name {
    font-size: 1rem; font-weight: 700; color: var(--nb-text-primary); margin: 0.5rem 0 0;
}
.nb-tariff-card-body { padding: 0 1.5rem; flex: 1; }
.nb-tariff-card-features {
    list-style: none; padding: 0; margin: 0; text-align: left;
}
.nb-tariff-card-features li {
    padding: 0.5rem 0 0.5rem 1.5rem; position: relative; font-size: 0.875rem;
    color: var(--nb-text-secondary); border-bottom: 1px solid var(--nb-border-lighter);
}
.nb-tariff-card-features li:last-child { border-bottom: none; }
.nb-tariff-card-features li::before {
    content: '\2714'; position: absolute; left: 0; color: var(--nb-accent-green); font-weight: 700;
}
.nb-tariff-card-feature-audience::before {
    content: '\1F3AF' !important; /* target emoji for audience */
}
.nb-tariff-card-feature-audience {
    color: var(--nb-primary) !important; font-weight: 600;
}
.nb-tariff-card-features li strong { color: var(--nb-accent-red); font-size: 1.125rem; }
.nb-tariff-card-footer { padding: 1.25rem 1.5rem 1.5rem; }
.nb-tariff-card-footer .nb-btn { width: 100%; }

/* ===== Coverage Province Grid ===== */
.nb-coverage-grid, .nb-guide-grid, .nb-join-grid-recruit, .nb-network-branch-grid, .nb-service-promise-grid, .nb-citysite-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
}
.nb-coverage-province {
    background: var(--nb-white);
    border: 1px solid var(--nb-border);
    border-radius: 10px;
    padding: 1.25rem 0.75rem;
    text-align: center;
    cursor: pointer;
    transition: all 0.25s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    font-family: inherit;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--nb-text-primary);
    position: relative;
    overflow: hidden;
    outline-offset: 2px;
    min-width: 0;
}
.nb-coverage-province-name {
    position: relative;
    z-index: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.nb-coverage-province::before {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 3px;
    background: var(--nb-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}
.nb-coverage-province:hover {
    border-color: var(--nb-primary);
    box-shadow: 0 6px 20px rgba(0,82,217,0.12);
    transform: translateY(-2px);
    color: var(--nb-primary);
}
.nb-coverage-province:hover::before {
    transform: scaleX(1);
}
.nb-coverage-province-arrow {
    font-size: 1.25rem;
    color: var(--nb-primary);
    transition: transform 0.2s ease;
    position: relative;
    z-index: 1;
}
.nb-coverage-province:hover .nb-coverage-province-arrow {
    transform: translateX(3px);
}
.nb-coverage-province:focus-visible {
    outline: 3px solid var(--nb-primary);
    outline-offset: 2px;
}

/* ===== Coverage Modal (Enhanced) ===== */
.nb-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
.nb-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}
.nb-modal-dialog {
    background: var(--nb-white);
    border-radius: 16px;
    width: 100%;
    max-width: 680px;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 24px 64px rgba(0,0,0,0.25), 0 8px 24px rgba(0,0,0,0.1);
    transform: translateY(20px) scale(0.96);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease;
    overflow: hidden;
}
.nb-modal-overlay.active .nb-modal-dialog {
    transform: translateY(0) scale(1);
}
.nb-modal-dialog--lg { max-width: 760px; }
.nb-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 1.5rem 1.75rem;
    border-bottom: 1px solid var(--nb-border);
    flex-shrink: 0;
    gap: 1rem;
}
.nb-modal-header-inner {
    display: flex;
    align-items: center;
    gap: 0.875rem;
}
.nb-modal-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--nb-primary), var(--nb-primary-light));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.nb-modal-header-text { flex: 1; min-width: 0; }
.nb-modal-title {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--nb-text-primary);
    margin: 0;
    line-height: 1.3;
}
.nb-modal-subtitle {
    font-size: 0.875rem;
    color: var(--nb-text-muted);
    margin: 0.125rem 0 0;
}
.nb-modal-close {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--nb-bg-light);
    color: var(--nb-text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border: none;
    transition: all 0.2s ease;
    flex-shrink: 0;
}
.nb-modal-close:hover {
    background: var(--nb-border);
    color: var(--nb-accent-red);
    transform: rotate(90deg);
}
.nb-modal-close:focus-visible {
    outline: 3px solid var(--nb-primary);
    outline-offset: 2px;
}

/* 统计条 */
.nb-modal-stats {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 1rem 1.75rem;
    background: var(--nb-bg-light);
    border-bottom: 1px solid var(--nb-border);
    flex-shrink: 0;
}
.nb-modal-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.125rem;
}
.nb-modal-stat-num {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
    color: var(--nb-text-primary);
}
.nb-modal-stat--open .nb-modal-stat-num { color: var(--nb-accent-green-light); }
.nb-modal-stat--pending .nb-modal-stat-num { color: var(--nb-accent-orange); }
.nb-modal-stat-label {
    font-size: 0.75rem;
    color: var(--nb-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.nb-modal-stat-divider {
    width: 1px;
    height: 32px;
    background: var(--nb-border);
}

/* 弹窗内容区 */
.nb-modal-body {
    padding: 1.5rem 1.75rem 1.75rem;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    flex: 1;
}

/* 未开通城市弹窗内容 */
.nb-modal-unopened {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.5rem 2rem !important;
    gap: 0.75rem;
}
.nb-unopened-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg, #fff3e0, #ffe0b2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ff9500;
    margin-bottom: 0.5rem;
    box-shadow: 0 8px 24px rgba(255,149,0,0.2);
}
.nb-unopened-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--nb-text-primary);
}
.nb-unopened-city {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--nb-accent-orange);
    background: linear-gradient(135deg, #ff9500, #ff6600);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.nb-unopened-desc {
    font-size: 0.9375rem;
    color: var(--nb-text-secondary);
    line-height: 1.7;
    max-width: 320px;
}
.nb-unopened-divider {
    width: 40px;
    height: 1px;
    background: var(--nb-border);
    margin: 0.5rem 0;
}
.nb-unopened-coop {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}
.nb-unopened-coop-label {
    font-size: 0.8125rem;
    color: var(--nb-text-muted);
}
.nb-unopened-phone {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: linear-gradient(135deg, #667eea, #764ba2);
    color: #fff;
    border-radius: 50px;
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(102,126,234,0.3);
    transition: all 0.25s ease;
}
.nb-unopened-phone:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(102,126,234,0.4);
}
    box-shadow: 0 6px 20px rgba(255,102,0,0.4);
    background: linear-gradient(135deg, #ffaa33, #ff7700);
}
.nb-unopened-footer {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.25rem;
    font-size: 0.8125rem;
    color: var(--nb-text-muted);
}
.nb-unopened-date::before {
    content: '·';
    margin-right: 0.5rem;
}

/* 区县弹窗网格 */
.nb-district-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 0.625rem;
}
.nb-district-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s ease;
    border: 1.5px solid var(--nb-border);
    background: var(--nb-bg-white);
    position: relative;
    overflow: hidden;
}
.nb-district-item::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.nb-district-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.nb-district-item.open {
    border-color: var(--nb-accent-green-light);
    background: linear-gradient(135deg, rgba(54,179,126,0.08), rgba(54,179,126,0.03));
}
.nb-district-item.open::before {
    background: linear-gradient(135deg, var(--nb-accent-green-light), var(--nb-accent-green));
    opacity: 0.05;
}
.nb-district-item.open:hover { 
    border-color: var(--nb-accent-green);
    box-shadow: 0 4px 16px rgba(54,179,126,0.2);
}
.nb-district-item.pending {
    border-color: var(--nb-border-light);
    background: var(--nb-bg-light);
}
.nb-district-item.pending:hover {
    border-color: var(--nb-accent-orange);
    box-shadow: 0 4px 16px rgba(255,102,0,0.15);
}
.nb-district-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.nb-district-item.open .nb-district-icon {
    background: rgba(54,179,126,0.15);
    color: var(--nb-accent-green-light);
}
.nb-district-item.pending .nb-district-icon {
    background: var(--nb-border);
    color: var(--nb-text-muted);
}
.nb-district-icon-inner {
    display: flex;
    align-items: center;
    justify-content: center;
}
.nb-district-name {
    flex: 1;
    font-weight: 500;
    color: var(--nb-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.nb-district-item.pending .nb-district-name { color: var(--nb-text-secondary); }
.nb-district-arrow {
    color: var(--nb-accent-green-light);
    opacity: 0.6;
    transition: opacity 0.2s, transform 0.2s;
}
.nb-district-item.open:hover .nb-district-arrow {
    opacity: 1;
    transform: translateX(2px);
}

/* 空状态 */
.nb-district-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    text-align: center;
    color: var(--nb-text-muted);
}
.nb-district-empty-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--nb-bg-light);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    color: var(--nb-text-light);
}
.nb-district-empty p {
    font-size: 1rem;
    font-weight: 600;
    color: var(--nb-text-secondary);
    margin: 0 0 0.375rem;
}
.nb-district-empty span {
    font-size: 0.875rem;
    color: var(--nb-text-muted);
}

/* 加载状态 */
.nb-district-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem;
    gap: 0.75rem;
    color: var(--nb-text-muted);
}
.nb-loading-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid var(--nb-border);
    border-top-color: var(--nb-primary);
    border-radius: 50%;
    animation: nb-spin 0.8s linear infinite;
}
@keyframes nb-spin {
    to { transform: rotate(360deg); }
}

/* Province city list (injected into modal) */
.nb-coverage-city-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.nb-coverage-city-item {
    /* list item for city links */
}
.nb-coverage-city-item a {
    display: block;
    padding: 0.75rem 1rem;
    background: var(--nb-bg-light);
    border: 1px solid var(--nb-border);
    border-radius: 8px;
    text-align: center;
    font-size: 0.9375rem;
    color: var(--nb-text-primary);
    font-weight: 500;
    transition: all 0.2s ease;
}
.nb-coverage-city-item a:hover {
    background: var(--nb-bg-blue);
    border-color: var(--nb-primary);
    color: var(--nb-primary);
    text-decoration: none;
}
.nb-coverage-city-empty {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--nb-text-muted);
    font-size: 0.9375rem;
}

/* ===== Article List (News/Guide/FAQ) ===== */
.nb-article-list { display: flex; flex-direction: column; gap: 0; }
.nb-article-item {
    display: flex; gap: 1.25rem; padding: 1.5rem 0; border-bottom: 1px solid var(--nb-border);
    align-items: flex-start; transition: background 0.2s ease;
}
.nb-article-item:hover { background: var(--nb-bg-light); }
.nb-article-item:last-child { border-bottom: none; }
.nb-article-thumb {
    flex: 0 0 200px; width: 200px; height: 130px; border-radius: 8px; overflow: hidden;
    background: var(--nb-bg-light);
}
.nb-article-thumb img { width: 100%; height: 100%; object-fit: cover; }
.nb-article-body { flex: 1; min-width: 0; }
.nb-article-title {
    font-size: 1.125rem; font-weight: 700; color: var(--nb-text-primary); margin-bottom: 0.5rem; line-height: 1.5;
}
.nb-article-item:hover .nb-article-title a { color: var(--nb-primary); }
.nb-article-desc { font-size: 0.875rem; color: var(--nb-text-secondary); line-height: 1.6; margin-bottom: 0.5rem; }
.nb-article-meta { font-size: 0.8125rem; color: var(--nb-text-muted); display: flex; gap: 1rem; flex-wrap: wrap; }
.nb-article-meta span::before { content: '\2022'; margin-right: 0.375rem; color: #C0C0C0; }
.nb-article-meta span:first-child::before { display: none; }

/* List without thumbnail */
.nb-article-item.no-thumb { padding: 1rem 0; }
.nb-article-item.no-thumb .nb-article-title { font-size: 1rem; }

/* ===== Breadcrumb ===== */
.nb-breadcrumb {
    background: var(--nb-bg-light); padding: 0.75rem 0; font-size: 0.875rem; border-bottom: 1px solid var(--nb-border);
}
.nb-breadcrumb a { color: var(--nb-text-secondary); }
.nb-breadcrumb a:hover { color: var(--nb-primary); }
.nb-breadcrumb span { color: var(--nb-text-primary); font-weight: 600; }
.nb-breadcrumb-sep { color: #C0C0C0; margin: 0 0.375rem; }

/* ===== Page Layout (Sidebar) ===== */
.nb-page-layout { display: grid; grid-template-columns: 260px 1fr; gap: 2rem; padding: 2.5rem 0; }
.nb-sidebar { position: sticky; top: 90px; align-self: start; }
.nb-sidebar-block {
    background: var(--nb-white); border: 1px solid var(--nb-border); border-radius: 10px; margin-bottom: 1.5rem; overflow: hidden;
}
.nb-sidebar-title {
    background: var(--nb-primary); color: var(--nb-white); padding: 0.75rem 1.25rem; font-weight: 700; font-size: 1rem;
}
.nb-sidebar-content { padding: 1rem 1.25rem; }
.nb-sidebar-nav li { margin-bottom: 0.25rem; }
.nb-sidebar-nav a {
    display: block; padding: 0.5rem 0.75rem; border-radius: 6px; color: var(--nb-text-primary);
    font-size: 0.9375rem; font-weight: 500; transition: all 0.2s ease;
}
.nb-sidebar-nav a:hover, .nb-sidebar-nav a.active {
    background: var(--nb-bg-blue); color: var(--nb-primary); text-decoration: none;
}
.nb-sidebar-contact { text-align: center; }
.nb-sidebar-contact-phone {
    font-size: 1.5rem; font-weight: 800; color: var(--nb-primary); margin: 0.5rem 0; display: block;
}
.nb-sidebar-contact-btn { width: 100%; margin-top: 0.75rem; }

/* ===== Article Detail ===== */
.nb-article-detail { background: var(--nb-white); }
.nb-article-detail-header { margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--nb-border); }
.nb-article-detail-title { font-size: 1.875rem; font-weight: 800; color: var(--nb-text-primary); line-height: 1.4; margin-bottom: 0.75rem; }
.nb-article-detail-meta {
    font-size: 0.875rem; color: var(--nb-text-muted); display: flex; gap: 1.5rem; flex-wrap: wrap;
}
.nb-article-detail-content { font-size: 1rem; line-height: 1.85; color: #333333; }
.nb-article-detail-content p { margin-bottom: 1rem; }
.nb-article-detail-content h2 { font-size: 1.5rem; font-weight: 700; color: var(--nb-text-primary); margin: 2rem 0 1rem; }
.nb-article-detail-content h3 { font-size: 1.25rem; font-weight: 700; color: var(--nb-text-primary); margin: 1.5rem 0 0.75rem; }
.nb-article-detail-content ul, .nb-article-detail-content ol { margin: 1rem 0 1rem 1.5rem; }
.nb-article-detail-content ul li { list-style: disc; margin-bottom: 0.5rem; }
.nb-article-detail-content ol li { list-style: decimal; margin-bottom: 0.5rem; }
.nb-article-detail-content img { border-radius: 8px; margin: 1rem 0; }
.nb-article-detail-content table { margin: 1rem 0; border: 1px solid var(--nb-border); }
.nb-article-detail-content th, .nb-article-detail-content td { border: 1px solid var(--nb-border); padding: 0.625rem; }

/* ===== Product Detail ===== */
.nb-product-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.nb-product-detail-images { position: sticky; top: 90px; align-self: start; }
.nb-product-detail-main-img {
    width: 100%; border-radius: 12px; border: 1px solid var(--nb-border); margin-bottom: 1rem;
}
.nb-product-detail-info h1 { font-size: 1.75rem; font-weight: 800; color: var(--nb-text-primary); margin-bottom: 0.75rem; }
.nb-product-detail-price {
    background: var(--nb-bg-light); border-radius: 10px; padding: 1.25rem; margin: 1.25rem 0;
}
.nb-product-detail-price-label { font-size: 0.875rem; color: var(--nb-text-secondary); }
.nb-product-detail-price-num { font-size: 2.25rem; font-weight: 800; color: var(--nb-accent-red); }
.nb-product-detail-price-unit { font-size: 1rem; color: var(--nb-text-secondary); }
.nb-product-detail-specs { margin: 1.5rem 0; }
.nb-product-detail-specs li {
    padding: 0.625rem 0; border-bottom: 1px dashed var(--nb-border); display: flex; justify-content: space-between;
    font-size: 0.9375rem;
}
.nb-product-detail-specs li span:first-child { color: var(--nb-text-secondary); }
.nb-product-detail-specs li span:last-child { color: var(--nb-text-primary); font-weight: 600; }
.nb-product-detail-cta { display: flex; gap: 1rem; margin: 1.5rem 0; flex-wrap: wrap; align-items: center; }
.nb-product-detail-phone { font-size: 1.25rem; font-weight: 800; color: var(--nb-primary); }

/* ===== FAQ Accordion ===== */
.nb-faq-list, .nb-vp-faq, .nb-pagefaq, .nb-help-faq, .nb-cov-faq { max-width: 800px; margin: 0 auto; }
.nb-faq-item, .nb-vp-faq-item, .nb-pagefaq-item, .nb-help-faq-item, .nb-cov-faq-item {
    border: 1px solid var(--nb-border); border-radius: 8px; margin-bottom: 0.75rem; overflow: hidden;
    background: var(--nb-white);
}
.nb-faq-question, .nb-vp-faq-question, .nb-pagefaq-question, .nb-help-faq-question, .nb-cov-faq-question {
    width: 100%; padding: 1rem 1.25rem; text-align: left; font-size: 1rem; font-weight: 600;
    color: var(--nb-text-primary); display: flex; justify-content: space-between; align-items: center; gap: 1rem;
    background: var(--nb-white); transition: background 0.2s ease;
}
.nb-faq-question:hover, .nb-vp-faq-question:hover, .nb-pagefaq-question:hover, .nb-help-faq-question:hover, .nb-cov-faq-question:hover { background: var(--nb-bg-light); }
.nb-faq-question::after, .nb-vp-faq-question::after, .nb-pagefaq-question::after, .nb-help-faq-question::after, .nb-cov-faq-question::after {
    content: '+'; font-size: 1.5rem; color: var(--nb-primary); flex-shrink: 0; transition: transform 0.3s ease; font-weight: 400;
}
.nb-faq-item.open .nb-faq-question::after,
.nb-vp-faq-item.open .nb-vp-faq-question::after,
.nb-pagefaq-item.open .nb-pagefaq-question::after,
.nb-help-faq-item.open .nb-help-faq-question::after,
.nb-cov-faq-item.open .nb-cov-faq-question::after { transform: rotate(45deg); }
.nb-faq-answer, .nb-vp-faq-answer, .nb-pagefaq-answer, .nb-help-faq-answer, .nb-cov-faq-answer {
    max-height: 0; overflow: hidden; transition: max-height 0.3s ease, padding 0.3s ease;
    padding: 0 1.25rem; color: var(--nb-text-secondary); font-size: 0.9375rem; line-height: 1.7;
}
.nb-faq-item.open .nb-faq-answer,
.nb-vp-faq-item.open .nb-vp-faq-answer,
.nb-pagefaq-item.open .nb-pagefaq-answer,
.nb-help-faq-item.open .nb-help-faq-answer,
.nb-cov-faq-item.open .nb-cov-faq-answer { max-height: 500px; padding: 0 1.25rem 1.25rem; }

/* ===== Home FAQ + News Row (index — 常见问题 + 宽带资讯) ===== */
.nb-home-faq-news-row {
    display: grid; grid-template-columns: 1.15fr 1fr; gap: 1.5rem; align-items: start;
}
/* Shared card shell */
.nb-home-faq-news-card {
    background: var(--nb-white); border: 1px solid var(--nb-border);
    border-radius: 16px; padding: 1.75rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.04), 0 1px 2px rgba(0,0,0,.06);
    height: 100%;
}
/* Header row */
.nb-home-faq-news-hd {
    display: flex; align-items: center; gap: .625rem;
    padding-bottom: 1rem; margin-bottom: 1rem;
    border-bottom: 1px solid var(--nb-border-lighter);
}
.nb-home-faq-news-hd-icon {
    width: 40px; height: 40px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.nb-home-faq-news-hd-icon--faq { background: var(--nb-bg-blue); color: var(--nb-primary); }
.nb-home-faq-news-hd-icon--news { background: #FFF7ED; color: #EA580C; }
.nb-home-faq-news-hd-title { font-size: 1.0625rem; font-weight: 700; color: var(--nb-text-primary); margin: 0; }
.nb-home-faq-news-hd-more {
    margin-left: auto; font-size: .75rem; font-weight: 600; color: var(--nb-primary);
    text-decoration: none; transition: opacity .2s ease;
}
.nb-home-faq-news-hd-more:hover { opacity: .7; }

/* FAQ grid (single column in left panel) */
.nb-home-faq-grid {
    display: grid; grid-template-columns: 1fr; gap: .75rem;
    counter-reset: hfaq-num;
}
.nb-home-faq-item {
    counter-increment: hfaq-num;
    background: var(--nb-bg-light); border: 1px solid transparent;
    border-radius: 12px; overflow: hidden;
    transition: all .3s ease;
}
.nb-home-faq-item:hover {
    border-color: var(--nb-primary-light);
    box-shadow: 0 4px 12px rgba(0,82,217,.06);
}
.nb-home-faq-item.open {
    border-color: var(--nb-primary);
    box-shadow: 0 4px 16px rgba(0,82,217,.1);
    background: var(--nb-white);
}
/* Question button */
.nb-home-faq-question {
    width: 100%; padding: .875rem 1rem; text-align: left; font-size: .875rem; font-weight: 600;
    color: var(--nb-text-primary); display: flex; align-items: flex-start; gap: .5rem;
    background: transparent; transition: background .2s ease; cursor: pointer;
    line-height: 1.5; border: none; outline: none;
}
.nb-home-faq-question:hover { background: rgba(0,82,217,.03); }
/* Q-number badge (::before) */
.nb-home-faq-question::before {
    content: 'Q' counter(hfaq-num, decimal-leading-zero);
    flex-shrink: 0; font-size: .6875rem; font-weight: 800;
    color: var(--nb-primary); background: var(--nb-bg-blue);
    border-radius: 5px; padding: .125rem .4375rem;
    margin-top: .125rem; font-variant-numeric: tabular-nums; line-height: 1.4;
}
.nb-home-faq-item.open .nb-home-faq-question::before {
    background: var(--nb-primary); color: var(--nb-white);
}
/* +/- toggle (::after) */
.nb-home-faq-question::after {
    content: '+'; font-size: 1.125rem; color: var(--nb-text-muted);
    flex-shrink: 0; transition: transform .3s ease, background .3s ease, color .3s ease;
    font-weight: 300; width: 24px; height: 24px; display: flex; align-items: center;
    justify-content: center; border-radius: 50%; background: var(--nb-white);
    margin-top: .125rem; line-height: 1;
}
.nb-home-faq-item.open .nb-home-faq-question::after {
    transform: rotate(45deg); color: var(--nb-primary); background: var(--nb-bg-blue);
}
/* Answer */
.nb-home-faq-answer {
    max-height: 0; overflow: hidden; transition: max-height .35s ease, padding .35s ease;
    padding: 0 1rem; color: var(--nb-text-secondary); font-size: .8125rem; line-height: 1.75;
}
.nb-home-faq-item.open .nb-home-faq-answer { max-height: 500px; padding: 0 1rem .875rem; }

/* ===== News list (right panel) ===== */
.nb-home-news-list { counter-reset: hnews-num; display: flex; flex-direction: column; }
.nb-home-news-item {
    display: flex; align-items: center; gap: .5rem; counter-increment: hnews-num;
    padding: .625rem .5rem; border-radius: 8px;
    text-decoration: none; transition: all .2s ease;
    border-bottom: 1px solid var(--nb-border-lighter);
}
.nb-home-news-item:last-child { border-bottom: none; }
.nb-home-news-item:hover { background: var(--nb-bg-light); padding-left: .75rem; padding-right: .75rem; }
.nb-home-news-item::before {
    content: counter(hnews-num, decimal-leading-zero);
    flex-shrink: 0; width: 1.125rem; font-size: .6875rem; font-weight: 700;
    color: #EA580C; font-variant-numeric: tabular-nums; line-height: 1;
}
.nb-home-news-item-text {
    flex: 1; min-width: 0; font-size: .875rem; color: var(--nb-text-primary);
    line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nb-home-news-item:hover .nb-home-news-item-text { color: var(--nb-primary); }
.nb-home-news-item-time {
    flex-shrink: 0; font-size: .6875rem; color: var(--nb-text-muted);
    background: var(--nb-bg-light); padding: .125rem .5rem; border-radius: 3px; line-height: 1.4;
}

/* ===== Coverage Article Detail (Special Template) ===== */
.nb-coverage-detail { }
.nb-coverage-section {
    background: var(--nb-white); border: 1px solid var(--nb-border); border-radius: 12px; padding: 2rem; margin-bottom: 1.5rem;
}
.nb-coverage-section-title {
    font-size: 1.375rem; font-weight: 700; color: var(--nb-text-primary); margin-bottom: 1.25rem; padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--nb-primary); display: flex; align-items: center; gap: 0.5rem;
}
.nb-coverage-section-title-icon {
    width: 32px; height: 32px; background: var(--nb-primary); border-radius: 6px; color: var(--nb-white);
    display: flex; align-items: center; justify-content: center; font-size: 1rem; flex-shrink: 0;
}
.nb-coverage-villages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
.nb-coverage-village {
    background: var(--nb-bg-light); border: 1px solid var(--nb-border); border-radius: 6px; padding: 0.75rem 1rem;
    font-size: 0.9375rem; color: var(--nb-text-primary); display: flex; align-items: center; gap: 0.5rem;
}
.nb-coverage-village::before {
    content: '\1F4CD'; font-size: 0.875rem;
}
.nb-coverage-cta-bar, .nb-lac-cta-bar, .nb-vp-cta-bar, .nb-va-cta-bar, .nb-van-cta-bar, .nb-cov-cta-bar {
    background: linear-gradient(135deg, var(--nb-primary), var(--nb-primary-dark)); color: var(--nb-white); border-radius: 12px;
    padding: 2rem; text-align: center; margin: 2rem 0;
}
.nb-coverage-cta-bar h3, .nb-lac-cta-bar h3, .nb-vp-cta-bar h3, .nb-va-cta-bar h3, .nb-van-cta-bar h3, .nb-cov-cta-bar h3 { font-size: 1.5rem; font-weight: 800; margin-bottom: 0.5rem; }
.nb-coverage-cta-bar-phone, .nb-lac-cta-bar-phone, .nb-vp-cta-bar-phone, .nb-va-cta-bar-phone, .nb-van-cta-bar-phone, .nb-cov-cta-bar-phone { font-size: 2rem; font-weight: 800; color: var(--nb-accent-gold); margin: 0.5rem 0; display: block; }

/* ===== Pagination ===== */
.nb-pagination { display: flex; justify-content: center; gap: 0.375rem; margin: 2rem 0; flex-wrap: wrap; }
.nb-pagination a, .nb-pagination span {
    display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px;
    padding: 0 0.75rem; border: 1px solid var(--nb-border); border-radius: 6px; font-size: 0.9375rem; color: var(--nb-text-primary);
    background: var(--nb-white); transition: all 0.2s ease;
}
.nb-pagination a:hover { border-color: var(--nb-primary); color: var(--nb-primary); text-decoration: none; }
.nb-pagination .current { background: var(--nb-primary); color: var(--nb-white); border-color: var(--nb-primary); font-weight: 700; }

/* ===== Single Page ===== */
.nb-single-page { background: var(--nb-white); padding: 2rem; border: 1px solid var(--nb-border); border-radius: 12px; }
.nb-single-page h1 { font-size: 1.875rem; font-weight: 800; margin-bottom: 1.5rem; color: var(--nb-text-primary); }

/* ===== Footer ===== */
.nb-footer { background: var(--nb-footer-bg); color: var(--nb-footer-text); padding: 3rem 0 0; margin-top: 3rem; }
.nb-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr; gap: 2rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255,255,255,0.1); }
.nb-footer-col h4 { color: var(--nb-white); font-size: 1.0625rem; font-weight: 700; margin-bottom: 1rem; }
.nb-footer-col p, .nb-footer-col li { font-size: 0.875rem; line-height: 2; color: var(--nb-footer-text); }
.nb-footer-col a { color: var(--nb-footer-text); }
.nb-footer-col a:hover { color: var(--nb-white); }
.nb-footer-contact-phone { font-size: 1.75rem; font-weight: 800; color: var(--nb-white); display: block; margin: 0.5rem 0; word-break: break-all; }
.nb-footer-contact-phone span { color: var(--nb-accent-gold); }
.nb-footer-qr { display: flex; gap: 1rem; margin-top: 1rem; }
.nb-footer-qr-item { text-align: center; }
.nb-footer-qr-item .nb-footer-qr-box {
    width: 90px; height: 90px; background: var(--nb-white); border-radius: 8px; display: flex;
    align-items: center; justify-content: center; font-size: 0.6875rem; color: var(--nb-text-primary);
}
.nb-footer-qr-item span { display: block; font-size: 0.75rem; margin-top: 0.375rem; }
.nb-footer-bottom { text-align: center; padding: 1.5rem 0; font-size: 0.8125rem; color: var(--nb-footer-text-muted); }
.nb-footer-links { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; margin-bottom: 0.75rem; }
.nb-footer-links a { font-size: 0.8125rem; color: var(--nb-footer-text-muted); }
.nb-footer-links a:hover { color: var(--nb-white); }

/* ===== CTA Section ===== */
.nb-cta-section, .nb-lp-cta, .nb-pagefaq-cta, .nb-about-cta, .nb-bb-cta, .nb-guide-cta, .nb-help-cta, .nb-network-cta, .nb-service-cta, .nb-appt-cta, .nb-citysite-cta {
    background: linear-gradient(135deg, var(--nb-primary) 0%, var(--nb-primary-dark) 100%); color: var(--nb-white);
    padding: 3rem 0; text-align: center; border-radius: 0;
}
.nb-cta-section h2, .nb-lp-cta h2, .nb-pagefaq-cta h2, .nb-about-cta h2, .nb-bb-cta h2, .nb-guide-cta h2, .nb-help-cta h2, .nb-network-cta h2, .nb-service-cta h2, .nb-appt-cta h2, .nb-citysite-cta h2 { font-size: 1.875rem; font-weight: 800; margin-bottom: 0.5rem; }
.nb-cta-section p, .nb-lp-cta p, .nb-pagefaq-cta p, .nb-about-cta p, .nb-bb-cta p, .nb-guide-cta p, .nb-help-cta p, .nb-network-cta p, .nb-service-cta p, .nb-appt-cta p, .nb-citysite-cta p { font-size: 1.125rem; opacity: 0.9; margin-bottom: 1.5rem; }
.nb-cta-section-phone, .nb-lp-cta-phone, .nb-pagefaq-cta-phone, .nb-about-cta-phone, .nb-bb-cta-phone, .nb-guide-cta-phone, .nb-help-cta-phone, .nb-network-cta-phone, .nb-service-cta-phone, .nb-appt-cta-phone, .nb-citysite-cta-phone { font-size: 2.5rem; font-weight: 800; color: var(--nb-accent-gold); word-break: break-all; hyphens: none; }
.nb-cta-section .nb-btn-outline, .nb-lp-cta .nb-btn-outline, .nb-pagefaq-cta .nb-btn-outline, .nb-about-cta .nb-btn-outline, .nb-bb-cta .nb-btn-outline, .nb-guide-cta .nb-btn-outline, .nb-help-cta .nb-btn-outline, .nb-network-cta .nb-btn-outline, .nb-service-cta .nb-btn-outline, .nb-appt-cta .nb-btn-outline, .nb-citysite-cta .nb-btn-outline { border-color: var(--nb-white); color: var(--nb-white); background: transparent; }
.nb-cta-section .nb-btn-outline:hover, .nb-lp-cta .nb-btn-outline:hover, .nb-pagefaq-cta .nb-btn-outline:hover, .nb-about-cta .nb-btn-outline:hover, .nb-bb-cta .nb-btn-outline:hover, .nb-guide-cta .nb-btn-outline:hover, .nb-help-cta .nb-btn-outline:hover, .nb-network-cta .nb-btn-outline:hover, .nb-service-cta .nb-btn-outline:hover, .nb-appt-cta .nb-btn-outline:hover, .nb-citysite-cta .nb-btn-outline:hover { background: var(--nb-white); color: var(--nb-primary); }

/* ===== Home CTA Section (index — 立即办理) ===== */
.nb-home-cta {
    background: linear-gradient(135deg, var(--nb-primary) 0%, var(--nb-primary-dark) 100%); color: var(--nb-white);
    padding: 3rem 0; text-align: center; border-radius: 0;
}
.nb-home-cta h2 { font-size: 1.875rem; font-weight: 800; margin-bottom: 0.5rem; }
.nb-home-cta p { font-size: 1.125rem; opacity: 0.9; margin-bottom: 1.5rem; }
.nb-home-cta-phone { font-size: 2.5rem; font-weight: 800; color: var(--nb-accent-gold); word-break: break-all; hyphens: none; }
.nb-home-cta .nb-btn-outline { border-color: var(--nb-white); color: var(--nb-white); background: transparent; }
.nb-home-cta .nb-btn-outline:hover { background: var(--nb-white); color: var(--nb-primary); }

/* ===== Floating Contact ===== */
.nb-float-contact {
    position: fixed; right: 1.25rem; bottom: 5rem; z-index: 900; display: flex; flex-direction: column; gap: 0.625rem;
}
.nb-float-btn {
    width: 52px; height: 52px; border-radius: 50%; background: var(--nb-primary); color: var(--nb-white);
    display: flex; align-items: center; justify-content: center; font-size: 1.5rem; box-shadow: 0 4px 16px rgba(0,82,217,0.4);
    transition: all 0.3s ease; cursor: pointer; border: 2px solid var(--nb-white);
}
.nb-float-btn:hover { background: var(--nb-primary-dark); transform: scale(1.1); }
.nb-float-btn-phone { background: var(--nb-accent-red); }
.nb-float-btn-phone:hover { background: var(--nb-accent-red-dark); }

/* ===== New Shared Components (v3 扩展) ===== */

/* --- 1. Testimonials / Reviews (用户评价) --- */
.nb-testimonials-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
}
.nb-testimonial-card {
    background: var(--nb-white); border: 1px solid var(--nb-border); border-radius: 16px;
    padding: 2rem; transition: all 0.3s ease; position: relative;
}
.nb-testimonial-card::before {
    content: '\201C'; position: absolute; top: 1rem; left: 1.5rem;
    font-size: 3.5rem; color: var(--nb-primary); opacity: 0.15; line-height: 1;
    font-family: Georgia, serif;
}
.nb-testimonial-card:hover {
    border-color: var(--nb-primary); box-shadow: 0 8px 32px rgba(0,82,217,0.1); transform: translateY(-4px);
}
.nb-testimonial-stars { color: #FF9500; font-size: 0.875rem; margin-bottom: 0.75rem; letter-spacing: 2px; }
.nb-testimonial-text { font-size: 0.9375rem; color: var(--nb-text-secondary); line-height: 1.8; margin-bottom: 1rem; }
.nb-testimonial-author { display: flex; align-items: center; gap: 0.75rem; border-top: 1px solid var(--nb-border-lighter); padding-top: 1rem; }
.nb-testimonial-avatar {
    width: 40px; height: 40px; border-radius: 50%; background: var(--nb-bg-blue);
    display: flex; align-items: center; justify-content: center;
    font-size: 0.75rem; color: var(--nb-primary); font-weight: 700; flex-shrink: 0;
}
.nb-testimonial-name { font-weight: 600; font-size: 0.875rem; color: var(--nb-text-primary); }
.nb-testimonial-loc { font-size: 0.75rem; color: #9E9E9E; }

/* --- 2. Service Guarantees / Trust Badges (服务保障) --- */
.nb-guarantees-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem;
}
.nb-guarantee-card {
    text-align: center; padding: 2.5rem 1.5rem; border-radius: 16px;
    background: var(--nb-white); border: 1px solid var(--nb-border); transition: all 0.3s ease;
}
.nb-guarantee-card:hover {
    border-color: var(--nb-primary); box-shadow: 0 8px 28px rgba(0,82,217,0.08); transform: translateY(-3px);
}
.nb-guarantee-icon {
    width: 64px; height: 64px; margin: 0 auto 1rem;
    background: linear-gradient(135deg, var(--nb-bg-blue), #D4E1F9); border-radius: 50%;
    display: flex; align-items: center; justify-content: center; font-size: 1.75rem;
}
.nb-guarantee-title { font-size: 1.0625rem; font-weight: 700; color: var(--nb-text-primary); margin-bottom: 0.5rem; }
.nb-guarantee-desc { font-size: 0.875rem; color: var(--nb-text-secondary); line-height: 1.6; }

/* --- 3. Timeline (发展历程) --- */
.nb-timeline { position: relative; padding: 1rem 0; }
.nb-timeline::before {
    content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px;
    background: linear-gradient(to bottom, var(--nb-primary), var(--nb-border));
    transform: translateX(-50%);
}
.nb-timeline-item {
    display: grid; grid-template-columns: 1fr 60px 1fr; gap: 2rem; align-items: start;
    margin-bottom: 2.5rem; position: relative;
}
.nb-timeline-item:nth-child(even) { direction: rtl; }
.nb-timeline-item:nth-child(even) .nb-timeline-content { direction: ltr; }
.nb-timeline-year {
    text-align: center; font-weight: 800; font-size: 1.125rem; color: var(--nb-primary);
    background: var(--nb-white); border: 2px solid var(--nb-primary); border-radius: 50%;
    width: 52px; height: 52px; display: flex; align-items: center; justify-content: center;
    margin: 0 auto; position: relative; z-index: 1; flex-shrink: 0;
}
.nb-timeline-content {
    background: var(--nb-white); border: 1px solid var(--nb-border); border-radius: 12px;
    padding: 1.5rem; transition: all 0.3s ease;
}
.nb-timeline-content:hover { border-color: var(--nb-primary); box-shadow: 0 4px 20px rgba(0,82,217,0.08); }
.nb-timeline-content h3 { font-size: 1.0625rem; font-weight: 700; color: var(--nb-text-primary); margin-bottom: 0.375rem; }
.nb-timeline-content p { font-size: 0.875rem; color: var(--nb-text-secondary); line-height: 1.6; }
.nb-timeline-spacer { /* placeholder for grid alignment */ }

/* --- 4. Partners / Logo Wall (合作伙伴) --- */
.nb-partners-grid {
    display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.5rem; align-items: center;
}
.nb-partner-item {
    text-align: center; padding: 1.5rem 1rem; border-radius: 12px;
    background: var(--nb-bg-light); border: 1px solid var(--nb-border-lighter); transition: all 0.3s ease;
    font-size: 0.8125rem; color: var(--nb-text-secondary); font-weight: 600;
}
.nb-partner-item:hover { border-color: var(--nb-primary); background: var(--nb-white); box-shadow: 0 4px 16px rgba(0,82,217,0.08); }
.nb-partner-logo {
    width: 48px; height: 48px; margin: 0 auto 0.5rem;
    background: linear-gradient(135deg, var(--nb-primary), var(--nb-primary-dark)); border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    color: var(--nb-white); font-size: 0.625rem; font-weight: 800;
}

/* --- 5. Search Bar (搜索栏) --- */
.nb-search-bar {
    display: flex; max-width: 560px; margin: 0 auto 2rem; border-radius: 50px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06); overflow: hidden;
}
.nb-search-input {
    flex: 1; border: 2px solid var(--nb-border); border-right: none; padding: 0.875rem 1.5rem;
    font-size: 0.9375rem; border-radius: 50px 0 0 50px; transition: border-color 0.3s ease;
    outline: none;
}
.nb-search-input:focus { border-color: var(--nb-primary); }
.nb-search-btn {
    padding: 0.875rem 1.75rem; background: var(--nb-primary); color: var(--nb-white);
    font-size: 0.9375rem; font-weight: 700; border-radius: 0 50px 50px 0;
    transition: background 0.3s ease; white-space: nowrap;
}
.nb-search-btn:hover { background: var(--nb-primary-dark); }

/* --- 6. Filter Tags (筛选标签) --- */
.nb-filter-bar {
    display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin-bottom: 2rem;
}
.nb-filter-tag {
    padding: 0.5rem 1.25rem; border-radius: 50px; font-size: 0.875rem; font-weight: 500;
    border: 1px solid var(--nb-border); color: var(--nb-text-secondary); background: var(--nb-white);
    cursor: pointer; transition: all 0.25s ease;
}
.nb-filter-tag:hover, .nb-filter-tag.active {
    background: var(--nb-primary); color: var(--nb-white); border-color: var(--nb-primary);
}

/* --- 7. Category Tabs (分类标签页) --- */
.nb-category-tabs {
    display: flex; flex-wrap: wrap; gap: 0; border-bottom: 2px solid var(--nb-border); margin-bottom: 2rem;
}
.nb-category-tab {
    padding: 0.75rem 1.5rem; font-size: 0.9375rem; font-weight: 600; color: var(--nb-text-secondary);
    border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer;
    transition: all 0.25s ease; background: none;
}
.nb-category-tab:hover { color: var(--nb-primary); }
.nb-category-tab.active { color: var(--nb-primary); border-bottom-color: var(--nb-primary); }
.nb-category-tab-count { font-size: 0.75rem; color: #9E9E9E; margin-left: 0.25rem; }

/* --- 8. Promotion Banner (促销横幅) --- */
.nb-promo-banner {
    background: linear-gradient(135deg, var(--nb-bg-warm), #FFE0B2); border: 1px solid #FFCC80;
    border-radius: 16px; padding: 1.5rem 2rem; margin-bottom: 2rem;
    display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem;
}
.nb-promo-content { display: flex; align-items: center; gap: 1rem; }
.nb-promo-tag {
    background: var(--nb-accent-red); color: var(--nb-white); padding: 0.25rem 0.75rem; border-radius: 50px;
    font-size: 0.75rem; font-weight: 700; white-space: nowrap;
}
.nb-promo-title { font-size: 1.0625rem; font-weight: 700; color: var(--nb-text-primary); }
.nb-promo-desc { font-size: 0.875rem; color: #6D4C00; }
.nb-promo-countdown { font-size: 0.875rem; color: var(--nb-accent-red); font-weight: 600; white-space: nowrap; }

/* --- 9. Benefits Grid (优势网格) --- */
.nb-benefits-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
}
.nb-benefit-card {
    background: var(--nb-white); border: 1px solid var(--nb-border); border-radius: 16px;
    padding: 2rem 1.5rem; text-align: center; transition: all 0.3s ease;
}
.nb-benefit-card:hover {
    border-color: var(--nb-primary); box-shadow: 0 8px 32px rgba(0,82,217,0.1); transform: translateY(-4px);
}
.nb-benefit-icon {
    width: 56px; height: 56px; margin: 0 auto 1rem;
    background: var(--nb-bg-blue); border-radius: 14px; display: flex; align-items: center; justify-content: center;
    font-size: 1.5rem; transition: all 0.3s ease;
}
.nb-benefit-card:hover .nb-benefit-icon { background: var(--nb-primary); color: var(--nb-white); }
.nb-benefit-title { font-size: 1.0625rem; font-weight: 700; color: var(--nb-text-primary); margin-bottom: 0.5rem; }
.nb-benefit-desc { font-size: 0.875rem; color: var(--nb-text-secondary); line-height: 1.6; }

/* --- 10. Comparison Table (对比表) --- */
.nb-compare-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; border-radius: 12px; overflow: hidden; }
.nb-compare-table th {
    background: var(--nb-primary); color: var(--nb-white); padding: 1rem 1.25rem; font-size: 0.9375rem; font-weight: 700; text-align: center;
}
.nb-compare-table th:first-child { text-align: left; }
.nb-compare-table td {
    padding: 0.875rem 1.25rem; font-size: 0.875rem; color: var(--nb-text-secondary); text-align: center;
    border-bottom: 1px solid var(--nb-border-lighter);
}
.nb-compare-table td:first-child { text-align: left; font-weight: 600; color: var(--nb-text-primary); }
.nb-compare-table tr:nth-child(even) td { background: var(--nb-bg-light); }
.nb-compare-table tr:hover td { background: var(--nb-bg-blue); }
.nb-compare-check { color: #00A86B; font-weight: 700; }
.nb-compare-cross { color: #C0C0C0; }

/* --- 11. Step Guide (步骤指南 — 编号流程) --- */
.nb-step-guide-list { counter-reset: step; display: flex; flex-direction: column; gap: 0; }
.nb-step-guide-item {
    display: flex; gap: 1.5rem; align-items: flex-start; padding: 1.5rem 0;
    border-bottom: 1px solid var(--nb-border-lighter); position: relative;
}
.nb-step-guide-item:last-child { border-bottom: none; }
.nb-step-num {
    counter-increment: step; flex-shrink: 0;
    width: 44px; height: 44px; border-radius: 50%; background: var(--nb-primary); color: var(--nb-white);
    display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1.0625rem;
}
.nb-step-guide-item:nth-child(4) .nb-step-num { background: #00A86B; }
.nb-step-guide-item:nth-child(5) .nb-step-num { background: #FF9500; }
.nb-step-guide-content h3 { font-size: 1.0625rem; font-weight: 700; color: var(--nb-text-primary); margin-bottom: 0.25rem; }
.nb-step-guide-content p { font-size: 0.875rem; color: var(--nb-text-secondary); line-height: 1.6; }

/* --- 12. Tag Cloud (标签云) --- */
.nb-tag-cloud { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.nb-tag-item {
    padding: 0.375rem 0.875rem; border-radius: 6px; font-size: 0.8125rem; color: var(--nb-text-secondary);
    background: var(--nb-bg-light); border: 1px solid var(--nb-border-lighter); transition: all 0.25s ease;
    cursor: pointer; text-decoration: none;
}
.nb-tag-item:hover { background: var(--nb-primary); color: var(--nb-white); border-color: var(--nb-primary); }
.nb-tag-item--hot { background: var(--nb-bg-warm); color: #E65100; border-color: #FFCC80; }
.nb-tag-item--hot:hover { background: var(--nb-accent-red); color: var(--nb-white); border-color: var(--nb-accent-red); }

/* --- 13. Hero Stats Bar (首页实时数据条) --- */
.nb-hero-stats-bar {
    display: flex; justify-content: center; gap: 3rem; flex-wrap: wrap;
    padding: 2rem 0; margin-top: 1rem;
}
.nb-hero-stat-item { text-align: center; }
.nb-hero-stat-value {
    font-size: 2rem; font-weight: 800; color: var(--nb-primary); line-height: 1.2;
}
.nb-hero-stat-label { font-size: 0.8125rem; color: #9E9E9E; margin-top: 0.25rem; }

/* --- 14. Info Cards (信息卡片组 — 用于服务/帮助) --- */
.nb-info-cards {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem;
}
.nb-info-card {
    background: var(--nb-white); border: 1px solid var(--nb-border); border-radius: 16px;
    padding: 2rem; display: flex; gap: 1.5rem; align-items: flex-start;
    transition: all 0.3s ease;
}
.nb-info-card:hover { border-color: var(--nb-primary); box-shadow: 0 6px 24px rgba(0,82,217,0.08); }
.nb-info-card-icon {
    width: 56px; height: 56px; border-radius: 14px; background: var(--nb-bg-blue);
    display: flex; align-items: center; justify-content: center; font-size: 1.5rem;
    flex-shrink: 0;
}
.nb-info-card-body h3 { font-size: 1.0625rem; font-weight: 700; color: var(--nb-text-primary); margin-bottom: 0.375rem; }
.nb-info-card-body p { font-size: 0.875rem; color: var(--nb-text-secondary); line-height: 1.6; }

/* --- 15. Scroll-triggered animation base --- */
.nb-animate {
    opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease;
}
.nb-animate.visible { opacity: 1; transform: translateY(0); }
.nb-animate-delay-1 { transition-delay: 0.1s; }
.nb-animate-delay-2 { transition-delay: 0.2s; }
.nb-animate-delay-3 { transition-delay: 0.3s; }

/* ============================================================
   NEW SINGLE PAGE TEMPLATES (v4 — 15 fully differentiated designs)
   ============================================================ */

/* ===== [1] nb-au — 关于我们 ===== */
.nb-au-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:5rem 0;position:relative;overflow:hidden}
.nb-au-hero::before{content:'';position:absolute;right:-5%;bottom:-30%;width:400px;height:400px;background:radial-gradient(circle,rgba(0,61,156,.08) 0%,transparent 70%);border-radius:50%}
.nb-au-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;position:relative;z-index:1}
.nb-au-hero-text{max-width:560px}
.nb-au-hero-kicker{display:inline-block;font-size:.75rem;letter-spacing:4px;color:var(--nb-primary-dark);border:1px solid var(--nb-primary-dark);padding:.25rem .75rem;margin-bottom:1rem;font-weight:600}
.nb-au-hero-title{font-size:2.75rem;font-weight:800;line-height:1.2;margin-bottom:1rem;color:var(--nb-primary-dark)}
.nb-au-hero-accent{display:block;color:var(--nb-primary)}
.nb-au-hero-desc{font-size:1.0625rem;color:var(--nb-text-secondary);line-height:1.7;margin-bottom:1.5rem}
.nb-au-hero-metrics{display:flex;gap:2rem}
.nb-au-hero-metric strong{display:block;font-size:1.875rem;font-weight:800;color:var(--nb-primary-dark)}
.nb-au-hero-metric span{font-size:.8125rem;color:var(--nb-text-secondary)}
.nb-au-hero-visual{display:flex;justify-content:center;align-items:center;position:relative}
.nb-au-hero-badge{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));border-radius:16px;padding:2rem;text-align:center;color:var(--nb-white);z-index:1}
.nb-au-hero-badge-num{font-size:3.5rem;font-weight:900;line-height:1}
.nb-au-hero-badge-num span{font-size:1rem;font-weight:600}
.nb-au-hero-badge p{font-size:.875rem;margin-top:.25rem;font-weight:600}
.nb-au-hero-rings{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
.nb-au-ring{position:absolute;border:1px solid rgba(0,61,156,.12);border-radius:50%}
.nb-au-ring:nth-child(1){width:200px;height:200px;top:-100px;left:-100px;animation:nbAuRingPulse 3s infinite}
.nb-au-ring:nth-child(2){width:300px;height:300px;top:-150px;left:-150px;animation:nbAuRingPulse 3s infinite .5s}
.nb-au-ring:nth-child(3){width:400px;height:400px;top:-200px;left:-200px;animation:nbAuRingPulse 3s infinite 1s}
@keyframes nbAuRingPulse{0%,100%{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}
.nb-au-mission{padding:3rem 0;background:var(--nb-bg-light)}
.nb-au-mission-card{background:var(--nb-white);border-radius:16px;padding:2.5rem;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.04);border-left:4px solid var(--nb-primary-dark)}
.nb-au-mission-icon{font-size:2rem;color:var(--nb-primary-dark);margin-bottom:1rem}
.nb-au-mission-quote{font-size:1.375rem;font-weight:600;color:var(--nb-primary-dark);line-height:1.6;margin-bottom:.75rem;font-style:italic}
.nb-au-mission-attribution{font-size:.875rem;color:var(--nb-text-muted)}
.nb-au-dashboard{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.nb-au-dash-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem 1.5rem;text-align:center;transition:all .3s}
.nb-au-dash-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 8px 28px rgba(0,61,156,.1);transform:translateY(-4px)}
.nb-au-dash-icon-wrap{width:56px;height:56px;margin:0 auto 1rem;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}
/* Each dashboard card has a unique gradient icon background */
.nb-au-dash-card:nth-child(1) .nb-au-dash-icon-wrap{background:linear-gradient(135deg,#0B1E3F,#1A3A6B)}
.nb-au-dash-card:nth-child(2) .nb-au-dash-icon-wrap{background:linear-gradient(135deg,#C8A951,#D4AF37)}
.nb-au-dash-card:nth-child(3) .nb-au-dash-icon-wrap{background:linear-gradient(135deg,#1A5276,#2471A3)}
.nb-au-dash-card:nth-child(4) .nb-au-dash-icon-wrap{background:linear-gradient(135deg,#117A65,#148F77)}
.nb-au-dash-value{font-size:2rem;font-weight:800;color:var(--nb-primary-dark)}
.nb-au-dash-value span{font-size:1rem;color:var(--nb-text-secondary)}
.nb-au-dash-label{font-size:.9375rem;font-weight:600;color:var(--nb-text-primary);margin:.375rem 0}
.nb-au-dash-note{font-size:.8125rem;color:var(--nb-text-muted);line-height:1.5}
.nb-au-milestones-title{text-align:center;font-size:1.75rem;font-weight:800;margin-bottom:.5rem}
.nb-au-milestones-sub{text-align:center;opacity:.7;font-size:.9375rem;margin-bottom:2.5rem}
/* 垂直时间线容器 */
.nb-au-milestones{position:relative;padding-left:0;max-width:860px;margin:0 auto}
/* 垂直时间线主干 */
.nb-au-milestones::before{content:'';position:absolute;left:59px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--nb-primary-light),var(--nb-primary),var(--nb-primary-dark),#FF9500)}
/* 每行 = 年圈 + 卡片 */
.nb-au-ms-item{display:flex;align-items:flex-start;gap:2rem;margin-bottom:2rem;position:relative}
.nb-au-ms-item:last-child{margin-bottom:0}
/* 年份圆环 */
.nb-au-ms-circle{flex-shrink:0;width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:900;color:var(--nb-white);position:relative;z-index:2;box-shadow:0 6px 24px rgba(0,61,156,.18);transition:all .35s ease}
.nb-au-ms-item:nth-child(1) .nb-au-ms-circle{background:linear-gradient(135deg,var(--nb-primary),var(--nb-primary-light))}
.nb-au-ms-item:nth-child(2) .nb-au-ms-circle{background:linear-gradient(135deg,#1A5DC7,#3D7FED)}
.nb-au-ms-item:nth-child(3) .nb-au-ms-circle{background:linear-gradient(135deg,#2155C0,#4A85F0)}
.nb-au-ms-item:nth-child(4) .nb-au-ms-circle{background:linear-gradient(135deg,#2B5DBA,#5895F5)}
.nb-au-ms-item:nth-child(5) .nb-au-ms-circle{background:linear-gradient(135deg,#3A60BB,#6EA5FF)}
.nb-au-ms-item:nth-child(6) .nb-au-ms-circle{background:linear-gradient(135deg,var(--nb-primary-dark),#FF9500);box-shadow:0 6px 28px rgba(255,149,0,.25)}
/* 年圈hover放大 */
.nb-au-ms-item:hover .nb-au-ms-circle{transform:scale(1.08);box-shadow:0 10px 32px rgba(0,61,156,.25)}
.nb-au-ms-item:nth-child(6):hover .nb-au-ms-circle{box-shadow:0 10px 36px rgba(255,149,0,.35)}
/* 卡片内容 */
.nb-au-ms-card{flex:1;background:var(--nb-white);border-radius:14px;padding:1.5rem 1.75rem;border:1px solid var(--nb-border);transition:all .3s ease;position:relative}
.nb-au-ms-card::before{content:'';position:absolute;left:-8px;top:22px;width:14px;height:14px;background:var(--nb-white);border-left:1px solid var(--nb-border);border-bottom:1px solid var(--nb-border);transform:rotate(45deg)}
.nb-au-ms-item:hover .nb-au-ms-card{border-color:var(--nb-primary-light);box-shadow:0 4px 20px rgba(0,61,156,.08);transform:translateX(6px)}
.nb-au-ms-item:nth-child(6):hover .nb-au-ms-card{border-color:#FF9500;box-shadow:0 4px 24px rgba(255,149,0,.12)}
.nb-au-ms-card h3{font-size:1.125rem;font-weight:700;margin-bottom:.375rem;color:var(--nb-text-primary)}
.nb-au-ms-card p{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.7;margin:0}
/* 最后一项（2024）特殊样式 */
.nb-au-ms-item--highlight .nb-au-ms-card{border-color:#FFD180;background:linear-gradient(135deg,#FFFBEB,#F0F5FF)}
.nb-au-ms-item--highlight:hover .nb-au-ms-card{border-color:#FF9500}
.nb-au-values{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.nb-au-value-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem 1.5rem;text-align:center;transition:all .3s;position:relative;overflow:hidden}
.nb-au-value-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 8px 28px rgba(0,61,156,.08);transform:translateY(-3px)}
.nb-au-value-num{position:absolute;top:.75rem;right:1rem;font-size:2.5rem;font-weight:900;color:var(--nb-border-lighter);line-height:1}
.nb-au-value-icon{font-size:2rem;margin-bottom:.75rem}
.nb-au-value-card h3{font-size:1.0625rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:.5rem}
.nb-au-value-card p{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6}
.nb-au-tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-au-tech-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;transition:all .3s}
.nb-au-tech-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 6px 20px rgba(0,61,156,.08)}
.nb-au-tech-header{margin-bottom:1rem}
.nb-au-tech-badge{font-size:.6875rem;font-weight:700;background:var(--nb-primary-dark);color:var(--nb-white);padding:.2rem .75rem;border-radius:4px}
.nb-au-tech-card h3{font-size:1.125rem;font-weight:700;color:var(--nb-primary-dark);margin-top:.75rem}
.nb-au-tech-card p{font-size:.9375rem;color:var(--nb-text-secondary);line-height:1.7;margin-bottom:1rem}
.nb-au-tech-card ul li{font-size:.875rem;color:var(--nb-text-secondary);padding:.375rem 0 .375rem 1.25rem;position:relative}
.nb-au-tech-card ul li::before{content:'▸';position:absolute;left:0;color:var(--nb-primary-dark)}
.nb-au-cta-final{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);padding:4rem 0;text-align:center}
.nb-au-cta-final h2{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.nb-au-cta-final p{font-size:1.125rem;opacity:.85;margin-bottom:1.5rem}
.nb-au-cta-phone-row{margin-bottom:1.5rem}
.nb-au-cta-phone{font-size:2.5rem;font-weight:900;color:var(--nb-accent-gold);text-decoration:none}
.nb-au-cta-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-au-cta-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.nb-au-btn-primary{display:inline-block;padding:.875rem 2.5rem;background:var(--nb-white);color:var(--nb-primary-dark);border-radius:50px;font-weight:800;font-size:1.0625rem;text-decoration:none;transition:all .3s}
.nb-au-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none;color:var(--nb-primary-dark)}
.nb-au-btn-ghost{display:inline-block;padding:.875rem 2.5rem;border:2px solid rgba(255,255,255,.5);color:var(--nb-white);border-radius:8px;font-weight:700;font-size:1.0625rem;text-decoration:none;transition:all .3s}
.nb-au-btn-ghost:hover{background:var(--nb-white);color:var(--nb-primary-dark);text-decoration:none}

/* ===== [2] nb-bk — 预约办理 ===== */
.nb-bk-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:4.5rem 0}
.nb-bk-hero-grid{display:grid;grid-template-columns:1fr 440px;gap:3rem;align-items:center}
.nb-bk-hero-left{max-width:520px}
.nb-bk-hero-badge{display:inline-block;font-size:.8125rem;background:var(--nb-bg-blue);color:var(--nb-primary-dark);padding:.3rem 1rem;border-radius:20px;margin-bottom:1rem;font-weight:600}
.nb-bk-hero-title{font-size:2.5rem;font-weight:800;line-height:1.2;margin-bottom:1rem;color:var(--nb-primary-dark)}
.nb-bk-hero-desc{font-size:1.0625rem;color:var(--nb-text-secondary);margin-bottom:2rem;line-height:1.7}
.nb-bk-hero-steps{display:flex;flex-direction:column;gap:1rem}
.nb-bk-hero-step{display:flex;gap:1rem;align-items:center}
.nb-bk-step-num{width:36px;height:36px;background:var(--nb-primary-dark);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;flex-shrink:0;color:var(--nb-white)}
.nb-bk-hero-step strong{display:block;font-size:1rem;color:var(--nb-text-primary)}
.nb-bk-hero-step span{font-size:.8125rem;color:var(--nb-text-secondary)}
.nb-bk-hero-card{background:var(--nb-white);border-radius:16px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.15)}
.nb-bk-hero-card-header{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary));color:var(--nb-white);padding:1.5rem 2rem;text-align:center}
.nb-bk-hero-card-header h2{font-size:1.25rem;font-weight:700;margin-bottom:.25rem}
.nb-bk-hero-card-header p{font-size:.875rem;opacity:.85}
.nb-bk-hero-card-body{padding:1.5rem 2rem}
.nb-bk-form-group{margin-bottom:1rem}
.nb-bk-form-group label{display:block;font-size:.875rem;font-weight:600;color:var(--nb-text-primary);margin-bottom:.375rem}
.nb-bk-input{width:100%;padding:.75rem 1rem;border:1px solid var(--nb-border-input);border-radius:8px;font-size:.9375rem;transition:border-color .2s;box-sizing:border-box}
.nb-bk-input:focus{outline:none;border-color:var(--nb-primary);box-shadow:0 0 0 3px rgba(0,82,217,.1)}
.nb-bk-speed-options{display:flex;gap:.5rem;flex-wrap:wrap}
.nb-bk-speed-opt{padding:.5rem 1rem;border:1px solid var(--nb-border-input);border-radius:8px;font-size:.8125rem;font-weight:600;background:var(--nb-white);cursor:pointer;transition:all .2s}
.nb-bk-speed-opt:hover{border-color:var(--nb-primary)}
.nb-bk-speed-opt.active{background:var(--nb-primary);color:var(--nb-white);border-color:var(--nb-primary)}
.nb-bk-submit-btn{width:100%;padding:1rem;background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);border:none;border-radius:10px;font-size:1.125rem;font-weight:700;cursor:pointer;transition:all .3s}
.nb-bk-submit-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,61,156,.3)}
.nb-bk-form-note{text-align:center;font-size:.75rem;color:var(--nb-text-light);margin-top:.75rem}
.nb-bk-why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-bk-why-card{background:var(--nb-white);border-radius:16px;padding:2rem;text-align:center;border:1px solid var(--nb-border);transition:all .3s}
.nb-bk-why-card:hover{border-color:var(--nb-primary);box-shadow:0 8px 24px rgba(0,82,217,.1);transform:translateY(-3px)}
.nb-bk-why-icon{width:56px;height:56px;margin:0 auto 1rem;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--nb-white);background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light))}
.nb-bk-why-card h3{font-size:1.0625rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:.5rem}
.nb-bk-why-card p{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6}
.nb-bk-plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-bk-plan-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;text-align:center;transition:all .3s;position:relative;overflow:hidden}
.nb-bk-plan-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 8px 24px rgba(0,61,156,.1);transform:translateY(-4px)}
.nb-bk-plan-card--recommend{border-color:var(--nb-primary-dark);border-width:2px}
.nb-bk-plan-hot{position:absolute;top:0;left:0;right:0;background:linear-gradient(90deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);font-size:.75rem;font-weight:700;padding:.35rem}
.nb-bk-plan-top{padding:1.75rem 1.5rem 1rem;background:linear-gradient(180deg,var(--nb-bg-blue),var(--nb-white))}
.nb-bk-plan-card--recommend .nb-bk-plan-top{padding-top:2.5rem}
.nb-bk-plan-speed{font-size:2.25rem;font-weight:800;color:var(--nb-primary-dark);line-height:1.2}
.nb-bk-plan-speed span{font-size:.875rem;font-weight:600;color:var(--nb-text-secondary)}
.nb-bk-plan-name{font-size:1rem;font-weight:700;color:var(--nb-text-primary);margin:.375rem 0}
.nb-bk-plan-price{font-size:1.5rem;font-weight:800;color:var(--nb-accent-red)}
.nb-bk-plan-price--label{font-size:.875rem;color:var(--nb-text-secondary);font-weight:400}
.nb-bk-plan-price span{font-size:.8125rem;font-weight:600;color:var(--nb-text-secondary)}
.nb-bk-plan-features{list-style:none;padding:0 1.5rem 1.5rem;margin:0}
.nb-bk-plan-features li{padding:.5rem 0;border-bottom:1px solid var(--nb-border-lighter);font-size:.8125rem;color:var(--nb-text-secondary)}
.nb-bk-plan-features li:last-child{border-bottom:none}
.nb-bk-notice-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.5rem 2rem}
.nb-bk-notice-card+.nb-bk-notice-card{margin-top:1.5rem}
.nb-bk-notice-card h3{font-size:1.125rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:1rem}
.nb-bk-notice-card ul li{padding:.375rem 0;font-size:.9375rem;color:var(--nb-text-secondary)}
.nb-bk-notice-card ul li strong{color:var(--nb-text-primary)}
.nb-bk-cta-final{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);padding:4rem 0;text-align:center}
.nb-bk-cta-final h2{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.nb-bk-cta-final p{font-size:1.125rem;opacity:.9;margin-bottom:1.5rem}
.nb-bk-cta-phone{font-size:2.5rem;font-weight:900;color:var(--nb-accent-gold);display:block;margin-bottom:1.5rem;text-decoration:none}
.nb-bk-cta-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-bk-cta-btns{display:flex;justify-content:center;gap:1rem}
.nb-bk-btn-call{display:inline-block;padding:1rem 3rem;background:var(--nb-white);color:var(--nb-primary);border-radius:50px;font-weight:800;font-size:1.125rem;text-decoration:none;transition:all .3s}
.nb-bk-btn-call:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none;color:var(--nb-primary-dark)}

/* ===== [3] nb-pp — 宽带套餐 ===== */
.nb-pp-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:5rem 0;position:relative;overflow:hidden}
.nb-pp-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(0,61,156,.06) 0%,transparent 60%);pointer-events:none}
.nb-pp-hero-inner{position:relative;z-index:1;max-width:680px}
.nb-pp-hero-tag{display:inline-block;font-size:.8125rem;background:var(--nb-bg-blue);color:var(--nb-primary-dark);border:1px solid #DBEAFE;padding:.3rem 1rem;border-radius:20px;margin-bottom:1rem;font-weight:600}
.nb-pp-hero-title{font-size:3rem;font-weight:900;line-height:1.1;margin-bottom:1rem;color:var(--nb-primary-dark)}
.nb-pp-hero-desc{font-size:1.125rem;color:var(--nb-text-secondary);line-height:1.7;margin-bottom:1.5rem}
.nb-pp-hero-actions{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}
.nb-pp-hero-btn{display:inline-block;padding:.875rem 2.5rem;background:var(--nb-primary-dark);color:var(--nb-white);border-radius:50px;font-weight:800;font-size:1.0625rem;text-decoration:none;transition:all .3s}
.nb-pp-hero-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none;color:var(--nb-white);background:var(--nb-primary-deep)}
.nb-pp-hero-or{color:var(--nb-text-secondary);font-size:.875rem}
.nb-pp-hero-phone{font-size:1.25rem;font-weight:800;color:var(--nb-primary-dark);text-decoration:none}
.nb-pp-hero-phone:hover{color:var(--nb-primary);text-decoration:none}
.nb-pp-speed-tabs{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem}
.nb-pp-speed-tab{padding:1rem 2rem;border:2px solid var(--nb-border);border-radius:12px;background:var(--nb-white);font-size:1.125rem;font-weight:700;color:var(--nb-text-secondary);cursor:pointer;transition:all .3s;display:flex;flex-direction:column;align-items:center;gap:.25rem}
.nb-pp-speed-tab span{font-size:.75rem;font-weight:500;color:var(--nb-text-muted)}
.nb-pp-speed-tab:hover{border-color:var(--nb-primary);color:var(--nb-primary)}
.nb-pp-speed-tab.active{background:linear-gradient(135deg,var(--nb-primary),var(--nb-primary-light));color:var(--nb-white);border-color:transparent;box-shadow:0 4px 16px rgba(0,82,217,.3)}
.nb-pp-speed-tab.active span{color:rgba(255,255,255,.8)}
.nb-pp-speed-bar{margin-top:1.5rem;position:relative;height:8px;background:var(--nb-border);border-radius:4px;max-width:600px;margin-left:auto;margin-right:auto}
.nb-pp-speed-bar-fill{height:100%;background:linear-gradient(90deg,var(--nb-primary),var(--nb-primary-light));border-radius:4px;transition:width .4s}
.nb-pp-speed-bar-nodes{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.75rem;color:var(--nb-text-muted)}
.nb-pp-plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.nb-pp-plan-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;overflow:hidden;transition:all .3s;position:relative}
.nb-pp-plan-card:hover{border-color:var(--nb-primary);box-shadow:0 12px 36px rgba(0,82,217,.12);transform:translateY(-6px)}
.nb-pp-plan-card--star{border-color:var(--nb-primary);border-width:2px}
.nb-pp-plan-ribbon{position:absolute;top:0;left:1.5rem;background:var(--nb-text-secondary);color:var(--nb-white);font-size:.6875rem;font-weight:700;padding:.25rem .75rem;border-radius:0 0 6px 6px}
.nb-pp-plan-ribbon--hot{background:linear-gradient(90deg,var(--nb-primary-dark),var(--nb-primary-light))}
.nb-pp-plan-ribbon--new{background:linear-gradient(90deg,var(--nb-primary),var(--nb-primary-light))}
.nb-pp-plan-body{padding:2rem 1.75rem;text-align:center}
.nb-pp-plan-icon-wrap{font-size:2rem;margin-bottom:.5rem}
.nb-pp-plan-speed{font-size:2.5rem;font-weight:900;color:var(--nb-primary-dark);line-height:1.1}
.nb-pp-plan-speed span{font-size:.9375rem;font-weight:600;color:var(--nb-text-secondary)}
.nb-pp-plan-card h3{font-size:1.125rem;font-weight:700;margin:.75rem 0;color:var(--nb-text-primary)}
.nb-pp-plan-price{font-size:2rem;font-weight:800;color:var(--nb-primary-dark);margin:.75rem 0}
.nb-pp-plan-price--label{color:var(--nb-text-secondary);font-size:.9375rem;font-weight:500;margin:.5rem 0}
.nb-pp-plan-price sup{font-size:1rem}
.nb-pp-plan-price sub{font-size:.875rem;font-weight:600;color:var(--nb-text-secondary)}
.nb-pp-plan-list{list-style:none;padding:0;margin:1rem 0;text-align:left}
.nb-pp-plan-list li{padding:.4rem 0 .4rem 1.5rem;position:relative;font-size:.8125rem;color:var(--nb-text-secondary);border-bottom:1px solid var(--nb-border-lighter)}
.nb-pp-plan-list li:last-child{border-bottom:none}
.nb-pp-plan-list li::before{content:'✦';position:absolute;left:0;color:var(--nb-primary)}
.nb-pp-plan-btn{display:block;width:100%;padding:.75rem;text-align:center;background:var(--nb-primary);color:var(--nb-white);border-radius:50px;font-weight:700;text-decoration:none;transition:all .3s}
.nb-pp-plan-btn:hover{background:var(--nb-primary-light);color:var(--nb-white);text-decoration:none}
.nb-pp-plan-btn--star{background:linear-gradient(90deg,var(--nb-primary-dark),var(--nb-primary-light))}
.nb-pp-plan-btn--star:hover{background:linear-gradient(90deg,var(--nb-primary-deep),var(--nb-primary-dark))}
.nb-pp-fusion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-pp-fusion-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:2rem;text-align:center;transition:all .3s}
.nb-pp-fusion-card:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);transform:translateY(-4px)}
.nb-pp-fusion-tag{display:inline-block;font-size:.6875rem;background:rgba(255,255,255,.2);padding:.2rem .75rem;border-radius:20px;margin-bottom:.75rem}
.nb-pp-fusion-card h3{font-size:1.125rem;font-weight:700;margin-bottom:1rem}
.nb-pp-fusion-body p{font-size:.9375rem;line-height:1.6}
.nb-pp-fusion-price{font-size:2rem;font-weight:800;color:var(--nb-accent-gold);margin:.75rem 0}
.nb-pp-fusion-price span{font-size:.875rem;font-weight:400;opacity:.7}
/* On blue backgrounds, fusion price uses dark blue for contrast against semi-transparent cards */
.bg-blue .nb-pp-fusion-price { color: var(--nb-primary-dark); }
.nb-pp-fusion-note { font-size: 0.75rem; opacity: 0.7; margin-top: 0.25rem; }
.nb-pp-match-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.nb-pp-match-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;text-align:center;transition:all .3s}
.nb-pp-match-card:hover{border-color:var(--nb-primary);box-shadow:0 6px 20px rgba(0,82,217,.1)}
.nb-pp-match-emoji{font-size:2.5rem;margin-bottom:.75rem}
.nb-pp-match-card h3{font-size:1.0625rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.5rem}
.nb-pp-match-card p{font-size:.8125rem;color:var(--nb-text-secondary);margin-bottom:.75rem}
.nb-pp-match-result{background:var(--nb-bg-blue);border-radius:8px;padding:.75rem;font-size:.9375rem;color:var(--nb-primary-dark)}
.nb-pp-match-result strong{color:var(--nb-primary)}
.nb-pp-cta-final{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);padding:4rem 0;text-align:center}
.nb-pp-cta-final h2{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.nb-pp-cta-final p{font-size:1.125rem;opacity:.9;margin-bottom:1.5rem}
.nb-pp-cta-phone{font-size:2.5rem;font-weight:900;color:var(--nb-accent-gold);display:block;margin-bottom:1.5rem;text-decoration:none}
.nb-pp-cta-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-pp-cta-btn{display:inline-block;padding:1rem 3rem;background:var(--nb-white);color:var(--nb-primary);border-radius:50px;font-weight:800;font-size:1.125rem;text-decoration:none;transition:all .3s}
.nb-pp-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none}

/* ===== [4] nb-ct — 城市分站 ===== */
.nb-ct-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:4rem 0;text-align:center}
.nb-ct-hero-inner{max-width:640px;margin:0 auto}
.nb-ct-hero-title{font-size:2.5rem;font-weight:800;margin-bottom:.75rem;color:var(--nb-primary-dark)}
.nb-ct-hero-desc{font-size:1.125rem;color:var(--nb-text-secondary);margin-bottom:2rem}
.nb-ct-hero-search{display:flex;max-width:480px;margin:0 auto;background:var(--nb-white);border-radius:50px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.1)}
.nb-ct-search-icon{font-size:1.25rem;padding:.75rem 0 .75rem 1.25rem;display:flex;align-items:center}
.nb-ct-search-input{flex:1;border:none;padding:.75rem 1rem;font-size:1rem;outline:none;color:var(--nb-text-primary)}
.nb-ct-hot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.nb-ct-hot-card{display:block;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.5rem;text-decoration:none;transition:all .3s;position:relative}
.nb-ct-hot-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 6px 20px rgba(0,61,156,.1);transform:translateY(-3px);text-decoration:none}
.nb-ct-hot-badge{display:inline-block;font-size:.625rem;font-weight:700;background:var(--nb-bg-blue);color:var(--nb-primary-dark);padding:.15rem .5rem;border-radius:4px;margin-bottom:.5rem}
.nb-ct-hot-card h3{font-size:1.0625rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:.375rem}
.nb-ct-hot-card p{font-size:.8125rem;color:var(--nb-text-secondary)}
.nb-ct-hot-arrow{position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:1.25rem;color:var(--nb-primary-dark);opacity:.4;transition:opacity .3s}
.nb-ct-hot-card:hover .nb-ct-hot-arrow{opacity:1}
.nb-ct-province-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.nb-ct-city-card{display:flex;align-items:center;gap:1rem;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.25rem 1.5rem;text-decoration:none;transition:all .3s}
.nb-ct-city-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 4px 16px rgba(0,61,156,.08);text-decoration:none}
.nb-ct-city-pin{font-size:1.5rem;flex-shrink:0}
.nb-ct-city-info{flex:1;min-width:0}
.nb-ct-city-info h3{font-size:.9375rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.25rem}
.nb-ct-city-info p{font-size:.75rem;color:var(--nb-text-muted)}
.nb-ct-city-go{font-size:.8125rem;font-weight:700;color:var(--nb-primary-dark);flex-shrink:0}
.nb-ct-notice{background:var(--nb-white);border:2px dashed #DBEAFE;border-radius:16px;padding:2.5rem;text-align:center}
.nb-ct-notice-icon{font-size:2.5rem;margin-bottom:1rem}
.nb-ct-notice h3{font-size:1.375rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:.75rem}
.nb-ct-notice p{font-size:.9375rem;color:var(--nb-text-secondary);line-height:1.7}
.nb-ct-notice p+p{margin-top:.75rem}
.nb-ct-notice-btn{display:inline-block;margin-top:1.25rem;padding:.75rem 2rem;background:var(--nb-primary-dark);color:var(--nb-white);border-radius:50px;font-weight:700;text-decoration:none;transition:all .3s}
.nb-ct-notice-btn:hover{background:var(--nb-primary-deep);color:var(--nb-white);text-decoration:none;transform:translateY(-2px)}
.nb-ct-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.nb-ct-stat{text-align:center}
.nb-ct-stat-num{font-size:2.25rem;font-weight:900;color:var(--nb-primary-light);line-height:1.2}
.nb-ct-stat-num span{font-size:1rem;font-weight:600;opacity:.7}
.nb-ct-stat-label{font-size:.9375rem;opacity:.8;margin-top:.25rem}
.nb-ct-cta-final{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);padding:4rem 0;text-align:center}
.nb-ct-cta-final h2{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.nb-ct-cta-final p{font-size:1.125rem;opacity:.9;margin-bottom:1.5rem}
.nb-ct-cta-phone{font-size:2.5rem;font-weight:900;color:var(--nb-accent-gold);display:block;margin-bottom:1.5rem;text-decoration:none}
.nb-ct-cta-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-ct-cta-btn{display:inline-block;padding:1rem 3rem;background:var(--nb-white);color:var(--nb-primary-dark);border-radius:50px;font-weight:800;font-size:1.125rem;text-decoration:none;transition:all .3s}
.nb-ct-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none}

/* ===== [5] nb-cu — 联系我们 ===== */
.nb-cu-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:4rem 0}
.nb-cu-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.nb-cu-hero-kicker{display:inline-block;font-size:.6875rem;letter-spacing:3px;color:var(--nb-primary-dark);margin-bottom:.75rem}
.nb-cu-hero-title{font-size:2.5rem;font-weight:800;margin-bottom:1rem;color:var(--nb-primary-dark)}
.nb-cu-hero-desc{font-size:1.0625rem;color:var(--nb-text-secondary);line-height:1.7;margin-bottom:2rem}
.nb-cu-hero-contact-row{display:flex;flex-direction:column;gap:1rem}
.nb-cu-hero-contact-item{display:flex;gap:1rem;align-items:center}
.nb-cu-hero-contact-icon{width:48px;height:48px;background:var(--nb-bg-blue);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}
.nb-cu-hero-contact-item strong{display:block;font-size:.875rem;color:var(--nb-text-secondary)}
.nb-cu-hero-contact-item a,.nb-cu-hero-contact-item span{font-size:1.125rem;font-weight:600;color:var(--nb-primary-dark)}
.nb-cu-hero-contact-item a:hover{color:var(--nb-primary);text-decoration:none}
.nb-cu-form-card{background:var(--nb-white);border-radius:16px;padding:2rem;box-shadow:0 12px 40px rgba(0,0,0,.08)}
.nb-cu-form-card h3{font-size:1.25rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:.25rem}
.nb-cu-form-card>p{font-size:.8125rem;color:var(--nb-text-muted);margin-bottom:1.25rem}
.nb-cu-form-group{margin-bottom:1rem}
.nb-cu-form-group label{display:block;font-size:.875rem;font-weight:600;color:var(--nb-primary-dark);margin-bottom:.375rem}
.nb-cu-form-group label span{color:var(--nb-accent-red)}
.nb-cu-input{width:100%;padding:.75rem 1rem;border:1px solid var(--nb-border-input);border-radius:8px;font-size:.9375rem;box-sizing:border-box;transition:border-color .2s}
.nb-cu-input:focus{outline:none;border-color:var(--nb-primary-dark);box-shadow:0 0 0 3px rgba(0,61,156,.1)}
.nb-cu-textarea{resize:vertical;min-height:80px}
.nb-cu-submit-btn{width:100%;padding:.875rem;background:var(--nb-primary-dark);color:var(--nb-white);border:none;border-radius:10px;font-size:1.0625rem;font-weight:700;cursor:pointer;transition:all .3s}
.nb-cu-submit-btn:hover{background:var(--nb-primary-deep);transform:translateY(-2px)}
.nb-cu-contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.nb-cu-contact-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;text-align:center;transition:all .3s}
.nb-cu-contact-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 6px 20px rgba(0,61,156,.1);transform:translateY(-3px)}
.nb-cu-contact-card-icon{font-size:2rem;margin-bottom:.75rem}
.nb-cu-contact-card h3{font-size:1.0625rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:.5rem}
.nb-cu-contact-card p{font-size:.875rem;color:var(--nb-text-secondary)}
.nb-cu-contact-card-phone{display:block;font-size:1.375rem;font-weight:800;color:var(--nb-primary-dark);margin:.75rem 0;text-decoration:none}
.nb-cu-contact-card-phone:hover{color:var(--nb-primary)}
.nb-cu-contact-card-btn{display:inline-block;padding:.625rem 1.5rem;background:var(--nb-primary-dark);color:var(--nb-white);border-radius:50px;font-weight:700;font-size:.875rem;text-decoration:none;transition:all .3s}
.nb-cu-contact-card-btn:hover{background:var(--nb-primary-deep);color:var(--nb-white);text-decoration:none}
.nb-cu-contact-card-btn--outline{background:transparent;border:2px solid var(--nb-primary-dark);color:var(--nb-primary-dark)}
.nb-cu-contact-card-btn--outline:hover{background:var(--nb-primary-dark);color:var(--nb-white)}
.nb-cu-contact-card-detail{font-size:.9375rem;font-weight:600;color:var(--nb-primary-dark);margin:.5rem 0}
.nb-cu-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.nb-cu-info-title{font-size:1.375rem;font-weight:800;color:var(--nb-primary-dark);margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:3px solid var(--nb-primary-dark);display:inline-block}
.nb-cu-address-card{display:flex;gap:1rem;background:var(--nb-bg-light);border-radius:12px;padding:1.5rem}
.nb-cu-address-icon{font-size:1.5rem;flex-shrink:0}
.nb-cu-address-card strong{display:block;font-size:1rem;color:var(--nb-primary-dark);margin-bottom:.375rem}
.nb-cu-address-card p{font-size:.875rem;color:var(--nb-text-secondary)}
.nb-cu-map-placeholder{margin-top:1.5rem;border:2px dashed var(--nb-border-input);border-radius:12px;padding:2rem;text-align:center;color:var(--nb-text-muted)}
.nb-cu-map-placeholder p{font-size:.75rem;color:var(--nb-text-secondary)}
.nb-cu-time-table td{padding:.75rem 0;border-bottom:1px solid var(--nb-border-lighter);font-size:.9375rem}
.nb-cu-time-table td:first-child{color:var(--nb-text-secondary)}
.nb-cu-time-table td:last-child{font-weight:600;color:var(--nb-primary-dark);text-align:right}
.nb-cu-time-highlight{color:var(--nb-primary)!important;font-weight:800!important}
.nb-cu-social-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-cu-social-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;text-align:center;transition:all .3s}
.nb-cu-social-card:hover{background:var(--nb-bg-blue);border-color:var(--nb-primary-dark);transform:translateY(-3px)}
.nb-cu-social-icon{font-size:2rem;margin-bottom:.75rem}
.nb-cu-social-card h3{font-size:1.0625rem;font-weight:700;margin-bottom:.5rem;color:var(--nb-text-primary)}
.nb-cu-social-card p{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6}
.nb-cu-cta-final{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);padding:4rem 0;text-align:center}
.nb-cu-cta-final h2{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.nb-cu-cta-final p{font-size:1.125rem;opacity:.9;margin-bottom:1.5rem}
.nb-cu-cta-phone{font-size:2.5rem;font-weight:900;color:var(--nb-accent-gold);display:block;margin-bottom:1.5rem;text-decoration:none}
.nb-cu-cta-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-cu-cta-btn{display:inline-block;padding:1rem 3rem;background:var(--nb-white);color:var(--nb-primary-dark);border-radius:50px;font-weight:800;font-size:1.125rem;text-decoration:none;transition:all .3s}
.nb-cu-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none}

/* ===== [6] nb-fq — 常见问题 ===== */
.nb-fq-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:4.5rem 0 3rem;text-align:center}
.nb-fq-hero-title{font-size:2.5rem;font-weight:800;color:var(--nb-primary-dark);margin-bottom:.75rem}
.nb-fq-hero-desc{font-size:1.125rem;color:var(--nb-text-secondary);margin-bottom:2rem}
.nb-fq-hero-search{display:flex;max-width:540px;margin:0 auto 1.5rem;border-radius:50px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.08)}
.nb-fq-search-icon{font-size:1.25rem;padding:.875rem 0 .875rem 1.25rem;display:flex;align-items:center;background:var(--nb-white)}
.nb-fq-search-input{flex:1;border:none;padding:.875rem 1rem;font-size:.9375rem;outline:none}
.nb-fq-search-btn{padding:.875rem 1.75rem;background:var(--nb-primary-dark);color:var(--nb-white);border:none;font-size:.9375rem;font-weight:700;cursor:pointer;transition:background .3s}
.nb-fq-search-btn:hover{background:var(--nb-primary-deep)}
.nb-fq-hot-tags{display:flex;justify-content:center;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.875rem;color:var(--nb-text-secondary)}
.nb-fq-hot-tag{display:inline-block;padding:.3rem .75rem;background:var(--nb-white);border:1px solid #DBEAFE;border-radius:20px;color:var(--nb-primary-dark);font-size:.8125rem;text-decoration:none;transition:all .2s}
.nb-fq-hot-tag:hover{background:var(--nb-primary-dark);color:var(--nb-white);text-decoration:none}
.nb-fq-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-fq-quick-card{display:block;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;text-align:center;text-decoration:none;transition:all .3s}
.nb-fq-quick-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 8px 24px rgba(0,61,156,.1);transform:translateY(-4px);text-decoration:none}
.nb-fq-quick-icon{font-size:2.5rem;margin-bottom:.75rem}
.nb-fq-quick-card h3{font-size:1.125rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.375rem}
.nb-fq-quick-card p{font-size:.8125rem;color:var(--nb-text-secondary);margin-bottom:.5rem}
.nb-fq-quick-count{font-size:.75rem;font-weight:600;color:var(--nb-primary-dark)}
.nb-fq-cat-title{font-size:1.5rem;font-weight:800;color:var(--nb-primary-dark);margin:2rem 0 1rem;padding-top:1rem;border-top:1px solid #DBEAFE}
.nb-fq-cta-final{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);padding:4rem 0;text-align:center}
.nb-fq-cta-final h2{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.nb-fq-cta-final p{font-size:1.125rem;opacity:.9;margin-bottom:1.5rem}
.nb-fq-cta-phone{font-size:2.5rem;font-weight:900;color:var(--nb-accent-gold);display:block;margin-bottom:1.5rem;text-decoration:none}
.nb-fq-cta-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-fq-cta-btn{display:inline-block;padding:1rem 3rem;background:var(--nb-white);color:var(--nb-primary-dark);border-radius:50px;font-weight:800;font-size:1.125rem;text-decoration:none;transition:all .3s}
.nb-fq-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none}

/* ===== [6b] nb-fq 增强容器 ===== */
/* 快速入口 — 白色浮卡 */
.nb-fq-quick-wrap {
    background: var(--nb-white); border-radius: 20px; padding: 2.5rem 2.25rem;
    box-shadow: 0 2px 20px rgba(0,61,156,.06), 0 8px 40px rgba(0,0,0,.04);
    margin-top: -2.5rem; position: relative; z-index: 2;
    border: 1px solid var(--nb-border-lighter, #EEF0F2);
}
.nb-fq-section-header { text-align: center; margin-bottom: 2rem; }
.nb-fq-section-header span {
    display: inline-block; background: var(--nb-bg-blue); color: var(--nb-primary-dark);
    font-size: 0.75rem; font-weight: 700; padding: 0.3rem 1rem; border-radius: 20px;
    letter-spacing: 1px; text-transform: uppercase; margin-bottom: 0.75rem;
}
.nb-fq-section-header h2 {
    font-size: 1.5rem; font-weight: 700; color: var(--nb-text-primary); margin: 0;
}
/* FAQ 手风琴 — 白色卡片容器 */
.nb-fq-accordion-card {
    background: var(--nb-white); border-radius: 20px; padding: 2.5rem 2.25rem;
    box-shadow: 0 2px 20px rgba(0,61,156,.06), 0 8px 40px rgba(0,0,0,.04);
    border: 1px solid var(--nb-border-lighter, #EEF0F2);
}
/* 分类快速导航标签 */
.nb-fq-category-nav {
    display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 2rem;
    padding-bottom: 1.5rem; border-bottom: 1px solid var(--nb-border-lighter, #EEF0F2);
}
.nb-fq-cat-nav-item {
    padding: 0.6rem 1.25rem; border-radius: 12px; font-size: 0.875rem; font-weight: 600;
    color: var(--nb-text-secondary); text-decoration: none; transition: all .2s;
    background: var(--nb-bg-light, #F8FAFC);
}
.nb-fq-cat-nav-item:hover { background: var(--nb-bg-blue); color: var(--nb-primary-dark); text-decoration: none; }
.nb-fq-cat-nav-item.active { background: var(--nb-primary-dark); color: var(--nb-white); }
/* 手风琴列表微调 */
.nb-fq-list { background: transparent; }
.nb-fq-item {
    border: 1px solid var(--nb-border-lighter, #EEF0F2); border-radius: 12px;
    margin-bottom: 0.625rem; overflow: hidden; transition: border-color .2s;
}
.nb-fq-item.open { border-color: var(--nb-primary-light); box-shadow: 0 2px 12px rgba(0,61,156,.06); }
.nb-fq-question {
    display: flex; align-items: center; width: 100%; border: none; background: transparent;
    padding: 1.125rem 1.25rem; font-size: 1rem; font-weight: 600; color: var(--nb-text-primary);
    cursor: pointer; text-align: left; transition: color .2s; gap: 0.75rem;
}
.nb-fq-question::after {
    content: '+'; flex-shrink: 0; margin-left: auto; font-size: 1.25rem; font-weight: 300;
    width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--nb-bg-blue); color: var(--nb-primary-dark);
    transition: all .3s;
}
.nb-fq-item.open .nb-fq-question { color: var(--nb-primary-dark); }
.nb-fq-item.open .nb-fq-question::after { content: '−'; background: var(--nb-primary-dark); color: var(--nb-white); }
.nb-fq-question:hover { color: var(--nb-primary-dark); }
.nb-fq-answer {
    padding: 0 1.25rem 1.125rem; font-size: 0.9375rem; color: var(--nb-text-secondary);
    line-height: 1.75;
}
.nb-fq-item:not(.open) .nb-fq-answer { display: none; }
/* 分类标题调整（在卡片内部时） */
.nb-fq-cat-title {
    font-size: 1.5rem; font-weight: 800; color: var(--nb-primary-dark);
    margin: 2.5rem 0 1rem; padding-top: 0; border-top: none;
}
.nb-fq-cat-title:first-of-type { margin-top: 0; }

/* ===== [7] nb-gd — 办理指南 ===== */
/* Hero — 动态渐变背景 + 玻璃态进度条 */
.nb-gd-hero{position:relative;background:linear-gradient(160deg,#F0F5FF 0%,#DBEAFE 30%,#E8F0FE 60%,#F0F5FF 100%);padding:4.5rem 0 3.5rem;text-align:center;overflow:hidden}
.nb-gd-hero::before{content:'';position:absolute;top:-80px;right:-120px;width:360px;height:360px;background:radial-gradient(circle,rgba(0,82,217,.06) 0%,transparent 70%);border-radius:50%;pointer-events:none}
.nb-gd-hero::after{content:'';position:absolute;bottom:-60px;left:-80px;width:280px;height:280px;background:radial-gradient(circle,rgba(0,82,217,.04) 0%,transparent 70%);border-radius:50%;pointer-events:none}
.nb-gd-hero-kicker{position:relative;display:inline-flex;align-items:center;gap:.375rem;font-size:.6875rem;font-weight:700;letter-spacing:4px;color:var(--nb-primary);background:rgba(0,82,217,.08);border-radius:20px;padding:.3rem 1rem;margin-bottom:.875rem;text-transform:uppercase}
.nb-gd-hero-kicker::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--nb-primary);animation:nb-gd-blink 1.8s ease-in-out infinite}
@keyframes nb-gd-blink{0%,100%{opacity:1}50%{opacity:.3}}
.nb-gd-hero-title{font-size:2.5rem;font-weight:800;color:var(--nb-primary-dark);margin-bottom:.875rem;line-height:1.2}
.nb-gd-hero-title span{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.nb-gd-hero-desc{font-size:1.0625rem;color:var(--nb-text-secondary);max-width:560px;margin:0 auto 2.5rem;line-height:1.7}
/* 进度条 — 玻璃态+渐变连接线 */
.nb-gd-progress{display:flex;align-items:center;justify-content:center;gap:0;max-width:680px;margin:0 auto;padding:1.5rem 2rem;background:rgba(255,255,255,.7);backdrop-filter:blur(8px);border-radius:16px;border:1px solid rgba(0,82,217,.08);box-shadow:0 2px 12px rgba(0,61,156,.04)}
.nb-gd-progress-step{display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:600;color:var(--nb-text-muted);transition:all .3s}
.nb-gd-progress-step.done{color:var(--nb-accent-green)}
.nb-gd-progress-step.active{color:var(--nb-primary-dark)}
.nb-gd-progress-dot{width:44px;height:44px;border-radius:50%;background:var(--nb-white);border:2px solid var(--nb-border);color:var(--nb-text-light);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;transition:all .35s cubic-bezier(.4,0,.2,1);position:relative}
.nb-gd-progress-step.done .nb-gd-progress-dot{background:linear-gradient(135deg,#22C55E,#16A34A);border-color:transparent;color:var(--nb-white);box-shadow:0 4px 14px rgba(34,197,94,.3)}
.nb-gd-progress-step.active .nb-gd-progress-dot{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary));border-color:transparent;color:var(--nb-white);box-shadow:0 0 0 6px rgba(0,82,217,.12),0 4px 16px rgba(0,61,156,.3);animation:nb-gd-pulse 2.4s ease-in-out infinite}
@keyframes nb-gd-pulse{0%,100%{box-shadow:0 0 0 6px rgba(0,82,217,.12),0 4px 16px rgba(0,61,156,.3)}50%{box-shadow:0 0 0 14px rgba(0,82,217,.04),0 4px 18px rgba(0,61,156,.2)}}
.nb-gd-progress-line{flex:1;height:3px;background:var(--nb-border);min-width:44px;transition:background .4s;border-radius:2px}
.nb-gd-progress-line.done{background:linear-gradient(90deg,var(--nb-accent-green),#4ADE80)}

/* 办理前准备 — 编号图标卡片 */
.nb-gd-checklist{display:grid;grid-template-columns:repeat(2,1fr);gap:1.125rem}
.nb-gd-check-item{display:flex;gap:.875rem;align-items:flex-start;background:var(--nb-white);border-radius:14px;padding:1.5rem 1.375rem;border:1px solid var(--nb-border);box-shadow:0 2px 8px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.06);transition:all .3s ease}
.nb-gd-check-item:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,61,156,.08);border-color:var(--nb-primary-light)}
.nb-gd-check-box{flex-shrink:0;width:44px;height:44px;background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary));color:var(--nb-white);border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem}
.nb-gd-check-item strong{display:block;font-size:.9375rem;color:var(--nb-text-primary);margin-bottom:.25rem}
.nb-gd-check-item p{font-size:.8125rem;color:var(--nb-text-secondary);line-height:1.55;margin:0}

/* 步骤详解 — 增强卡片+交替色彩 */
.nb-gd-steps{display:flex;flex-direction:column;gap:0}
.nb-gd-step{display:flex;gap:1.5rem}
.nb-gd-step-marker{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:60px}
.nb-gd-step-num{width:52px;height:52px;background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary));color:var(--nb-white);border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.125rem;flex-shrink:0;box-shadow:0 4px 12px rgba(0,61,156,.2);transition:all .3s}
.nb-gd-step:nth-child(2) .nb-gd-step-num{background:linear-gradient(135deg,#1A5DC7,#3D7FED)}
.nb-gd-step:nth-child(3) .nb-gd-step-num{background:linear-gradient(135deg,#2155C0,#4A85F0)}
.nb-gd-step-num--done{background:linear-gradient(135deg,#22C55E,#16A34A)!important;font-size:1.5rem;box-shadow:0 4px 12px rgba(34,197,94,.25)}
.nb-gd-step-bar{flex:1;width:3px;background:linear-gradient(180deg,var(--nb-primary),var(--nb-primary-light));min-height:40px;flex-shrink:0;border-radius:2px}
.nb-gd-step-card{flex:1;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:1.75rem 2rem;margin-bottom:1.5rem;transition:all .35s ease;box-shadow:0 2px 8px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.06);position:relative;overflow:hidden}
.nb-gd-step-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--nb-primary-dark),var(--nb-primary-light));border-radius:4px 0 0 4px;transition:all .3s}
.nb-gd-step-card:hover{transform:translateX(6px);border-color:var(--nb-primary-light);box-shadow:0 10px 32px rgba(0,61,156,.1)}
.nb-gd-step-card:hover::before{width:6px}
.nb-gd-step-card--done{border-color:#D1FAE5;background:linear-gradient(135deg,#F0FDF4,var(--nb-white))}
.nb-gd-step-card--done::before{background:linear-gradient(180deg,#22C55E,#4ADE80)}
.nb-gd-step-header{margin-bottom:1rem}
.nb-gd-step-duration{display:inline-block;font-size:.75rem;font-weight:700;color:var(--nb-primary);background:rgba(0,82,217,.08);padding:.25rem .75rem;border-radius:20px;margin-bottom:.5rem}
.nb-gd-step-card h3{font-size:1.25rem;font-weight:700;color:var(--nb-text-primary)}
.nb-gd-step-body p{font-size:.9375rem;color:var(--nb-text-secondary);line-height:1.75;margin-bottom:.875rem}
.nb-gd-step-body ul{list-style:none;padding:0;margin-bottom:1rem}
.nb-gd-step-body ul li{font-size:.875rem;color:var(--nb-text-secondary);padding:.4rem 0 .4rem 1.5rem;position:relative;line-height:1.6}
.nb-gd-step-body ul li::before{content:'';position:absolute;left:.25rem;top:.75rem;width:6px;height:6px;background:var(--nb-primary);border-radius:50%}
.nb-gd-step-tip{background:linear-gradient(135deg,#FFF7ED,#FFFBEB);border:1px solid #FED7AA;border-radius:10px;padding:.875rem 1.125rem;margin-top:1.125rem;font-size:.8125rem;color:var(--nb-text-secondary);display:flex;align-items:flex-start;gap:.625rem;line-height:1.6}
.nb-gd-step-tip strong{color:#C2410C;flex-shrink:0}

/* 办理注意事项 — 警告风格（与准备清单区分） */
.nb-gd-checklist--notice .nb-gd-check-item{border-color:#FED7AA;background:linear-gradient(135deg,#FFF7ED,#FFFBEB)}
.nb-gd-checklist--notice .nb-gd-check-item:hover{border-color:#FB923C;box-shadow:0 8px 24px rgba(251,146,60,.08)}
.nb-gd-checklist--notice .nb-gd-check-box{background:linear-gradient(135deg,#FB923C,#F97316)}
.nb-gd-checklist--notice .nb-gd-check-item strong{color:#9A3412}

/* 套餐对比表 */
.nb-gd-compare-table{width:100%;border-collapse:collapse;min-width:500px}
.nb-gd-compare-table th{background:var(--nb-primary-dark);color:var(--nb-white);padding:.75rem 1rem;font-size:.9375rem;font-weight:700;text-align:center}
.nb-gd-compare-table th:first-child{text-align:left}
.nb-gd-compare-table td{padding:.75rem 1rem;font-size:.875rem;color:var(--nb-text-secondary);text-align:center;border-bottom:1px solid var(--nb-border-lighter)}
.nb-gd-compare-table td:first-child{text-align:left;font-weight:600;color:var(--nb-text-primary)}
.nb-gd-compare-table tr:nth-child(even) td{background:var(--nb-bg-blue)}
.nb-gd-check{color:var(--nb-accent-green);font-weight:700}
.nb-gd-cta-final{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);padding:4rem 0;text-align:center}
.nb-gd-cta-final h2{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.nb-gd-cta-final p{font-size:1.125rem;opacity:.9;margin-bottom:1.5rem}
.nb-gd-cta-phone{font-size:2.5rem;font-weight:900;color:var(--nb-accent-gold);display:block;margin-bottom:1.5rem;text-decoration:none}
.nb-gd-cta-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-gd-cta-btn{display:inline-block;padding:1rem 3rem;background:var(--nb-white);color:var(--nb-primary-dark);border-radius:50px;font-weight:800;font-size:1.125rem;text-decoration:none;transition:all .3s}
.nb-gd-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none}

/* ===== [8] nb-hp — 使用帮助 ===== */
.nb-hp-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:4rem 0}
.nb-hp-hero-title{font-size:2.5rem;font-weight:800;color:var(--nb-primary-dark);text-align:center;margin-bottom:.75rem}
.nb-hp-hero-desc{font-size:1.0625rem;color:var(--nb-text-secondary);text-align:center;margin-bottom:2.5rem;max-width:600px;margin-left:auto;margin-right:auto}
.nb-hp-hero-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.nb-hp-hero-cat{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:1.75rem 1rem;text-decoration:none;transition:all .3s;text-align:center}
.nb-hp-hero-cat:hover{border-color:var(--nb-primary-dark);box-shadow:0 8px 24px rgba(0,61,156,.1);transform:translateY(-3px);text-decoration:none}
.nb-hp-hero-cat-icon{font-size:2rem}
.nb-hp-hero-cat strong{display:block;font-size:1.0625rem;color:var(--nb-primary-dark)}
.nb-hp-hero-cat span{font-size:.75rem;color:var(--nb-text-muted)}
.nb-hp-tutorial-grid{display:flex;flex-direction:column;gap:1rem}
.nb-hp-tutorial-card{display:flex;gap:1.5rem;align-items:flex-start;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:1.75rem 2rem;transition:all .3s}
.nb-hp-tutorial-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 4px 16px rgba(0,61,156,.08)}
.nb-hp-tut-num{width:44px;height:44px;background:var(--nb-primary-dark);color:var(--nb-white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.0625rem;flex-shrink:0}
.nb-hp-tut-num--done{background:var(--nb-accent-green);font-size:1.25rem}
.nb-hp-tut-content{flex:1;min-width:0}
.nb-hp-tut-content h3{font-size:1.125rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:.5rem}
.nb-hp-tut-content p{font-size:.9375rem;color:var(--nb-text-secondary);line-height:1.7}
.nb-hp-tut-tip{background:var(--nb-bg-blue);border-left:4px solid var(--nb-primary-dark);padding:.75rem 1rem;border-radius:0 8px 8px 0;margin-top:.75rem;font-size:.8125rem;color:var(--nb-primary-dark)}
.nb-hp-tut-tip--done{background:var(--nb-bg-blue);border-left-color:var(--nb-accent-green);color:var(--nb-primary-dark)}
.nb-hp-indicator-table th{background:var(--nb-primary-dark);color:var(--nb-white);padding:.75rem 1rem;font-size:.9375rem;font-weight:700}
.nb-hp-indicator-table td{padding:.75rem 1rem;font-size:.875rem;border-bottom:1px solid var(--nb-border-lighter)}
.nb-hp-indicator-warn{color:var(--nb-accent-red);font-weight:700}
.nb-hp-trouble-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.nb-hp-trouble-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;transition:all .3s}
.nb-hp-trouble-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 6px 20px rgba(0,61,156,.08)}
.nb-hp-trouble-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}
.nb-hp-trouble-icon{font-size:1.5rem}
.nb-hp-trouble-header h3{font-size:1.125rem;font-weight:700;color:var(--nb-primary-dark)}
.nb-hp-trouble-card ol{list-style:decimal;padding-left:1.5rem}
.nb-hp-trouble-card ol li{font-size:.875rem;color:var(--nb-text-secondary);padding:.3rem 0}
.nb-hp-faq-list{max-width:800px;margin:0 auto}
.nb-hp-faq-item{border:1px solid var(--nb-border);border-radius:8px;margin-bottom:.75rem;overflow:hidden;background:var(--nb-white)}
.nb-hp-faq-q{width:100%;padding:1rem 1.25rem;text-align:left;font-size:1rem;font-weight:600;color:var(--nb-primary-dark);display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--nb-white);transition:background .2s;cursor:pointer;border:none}
.nb-hp-faq-q:hover{background:var(--nb-bg-blue)}
.nb-hp-faq-q::after{content:'+';font-size:1.5rem;color:var(--nb-primary-dark);flex-shrink:0;transition:transform .3s}
.nb-hp-faq-item.open .nb-hp-faq-q::after{transform:rotate(45deg)}
.nb-hp-faq-a{max-height:0;overflow:hidden;transition:max-height .3s,padding .3s;padding:0 1.25rem;color:var(--nb-text-secondary);font-size:.9375rem;line-height:1.7}
.nb-hp-faq-item.open .nb-hp-faq-a{max-height:400px;padding:0 1.25rem 1.25rem}
.nb-hp-cta-final{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);padding:4rem 0;text-align:center}
.nb-hp-cta-final h2{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.nb-hp-cta-final p{font-size:1.125rem;opacity:.9;margin-bottom:1.5rem}
.nb-hp-cta-phone{font-size:2.5rem;font-weight:900;color:var(--nb-accent-gold);display:block;margin-bottom:1.5rem;text-decoration:none}
.nb-hp-cta-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-hp-cta-btn{display:inline-block;padding:1rem 3rem;background:var(--nb-white);color:var(--nb-primary-dark);border-radius:50px;font-weight:800;font-size:1.125rem;text-decoration:none;transition:all .3s}
.nb-hp-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none}

/* ===== [9] nb-jn — 加入我们 ===== */
.nb-jn-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:5rem 0;position:relative;overflow:hidden}
.nb-jn-hero-bg-shape{position:absolute;top:-20%;right:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(0,61,156,.08) 0%,transparent 70%);border-radius:50%;pointer-events:none}
.nb-jn-hero-inner{position:relative;z-index:1;max-width:640px}
.nb-jn-hero-badge{display:inline-block;font-size:.6875rem;letter-spacing:3px;background:var(--nb-bg-blue);color:var(--nb-primary-dark);padding:.25rem .75rem;border-radius:4px;margin-bottom:1rem;font-weight:600}
.nb-jn-hero-title{font-size:3rem;font-weight:900;margin-bottom:1rem;line-height:1.1;color:var(--nb-primary-dark)}
.nb-jn-hero-desc{font-size:1.125rem;color:var(--nb-text-secondary);line-height:1.7;margin-bottom:2rem}
.nb-jn-hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.nb-jn-hero-stats div{text-align:center}
.nb-jn-hero-stats strong{display:block;font-size:1.5rem;font-weight:900;color:var(--nb-primary-dark)}
.nb-jn-hero-stats span{font-size:.75rem;color:var(--nb-text-secondary)}
.nb-jn-why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.nb-jn-why-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;transition:all .3s}
.nb-jn-why-card:hover{border-color:var(--nb-primary);box-shadow:0 8px 24px rgba(0,82,217,.1);transform:translateY(-3px)}
.nb-jn-why-icon{font-size:2rem;margin-bottom:.75rem}
.nb-jn-why-card h3{font-size:1.125rem;font-weight:700;color:var(--nb-primary);margin-bottom:.5rem}
.nb-jn-why-card p{font-size:.9375rem;color:var(--nb-text-secondary);line-height:1.7}
.nb-jn-position-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-jn-position-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:1.75rem;transition:all .3s;display:flex;flex-direction:column}
.nb-jn-position-card:hover{border-color:var(--nb-primary);box-shadow:0 8px 24px rgba(0,82,217,.1);transform:translateY(-3px)}
.nb-jn-position-card--hot{border-color:var(--nb-primary-dark);border-width:2px}
.nb-jn-pos-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}
.nb-jn-pos-type{font-size:.6875rem;font-weight:700;background:var(--nb-bg-blue);color:var(--nb-primary-dark);padding:.15rem .5rem;border-radius:4px}
.nb-jn-pos-type--intern{background:var(--nb-bg-blue);color:var(--nb-primary-dark)}
.nb-jn-pos-loc{font-size:.75rem;color:var(--nb-text-secondary)}
.nb-jn-position-card h3{font-size:1.125rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.5rem}
.nb-jn-pos-desc{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6;flex:1;margin-bottom:1rem}
.nb-jn-pos-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.nb-jn-pos-tags span{font-size:.6875rem;background:var(--nb-border-lighter);color:var(--nb-text-muted);padding:.15rem .5rem;border-radius:4px}
.nb-jn-pos-salary{font-size:1.25rem;font-weight:800;color:var(--nb-primary-dark);padding-top:1rem;border-top:1px solid var(--nb-border-lighter)}
.nb-jn-pos-salary small{font-size:.75rem;font-weight:500;color:var(--nb-text-muted)}
.nb-jn-benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-jn-benefit-item{text-align:center;padding:1.5rem;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;transition:all .3s}
.nb-jn-benefit-item:hover{box-shadow:0 4px 16px rgba(0,61,156,.08);transform:translateY(-2px)}
.nb-jn-benefit-item span{font-size:2rem;display:block;margin-bottom:.5rem}
.nb-jn-benefit-item h3{font-size:1rem;font-weight:700;margin-bottom:.25rem;color:var(--nb-text-primary)}
.nb-jn-benefit-item p{font-size:.8125rem;color:var(--nb-text-secondary)}
.nb-jn-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.nb-jn-process-flow{display:flex;flex-direction:column;gap:1rem}
.nb-jn-process-item{display:flex;gap:1rem;align-items:flex-start}
.nb-jn-process-num{width:40px;height:40px;background:var(--nb-primary);color:var(--nb-white);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;flex-shrink:0}
.nb-jn-process-num--final{background:var(--nb-accent-green);font-size:1.25rem}
.nb-jn-process-item h3{font-size:1rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.25rem}
.nb-jn-process-item p{font-size:.875rem;color:var(--nb-text-secondary)}
.nb-jn-apply-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;margin-top:1rem}
.nb-jn-apply-card p{font-size:.9375rem;color:var(--nb-text-secondary);line-height:1.6;margin-bottom:1rem}
.nb-jn-apply-email{font-size:1.25rem;font-weight:700;color:var(--nb-primary-dark);padding:.75rem 1rem;background:var(--nb-bg-blue);border-radius:8px;text-align:center;margin-bottom:1rem;word-break:break-all}
.nb-jn-apply-platforms{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}
.nb-jn-apply-platforms span{font-size:.75rem;background:var(--nb-border-lighter);color:var(--nb-text-muted);padding:.3rem .75rem;border-radius:20px}
.nb-jn-apply-btns{display:flex;gap:.75rem;flex-wrap:wrap}
.nb-jn-apply-btn{display:inline-block;padding:.75rem 1.5rem;background:var(--nb-primary);color:var(--nb-white);border-radius:8px;font-weight:700;font-size:.9375rem;text-decoration:none;transition:all .3s}
.nb-jn-apply-btn:hover{background:var(--nb-primary-dark);color:var(--nb-white);text-decoration:none}
.nb-jn-apply-btn--outline{background:transparent;border:2px solid var(--nb-primary);color:var(--nb-primary)}
.nb-jn-apply-btn--outline:hover{background:var(--nb-primary);color:var(--nb-white)}

/* ===== [10] nb-nw — 服务网点 ===== */
.nb-nw-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:4rem 0}
.nb-nw-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.nb-nw-hero-kicker{display:inline-block;font-size:.6875rem;letter-spacing:3px;color:var(--nb-primary-dark);margin-bottom:.75rem}
.nb-nw-hero-title{font-size:2.5rem;font-weight:800;margin-bottom:1rem;color:var(--nb-primary-dark)}
.nb-nw-hero-desc{font-size:1.0625rem;color:var(--nb-text-secondary);line-height:1.7;margin-bottom:2rem}
.nb-nw-hero-search{display:flex;gap:.5rem}
.nb-nw-search-input{flex:1;padding:.75rem 1.25rem;border:none;border-radius:8px;font-size:.9375rem;outline:none;color:var(--nb-text-primary)}
.nb-nw-search-btn{padding:.75rem 1.5rem;background:var(--nb-primary-dark);color:var(--nb-white);border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:all .3s}
.nb-nw-search-btn:hover{background:var(--nb-primary-deep);color:var(--nb-white)}
.nb-nw-hero-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.nb-nw-hero-stat-card{background:var(--nb-white);border:1px solid #DBEAFE;border-radius:12px;padding:1.5rem;text-align:center;transition:all .3s}
.nb-nw-hero-stat-card:hover{box-shadow:0 4px 12px rgba(0,61,156,.08)}
.nb-nw-hero-stat-icon{font-size:1.5rem;margin-bottom:.5rem}
.nb-nw-hero-stat-val{font-size:1.375rem;font-weight:800;color:var(--nb-primary-dark)}
.nb-nw-hero-stat-lbl{font-size:.75rem;color:var(--nb-text-secondary)}
.nb-nw-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-nw-service-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;text-align:center;transition:all .3s}
.nb-nw-service-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 6px 20px rgba(0,61,156,.1);transform:translateY(-3px)}
.nb-nw-svc-icon-wrap{width:56px;height:56px;margin:0 auto 1rem;background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}
.nb-nw-service-card h3{font-size:1.0625rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:.5rem}
.nb-nw-service-card p{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6;margin-bottom:1rem}
.nb-nw-svc-time{font-size:.75rem;color:var(--nb-text-muted);font-weight:500}
.nb-nw-city-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.nb-nw-city-card{display:block;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.5rem;text-decoration:none;transition:all .3s}
.nb-nw-city-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 4px 16px rgba(0,61,156,.08);text-decoration:none}
.nb-nw-city-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
.nb-nw-city-pin{font-size:1.125rem}
.nb-nw-city-header h3{font-size:1rem;font-weight:700;color:var(--nb-primary-dark)}
.nb-nw-city-card>p{font-size:.8125rem;color:var(--nb-text-muted);padding-left:1.75rem;margin-bottom:1rem}
.nb-nw-city-footer{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--nb-text-muted);padding-left:1.75rem}
.nb-nw-city-arrow{color:var(--nb-primary-dark);font-weight:600}
.nb-nw-tips{display:flex;gap:1.5rem;align-items:flex-start}
.nb-nw-tip-icon{font-size:2rem;flex-shrink:0}
.nb-nw-tips h3{font-size:1.25rem;font-weight:700;margin-bottom:.75rem;color:var(--nb-primary-dark)}
.nb-nw-tips ul li{font-size:.9375rem;color:var(--nb-text-secondary);opacity:.85;padding:.3rem 0;line-height:1.6}
.nb-nw-tips ul li strong{color:var(--nb-primary-dark)}
.nb-nw-cta-final{background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);padding:4rem 0;text-align:center}
.nb-nw-cta-final h2{font-size:2rem;font-weight:800;margin-bottom:.5rem}
.nb-nw-cta-final p{font-size:1.125rem;opacity:.9;margin-bottom:1.5rem}
.nb-nw-cta-phone{font-size:2.5rem;font-weight:900;color:var(--nb-accent-gold);display:block;margin-bottom:1.5rem;text-decoration:none}
.nb-nw-cta-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-nw-cta-btn{display:inline-block;padding:1rem 3rem;background:var(--nb-white);color:var(--nb-primary-dark);border-radius:50px;font-weight:800;font-size:1.125rem;text-decoration:none;transition:all .3s}
.nb-nw-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none}

/* ===== [11] nb-sv — 服务支持 ===== */
.nb-sv-hero{background:linear-gradient(135deg,var(--nb-bg-blue),#DBEAFE);padding:4rem 0;text-align:center}
.nb-sv-hero-title{font-size:2.5rem;font-weight:800;margin-bottom:.75rem;color:var(--nb-primary-dark)}
.nb-sv-hero-desc{font-size:1.125rem;color:var(--nb-text-secondary);margin-bottom:2.5rem}
.nb-sv-hero-categories{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap}
.nb-sv-hero-cat{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 2rem;background:var(--nb-white);border:1px solid #DBEAFE;border-radius:12px;color:var(--nb-primary-dark);text-decoration:none;transition:all .3s}
.nb-sv-hero-cat:hover{background:var(--nb-bg-blue);text-decoration:none;color:var(--nb-primary-dark);transform:translateY(-2px)}
.nb-sv-hero-cat span{font-size:1.5rem}
.nb-sv-hero-cat strong{font-size:.9375rem}
.nb-sv-guarantee-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-sv-guarantee-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;text-align:center;transition:all .3s}
.nb-sv-guarantee-card:hover{border-color:var(--nb-primary-dark);box-shadow:0 8px 24px rgba(0,61,156,.1);transform:translateY(-3px)}
.nb-sv-gt-icon{font-size:2rem;margin-bottom:.75rem}
.nb-sv-guarantee-card h3{font-size:1.125rem;font-weight:700;color:var(--nb-primary-dark);margin-bottom:.5rem}
.nb-sv-guarantee-card p{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6}
.nb-sv-self-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.nb-sv-self-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;text-align:center;transition:all .3s}
.nb-sv-self-card:hover{border-color:var(--nb-primary);box-shadow:0 6px 20px rgba(0,82,217,.1);transform:translateY(-3px)}
.nb-sv-self-icon{font-size:2rem;margin-bottom:.75rem}
.nb-sv-self-card h3{font-size:1.0625rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.5rem}
.nb-sv-self-card p{font-size:.8125rem;color:var(--nb-text-secondary);margin-bottom:1rem}
.nb-sv-self-link{display:inline-block;padding:.5rem 1.25rem;background:var(--nb-primary);color:var(--nb-white);border-radius:50px;font-weight:600;font-size:.875rem;text-decoration:none;transition:all .3s}
.nb-sv-self-link:hover{background:var(--nb-primary-dark);color:var(--nb-white);text-decoration:none}
.nb-sv-repair-flow{display:flex;flex-direction:column;align-items:center}
.nb-sv-repair-step{display:flex;gap:1.5rem;align-items:flex-start;width:100%;max-width:560px}
.nb-sv-repair-num{width:48px;height:48px;background:var(--nb-primary);color:var(--nb-white);border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.0625rem;flex-shrink:0}
.nb-sv-repair-num--done{background:var(--nb-accent-green);font-size:1.5rem}
.nb-sv-repair-card{flex:1;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem}
.nb-sv-repair-card h3{font-size:1.0625rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.375rem}
.nb-sv-repair-card p{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6}
.nb-sv-repair-card--done{border-color:#A5D6A7;background:#F1F8E9}
.nb-sv-repair-connector{width:3px;height:30px;background:var(--nb-border-input);flex-shrink:0;margin-left:22.5px}
.nb-sv-repair-duration{display:inline-block;margin-top:.75rem;font-size:.75rem;color:var(--nb-primary);font-weight:600}
.nb-sv-contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-sv-contact-item{text-align:center;padding:1.5rem;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;transition:all .3s}
.nb-sv-contact-item:hover{box-shadow:0 4px 12px rgba(0,61,156,.08)}
.nb-sv-contact-item>span:first-child{font-size:2rem;display:block;margin-bottom:.5rem}
.nb-sv-contact-item strong{font-size:.9375rem;color:var(--nb-text-secondary);display:block}
.nb-sv-contact-item span:nth-child(3){font-size:1.25rem;font-weight:700;display:block;margin:.375rem 0;color:var(--nb-text-primary)}
.nb-sv-contact-item small{font-size:.75rem;color:var(--nb-text-muted);display:block}
.nb-sv-cta-btn{display:inline-block;padding:1rem 3rem;background:var(--nb-white);color:var(--nb-primary-dark);border-radius:50px;font-weight:800;font-size:1.125rem;text-decoration:none;transition:all .3s}
.nb-sv-cta-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15);text-decoration:none}
.nb-sv-cta-wrap { text-align: center; margin-top: 2rem; }

/* ===== [12] nb-vp — 产品详情 ===== */
.nb-vp-section{padding:3rem 0}
.nb-vp-layout{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.nb-vp-gallery{position:sticky;top:5rem}
.nb-vp-main-img{width:100%;border-radius:12px;margin-bottom:1rem;display:block}
.nb-vp-gallery-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}
.nb-vp-gallery-badges span{font-size:.75rem;background:var(--nb-bg-blue);color:var(--nb-primary-dark);padding:.25rem .75rem;border-radius:4px;font-weight:600}
.nb-vp-title{font-size:1.75rem;font-weight:800;color:var(--nb-text-primary);margin-bottom:.75rem;line-height:1.3}
.nb-vp-desc{font-size:.9375rem;color:var(--nb-text-secondary);line-height:1.7;margin-bottom:1.5rem}
.nb-vp-price-box{background:var(--nb-bg-blue);border:1px solid #DBEAFE;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}
.nb-vp-price-label{font-size:.75rem;color:var(--nb-primary-dark);font-weight:600;margin-bottom:.25rem}
.nb-vp-price-value{font-size:1rem;color:var(--nb-text-primary);font-weight:600;margin-bottom:.75rem}
.nb-vp-price-phone{display:inline-block;font-size:1.25rem;font-weight:800;color:var(--nb-primary);text-decoration:none}
.nb-vp-price-phone:hover{color:var(--nb-primary-dark);text-decoration:none}
.nb-vp-specs{list-style:none;padding:0;margin:0 0 1.5rem;border-top:1px solid var(--nb-border-lighter)}
.nb-vp-specs li{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--nb-border-lighter);font-size:.875rem}
.nb-vp-specs li span:first-child{color:var(--nb-text-muted)}
.nb-vp-spec-val{font-weight:600;color:var(--nb-text-primary)}
.nb-vp-actions{margin-bottom:1rem}
.nb-vp-btn-call{display:block;width:100%;padding:.875rem;background:var(--nb-primary);color:var(--nb-white);border-radius:10px;font-weight:700;font-size:1.0625rem;text-align:center;text-decoration:none;transition:all .3s}
.nb-vp-btn-call:hover{background:var(--nb-primary-dark);color:var(--nb-white);text-decoration:none;transform:translateY(-2px)}
.nb-vp-trust{display:flex;gap:1rem;flex-wrap:wrap}
.nb-vp-trust span{font-size:.75rem;color:var(--nb-primary-dark);font-weight:600}
.nb-vp-detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:start}
.nb-vp-detail-block h2,.nb-vp-reviews-block h2{font-size:1.25rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--nb-primary)}
.nb-vp-review-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.5rem;margin-bottom:1rem;transition:all .3s}
.nb-vp-review-card:hover{border-color:var(--nb-primary);box-shadow:0 4px 16px rgba(0,82,217,.06)}
.nb-vp-review-stars{color:var(--nb-accent-amber);font-size:.875rem;margin-bottom:.5rem;letter-spacing:2px}
.nb-vp-review-card>p{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6;margin-bottom:1rem}
.nb-vp-review-author{display:flex;gap:.75rem;align-items:center}
.nb-vp-review-avatar{width:36px;height:36px;background:var(--nb-primary);color:var(--nb-white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0}
.nb-vp-review-author strong{display:block;font-size:.8125rem;color:var(--nb-text-primary)}
.nb-vp-review-author span{font-size:.75rem;color:var(--nb-text-muted)}
.nb-vp-guarantee-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.nb-vp-guarantee-item{text-align:center;padding:1.5rem;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;transition:all .3s}
.nb-vp-guarantee-item:hover{border-color:var(--nb-primary);box-shadow:0 4px 16px rgba(0,82,217,.08);transform:translateY(-3px)}
.nb-vp-guarantee-item span{font-size:2rem;display:block;margin-bottom:.5rem}
.nb-vp-guarantee-item h3{font-size:1rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.375rem}
.nb-vp-guarantee-item p{font-size:.8125rem;color:var(--nb-text-secondary);line-height:1.5}

/* ===== [13] nb-va — 文章详情 ===== */
.nb-va-section{padding:3rem 0}
.nb-va-layout{display:grid;grid-template-columns:1fr 280px;gap:3rem;align-items:start}
.nb-va-article{min-width:0}
.nb-va-hero-image{margin-bottom:2rem;border-radius:12px;overflow:hidden}
.nb-va-hero-image img{width:100%;display:block}
.nb-va-header{margin-bottom:2rem}
.nb-va-category{display:inline-block;font-size:.75rem;font-weight:600;color:var(--nb-primary);background:var(--nb-bg-blue);padding:.25rem .75rem;border-radius:4px;margin-bottom:.75rem}
.nb-va-title{font-size:2rem;font-weight:800;color:var(--nb-text-primary);line-height:1.3;margin-bottom:.75rem}
.nb-va-meta{display:flex;gap:1.25rem;flex-wrap:wrap;font-size:.8125rem;color:var(--nb-text-muted)}
.nb-va-content{font-size:1.0625rem;line-height:1.85;color:#333}
.nb-va-cta-inline{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:linear-gradient(135deg,var(--nb-bg-blue),#F0F4FF);border:1px solid #C5D3F0;border-radius:12px;padding:1.5rem 2rem;margin:2.5rem 0;flex-wrap:wrap}
.nb-va-cta-text h3{font-size:1.125rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.25rem}
.nb-va-cta-text p{font-size:.875rem;color:#555}
.nb-va-cta-phone{font-size:1.5rem;font-weight:800;color:var(--nb-primary);text-decoration:none;white-space:nowrap}
.nb-va-cta-phone:hover{color:var(--nb-primary-dark);text-decoration:none}
.nb-va-tags{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:1.5rem 0;padding:1rem 0;border-top:1px solid var(--nb-border-lighter);border-bottom:1px solid var(--nb-border-lighter)}
.nb-va-tags span{font-size:.8125rem;color:var(--nb-text-muted)}
.nb-va-tags a{font-size:.8125rem;color:var(--nb-primary);text-decoration:none}
.nb-va-tags a:hover{color:var(--nb-primary-dark);text-decoration:underline}
.nb-va-prevnext{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}
.nb-va-prevnext-link{display:block;padding:1.25rem;border:1px solid var(--nb-border);border-radius:10px;text-decoration:none;transition:all .3s}
.nb-va-prevnext-link:hover{border-color:var(--nb-primary);box-shadow:0 4px 12px rgba(0,82,217,.08);text-decoration:none}
.nb-va-prevnext-link span{display:block;font-size:.75rem;color:var(--nb-text-muted);margin-bottom:.25rem}
.nb-va-prevnext-link strong{font-size:.875rem;color:var(--nb-text-primary);font-weight:600}
.nb-va-prevnext-next{text-align:right}
.nb-va-prevnext-empty{opacity:.5;pointer-events:none}
.nb-va-sidebar{position:sticky;top:5rem}
.nb-va-side-block{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.5rem;margin-bottom:1.25rem}
.nb-va-side-title{font-size:1.0625rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--nb-primary)}
.nb-va-side-nav li{padding:.5rem 0;border-bottom:1px solid var(--nb-border-lighter)}
.nb-va-side-nav li:last-child{border-bottom:none}
.nb-va-side-nav a{font-size:.875rem;color:var(--nb-text-secondary);text-decoration:none;display:block;transition:color .2s}
.nb-va-side-nav a:hover{color:var(--nb-primary)}
.nb-va-side-block--cta{background:linear-gradient(135deg,var(--nb-primary),var(--nb-primary-light));color:var(--nb-white);text-align:center}
.nb-va-side-block--cta .nb-va-side-title{color:var(--nb-white);border-bottom-color:rgba(255,255,255,.3)}
.nb-va-side-block--cta p{font-size:.8125rem;opacity:.85;margin-bottom:.75rem}
.nb-va-side-phone{display:block;font-size:1.375rem;font-weight:800;color:var(--nb-accent-gold);text-decoration:none;margin-bottom:.75rem}
.nb-va-side-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-va-side-note{font-size:.75rem!important;opacity:.7!important;margin-bottom:.75rem!important}
.nb-va-side-btn{display:block;padding:.625rem;background:var(--nb-white);color:var(--nb-primary);border-radius:8px;font-weight:700;font-size:.875rem;text-decoration:none;transition:all .3s}
.nb-va-side-btn:hover{background:var(--nb-accent-gold);color:var(--nb-text-primary);text-decoration:none}

/* ===== [14] nb-covv — 覆盖文章详情 ===== */
.nb-covv-section{padding:3rem 0}
.nb-covv-layout{display:grid;grid-template-columns:1fr 260px;gap:2.5rem;align-items:start}
.nb-covv-article{min-width:0}
.nb-covv-header{margin-bottom:1.5rem}
.nb-covv-header-badge{display:inline-block;font-size:.6875rem;font-weight:700;background:var(--nb-bg-blue);color:var(--nb-primary-dark);padding:.2rem .75rem;border-radius:4px;margin-bottom:.75rem}
.nb-covv-title{font-size:1.75rem;font-weight:800;color:var(--nb-text-primary);line-height:1.3;margin-bottom:.75rem}
.nb-covv-meta{display:flex;gap:1rem;flex-wrap:wrap;font-size:.8125rem;color:var(--nb-text-muted)}
.nb-covv-detail-content{font-size:1.0625rem;line-height:1.85;color:#333;margin-bottom:1.5rem}
.nb-covv-block{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.75rem 2rem;margin-bottom:1.5rem}
.nb-covv-block-title{font-size:1.25rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}
.nb-covv-block-icon{font-size:1.375rem}
.nb-covv-block-desc{font-size:.875rem;color:#555;margin-bottom:1rem}
.nb-covv-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1rem}
.nb-covv-table{width:100%;min-width:500px;border-collapse:collapse}
.nb-covv-table th{background:#F0F7FF;color:var(--nb-text-primary);padding:.75rem 1rem;font-size:.8125rem;font-weight:600;text-align:center;border:1px solid #DBEAFE}
.nb-covv-table td{padding:.75rem 1rem;font-size:.8125rem;color:var(--nb-text-secondary);text-align:center;border:1px solid var(--nb-border-lighter)}
.nb-covv-td-speed{font-weight:700;color:var(--nb-primary)}
.nb-covv-td-price{font-weight:700;color:var(--nb-accent-red)}
.nb-covv-block-cta{text-align:center;padding:.75rem;background:var(--nb-bg-blue);border-radius:8px;font-size:.875rem;color:var(--nb-text-primary);margin-top:1rem}
.nb-covv-block-cta a{color:var(--nb-primary);font-weight:700;text-decoration:none}
.nb-covv-block-cta a:hover{text-decoration:underline}
.nb-covv-village-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;margin-bottom:1rem}
.nb-covv-village-tag{display:block;text-align:center;padding:.5rem .75rem;background:var(--nb-bg-blue);color:var(--nb-primary-dark);border-radius:6px;font-size:.8125rem;transition:all .2s}
.nb-covv-village-tag:hover{background:#DBEAFE;transform:translateY(-1px)}
.nb-covv-block-note{font-size:.8125rem;color:#555;padding:.75rem 1rem;background:#FFF9E6;border-radius:8px;line-height:1.6}
.nb-covv-block-note a{color:var(--nb-primary);text-decoration:none}
.nb-covv-inline-cta{text-align:center;background:linear-gradient(135deg,var(--nb-primary-dark),var(--nb-primary-light));color:var(--nb-white);border-radius:12px;padding:2rem;margin-bottom:1.5rem}
.nb-covv-inline-cta h3{font-size:1.25rem;font-weight:700;margin-bottom:.375rem}
.nb-covv-inline-cta p{font-size:.875rem;opacity:.9;margin-bottom:1rem}
.nb-covv-inline-phone{display:inline-block;font-size:1.5rem;font-weight:800;color:var(--nb-accent-gold);text-decoration:none;padding:.5rem 2rem;border:2px solid var(--nb-accent-gold);border-radius:50px;transition:all .3s}
.nb-covv-inline-phone:hover{background:var(--nb-accent-gold);color:var(--nb-primary-dark);text-decoration:none}
.nb-covv-prevnext{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}
.nb-covv-pn-link{font-size:.875rem;color:var(--nb-text-secondary);text-decoration:none;transition:color .2s}
.nb-covv-pn-link:hover{color:var(--nb-primary);text-decoration:none}
.nb-covv-pn-empty{opacity:.5;pointer-events:none}
.nb-covv-sidebar{position:sticky;top:5rem}
.nb-covv-side-block{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.5rem;margin-bottom:1.25rem}
.nb-covv-side-block h3{font-size:1rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.75rem}
.nb-covv-side-phone{display:block;font-size:1.25rem;font-weight:800;color:var(--nb-primary);text-decoration:none;margin-bottom:.5rem}
.nb-covv-side-phone:hover{color:var(--nb-primary-dark);text-decoration:none}
.nb-covv-side-btn{display:block;padding:.625rem;background:var(--nb-primary);color:var(--nb-white);border-radius:8px;font-weight:600;font-size:.8125rem;text-align:center;text-decoration:none;transition:all .3s}
.nb-covv-side-btn:hover{background:var(--nb-primary-dark);color:var(--nb-white);text-decoration:none}
.nb-covv-side-nav li{padding:.4rem 0;border-bottom:1px solid var(--nb-border-lighter)}
.nb-covv-side-nav li:last-child{border-bottom:none}
.nb-covv-side-nav a{font-size:.8125rem;color:var(--nb-text-secondary);text-decoration:none}
.nb-covv-side-nav a:hover{color:var(--nb-primary)}

/* ===== 覆盖列表页 — 热门覆盖卡片（nb-covl） ===== */
.nb-covl-hot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:.75rem}
.nb-covl-hot-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.5rem;transition:all .25s ease;display:flex;flex-direction:column;gap:.75rem}
.nb-covl-hot-card:hover{border-color:var(--nb-primary);box-shadow:0 4px 16px rgba(0,82,217,.08);transform:translateY(-2px)}
.nb-covl-hot-card-badge{display:inline-block;font-size:.6875rem;font-weight:700;background:var(--nb-bg-blue);color:var(--nb-primary-dark);padding:.15rem .625rem;border-radius:4px;align-self:flex-start}
.nb-covl-hot-card-title{font-size:1rem;font-weight:700;line-height:1.4}
.nb-covl-hot-card-title a{color:var(--nb-text-primary);text-decoration:none}
.nb-covl-hot-card-title a:hover{color:var(--nb-primary)}
.nb-covl-hot-card-desc{font-size:.8125rem;color:var(--nb-text-secondary);line-height:1.6;flex:1}
.nb-covl-hot-card-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.75rem;color:var(--nb-text-muted);padding-top:.5rem;border-top:1px solid var(--nb-border-lighter)}
.nb-covl-hot-card-link{font-weight:600;color:var(--nb-primary);text-decoration:none;margin-left:auto}
.nb-covl-hot-card-link:hover{text-decoration:underline}
.nb-covl-hot-empty{text-align:center;padding:2rem;color:var(--nb-text-muted);font-size:.875rem;grid-column:1/-1}

/* ===== 覆盖列表页 — 合并模块（街道乡镇+楼盘商圈+最新覆盖） ===== */
/* ---- Card container ---- */
.nb-covl-merged-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:16px;padding:2rem;margin-top:1rem;box-shadow:0 1px 2px rgba(0,0,0,.03),0 2px 8px rgba(0,0,0,.04)}
.nb-covl-merged-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0}
.nb-covl-merged-col{display:flex;flex-direction:column;gap:0;padding:0 1.75rem;position:relative}
.nb-covl-merged-col:first-child{padding-left:0}
.nb-covl-merged-col:last-child{padding-right:0}
.nb-covl-merged-col:first-child::after,.nb-covl-merged-col:nth-child(2)::after{content:'';position:absolute;right:0;top:.5rem;bottom:.5rem;width:1px;background:var(--nb-border-lighter)}
/* ---- Column accent themes ---- */
[data-col="street"]{--covl-accent:var(--nb-primary);--covl-accent-soft:var(--nb-bg-blue)}
[data-col="commercial"]{--covl-accent:#0D9488;--covl-accent-soft:#F0FDFA}
[data-col="latest"]{--covl-accent:#EA580C;--covl-accent-soft:#FFF7ED}

/* ===== 首页覆盖区域 — 两大独立卡片 (nb-home-cov) ===== */
/* Grid: two equal columns */
.nb-home-cov-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
/* Column & Card */
.nb-home-cov-col { --cov-accent: var(--nb-primary); --cov-accent-soft: var(--nb-bg-blue); --cov-accent-deep: var(--nb-primary-dark); }
[data-col="commercial"] { --cov-accent: #0D9488; --cov-accent-soft: #F0FDFA; --cov-accent-deep: #0F766E; }
.nb-home-cov-card {
    background: var(--nb-white); border: 1px solid var(--nb-border);
    border-radius: 16px; padding: 2rem 2rem 1.75rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.06);
    transition: all .3s ease; height: 100%; display: flex; flex-direction: column;
}
.nb-home-cov-card:hover {
    border-color: var(--cov-accent);
    box-shadow: 0 8px 28px rgba(0,0,0,.06),0 2px 4px rgba(0,0,0,.04);
    transform: translateY(-2px);
}
/* Header: icon + text + stat */
.nb-home-cov-header {
    display: flex; align-items: center; gap: 1rem;
    padding-bottom: 1.25rem; margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--nb-border-lighter);
}
.nb-home-cov-icon {
    width: 56px; height: 56px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--cov-accent-soft), color-mix(in srgb, var(--cov-accent) 15%, white));
    color: var(--cov-accent);
}
.nb-home-cov-header-text { flex: 1; min-width: 0; }
.nb-home-cov-title { font-size: 1.125rem; font-weight: 700; color: var(--nb-text-primary); margin: 0 0 .25rem; line-height: 1.3; }
.nb-home-cov-desc { font-size: .8125rem; color: var(--nb-text-secondary); margin: 0; line-height: 1.4; }
/* Stat badge */
.nb-home-cov-stat {
    display: flex; flex-direction: column; align-items: center; flex-shrink: 0;
    padding: .5rem .875rem; border-radius: 10px;
    background: var(--cov-accent-soft);
}
.nb-home-cov-stat-num { font-size: 1.375rem; font-weight: 800; color: var(--cov-accent); line-height: 1.1; }
.nb-home-cov-stat-label { font-size: .6875rem; color: var(--cov-accent-deep); font-weight: 500; }
/* List */
.nb-home-cov-list { flex: 1; counter-reset: hcov-num; display: flex; flex-direction: column; gap: .375rem; }
.nb-home-cov-item {
    display: flex; flex-wrap: wrap; align-items: flex-start; gap: .5rem .625rem;
    counter-increment: hcov-num;
    padding: .75rem .875rem; border-radius: 10px;
    text-decoration: none; transition: all .25s ease;
    border-left: 2px solid transparent;
    position: relative;
}
.nb-home-cov-item:hover {
    background: var(--cov-accent-soft);
    border-left-color: var(--cov-accent);
    box-shadow: 0 2px 12px rgba(0,0,0,.04);
    transform: translateX(2px);
}
/* 「新」badge — first 3 items (most recent) */
.nb-home-cov-item:nth-child(-n+3)::after {
    content: '新'; position: absolute; top: -4px; right: -2px;
    font-size: .5625rem; font-weight: 800; color: var(--nb-white);
    background: var(--cov-accent); padding: 0 .3125rem; line-height: 1.5;
    border-radius: 0 8px 0 5px;
}
/* Number */
.nb-home-cov-item-num {
    flex-shrink: 0; width: 1.125rem; text-align: right;
    font-size: .6875rem; font-weight: 800; color: var(--nb-text-muted);
    font-variant-numeric: tabular-nums; line-height: 1.15rem;
}
.nb-home-cov-item-num::before { content: counter(hcov-num, decimal-leading-zero); }
.nb-home-cov-item:hover .nb-home-cov-item-num { color: var(--cov-accent); }
/* Pin icon */
.nb-home-cov-item-pin {
    flex-shrink: 0; width: 16px; height: 16px; margin-top: .0625rem;
    color: var(--cov-accent); opacity: .5; transition: opacity .25s ease;
}
.nb-home-cov-item:hover .nb-home-cov-item-pin { opacity: 1; }
/* Body (title + subtitle) */
.nb-home-cov-item-body {
    flex: 1; min-width: 0;
    display: flex; flex-direction: column; gap: .1875rem;
}
/* Title */
.nb-home-cov-item-text {
    font-size: .875rem; font-weight: 600; color: var(--nb-text-primary);
    line-height: 1.5;
    display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical;
    overflow: hidden;
}
.nb-home-cov-item:hover .nb-home-cov-item-text { color: var(--cov-accent); }
/* Subtitle — description snippet */
.nb-home-cov-item-sub {
    font-size: .75rem; color: var(--nb-text-muted);
    line-height: 1.55;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
}
/* Meta (time) */
.nb-home-cov-item-meta {
    flex-shrink: 0; display: flex; align-items: center;
    margin-left: auto;
}
.nb-home-cov-item-time {
    font-size: .6875rem; color: var(--nb-text-muted);
    font-variant-numeric: tabular-nums; line-height: 1.15rem;
}
.nb-home-cov-item:hover .nb-home-cov-item-time { color: var(--cov-accent); }
/* More link */
.nb-home-cov-more {
    display: inline-flex; align-items: center; gap: .375rem;
    margin-top: .875rem; padding-top: .75rem;
    border-top: 1px solid var(--nb-border-lighter);
    font-size: .8125rem; font-weight: 600; color: var(--cov-accent);
    text-decoration: none; transition: gap .25s ease, opacity .25s ease;
}
.nb-home-cov-more:hover { gap: .625rem; opacity: .8; }
.nb-home-cov-more-arrow { transition: transform .25s ease; }
.nb-home-cov-more:hover .nb-home-cov-more-arrow { transform: translateX(3px); }

/* ---- List container ---- */
.nb-covl-hot-list{display:flex;flex-direction:column;gap:0}
.nb-covl-hot-list .nb-covl-hot-card{display:flex;flex-direction:row;align-items:center;gap:.5rem;background:none;border:none;border-bottom:1px solid var(--nb-border-lighter);border-radius:0;padding:.6rem 0;transition:padding .2s ease,border-color .2s ease,background .2s ease;box-shadow:none}
.nb-covl-hot-list .nb-covl-hot-card:last-child{border-bottom:none}
.nb-covl-hot-list .nb-covl-hot-card:hover{background:var(--covl-accent-soft);border-bottom-color:var(--covl-accent);box-shadow:none;transform:none;padding-left:.5rem;padding-right:.5rem;border-radius:6px;margin:0 -.5rem}
/* ---- Title link ---- */
.nb-covl-hot-list .nb-covl-hot-card a{font-size:.875rem;color:var(--nb-text-primary);text-decoration:none;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.nb-covl-hot-list .nb-covl-hot-card a:hover{color:var(--covl-accent)}
/* ---- Time badge ---- */
.nb-covl-hot-time{font-size:.6875rem;color:var(--nb-text-muted);flex-shrink:0;background:var(--covl-accent-soft);padding:.125rem .5rem;border-radius:3px;line-height:1.4}
.nb-covl-hot-list .nb-covl-hot-card:hover .nb-covl-hot-time{background:var(--nb-white);color:var(--covl-accent)}

/* ===== 覆盖详情页 — 覆盖状态网格（nb-covv） ===== */
.nb-covv-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem}
.nb-covv-status-item{text-align:center;padding:1rem .75rem;background:var(--nb-bg-light);border-radius:8px;border:1px solid var(--nb-border-lighter)}
.nb-covv-status-icon{font-size:1.25rem;font-weight:700;color:#22C55E;margin-bottom:.25rem}
.nb-covv-status-label{font-size:.75rem;color:var(--nb-text-muted);margin-bottom:.125rem}
.nb-covv-status-value{font-size:.8125rem;font-weight:700;color:#22C55E}
.nb-covv-status-partial{color:#F59E0B}

/* ===== 覆盖详情页 — FAQ（nb-covv） ===== */
.nb-covv-faq-list{margin-top:.5rem}
.nb-covv-faq-item{border-bottom:1px solid var(--nb-border-lighter)}
.nb-covv-faq-item:last-child{border-bottom:none}
.nb-covv-faq-q{width:100%;text-align:left;padding:.8rem 0;font-size:.875rem;font-weight:600;color:var(--nb-text-primary);background:transparent;border:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.nb-covv-faq-q::after{content:"+";font-size:1.25rem;font-weight:300;color:var(--nb-text-muted)}
.nb-covv-faq-item.open .nb-covv-faq-q::after{content:"−";color:var(--nb-primary)}
.nb-covv-faq-a{font-size:.8125rem;color:var(--nb-text-secondary);line-height:1.75;padding:0 0 1rem;display:none}
.nb-covv-faq-item.open .nb-covv-faq-a{display:block}

/* ===== 覆盖列表页 — 独立样式（nb-covl） ===== */
/* hero stats */
.nb-covl-hero-stats{display:flex;justify-content:center;gap:3rem;flex-wrap:wrap;padding:2rem 0;margin-top:1rem}
.nb-covl-hero-stat-item{text-align:center}
.nb-covl-hero-stat-value{font-size:2rem;font-weight:800;color:var(--nb-primary);line-height:1.2}
.nb-covl-hero-stat-label{font-size:.8125rem;color:#9E9E9E;margin-top:.25rem}
/* province grid */
.nb-covl-province-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.nb-covl-province-item{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:10px;padding:1.25rem .75rem;text-align:center;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center;gap:.375rem;font-family:inherit;font-size:1.0625rem;font-weight:600;color:var(--nb-text-primary);position:relative;overflow:hidden;outline-offset:2px;min-width:0}
.nb-covl-province-item::before{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--nb-primary);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nb-covl-province-item:hover{border-color:var(--nb-primary);box-shadow:0 6px 20px rgba(0,82,217,.12);transform:translateY(-2px);color:var(--nb-primary)}
.nb-covl-province-item:hover::before{transform:scaleX(1)}
.nb-covl-province-name{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nb-covl-province-arrow{font-size:1.25rem;color:var(--nb-primary);transition:transform .2s ease;position:relative;z-index:1}
.nb-covl-province-item:hover .nb-covl-province-arrow{transform:translateX(3px)}
/* article list */
.nb-covl-article-list{display:flex;flex-direction:column;gap:0}
.nb-covl-article-item{display:flex;gap:1.25rem;padding:1.5rem 0;border-bottom:1px solid var(--nb-border);align-items:flex-start;transition:background .2s ease}
.nb-covl-article-item:hover{background:var(--nb-bg-light)}
.nb-covl-article-item:last-child{border-bottom:none}
.nb-covl-article-body{flex:1;min-width:0}
.nb-covl-article-title{font-size:1.125rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.5rem;line-height:1.5}
.nb-covl-article-item:hover .nb-covl-article-title a{color:var(--nb-primary)}
.nb-covl-article-desc{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6;margin-bottom:.5rem}
.nb-covl-article-meta{font-size:.8125rem;color:var(--nb-text-muted);display:flex;gap:1rem;flex-wrap:wrap}
.nb-covl-article-meta span::before{content:'\2022';margin-right:.375rem;color:#C0C0C0}
.nb-covl-article-meta span:first-child::before{display:none}
.nb-covl-article-item.no-thumb{padding:1rem 0}
.nb-covl-article-item.no-thumb .nb-covl-article-title{font-size:1rem}
/* cta bar */
.nb-covl-cta-bar{background:linear-gradient(135deg,var(--nb-primary),var(--nb-primary-dark));color:var(--nb-white);border-radius:12px;padding:2rem;text-align:center;margin:2rem 0}
.nb-covl-cta-bar h3{font-size:1.5rem;font-weight:800;margin-bottom:.5rem}
.nb-covl-cta-bar-phone{font-size:2rem;font-weight:800;color:var(--nb-accent-gold);margin:.5rem 0;display:block}
/* faq */
.nb-covl-faq-list{max-width:800px;margin:0 auto}
.nb-covl-faq-item{border:1px solid var(--nb-border);border-radius:8px;margin-bottom:.75rem;overflow:hidden;background:var(--nb-white)}
.nb-covl-faq-question{width:100%;padding:1rem 1.25rem;text-align:left;font-size:1rem;font-weight:600;color:var(--nb-text-primary);display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--nb-white);transition:background .2s ease}
.nb-covl-faq-question:hover{background:var(--nb-bg-light)}
.nb-covl-faq-question::after{content:'+';font-size:1.5rem;color:var(--nb-primary);flex-shrink:0;transition:transform .3s ease;font-weight:400}
.nb-covl-faq-item.open .nb-covl-faq-question::after{transform:rotate(45deg)}
.nb-covl-faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 1.25rem;color:var(--nb-text-secondary);font-size:.9375rem;line-height:1.7}
.nb-covl-faq-item.open .nb-covl-faq-answer{max-height:500px;padding:0 1.25rem 1.25rem}
/* pagination */
.nb-covl-pagination{display:flex;justify-content:center;gap:.375rem;margin:2rem 0;flex-wrap:wrap}
.nb-covl-pagination a,.nb-covl-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 .75rem;border:1px solid var(--nb-border);border-radius:6px;font-size:.9375rem;color:var(--nb-text-primary);background:var(--nb-white);transition:all .2s ease}
.nb-covl-pagination a:hover{border-color:var(--nb-primary);color:var(--nb-primary);text-decoration:none}
.nb-covl-pagination .current{background:var(--nb-primary);color:var(--nb-white);border-color:var(--nb-primary);font-weight:700}

/* ===== [15> nb-vn — 新闻详情 ===== */
.nb-vn-section{padding:3rem 0}
.nb-vn-layout{display:grid;grid-template-columns:1fr 280px;gap:3rem;align-items:start}
.nb-vn-article{min-width:0}
.nb-vn-hero-img{margin-bottom:2rem;border-radius:12px;overflow:hidden}
.nb-vn-hero-img img{width:100%;display:block}
.nb-vn-header{margin-bottom:2rem}
.nb-vn-header-top{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}
.nb-vn-badge{font-size:.6875rem;font-weight:700;background:var(--nb-bg-blue);color:var(--nb-primary);padding:.15rem .75rem;border-radius:4px}
.nb-vn-time{font-size:.75rem;color:var(--nb-text-muted)}
.nb-vn-source{font-size:.75rem;color:var(--nb-text-muted)}
.nb-vn-title{font-size:1.875rem;font-weight:800;color:var(--nb-text-primary);line-height:1.35;margin-bottom:.75rem}
.nb-vn-stats{font-size:.8125rem;color:var(--nb-text-muted)}
.nb-vn-content{font-size:1.0625rem;line-height:1.85;color:#333}
.nb-vn-cta-inline{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:linear-gradient(135deg,var(--nb-bg-blue),#F5F7FF);border:1px solid #C5D3F0;border-radius:12px;padding:1.5rem 2rem;margin:2.5rem 0;flex-wrap:wrap}
.nb-vn-cta-left h3{font-size:1.125rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.25rem}
.nb-vn-cta-left p{font-size:.875rem;color:#555}
.nb-vn-cta-right{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.nb-vn-cta-phone{font-size:1.375rem;font-weight:800;color:var(--nb-primary);text-decoration:none;white-space:nowrap}
.nb-vn-cta-phone:hover{color:var(--nb-primary-dark);text-decoration:none}
.nb-vn-cta-btn{display:inline-block;padding:.625rem 1.5rem;background:var(--nb-primary);color:var(--nb-white);border-radius:8px;font-weight:700;font-size:.875rem;text-decoration:none;transition:all .3s}
.nb-vn-cta-btn:hover{background:var(--nb-primary-dark);color:var(--nb-white);text-decoration:none;transform:translateY(-2px)}
.nb-vn-prevnext{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}
.nb-vn-pn-item{display:block;padding:1.25rem;border:1px solid var(--nb-border);border-radius:10px;text-decoration:none;transition:all .3s}
.nb-vn-pn-item:hover{border-color:var(--nb-primary);box-shadow:0 4px 12px rgba(0,82,217,.08);text-decoration:none}
.nb-vn-pn-item span{display:block;font-size:.75rem;color:var(--nb-text-muted);margin-bottom:.25rem}
.nb-vn-pn-item strong{font-size:.875rem;color:var(--nb-text-primary);font-weight:600}
.nb-vn-pn-next{text-align:right}
.nb-vn-pn-empty{opacity:.5;pointer-events:none}
.nb-vn-sidebar{position:sticky;top:5rem}
.nb-vn-side-block{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.5rem;margin-bottom:1.25rem}
.nb-vn-side-block h3{font-size:1.0625rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--nb-primary)}
.nb-vn-side-nav li{padding:.5rem 0;border-bottom:1px solid var(--nb-border-lighter)}
.nb-vn-side-nav li:last-child{border-bottom:none}
.nb-vn-side-nav a{font-size:.875rem;color:var(--nb-text-secondary);text-decoration:none;display:block;transition:color .2s}
.nb-vn-side-nav a:hover{color:var(--nb-primary)}
.nb-vn-side-block--cta{background:linear-gradient(135deg,var(--nb-primary),var(--nb-primary-light));color:var(--nb-white);text-align:center}
.nb-vn-side-block--cta h3{color:var(--nb-white);border-bottom-color:rgba(255,255,255,.3)}
.nb-vn-side-block--cta p{font-size:.8125rem;opacity:.85;margin-bottom:.75rem}
.nb-vn-side-phone{display:block;font-size:1.375rem;font-weight:800;color:var(--nb-accent-gold);text-decoration:none;margin-bottom:.75rem}
.nb-vn-side-phone:hover{color:var(--nb-accent-gold-light);text-decoration:none}
.nb-vn-side-btn{display:block;padding:.625rem;background:var(--nb-white);color:var(--nb-primary);border-radius:8px;font-weight:700;font-size:.875rem;text-decoration:none;transition:all .3s}
.nb-vn-side-btn:hover{background:var(--nb-accent-gold);color:var(--nb-text-primary);text-decoration:none}

/* ===== [16] nb-news — 宽带资讯栏目 ===== */
/* Hero */
.nb-news-hero{padding:3.5rem 0 4rem}
.nb-news-hero-title{font-size:2.25rem;font-weight:800;margin-bottom:.75rem;color:var(--nb-text-primary)}
.nb-news-hero-accent{color:var(--nb-primary);position:relative}
.nb-news-hero-accent::after{content:'';position:absolute;left:0;bottom:2px;width:100%;height:8px;background:rgba(0,82,217,.12);border-radius:4px;z-index:-1}
.nb-news-hero-desc{font-size:1.0625rem;color:var(--nb-text-secondary);max-width:680px;margin:0 auto 2rem;line-height:1.7}
.nb-news-hero-stats{display:flex;justify-content:center;gap:3rem;flex-wrap:wrap}
.nb-news-hero-stat{text-align:center}
.nb-news-hero-stat strong{display:block;font-size:2rem;font-weight:900;color:var(--nb-primary);line-height:1.2}
.nb-news-hero-stat span{font-size:.8125rem;color:var(--nb-text-muted);margin-top:.25rem;display:block}

/* Category Cards */
.nb-news-categories{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.nb-news-cat-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:14px;padding:2rem 1.5rem;text-align:center;transition:all .3s ease;cursor:pointer}
.nb-news-cat-card:hover{border-color:var(--nb-primary);box-shadow:0 8px 28px rgba(0,61,156,.08);transform:translateY(-4px)}
.nb-news-cat-icon{font-size:2.5rem;margin-bottom:1rem;line-height:1}
.nb-news-cat-card h3{font-size:1.125rem;font-weight:700;color:var(--nb-text-primary);margin-bottom:.5rem}
.nb-news-cat-card p{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6;margin-bottom:1rem}
.nb-news-cat-count{display:inline-block;font-size:.75rem;font-weight:600;color:var(--nb-white);background:var(--nb-primary);padding:.15rem .625rem;border-radius:10px}

/* Featured Article 焦点头条 */
.nb-news-featured{display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem;align-items:stretch}
.nb-news-featured-main{position:relative;border-radius:14px;overflow:hidden;background:var(--nb-bg-blue);min-height:360px}
.nb-news-featured-main img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0}
.nb-news-featured-main-overlay{position:absolute;bottom:0;left:0;right:0;padding:2rem;background:linear-gradient(transparent,rgba(0,0,0,.75))}
.nb-news-featured-main-badge{display:inline-block;font-size:.6875rem;font-weight:700;color:var(--nb-white);background:var(--nb-primary);padding:.2rem .625rem;border-radius:4px;margin-bottom:.75rem}
.nb-news-featured-main h3{font-size:1.375rem;font-weight:700;line-height:1.4;margin-bottom:.5rem}
.nb-news-featured-main h3 a{color:var(--nb-white);text-decoration:none}
.nb-news-featured-main h3 a:hover{text-decoration:underline}
.nb-news-featured-main p{font-size:.875rem;color:rgba(255,255,255,.8);line-height:1.6;margin-bottom:.625rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nb-news-featured-main-meta{font-size:.75rem;color:rgba(255,255,255,.6)}
.nb-news-featured-side{display:flex;flex-direction:column;gap:.75rem}
.nb-news-featured-side-item{display:flex;gap:.875rem;padding:.75rem;border:1px solid var(--nb-border);border-radius:10px;background:var(--nb-white);transition:all .25s ease;align-items:flex-start;flex:1}
.nb-news-featured-side-item:hover{border-color:var(--nb-primary-light);box-shadow:0 4px 12px rgba(0,61,156,.06)}
.nb-news-featured-side-thumb{flex-shrink:0;width:100px;height:70px;border-radius:6px;overflow:hidden;background:var(--nb-bg-blue)}
.nb-news-featured-side-thumb img{width:100%;height:100%;object-fit:cover}
.nb-news-featured-side-body{flex:1;min-width:0}
.nb-news-featured-side-body h4{font-size:.875rem;font-weight:600;line-height:1.4;margin-bottom:.25rem}
.nb-news-featured-side-body h4 a{color:var(--nb-text-primary);text-decoration:none}
.nb-news-featured-side-body h4 a:hover{color:var(--nb-primary)}
.nb-news-featured-side-body time{font-size:.75rem;color:var(--nb-text-muted)}

/* Hot Articles Grid */
.nb-news-hot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.nb-news-hot-card{background:var(--nb-white);border:1px solid var(--nb-border);border-radius:14px;overflow:hidden;transition:all .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.06)}
.nb-news-hot-card:hover{transform:translateY(-4px);box-shadow:0 10px 32px rgba(0,61,156,.1);border-color:var(--nb-primary-light)}
.nb-news-hot-thumb{overflow:hidden;aspect-ratio:16/9;background:var(--nb-bg-blue)}
.nb-news-hot-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.nb-news-hot-card:hover .nb-news-hot-thumb img{transform:scale(1.05)}
.nb-news-hot-body{padding:1.25rem 1.25rem 1.5rem}
.nb-news-hot-badge{display:inline-block;font-size:.6875rem;font-weight:700;color:var(--nb-primary);background:var(--nb-bg-blue);padding:.2rem .625rem;border-radius:4px;margin-bottom:.625rem}
.nb-news-hot-title{font-size:1rem;font-weight:700;line-height:1.4;margin-bottom:.5rem}
.nb-news-hot-title a{color:var(--nb-text-primary);text-decoration:none}
.nb-news-hot-title a:hover{color:var(--nb-primary)}
.nb-news-hot-desc{font-size:.8125rem;color:var(--nb-text-secondary);line-height:1.6;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nb-news-hot-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--nb-text-muted)}

/* All Articles List */
.nb-news-list{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2rem}
.nb-news-item{display:flex;gap:1.5rem;background:var(--nb-white);border:1px solid var(--nb-border);border-radius:12px;padding:1.25rem;transition:all .25s ease;align-items:flex-start}
.nb-news-item:hover{border-color:var(--nb-primary-light);box-shadow:0 4px 16px rgba(0,61,156,.06)}
.nb-news-item-thumb{flex-shrink:0;width:200px;height:130px;border-radius:8px;overflow:hidden;background:var(--nb-bg-blue)}
.nb-news-item-thumb img{width:100%;height:100%;object-fit:cover}
.nb-news-item-body{flex:1;min-width:0;display:flex;flex-direction:column}
.nb-news-item-top{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}
.nb-news-item-badge{font-size:.6875rem;font-weight:700;color:var(--nb-primary);background:var(--nb-bg-blue);padding:.15rem .5rem;border-radius:4px}
.nb-news-item-top time{font-size:.75rem;color:var(--nb-text-muted)}
.nb-news-item-title{font-size:1.125rem;font-weight:700;line-height:1.4;margin-bottom:.5rem}
.nb-news-item-title a{color:var(--nb-text-primary);text-decoration:none}
.nb-news-item-title a:hover{color:var(--nb-primary)}
.nb-news-item-desc{font-size:.875rem;color:var(--nb-text-secondary);line-height:1.6;margin-bottom:.625rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nb-news-item-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--nb-text-muted)}

/* ===== 覆盖地图 — SVG 中国地图 ===== */
.nb-map-wrapper {
    background: var(--nb-white);
    border-radius: var(--nb-radius-lg);
    border: 1px solid var(--nb-border);
    padding: 0;
    margin: 1.5rem 0;
    overflow: hidden;
}
.nb-map-grid-container {
    min-height: 400px;
    position: relative;
}
.nb-map-grid-loading {
    text-align: center;
    padding: 5rem 2rem;
    color: var(--nb-text-muted);
    font-size: 0.9375rem;
}

/* ===== 加载中遮罩 ===== */
.nb-map-loading-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 50;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.nb-map-loading-overlay.active {
    opacity: 1;
    pointer-events: auto;
}
.nb-map-loading-spinner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
.nb-map-spinner-ring {
    width: 42px;
    height: 42px;
    border: 3px solid var(--nb-border);
    border-top-color: var(--nb-primary);
    border-radius: 50%;
    animation: nb-map-spin 0.8s linear infinite;
}
@keyframes nb-map-spin {
    to { transform: rotate(360deg); }
}
.nb-map-loading-text {
    font-size: 0.875rem;
    color: var(--nb-text-muted);
}

/* ===== 错误状态 ===== */
.nb-map-error-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 50;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.nb-map-error-overlay.active {
    opacity: 1;
    pointer-events: auto;
}
.nb-map-error-box {
    text-align: center;
    padding: 2rem;
    max-width: 280px;
}
.nb-map-error-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 1rem;
    color: #E8330C;
}
.nb-map-error-msg {
    font-size: 1rem;
    font-weight: 600;
    color: var(--nb-text-primary);
    margin-bottom: 0.5rem;
}
.nb-map-error-hint {
    font-size: 0.8125rem;
    color: var(--nb-text-muted);
    margin-bottom: 1.25rem;
    line-height: 1.6;
}
.nb-map-error-retry {
    background: var(--nb-primary);
    color: #fff;
    border: none;
    border-radius: var(--nb-radius-sm);
    padding: 0.5rem 1.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.2s ease, transform 0.1s ease;
}
.nb-map-error-retry:hover {
    background: var(--nb-primary-dark);
}
.nb-map-error-retry:active {
    transform: scale(0.96);
}

.nb-map-empty {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--nb-text-muted);
    font-size: 0.9375rem;
    line-height: 1.8;
}
.nb-map-empty svg {
    width: 40px;
    height: 40px;
    margin: 0 auto 0.75rem;
    display: block;
    opacity: 0.4;
}
.nb-map-empty p { margin: 0; }

/* SVG 地图 */
.nb-map-svg-wrap {
    width: 100%;
    position: relative;
    cursor: grab;
    /* 强制固定宽高比 900:700，让 SVG 渲染区域与 wrap 完全重合 */
    aspect-ratio: 900 / 700;
    /* 阻止默认拖拽选择 */
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    touch-action: none;
}
.nb-map-svg-wrap svg {
    display: block;
    width: 100%;
    height: 100%;
    pointer-events: all;
}
.nb-map-province {
    fill: #e8ecf1;
    stroke: #fff;
    stroke-width: 1.5;
    stroke-linejoin: round;
    cursor: pointer;
    transition: fill 0.2s ease;
    vector-effect: non-scaling-stroke;
}
.nb-map-province:hover {
    fill: #c8d6e5 !important;
    filter: brightness(0.95);
}
.nb-map-province:active {
    filter: brightness(0.88) drop-shadow(0 1px 3px rgba(0,0,0,.15)) !important;
}
.nb-map-province.nb-map-province--open {
    fill: #36B37E;
}
.nb-map-province.nb-map-province--open:hover {
    fill: #2d9f6b !important;
}
.nb-map-province.nb-map-province--open:active {
    fill: #268a5b !important;
}
.nb-map-province.nb-map-province--pending {
    fill: #F59E0B;
}
.nb-map-province.nb-map-province--pending:hover {
    fill: #d98c0a !important;
}
.nb-map-province.nb-map-province--pending:active {
    fill: #c07d09 !important;
}
/* 省级 HTML 浮层标签：绝对定位覆盖在 SVG 上方 */
.nb-map-province-label-html {
    position: absolute;
    transform: translate(-50%, -50%);
    color: #fff;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
    user-select: none;
    line-height: 1;
    pointer-events: auto;
    cursor: pointer;
    background: rgba(0, 0, 0, 0.35);
    border-radius: 3px;
    padding: 2px 5px;
    letter-spacing: 0;
    transition: background 0.15s ease, transform 0.15s ease;
    /* 白色描边 2px：在深色/浅色背景上都清晰可读 */
    -webkit-text-stroke: 2px #fff;
    paint-order: stroke fill;
    /* JS 动态设置 font-size，此处 9px 作为 fallback */
    font-size: 9px;
}
.nb-map-province-label-html:hover {
    background: rgba(0, 0, 0, 0.55);
    transform: translate(-50%, -50%) scale(1.05);
}
.nb-map-province-label-html:active {
    transform: translate(-50%, -50%) scale(0.97);
}
.nb-map-province-label-html--lg { font-size: 12px; }
.nb-map-province-label-html--sm { font-size: 10px; }
.nb-map-province-label-html--dark {
    color: #333;
    background: rgba(255, 255, 255, 0.7);
}
.nb-map-province-label-html--dark:hover {
    background: rgba(255, 255, 255, 0.9);
}

/* 地图悬浮提示 */
.nb-map-tooltip {
    position: absolute;
    pointer-events: none;
    opacity: 0;
    background: rgba(30, 41, 59, 0.95);
    color: #fff;
    padding: 0.625rem 0.875rem;
    border-radius: 6px;
    font-size: 0.8125rem;
    line-height: 1.5;
    white-space: nowrap;
    z-index: 100;
    transition: opacity 0.12s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,.2);
    max-width: 220px;
}
.nb-map-tooltip.active {
    opacity: 1;
}
.nb-map-tooltip-name {
    font-weight: 700;
    font-size: 0.9375rem;
    margin-bottom: 0.25rem;
}
.nb-map-tooltip-stat {
    font-size: 0.75rem;
    opacity: 0.85;
}
.nb-map-tooltip-stat em {
    font-style: normal;
    font-weight: 600;
}
.nb-map-tooltip-badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.1rem 0.5rem;
    border-radius: 8px;
    margin-left: 0.375rem;
    vertical-align: middle;
}
.nb-map-tooltip-badge.open {
    background: rgba(54, 179, 126, 0.3);
    color: #a7f3d0;
}
.nb-map-tooltip-badge.pending {
    background: rgba(245, 158, 11, 0.3);
    color: #fde68a;
}

/* 面包屑导航 */
.nb-map-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    padding: 0 1.5rem;
}
.nb-map-breadcrumb-item {
    background: none;
    border: 1px solid var(--nb-border);
    color: var(--nb-text-secondary);
    cursor: pointer;
    font-size: 0.875rem;
    padding: 0.375rem 0.875rem;
    border-radius: var(--nb-radius-sm);
    transition: all var(--nb-transition);
    font-family: inherit;
}
.nb-map-breadcrumb-item:hover {
    background: var(--nb-bg-blue);
    border-color: var(--nb-primary);
    color: var(--nb-primary);
}
.nb-map-breadcrumb-item.active {
    background: var(--nb-bg-blue);
    border-color: var(--nb-primary);
    color: var(--nb-primary);
    font-weight: 600;
}
.nb-map-breadcrumb-sep {
    color: var(--nb-text-muted);
    font-size: 1rem;
    line-height: 1;
}

/* ===== 缩放控制按钮 ===== */
.nb-map-zoom-controls {
    position: absolute;
    right: 0.75rem;
    bottom: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    z-index: 10;
}
.nb-map-zoom-btn {
    width: 36px;
    height: 36px;
    border: 1px solid var(--nb-border);
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(4px);
    border-radius: var(--nb-radius-sm);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--nb-text-primary);
    transition: background 0.15s ease, transform 0.1s ease, border-color 0.15s ease;
    padding: 0;
}
.nb-map-zoom-btn svg {
    width: 16px;
    height: 16px;
}
.nb-map-zoom-btn:hover {
    background: var(--nb-bg-blue);
    border-color: var(--nb-primary);
    color: var(--nb-primary);
}
.nb-map-zoom-btn:active {
    transform: scale(0.9);
}
.nb-map-zoom-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
    transform: none;
}
.nb-map-zoom-btn:disabled:hover {
    background: rgba(255, 255, 255, 0.92);
    border-color: var(--nb-border);
    color: var(--nb-text-primary);
}

/* ===== 操作提示 ===== */
.nb-map-hint {
    position: absolute;
    left: 0.75rem;
    bottom: 0.75rem;
    font-size: 0.75rem;
    color: var(--nb-text-muted);
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(3px);
    padding: 0.25rem 0.625rem;
    border-radius: 12px;
    pointer-events: none;
    z-index: 10;
    white-space: nowrap;
    opacity: 0;
    animation: nb-map-hint-in 0.5s ease 1.5s forwards;
}
@keyframes nb-map-hint-in {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* 省份标题（下钻时） */
.nb-map-province-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--nb-text-primary);
    margin-bottom: 1rem;
    padding: 0 0 0.75rem;
    border-bottom: 2px solid var(--nb-primary);
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.nb-map-province-sub {
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--nb-text-muted);
}

/* 城市面板（地图下方） */
.nb-map-city-panel {
    border-top: 1px solid var(--nb-border);
    background: var(--nb-bg-light);
    animation: nb-map-panel-in 0.35s ease;
}
@keyframes nb-map-panel-in {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* 城市卡片网格（下钻视图 — 自带上间距） */
.nb-map-city-wrap {
    padding: 1.5rem;
}
.nb-map-city-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.75rem;
}

/* 城市卡片 */
.nb-map-ccard {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1.125rem 0.875rem;
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
    background: var(--nb-white);
}
.nb-map-ccard:hover {
    border-color: var(--nb-primary);
    box-shadow: var(--nb-shadow-card);
    transform: translateY(-2px);
}
.nb-map-ccard.open {
    border-color: #36B37E;
    background: rgba(54, 179, 126, 0.03);
}
.nb-map-ccard.open:hover {
    background: rgba(54, 179, 126, 0.06);
}
.nb-map-ccard.pending {
    border-color: #F59E0B;
    opacity: 0.8;
    background: rgba(245, 158, 11, 0.02);
}
.nb-map-ccard.pending:hover {
    opacity: 1;
}
.nb-map-ccard-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--nb-text-primary);
    margin-bottom: 0.375rem;
    text-align: center;
}
.nb-map-ccard-status {
    font-size: 0.8125rem;
    padding: 0.125rem 0.625rem;
    border-radius: 10px;
    font-weight: 500;
}
.nb-map-ccard-status.open {
    background: rgba(54, 179, 126, 0.1);
    color: #36B37E;
}
.nb-map-ccard-status.pending {
    background: rgba(245, 158, 11, 0.1);
    color: #D97706;
}

/* ===== 地级市轮廓（SVG 图层） ===== */
.nb-map-city-path {
    fill: rgba(54, 179, 126, 0.2);
    stroke: #36B37E;
    stroke-width: 2;
    stroke-linejoin: round;
    cursor: pointer;
    transition: transform 0.2s ease, filter 0.2s ease;
    vector-effect: non-scaling-stroke;
}
.nb-map-city-path--pending {
    fill: rgba(245, 158, 11, 0.18);
    stroke: #F59E0B;
}
.nb-map-city-path--open {
    fill: rgba(54, 179, 126, 0.24);
    stroke: #2E9E6D;
}
.nb-map-city-path--nodata {
    fill: rgba(148, 163, 184, 0.12);
    stroke: #94A3B8;
    cursor: default;
}
.nb-map-city-path:hover {
    filter: brightness(0.9) drop-shadow(0 2px 6px rgba(0,0,0,.2));
    z-index: 1;
}
.nb-map-city-path--nodata:hover {
    filter: none;
    transform: none !important;
    cursor: default;
}

/* HTML 浮层城市标签：绝对定位覆盖在 SVG 上方，字号不被 viewBox 缩放 */
.nb-map-html-labels {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 5;
}
.nb-map-city-label {
    position: absolute;
    transform: translate(-50%, -50%);
    color: #374151;
    font-weight: 600;
    text-align: center;
    white-space: nowrap;
    user-select: none;
    line-height: 1;
    background: rgba(255, 255, 255, 0.78);
    border-radius: 3px;
    padding: 1.5px 4px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    letter-spacing: 0;
    pointer-events: none;
    transition: background 0.15s ease, box-shadow 0.15s ease;
    /* 白色描边 2.5px：在绿色/橙色版块上都清晰可读 */
    -webkit-text-stroke: 2.5px #fff;
    paint-order: stroke fill;
    /* JS 动态设置 font-size，此处 10px 作为 fallback */
    font-size: 10px;
}
.nb-map-city-label--md { font-size: 12px; }
.nb-map-city-label--sm { font-size: 11px; }
.nb-map-city-label--xs { font-size: 10px; max-width: 100px; overflow: hidden; text-overflow: ellipsis; }
.nb-map-city-label--dark { color: #92400E; background: rgba(255, 247, 224, 0.85); }
.nb-map-city-label.active-touch {
    background: rgba(0, 83, 217, 0.12);
    box-shadow: 0 1px 4px rgba(0, 83, 217, 0.2);
}

/* ===== 城市弹窗·三级站列表 ===== */
.nb-city-modal-subtitle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    font-size: 0.8125rem;
    color: var(--nb-text-muted);
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--nb-border-lighter);
}
.nb-city-modal-sep {
    color: var(--nb-border);
}
.nb-city-modal-count {
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--nb-text-muted);
    background: var(--nb-bg-light);
    padding: 0.15rem 0.625rem;
    border-radius: 10px;
}

.nb-city-popin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 0.625rem;
}
.nb-city-popin-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.875rem 0.625rem;
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
    background: var(--nb-white);
    text-align: center;
}
.nb-city-popin-card:hover {
    border-color: var(--nb-primary);
    box-shadow: var(--nb-shadow-card);
    transform: translateY(-2px);
}
.nb-city-popin-card.open {
    border-color: #36B37E;
    background: rgba(54, 179, 126, 0.03);
}
.nb-city-popin-card.open:hover {
    background: rgba(54, 179, 126, 0.06);
}
.nb-city-popin-card.pending {
    border-color: #F59E0B;
    opacity: 0.82;
    background: rgba(245, 158, 11, 0.02);
}
.nb-city-popin-card.pending:hover {
    opacity: 1;
}
.nb-city-popin-card-name {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--nb-text-primary);
    margin-bottom: 0.25rem;
}
.nb-city-popin-card-status {
    font-size: 0.75rem;
    padding: 0.1rem 0.5rem;
    border-radius: 8px;
    font-weight: 500;
}
.nb-city-popin-card-status.open {
    background: rgba(54, 179, 126, 0.1);
    color: #36B37E;
}
.nb-city-popin-card-status.pending {
    background: rgba(245, 158, 11, 0.1);
    color: #D97706;
}

/* ===== 地图三级导航 ===== */
#nb-coverage-map {
    min-height: 500px;
}



/* Toast */
.nb-toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    background: rgba(0,0,0,0.8);
    color: #fff;
    padding: 12px 24px;
    border-radius: 8px;
    font-size: 14px;
    z-index: 9999;
    opacity: 0;
    transition: all 0.3s ease;
}

.nb-toast.show {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

/* 统计概览 */
.nb-map-summary {
    text-align: center;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--nb-border-lighter);
    font-size: 0.875rem;
    color: var(--nb-text-muted);
}
.nb-map-summary strong {
    font-weight: 700;
}

/* 图例 */
.nb-map-legend {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--nb-border-lighter);
}
.nb-map-legend-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--nb-text-secondary);
}
.nb-map-legend-color {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 3px;
    flex-shrink: 0;
}
.nb-map-legend-color.open {
    background: #36B37E;
}
.nb-map-legend-color.pending {
    background: #F59E0B;
}

/* ===== 城市列表弹窗 ===== */
.nb-map-city-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
.nb-map-city-modal.active {
    opacity: 1;
    visibility: visible;
}
.nb-map-city-dialog {
    background: var(--nb-white);
    border-radius: var(--nb-radius-xl);
    max-width: 800px;
    width: 90%;
    max-height: 80vh;
    overflow: hidden;
    box-shadow: var(--nb-shadow-modal);
    transform: scale(0.92) translateY(16px);
    opacity: 0;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.25s ease;
}
.nb-map-dialog-in {
    transform: scale(1) translateY(0) !important;
    opacity: 1 !important;
}
.nb-map-city-modal.active .nb-map-city-dialog {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.nb-map-city-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--nb-border);
}
.nb-map-city-header h3 {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--nb-text-primary);
    margin: 0;
}
.nb-map-city-close {
    width: 32px;
    height: 32px;
    border: none;
    background: var(--nb-bg-light);
    border-radius: 50%;
    font-size: 1.25rem;
    color: var(--nb-text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--nb-transition);
}
.nb-map-city-close:hover {
    background: var(--nb-primary);
    color: var(--nb-white);
}
.nb-map-city-body {
    padding: 1.5rem;
    overflow-y: auto;
    max-height: calc(80vh - 60px);
}
.nb-map-city-empty {
    text-align: center;
    padding: 2rem;
    color: var(--nb-text-muted);
    font-size: 0.9375rem;
}
.nb-map-city-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.75rem;
}
.nb-map-city-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem;
    border: 1px solid var(--nb-border);
    border-radius: var(--nb-radius-md);
    text-decoration: none;
    transition: all var(--nb-transition);
    background: var(--nb-white);
}
.nb-map-city-card:hover {
    border-color: var(--nb-primary);
    box-shadow: var(--nb-shadow-card);
    transform: translateY(-2px);
}
.nb-map-city-card.open {
    border-color: #36B37E;
}
.nb-map-city-card.open:hover {
    background: rgba(54, 179, 126, 0.04);
}
.nb-map-city-card.pending {
    border-color: #F59E0B;
    opacity: 0.8;
}
.nb-map-city-card.pending:hover {
    opacity: 1;
}
.nb-map-city-card-name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--nb-text-primary);
    margin-bottom: 0.375rem;
    text-align: center;
}
.nb-map-city-card-status {
    font-size: 0.8125rem;
    padding: 0.125rem 0.5rem;
    border-radius: 10px;
    font-weight: 500;
}
.nb-map-city-card-status.open {
    background: rgba(54, 179, 126, 0.1);
    color: #36B37E;
}
.nb-map-city-card-status.pending {
    background: rgba(245, 158, 11, 0.1);
    color: #F59E0B;
}

/* ===== 城市未开通提示弹窗 ===== */
.nb-map-notice-dialog {
    max-width: 420px;
    text-align: center;
}
.nb-map-notice-body {
    padding: 2.5rem 2rem 2rem;
}
.nb-map-notice-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 1.25rem;
    background: linear-gradient(135deg, #FEF3C7, #FDE68A);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    color: #D97706;
    line-height: 1;
}
.nb-map-notice-icon svg {
    width: 32px;
    height: 32px;
}
.nb-map-notice-city {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--nb-text-primary);
    margin-bottom: 0.375rem;
}
.nb-map-notice-badge {
    display: inline-block;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #D97706;
    background: rgba(245, 158, 11, 0.12);
    padding: 0.25rem 0.875rem;
    border-radius: 20px;
    margin-bottom: 1.5rem;
}
.nb-map-notice-msg {
    font-size: 0.9375rem;
    color: var(--nb-text-secondary);
    line-height: 1.6;
    margin-bottom: 1.5rem;
}
.nb-map-notice-phone-box {
    background: var(--nb-bg-light);
    border-radius: var(--nb-radius-md);
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}
.nb-map-notice-phone-label {
    font-size: 0.8125rem;
    color: var(--nb-text-muted);
    margin-bottom: 0.375rem;
}
.nb-map-notice-phone {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--nb-primary);
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}
.nb-map-notice-phone svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}
.nb-map-notice-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.875rem;
    font-size: 0.8125rem;
    color: var(--nb-text-muted);
    padding-top: 1rem;
    border-top: 1px solid var(--nb-border);
}
.nb-map-notice-footer-brand {
    color: var(--nb-text-secondary);
    font-weight: 600;
}
.nb-map-notice-footer-sep {
    width: 1px;
    height: 12px;
    background: var(--nb-border);
}

/* ===== Responsive ===== */
@media (max-width: 1024px) {
    .nb-header-inner { height: 64px; gap: 1rem; }
    .nb-logo-icon { width: 34px; height: 34px; font-size: 1rem; }
    .nb-logo-text { font-size: 1.125rem; }
    .nb-logo-text small { font-size: 0.625rem; }
    .nb-nav-link { padding: 0.5rem 0.75rem; font-size: 0.875rem; }
    .nb-nav-list { gap: 0; }
    .nb-btn { padding: 0.5rem 1rem; font-size: 0.8125rem; }
    .nb-coverage-grid, .nb-guide-grid, .nb-join-grid-recruit, .nb-network-branch-grid, .nb-service-promise-grid, .nb-citysite-grid { grid-template-columns: repeat(5, 1fr); gap: 0.75rem; }
    .nb-coverage-province { font-size: 1rem; padding: 1rem 0.375rem; }
    .nb-coverage-province-arrow { font-size: 1rem; }
    .nb-covl-province-grid { grid-template-columns: repeat(5, 1fr); gap: 0.75rem; }
    .nb-covl-province-item { font-size: 0.875rem; padding: 1rem 0.375rem; }
    .nb-covl-province-arrow { font-size: 1rem; }
    .nb-stats-grid, .nb-about-stats-grid, .nb-citysite-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .nb-footer-grid { grid-template-columns: 1fr; text-align: center; }
    .nb-footer-col { transition: opacity .4s ease, max-height .5s ease, margin .4s ease, padding .4s ease; }
    .nb-footer-col:not(:first-child) { opacity: 0; visibility: hidden; max-height: 0; overflow: hidden; margin: 0; padding: 0; }
    .nb-footer-col:first-child { max-width: 520px; margin: 0 auto; }
    .nb-footer-qr { justify-content: center; }
    .nb-hero { padding: 4rem 0 3.5rem; }
    .nb-hero-inner { flex-wrap: wrap; }
    .nb-hero-title { font-size: 2.25rem; }
    .nb-hero-formcard { flex: 1 1 100%; max-width: 480px; margin: 0 auto; min-width: 0; }
    .nb-hero-formcard-inner { padding: 1.5rem; }
    .nb-product-detail { grid-template-columns: 1fr; }
    .nb-coverage-villages { grid-template-columns: repeat(2, 1fr); }
    .nb-process-grid { display: grid; grid-template-columns: repeat(2, 1fr); overflow-x: visible; scroll-snap-type: none; padding: 0; }
    .nb-process-grid > .nb-process-card { width: auto; min-width: 0; max-width: none; flex: none; scroll-snap-align: none; }
    /* --- New Components @ 1024px --- */
    .nb-testimonials-grid { grid-template-columns: repeat(2, 1fr); }
    .nb-guarantees-grid { grid-template-columns: repeat(2, 1fr); }
    .nb-partners-grid { grid-template-columns: repeat(3, 1fr); }
    .nb-benefits-grid { grid-template-columns: repeat(2, 1fr); }
    .nb-info-cards { grid-template-columns: 1fr; }
    .nb-timeline-item { grid-template-columns: 1fr 50px 1fr; gap: 1.25rem; }
    .nb-hero-stats-bar { gap: 1.5rem; }
    .nb-compare-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    /* --- nb-vp @ 1024px --- */
    .nb-vp-layout { grid-template-columns: 1fr; gap: 2rem; }
    .nb-vp-gallery { position: static; max-width: 480px; margin: 0 auto; }
    /* --- nb-jn @ 1024px --- */
    .nb-jn-position-grid { grid-template-columns: repeat(2, 1fr); }
    .nb-jn-why-grid { grid-template-columns: 1fr; }
    /* --- nb-va/nb-cov/nb-vn @ 1024px --- */
    .nb-va-layout, .nb-covv-layout, .nb-vn-layout { grid-template-columns: 1fr; gap: 2rem; }
    .nb-va-sidebar, .nb-covv-sidebar, .nb-vn-sidebar { position: static; }
    .nb-covl-hot-grid { grid-template-columns: repeat(2, 1fr); }
    .nb-covl-merged-grid { gap: 1.5rem; }
    .nb-covl-merged-card { padding: 1.5rem; }
    .nb-covv-status-grid { grid-template-columns: repeat(2, 1fr); }
    /* --- Unified CTA + Hero @ 1024px --- */
    .nb-cta-section { padding: 3rem 0; }
    .nb-cta-section h2 { font-size: var(--nb-font-4xl); }
    .nb-cta-phone { font-size: 2.25rem; }
    .nb-page-hero { padding: 3.5rem 0; }
}

@media (max-width: 768px) {
    /* 地图响应式 */
    .nb-map-container { height: 500px; }
    .nb-map-wrapper { padding: 0.75rem; }
    .nb-map-breadcrumb { gap: 0.375rem; }
    .nb-map-breadcrumb-item { font-size: 0.8125rem; padding: 0.25rem 0.625rem; }
    .nb-map-legend { gap: 1rem; }
    .nb-map-legend-item { font-size: 0.75rem; }
    .nb-map-city-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
    .nb-map-city-dialog { width: 95%; }
    .nb-topbar { font-size: .75rem; }
    .nb-topbar-inner { justify-content: space-between; gap: .5rem; flex-wrap: nowrap; }
    .nb-topbar-left { gap: .5rem; flex-wrap: nowrap; white-space: nowrap; flex-shrink: 1; min-width: 0; }
    .nb-topbar-right { flex-shrink: 0; white-space: nowrap; }
    .nb-topbar-brand { font-size: .75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .nb-topbar-slogan { display: none; }
    .nb-topbar-phone { font-size: .8125rem; }
    .nb-topbar-city { font-size: .6875rem; padding: .2rem .5rem; }
    .nb-topbar-city-panel.open { max-height: 500px; padding: 1rem 0; }
    .nb-topbar-city-grid { grid-template-columns: repeat(4, 1fr); }
    .nb-topbar-city-subgrid { grid-template-columns: repeat(3, 1fr); }
    .nb-header { border-bottom-width: 1px; }
    .nb-header-inner {
        height: auto; min-height: 60px;
        padding: 0.625rem 0;
        flex-wrap: wrap;
        gap: 0.5rem;
    }
    .nb-logo { order: 0; }
    .nb-logo-icon { width: 30px; height: 30px; font-size: 0.875rem; border-radius: 6px; }
    .nb-logo-text { font-size: 1.0625rem; }
    .nb-logo-text small { font-size: 0.625rem; }
    .nb-menu-toggle { display: flex; order: 1; margin-left: auto; }
    .nb-nav {
        flex: 1 0 100%; order: 3;
        max-height: 0; overflow: hidden;
        transition: max-height 0.35s ease;
        border-top: 1px solid var(--nb-border);
    }
    .nb-nav.open { max-height: 80vh; overflow-y: auto; }
    .nb-nav-list { flex-direction: column; align-items: stretch; width: 100%; padding: 0.5rem 0; }
    .nb-nav-item { width: 100%; border-bottom: 1px solid var(--nb-border-lighter); }
    .nb-nav-item:last-child { border-bottom: none; }
    .nb-nav-link {
        padding: 0.875rem 1rem; border-radius: 0; font-size: 1rem;
        display: flex; align-items: center; justify-content: space-between;
    }
    .nb-nav-link::after {
        content: none; /* dropdown indicator handled by JS-added class */
    }
    .nb-nav-item.has-dropdown > .nb-nav-link::after {
        content: '›'; font-size: 1.25rem; transition: transform 0.25s ease; margin-left: 0.5rem;
    }
    .nb-nav-item.has-dropdown.open > .nb-nav-link::after {
        transform: rotate(90deg);
    }
    .nb-nav-dropdown {
        position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none;
        border: none; border-radius: 0; background: var(--nb-bg-light);
        padding: 0; margin: 0;
        max-height: 0; overflow: hidden;
        transition: max-height 0.3s ease;
    }
    .nb-nav-item.has-dropdown.open > .nb-nav-dropdown {
        max-height: 500px;
    }
    .nb-nav-dropdown a {
        display: block; padding: 0.75rem 1.5rem; color: var(--nb-text-secondary); font-size: 0.9375rem;
        border-bottom: 1px solid var(--nb-border-lighter);
    }
    .nb-nav-dropdown a:last-child { border-bottom: none; }
    .nb-nav-dropdown a:hover { background: var(--nb-bg-blue); color: var(--nb-primary); }
    /* Mobile menu backdrop */
    .nb-nav-backdrop {
        display: none;
        position: fixed; inset: 0; background: rgba(0,0,0,0.4);
        z-index: 999; /* below header (1000) */
    }
    .nb-nav-backdrop.active { display: block; }
    .nb-hero { padding: 3rem 0 2.5rem; }
    .nb-hero::before { width: 360px; height: 360px; top: -25%; right: -20%; }
    .nb-hero::after { width: 240px; height: 240px; }
    .nb-hero-bg-dots { background-size: 24px 24px; }
    .nb-hero-inner { flex-direction: column; gap: 2rem; }
    .nb-hero-content { text-align: center; }
    .nb-hero-title { font-size: 1.75rem; }
    .nb-hero-title-accent { font-size: .875rem; letter-spacing: 1px; }
    .nb-hero-desc { font-size: .9375rem; max-width: 100%; margin-left: auto; margin-right: auto; }
    .nb-hero-actions { justify-content: center; }
    .nb-hero-trust { justify-content: center; }
    .nb-hero-formcard { max-width: 100%; min-width: 0; flex: none; width: 100%; }
    .nb-hero-formcard-inner { padding: 1.5rem; }
    .nb-section { padding: 2.5rem 0; }
    .nb-section-title { font-size: 1.375rem; }
    .nb-coverage-grid, .nb-guide-grid, .nb-join-grid-recruit, .nb-network-branch-grid, .nb-service-promise-grid, .nb-citysite-grid { grid-template-columns: repeat(5, 1fr); gap: 0.5rem; }
    .nb-coverage-province { font-size: 0.875rem; padding: 0.75rem 0.25rem; gap: 0.2rem; border-radius: 8px; }
    .nb-coverage-province-arrow { font-size: 0.8125rem; }
    .nb-modal-dialog { margin: 0 0.5rem; max-width: calc(100vw - 1rem); border-radius: 12px; }
    .nb-modal-header { padding: 1rem 1.25rem; }
    .nb-modal-body { padding: 1rem 1.25rem 1.25rem; }
    .nb-modal-stats { padding: 0.75rem 1.25rem; gap: 1rem; }
    .nb-modal-stat-num { font-size: 1.25rem; }
    .nb-district-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 0.5rem; }
    .nb-district-item { padding: 0.625rem 0.75rem; font-size: 0.8125rem; }
    .nb-coverage-city-list { grid-template-columns: repeat(2, 1fr); }
    .nb-stats-grid, .nb-about-stats-grid, .nb-citysite-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-stat-num, .nb-about-stat-num, .nb-citysite-stat-num { font-size: 1.5rem; }
    .nb-page-layout { grid-template-columns: 1fr; }
    .nb-sidebar { position: static; }
    .nb-article-item { flex-direction: column; }
    .nb-article-thumb { flex: none; width: 100%; height: 200px; }
    .nb-article-detail-title { font-size: 1.375rem; }
    .nb-footer-grid { grid-template-columns: 1fr; gap: 0; text-align: center; }
    .nb-footer-col:not(:first-child) { opacity: 0; visibility: hidden; max-height: 0; overflow: hidden; margin: 0; padding: 0; }
    .nb-footer-col:first-child { max-width: 100%; padding: 0; }
    .nb-footer-qr { justify-content: center; flex-wrap: wrap; }
    .nb-footer-qr-item .nb-footer-qr-box { width: 76px; height: 76px; }
    .nb-coverage-villages { grid-template-columns: 1fr; }
    .nb-cta-section-phone, .nb-lp-cta-phone, .nb-pagefaq-cta-phone, .nb-about-cta-phone, .nb-bb-cta-phone, .nb-guide-cta-phone, .nb-help-cta-phone, .nb-network-cta-phone, .nb-service-cta-phone, .nb-appt-cta-phone, .nb-citysite-cta-phone { font-size: 1.875rem; }
    .nb-home-cta-phone { font-size: 1.875rem; }
    .nb-float-contact { right: 0.75rem; bottom: 3rem; }
    .nb-float-btn { width: 44px; height: 44px; font-size: 1.25rem; }
    .nb-process-grid { gap: 1rem; }
    .nb-process-card { padding: 1.5rem 1.25rem; }
    /* --- New Components @ 768px --- */
    .nb-testimonials-grid { grid-template-columns: 1fr; }
    .nb-testimonial-card { padding: 1.5rem; }
    .nb-guarantees-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-guarantee-card { padding: 1.75rem 1rem; }
    .nb-partners-grid { grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
    .nb-benefits-grid { grid-template-columns: 1fr; }
    .nb-info-cards { grid-template-columns: 1fr; }
    .nb-timeline::before { left: 24px; }
    .nb-timeline-item { grid-template-columns: 50px 1fr; gap: 1rem; direction: ltr; margin-bottom: 1.5rem; }
    .nb-timeline-item:nth-child(even) { direction: ltr; }
    .nb-timeline-spacer { display: none; }
    .nb-hero-stats-bar { gap: 1rem; }
    .nb-hero-stat-value { font-size: 1.5rem; }
    .nb-hero-stat-label { font-size: 0.75rem; }
    .nb-promo-banner { flex-direction: column; align-items: flex-start; }
    .nb-category-tab { padding: 0.6rem 1rem; font-size: 0.875rem; }
    .nb-search-bar { max-width: 100%; }
    /* --- nb-vp @ 768px --- */
    .nb-vp-detail-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .nb-vp-guarantee-row { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    /* --- nb-jn @ 768px --- */
    .nb-jn-hero-stats { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-jn-bottom-grid { grid-template-columns: 1fr; gap: 2rem; }
    .nb-jn-benefits-grid { grid-template-columns: repeat(2, 1fr); }
    /* --- nb-va/nb-cov/nb-vn @ 768px --- */
    .nb-va-title, .nb-vn-title { font-size: 1.5rem; }
    .nb-cov-title { font-size: 1.375rem; }
    .nb-va-cta-inline, .nb-vn-cta-inline { flex-direction: column; text-align: center; }
    .nb-covv-block { padding: 1.25rem 1.5rem; }
    .nb-covv-prevnext { flex-direction: column; }
    .nb-covl-hot-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-covl-merged-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .nb-covl-merged-card { padding: 1.25rem; }
    .nb-covl-merged-row { grid-template-columns: 1fr; gap: 1.25rem; }
    .nb-covl-merged-col { padding: 0; }
    .nb-covl-merged-col:first-child::after,.nb-covl-merged-col:nth-child(2)::after { display: none; }
    .nb-home-cov-grid { grid-template-columns: 1fr; gap: 1.25rem; }
    .nb-home-cov-card { padding: 1.5rem 1.5rem 1.25rem; }
    .nb-home-cov-icon { width: 48px; height: 48px; border-radius: 12px; }
    .nb-home-cov-icon svg { width: 24px; height: 24px; }
    .nb-home-cov-title { font-size: 1.0625rem; }
    .nb-home-cov-stat { padding: .375rem .625rem; }
    .nb-home-cov-stat-num { font-size: 1.125rem; }
    .nb-home-cov-item { padding: .625rem .75rem; gap: .375rem .5rem; }
    .nb-home-cov-item-text { font-size: .8125rem; }
    .nb-home-cov-item-sub { font-size: .6875rem; }
    .nb-home-cov-item:nth-child(-n+3)::after { font-size: .5rem; padding: 0 .25rem; top: -3px; right: -1px; }
    .nb-covv-status-grid { grid-template-columns: repeat(2, 1fr); }
    .nb-covv-village-grid { grid-template-columns: repeat(2, 1fr); }
    .nb-va-prevnext, .nb-vn-prevnext { grid-template-columns: 1fr; }
    /* --- nb-fq @ 768px --- */
    .nb-fq-hero { padding: 3rem 0 2rem; }
    .nb-fq-hero-title { font-size: 2rem; }
    .nb-fq-quick-grid { gap: 1rem; }
    .nb-fq-quick-card { padding: 1.5rem; }
    .nb-fq-quick-wrap { padding: 2rem 1.5rem; margin-top: -2rem; }
    .nb-fq-accordion-card { padding: 2rem 1.5rem; }
    .nb-fq-section-header h2 { font-size: 1.25rem; }
    .nb-fq-cat-nav-item { padding: 0.5rem 1rem; font-size: 0.8125rem; }
    .nb-fq-question { padding: 1rem 1rem; font-size: 0.9375rem; }
    .nb-fq-answer { padding: 0 1rem 1rem; font-size: 0.875rem; }
    .nb-fq-cta-final { padding: 3rem 0; }
    /* --- nb-home-faq @ 768px --- */
    .nb-home-faq-news-row { grid-template-columns: 1fr; gap: 1.25rem; }
    .nb-home-faq-news-card { padding: 1.5rem; }
    .nb-home-faq-grid { gap: .625rem; }
    .nb-home-faq-item { border-radius: 10px; }
    .nb-home-faq-question { padding: .75rem .875rem; font-size: .8125rem; }
    .nb-home-faq-question::before { font-size: .625rem; padding: .125rem .375rem; }
    .nb-home-faq-question::after { width: 22px; height: 22px; font-size: 1rem; }
    .nb-home-faq-answer { padding: 0 .875rem; }
    .nb-home-faq-item.open .nb-home-faq-answer { padding: 0 .875rem .75rem; }
    .nb-home-news-item { padding: .5rem .375rem; }
    .nb-home-news-item-text { font-size: .8125rem; }
    /* --- Unified Page Layout @ 768px --- */
    .nb-cta-section { padding: 3rem 0; }
    .nb-cta-section h2 { font-size: var(--nb-font-3xl); }
    .nb-cta-phone { font-size: 2rem; }
    .nb-cta-btn-primary, .nb-cta-btn-white, .nb-cta-btn-ghost { padding: 0.875rem 2rem; font-size: var(--nb-font-base); }
    .nb-section { padding: 2.5rem 0; }
    .nb-section + .nb-section { padding-top: 1.5rem; }
    .nb-section.bg-blue + .nb-section.bg-blue { padding-top: 2rem; }
    .nb-page-hero { padding: 3rem 0; }
    .nb-section-title { font-size: var(--nb-font-2xl); }
    .nb-section-subtitle { font-size: 0.9375rem; margin-bottom: 1.75rem; }
    /* province grid */
    .nb-covl-province-grid { grid-template-columns: repeat(5, 1fr); gap: 0.5rem; }
    .nb-covl-province-item { font-size: 0.75rem; padding: 0.75rem 0.25rem; gap: 0.2rem; border-radius: 8px; }
    .nb-covl-province-arrow { font-size: 0.8125rem; }
}

@media (max-width: 480px) {
    /* 地图响应式 - 移动端 */
    .nb-map-container { height: 400px; }
    .nb-map-wrapper { padding: 0.5rem; }
    .nb-map-breadcrumb { gap: 0.25rem; }
    .nb-map-breadcrumb-item { font-size: 0.75rem; padding: 0.125rem 0.5rem; }
    .nb-map-breadcrumb-sep { font-size: 0.875rem; }
    .nb-map-legend { gap: 0.75rem; flex-wrap: wrap; justify-content: center; }
    .nb-map-legend-item { font-size: 0.75rem; }
    .nb-map-city-grid { grid-template-columns: 1fr; }
    .nb-map-city-dialog { width: 98%; max-height: 90vh; }
    .nb-map-city-header { padding: 1rem; }
    .nb-map-city-header h3 { font-size: 1rem; }
    .nb-map-city-body { padding: 1rem; }
    .nb-topbar { font-size: .625rem; }
    .nb-topbar-inner { flex-direction: row; justify-content: space-between; gap: .35rem; padding: .3rem 0; flex-wrap: nowrap; }
    .nb-topbar-left { width: auto; justify-content: flex-start; flex-wrap: nowrap; white-space: nowrap; flex-shrink: 1; min-width: 0; }
    .nb-topbar-right { width: auto; justify-content: flex-end; flex-wrap: nowrap; white-space: nowrap; flex-shrink: 0; margin-left: auto; gap: .4rem; }
    .nb-topbar-brand { font-size: .625rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .nb-topbar-phone { font-size: .6875rem; }
    .nb-topbar-city { font-size: .625rem; padding: .15rem .4rem; }
    .nb-topbar-city-panel.open { max-height: 450px; padding: .875rem 0; }
    .nb-topbar-city-panel-header { font-size: .8125rem; }
    .nb-topbar-city-grid { grid-template-columns: repeat(3, 1fr); gap: .375rem; }
    .nb-topbar-city-province { font-size: .6875rem; padding: .375rem .25rem; }
    .nb-topbar-city-subgrid { grid-template-columns: repeat(2, 1fr); gap: .375rem; }
    .nb-topbar-city-subitem { font-size: .6875rem; padding: .375rem .25rem; }
    .nb-header-inner { padding: 0.5rem 0; min-height: 54px; }
    .nb-logo-icon { width: 26px; height: 26px; font-size: 0.75rem; border-radius: 5px; }
    .nb-logo-text { font-size: 0.9375rem; }
    .nb-logo-text small { font-size: 0.5625rem; }
    .nb-hero { padding: 2.25rem 0 2rem; }
    .nb-hero::before, .nb-hero::after { display: none; }
    .nb-hero-bg-dots { background-size: 20px 20px; }
    .nb-hero-inner { gap: 1.5rem; }
    .nb-hero-badge, .nb-hero-tag { font-size: .6875rem; padding: .25rem .75rem; }
    .nb-hero-title { font-size: 1.375rem; }
    .nb-hero-title-accent { font-size: .75rem; letter-spacing: 1px; }
    .nb-hero-desc { font-size: .875rem; }
    .nb-hero-actions { flex-direction: column; align-items: stretch; }
    .nb-hero-trust { gap: .75rem; font-size: .6875rem; }
    .nb-btn-hero-primary, .nb-btn-hero-outline { justify-content: center; }
    .nb-hero-formcard-inner { padding: 1rem 1.125rem; }
    .nb-hero-form-h { font-size: 1.125rem; }
    .nb-hero-formcard .eyou_form_attr:has(select + select + select) {
        flex-direction: column; gap: 0.5rem;
    }
    .nb-hero-formcard .eyou_form_attr:has(select + select + select) select.eyou_form_select {
        width: 100%; flex: none;
    }
    .nb-product-speed { font-size: 2rem; }
    .nb-products-grid { gap: 1rem; }
    .nb-products-grid > .nb-tariff-card,
    .nb-products-grid > .nb-product-card {
        width: 82vw; min-width: 240px; max-width: 84vw; /* peek next card */
    }
    .nb-home-products { gap: 1rem; }
    .nb-home-products > .nb-tariff-card {
        width: 82vw; min-width: 240px; max-width: 84vw;
    }
    .nb-process-grid { gap: 0.75rem; }
    .nb-process-grid > .nb-process-card { padding: 1.25rem 0.875rem; }
    .nb-process-step { font-size: 2rem; }
    .nb-process-title { font-size: 1rem; }
    /* --- New Components @ 480px --- */
    .nb-testimonial-card { padding: 1.25rem; }
    .nb-testimonial-text { font-size: 0.8125rem; }
    .nb-guarantees-grid { grid-template-columns: 1fr; gap: 0.75rem; }
    .nb-guarantee-card { padding: 1.5rem 1rem; }
    .nb-guarantee-icon { width: 48px; height: 48px; font-size: 1.25rem; }
    .nb-guarantee-title { font-size: 0.9375rem; }
    .nb-partners-grid { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
    .nb-partner-item { padding: 1rem 0.5rem; font-size: 0.6875rem; }
    .nb-partner-logo { width: 36px; height: 36px; }
    .nb-benefits-grid { grid-template-columns: 1fr; }
    .nb-benefit-card { padding: 1.5rem 1rem; }
    .nb-info-card { flex-direction: column; text-align: center; align-items: center; padding: 1.25rem 1rem; }
    .nb-info-card-icon { margin: 0 auto; }
    .nb-info-card-body h3 { font-size: 0.9375rem; }
    .nb-timeline-item { grid-template-columns: 40px 1fr; gap: 0.75rem; }
    .nb-timeline::before { left: 19px; }
    .nb-timeline-year { width: 40px; height: 40px; font-size: 0.875rem; }
    .nb-timeline-content { padding: 1rem; }
    .nb-timeline-content h3 { font-size: 0.9375rem; }
    .nb-compare-table th, .nb-compare-table td { padding: 0.625rem 0.75rem; font-size: 0.75rem; }
    .nb-hero-stats-bar { gap: 0.75rem; }
    .nb-hero-stat-value { font-size: 1.25rem; }
    .nb-hero-stat-label { font-size: 0.6875rem; }
    .nb-step-guide-item { gap: 1rem; padding: 1.25rem 0; }
    .nb-step-num { width: 36px; height: 36px; font-size: 0.875rem; }
    .nb-step-guide-content h3 { font-size: 0.9375rem; }
    .nb-step-guide-content p { font-size: 0.8125rem; }
    .nb-category-tab { padding: 0.5rem 0.75rem; font-size: 0.8125rem; }
    .nb-search-input { padding: 0.75rem 1rem; font-size: 0.875rem; }
    .nb-search-btn { padding: 0.75rem 1.25rem; font-size: 0.875rem; }
    .nb-promo-content { flex-direction: column; align-items: flex-start; }
    .nb-promo-title { font-size: 0.9375rem; }
    /* --- nb-fq @ 480px --- */
    .nb-fq-hero { padding: 2.5rem 0 1.5rem; }
    .nb-fq-hero-title { font-size: 1.5rem; }
    .nb-fq-hero-desc { font-size: 0.9375rem; }
    .nb-fq-hero-search { max-width: 100%; }
    .nb-fq-search-input { font-size: 0.875rem; padding: 0.75rem 0.75rem; }
    .nb-fq-search-btn { padding: 0.75rem 1.25rem; font-size: 0.875rem; }
    .nb-fq-quick-grid { grid-template-columns: 1fr; gap: 0.875rem; }
    .nb-fq-quick-card { padding: 1.25rem 1rem; }
    .nb-fq-quick-card h3 { font-size: 1rem; }
    .nb-fq-quick-wrap { padding: 1.5rem 1rem; margin-top: -1.5rem; border-radius: 16px; }
    .nb-fq-accordion-card { padding: 1.5rem 1rem; border-radius: 16px; }
    .nb-fq-section-header { margin-bottom: 1.25rem; }
    .nb-fq-section-header h2 { font-size: 1.125rem; }
    .nb-fq-category-nav { gap: 0.375rem; margin-bottom: 1.5rem; padding-bottom: 1rem; }
    .nb-fq-cat-nav-item { padding: 0.45rem 0.875rem; font-size: 0.8125rem; }
    .nb-fq-question { padding: 0.875rem 0.875rem; font-size: 0.875rem; gap: 0.5rem; }
    .nb-fq-question::after { width: 24px; height: 24px; font-size: 1rem; }
    .nb-fq-answer { padding: 0 0.875rem 0.875rem; font-size: 0.8125rem; }
    .nb-fq-cat-title { font-size: 1.25rem; }
    .nb-fq-cta-final { padding: 2.5rem 0; }
    .nb-fq-cta-final h2 { font-size: 1.5rem; }
    .nb-fq-cta-phone { font-size: 2rem; }

    .nb-coverage-grid, .nb-guide-grid, .nb-join-grid-recruit, .nb-network-branch-grid, .nb-service-promise-grid, .nb-citysite-grid { grid-template-columns: repeat(5, 1fr); gap: 0.375rem; }
    .nb-coverage-province { font-size: 0.8125rem; padding: 0.625rem 0.125rem; gap: 0.125rem; border-radius: 6px; }
    .nb-coverage-province-arrow { display: none; }
    .nb-modal-header { padding: 0.875rem 1rem; }
    .nb-modal-icon { width: 40px; height: 40px; border-radius: 10px; }
    .nb-modal-title { font-size: 1.125rem; }
    .nb-modal-subtitle { font-size: 0.8125rem; }
    .nb-modal-stats { padding: 0.625rem 1rem; gap: 0.75rem; }
    .nb-modal-stat-num { font-size: 1.125rem; }
    .nb-modal-stat-divider { height: 24px; }
    .nb-modal-body { padding: 1rem; }
    .nb-district-grid { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
    .nb-district-item { padding: 0.625rem; font-size: 0.8125rem; }
    .nb-district-icon { width: 24px; height: 24px; border-radius: 6px; }
    .nb-coverage-city-list { grid-template-columns: 1fr; gap: 0.5rem; }
    .nb-coverage-city-item a { font-size: 0.875rem; padding: 0.625rem 0.75rem; }
    .nb-cta-section h2, .nb-lp-cta h2, .nb-pagefaq-cta h2 { font-size: 1.5rem; }
    .nb-cta-phone, .nb-lp-cta-phone, .nb-pagefaq-cta-phone { font-size: 1.5rem; }
    .nb-cta-section { padding: 2.5rem 0; }
    .nb-cta-btn-primary, .nb-cta-btn-white { padding: 0.75rem 1.5rem; font-size: 0.9375rem; }
    .nb-section { padding: 2rem 0; }
    .nb-section + .nb-section { padding-top: 1.25rem; }
    .nb-section.bg-blue + .nb-section.bg-blue { padding-top: 1.75rem; }
    .nb-page-hero { padding: 2.5rem 0; }
    .nb-section-title { font-size: var(--nb-font-xl); }
    .nb-section-subtitle { font-size: 0.875rem; margin-bottom: 1.5rem; }
    .nb-container, .nb-container-sm { padding: 0 0.875rem; }
    .nb-home-cta h2 { font-size: 1.5rem; }
    .nb-home-cta-phone { font-size: 1.5rem; }
    /* --- nb-vp @ 480px --- */
    .nb-vp-title { font-size: 1.375rem; }
    .nb-vp-guarantee-row { grid-template-columns: 1fr; }
    .nb-vp-gallery-badges { justify-content: center; }
    /* --- nb-jn @ 480px --- */
    .nb-jn-hero-title { font-size: 2rem; }
    .nb-jn-hero-stats { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-jn-position-grid { grid-template-columns: 1fr; }
    .nb-jn-benefits-grid { grid-template-columns: 1fr; }
    .nb-jn-why-grid { grid-template-columns: 1fr; }
    .nb-jn-bottom-grid { grid-template-columns: 1fr; }
    /* --- nb-va/nb-cov/nb-vn @ 480px --- */
    .nb-va-title, .nb-vn-title { font-size: 1.25rem; }
    .nb-cov-title { font-size: 1.125rem; }
    .nb-va-meta, .nb-cov-meta { font-size: .75rem; gap: .75rem; }
    .nb-va-hero-image, .nb-vn-hero-img { border-radius: 8px; margin-bottom: 1.25rem; }
    .nb-covv-block { padding: 1rem 1.25rem; }
    .nb-covl-hot-grid { grid-template-columns: 1fr; gap: .75rem; }
    .nb-covl-merged-grid { gap: 1rem; }
    .nb-covl-merged-card { padding: 1rem; border-radius: 12px; }
    .nb-covl-merged-row { gap: 1rem; }
    .nb-covl-merged-label { font-size: .6875rem; margin-bottom: .625rem; padding-bottom: .375rem; }
    .nb-home-cov-grid { grid-template-columns: 1fr; gap: 1rem; }
    .nb-home-cov-card { padding: 1.25rem 1.25rem 1rem; border-radius: 12px; }
    .nb-home-cov-header { gap: .75rem; padding-bottom: 1rem; margin-bottom: 1rem; }
    .nb-home-cov-icon { width: 40px; height: 40px; border-radius: 10px; }
    .nb-home-cov-icon svg { width: 20px; height: 20px; }
    .nb-home-cov-title { font-size: .9375rem; }
    .nb-home-cov-desc { font-size: .75rem; }
    .nb-home-cov-stat { padding: .25rem .5rem; border-radius: 8px; }
    .nb-home-cov-stat-num { font-size: 1rem; }
    .nb-home-cov-stat-label { font-size: .625rem; }
    .nb-home-cov-item { padding: .5rem .625rem; gap: .3125rem .4375rem; border-radius: 8px; }
    .nb-home-cov-item-text { font-size: .75rem; }
    .nb-home-cov-item-sub { font-size: .6875rem; -webkit-line-clamp: 1; }
    .nb-home-cov-item-pin { width: 14px; height: 14px; }
    .nb-home-cov-item-pin svg { width: 14px; height: 14px; }
    .nb-home-cov-item-time { font-size: .625rem; }
    .nb-home-cov-item:nth-child(-n+3)::after { font-size: .5rem; padding: 0 .1875rem; border-radius: 0 6px 0 4px; }
    .nb-home-cov-more { font-size: .75rem; margin-top: .625rem; padding-top: .5rem; }
    .nb-covv-status-grid { grid-template-columns: repeat(2, 1fr); gap: .5rem; }
    .nb-covv-village-grid { grid-template-columns: 1fr 1fr; gap: .5rem; }
    /* province grid */
    .nb-covl-province-grid { grid-template-columns: repeat(5, 1fr); gap: 0.375rem; }
    .nb-covl-province-item { font-size: 0.6875rem; padding: 0.625rem 0.125rem; gap: 0.125rem; border-radius: 6px; }
    .nb-covl-province-arrow { display: none; }
    /* --- nb-home-faq @ 480px --- */
    .nb-home-faq-news-row { gap: 1rem; }
    .nb-home-faq-news-card { padding: 1.25rem; border-radius: 12px; }
    .nb-home-faq-news-hd { padding-bottom: .75rem; margin-bottom: .75rem; }
    .nb-home-faq-news-hd-icon { width: 36px; height: 36px; border-radius: 8px; }
    .nb-home-faq-news-hd-icon svg { width: 18px; height: 18px; }
    .nb-home-faq-news-hd-title { font-size: .9375rem; }
    .nb-home-faq-grid { gap: .5rem; }
    .nb-home-faq-item { border-radius: 10px; }
    .nb-home-faq-question { padding: .75rem .875rem; font-size: .8125rem; gap: .4375rem; }
    .nb-home-faq-question::before { font-size: .625rem; padding: .125rem .375rem; border-radius: 4px; }
    .nb-home-faq-question::after { width: 20px; height: 20px; font-size: .9375rem; }
    .nb-home-faq-answer { padding: 0 .875rem; font-size: .75rem; line-height: 1.65; }
    .nb-home-faq-item.open .nb-home-faq-answer { padding: 0 .875rem .75rem; }
    .nb-home-news-item { padding: .4375rem .375rem; }
    .nb-home-news-item-text { font-size: .75rem; }
    .nb-home-news-item-time { font-size: .625rem; padding: .0625rem .375rem; }
}

/* ===== Single Page Templates Responsive ===== */
/* --- 768px: All single-page module grid collapses --- */
@media (max-width: 768px) {
    /* nb-au — 关于我们 */
    .nb-au-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
    .nb-au-hero-visual { display: none; }
    .nb-au-dashboard { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-au-milestones::before { left: 39px; }
    .nb-au-ms-item { gap: 1.25rem; margin-bottom: 1.5rem; }
    .nb-au-ms-circle { width: 80px; height: 80px; font-size: 1.5rem; }
    .nb-au-ms-card { padding: 1.25rem; }
    .nb-au-ms-card h3 { font-size: 1rem; }
    .nb-au-values { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-au-tech-grid { grid-template-columns: 1fr; gap: 1rem; }
    /* nb-bk — 预约办理 */
    .nb-bk-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
    .nb-bk-hero-left { max-width: 100%; }
    .nb-bk-why-grid { grid-template-columns: repeat(3, 1fr); }
    .nb-bk-plan-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    /* nb-pp — 宽带套餐 */
    .nb-pp-plan-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-pp-fusion-grid { grid-template-columns: 1fr; gap: 1rem; }
    .nb-pp-match-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    /* nb-ct — 城市分站 */
    .nb-ct-hot-grid { grid-template-columns: repeat(3, 1fr); gap: 0.75rem; }
    .nb-ct-province-grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
    .nb-ct-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
    /* nb-cu — 联系我们 */
    .nb-cu-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
    .nb-cu-contact-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-cu-info-grid { grid-template-columns: 1fr; gap: 2rem; }
    .nb-cu-social-grid { grid-template-columns: 1fr; gap: 1rem; }
    /* nb-fq — 常见问题 */
    .nb-fq-quick-grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
    .nb-fq-category-nav { flex-wrap: wrap; gap: 0.5rem; }
    /* nb-gd — 办理指南 */
    .nb-gd-hero { padding: 3rem 0 2.5rem; }
    .nb-gd-hero-title { font-size: 1.875rem; }
    .nb-gd-progress { max-width: 100%; padding: 1rem 1.25rem; }
    .nb-gd-progress-dot { width: 36px; height: 36px; font-size: .875rem; }
    .nb-gd-progress-step { gap: .375rem; }
    .nb-gd-progress-step span { font-size: .6875rem; white-space: nowrap; }
    .nb-gd-progress-line { min-width: 24px; }
    .nb-gd-checklist { grid-template-columns: 1fr; gap: .75rem; }
    .nb-gd-step { gap: 1rem; }
    .nb-gd-step-marker { width: 48px; }
    .nb-gd-step-num { width: 40px; height: 40px; font-size: 1rem; border-radius: 10px; }
    .nb-gd-step-card { padding: 1.25rem 1.5rem; }
    .nb-gd-step-card h3 { font-size: 1.0625rem; }
    /* nb-hp — 使用帮助 */
    .nb-hp-hero-cats { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
    /* nb-jn — 加入我们 */
    .nb-jn-why-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-jn-position-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-jn-bottom-grid { grid-template-columns: 1fr; gap: 2rem; }
    /* nb-nw — 服务网点 */
    .nb-nw-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
    .nb-nw-service-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-nw-city-grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
    /* nb-sv — 服务支持 */
    .nb-sv-guarantee-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-sv-self-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    /* nb-news — 宽带资讯 */
    .nb-news-hero { padding: 2.5rem 0 3rem; }
    .nb-news-hero-title { font-size: 1.75rem; }
    .nb-news-hero-stats { gap: 2rem; }
    .nb-news-hero-stat strong { font-size: 1.5rem; }
    .nb-news-categories { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-news-featured { grid-template-columns: 1fr; }
    .nb-news-featured-main { min-height: 240px; }
    .nb-news-featured-main-overlay { padding: 1.5rem; }
    .nb-news-featured-main h3 { font-size: 1.125rem; }
    .nb-news-featured-side { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
    .nb-news-hot-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-news-item { flex-direction: column; gap: 1rem; }
    .nb-news-item-thumb { width: 100%; height: 180px; }
    /* legacy class cleanup — old about/help/timeline classes */
    .nb-about-block { grid-template-columns: 1fr !important; gap: 1.5rem !important; }
    .nb-about-img-reverse { order: 0 !important; }
    .nb-help-step { grid-template-columns: 1fr !important; gap: 1rem !important; }
    .nb-timeline-item { gap: 1rem !important; }
    .nb-timeline-line { display: none; }
    .nb-map-placeholder { height: 240px; }
}

/* --- 480px: Mobile-first single-column stacks --- */
@media (max-width: 480px) {
    /* nb-au — 关于我们 */
    .nb-au-dashboard { grid-template-columns: 1fr; gap: 0.75rem; }
    .nb-au-mission-card { padding: 1.5rem; }
    .nb-au-values { grid-template-columns: 1fr; gap: 0.75rem; }
    .nb-au-milestones::before { left: 31px; }
    .nb-au-ms-item { gap: 1rem; margin-bottom: 1.25rem; }
    .nb-au-ms-circle { width: 64px; height: 64px; font-size: 1.25rem; }
    .nb-au-ms-card { padding: 1rem; }
    .nb-au-ms-card::before { left: -6px; top: 16px; width: 10px; height: 10px; }
    .nb-au-ms-card h3 { font-size: .9375rem; }
    /* nb-bk — 预约办理 */
    .nb-bk-why-grid { grid-template-columns: 1fr; gap: 1rem; }
    .nb-bk-plan-grid { grid-template-columns: 1fr; gap: 1rem; }
    /* nb-pp — 宽带套餐 */
    .nb-pp-plan-grid { grid-template-columns: 1fr; gap: 1rem; }
    .nb-pp-match-grid { grid-template-columns: 1fr; gap: 1rem; }
    .nb-pp-speed-tabs { gap: 0.5rem; }
    /* nb-ct — 城市分站 */
    .nb-ct-hot-grid { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
    .nb-ct-province-grid { grid-template-columns: 1fr; gap: 0.5rem; }
    .nb-ct-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .nb-ct-stat-num { font-size: 1.75rem; }
    /* nb-cu — 联系我们 */
    .nb-cu-contact-grid { grid-template-columns: 1fr; gap: 0.75rem; }
    .nb-cu-hero-contact-row { flex-direction: column; gap: 0.75rem; }
    /* nb-fq — 常见问题 */
    .nb-fq-quick-grid { grid-template-columns: 1fr; gap: 0.75rem; }
    /* nb-gd — 办理指南 */
    .nb-gd-hero { padding: 2.5rem 0 2rem; }
    .nb-gd-hero-title { font-size: 1.5rem; }
    .nb-gd-hero-desc { font-size: .875rem; }
    .nb-gd-progress { padding: .75rem; flex-direction: row; align-items: flex-start; gap: 0; max-width: 100%; border-radius: 12px; }
    .nb-gd-progress-step { flex: 1; flex-direction: column; gap: .25rem; align-items: center; min-width: 0; padding: 0; }
    .nb-gd-progress-step span { font-size: .625rem; font-weight: 500; text-align: center; line-height: 1.15; }
    .nb-gd-progress-dot { width: 28px; height: 28px; font-size: .75rem; flex-shrink: 0; }
    .nb-gd-progress-line { flex: 0 0 12px; height: 3px; min-width: 0; max-width: 16px; margin-top: 12px; }
    .nb-gd-checklist { grid-template-columns: 1fr; gap: .625rem; }
    .nb-gd-check-item { padding: 1rem; }
    .nb-gd-check-box { width: 36px; height: 36px; font-size: .9375rem; border-radius: 10px; }
    .nb-gd-step { gap: .75rem; }
    .nb-gd-step-marker { width: 40px; }
    .nb-gd-step-num { width: 34px; height: 34px; font-size: .875rem; border-radius: 10px; }
    .nb-gd-step-card { padding: 1rem 1.25rem; }
    .nb-gd-step-card h3 { font-size: 1rem; }
    .nb-gd-step-body p { font-size: .875rem; }
    .nb-gd-step-body ul li { font-size: .8125rem; }
    /* nb-hp — 使用帮助 */
    .nb-hp-hero-cats { grid-template-columns: 1fr; gap: 0.5rem; }
    .nb-hp-trouble-grid { grid-template-columns: 1fr; gap: 1rem; }
    /* nb-jn — 加入我们 */
    .nb-jn-why-grid { grid-template-columns: 1fr; gap: 0.75rem; }
    .nb-jn-position-grid { grid-template-columns: 1fr; gap: 1rem; }
    /* nb-nw — 服务网点 */
    .nb-nw-hero-stats { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; }
    .nb-nw-service-grid { grid-template-columns: 1fr; gap: 0.75rem; }
    .nb-nw-city-grid { grid-template-columns: 1fr; gap: 0.5rem; }
    /* nb-sv — 服务支持 */
    .nb-sv-guarantee-grid { grid-template-columns: 1fr; gap: 0.75rem; }
    .nb-sv-self-grid { grid-template-columns: 1fr; gap: 0.75rem; }
    .nb-sv-contact-grid { grid-template-columns: 1fr; gap: 1rem; }
    /* nb-sv repair flow */
    .nb-sv-repair-step { flex-direction: column; gap: 0.5rem; }
    /* nb-news — 宽带资讯 */
    .nb-news-hero { padding: 2rem 0 2.5rem; }
    .nb-news-hero-title { font-size: 1.5rem; }
    .nb-news-hero-desc { font-size: .875rem; }
    .nb-news-hero-stats { gap: 1.25rem; }
    .nb-news-hero-stat strong { font-size: 1.25rem; }
    .nb-news-categories { grid-template-columns: 1fr; gap: .75rem; }
    .nb-news-cat-card { padding: 1.5rem; }
    .nb-news-featured { grid-template-columns: 1fr; }
    .nb-news-featured-main { min-height: 200px; }
    .nb-news-featured-main-overlay { padding: 1.25rem; }
    .nb-news-featured-main h3 { font-size: 1rem; }
    .nb-news-featured-side { grid-template-columns: 1fr; gap: .5rem; }
    .nb-news-hot-grid { grid-template-columns: 1fr; gap: .75rem; }
    .nb-news-item { flex-direction: column; gap: .75rem; padding: 1rem; }
    .nb-news-item-thumb { width: 100%; height: 160px; }
    .nb-news-item-title { font-size: 1rem; }
}

/* ===== Leaflet Map Overrides ===== */
.leaflet-container {
    background: #f0f4f8;
    font-family: inherit;
}
.leaflet-tooltip.nb-leaflet-tooltip {
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid var(--nb-border);
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 13px;
    color: var(--nb-text-primary);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.leaflet-tooltip.nb-leaflet-tooltip::before {
    display: none;
}
.leaflet-tooltip.nb-leaflet-tooltip strong {
    color: var(--nb-primary);
    font-size: 14px;
}

/* ===== Print ===== */
@media print {
    .nb-header, .nb-footer, .nb-float-contact, .nb-topbar, .nb-cta-section, .nb-home-cta, .nb-lp-cta, .nb-pagefaq-cta, .nb-about-cta, .nb-bb-cta, .nb-guide-cta, .nb-help-cta, .nb-network-cta, .nb-service-cta, .nb-appt-cta, .nb-citysite-cta, .nb-coverage-cta-bar, .nb-lac-cta-bar, .nb-vp-cta-bar, .nb-va-cta-bar, .nb-van-cta-bar, .nb-cov-cta-bar, .nb-va-cta-inline, .nb-covv-inline-cta, .nb-vn-cta-inline, .nb-va-sidebar, .nb-covv-sidebar, .nb-vn-sidebar { display: none; }
    body { color: #000; }
    a { color: #000; text-decoration: underline; }
}
