/* LAWVIA — motion layer: page loader, hero entrance, counters, stagger,
   button shine and card lift. Everything here is disabled for visitors who
   ask for reduced motion (see the bottom of the file). */

/* ---------- Page loader ---------- */
.slh-loader {
	position: fixed; inset: 0; z-index: 9999;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.25rem;
	background: radial-gradient(circle at 50% 40%, var(--slh-navy) 0%, var(--slh-navy-dark) 55%, var(--slh-navy-darker) 100%);
	transition: opacity 0.6s ease, visibility 0.6s ease;
	/* Failsafe: fade out on its own even if the script never runs. */
	animation: slh-loader-failsafe 0.6s ease 4s forwards;
}
.slh-no-loader .slh-loader,
.slh-loaded .slh-loader { opacity: 0; visibility: hidden; pointer-events: none; }
.slh-no-loader .slh-loader { display: none; }

.slh-loader__emblem { position: relative; height: 7.5rem; width: 7.5rem; }
.slh-loader__emblem img {
	position: absolute; inset: 0.75rem; height: calc(100% - 1.5rem); width: calc(100% - 1.5rem);
	border-radius: 50%; background: #fff; object-fit: contain;
	box-shadow: 0 0 40px rgba(201, 160, 61, 0.35);
	animation: slh-loader-pop 0.7s cubic-bezier(.2,.9,.3,1.2) both, slh-loader-breathe 2.4s ease-in-out 0.7s infinite;
}
.slh-loader__ring {
	position: absolute; inset: 0; border-radius: 50%;
	border: 2px solid rgba(227, 192, 106, 0.15); border-top-color: var(--slh-teal); border-right-color: var(--slh-gold);
	animation: slh-spin 1.1s linear infinite;
}
.slh-loader__name {
	margin: 0; color: #fff; font-family: var(--slh-font-serif); font-size: 1.6rem; letter-spacing: 0.35em;
	padding-inline-start: 0.35em; /* balance the trailing letter-spacing */
	animation: slh-fade-up 0.6s ease 0.25s both;
}
.slh-loader__bar { position: relative; height: 2px; width: 9rem; background: rgba(255, 255, 255, 0.12); border-radius: 2px; overflow: hidden; }
.slh-loader__bar::after {
	content: ''; position: absolute; inset: 0; transform-origin: left;
	background: linear-gradient(to right, var(--slh-gold), var(--slh-teal));
	animation: slh-loader-fill 1.4s ease-in-out infinite;
}
[dir="rtl"] .slh-loader__bar::after { transform-origin: right; }

@keyframes slh-spin { to { transform: rotate(360deg); } }
@keyframes slh-loader-pop { from { opacity: 0; transform: scale(0.6); } to { opacity: 1; transform: scale(1); } }
@keyframes slh-loader-breathe { 0%, 100% { box-shadow: 0 0 30px rgba(201, 160, 61, 0.25); } 50% { box-shadow: 0 0 55px rgba(201, 160, 61, 0.55); } }
@keyframes slh-loader-fill { 0% { transform: scaleX(0); } 60% { transform: scaleX(1); } 100% { transform: scaleX(1); opacity: 0; } }
@keyframes slh-loader-failsafe { to { opacity: 0; visibility: hidden; pointer-events: none; } }

/* ---------- Hero entrance ---------- */
@keyframes slh-fade-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes slh-zoom-in { from { opacity: 0; transform: scale(0.85); } to { opacity: 1; transform: none; } }
@keyframes slh-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes slh-glow { 0%, 100% { opacity: 0.55; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } }

