:focus-visible{outline:3px solid #7c3aed;outline-offset:3px;border-radius:4px}button,input,select,textarea{font-family:inherit}main:focus{outline:none}.skip-link{position:absolute;left:12px;top:-60px;z-index:10002;background:#111827;color:#fff;padding:10px 16px;border-radius:8px;font-size:.85rem;font-weight:600;transition:top .2s}.skip-link:focus{top:12px}#top{position:absolute;top:0;left:0;width:1px;height:1px}.float-social{position:fixed;bottom:20px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:10px;align-items:center}.float-btn{position:relative;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px #00000038;transition:transform .2s,box-shadow .2s;cursor:pointer;border:none;text-decoration:none;color:#fff}.float-btn:hover{transform:scale(1.08) translateY(-2px);box-shadow:0 8px 28px #00000047}.float-btn svg{width:22px;height:22px;flex-shrink:0}.float-btn-wa{background:#25d366}.float-btn-chat{background:linear-gradient(135deg,#7c3aed,#ec4899 55%,#f97316)}.float-tooltip{position:absolute;right:60px;background:#111827;color:#fff;font-size:.68rem;font-weight:600;padding:5px 11px;border-radius:7px;white-space:nowrap;opacity:0;transform:translate(6px);transition:all .2s;pointer-events:none}.float-btn:hover .float-tooltip,.float-btn:focus-visible .float-tooltip{opacity:1;transform:none}.float-social.chat-open{z-index:9990}.float-social{transition:opacity .25s,transform .25s,visibility 0s}.float-social.float-hide:not(.chat-open){opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;transition:opacity .25s,transform .25s,visibility 0s .25s}@media(max-width:768px){.float-social{bottom:18px;right:16px}.float-btn{width:44px;height:44px}.float-btn svg{width:20px;height:20px}}@media(prefers-reduced-motion:reduce){.float-btn,.skip-link{transition:none}}.nx-progress{position:fixed;top:0;left:0;width:100%;height:3px;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,#7c3aed,#ec4899 55%,#f97316);z-index:10001;pointer-events:none;will-change:transform}.rv{opacity:0;transition:opacity .9s cubic-bezier(.16,1,.3,1) var(--rv-d,0s),transform .9s cubic-bezier(.16,1,.3,1) var(--rv-d,0s)}.rv-up{transform:translateY(34px)}.rv-left{transform:translate(-30px)}.rv-zoom{transform:scale(.9)}.rv-chip{transform:translateY(14px) scale(.97);transition-duration:.55s}.rv-fade{transform:none}.rv-line{opacity:1;transition:none}.rv.rv-in{opacity:1;transform:none}.nmw-how__steps.rv-line:before{transform:scaleX(0);transform-origin:left center}.nmw-how__steps.rv-line.rv-in:before{transform:scaleX(1);transition:transform 1.4s cubic-bezier(.16,1,.3,1) .25s}@keyframes rvRise{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.hero-left>*{animation:rvRise .9s cubic-bezier(.16,1,.3,1) both}.hero-left>*:nth-child(2){animation-delay:.08s}.hero-left>*:nth-child(3){animation-delay:.16s}.hero-left>*:nth-child(4){animation-delay:.24s}.hero-left>*:nth-child(5){animation-delay:.32s}.hero-left>*:nth-child(6){animation-delay:.4s}.hero-stats .stat-card{animation:rvRise .9s cubic-bezier(.16,1,.3,1) both}.hero-stats .stat-card:nth-child(1){animation-delay:.25s}.hero-stats .stat-card:nth-child(2){animation-delay:.35s}.hero-stats .stat-card:nth-child(3){animation-delay:.45s}.hero-stats .stat-card:nth-child(4){animation-delay:.55s}}

/* ---- UX audit fixes: touch targets + minimum readable text ---- */
.badge,.eyebrow,.card-tag,.slider-label,.gallery-eyebrow,.step-label,.float-tooltip{font-size:max(12px,.75rem)}
.topbar p,.topbar a{font-size:max(12px,.75rem)}
@media (max-width:900px),(pointer:coarse){
  footer:not(.site-footer) li>a,footer:not(.site-footer) .legal-links a,footer:not(.site-footer) .made a,footer:not(.site-footer) .contact-list a{display:inline-flex;align-items:center;min-height:44px}
  .card-btn,.d-gallery .card-btn{min-height:44px}
  .pill,.areas-pills a{display:inline-flex;align-items:center;min-height:44px}
  .logo{display:inline-flex;align-items:center;min-height:44px}
}
@media (max-width:900px),(pointer:coarse){
  .footer-links a{display:inline-flex;align-items:center;min-height:44px}
  .breadcrumb a,.service-card h3 a,main p a{display:inline-block;padding:12px 6px;margin:-12px -6px}
}
/* specificity fix: later page stylesheets override the rules above */
.badge,.eyebrow,.card-tag,.slider-label,.gallery-eyebrow,.step-label,.float-tooltip,.topbar p{font-size:12px!important}
@media (max-width:900px),(pointer:coarse){
  .pill,.areas-pills a.pill{display:inline-flex!important;align-items:center;min-height:44px}
}

.float-social.float-hide-footer:not(.chat-open){opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;transition:opacity .25s,transform .25s,visibility 0s .25s}
/* line icons replace emoji (consistent across devices) */.service-icon svg,.feature-icon svg,.w-icon svg{width:24px;height:24px;stroke:#7c3aed;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block}