/* ═══ Volver al inicio ═══════════════════════════════════════════════ */
.totop{position:fixed;right:clamp(1rem,2.5vw,1.75rem);bottom:clamp(1rem,2.5vw,1.75rem);z-index:60;width:48px;height:48px;padding:0;border:0;background:none;cursor:pointer;opacity:0;transform:translateY(14px) scale(.9);pointer-events:none;transition:opacity .28s ease,transform .34s cubic-bezier(.2,.9,.25,1)}
.totop.is-on{opacity:1;transform:none;pointer-events:auto}
.totop__ring{position:absolute;inset:0;width:48px;height:48px;transform:rotate(-90deg);overflow:visible}
.totop__track{fill:none;stroke:rgba(1,58,110,.14);stroke-width:2.5}
.totop__prog{fill:none;stroke:var(--c2,#f0a92a);stroke-width:2.5;stroke-linecap:round;transition:stroke-dashoffset .16s linear}
.totop__hex{position:absolute;inset:5px;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,#0b4c8c,#013a6e);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);box-shadow:0 6px 18px rgba(1,34,63,.3);transition:transform .3s cubic-bezier(.2,.9,.25,1),background .3s ease}
.totop:hover .totop__hex{transform:translateY(-2px);background:linear-gradient(140deg,#1466b3,#0b4c8c)}
.totop.is-press .totop__hex{transform:translateY(-5px) scale(.94)}
.totop__tip{position:absolute;right:calc(100% + .55rem);top:50%;transform:translateY(-50%) translateX(6px);font:700 .66rem/1 Dubai,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(1,34,63,.92);padding:.42rem .6rem;border-radius:5px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .24s ease}
.totop:hover .totop__tip{opacity:1;transform:translateY(-50%)}
.totop:focus-visible{outline:none}
.totop:focus-visible .totop__hex{box-shadow:0 0 0 3px rgba(85,187,235,.55),0 6px 18px rgba(1,34,63,.3)}
@media (max-width:640px){
  .totop{width:44px;height:44px;right:.85rem;bottom:.85rem}
  .totop__ring{width:44px;height:44px}
  .totop__tip{display:none}
}
@media (prefers-reduced-motion:reduce){
  .totop,.totop__hex,.totop__prog{transition:none}
}

/* ═══ Ritmo del cuerpo de texto en móvil ═════════════════════════════
   El interlineado heredado del escritorio (1,7–1,9) en una columna
   angosta separa tanto las líneas que el párrafo deja de leerse como
   bloque. A 640 px o menos se compacta a 1,5 y se equilibra el corte
   de línea para que no queden palabras huérfanas. */
@media (max-width:640px){
  .about-grid p,
  .purpose__title p,
  .manifesto__foot p,
  .manifesto-v2__grid p{
    font-size:.98rem !important;
    line-height:1.5 !important;
    text-wrap:pretty;
    letter-spacing:.002em;
  }
  .about-grid p + p,
  .manifesto__foot p + p{ margin-top:.85rem !important; }
  /* Titulares: menos aire, misma jerarquía */
  .about-grid h2,
  .purpose__title h2,
  .manifesto-v2__grid h2{ line-height:1.08 !important; }
}
