/* ── Float contact widget ── */
#floatWidget { position:fixed; bottom:20px; right:0; z-index:998; display:flex; flex-direction:column; align-items:flex-end; gap:12px; padding-right:12px; }
@media (max-width: 768px) { #floatWidget { bottom: 16px; } }
.widget-btn { width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 18px rgba(0,0,0,.22); cursor:pointer; transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease; text-decoration:none; border:none; outline:none; }
.widget-btn:hover { transform:scale(1.18) translateY(-2px); box-shadow:0 10px 28px rgba(0,0,0,.3); }
.widget-btn-fb { background:linear-gradient(145deg,#1877f2,#0a58ca); }
.widget-btn-tele { background:linear-gradient(145deg,#27a7e7,#0f8dc4); }
.widget-btn-zalo { background:linear-gradient(145deg,#0068ff,#0051cc); }
.widget-btn-top { background:#fff; border:2px solid #fed7aa !important; }
@keyframes fbFloat { 0%,100%{transform:translateY(0) scale(1);} 50%{transform:translateY(-3px) scale(1.05);} }
.widget-btn-fb svg { animation:fbFloat 2s ease-in-out infinite; }
@keyframes teleShoot { 0%,100%{transform:rotate(0) translate(0,0);} 30%{transform:rotate(-15deg) translate(-2px,-2px);} 60%{transform:rotate(5deg) translate(1px,1px);} }
.widget-btn-tele svg { animation:teleShoot 2.2s ease-in-out infinite; }
@keyframes zaloPulse { 0%,100%{transform:scale(1);} 50%{transform:scale(1.12);} }
.widget-btn-zalo img { animation:zaloPulse 1.8s ease-in-out infinite; }
@keyframes arrowBounce { 0%,100%{transform:translateY(0);} 40%{transform:translateY(-5px);} 70%{transform:translateY(-2px);} }
.widget-btn-top svg { animation:arrowBounce 1.4s ease-in-out infinite; }
.widget-popup { display:flex; flex-direction:column; align-items:flex-end; gap:10px; pointer-events:none; }
.widget-popup.open { pointer-events:auto; }
.wb-item { display:flex; align-items:center; gap:10px; justify-content:flex-end; transition:opacity .3s ease,transform .4s cubic-bezier(.34,1.56,.64,1); opacity:0; transform:translateY(14px) scale(.7); pointer-events:none; }
.widget-popup.open .wb-item { opacity:1; transform:none; pointer-events:auto; }
.widget-popup.open .wb-item:nth-child(4){transition-delay:.04s;} .widget-popup.open .wb-item:nth-child(3){transition-delay:.09s;} .widget-popup.open .wb-item:nth-child(2){transition-delay:.14s;} .widget-popup.open .wb-item:nth-child(1){transition-delay:.19s;}
.wb-label { background:rgba(17,24,39,.85); backdrop-filter:blur(6px); color:#fff; font-size:12px; font-weight:800; font-family:'Nunito',sans-serif; padding:5px 12px; border-radius:20px; white-space:nowrap; pointer-events:none; box-shadow:0 2px 10px rgba(0,0,0,.2); }
.widget-main { width:58px; height:58px; border-radius:50%; background:linear-gradient(135deg,#f97316,#ef4444); display:flex; align-items:center; justify-content:center; cursor:pointer; border:none; outline:none; box-shadow:0 6px 24px rgba(249,115,22,.5); transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease; position:relative; overflow:hidden; animation:widgetPulse 2.5s ease-in-out infinite; }
.widget-main:hover { transform:scale(1.1); box-shadow:0 12px 32px rgba(249,115,22,.55); animation:none; }
@keyframes widgetPulse { 0%,100%{box-shadow:0 6px 24px rgba(249,115,22,.5),0 0 0 0 rgba(249,115,22,.3);} 50%{box-shadow:0 6px 24px rgba(249,115,22,.5),0 0 0 14px rgba(249,115,22,0);} }
.widget-icon-wrap { position:relative; width:30px; height:30px; }
.widget-icon-item { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; transition:opacity .4s ease,transform .4s cubic-bezier(.34,1.56,.64,1); opacity:0; transform:scale(.3) rotate(70deg); }
.widget-icon-item.active { opacity:1; transform:scale(1) rotate(0deg); }
.widget-icon-wrap.hide-icons .widget-icon-item { opacity:0 !important; transform:scale(.3) rotate(-70deg) !important; }
.widget-icon-close { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; transition:opacity .3s ease,transform .35s cubic-bezier(.34,1.56,.64,1); opacity:0; transform:rotate(-90deg) scale(.3); }
.widget-icon-close.show { opacity:1; transform:rotate(0deg) scale(1); }

/* ── Toast notification animation ── */
@keyframes toastIn { from { opacity:0; transform:translateY(-12px) scale(.95); } to { opacity:1; transform:none; } }
