.contact-widget { position: fixed; z-index: 50; right: 22px; bottom: 22px; font-family: "Noto Sans SC", system-ui, sans-serif; }
.contact-trigger { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 15px; border: 1px solid rgb(54 143 75 / 35%); border-radius: 999px; background: #edf8ed; color: #1c6e37; box-shadow: 0 8px 24px rgb(20 63 31 / 16%); cursor: pointer; font: 700 13px/1 "Noto Sans SC", system-ui, sans-serif; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.contact-trigger:hover, .contact-widget[data-open="true"] .contact-trigger { background: #dff2e2; box-shadow: 0 10px 28px rgb(20 63 31 / 23%); transform: translateY(-2px); }
.contact-trigger-icon { font-size: 18px; line-height: 1; }
.contact-panel { position: absolute; right: 0; bottom: calc(100% + 12px); display: grid; grid-template-columns: repeat(2, 190px); gap: 12px; padding: 14px; border: 1px solid rgb(25 56 31 / 14%); border-radius: 16px; background: rgb(255 255 255 / 97%); box-shadow: 0 18px 48px rgb(17 42 23 / 20%); opacity: 0; pointer-events: none; transform: translateY(8px) scale(.98); transform-origin: bottom right; transition: opacity .18s ease, transform .18s ease, visibility .18s ease; visibility: hidden; }
.contact-widget:hover .contact-panel, .contact-widget[data-open="true"] .contact-panel { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); visibility: visible; }
.contact-card { display: grid; justify-items: center; gap: 8px; min-width: 0; color: #24352a; font-size: 12px; text-align: center; }
.contact-card img { display: block; width: 170px; height: 170px; border-radius: 9px; object-fit: contain; background: #fff; }
.contact-card strong { font-size: 13px; }
.contact-card small { color: #718077; line-height: 1.45; }
@media (max-width: 560px) {
  .contact-widget { right: 14px; bottom: 14px; }
  .contact-trigger { width: 46px; height: 46px; min-height: 46px; padding: 0; justify-content: center; }
  .contact-trigger-text { display: none; }
  .contact-panel { right: -2px; grid-template-columns: 1fr; width: min(276px, calc(100vw - 28px)); max-height: calc(100vh - 110px); overflow-y: auto; }
  .contact-card img { width: 220px; height: 220px; }
}
