/**
 * home-v2.css — 前台首页增强样式
 *
 * 归属：任务 #51（前台首页丰富化）独占
 * 引入方式：由任务 #49 在 views/layouts/front.php <head> 内注册 <link>
 *
 * 设计要求：
 *   - 所有色值必须使用 var(--lh-*) token，禁止硬编码
 *   - 主色 #ff3f9f（浅色）/ #ff6bb5（深色），严禁紫色 250-310
 *   - 玻璃拟态 + 柔和渐变风格
 *   - 容器 1300px / 行高 1.5 / 卡片 hover 上浮 3px / section 间距充足
 */

/* =================================================================
   1. 浅色模式（默认）
   ================================================================= */

/* --- Hero 增强 --- */
.home-v2-hero{position:relative;overflow:hidden;padding:6rem 0 4rem;min-height:80vh;display:flex;align-items:center}
.home-v2-hero__orbs{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.home-v2-hero__orb{position:absolute;border-radius:50%;opacity:.15}
.home-v2-hero__orb--1{width:500px;height:500px;top:-120px;left:-100px;background:var(--lh-primary);filter:blur(100px);animation:home-v2-orb-1 18s ease-in-out infinite alternate}
.home-v2-hero__orb--2{width:400px;height:400px;bottom:-80px;right:-60px;background:var(--lh-accent);filter:blur(90px);animation:home-v2-orb-2 22s ease-in-out infinite alternate}
.home-v2-hero__orb--3{width:300px;height:300px;top:40%;left:45%;background:var(--lh-accent-2);filter:blur(80px);animation:home-v2-orb-3 16s ease-in-out infinite alternate}
@keyframes home-v2-orb-1{0%{transform:translate(0,0) scale(1)}100%{transform:translate(40px,-30px) scale(1.1)}}
@keyframes home-v2-orb-2{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-30px,20px) scale(1.08)}}
@keyframes home-v2-orb-3{0%{transform:translate(0,0) scale(.95)}100%{transform:translate(20px,15px) scale(1.05)}}

.home-v2-hero__grid-bg{position:absolute;inset:0;z-index:0;
  background-image:linear-gradient(var(--lh-border) 1px,transparent 1px),linear-gradient(90deg,var(--lh-border) 1px,transparent 1px);
  background-size:64px 64px;opacity:.35;mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black 30%,transparent 70%);
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black 30%,transparent 70%)}

.home-v2-hero__layout{display:grid;grid-template-columns:1fr 380px;gap:3rem;align-items:center;position:relative;z-index:1}
.home-v2-hero__content{position:relative;z-index:1}
.home-v2-hero__eyebrow{display:inline-flex;align-items:center;gap:var(--lh-sp-2);padding:var(--lh-sp-1) var(--lh-sp-4);
  border-radius:var(--lh-r-full);font-size:var(--lh-fs-sm);font-weight:var(--lh-fw-semibold);
  color:var(--lh-primary);margin-bottom:var(--lh-sp-5);letter-spacing:.02em}
