/* Movimiento breve para orientar la mirada sin retrasar el contenido. */
.hero-photo { animation: hero-photo-enter 1.4s ease-out both; }
.hero-content > .eyebrow,
.hero-content > h1,
.hero-content > p,
.hero-actions,
.hero-bottom { animation: hero-content-enter .7s ease-out both; }
.hero-content > h1 { animation-delay: 90ms; }
.hero-content > p { animation-delay: 170ms; }
.hero-actions { animation-delay: 250ms; }
.hero-bottom { animation-delay: 330ms; }
@keyframes hero-photo-enter { from { opacity: .72; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }
@keyframes hero-content-enter { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.will-reveal { opacity: 0; transform: translateY(20px); transition: opacity .55s ease-out, transform .55s ease-out; transition-delay: var(--reveal-delay, 0ms); }
.will-reveal.is-visible { opacity: 1; transform: translateY(0); }
.product-card.will-reveal.is-visible:hover { transform: translateY(-4px); }
.partner-logos img { transition: opacity .25s ease, filter .25s ease, transform .25s ease; }
.partner-logos img:hover { transform: translateY(-4px); }
.button > span,
.inline-link > span,
.company-more > span { transition: transform .2s ease; }
.button:hover > span,
.inline-link:hover > span,
.company-more:hover > span { transform: translate(3px, -2px); }
.contact form input[aria-invalid="true"],
.contact form textarea[aria-invalid="true"] { border-color: #bd3434; }
.contact form .field-error { display: none; color: #a72d2d; font-size: 11px; font-weight: 500; line-height: 1.35; }
.contact form .field-error:not(:empty) { display: block; }
.contact form label:has(.field-error:not(:empty)) { gap: 6px; }
@media (prefers-reduced-motion: reduce) {
  .hero-photo,
  .hero-content > .eyebrow,
  .hero-content > h1,
  .hero-content > p,
  .hero-actions,
  .hero-bottom { animation: none; }
  .will-reveal { opacity: 1; transform: none; transition: none; }
  .partner-logos img,
  .button > span,
  .inline-link > span,
  .company-more > span { transition: none; }
}
