/* ==========================================================================
   polish.css — subtle modern motion overlay for the abrnoc.com static clone.
   Injected by src/pages/index.astro into the embedded Gatsby HTML.
   Goal: Stripe/Linear-level restraint. No visual identity changes.
   All motion-bearing rules sit inside a (prefers-reduced-motion: no-preference)
   guard so a11y settings disable them entirely.
   ========================================================================== */

/* ---------- reduced-motion-safe baseline ---------- */
.reveal { opacity: 1; }

/* ========================================================================== */
@media (prefers-reduced-motion: no-preference) {

  /* smooth in-page anchor scrolling */
  html { scroll-behavior: smooth; }

  /* ---------- reveal-on-scroll utility ---------- */
  .reveal {
    opacity: 0;
    transform: translateY(20px);
    transition:
      opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
      transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
  }
  .reveal.in {
    opacity: 1;
    transform: translateY(0);
  }
  .reveal.delay-1 { transition-delay: 0.08s; }
  .reveal.delay-2 { transition-delay: 0.16s; }
  .reveal.delay-3 { transition-delay: 0.24s; }
  .reveal.delay-4 { transition-delay: 0.32s; }
  .reveal.delay-5 { transition-delay: 0.40s; }

  /* ---------- hover lift for card-shaped elements ---------- */
  /* services cards */
  .services__item {
    transition:
      transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }
  .services__item:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.10) !important;
  }

  /* gallery tiles */
  [class^="gallery__item--"],
  [class*=" gallery__item--"] {
    transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    overflow: hidden;
  }
  [class^="gallery__item--"]:hover,
  [class*=" gallery__item--"]:hover {
    transform: translateY(-4px);
  }
  .gallery__img {
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  }
  [class^="gallery__item--"]:hover .gallery__img,
  [class*=" gallery__item--"]:hover .gallery__img {
    transform: scale(1.04);
  }

  /* team cards (guess — see report) */
  .team-memeber__item,
  .team-members > * {
    transition:
      transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .team-memeber__item:hover,
  .team-members > *:hover {
    transform: translateY(-4px);
  }

  /* testimonial card */
  .testimonial-item {
    transition:
      transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .testimonial-item:hover {
    transform: translateY(-4px);
  }

  /* price cards (CSS-module hashed names, scoped via attribute prefix) */
  [class*="priceCard-module--price-card--"] {
    transition:
      transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1) !important;
  }
  [class*="priceCard-module--price-card--"]:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.10) !important;
  }

  /* join cards */
  .join__body-item {
    transition:
      transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .join__body-item:hover {
    transform: translateY(-4px);
  }

  /* ---------- hero illustration: gentle scale on first paint ---------- */
  .hero-img {
    transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1);
    transform-origin: center center;
  }
  .hero:hover .hero-img {
    transform: scale(1.015);
  }
  /* map illustration also gets a subtle lift on hover */
  .map-img {
    transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .map:hover .map-img {
    transform: scale(1.01);
  }

  /* ---------- button micro-interaction ---------- */
  .btn,
  a.btn,
  button.btn {
    transition:
      transform 0.25s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.25s cubic-bezier(0.22, 1, 0.36, 1),
      filter 0.25s ease !important;
    will-change: transform;
  }
  .btn:hover,
  a.btn:hover,
  button.btn:hover {
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12) !important;
    filter: brightness(1.04);
  }
  .btn:active,
  a.btn:active,
  button.btn:active {
    transform: translateY(0) scale(0.99);
    transition-duration: 0.08s !important;
  }

  /* social icons: tiny pop */
  .social-link,
  .footer-social-links a {
    transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
    display: inline-block;
  }
  .social-link:hover,
  .footer-social-links a:hover {
    transform: translateY(-2px) scale(1.08);
  }
}