.home-v2-hero__title{font-size:clamp(36px,5vw,60px);font-weight:800;line-height:1.15;color:var(--lh-text);margin-bottom:var(--lh-sp-5)}
.home-v2-hero__title-gradient{background:var(--lh-gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.home-v2-hero__desc{font-size:var(--lh-fs-lg);color:var(--lh-text-soft);max-width:640px;margin-bottom:var(--lh-sp-6);line-height:1.7}
.home-v2-hero__actions{display:flex;gap:var(--lh-sp-4);flex-wrap:wrap;margin-bottom:var(--lh-sp-6)}
.home-v2-hero__cta-primary{box-shadow:var(--lh-sh-glow);transition:all var(--lh-dur) var(--lh-ease)}
.home-v2-hero__cta-primary:hover{transform:translateY(-3px);box-shadow:var(--lh-sh-glow),0 12px 40px rgba(255,63,159,.3)}
.home-v2-hero__cta-ghost{backdrop-filter:var(--lh-glass-blur);-webkit-backdrop-filter:var(--lh-glass-blur);background:var(--lh-surface);border-color:var(--lh-border-strong)}
.home-v2-hero__cta-ghost:hover{background:var(--lh-primary);color:var(--lh-text-inv);border-color:var(--lh-primary)}
.home-v2-hero__trust{display:flex;gap:var(--lh-sp-5);flex-wrap:wrap}
.home-v2-hero__trust-item{display:inline-flex;align-items:center;gap:var(--lh-sp-2);font-size:var(--lh-fs-sm);color:var(--lh-text-soft);font-weight:var(--lh-fw-medium)}
.home-v2-hero__trust-item svg{flex-shrink:0}

/* --- Hero Lookup Card --- */
.home-v2-lookup{padding:var(--lh-sp-6);border-radius:var(--lh-r-lg)}
.home-v2-lookup__title{font-size:var(--lh-fs-lg);font-weight:var(--lh-fw-bold);color:var(--lh-text);margin-bottom:var(--lh-sp-4)}
.home-v2-lookup__tabs{display:flex;gap:var(--lh-sp-1);margin-bottom:var(--lh-sp-4);background:var(--lh-bg-soft);border-radius:var(--lh-r-sm);padding:3px}
.home-v2-lookup__tab{flex:1;padding:var(--lh-sp-2) var(--lh-sp-3);font-size:var(--lh-fs-sm);font-weight:var(--lh-fw-medium);color:var(--lh-text-mute);
  border-radius:var(--lh-r-xs);transition:all var(--lh-dur) var(--lh-ease);text-align:center;cursor:pointer;border:none;background:none}
.home-v2-lookup__tab:hover{color:var(--lh-text-soft)}
.home-v2-lookup__tab.is-active{background:var(--lh-surface-solid);color:var(--lh-primary);box-shadow:var(--lh-sh-1)}
.home-v2-lookup__form{display:flex;flex-direction:column;gap:var(--lh-sp-3)}
.home-v2-lookup__input{height:44px}
.home-v2-lookup__btn{gap:var(--lh-sp-2)}

/* --- Hero Scroll Indicator --- */
.home-v2-hero__scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--lh-sp-2);color:var(--lh-text-mute);z-index:1;animation:home-v2-scroll-bounce 2s ease-in-out infinite}
.home-v2-hero__scroll-line{width:1px;height:24px;background:var(--lh-border-strong)}
@keyframes home-v2-scroll-bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}

/* --- 数据统计条 --- */
.front-stats-bar{position:relative;z-index:2;margin-top:-60px;padding:0 0 var(--lh-sp-8)}
.front-stats-bar__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--lh-sp-5);
  background:var(--lh-surface);backdrop-filter:var(--lh-glass-blur);-webkit-backdrop-filter:var(--lh-glass-blur);
  border:1px solid var(--lh-border);border-radius:var(--lh-r-lg);padding:var(--lh-sp-6) var(--lh-sp-7);
  box-shadow:var(--lh-sh-2),var(--lh-sh-inset)}
.front-stats-bar__item{display:flex;align-items:center;gap:var(--lh-sp-4)}
.front-stats-bar__icon{width:48px;height:48px;border-radius:var(--lh-r-sm);display:flex;align-items:center;justify-content:center;
  background:var(--lh-gradient-soft);color:var(--lh-primary);flex-shrink:0}
.front-stats-bar__icon i[data-icon]{display:inline-flex;align-items:center;justify-content:center}
.front-stats-bar__body{display:flex;flex-direction:column}
.front-stats-bar__num{font-size:clamp(28px,4vw,40px);font-weight:800;line-height:1.1;
  background:var(--lh-gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.front-stats-bar__label{font-size:var(--lh-fs-sm);color:var(--lh-text-mute);margin-top:var(--lh-sp-1)}

/* --- 特性卡片 --- */
.front-features{padding:var(--lh-sp-8) 0}
.home-v2-features__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:var(--lh-sp-7)}
.home-v2-feature-card{position:relative;padding:28px;border-radius:18px;transition:all var(--lh-dur) var(--lh-ease);overflow:hidden}
.home-v2-feature-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:var(--lh-gradient-primary);opacity:0;transition:opacity var(--lh-dur) var(--lh-ease)}
.home-v2-feature-card:hover{transform:translateY(-3px);border-color:var(--lh-primary);box-shadow:var(--lh-sh-glow)}
.home-v2-feature-card:hover::before{opacity:1}
.home-v2-feature-card__icon-badge{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  background:var(--lh-gradient-primary);color:var(--lh-text-inv);margin-bottom:var(--lh-sp-5);
  transition:transform var(--lh-dur) var(--lh-ease)}
