.wsh-floating-contact {
    --wsh-float-clearance: 0px;
    position: fixed;
    z-index: 80;
    right: max(24px, env(safe-area-inset-right));
    bottom: max(24px, env(safe-area-inset-bottom), var(--wsh-float-clearance));
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-family: "IBM Plex Sans Thai", sans-serif;
}
.wsh-floating-contact .wsh-floating-contact__link {
    position: relative;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    width: 56px;
    height: 56px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 4px 14px rgb(0 0 0 / 16%);
    transition: transform 180ms ease, box-shadow 180ms ease;
    -webkit-tap-highlight-color: transparent;
}
.wsh-floating-contact__link--phone { background: #23433C; }
.wsh-floating-contact__link--line { background: #06C755; }
.wsh-floating-contact__link--messenger { background: #0084FF; }
.wsh-floating-contact__link svg { display: block; width: 28px; height: 28px; }
.wsh-floating-contact__label {
    position: absolute;
    right: calc(100% + 12px);
    top: 50%;
    padding: 8px 12px;
    border-radius: 6px;
    background: #23433C;
    color: #fff;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transform: translate(4px, -50%);
    transition: opacity 180ms ease, transform 180ms ease;
}
.wsh-floating-contact__link:focus-visible { outline: 3px solid #CAA768; outline-offset: 4px; }
.wsh-floating-contact__link:focus-visible .wsh-floating-contact__label { opacity: 1; transform: translate(0, -50%); }
@media (hover: hover) {
    .wsh-floating-contact__link:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgb(0 0 0 / 22%); }
    .wsh-floating-contact__link:hover .wsh-floating-contact__label { opacity: 1; transform: translate(0, -50%); }
}
.has-wsh-mobile-menu .wsh-floating-contact,
.wsh-floating-contact[data-consent-obstructed] { visibility: hidden; }
@media (max-width: 767px) {
    .wsh-floating-contact { right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom), var(--wsh-float-clearance)); gap: 10px; }
    .wsh-floating-contact .wsh-floating-contact__link { width: 48px; height: 48px; }
    .wsh-floating-contact__link svg { width: 25px; height: 25px; }
}
@media (prefers-reduced-motion: reduce) {
    .wsh-floating-contact__link, .wsh-floating-contact__label { transition: none !important; }
}
@media print { .wsh-floating-contact { display: none; } }
