/* Interaction feedback only; all resting layout and styling live in styles.css. */
@media screen and (prefers-reduced-motion: no-preference) {
  .button {
    transition: background-color 180ms ease, border-color 180ms ease,
      translate 180ms ease, transform 120ms ease;
  }
  .button .icon, .text-link .icon {
    transition: transform 180ms cubic-bezier(.2, .7, .3, 1);
  }
  .button:focus-visible { translate: 0 -2px; }
  .button:focus-visible .icon, .text-link:focus-visible .icon {
    transform: translate(2px, -2px);
  }

  .desktop-nav a, .footer-links a { position: relative; }
  .desktop-nav a::after, .footer-links a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 5px;
    height: 1px;
    background: currentColor;
    pointer-events: none;
    transform-origin: left center;
    scale: 0 1;
    transition: scale 180ms cubic-bezier(.2, .7, .3, 1);
  }
  .desktop-nav a:focus-visible::after, .footer-links a:focus-visible::after {
    scale: 1 1;
  }

  .price-card {
    --motion-card-shadow: 0 12px 28px -15px #234c8038;
    --motion-card-border: #b4cbea;
    transition: translate 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
  }
  .featured-plan {
    --motion-card-shadow: inset 0 3px var(--blue), 0 12px 28px -15px #234c8042;
    --motion-card-border: #729fed;
  }
  .price-card:focus-within {
    translate: 0 -3px;
    border-color: var(--motion-card-border);
    box-shadow: var(--motion-card-shadow);
  }

  .feature-icon .icon, .industry-item .icon, .coverage-option-icon .icon {
    transition: translate 180ms ease, scale 180ms ease;
  }
  .benefit:focus-within .feature-icon .icon, .industry-item:focus-within .icon {
    translate: 0 -2px;
    scale: 1.04;
  }
  .coverage-option {
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
  }
  .coverage-option-icon { transition: color 180ms ease; }
  .option-arrow { transition: opacity 180ms ease; }
  .coverage-option:focus-visible .coverage-option-icon .icon { translate: 0 -1px; }
  .industry-tabs button {
    transition: background-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
  }

  .video-play-circle { transition: box-shadow 220ms ease; }
  .video-cover-caption .icon { transition: translate 180ms ease; }
  .video-cover:focus-visible .video-play-circle { box-shadow: 0 0 0 9px #ffffff10; }
  .video-cover:focus-visible .video-play-circle .icon {
    animation: opencalls-play-feedback 380ms ease-out 1;
  }
  .video-cover:focus-visible .video-cover-caption .icon { translate: 2px -2px; }
  .video-cover[aria-busy="true"] { cursor: progress; }

  @keyframes opencalls-play-feedback {
    0%, 100% { scale: 1; }
    45% { scale: 1.12; }
  }

  @media (hover: hover) and (pointer: fine) {
    .button:hover { translate: 0 -2px; }
    .desktop-nav a:hover::after, .footer-links a:hover::after { scale: 1 1; }
    .price-card:hover {
      translate: 0 -3px;
      border-color: var(--motion-card-border);
      box-shadow: var(--motion-card-shadow);
    }
    .benefit:hover .feature-icon .icon, .industry-item:hover .icon {
      translate: 0 -2px;
      scale: 1.04;
    }
    .coverage-option:hover .coverage-option-icon .icon { translate: 0 -1px; }
    .video-cover:hover .video-play-circle .icon {
      animation: opencalls-play-feedback 380ms ease-out 1;
    }
    .video-cover:hover .video-cover-caption .icon { translate: 2px -2px; }
  }

  /* Keep the existing 1px press while releasing the added hover/focus lift. */
  .button:active { translate: 0 0; }

  @media (hover: none), (pointer: coarse), (pointer: none) {
    .button:hover:not(:focus-visible) .icon, .text-link:hover:not(:focus-visible) .icon {
      transform: none;
    }
    .video-cover:hover:not(:focus-visible) .video-play-circle {
      box-shadow: 0 8px 30px #02122633;
    }
  }
}

/* Limit resets to animated elements; preserve centering and open-state transforms. */
@media (prefers-reduced-motion: reduce), print {
  .button, .button .icon, .text-link .icon, .price-card,
  .feature-icon .icon, .industry-item .icon, .coverage-option,
  .coverage-option-icon, .coverage-option-icon .icon, .option-arrow,
  .industry-tabs button, .video-play-circle, .video-play-circle .icon,
  .video-cover-caption .icon {
    animation: none !important;
    transition: none !important;
    translate: none !important;
    scale: none !important;
  }
  .button:active, .button:hover .icon, .text-link:hover .icon {
    transform: none !important;
  }
}
