/* Galería animada del hero */
.va-hgal {
  --va-hgal-bg: #161616;
  position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
  --va-gap: 20px; height: min(88vh, 680px); overflow: hidden; border-radius: var(--va-radius-lg);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 14%, #000 86%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0, #000 14%, #000 86%, transparent 100%);
  contain: layout paint;
}
.va-hgal__col { overflow: hidden; }
.va-hgal__track { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--va-gap); will-change: transform; animation: va-hgal-up var(--va-dur-a, 30s) linear infinite; }
.va-hgal__col--b .va-hgal__track { animation-duration: var(--va-dur-b, 24s); }
.va-hgal--inv .va-hgal__col--b .va-hgal__track { animation-name: va-hgal-down; }
.va-hgal--pausa:hover .va-hgal__track { animation-play-state: paused; }
.va-hgal__card { aspect-ratio: 4 / 5; border-radius: var(--va-radius); overflow: hidden; background: var(--va-surface-2); }
.va-hgal__card img { width: 100%; height: 100%; object-fit: cover; display: block; }
@keyframes va-hgal-up { from { transform: translateY(0); } to { transform: translateY(calc(-50% - var(--va-gap) / 2)); } }
@keyframes va-hgal-down { from { transform: translateY(calc(-50% - var(--va-gap) / 2)); } to { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .va-hgal__track { animation: none; } }
@media (max-width: 767px) { .va-hgal { --va-gap: 12px; gap: 12px; height: min(70vh, 520px); } }
