/* 右侧快捷服务：紧凑常驻、悬停反馈、微信信息按需展开。 */
.floating-rail{
  position:fixed;
  z-index:90;
  right:18px;
  top:54%;
  width:68px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(18px,-50%);
  border:1px solid rgba(7,74,57,.12);
  border-radius:16px;
  background:rgba(255,255,255,.96);
  box-shadow:0 18px 50px rgba(4,47,37,.18);
  backdrop-filter:blur(14px);
  overflow:visible;
  transition:opacity .28s ease,visibility .28s ease,transform .28s ease;
}
.floating-rail.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(0,-50%);
}
.floating-rail-status{
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  border-radius:15px 15px 0 0;
  background:#16835a;
  color:#dff7ed;
  font-size:8px;
  white-space:nowrap;
}
.floating-rail-status i{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#46dc9c;
  box-shadow:0 0 0 4px rgba(70,220,156,.14);
  animation:floating-status 2s ease-in-out infinite;
}
.floating-item{
  position:relative;
  width:100%;
  height:68px;
  padding:8px 3px 7px;
  border:0;
  border-bottom:1px solid #e9efec;
  background:transparent;
  color:#31463f;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  font-size:9px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease,color .2s ease;
}
.floating-item svg{
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.floating-item:hover,.floating-item:focus-visible{
  z-index:2;
  outline:0;
  background:#eef9f4;
  color:#09845e;
}
.floating-item--consult{color:#087b59}
.floating-item--consult::after{
  content:"";
  position:absolute;
  right:10px;
  top:9px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#ff635b;
  box-shadow:0 0 0 3px rgba(255,99,91,.12);
}
.floating-item--top{
  height:62px;
  border:0;
  border-radius:0 0 15px 15px;
  background:linear-gradient(145deg,#0b8d65,#066b50);
  color:#fff;
}
.floating-item--top:hover,.floating-item--top:focus-visible{background:#16835a;color:#fff}
.floating-wechat-card{
  position:absolute;
  right:82px;
  top:50%;
  width:228px;
  padding:16px;
  border:1px solid rgba(7,74,57,.12);
  border-radius:14px;
  background:rgba(255,255,255,.98);
  color:#1e3e33;
  box-shadow:0 18px 55px rgba(4,47,37,.2);
  opacity:0;
  visibility:hidden;
  transform:translate(8px,-50%);
  transition:.2s ease;
  pointer-events:none;
}
.floating-wechat-card::after{
  content:"";
  position:absolute;
  right:-7px;
  top:50%;
  width:13px;
  height:13px;
  background:#fff;
  border-top:1px solid rgba(7,74,57,.12);
  border-right:1px solid rgba(7,74,57,.12);
  transform:translateY(-50%) rotate(45deg);
}
.floating-wechat-card small{display:block;margin-bottom:12px;font-size:10px;font-weight:800}
.floating-wechat-card>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.floating-wechat-card figure{margin:0;padding:6px;background:#f4f8f6;border-radius:8px}
.floating-wechat-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.floating-wechat-card figcaption{padding-top:5px;text-align:center;font-size:8px}
.floating-wechat-card b{display:block;margin-top:10px;color:#81958d;font-size:8px;font-weight:500}
.floating-item--wechat:hover .floating-wechat-card,
.floating-item--wechat:focus .floating-wechat-card,
.floating-item--wechat:focus-within .floating-wechat-card{
  opacity:1;
  visibility:visible;
  transform:translate(0,-50%);
}
@keyframes floating-status{50%{opacity:.45;transform:scale(.8)}}
@media(prefers-reduced-motion:reduce){.floating-rail{transition:none}.floating-rail-status i{animation:none}.floating-item,.floating-wechat-card{transition:none}}
@media(max-width:760px){
  .floating-rail{
    right:14px;
    top:auto;
    bottom:14px;
    width:58px;
    transform:none;
    border:0;
    background:transparent;
    box-shadow:none;
  }
  .floating-rail.is-visible{transform:none}
  .floating-rail-status,.floating-item:not(.floating-item--consult){display:none}
  .floating-item--consult{
    display:flex;
    width:58px;
    height:58px;
    border:2px solid rgba(255,255,255,.86);
    border-radius:50%;
    background:#087b59;
    color:#fff;
    box-shadow:0 12px 30px rgba(4,47,37,.26);
  }
  .floating-item--consult:hover{transform:none;background:#16835a;color:#fff}
  .floating-item--consult span{font-size:8px}
}
