/* Holy Contact Buttons 1.0.0 - GPLv2 or later */
.holy-contact-bar{--hcb-size:52px;--hcb-bottom:20px;--hcb-side:20px;position:fixed;z-index:99990;bottom:var(--hcb-bottom);display:flex;flex-direction:column-reverse;align-items:flex-end;gap:12px;margin:0;padding:0;pointer-events:none;font:600 14px/1.2 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:normal;text-transform:none}
.holy-contact-bar.hcb-right{right:var(--hcb-side)}
.holy-contact-bar.hcb-left{left:var(--hcb-side);align-items:flex-start}
.holy-contact-bar .hcb-items{display:flex;flex-direction:column-reverse;align-items:inherit;gap:12px}
.holy-contact-bar .hcb-btn{position:relative;display:flex;align-items:center;gap:10px;margin:0;padding:0;border:0;color:#fff;text-decoration:none!important;box-shadow:none;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}
.holy-contact-bar.hcb-right .hcb-btn{flex-direction:row-reverse}
.holy-contact-bar .hcb-ico{position:relative;flex:none;display:flex;align-items:center;justify-content:center;width:var(--hcb-size);height:var(--hcb-size);border-radius:50%;background:var(--hcb-c);box-shadow:0 3px 10px rgba(0,0,0,.25);transition:transform .2s ease}
.holy-contact-bar .hcb-ico svg{display:block;width:56%;height:56%;fill:#fff;overflow:visible}
.holy-contact-bar .hcb-ico .hcb-a{fill:var(--hcb-c)}
.holy-contact-bar .hcb-ico .hcb-s{fill:none;stroke:var(--hcb-c)}
.holy-contact-bar .hcb-ico .hcb-w{fill:none;stroke:#fff}
.holy-contact-bar .hcb-ico img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.holy-contact-bar .hcb-btn:hover .hcb-ico{transform:scale(1.08)}
.holy-contact-bar .hcb-btn:focus{outline:none}
.holy-contact-bar .hcb-btn:focus-visible .hcb-ico,.holy-contact-bar .hcb-tg:focus-visible+.hcb-main .hcb-ico{outline:3px solid #111;outline-offset:3px}
.holy-contact-bar .hcb-txt{display:block;padding:8px 14px;border-radius:999px;background:var(--hcb-c);color:#fff;white-space:nowrap;box-shadow:0 3px 10px rgba(0,0,0,.2);transition:opacity .2s ease,transform .2s ease}

/* Chữ trên nút: hover = hiện khi rê chuột / focus; phone = nút gọi luôn hiện số, nút khác như hover; none = chỉ cho trình đọc màn hình */
.holy-contact-bar.hcb-lbl-hover .hcb-txt,.holy-contact-bar.hcb-lbl-phone .hcb-btn:not(.hcb-call) .hcb-txt{opacity:0;transform:translateX(8px);pointer-events:none}
.holy-contact-bar.hcb-left.hcb-lbl-hover .hcb-txt,.holy-contact-bar.hcb-left.hcb-lbl-phone .hcb-btn:not(.hcb-call) .hcb-txt{transform:translateX(-8px)}
.holy-contact-bar.hcb-lbl-hover .hcb-btn:hover .hcb-txt,.holy-contact-bar.hcb-lbl-hover .hcb-btn:focus-visible .hcb-txt,
.holy-contact-bar.hcb-lbl-phone .hcb-btn:hover .hcb-txt,.holy-contact-bar.hcb-lbl-phone .hcb-btn:focus-visible .hcb-txt{opacity:1;transform:none}
.holy-contact-bar.hcb-lbl-none .hcb-txt,.holy-contact-bar .hcb-tg{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0}

/* Gom nút: nút chính bấm để mở/đóng (ô tích ẩn). all = mọi thiết bị, mobile / desktop = chỉ trên thiết bị đó */
.holy-contact-bar .hcb-main{display:none}
.holy-contact-bar .hcb-i-open,.holy-contact-bar .hcb-tg:checked+.hcb-main .hcb-i-close{display:contents}
.holy-contact-bar .hcb-i-close,.holy-contact-bar .hcb-tg:checked+.hcb-main .hcb-i-open{display:none}
.holy-contact-bar .hcb-tg:checked+.hcb-main .hcb-ico,.holy-contact-bar .hcb-tg:checked+.hcb-main .hcb-ico::before,.holy-contact-bar .hcb-tg:checked+.hcb-main .hcb-ico svg{animation:none}
.holy-contact-bar.hcb-grp-all .hcb-main{display:flex}
.holy-contact-bar.hcb-grp-all .hcb-tg:not(:checked)~.hcb-items{display:none}
.holy-contact-bar .hcb-tg:checked~.hcb-items{animation:hcb-pop .2s ease-out}
@keyframes hcb-pop{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:none}}

/* Hiệu ứng từng nút: ring = rung chuông + sóng; zoom = phóng to thu nhỏ + sóng; wave = chỉ sóng; shake = lắc cả nút */
.holy-contact-bar .hcb-fx-ring .hcb-ico::before,.holy-contact-bar .hcb-fx-zoom .hcb-ico::before,.holy-contact-bar .hcb-fx-wave .hcb-ico::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:50%;background:var(--hcb-c);animation:hcb-wave 1.8s ease-out infinite}
.holy-contact-bar .hcb-fx-ring .hcb-ico svg,.holy-contact-bar .hcb-fx-ring .hcb-ico img{animation:hcb-ring 1.8s ease-in-out infinite}
.holy-contact-bar .hcb-fx-zoom .hcb-ico{animation:hcb-zoom 1.8s ease-in-out infinite}
.holy-contact-bar .hcb-fx-shake .hcb-ico{animation:hcb-shake 2.4s ease-in-out infinite}
@keyframes hcb-wave{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.75);opacity:0}}
@keyframes hcb-ring{0%,45%,100%{transform:rotate(0)}5%,15%,25%,35%{transform:rotate(-16deg)}10%,20%,30%,40%{transform:rotate(16deg)}}
@keyframes hcb-zoom{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
@keyframes hcb-shake{0%,30%,100%{transform:translateX(0)}5%,15%,25%{transform:translateX(-4px)}10%,20%{transform:translateX(4px)}}
@media (prefers-reduced-motion:reduce){.holy-contact-bar *,.holy-contact-bar ::before{animation:none!important;transition:none!important}}

/* Điện thoại < 768px */
@media (max-width:767px){
.holy-contact-bar .hcb-d-desktop{display:none}
.holy-contact-bar,.holy-contact-bar .hcb-items{gap:10px}
.holy-contact-bar.hcb-lbl-hover .hcb-txt,.holy-contact-bar.hcb-lbl-phone .hcb-btn:not(.hcb-call) .hcb-txt{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.holy-contact-bar .hcb-txt{padding:7px 12px;font-size:13px}
.holy-contact-bar.hcb-grp-mobile .hcb-main{display:flex}
.holy-contact-bar.hcb-grp-mobile .hcb-tg:not(:checked)~.hcb-items{display:none}

/* Thanh ngang dưới chân trang: luôn hiện đủ nút, không gom */
.holy-contact-bar.hcb-mbar{left:0;right:0;bottom:0;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));background:#fff;box-shadow:0 -2px 12px rgba(0,0,0,.14)}
.holy-contact-bar.hcb-mbar .hcb-main{display:none!important}
.holy-contact-bar.hcb-mbar .hcb-items{display:flex!important;flex:1;flex-direction:row;align-items:stretch;gap:0;overflow-x:auto;scrollbar-width:none;animation:none}
.holy-contact-bar.hcb-mbar .hcb-btn{flex:1 0 64px;min-width:64px;flex-direction:column;justify-content:center;gap:4px}
.holy-contact-bar.hcb-mbar .hcb-ico{width:36px;height:36px;box-shadow:none}
.holy-contact-bar.hcb-mbar:not(.hcb-lbl-none) .hcb-btn:not(.hcb-x) .hcb-txt{position:static;width:auto;height:auto;max-width:100%;margin:0;padding:0;overflow:hidden;clip:auto;text-overflow:ellipsis;background:none;box-shadow:none;color:#1f2328;font-size:11px;opacity:1;transform:none}
body.hcb-has-mbar{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
}
@media (min-width:768px){
.holy-contact-bar .hcb-d-mobile{display:none}
.holy-contact-bar.hcb-grp-desktop .hcb-main{display:flex}
.holy-contact-bar.hcb-grp-desktop .hcb-tg:not(:checked)~.hcb-items{display:none}
}
@media print{.holy-contact-bar{display:none!important}}
