/* Shared always-open contact rail. */
.contact-dock {
  --contact-dock-color:#2563eb;
  position:fixed;
  z-index:120;
  right:12px;
  bottom:20px;
  width:88px;
  font-family:InterVariable,Inter,"Microsoft YaHei",system-ui,sans-serif;
}

.contact-dock button,
.contact-dock a {
  font:inherit;
}

.contact-dock__menu {
  display:grid;
  width:100%;
  overflow:hidden;
  border:1px solid #d7e2f5;
  border-radius:15px;
  background:rgba(255,255,255,.96);
  box-shadow:0 16px 38px rgba(30,58,96,.18),inset 0 1px 0 rgba(255,255,255,.96);
  backdrop-filter:blur(16px);
}

.contact-dock__item {
  position:relative;
  display:flex;
  min-height:76px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:3px;
  width:100%;
  padding:8px 4px;
  border:0;
  color:var(--contact-dock-color);
  background:transparent;
  font-size:14px;
  font-weight:650;
  line-height:20px;
  text-align:center;
  white-space:nowrap;
  cursor:pointer;
  transition:color .2s ease,background .2s ease;
}

.contact-dock__item:not(:last-child)::after {
  content:"";
  position:absolute;
  right:12px;
  bottom:0;
  left:12px;
  height:1px;
  background:#cbd5e6;
}

.contact-dock__item:hover,
.contact-dock__item:focus-visible,
.contact-dock__item.is-active {
  color:var(--contact-dock-color);
  background:#eef4ff;
  outline:none;
}

.contact-dock__icon {
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  color:var(--contact-dock-color);
}

.contact-dock__icon svg {
  width:25px;
  height:25px;
  stroke-width:1.8;
}

.contact-dock__item:first-child .contact-dock__icon svg {
  width:27px;
  height:27px;
}

.contact-dock__qr {
  position:absolute;
  right:calc(100% + 12px);
  bottom:58px;
  width:176px;
  padding:12px;
  border:1px solid rgba(255,255,255,.94);
  border-radius:20px;
  color:var(--contact-dock-color);
  background:rgba(255,255,255,.97);
  box-shadow:0 24px 64px rgba(30,58,96,.24),inset 0 1px 0 #fff;
  text-align:center;
  backdrop-filter:blur(18px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateX(14px) scale(.96);
  transform-origin:right center;
  transition:opacity .22s ease,visibility .22s ease,transform .32s cubic-bezier(.2,.8,.2,1);
}

.contact-dock.is-qr-open .contact-dock__qr {
  opacity:1;
  visibility:visible;
  transform:translateX(0) scale(1);
}

.contact-dock__qr-title {
  display:block;
  margin-bottom:10px;
  color:var(--contact-dock-color);
  font-size:14px;
  font-weight:800;
  line-height:20px;
}

.contact-dock__qr img {
  width:136px;
  height:136px;
  margin:0 auto;
  border-radius:12px;
}

.contact-dock__qr small {
  display:block;
  margin-top:9px;
  color:var(--contact-dock-color);
  font-size:14px;
  line-height:20px;
}

@media (max-width:760px) {
  .contact-dock {
    right:8px;
    bottom:10px;
    width:84px;
  }

  .contact-dock__item {
    min-height:72px;
    padding:7px 3px;
  }

  .contact-dock__icon {
    width:28px;
    height:28px;
  }

  .contact-dock__icon svg {
    width:24px;
    height:24px;
  }
}

@media (max-width:520px) {
  .contact-dock__qr {
    position:fixed;
    right:8px;
    bottom:242px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .contact-dock *,
  .contact-dock *::before,
  .contact-dock *::after {
    transition:none !important;
  }
}