.home-v2-feature-card__icon-badge i[data-icon]{display:inline-flex;align-items:center;justify-content:center}
.home-v2-feature-card:hover .home-v2-feature-card__icon-badge{transform:scale(1.08) rotate(3deg)}
.home-v2-feature-card__title{font-size:17px;font-weight:var(--lh-fw-bold);color:var(--lh-text);margin-bottom:var(--lh-sp-3)}
.home-v2-feature-card__desc{font-size:var(--lh-fs-base);line-height:1.6;color:var(--lh-text-soft)}

/* --- 三步接入 --- */
.front-steps{padding:var(--lh-sp-8) 0;background:var(--lh-bg-soft)}
.front-steps__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--lh-sp-6);margin-top:var(--lh-sp-7);position:relative}
.front-steps__item{display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;padding:0 var(--lh-sp-4)}
.front-steps__item:not(:last-child)::after{content:'';position:absolute;top:24px;left:calc(50% + 40px);width:calc(100% - 80px);
  height:2px;background:var(--lh-gradient-primary);opacity:.3}
.front-steps__num-badge{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--lh-gradient-primary);color:var(--lh-text-inv);font-size:var(--lh-fs-xl);font-weight:800;
  margin-bottom:var(--lh-sp-5);flex-shrink:0;box-shadow:var(--lh-sh-glow)}
.front-steps__body{flex:1}
.front-steps__item-title{font-size:17px;font-weight:var(--lh-fw-bold);color:var(--lh-text);margin-bottom:var(--lh-sp-2)}
.front-steps__item-desc{font-size:var(--lh-fs-sm);line-height:1.6;color:var(--lh-text-soft);margin-bottom:var(--lh-sp-4)}
.front-steps__code{display:inline-block;padding:var(--lh-sp-2) var(--lh-sp-4);border-radius:var(--lh-r-sm);font-family:var(--lh-font-mono);font-size:var(--lh-fs-sm);color:var(--lh-primary);word-break:break-all}
.front-steps__footer{text-align:center;margin-top:var(--lh-sp-7)}

/* --- 套餐/价格增强 --- */
.front-pricing-preview{padding:var(--lh-sp-8) 0}
.home-v2-pricing__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--lh-sp-6);margin-top:var(--lh-sp-7);align-items:start}
.home-v2-price-card{position:relative;padding:32px;border-radius:20px;display:flex;flex-direction:column;transition:all var(--lh-dur) var(--lh-ease)}
.home-v2-price-card:hover{transform:translateY(-3px);box-shadow:var(--lh-sh-2)}
.home-v2-price-card--featured{border:2px solid var(--lh-primary);box-shadow:var(--lh-sh-glow);transform:scale(1.03)}
.home-v2-price-card--featured:hover{transform:scale(1.03) translateY(-3px)}
.home-v2-price-card__badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);padding:var(--lh-sp-1) var(--lh-sp-5);
  border-radius:var(--lh-r-full);font-size:var(--lh-fs-xs);font-weight:var(--lh-fw-bold);color:var(--lh-text-inv);
  background:var(--lh-gradient-primary);white-space:nowrap;letter-spacing:.04em}
.home-v2-price-card__name{font-size:var(--lh-fs-xl);font-weight:var(--lh-fw-bold);color:var(--lh-text);margin-bottom:var(--lh-sp-3)}
.home-v2-price-card__price{display:flex;align-items:baseline;gap:2px;margin-bottom:var(--lh-sp-2)}
.home-v2-price-card__currency{font-size:var(--lh-fs-lg);font-weight:var(--lh-fw-bold);color:var(--lh-primary)}
.home-v2-price-card__amount{font-size:clamp(32px,4vw,44px);font-weight:800;color:var(--lh-primary);line-height:1}
.home-v2-price-card__period{font-size:var(--lh-fs-sm);color:var(--lh-text-mute);margin-left:var(--lh-sp-1)}
.home-v2-price-card__original{font-size:var(--lh-fs-sm);color:var(--lh-text-mute);text-decoration:line-through;margin-bottom:var(--lh-sp-4)}
.home-v2-price-card__features{list-style:none;padding:0;margin:0 0 var(--lh-sp-6);flex:1;display:flex;flex-direction:column;gap:var(--lh-sp-3)}
.home-v2-price-card__features li{display:flex;align-items:center;gap:var(--lh-sp-3);font-size:var(--lh-fs-sm);color:var(--lh-text-soft);line-height:1.5}
.home-v2-price-card__features li svg{flex-shrink:0}
.home-v2-price-card__btn{margin-top:auto}

