/* COPIA generada por opciones/armar-con-calcula.py desde calcula-impacto/shared/base.css (sin :root ni --a11y-fs): no editar aquí */
/* =====================================================================
   CALCULA TU IMPACTO: base común de las cinco versiones (29-oct)
   Tokens copiados de la portada en vivo (maqueta/v3/src/base.css): rojo marca,
   rojo accesible, noche y blanco; Duplet Rounded; las mismas curvas.
   Cada versión vive dentro de .cv-host, que es un contenedor de tamaño:
   el diseño responde a @container calc (...), nunca a la ventana, para que
   el visor pueda mostrarla en escritorio, tablet y celular.
   ===================================================================== */
.cv-host {
  container: calc / inline-size;
  position: relative;
  width: 100%;
  font-family: var(--tg-font);
  color: var(--tg-blanco);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.cv-host *,
.cv-host *::before,
.cv-host *::after { box-sizing: border-box; }
.cv-host :focus-visible { outline: 3px solid var(--tg-blanco); outline-offset: 3px; }
.cv-host img { display: block; max-width: 100%; }

.cv-sr {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.cv-icon { flex: none; display: inline-block; vertical-align: middle; }

/* ---------- Dona aquí (el mismo botón de la portada: cuerpo rojo y corazón en círculo blanco) ---------- */
.cv-donar {
  --cvd-alto: 56px;
  --cvd-txt: 20px;
  --cvd-circ: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: var(--cvd-alto);
  padding: 8px 22px 8px 10px;
  border-radius: 16px;
  background: var(--tg-rojo-a11y);
  color: var(--tg-blanco);
  font-family: var(--tg-font);
  font-weight: 800;
  font-size: calc(var(--cvd-txt) * var(--a11y-fs));
  line-height: 1;
  letter-spacing: -0.01em;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 10px 22px rgba(90, 5, 12, 0.45);
  transition: transform 180ms var(--tg-ease-llegada), box-shadow 180ms ease;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.cv-donar-circ {
  display: grid;
  place-items: center;
  width: calc(var(--cvd-circ) * var(--a11y-fs));
  height: calc(var(--cvd-circ) * var(--a11y-fs));
  border-radius: 50%;
  background: var(--tg-blanco);
  color: var(--tg-rojo-a11y);
  flex: none;
}
.cv-donar-circ .cv-icon { width: 55%; height: 55%; }
.cv-donar:hover { transform: translateY(-1px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 14px 26px rgba(90, 5, 12, 0.55); }
.cv-donar:active { transform: translateY(1px) scale(0.99); }
.cv-donar:focus-visible { outline: 3px solid var(--tg-blanco); outline-offset: 4px; }
.cv-donar--sobre-blanco:focus-visible { outline-color: var(--tg-noche); }
.cv-donar--bloque { display: flex; width: 100%; }

/* ---------- movimiento reducido: el visor marca data-quieto en .cv-host ---------- */
.cv-host[data-quieto] *,
.cv-host[data-quieto] *::before,
.cv-host[data-quieto] *::after {
  animation-duration: 0.001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.001ms !important;
  scroll-behavior: auto !important;
}
@media (prefers-reduced-motion: reduce) {
  .cv-host *,
  .cv-host *::before,
  .cv-host *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}
@media (forced-colors: active) {
  .cv-donar { border: 2px solid ButtonText; }
  .cv-donar-circ { forced-color-adjust: none; }
}
