/* 只读组件。v-* 用于新页；参数只读 tokens.css。 */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--type-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}
img{max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer}
a{color:var(--t-blue);text-decoration:none}[hidden]{display:none!important}
::selection{background:#C1B7FA;color:var(--ink)}
:focus-visible{outline:2px solid var(--t-blue);outline-offset:3px;border-radius:8px}
.v-wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.v-section{padding-block:var(--section-y)}.v-section-compact{padding-block:var(--section-compact-y)}
.v-surface{background:var(--bg-soft)}.v-surface-blue{background:var(--g-card)}
.v-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:var(--type-eyebrow);line-height:1.4;letter-spacing:.16em;text-transform:uppercase;color:var(--t-blue);font-weight:600;margin-bottom:var(--sp-4)}
.v-eyebrow::before{content:"";width:28px;height:2px;border-radius:2px;background:var(--g-line)}
.v-h1{font-size:var(--type-h1);font-weight:700;line-height:var(--lh-h1);letter-spacing:var(--track-h1);color:var(--ink)}
.v-h2{font-size:var(--type-h2);font-weight:700;line-height:var(--lh-h2);letter-spacing:var(--track-h2);color:var(--ink)}
.v-h3{font-size:var(--type-h3);font-weight:700;line-height:var(--lh-h3);letter-spacing:var(--track-h3);color:var(--ink)}
.v-lead{margin-top:var(--sp-4);font-size:var(--type-lead);line-height:var(--lh-copy);color:var(--text);max-width:640px}
.v-note{font-size:var(--type-note);color:var(--muted);line-height:1.7}
.v-grad{background:var(--g-title);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.v-heading-center{text-align:center;display:flex;flex-direction:column;align-items:center}
.v-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gap-split);align-items:center}
.v-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-card);margin-top:var(--sp-11)}
.v-stack{display:grid;gap:var(--sp-4)}
.v-card{--acc:var(--c-blue);--acc-t:var(--t-blue);position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;padding:var(--card-pad);border-radius:var(--r-l);background:var(--bg);border:var(--border-width) solid var(--line);transition:transform var(--time-card) var(--ease),box-shadow var(--time-card) var(--ease),border-color .3s}
.v-purple{--acc:var(--c-purple);--acc-t:var(--t-purple)}.v-lav{--acc:var(--c-lav);--acc-t:var(--t-lav)}.v-peach{--acc:var(--c-peach);--acc-t:var(--t-peach)}
.v-card::before{content:"";position:absolute;z-index:-1;right:-90px;top:-90px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,var(--acc),transparent 68%);opacity:.32}
.v-card small{color:var(--acc-t);font-weight:700}
.v-card h3{margin-top:var(--sp-2);font-size:var(--type-card);font-weight:700;line-height:var(--lh-h3);letter-spacing:-.025em;color:var(--ink)}
.v-card p{margin-top:14px;font-size:var(--type-card-body);line-height:var(--lh-copy)}
.v-card>a{margin-top:auto;padding-top:var(--sp-5);font-size:15px;font-weight:700;color:var(--acc-t);width:fit-content}
/* 基础卡沿用行业卡外壳，但不自动加入行业专属顶部色条。 */
.v-card-action:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift);border-color:transparent}
.v-panel{padding:var(--panel-pad);border-radius:var(--r-xl);background:var(--g-card);border:1px solid var(--line)}
.v-icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--g-blue);color:var(--bg);flex-shrink:0}
.v-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.v-purple .v-icon{background:var(--g-purple)}.v-lav .v-icon{background:var(--g-lav)}
.v-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-7)}
.v-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--btn-height);padding:0 var(--btn-pad);border-radius:var(--radius-pill);border:0;font-size:16px;font-weight:600;white-space:nowrap;transition:transform var(--time-button) var(--ease),box-shadow var(--time-button) var(--ease),background-color var(--time-control)}
.v-btn-primary{background:var(--g-action);color:var(--bg)}
.v-btn-white{background:var(--bg);color:var(--ink);box-shadow:0 10px 30px -10px rgba(10,5,245,.55)}
.v-btn-glass{background:rgba(255,255,255,.12);color:var(--bg);border:1px solid rgba(255,255,255,.38);backdrop-filter:blur(10px)}
.v-btn-xl{min-height:var(--btn-xl-height);padding-inline:var(--btn-xl-pad);font-size:17px}
.v-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.v-btn:disabled{opacity:.6;cursor:default;transform:none}
.v-btn-white:hover{transform:translateY(-2px);box-shadow:0 0 0 6px rgba(255,255,255,.18),0 18px 40px -12px rgba(10,5,245,.6)}
.v-link{display:inline-flex;align-items:center;min-height:44px;color:var(--t-blue);font-size:15px;font-weight:700}
.v-tag{display:inline-flex;align-items:center;min-height:30px;padding-inline:var(--sp-2);border-radius:var(--radius-pill);background:var(--bg-soft);color:var(--ink);border:1px solid var(--line);font-size:13px;font-weight:600}
.v-tabs{display:flex;gap:6px;width:fit-content;max-width:100%;padding:6px;border-radius:var(--radius-pill);background:var(--bg-soft);border:1px solid var(--line);overflow-x:auto}
.v-tab{min-height:46px;padding:0 24px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text);font-size:15px;font-weight:600;white-space:nowrap}
.v-tab[aria-pressed="true"]{background:var(--bg);color:var(--ink);box-shadow:0 6px 16px -8px rgba(60,52,238,.35),0 0 0 1px rgba(150,163,249,.3)}
.v-list{border-top:1px solid var(--line)}.v-list article{padding:30px 8px;border-bottom:1px solid var(--line)}
.v-list h3{font-size:20px;color:var(--ink)}.v-list p{font-size:15px;margin-top:8px}
.v-hero{position:relative;isolation:isolate;overflow:hidden;padding-block:var(--sp-13);background:var(--hero-bg);color:var(--bg)}
.v-hero .v-h1,.v-hero .v-lead{color:var(--bg)}.v-hero .v-eyebrow,.v-cta .v-eyebrow{color:rgba(255,255,255,.88)}
.v-hero .v-eyebrow::before,.v-cta .v-eyebrow::before{background:linear-gradient(90deg,#fff,rgba(255,255,255,.2))}
.v-hero .v-lead{opacity:.88}
.v-cta{position:relative;isolation:isolate;overflow:hidden;padding:88px 72px;border-radius:var(--r-xl);background:var(--cta-bg);color:var(--bg);text-align:center}
.v-cta .v-h2{font-size:clamp(32px,4.2vw,60px);color:var(--bg)}.v-cta .v-lead{color:rgba(255,255,255,.88);margin-inline:auto}
.v-cta .v-actions{justify-content:center;margin-top:var(--sp-8)}
@media(max-width:1099px){.v-split{grid-template-columns:minmax(0,1fr)}.v-cta{padding:64px 48px}}
@media(max-width:760px){.v-grid{grid-template-columns:minmax(0,1fr)}.v-eyebrow{letter-spacing:.1em}.v-hero{padding-block:var(--sp-10)}.v-tabs{border-radius:18px}.v-cta{padding:48px 22px}.v-cta .v-h2{font-size:clamp(22px,7vw,27px)}.v-cta .v-btn{width:100%;white-space:normal}.v-actions{align-items:flex-start}.v-btn{white-space:normal;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* =========================================================
   可选项：材质、阴影、悬停
   叠加用。例：class="v-card v-glass v-sh-lift v-hv-6"
   数值全部取自首页定稿，不要自己写具体数值。
   ========================================================= */

/* 材质｜二选一，也可以不选（不选就是实色底） */
.v-glass{background:rgba(255,255,255,.82);-webkit-backdrop-filter:var(--glass-lg);backdrop-filter:var(--glass-lg);border:var(--border-width) solid rgba(255,255,255,.95)}
.v-glass-dark{background:rgba(255,255,255,.12);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:var(--border-width) solid rgba(255,255,255,.26)}

/* 阴影｜挑一档，也可以不选（不选就没阴影） */
.v-sh-xs{box-shadow:var(--shadow-xs)}
.v-sh-sm{box-shadow:var(--shadow-sm)}
.v-sh-md{box-shadow:var(--shadow-md)}
.v-sh-soft{box-shadow:var(--shadow-soft)}
.v-sh-lift{box-shadow:var(--shadow-lift)}
.v-sh-strong{box-shadow:var(--shadow-strong)}
.v-sh-float{box-shadow:var(--shadow-float)}

/* 悬停｜挑一档，位移和阴影一起变；也可以不选（不选就没悬停反应） */
.v-hv-1,.v-hv-2,.v-hv-6,.v-hv-zoom{transition:transform var(--time-button) var(--ease),box-shadow var(--time-card) var(--ease),border-color var(--time-control)}
.v-hv-1:hover{transform:var(--hover-1)}
.v-hv-2:hover{transform:var(--hover-2);box-shadow:var(--shadow-soft)}
.v-hv-6:hover{transform:var(--hover-6);box-shadow:var(--shadow-lift)}
.v-hv-zoom:hover{transform:var(--hover-zoom)}
@media(prefers-reduced-motion:reduce){.v-hv-1:hover,.v-hv-2:hover,.v-hv-6:hover,.v-hv-zoom:hover{transform:none}}

/* 焦点环｜输入框、可聚焦控件 */
.v-ring:focus-visible{outline:0;box-shadow:var(--ring-focus)}