/* --- 用户评价 --- */
.front-testimonials{padding:var(--lh-sp-8) 0}
.front-testimonials__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:var(--lh-sp-7)}
.front-testimonials__card{position:relative;padding:28px;border-radius:18px;transition:all var(--lh-dur) var(--lh-ease);overflow:hidden}
.front-testimonials__card:hover{transform:translateY(-3px);box-shadow:var(--lh-sh-2)}
.front-testimonials__quote{position:absolute;top:16px;left:20px;font-size:48px;line-height:1;
  background:var(--lh-gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.18;pointer-events:none}
.front-testimonials__text{font-size:15px;line-height:1.7;color:var(--lh-text-soft);margin-bottom:var(--lh-sp-5);position:relative;z-index:1}
.front-testimonials__author{display:flex;align-items:center;gap:var(--lh-sp-3)}
.front-testimonials__avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--lh-gradient-primary);color:var(--lh-text-inv);font-size:var(--lh-fs-base);font-weight:var(--lh-fw-bold);flex-shrink:0}
.front-testimonials__info{display:flex;flex-direction:column;flex:1;min-width:0}
.front-testimonials__name{font-size:var(--lh-fs-base);font-weight:var(--lh-fw-semibold);color:var(--lh-text)}
.front-testimonials__role{font-size:var(--lh-fs-xs);color:var(--lh-text-mute)}
.front-testimonials__stars{display:flex;gap:2px;flex-shrink:0}

/* --- CTA 增强 --- */
.home-v2-cta{padding:var(--lh-sp-8) 0}
.home-v2-cta__inner{position:relative;background:var(--lh-gradient);border-radius:24px;padding:var(--lh-sp-8) var(--lh-sp-7);text-align:center;overflow:hidden}
.home-v2-cta__glow{position:absolute;top:50%;left:30%;width:400px;height:400px;border-radius:50%;
  background:rgba(255,255,255,.12);filter:blur(80px);transform:translate(-50%,-50%);pointer-events:none}
.home-v2-cta__title{font-size:clamp(28px,4vw,40px);font-weight:800;color:var(--lh-text-inv);margin-bottom:var(--lh-sp-4);position:relative;z-index:1}
.home-v2-cta__desc{font-size:var(--lh-fs-lg);color:rgba(255,255,255,.85);margin-bottom:var(--lh-sp-7);position:relative;z-index:1;max-width:560px;margin-left:auto;margin-right:auto}
.home-v2-cta__actions{display:flex;gap:var(--lh-sp-4);justify-content:center;flex-wrap:wrap;position:relative;z-index:1}
.home-v2-cta__btn-primary{background:var(--lh-text-inv);color:var(--lh-primary);border:none;padding:var(--lh-sp-3) var(--lh-sp-6);
  height:48px;border-radius:var(--lh-r-sm);font-weight:var(--lh-fw-semibold);font-size:var(--lh-fs-md);
  box-shadow:var(--lh-sh-2);transition:all var(--lh-dur) var(--lh-ease)}
.home-v2-cta__btn-primary:hover{transform:translateY(-3px);box-shadow:var(--lh-sh-3);background:var(--lh-text-inv);color:var(--lh-primary)}
.home-v2-cta__btn-ghost{background:transparent;color:var(--lh-text-inv);border:1.5px solid rgba(255,255,255,.5);
  padding:var(--lh-sp-3) var(--lh-sp-6);height:48px;border-radius:var(--lh-r-sm);font-weight:var(--lh-fw-semibold);font-size:var(--lh-fs-md);
  transition:all var(--lh-dur) var(--lh-ease)}
