#visa, .visa {
  --v-rojo: var(--rojo, #c8102e); --v-tinta: var(--tinta, #2a0a10);
  max-width: none; min-height: 0; margin: 0; padding: 96px 24px;
  color: var(--v-tinta); font-family: inherit;
}
#visa *, #visa *::before, #visa *::after { box-sizing: border-box; }
#visa :focus-visible { outline: 3px solid var(--v-rojo); outline-offset: 3px; }
.visa__fila {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center; gap: clamp(32px, 6vw, 80px);
  max-width: 1100px; margin: 0 auto;
}
.visa__titulo { font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.1; margin-bottom: 10px; color: var(--v-rojo); }
.visa__subtitulo { font-style: italic; font-weight: 600; font-size: clamp(1.1rem, 2vw, 1.35rem); color: var(--v-rojo); margin-bottom: 18px; }
.visa__parrafo { line-height: 1.75; font-size: 1.05rem; max-width: 52ch; margin-bottom: 24px; }
.visa__boton {
  display: inline-block; padding: 14px 32px; border-radius: 999px;
  background: var(--v-rojo); color: #fff; text-decoration: none; font-weight: 700;
  transition: background .25s, transform .2s;
}
.visa__boton:hover, .visa__boton:focus-visible { background: #111; color: #fff; }
.visa__boton:active { transform: scale(.97); }
.visa__tarjeta { background: #fff; border-radius: 28px; padding: clamp(22px, 3vw, 38px); box-shadow: 0 20px 48px rgba(155, 13, 35, .14); }
.visa__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.visa__punto { display: flex; align-items: flex-start; gap: 16px; line-height: 1.55; }
.visa__check {
  flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center; color: #fff;
  background: linear-gradient(135deg, #e63950, #c8102e);
  box-shadow: 0 6px 14px rgba(200, 16, 46, .3);
}
.visa__check svg { width: 18px; height: 18px; }
.visa__punto strong { display: block; margin-bottom: 2px; }
.visa__punto span { font-size: .95rem; opacity: .8; }
.visa__nota { margin-top: 22px; padding-top: 18px; border-top: 1px dashed rgba(200, 16, 46, .3); font-size: .88rem; opacity: .7; }
@media (max-width: 860px) {
  #visa, .visa { padding: 64px 16px; }
  .visa__fila { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .visa__boton { transition: none; } }