/* Widgets flotantes (WhatsApp/chat) y botones CTA */
  .fab { position:relative; display:flex; align-items:center; height:3.5rem; border-radius:9999px; cursor:pointer; box-shadow:0 12px 32px -8px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.08); transition:transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s; }
  .fab:hover { transform:translateY(-2px) scale(1.02); box-shadow:0 18px 40px -10px rgba(0,0,0,.8), 0 0 0 1px rgba(255,255,255,.14); }
  .fab:active { transform:scale(.97); }
  .fab-ic { display:grid; place-items:center; flex:none; width:3.5rem; height:3.5rem; }
  .fab-lb { max-width:0; overflow:hidden; white-space:nowrap; font-size:.875rem; font-weight:600; padding-right:0; transition:max-width .35s cubic-bezier(.2,.7,.2,1), padding .35s; }
  .fab:hover .fab-lb, .fab:focus-visible .fab-lb { max-width:7rem; padding-right:1.3rem; }
  .fab-wa { background:#25d366; color:#fff; }
  .fab-wa .fab-lb { color:#05310f; }
  .fab-wa::before { content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:0 0 0 0 rgba(37,211,102,.55); animation:fabring 2.8s ease-out infinite; pointer-events:none; }
  @keyframes fabring { 0% { box-shadow:0 0 0 0 rgba(37,211,102,.5); } 70%,100% { box-shadow:0 0 0 14px rgba(37,211,102,0); } }
  .fab-chat { background:#fff; color:#09090b; }
  .fab-chat[aria-expanded="true"] .ic-chat { display:none; }
  .fab-chat[aria-expanded="true"] .ic-x { display:block; }
  .fab-dot { position:absolute; top:.3rem; right:.3rem; width:.8rem; height:.8rem; border-radius:50%; background:#3b6cff; border:2px solid #fff; }
  .fab-dot.hidden { display:none; }
  @media (prefers-reduced-motion:reduce){ .fab-wa::before{ animation:none; } .fab,.fab-lb{ transition:none; } }
  .mgrid { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
  .mtile { display:flex; flex-direction:column; padding:.95rem; border-radius:1.1rem; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.03); transition:opacity .3s, transform .3s, background-color .2s, border-color .2s; }
  .mtile:hover, .mtile:active { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.16); }
  .mt-ic { display:grid; place-items:center; width:2.5rem; height:2.5rem; margin-bottom:.7rem; border-radius:.85rem; background:rgba(255,255,255,.06); color:#c4d4ff; transition:background-color .2s, color .2s; }
  .mt-ic svg { width:1.2rem; height:1.2rem; }
  .mt-t { font-size:.95rem; font-weight:600; color:#fff; }
  .mt-d { margin-top:.1rem; font-size:.75rem; color:#71717a; }
  .mtile[aria-current="true"] { background:rgba(59,108,255,.12); border-color:rgba(59,108,255,.5); }
  .mtile[aria-current="true"] .mt-ic { background:#3b6cff; color:#fff; }
  .mtile { position:relative; }
  .mt-go { position:absolute; top:.95rem; right:.95rem; width:1rem; height:1rem; color:#52525b; transition:color .2s, transform .2s; }
  .mtile:hover .mt-go, .mtile[aria-current="true"] .mt-go { color:#fff; transform:translate(1px,-1px); }
  .mt-ic svg, #tabs svg { display:block; flex:none; }
  .fab-lb { display:none; }
  .fab::after { content:attr(data-tip); position:absolute; right:0; bottom:calc(100% + .65rem); padding:.45rem .8rem; border-radius:.7rem; background:#fff; color:#09090b; font-size:.75rem; font-weight:600; white-space:nowrap; box-shadow:0 10px 28px -8px rgba(0,0,0,.6); opacity:0; transform:translateY(4px); pointer-events:none; transition:opacity .2s, transform .2s; }
  .fab:hover::after, .fab:focus-visible::after { opacity:1; transform:none; }
  .fab:hover { transform:translateY(-2px); }
  .btn-cta { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; height:2.5rem; padding:0 1.15rem; border-radius:9999px; font-size:.875rem; font-weight:600; line-height:1; white-space:nowrap; transition:background-color .2s, transform .2s; }
  .btn-cta svg { width:1.05rem; height:1.05rem; flex:none; display:block; }
  .btn-cta:active { transform:scale(.97); }
  .btn-cta-lg { height:3rem; border-radius:.9rem; font-size:.95rem; }
  :focus-visible { outline:2px solid #8b9cff; outline-offset:3px; border-radius:6px; }
  @media (prefers-reduced-motion:reduce){ .phone-float,.hero-in > *{animation:none;opacity:1;transform:none} .card{transition:none} html{scroll-behavior:auto} }