.slh-js .slh-hero__text > * { opacity: 0; }
.slh-js .slh-hero__media { opacity: 0; }
.slh-ready .slh-hero__text > * { animation: slh-fade-up 0.7s cubic-bezier(.2,.7,.2,1) both; }
.slh-ready .slh-hero__text > *:nth-child(1) { animation-delay: 0.05s; }
.slh-ready .slh-hero__text > *:nth-child(2) { animation-delay: 0.15s; }
.slh-ready .slh-hero__text > *:nth-child(3) { animation-delay: 0.27s; }
.slh-ready .slh-hero__text > *:nth-child(4) { animation-delay: 0.37s; }
.slh-ready .slh-hero__text > *:nth-child(5) { animation-delay: 0.47s; }
.slh-ready .slh-hero__text > *:nth-child(6) { animation-delay: 0.57s; }
.slh-ready .slh-hero__media { animation: slh-zoom-in 0.9s cubic-bezier(.2,.7,.2,1) 0.3s both; }
.slh-ready .slh-hero__badge-inner img { animation: slh-float 6s ease-in-out 1.2s infinite; }
.slh-hero__badge-inner::before { background: rgba(201, 160, 61, 0.28); }
.slh-ready .slh-hero__badge-inner::before { animation: slh-glow 5s ease-in-out infinite; }

/* ---------- Counters ---------- */
.slh-count { font-variant-numeric: tabular-nums; }

/* ---------- Scroll reveal + card lift ----------
   The reveal rule sets transform on visible cards, which used to cancel the
   hover lift; these selectors restore it and add the gold accent. */
.slh-reveal:is(.slh-card, .slh-why-card, .slh-value-card, .slh-svc-card, .slh-serve-card, .slh-philosophy-card, .slh-book-card) {
	transition: opacity 0.6s ease, transform 0.6s ease, box-shadow 0.3s ease, border-color 0.3s ease, background-color 0.3s ease;
}
.slh-reveal.is-settled { transition-delay: 0s !important; }
.slh-reveal.is-settled:is(.slh-card, .slh-why-card, .slh-value-card, .slh-svc-card, .slh-serve-card, .slh-philosophy-card, .slh-book-card) {
	transition-duration: 0.3s;
}
:is(.slh-card, .slh-why-card, .slh-value-card, .slh-svc-card, .slh-serve-card, .slh-philosophy-card, .slh-book-card, .slh-info-card):hover,
.slh-reveal.is-visible:is(.slh-card, .slh-why-card, .slh-value-card, .slh-svc-card, .slh-serve-card, .slh-philosophy-card, .slh-book-card):hover {
	transform: translateY(-6px);
	border-color: rgba(201, 160, 61, 0.55);
	box-shadow: 0 22px 40px -14px rgba(11, 44, 99, 0.28), 0 0 0 1px rgba(201, 160, 61, 0.25);
}

/* ---------- Button shine ---------- */
.slh-btn { position: relative; overflow: hidden; isolation: isolate; }
.slh-btn::after {
	content: ''; position: absolute; top: 0; bottom: 0; left: -75%; width: 50%; z-index: -1; pointer-events: none;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.35), transparent);
	transform: skewX(-20deg);
}
.slh-btn:hover::after { animation: slh-shine 0.75s ease; }
.slh-btn:hover { transform: translateY(-2px); }
.slh-btn:active { transform: translateY(0); }
@keyframes slh-shine { to { left: 125%; } }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	.slh-loader { display: none; }
	.slh-js .slh-hero__text > *, .slh-js .slh-hero__media { opacity: 1; }
	.slh-ready .slh-hero__text > *, .slh-ready .slh-hero__media,
	.slh-ready .slh-hero__badge-inner img, .slh-ready .slh-hero__badge-inner::before,
	.slh-btn:hover::after { animation: none; }
	.slh-btn:hover,
	:is(.slh-card, .slh-why-card, .slh-value-card, .slh-svc-card, .slh-serve-card, .slh-philosophy-card, .slh-book-card, .slh-info-card):hover,
	.slh-reveal.is-visible:is(.slh-card, .slh-why-card, .slh-value-card, .slh-svc-card, .slh-serve-card, .slh-philosophy-card, .slh-book-card):hover { transform: none; }
}
