/* Locastro Lawn & Landscape - light motion layer.
   Hover polish everywhere; scroll reveals only when site-enhancements.js runs.
   Everything is switched off for visitors who prefer reduced motion. */

/* Services grid: keeps the last row's cards at normal width (stands in for the
   hidden duplicate card the grid used as a spacer). */
@media (min-width: 768px) {
  .elementor-element-cfa5fac::after { content: ""; visibility: hidden; width: 31%; flex: 1 0 auto; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-element-cfa5fac::after { width: 44%; }
}

/* Long email address wraps instead of running off narrow screens. */
.elementor-icon-box-title,
.elementor-icon-list-text {
  overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }

  /* Buttons: gentle lift */
  .elementor-button,
  .gform_button,
  .gform-button {
    transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
  }
  .elementor-button:hover,
  .elementor-button:focus-visible,
  .gform_button:hover,
  .gform-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -10px rgba(76, 110, 25, .6);
  }

  /* Service cards: lift + slow photo zoom (cards already clip their overflow) */
  .elementor-element-cfa5fac > .e-con {
    transition: transform .35s ease, box-shadow .35s ease;
  }
  .elementor-element-cfa5fac > .e-con:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 34px -18px rgba(30, 45, 15, .35);
  }
  .elementor-element-cfa5fac > .e-con .elementor-widget-image img {
    transition: transform .8s cubic-bezier(.2, .65, .3, 1);
  }
  .elementor-element-cfa5fac > .e-con:hover .elementor-widget-image img {
    transform: scale(1.05);
  }

  /* "How it works" steps */
  .process_ {
    transition: transform .35s ease, box-shadow .35s ease;
  }
  .process_:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 30px -18px rgba(30, 45, 15, .4);
  }

  /* Why-us icons, contact icons, area pins: small nudge */
  .elementor-icon,
  .elementor-icon-box-icon,
  .elementor-icon-list-icon {
    transition: transform .3s ease;
  }
  .elementor-widget-icon-box:hover .elementor-icon,
  .elementor-widget-icon-box:hover .elementor-icon-box-icon,
  .elementor-icon-list-item:hover .elementor-icon-list-icon {
    transform: translateY(-3px);
  }

  /* Portfolio / gallery photos */
  .elementor-element-1ad2d9 .elementor-widget-image img {
    transition: transform .4s ease, box-shadow .4s ease, filter .4s ease;
  }
  .elementor-element-1ad2d9 .elementor-widget-image img:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 32px -18px rgba(30, 45, 15, .45);
    filter: saturate(1.08);
  }

  /* FAQ rows */
  .e-n-accordion-item-title {
    transition: background-color .25s ease, color .25s ease;
  }

  /* Scroll reveal (classes are added by site-enhancements.js, below the fold only) */
  .lx-js .lx-reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .75s cubic-bezier(.2, .65, .3, 1), transform .75s cubic-bezier(.2, .65, .3, 1);
    transition-delay: var(--lx-delay, 0ms);
  }
  .lx-js .lx-reveal.lx-in {
    opacity: 1;
    transform: none;
  }
}

@media print {
  .lx-js .lx-reveal { opacity: 1 !important; transform: none !important; }
}
