/* Site-wide animation layer for IC Leads — adds only, overrides nothing */

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

  /* ====== Keyframes ====== */
  @keyframes fadeInUp {
    from { opacity: 0; transform: translateY(32px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  @keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-20px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  @keyframes scaleIn {
    from { opacity: 0; transform: scale(0.95); }
    to   { opacity: 1; transform: scale(1); }
  }
  @keyframes clipReveal {
    from { clip-path: inset(0 100% 0 0); }
    to   { clip-path: inset(0 0% 0 0); }
  }
  @keyframes ic-count-pulse {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.04); }
    100% { transform: scale(1); }
  }
  @keyframes ic-pulse-subtle {
    0%   { opacity: 1; }
    50%  { opacity: 0.6; }
    100% { opacity: 1; }
  }

  /* ====== Scroll-reveal base + variants ====== */
  .reveal {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
  .reveal-scale {
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .reveal-scale.is-visible {
    opacity: 1;
    transform: scale(1);
  }
  .reveal-from-left {
    opacity: 0;
    transform: translateX(-20px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .reveal-from-left.is-visible {
    opacity: 1;
    transform: translateX(0);
  }
  .reveal-from-right {
    opacity: 0;
    transform: translateX(20px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .reveal-from-right.is-visible {
    opacity: 1;
    transform: translateX(0);
  }

  /* ====== Stagger delay helpers ====== */
  .reveal-delay-1 { transition-delay: 100ms; }
  .reveal-delay-2 { transition-delay: 220ms; }
  .reveal-delay-3 { transition-delay: 340ms; }
  .reveal-delay-4 { transition-delay: 460ms; }
  .reveal-delay-5 { transition-delay: 580ms; }

  /* ====== Navbar transform on scroll ======
     Existing nav: background:rgba(246,242,234,.82); blur(18px) — keep palette,
     deepen on scroll and tighten padding. */
  nav.nav {
    transition: background 0.45s cubic-bezier(0.16, 1, 0.3, 1),
                backdrop-filter 0.45s cubic-bezier(0.16, 1, 0.3, 1),
                padding 0.45s cubic-bezier(0.16, 1, 0.3, 1),
                border-color 0.45s cubic-bezier(0.16, 1, 0.3, 1);
  }
  nav.nav.scrolled {
    background: rgba(246, 242, 234, 0.92);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 12px;
    padding-bottom: 12px;
  }

  /* ====== Hover: navigation link underline ====== */
  .links a {
    position: relative;
  }
  .links a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform 0.35s cubic-bezier(0.77, 0, 0.175, 1);
  }
  .links a:hover::after {
    transform: scaleX(1);
    transform-origin: left center;
  }

  /* ====== Hover: CTA buttons (lift + deeper shadow) ====== */
  .btn-main, .btn-ghost, .btn-dark, .btn-light, .nav-cta, .contact-submit {
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1),
                background 0.25s cubic-bezier(0.16, 1, 0.3, 1),
                border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1),
                color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .contact-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 50px rgba(29, 107, 70, 0.30);
  }

  /* Arrow glyph (set by JS as .ic-arrow) shifts right on parent hover */
  .ic-arrow {
    display: inline-block;
    transition: transform 0.25s ease;
  }
  a:hover .ic-arrow,
  button:hover .ic-arrow,
  .btn-main:hover .ic-arrow,
  .btn-ghost:hover .ic-arrow,
  .btn-dark:hover .ic-arrow,
  .btn-light:hover .ic-arrow,
  .nav-cta:hover .ic-arrow {
    transform: translateX(5px);
  }

  /* Sector / feature / who / related cards lift on hover */
  .who, .feature-main, .feature-card, .related-card {
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .who:hover, .feature-main:hover, .feature-card:hover, .related-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 30px 80px rgba(21, 21, 18, 0.10);
  }
  /* Image zoom inside cards (containers already overflow:hidden) */
  .who img, .feature-media img, .feature-card.top-image .card-image img {
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .who:hover img,
  .feature-main:hover .feature-media img,
  .feature-card.top-image:hover .card-image img {
    transform: scale(1.04);
  }

  /* Process step images zoom subtly on hover */
  .step img {
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .step:hover img {
    transform: scale(1.03);
  }

  /* Comparison table rows: highlight slides in from left on hover */
  .comp ul li {
    position: relative;
    isolation: isolate;
  }
  .comp ul li::before {
    content: "";
    position: absolute;
    inset: -4px -10px;
    background: currentColor;
    opacity: 0;
    border-radius: 8px;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s ease, opacity 0.3s ease;
    pointer-events: none;
    z-index: -1;
  }
  .comp ul li:hover::before {
    transform: scaleX(1);
    opacity: 0.04;
  }

  /* FAQ / objection items: left border slides down on hover */
  .objection {
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  .objection::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--green);
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform 0.3s ease;
    pointer-events: none;
  }
  .objection:hover::before {
    transform: scaleY(1);
  }

  /* Counter pulse and SEO urgency pulse */
  .ic-counter-pulse {
    animation: ic-count-pulse 0.3s ease-out;
    transform-origin: center;
    display: inline-block;
  }
  .ic-urgency-pulse {
    animation: ic-pulse-subtle 0.75s ease-in-out 2;
  }
}
