/* MZA Motion — site-wide animation engine (pixel-matched to the mockup)
   No-JS safe (hidden states only apply under .mza-js, which JS adds)
   Reduced-motion safe (all states forced visible). */

:root{ --mza-ease: cubic-bezier(.19,1,.22,1); }

/* ---- scroll reveal: single element ---- */
.mza-js .mza-reveal{
	opacity:0; transform:translateY(30px);
	transition:opacity .9s var(--mza-ease), transform .9s var(--mza-ease);
	will-change:opacity,transform;
}
.mza-js .mza-reveal.mza-in{ opacity:1; transform:none; }

/* ---- scroll reveal: staggered children ---- */
.mza-js .mza-reveal-stagger > *{
	opacity:0; transform:translateY(26px);
	transition:opacity .8s var(--mza-ease), transform .8s var(--mza-ease);
	will-change:opacity,transform;
}
.mza-js .mza-reveal-stagger.mza-in > *{ opacity:1; transform:none; }

/* ---- hero headline: line-by-line mask reveal ---- */
.mza-hero-title .mza-line{ display:block; overflow:hidden; }
.mza-hero-title .mza-line > span{
	display:block; transform:translateY(110%);
	transition:transform 1.05s var(--mza-ease);
}
.mza-hero-title.mza-in .mza-line > span{ transform:none; }
/* stagger the lines */
.mza-hero-title.mza-in .mza-line:nth-child(2) > span{ transition-delay:.09s; }
.mza-hero-title.mza-in .mza-line:nth-child(3) > span{ transition-delay:.18s; }

/* ---- gold sheen sweep on the accent word ---- */
.mza-sheen{ position:relative; }
.mza-sheen::after{
	content:""; position:absolute; inset:0; pointer-events:none;
	background:linear-gradient(105deg,transparent 30%,rgba(255,244,220,.6) 48%,transparent 62%);
	background-size:220% 100%; background-position:180% 0;
	-webkit-background-clip:text; background-clip:text; color:transparent;
}
.mza-sheen.mza-shine::after{ animation:mza-sheen 3.2s ease-in-out; }
@keyframes mza-sheen{ to{ background-position:-80% 0; } }

/* ---- Services: row hover fill (parent-hover recolours INNER text) ---- */
.mza-svc-row{ position:relative; transition:background-color .5s var(--mza-ease), padding .5s var(--mza-ease); }
.mza-svc-row .mza-svc-name .elementor-heading-title,
.mza-svc-row .mza-svc-index .elementor-heading-title{ transition:color .4s var(--mza-ease); }
.mza-svc-row .mza-svc-arrow{ transition:background-color .45s var(--mza-ease), border-color .45s var(--mza-ease), transform .45s var(--mza-ease); }
.mza-svc-row .mza-svc-arrow .elementor-icon i,
.mza-svc-row .mza-svc-arrow .elementor-icon svg{ transition:color .45s var(--mza-ease); }

.mza-svc-row:hover{ background-color:rgba(198,155,87,0.07); padding-left:38px; padding-right:38px; }
.mza-svc-row:hover .mza-svc-name .elementor-heading-title{ color:#E2C793; }
.mza-svc-row:hover .mza-svc-index .elementor-heading-title{ color:#E2C793; }
.mza-svc-row:hover .mza-svc-arrow{ background-color:#C69B57; border-color:#C69B57; transform:rotate(-45deg); }
.mza-svc-row:hover .mza-svc-arrow .elementor-icon i,
.mza-svc-row:hover .mza-svc-arrow .elementor-icon svg{ color:#0F0B08; }

/* ---- reduced motion: everything visible, no movement ---- */
@media (prefers-reduced-motion:reduce){
	.mza-js .mza-reveal,
	.mza-js .mza-reveal-stagger > *,
	.mza-hero-title .mza-line > span{ opacity:1 !important; transform:none !important; }
	.mza-sheen.mza-shine::after{ animation:none !important; }
}
