/* Additions to the original compiled stylesheet (style.css).
   These replace the animations that were done by JavaScript (framer-motion) in the React build. */

/* ---------- scroll / load reveal animations ---------- */
[data-anim] {
  opacity: 0;
  transition-property: opacity, transform;
  transition-duration: .6s;
  transition-timing-function: ease-out;
}
[data-anim="up"]    { transform: translateY(28px); }
[data-anim="up-sm"] { transform: translateY(10px); }
[data-anim="up-md"] { transform: translateY(20px); }
[data-anim="left"]  { transform: translateX(-30px); }
[data-anim="left-sm"] { transform: translateX(-20px); }
[data-anim="right"] { transform: translateX(30px); }
[data-anim="scale"] { transform: scale(.95); }
[data-anim="badge"] { transform: scale(.6) rotate(-30deg); transition-duration: 1s; }
[data-anim].in-view { opacity: 1; transform: none; }
.no-js [data-anim] { opacity: 1; transform: none; }

/* ---------- page loader ---------- */
.pi-loader {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg,#f0f9f0 0%,#e8f5e9 50%,#f7fdf4 100%);
  transition: opacity .45s ease, transform .45s ease;
}
.pi-loader.is-done { opacity: 0; transform: scale(1.05); pointer-events: none; }
.no-js .pi-loader { display: none; }
.pi-loader-ring { animation: pi-rotate 2s linear infinite; }
.pi-loader-logo { animation: pi-pulse 1.6s ease-in-out infinite; }
.pi-loader-dash { animation: pi-dash 1.8s ease-in-out infinite; }
.pi-loader-text { animation: pi-fade 1.4s ease-in-out infinite; }
@keyframes pi-rotate { to { transform: rotate(360deg); } }
@keyframes pi-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.08); } }
@keyframes pi-dash { from { stroke-dashoffset: 289; } to { stroke-dashoffset: 0; } }
@keyframes pi-fade { 0%,100% { opacity: .5; } 50% { opacity: 1; } }

/* ---------- testimonial carousel ---------- */
.pi-track { transition: transform .6s cubic-bezier(.25,.8,.25,1); will-change: transform; }

/* ---------- gallery lightbox ---------- */
.pi-lightbox { transition: opacity .2s ease; }
.pi-lightbox[hidden] { display: none !important; }
.pi-lightbox .pi-lightbox-inner { transition: transform .2s ease; }
.pi-filter-item { transition: opacity .3s ease, transform .3s ease; }
.pi-filter-item.is-hidden { display: none; }

/* ---------- dropdown ---------- */
.pi-dropdown[hidden] { display: none !important; }

/* ---------- form messages ---------- */
.pi-alert {
  border-radius: .75rem; padding: .85rem 1rem; font-size: .875rem; font-weight: 500;
  margin-bottom: 1.25rem; border: 1px solid;
}
.pi-alert-success { background: #e8f5e0; border-color: #c5dfc5; color: #1e3a2f; }
.pi-alert-error   { background: #fdecec; border-color: #f5c2c2; color: #8a1f1f; }
.pi-alert-dark    { background: rgba(106,176,76,.15); border-color: rgba(106,176,76,.35); color: #c8f5b8; margin: .75rem 0 0; }
.pi-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* content added from the admin panel may contain long words */
.pi-break { overflow-wrap: anywhere; }
