/* ===== 医院智慧食堂整体框架 v2.1（复刻 oss.shopex.cn；组件选择器带 .fw-frame 前缀防重置覆盖） ===== */
.fw-frame *{box-sizing:border-box}
.fw-frame h2,.fw-frame h3,.fw-frame p,.fw-frame span,.fw-frame b,.fw-frame i,.fw-frame s,.fw-frame em{margin:0;padding:0}
.fw-frame h2,.fw-frame h3{font-weight:700}
.fw-frame b{font-weight:600}
.fw-frame i,.fw-frame em{font-style:normal}
.fw-frame s{text-decoration:none}
.fw-frame p{text-indent:0}
.fw-frame{max-width:1200px;margin:0 auto;padding:56px 20px 30px;position:relative}
.fw-frame .fwf-head{text-align:center;margin-bottom:38px}
.fw-frame .fwf-head h2{font-size:34px;color:#181d35;letter-spacing:1px;margin-bottom:10px}
.fw-frame .fwf-head h2 em{font-style:normal;background:linear-gradient(90deg,#8b5cf6,#3e7bf7);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.fw-frame .fwf-head p{font-size:15px;color:#8a92b8;letter-spacing:2px}
.fw-frame .fwf-stage{display:flex;align-items:stretch;gap:16px;position:relative;z-index:1}
.fw-frame .fwf-stage:before{content:'';position:absolute;left:6%;top:-30px;width:300px;height:300px;background:radial-gradient(circle,rgba(139,92,246,.13),transparent 65%);filter:blur(10px);z-index:-1}
.fw-frame .fwf-stage:after{content:'';position:absolute;right:5%;bottom:-40px;width:340px;height:300px;background:radial-gradient(circle,rgba(62,123,247,.12),transparent 65%);filter:blur(10px);z-index:-1}
/* ---- 左右白卡 ---- */
.fw-frame .fwf-card{flex:1 1 0;min-width:0;background:#fff;border:1px solid #ece9fb;border-radius:18px;box-shadow:0 20px 44px rgba(110,90,220,.09);padding:26px 24px 22px;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.fw-frame .fwf-card:hover{transform:translateY(-4px);box-shadow:0 28px 54px rgba(110,90,220,.15)}
.fw-frame .fwf-brow{display:flex;align-items:center;gap:10px}
.fw-frame .fwf-badge{padding:7px 16px;border-radius:999px;background:linear-gradient(90deg,#8b5cf6,#6366f1);color:#fff;font-size:14px;font-weight:600;box-shadow:0 6px 14px rgba(124,92,246,.32)}
.fw-frame .fwf-orb{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#c084fc,#818cf8);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;box-shadow:0 4px 10px rgba(150,100,250,.35);animation:fwfPulse 2.4s ease-in-out infinite}
.fw-frame .fwf-orb i{font-style:normal}
.fw-frame .fwf-ct{font-size:22px;color:#181d35;margin:18px 0 8px;line-height:1.35}
.fw-frame .fwf-en{font-size:11px;color:#a6abc9;letter-spacing:2.5px;text-transform:uppercase;margin:0 0 12px;line-height:1.5}
.fw-frame .fwf-li{display:flex;align-items:flex-start;gap:10px;padding:9px 0;transition:transform .25s}
.fw-frame .fwf-li:hover{transform:translateX(4px)}
.fw-frame .fwf-li + .fwf-li{border-top:1px dashed #f0edfb}
.fw-frame .fwf-ico{flex:0 0 18px;width:18px;height:18px;color:#7c5cfc;margin-top:1px}
.fw-frame .fwf-ico svg{width:100%;height:100%;display:block}
.fw-frame .fwf-li b{font-size:14px;color:#262c4e;display:block;line-height:1.5}
.fw-frame .fwf-li p{font-size:12.5px;color:#959cc0;margin-top:2px;line-height:1.5}
.fw-frame .fwf-tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.fw-frame .fwf-tag{padding:5px 12px;border-radius:999px;background:#fff;border:1px solid #dcd2f6;color:#7a5af5;font-size:12.5px;transition:all .25s;cursor:default}
.fw-frame .fwf-tag:hover{background:#f3effe;border-color:#c9b8f7;transform:translateY(-2px)}
.fw-frame .fwf-foot{margin-top:auto;padding-top:14px;border-top:1px solid #f1eefb;font-size:12.5px;color:#9aa1c2;display:flex;align-items:center;gap:6px;line-height:1.6}
.fw-frame .fwf-foot svg{flex:0 0 14px;width:14px;height:14px;color:#b3a7e8}
/* ---- 连接线 ---- */
.fw-frame .fwf-link{flex:0 0 96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.fw-frame .fwf-lk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#8a8fb8;white-space:nowrap}
.fw-frame .fwf-lk svg{width:13px;height:13px;color:#a89ede}
.fw-frame .fwf-arrow{width:80px;height:26px;overflow:visible}
.fw-frame .fwf-arrow line{stroke:#8b5cf6;stroke-width:2.4;stroke-dasharray:7 6;animation:fwfDash 1.1s linear infinite}
.fw-frame .fwf-arrow circle{fill:#8b5cf6;animation:fwfPulse 1.1s ease-in-out infinite}
.fw-frame .fwf-arrow path{fill:#6366f1}
/* ---- 中间渐变主卡 ---- */
.fw-frame .fwf-hero{flex:1.7 1 0;min-width:0;position:relative;text-align:center;color:#fff;background:linear-gradient(135deg,#9d5cf5 0%,#5f6cf9 52%,#3d8bf8 100%);border-radius:22px;padding:30px 24px 24px;box-shadow:0 26px 56px rgba(100,80,240,.32);overflow:hidden;display:flex;flex-direction:column}
.fw-frame .fwf-hero:before{content:'';position:absolute;inset:-45%;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.16) 50%,transparent 58%);animation:fwfShine 5.5s linear infinite;pointer-events:none}
.fw-frame .fwf-hero:after{content:'';position:absolute;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.10);filter:blur(6px);top:-70px;right:-60px;pointer-events:none}
.fw-frame .fwf-pill{align-self:center;position:relative;display:inline-block;padding:6px 18px;border:1px solid rgba(255,255,255,.6);border-radius:999px;font-size:13.5px;letter-spacing:2px;background:rgba(255,255,255,.12)}
.fw-frame .fwf-title{position:relative;font-size:34px;margin:16px 0 10px;letter-spacing:2px;text-shadow:0 4px 16px rgba(30,30,110,.3);display:flex;align-items:center;justify-content:center;gap:10px}
.fw-frame .fwf-spark{font-style:normal;font-size:20px;opacity:.9}
.fw-frame .fwf-sub{position:relative;font-size:16px;font-weight:700;line-height:1.85;letter-spacing:1px}
.fw-frame .fwf-know{position:relative;font-size:13.5px;color:rgba(255,255,255,.85);margin:12px 0 0;padding-top:12px}
.fw-frame .fwf-know:before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:56px;height:1px;background:rgba(255,255,255,.35)}
.fw-frame .fwf-tiles{position:relative;display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 14px;justify-content:center}
.fw-frame .fwf-tile{flex:1 1 30%;min-width:0;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);border-radius:14px;padding:14px 6px;font-size:14px;font-weight:600;backdrop-filter:blur(4px);transition:all .3s;cursor:default;display:flex;flex-direction:column;align-items:center;gap:7px;line-height:1.4}
.fw-frame .fwf-tico{width:22px;height:22px;color:#fff;opacity:.95}
.fw-frame .fwf-tico svg{width:100%;height:100%;display:block}
.fw-frame .fwf-tile:hover{background:rgba(255,255,255,.32);transform:translateY(-6px);box-shadow:0 12px 22px rgba(20,30,100,.28)}
.fw-frame .fwf-cap{position:relative;font-size:12.5px;color:rgba(255,255,255,.8)}
/* ---- 桥接 ---- */
.fw-frame .fwf-bridge{display:flex;flex-direction:column;align-items:center;margin:4px 0 14px}
.fw-frame .fwf-vline{width:0;height:26px;border-left:2px dashed #c9bdf3}
.fw-frame .fwf-vdot{width:7px;height:7px;border-radius:50%;background:#8b5cf6;box-shadow:0 0 0 4px rgba(139,92,246,.15)}
.fw-frame .fwf-vpill{margin-top:10px;padding:7px 20px;border-radius:999px;background:#fff;border:1px solid #e8e2fa;color:#7a5af5;font-size:13px;font-weight:600;box-shadow:0 8px 20px rgba(120,90,220,.12)}
/* ---- 底部扩展架构条 ---- */
.fw-frame .fwf-strip{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:linear-gradient(90deg,#f1eefe,#f8f4ff);border:1px solid #e6e1fb;border-radius:16px;padding:16px 22px}
.fw-frame .fwf-sthead{display:flex;align-items:center;gap:12px}
.fw-frame .fwf-stico{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#f472b6,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;box-shadow:0 8px 18px rgba(150,90,220,.3)}
.fw-frame .fwf-stt b{display:block;font-size:17px;color:#1a2040}
.fw-frame .fwf-stt i{font-style:normal;font-size:12px;color:#9aa1c2;letter-spacing:1px}
.fw-frame .fwf-sttags{display:flex;flex-wrap:wrap;gap:10px;flex:1;justify-content:flex-end}
.fw-frame .fwf-stag{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:999px;background:#fff;border:1px solid #e2dcf9;color:#5a4f9e;font-size:13px;transition:all .25s;cursor:default}
.fw-frame .fwf-stag s{color:#b0a4e8;font-size:14px;transition:color .25s}
.fw-frame .fwf-stag:hover{background:linear-gradient(90deg,#8b5cf6,#6366f1);color:#fff;border-color:transparent;transform:translateY(-2px);box-shadow:0 8px 16px rgba(120,90,220,.25)}
.fw-frame .fwf-stag:hover s{color:rgba(255,255,255,.85)}
/* ---- 动效 ---- */
[data-fwf]{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.fw-frame .fwf-in{opacity:1;transform:none}
@keyframes fwfDash{to{stroke-dashoffset:-13}}
@keyframes fwfPulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes fwfShine{from{transform:translateX(-28%)}to{transform:translateX(28%)}}
/* ---- 移动端 ---- */
@media (max-width:1024px){
  .fw-frame{padding:34px 12px 16px}
  .fw-frame .fwf-head h2{font-size:25px}
  .fw-frame .fwf-head p{font-size:12.5px;letter-spacing:1px}
  .fw-frame .fwf-stage{flex-direction:column;gap:14px}
  .fw-frame .fwf-hero{order:-1;flex:0 0 auto;padding:24px 14px 20px}
  .fw-frame .fwf-title{font-size:26px}
  .fw-frame .fwf-sub{font-size:14.5px}
  .fw-frame .fwf-know{font-size:12.5px}
  .fw-frame .fwf-tiles{flex-wrap:wrap}
  .fw-frame .fwf-tile{flex:1 1 30%}
  .fw-frame .fwf-link{display:none}
  .fw-frame .fwf-bridge{display:none}
  .fw-frame .fwf-card{padding:20px 16px}
  .fw-frame .fwf-ct{font-size:19px}
  .fw-frame .fwf-strip{flex-direction:column;align-items:flex-start;padding:14px}
  .fw-frame .fwf-sttags{justify-content:flex-start}
  .fw-frame .fwf-stag{padding:7px 12px;font-size:12.5px}
}
