/* ========= 协议/隐私 弹层 ========= */
.modal{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;
}
.modal[hidden]{display:none}
.modal__mask{position:absolute;inset:0;background:rgba(15,12,40,.65);backdrop-filter:blur(3px)}
.modal__panel{
  position:relative;background:var(--c-bg-2);border-radius:18px;width:100%;max-width:440px;
  max-height:80vh;display:flex;flex-direction:column;
  box-shadow:0 30px 70px rgba(15,12,40,.35);
  animation:modalIn .25s cubic-bezier(.16,1,.3,1);
  border:1px solid var(--c-line);
}
@keyframes modalIn{
  from{transform:translateY(24px) scale(.96);opacity:0}
  to{transform:translateY(0) scale(1);opacity:1}
}
.modal__head{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;border-bottom:1px solid var(--c-line-2);
  background:linear-gradient(180deg,#fdfaf3,transparent);
  border-radius:18px 18px 0 0;
}
.modal__head h3{font-size:16px;font-weight:800;color:var(--c-ink);letter-spacing:.5px}
.modal__close{
  width:32px;height:32px;border-radius:50%;font-size:20px;color:var(--c-ink-3);cursor:pointer;
  background:var(--c-line-2);display:grid;place-items:center;line-height:1;transition:.2s;
}
.modal__close:hover{background:#e0d8c8;color:var(--c-ink)}
.modal__body{padding:16px 20px 20px;overflow-y:auto;font-size:13px;color:var(--c-ink-2);line-height:1.75}
.modal__body p{margin-bottom:10px}
.modal__body h4{
  font-size:14px;font-weight:800;color:var(--c-ink);margin:16px 0 8px;
  padding-left:12px;border-left:3px solid var(--c-gold);letter-spacing:.3px;
}
.modal__body strong{color:var(--c-ink)}
.modal__body a{color:var(--c-brand-2);text-decoration:underline}
.modal__sign{
  margin-top:20px;padding-top:14px;border-top:1px dashed var(--c-line);
  text-align:right;font-size:11px;color:var(--c-ink-3);line-height:1.7;letter-spacing:.3px;
}
.modal__note{
  margin-top:12px;padding:12px 14px;background:#fdfaf3;border-radius:10px;
  font-size:12px;color:var(--c-ink-2);border:1px solid var(--c-line);
}

/* ========= 悬浮双按钮(常驻底部)========= */
.float-bar{
  position:fixed;left:50%;bottom:12px;transform:translateX(-50%);
  width:calc(100% - 24px);max-width:456px;z-index:50;
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.float-bar__btn{
  display:flex;align-items:center;gap:8px;
  padding:11px 12px;border-radius:14px;
  color:#fff;font-weight:700;letter-spacing:.3px;
  transition:.2s;position:relative;overflow:visible;
  border:1px solid rgba(255,255,255,.15);
}
.float-bar__btn:hover{transform:translateY(-1px)}
.float-bar__btn:active{transform:translateY(1px)}

.float-bar__btn--form{
  background:linear-gradient(135deg,#2563eb 0%,#4f46e5 50%,#7c3aed 100%);
  box-shadow:0 12px 28px rgba(37,99,235,.4), inset 0 1px 0 rgba(255,255,255,.18);
}

/* === 加 AI 专家 - 引导动效 === */
.float-bar__btn--wx{
  background:linear-gradient(135deg,#07c160 0%,#06ad56 100%);
  box-shadow:0 12px 28px rgba(7,193,96,.4), inset 0 1px 0 rgba(255,255,255,.18);
  animation:wxBreathe 2.2s ease-in-out infinite;
}
@keyframes wxBreathe{
  0%,100%{
    box-shadow:0 12px 28px rgba(7,193,96,.4),
               0 0 0 0 rgba(7,193,96,.5),
               inset 0 1px 0 rgba(255,255,255,.18);
  }
  50%{
    box-shadow:0 16px 36px rgba(7,193,96,.55),
               0 0 0 10px rgba(7,193,96,0),
               inset 0 1px 0 rgba(255,255,255,.18);
  }
}

/* 微信图标晃动(每 3 秒摇一次) */
.float-bar__btn--wx .float-bar__icon{
  animation:wxIcon 3s ease-in-out infinite;
  transform-origin:center;
}
@keyframes wxIcon{
  0%,80%,100%{transform:rotate(0) scale(1)}
  84%{transform:rotate(-14deg) scale(1.08)}
  88%{transform:rotate(14deg) scale(1.08)}
  92%{transform:rotate(-8deg) scale(1.05)}
  96%{transform:rotate(0) scale(1)}
}

/* 右上角红点徽章(脉动) */
.float-bar__btn--wx::after{
  content:"1";
  position:absolute;
  top:-5px;right:-5px;
  min-width:18px;height:18px;padding:0 5px;
  background:linear-gradient(135deg,#ef4444,#dc2626);
  color:#fff;
  font-size:11px;font-weight:900;
  font-style:normal;letter-spacing:0;
  border-radius:9px;
  border:2px solid #fff;
  display:grid;place-items:center;line-height:1;
  box-shadow:0 4px 10px rgba(220,38,38,.5);
  animation:wxBadge 1.4s ease-in-out infinite;
}
@keyframes wxBadge{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.18)}
}

.float-bar__icon{
  flex:0 0 32px;width:32px;height:32px;border-radius:50%;
  background:rgba(255,255,255,.18);
  display:grid;place-items:center;font-size:16px;
  border:1px solid rgba(255,255,255,.18);
}
.float-bar__txt{
  flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;line-height:1.2;
}
.float-bar__txt strong{font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.float-bar__txt em{font-size:10px;opacity:.85;font-weight:500;letter-spacing:.5px;white-space:nowrap}

@media (max-width:340px){
  .float-bar__txt em{display:none}
}
  50%{transform:translateX(-50%) scale(1.015)}
}

/* ========= Toast ========= */
.toast{
  position:fixed;left:50%;top:42%;transform:translate(-50%,-50%) scale(.92);
  background:rgba(15,12,40,.92);color:#fff;
  padding:13px 22px;border-radius:12px;font-size:14px;letter-spacing:.3px;
  z-index:99;opacity:0;pointer-events:none;transition:.25s cubic-bezier(.16,1,.3,1);
  max-width:80vw;text-align:center;
  border:1px solid rgba(212,175,55,.2);
  box-shadow:0 20px 40px rgba(15,12,40,.4);
  backdrop-filter:blur(10px);
}
.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* ========= 响应式 ========= */
@media (max-width:360px){
  .hero__title{font-size:23px}
  .hero__art{width:130px;flex-basis:130px}
  .robot{width:130px;height:158px}
  .need{font-size:12px;padding:8px}
  .field__label{flex-basis:68px;font-size:12px;padding-right:6px;line-height:42px}
  .field > input[type=text],
  .field > input[type=tel]{height:42px}
}

/* Toast 错误态 - 红色更醒目 */
.toast--error{
  background:linear-gradient(135deg,#b91c1c 0%,#dc2626 100%) !important;
  border-color:rgba(255,255,255,.18) !important;
  box-shadow:0 20px 40px rgba(185,28,28,.45) !important;
  font-size:14.5px;font-weight:700;padding:16px 26px;
}
.toast--error::before{content:"⚠ ";font-weight:900}

/* Toast 成功态 - 绿色 */
.toast--success{
  background:linear-gradient(135deg,#15803d 0%,#16a34a 100%) !important;
  border-color:rgba(255,255,255,.18) !important;
  box-shadow:0 20px 40px rgba(22,163,74,.45) !important;
}

/* ========= 全局提示弹窗(优雅版 alert)========= */
.alertbox{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.alertbox[hidden]{display:none}
.alertbox__mask{
  position:absolute;inset:0;
  background:rgba(15,12,40,.6);backdrop-filter:blur(4px);
}
.alertbox__panel{
  position:relative;background:#fff;border-radius:20px;
  width:100%;max-width:340px;padding:26px 22px 22px;
  box-shadow:0 30px 60px rgba(15,12,40,.4);
  text-align:center;
  animation:alertIn .28s cubic-bezier(.16,1,.3,1);
}
@keyframes alertIn{
  from{transform:scale(.82);opacity:0}
  to{transform:scale(1);opacity:1}
}
.alertbox__icon{
  width:60px;height:60px;border-radius:50%;
  display:grid;place-items:center;
  font-size:28px;font-weight:900;color:#fff;line-height:1;
  margin:0 auto 16px;
}
.alertbox[data-level=error] .alertbox__icon{
  background:linear-gradient(135deg,#dc2626,#b91c1c);
  box-shadow:0 10px 24px rgba(185,28,28,.4);
}
.alertbox[data-level=success] .alertbox__icon{
  background:linear-gradient(135deg,#16a34a,#15803d);
  box-shadow:0 10px 24px rgba(22,163,74,.4);
}
.alertbox[data-level=info] .alertbox__icon{
  background:linear-gradient(135deg,#3b82f6,#7c3aed);
  box-shadow:0 10px 24px rgba(76,29,149,.4);
}
.alertbox__title{
  font-size:17px;font-weight:800;color:#0b1020;
  margin-bottom:10px;letter-spacing:.5px;
}
.alertbox__msg{
  font-size:14px;color:#475569;line-height:1.65;
  margin-bottom:22px;word-break:break-word;padding:0 4px;
}
.alertbox__btn{
  width:100%;height:48px;border-radius:12px;border:0;cursor:pointer;
  background:linear-gradient(135deg,#2563eb 0%,#4f46e5 50%,#7c3aed 100%);
  color:#fff;font:inherit;font-size:15px;font-weight:800;letter-spacing:2px;
  box-shadow:0 10px 22px rgba(76,29,149,.35), inset 0 1px 0 rgba(255,255,255,.18);
  transition:.2s;
}
.alertbox__btn:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(76,29,149,.45)}
.alertbox__btn:active{transform:translateY(1px)}
