/* Efecto Wale · Motion system v7.3.0
   Progressive enhancement only: transform + opacity, no layout animation. */
:root{
  --ew-motion-fast:180ms;
  --ew-motion-base:420ms;
  --ew-motion-slow:620ms;
  --ew-motion-ease:cubic-bezier(.22,.61,.36,1);
}

.ew-motion-enter{
  animation:ew-enter var(--ew-motion-slow) var(--ew-motion-ease) both;
}
.ew-motion-enter--soft{
  animation:ew-enter-soft var(--ew-motion-base) var(--ew-motion-ease) both;
}

.ew-motion-ready .ew-reveal{
  opacity:0;
  transform:translate3d(0,14px,0);
  transition:
    opacity var(--ew-motion-base) var(--ew-motion-ease),
    transform var(--ew-motion-base) var(--ew-motion-ease);
  transition-delay:var(--ew-motion-delay,0ms);
}
.ew-motion-ready .ew-reveal.ew-in-view{
  opacity:1;
  transform:none;
}
.ew-motion-ready .ew-reveal--image{
  opacity:0;
  transform:scale(.985);
  transition:
    opacity var(--ew-motion-slow) var(--ew-motion-ease),
    transform var(--ew-motion-slow) var(--ew-motion-ease);
  transition-delay:var(--ew-motion-delay,0ms);
}
.ew-motion-ready .ew-reveal--image.ew-in-view{
  opacity:1;
  transform:scale(1);
}

.ew-live-change{
  animation:ew-live-change 360ms var(--ew-motion-ease);
}

/* Hover motion is deliberately restrained and only enabled on devices that hover. */
@media (hover:hover) and (pointer:fine){
  .home-decision,
  .home-trip-card,
  .content-card,
  .story-card,
  .related-card,
  .utility-strip__grid>a,
  .comparsa-panel-v493,
  .comparsa-index-card,
  .wale-now__signal{
    transition:
      transform var(--ew-motion-fast) var(--ew-motion-ease),
      box-shadow var(--ew-motion-fast) var(--ew-motion-ease),
      border-color var(--ew-motion-fast) var(--ew-motion-ease);
  }
  .home-decision:hover,
  .home-trip-card:hover,
  .content-card:hover,
  .story-card:hover,
  .related-card:hover,
  .utility-strip__grid>a:hover,
  .comparsa-index-card:hover,
  .wale-now__signal:hover{
    transform:translateY(-3px);
  }
  .home-decision--photo img,
  .content-card__media img,
  .story-card__media img,
  .comparsa-panel-v493>img,
  .home-cover__visual img{
    transition:transform 700ms var(--ew-motion-ease);
  }
  .home-decision--photo:hover img,
  .content-card:hover .content-card__media img,
  .story-card:hover .story-card__media img,
  .comparsa-panel-v493:hover>img{
    transform:scale(1.025);
  }
  .button,
  .tool-button,
  .text-link,
  .wale-now__text-link,
  .wale-now__event-link{
    transition:
      transform var(--ew-motion-fast) var(--ew-motion-ease),
      opacity var(--ew-motion-fast) ease,
      background-color var(--ew-motion-fast) ease,
      border-color var(--ew-motion-fast) ease;
  }
  .button:hover,
  .tool-button:hover{
    transform:translateY(-2px);
  }
}

/* Planificador: the result should feel assembled, not dropped onto the page. */
.tool-result.ew-result-ready{
  animation:ew-result-in 460ms var(--ew-motion-ease) both;
}
.tool-result.ew-result-ready .itinerary-item{
  animation:ew-itinerary-in 420ms var(--ew-motion-ease) both;
  animation-delay:calc(var(--ew-itinerary-index,0) * 70ms);
}

/* Carnaval gets one slightly more theatrical treatment without continuous motion. */
.carnival-comparsas-v47 .comparsa-panel-v493.ew-in-view{
  transform:none;
}
.comparsa-crest-v493 img{
  transform-origin:center;
}
.comparsa-panel-v493.ew-in-view .comparsa-crest-v493 img{
  animation:ew-crest-settle 520ms var(--ew-motion-ease) both;
  animation-delay:calc(var(--ew-motion-delay,0ms) + 90ms);
}

@keyframes ew-enter{
  from{opacity:0;transform:translate3d(0,12px,0)}
  to{opacity:1;transform:none}
}
@keyframes ew-enter-soft{
  from{opacity:0}
  to{opacity:1}
}
@keyframes ew-live-change{
  0%{transform:translateY(0);opacity:1}
  40%{transform:translateY(-2px);opacity:.72}
  100%{transform:translateY(0);opacity:1}
}
@keyframes ew-result-in{
  from{opacity:0;transform:translate3d(0,12px,0)}
  to{opacity:1;transform:none}
}
@keyframes ew-itinerary-in{
  from{opacity:0;transform:translate3d(0,10px,0)}
  to{opacity:1;transform:none}
}
@keyframes ew-crest-settle{
  from{opacity:.45;transform:scale(.9)}
  to{opacity:1;transform:scale(1)}
}

@media (prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto}
  .ew-motion-enter,
  .ew-motion-enter--soft,
  .ew-live-change,
  .tool-result.ew-result-ready,
  .tool-result.ew-result-ready .itinerary-item,
  .comparsa-panel-v493.ew-in-view .comparsa-crest-v493 img{
    animation:none;
  }
  .ew-motion-ready .ew-reveal,
  .ew-motion-ready .ew-reveal--image{
    opacity:1;
    transform:none;
    transition:none;
  }
  .home-decision,
  .home-trip-card,
  .content-card,
  .story-card,
  .related-card,
  .utility-strip__grid>a,
  .comparsa-panel-v493,
  .comparsa-index-card,
  .wale-now__signal,
  .button,
  .tool-button,
  img{
    transition:none;
  }
}
