.source-contact-float{
  --source-contact-primary:#193A8C;
  --source-contact-primary-2:#2563eb;
  --source-contact-ring:rgba(37,99,235,.28);
  position:fixed;
  right:clamp(16px,2vw,28px);
  bottom:clamp(42px,7vh,72px);
  top:auto;
  transform:translate3d(18px,12px,0) scale(.96);
  z-index:68;
  display:grid;
  gap:8px;
  padding:8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.62);
  background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,255,255,.76));
  box-shadow:0 18px 46px rgba(15,23,42,.16),inset 0 1px 0 rgba(255,255,255,.70);
  backdrop-filter:blur(18px) saturate(1.18);
  -webkit-backdrop-filter:blur(18px) saturate(1.18);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .24s ease,visibility .24s ease,transform .24s ease;
}
body.jp-asahi .source-contact-float{
  --source-contact-primary:#D65F19;
  --source-contact-primary-2:#F28A2E;
  --source-contact-ring:rgba(242,138,46,.30);
}
body[data-page="products"] .source-contact-float{
  --source-contact-primary:#B91C2B;
  --source-contact-primary-2:#E11D48;
  --source-contact-ring:rgba(225,29,72,.30);
}
.source-contact-float.is-visible,
.source-contact-float:focus-within{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate3d(0,0,0) scale(1);
}
.source-contact-rail{display:contents}
.source-contact-item{
  position:relative;
  display:flex;
  justify-content:center;
}
.source-contact-button{
  appearance:none;
  border:1px solid rgba(148,163,184,.24);
  width:46px;
  height:46px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.92);
  color:#334155;
  cursor:pointer;
  text-decoration:none;
  box-shadow:0 8px 22px rgba(15,23,42,.09);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease;
}
.source-contact-button:hover,
.source-contact-button:focus-visible{
  transform:translateY(-2px);
  border-color:var(--source-contact-ring);
  background:#fff;
  color:var(--source-contact-primary);
  box-shadow:0 14px 28px rgba(25,58,140,.17);
}
.source-contact-button svg{
  width:22px;
  height:22px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.source-contact-button-primary{
  border-color:var(--source-contact-ring);
  background:linear-gradient(135deg,var(--source-contact-primary),var(--source-contact-primary-2));
  color:#fff;
  box-shadow:0 14px 30px rgba(37,99,235,.28);
}
.source-contact-button-primary:hover,
.source-contact-button-primary:focus-visible{
  border-color:rgba(255,255,255,.78);
  background:linear-gradient(135deg,var(--source-contact-primary),var(--source-contact-primary-2));
  color:#fff;
  box-shadow:0 18px 34px rgba(37,99,235,.34);
}
.source-contact-button-primary span{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.source-contact-popover{
  position:absolute;
  right:calc(100% + 14px);
  top:50%;
  width:248px;
  padding:16px;
  box-sizing:border-box;
  border:1px solid rgba(226,232,240,.92);
  border-radius:16px;
  background:rgba(255,255,255,.98);
  color:#0f172a;
  box-shadow:0 22px 52px rgba(15,23,42,.18);
  opacity:0;
  transform:translate(10px,-50%) scale(.98);
  transform-origin:right center;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
}
.source-contact-popover::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(37,99,235,.08),rgba(255,255,255,0) 44%);
}
.source-contact-popover::after{
  content:'';
  position:absolute;
  right:-6px;
  top:50%;
  width:10px;
  height:10px;
  background:rgba(255,255,255,.98);
  border-top:1px solid rgba(226,232,240,.92);
  border-right:1px solid rgba(226,232,240,.92);
  transform:translateY(-50%) rotate(45deg);
}
.source-contact-item:hover .source-contact-popover,
.source-contact-item:focus-within .source-contact-popover{
  opacity:1;
  transform:translate(0,-50%) scale(1);
  pointer-events:auto;
}
.source-contact-popover strong,
.source-contact-popover span,
.source-contact-popover a,
.source-contact-popover img{
  position:relative;
  z-index:1;
}
.source-contact-popover strong{
  display:block;
  font-size:15px;
  line-height:1.35;
  color:#0f172a;
}
.source-contact-popover span{
  display:block;
  margin-top:8px;
  font-size:12px;
  line-height:1.55;
  color:#64748b;
}
.source-contact-popover-qr{text-align:center}
.source-contact-qr{
  display:block;
  width:176px;
  max-width:100%;
  height:176px;
  object-fit:contain;
  margin:14px auto 0;
  padding:8px;
  box-sizing:border-box;
  border-radius:14px;
  border:1px solid rgba(226,232,240,.92);
  background:#fff;
}
.source-contact-popover-phone{width:212px}
.source-contact-popover-phone a{
  display:flex;
  align-items:center;
  min-height:34px;
  padding:2px 0;
  color:var(--source-contact-primary);
  font-weight:900;
  text-decoration:none;
  letter-spacing:.01em;
}
.source-contact-popover-phone a:hover{text-decoration:underline}
body.modal-open .source-contact-float{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
@media (max-width:860px){
  .source-contact-float{
    right:12px;
    bottom:72px;
    gap:7px;
    padding:7px;
  }
  .source-contact-button{
    width:44px;
    height:44px;
  }
  .source-contact-button svg{
    width:21px;
    height:21px;
  }
  .source-contact-popover{
    right:calc(100% + 10px);
    top:auto;
    bottom:0;
    width:min(260px,calc(100vw - 92px));
    transform:translateX(10px) scale(.98);
    transform-origin:right bottom;
  }
  .source-contact-popover::after{
    top:auto;
    bottom:18px;
    transform:rotate(45deg);
  }
  .source-contact-item:hover .source-contact-popover,
  .source-contact-item:focus-within .source-contact-popover{
    transform:translateX(0) scale(1);
  }
  .source-contact-qr{
    width:168px;
    height:168px;
  }
}
@media print{
  .source-contact-float{display:none}
}
