/* Shared UX enhancements — neocal/dsolution theme */
::selection{background:#22c55e;color:#fff}

/* progress bar */
.progress-bar{position:fixed;top:0;left:0;height:3px;background:#22c55e;z-index:1000;width:0}

/* hamburger */
.hamburger-btn svg{width:20px;height:20px;display:block}
.hamburger-btn .hamburger-close{display:none}
.hamburger-btn[aria-expanded="true"] .hamburger-icon{display:none}
.hamburger-btn[aria-expanded="true"] .hamburger-close{display:block}

/* floating CTA */
.float-cta{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;padding:12px 20px;display:flex;align-items:center;justify-content:center;gap:14px;z-index:90;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0 -4px 20px rgba(0,0,0,.06);flex-wrap:wrap}
.float-cta.visible{transform:translateY(0)}
.float-cta .fcta-primary{display:inline-flex;align-items:center;gap:8px;background:#0a0a0a;color:#fff;padding:12px 24px;border-radius:9999px;text-decoration:none;font-weight:700;font-size:15px;white-space:nowrap}
.float-cta .fcta-primary:hover{background:#22c55e;color:#052e16}
@media (max-width:480px){.float-cta{padding:10px 14px;gap:10px}.float-cta .fcta-primary{padding:10px 18px;font-size:14px}}

/* back-to-top */
.back-to-top{position:fixed;bottom:88px;right:18px;width:44px;height:44px;border-radius:50%;background:#0a0a0a;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:80;opacity:0;transform:translateY(12px);transition:opacity .3s,transform .3s;pointer-events:none}
.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.back-to-top:hover{transform:translateY(-2px);background:#22c55e}
.back-to-top svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:2.5;stroke-linecap:round}

@media print{
  header,.float-cta,.back-to-top,.progress-bar,.hero-ctas,.navcta,.hcta,.btn,.cta-band{display:none !important}
}
