/* ========================================================================
   ④ 主要特点
   Bento 卡片网格（6 列），每张卡片底部有一个小示意动画：
   声波条、聊天对话、时间滚轮、星星评分、真人认证。
   动画逻辑见 js/modules/feature-cards/。
   ======================================================================== */

/* ---- 区块标题 + 网格 + 卡片通用样式 ---- */
.feat-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:clamp(36px,5vw,56px)}
.feat-head>div{min-width:0}
.feat-head .body{max-width:24em}
.bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:14px;min-height:330px;padding:clamp(22px,2.4vw,32px);border-radius:26px;background:linear-gradient(165deg,var(--panel-2) 0%,var(--panel) 62%);border:1px solid var(--line);min-width:0}
.card .tag{font-size:13px;color:var(--mute);letter-spacing:.04em}
.card h3{margin:0;font-weight:300;font-size:clamp(26px,2.5vw,38px);line-height:1.16}
.card p{margin:0;color:var(--mute);font-size:15px;line-height:1.75;max-width:30em}
.card .vis{margin-top:auto;padding-top:10px}
.s4{grid-column:span 4}.s2{grid-column:span 2}

/* ---- 「探索 & 被聆听」大卡片 + 声波条 ---- */
.card.explore{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:28px;
  background:radial-gradient(70% 90% at 90% 110%,rgba(242,164,182,.3),transparent 62%),linear-gradient(165deg,#3a2860,#211738)}
.card.explore .txt{display:flex;flex-direction:column;gap:14px;align-self:start}
.card.explore .orb{width:96px;height:96px;right:26px;top:24px;animation:float 8s ease-in-out infinite}
.wave{display:flex;align-items:center;gap:4px;height:150px}
.wave i{flex:1;min-width:2px;height:calc(var(--h) * 100%);border-radius:3px;background:linear-gradient(180deg,var(--peach),var(--rose) 50%,var(--lilac));animation:wave 1.6s ease-in-out infinite;animation-delay:calc(var(--i) * -.07s)}
@keyframes wave{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}

/* ---- 「一对一聊天陪伴」：固定高度的对话窗，新消息从底部出现，旧消息往上推并渐隐 ---- */
.mini-chat{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;height:178px;overflow:hidden;font-size:14px;line-height:1.5;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 30%);mask-image:linear-gradient(180deg,transparent 0,#000 30%)}
.mini-chat>*{flex:none;opacity:0;transform:translateY(10px) scale(.96);transition:opacity .35s ease,transform .4s cubic-bezier(.2,.8,.2,1)}
.mini-chat>.me{transform-origin:right bottom}
.mini-chat>.them,.mini-chat>.typing{transform-origin:left bottom}
.mini-chat>.in{opacity:1;transform:none}

/* ---- 「轻松预订和付款」：时间滚轮（每行 38px，要和 booking-picker.js 的 ROW_HEIGHT 一致） ---- */
.picker{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);height:114px;overflow:hidden;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid var(--line)}
.pk-band{position:absolute;left:8px;right:8px;top:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.08);border:1px solid var(--line-2)}
.pk-col{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 30%,#000 70%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 30%,#000 70%,transparent 100%)}
.pk-col ul{list-style:none;margin:0;padding:38px 0;transition:transform .42s cubic-bezier(.3,.7,.2,1)}
.pk-col li{height:38px;display:grid;place-items:center;font-size:15px;color:var(--dim);font-variant-numeric:tabular-nums;transition:color .3s,transform .3s}
.pk-col li.on{color:var(--ink);transform:scale(1.12)}
.pk-day li{font-size:14px}
.pk-time ul{transform:translateY(-114px)}

/* ---- 已选时间 + 付款按钮（.press 按下、.done 已预约） ---- */
.payrow em{font-style:normal;color:var(--ink);font-variant-numeric:tabular-nums}
.payrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:8px 8px 8px 14px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line);font-size:13px;color:var(--mute)}
.payrow b{padding:7px 12px;border-radius:10px;background:var(--rose);color:var(--night);font-weight:500;white-space:nowrap;transition:background-color .3s,transform .15s}
.paybtn{min-width:6.6em;text-align:center}
.paybtn.press{transform:scale(.92)}
.paybtn.done{background:var(--sage)}

/* ---- 「评分 & 评价」：五颗星依次点亮 ---- */
.stars{display:flex;gap:8px}
.stars svg{width:32px;height:32px;fill:var(--rose);stroke:var(--rose);stroke-width:1.3;stroke-linejoin:round;animation:star 3.6s ease-in-out infinite;animation-delay:calc(var(--i) * .18s)}
@keyframes star{0%,6%{fill:transparent}20%,80%{fill:var(--rose)}94%,100%{fill:transparent}}

/* ---- 「真人确认」：三个验证项目，状态 pending → checking → done ---- */
.checks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.checks li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--line);font-size:14px;transition:background-color .4s,border-color .4s}
.ck{width:20px;height:20px;flex:none}
.ck svg{display:block;width:100%;height:100%;overflow:visible}
.ck .ring{fill:none;stroke:var(--line-2);stroke-width:2;transform-box:fill-box;transform-origin:center;transition:stroke .3s}
.ck .tick{fill:none;stroke:var(--sage);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:12;stroke-dashoffset:12;transition:stroke-dashoffset .45s ease .05s}
.ck-state{margin-left:auto;font-size:12px;color:var(--dim);white-space:nowrap;transition:color .3s}
.checks li.checking{border-color:rgba(169,198,180,.3)}
.checks li.checking .ring{stroke:var(--sage);stroke-dasharray:16 41;animation:spin .9s linear infinite}
.checks li.checking .ck-state{color:var(--mute)}
.checks li.done{background:rgba(169,198,180,.1);border-color:rgba(169,198,180,.38)}
.checks li.done .ring{stroke:var(--sage)}
.checks li.done .tick{stroke-dashoffset:0}
.checks li.done .ck-state{color:var(--sage)}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---- 「真人认证完成」徽章（.verify.all 时显示） ---- */
.card .v-done{display:inline-flex;align-items:center;gap:6px;margin:18px 0 0;padding:6px 12px 6px 8px;border-radius:999px;background:rgba(169,198,180,.14);color:var(--sage);font-size:13px;opacity:0;transform:translateY(6px);transition:opacity .45s,transform .45s}
.v-done svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.verify.all .v-done{opacity:1;transform:none}

/* ---- 响应式：平板 2 列 → 手机 1 列 ---- */
@media (max-width:1000px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.s4{grid-column:span 2}.s2{grid-column:span 1}}
@media (max-width:680px){.bento{grid-template-columns:1fr}.s2,.s4{grid-column:auto}.card.explore{grid-template-columns:1fr}.card{min-height:0}}
