/* EL Cultivo premium interaction layer — safe add-on; does not alter content or backend. */
:root { --elc-ease: cubic-bezier(.2,.75,.25,1); }
html { scroll-behavior: smooth; }
body[data-page-bg] { -webkit-tap-highlight-color: transparent; }
body[data-page-bg] section { scroll-margin-top: 92px; }

/* Scroll reveals are enabled by JS only, so content remains visible if JS is unavailable. */
.elc-reveal-ready .elc-reveal {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition: opacity .72s var(--elc-ease), transform .72s var(--elc-ease);
  will-change: opacity, transform;
}
.elc-reveal-ready .elc-reveal.elc-visible { opacity: 1; transform: none; }
.elc-reveal-ready .elc-reveal.elc-delay-1 { transition-delay: .08s; }
.elc-reveal-ready .elc-reveal.elc-delay-2 { transition-delay: .16s; }
.elc-reveal-ready .elc-reveal.elc-delay-3 { transition-delay: .24s; }

/* Tactile, restrained card feedback for mouse, keyboard and touch. */
body[data-page-bg] .service-card,
body[data-page-bg] .dynamic-card,
body[data-page-bg] .gallery-card {
  transition: transform .32s var(--elc-ease), box-shadow .32s var(--elc-ease), border-color .32s ease;
  transform: translateZ(0);
}
body[data-page-bg] .service-card:hover,
body[data-page-bg] .service-card:focus-within,
body[data-page-bg] .dynamic-card:hover,
body[data-page-bg] .dynamic-card:focus-within,
body[data-page-bg] .gallery-card:hover,
body[data-page-bg] .gallery-card:focus-within {
  transform: translateY(-7px);
  box-shadow: 0 24px 55px rgba(0,0,0,.25);
  border-color: rgba(190,226,147,.8);
}
body[data-page-bg] .service-card .service-icon { transition: transform .35s var(--elc-ease), background .3s ease; }
body[data-page-bg] .service-card:hover .service-icon,
body[data-page-bg] .service-card:focus-within .service-icon { transform: rotate(-7deg) scale(1.08); background: #e1f1d2; }
body[data-page-bg] .dynamic-card img,
body[data-page-bg] .gallery-card img { transition: transform .65s var(--elc-ease); }
body[data-page-bg] .dynamic-card:hover img,
body[data-page-bg] .gallery-card:hover img { transform: scale(1.045); }
body[data-page-bg] a:focus-visible,
body[data-page-bg] button:focus-visible { outline: 3px solid #b9e47d; outline-offset: 4px; }

/* Small accessible back-to-top control. */
.elc-back-top {
  position: fixed; right: 24px; bottom: 94px; z-index: 1090;
  width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%;
  display: grid; place-items: center; color: #173f2d; background: rgba(250,253,247,.94);
  box-shadow: 0 10px 28px rgba(0,0,0,.2); font-size: 1.1rem; cursor: pointer;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease, background .25s ease;
  backdrop-filter: blur(12px);
}
.elc-back-top.elc-back-top-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.elc-back-top:hover { background: #dff0cf; }

@media (max-width: 700px) {
  body[data-page-bg] section { scroll-margin-top: 78px; }
  .elc-reveal-ready .elc-reveal { transform: translate3d(0, 14px, 0); transition-duration: .5s; }
  body[data-page-bg] .service-card:hover,
  body[data-page-bg] .dynamic-card:hover,
  body[data-page-bg] .gallery-card:hover { transform: none; }
  .elc-back-top { right: 16px; bottom: 84px; width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .elc-reveal-ready .elc-reveal,
  body[data-page-bg] .service-card,
  body[data-page-bg] .dynamic-card,
  body[data-page-bg] .gallery-card,
  body[data-page-bg] .dynamic-card img,
  body[data-page-bg] .gallery-card img { transition: none !important; transform: none !important; }
}
