/* Botón «Volver arriba» — verde de marca con anillo dorado de progreso */
#subir { position: fixed; right: clamp(14px, 2.4vw, 28px); bottom: clamp(14px, 2.4vw, 28px); z-index: 44; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; background: #003721; color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: 0 14px 30px -12px rgba(0,0,0,.55); opacity: 0; visibility: hidden; transform: translateY(16px) scale(.9); transition: opacity .3s, transform .35s cubic-bezier(.2,.7,.2,1), visibility 0s .3s, background .25s; }
#subir.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .3s, transform .35s cubic-bezier(.2,.7,.2,1), visibility 0s, background .25s; }
#subir:hover { background: #f7b100; color: #141414; transform: translateY(-3px); }
#subir:focus-visible { outline: 3px solid #f7b100; outline-offset: 3px; }
.subir__ring { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.subir__ring circle { fill: none; stroke-width: 2.5; }
.subir__ring circle:first-child { stroke: rgba(255,255,255,.22); }
.subir__bar { stroke: #f7b100; stroke-linecap: round; transition: stroke-dashoffset .15s linear; }
#subir:hover .subir__ring circle:first-child { stroke: rgba(20,20,20,.18); }
#subir:hover .subir__bar { stroke: #003721; }
.subir__arrow { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s; }
#subir:hover .subir__arrow { transform: translateY(-2px); }
/* en celular sube el botón para no tapar «Solicita asesoría» */
@media (max-width: 760px) { #subir { bottom: 78px; width: 46px; height: 46px; } }
@media print { #subir { display: none; } }
@media (prefers-reduced-motion: reduce) { #subir, #subir.is-on { transition: opacity .2s, visibility 0s; transform: none; } .subir__bar { transition: none; } }