.home-v2-cta__btn-ghost:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.8);color:var(--lh-text-inv);transform:translateY(-3px)}

/* --- Section 通用标题 --- */
.front-section__title{font-size:var(--lh-fs-3xl);font-weight:800;color:var(--lh-text);text-align:center;margin-bottom:var(--lh-sp-3)}
.front-section__desc{font-size:var(--lh-fs-md);color:var(--lh-text-soft);text-align:center;max-width:480px;margin:0 auto}

/* --- Reveal 动画 --- */
.home-v2-reveal{opacity:0;transform:translateY(24px);transition:opacity .6s var(--lh-ease),transform .6s var(--lh-ease)}
.home-v2-reveal.is-visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){
  .home-v2-reveal{opacity:1;transform:none;transition:none}
  .home-v2-hero__orb{animation:none}
  .home-v2-hero__scroll{animation:none}
}

/* --- 图标占位 --- */
.front-stats-bar__icon i[data-icon] svg,.home-v2-feature-card__icon-badge i[data-icon] svg{display:block}

/* =================================================================
   2. 深色模式  [data-theme="dark"]
   ================================================================= */

[data-theme="dark"] .home-v2-hero__grid-bg{opacity:.15}
[data-theme="dark"] .home-v2-hero__orb{opacity:.10}
[data-theme="dark"] .home-v2-hero__cta-ghost{background:var(--lh-surface);border-color:var(--lh-border-strong)}
[data-theme="dark"] .home-v2-hero__cta-ghost:hover{background:var(--lh-primary);border-color:var(--lh-primary)}
[data-theme="dark"] .home-v2-lookup__tabs{background:var(--lh-bg)}
[data-theme="dark"] .home-v2-lookup__tab.is-active{background:var(--lh-surface-solid);box-shadow:var(--lh-sh-1)}
[data-theme="dark"] .front-stats-bar__grid{background:var(--lh-surface);border-color:var(--lh-border)}
[data-theme="dark"] .front-steps{background:var(--lh-bg-soft)}
[data-theme="dark"] .home-v2-cta__inner{background:var(--lh-gradient)}
[data-theme="dark"] .home-v2-cta__glow{background:rgba(255,255,255,.06)}
[data-theme="dark"] .home-v2-cta__btn-primary{color:var(--lh-primary)}
[data-theme="dark"] .front-testimonials__quote{opacity:.12}

/* =================================================================
   3. 响应式
   ================================================================= */

@media(max-width:980px){
  .home-v2-hero__layout{grid-template-columns:1fr;gap:var(--lh-sp-7)}
  .home-v2-hero__side{max-width:480px}
  .home-v2-hero{padding:4rem 0 3rem;min-height:auto}
  .home-v2-features__grid{grid-template-columns:repeat(2,1fr)}
  .front-testimonials__grid{grid-template-columns:1fr}
  .front-stats-bar__grid{grid-template-columns:repeat(2,1fr);padding:var(--lh-sp-5)}
  .front-stats-bar{margin-top:-40px}
}

@media(max-width:768px){
  .front-steps__grid{grid-template-columns:1fr;gap:var(--lh-sp-7)}
  .front-steps__item{flex-direction:row;text-align:left;align-items:flex-start;padding:0}
  .front-steps__item:not(:last-child)::after{display:none}
  .front-steps__num-badge{margin-bottom:0;margin-right:var(--lh-sp-4);flex-shrink:0}
  .home-v2-hero__scroll{display:none}
  .home-v2-hero__title{font-size:clamp(28px,6vw,48px)}
}

@media(max-width:640px){
  .home-v2-features__grid{grid-template-columns:1fr}
  .home-v2-pricing__grid{grid-template-columns:1fr}
  .home-v2-price-card--featured{transform:none}
  .home-v2-price-card--featured:hover{transform:translateY(-3px)}
  .front-stats-bar__grid{grid-template-columns:1fr}
  .home-v2-hero__actions{flex-direction:column}
  .home-v2-hero__actions .lh-btn{width:100%;text-align:center;justify-content:center}
  .home-v2-cta__actions{flex-direction:column;align-items:center}
  .home-v2-cta__btn-primary,.home-v2-cta__btn-ghost{width:100%;max-width:280px;text-align:center;justify-content:center;display:inline-flex}
}
