/* Design layer shared by every Elementor template on the site.
   Classes are added in Elementor under Advanced > CSS Classes. */

/* Two-style headlines: wrap the accent words in <em> inside any heading with class lx-h */
.lx-h em,
.lx-h i {
	font-family: 'Playfair Display', Georgia, serif;
	font-style: italic;
	font-weight: 400;
	color: var(--plc-green);
	letter-spacing: -0.01em;
}
.lx-h.lx-light em,
.lx-h.lx-light i { color: #CFE6C4; }

/* Frosted glass panels (testimonial card on hero, chips on photos) */
.lx-glass {
	background-color: rgba(255, 255, 255, .78) !important;
	backdrop-filter: blur(16px) saturate(140%);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	border: 1px solid rgba(255, 255, 255, .7);
	box-shadow: 0 20px 50px rgba(20, 24, 20, .12);
}
.lx-glass-dark {
	background-color: rgba(16, 22, 17, .30) !important;
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	border: 1px solid rgba(255, 255, 255, .35);
}

/* Cards that lift on hover */
.lx-card {
	transition: transform .5s cubic-bezier(.2, .7, .2, 1), box-shadow .5s cubic-bezier(.2, .7, .2, 1);
}
.lx-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 30px 60px rgba(20, 24, 20, .12);
}

/* Photos that slowly zoom on hover */
.lx-zoom,
.lx-zoom .elementor-widget-container { overflow: hidden; border-radius: inherit; }
.lx-zoom img { transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.lx-zoom:hover img { transform: scale(1.06); }

/* Background-photo cards: zoom the photo, keep the content still */
.lx-bgzoom { position: relative; overflow: hidden; isolation: isolate; }
.lx-bgzoom::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: inherit;
	background-size: cover;
	background-position: center;
	transition: transform 1.4s cubic-bezier(.2, .7, .2, 1);
}
.lx-bgzoom:hover::after { transform: scale(1.07); }

/* Stats list rows */
.lx-stat { border-bottom: 1px solid var(--plc-line); }
.lx-stat:last-child { border-bottom: 0; }

/* Round arrow buttons */
.lx-round .elementor-button {
	width: 64px;
	height: 64px;
	padding: 0 !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50% !important;
	font-size: 22px !important;
	line-height: 1 !important;
}
.lx-round .elementor-button:hover { transform: rotate(-45deg); }
.lx-round .elementor-button { transition: transform .4s ease, background-color .3s ease; }

/* Pill buttons get a gentle lift */
.lx-pill .elementor-button { transition: transform .3s ease, background-color .3s ease, color .3s ease; }
.lx-pill .elementor-button:hover { transform: translateY(-2px); }

/* Step numbers */
.lx-step-number { font-variant-numeric: tabular-nums; }

/* FAQ accordion */
.lx-faq .elementor-accordion .elementor-accordion-item { border: 0; border-bottom: 1px solid var(--plc-line); }
.lx-faq .elementor-accordion .elementor-tab-title { padding: 24px 0; border: 0; }
.lx-faq .elementor-accordion .elementor-tab-content { padding: 0 0 24px; border: 0; max-width: 680px; }
.lx-faq .elementor-accordion .elementor-tab-title .elementor-accordion-icon { color: var(--plc-green); }

/* Header: pill-shaped menu */
.lx-nav .elementor-nav-menu--main .elementor-nav-menu { gap: 4px; }
.lx-nav .elementor-nav-menu--main .elementor-item { border-radius: 999px; }
.lx-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.lx-nav .elementor-nav-menu--main .elementor-item:hover { background: var(--plc-mint); }
.lx-header-sticky.elementor-sticky--effects { box-shadow: 0 10px 30px rgba(20, 24, 20, .08); }

/* Loop card: status chip sits on the photo */
.lx-loop-photo { border-radius: 20px; }

/* Avatar initials */
.lx-avatar { flex: 0 0 auto; }

/* Respect reduced-motion settings */
@media (prefers-reduced-motion: reduce) {
	.lx-card, .lx-zoom img, .lx-bgzoom::after, .lx-round .elementor-button, .lx-pill .elementor-button { transition: none !important; }
	.lx-card:hover, .lx-zoom:hover img, .lx-bgzoom:hover::after { transform: none !important; }
}

/* Entrance animations: Elementor's "Fade In Up", made softer (a short rise instead of a full-height slide) */
.elementor-element.animated.fadeInUp {
	animation-name: lxFadeUp !important;
	animation-duration: 1.1s !important;
	animation-timing-function: cubic-bezier(.16, 1, .3, 1) !important;
}
.elementor-element.animated.fadeIn {
	animation-duration: 1.4s !important;
	animation-timing-function: ease-out !important;
}
@keyframes lxFadeUp {
	from { opacity: 0; transform: translate3d(0, 32px, 0); }
	to { opacity: 1; transform: none; }
}
