/* ============================================================
   IMAGINARIUM — Cross-page polish (loaded on every page)
   Applies Chewy headings, rounded photos, hover lift, scroll-reveal
   to non-About-Us pages so the brand feels consistent.
   Scoped to .elementor (the page wrapper) so header/footer overrides
   in imaginarium-header.css remain authoritative.
   ============================================================ */

/* ── Headings: Chewy on top-level page headings ── */
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) h1.elementor-heading-title,
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) h2.elementor-heading-title,
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-heading-title h1,
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-heading-title h2 {
	font-family: 'Chewy', cursive !important;
	letter-spacing: 0.01em;
	line-height: 1.18;
}

.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) h3.elementor-heading-title,
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) h4.elementor-heading-title,
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-icon-box-title {
	font-family: 'Chewy', cursive !important;
	letter-spacing: 0.01em;
	line-height: 1.25;
}

/* Body paragraphs */
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) p {
	font-family: 'Happy Monkey', sans-serif;
	line-height: 1.72;
}

/* ── Rounded content photos (skip header/footer logos & icons) ── */
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-widget-image img {
	border-radius: 18px;
	transition: transform 350ms ease, box-shadow 350ms ease;
}
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-widget-image:hover img {
	transform: translateY(-3px);
	box-shadow: 0 14px 36px rgb(0 0 0 / 12%);
}
/* Don't round svg ornaments (balloons, paperplanes, icons) */
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-widget-image img[src$=".svg"] {
	border-radius: 0;
}
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-widget-image:hover img[src$=".svg"] {
	transform: none;
	box-shadow: none;
}

/* ── Icon boxes — soft cards with hover lift ── */
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-icon-box-wrapper {
	transition: transform 280ms cubic-bezier(.34, 1.56, .64, 1);
}
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-widget-icon-box:hover .elementor-icon-box-wrapper {
	transform: translateY(-3px);
}

/* ── CTA buttons — playful pill polish ── */
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-button {
	border-radius: 999px !important;
	transition:
		transform 220ms cubic-bezier(.34, 1.56, .64, 1),
		box-shadow 220ms ease,
		filter 220ms ease;
}
.elementor:not(.elementor-39):not(.elementor-64):not(.elementor-998):not(.elementor-28) .elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgb(255 159 62 / 28%);
	filter: brightness(1.04);
}

/* ── Form fields (assessment + contact) — friendlier inputs ── */
.elementor input[type="text"],
.elementor input[type="email"],
.elementor input[type="tel"],
.elementor input[type="number"],
.elementor input[type="date"],
.elementor textarea,
.elementor select {
	border-radius: 12px !important;
	border: 1.5px solid rgb(66 191 237 / 24%) !important;
	font-family: 'Happy Monkey', sans-serif !important;
	transition: border-color 200ms ease, box-shadow 200ms ease;
}
.elementor input[type="text"]:focus,
.elementor input[type="email"]:focus,
.elementor input[type="tel"]:focus,
.elementor input[type="number"]:focus,
.elementor input[type="date"]:focus,
.elementor textarea:focus,
.elementor select:focus {
	border-color: var(--figma-orange, #ff9f3e) !important;
	box-shadow: 0 0 0 4px rgb(255 159 62 / 16%) !important;
	outline: none !important;
}

/* ── Privacy/Terms long-form readability ── */
.elementor-3 .elementor-widget-text-editor,
.elementor-775 .elementor-widget-text-editor {
	max-width: 820px;
	margin-inline: auto;
}
.elementor-3 .elementor-widget-text-editor p,
.elementor-775 .elementor-widget-text-editor p {
	font-size: 16px;
	line-height: 1.75;
	color: #444;
}
.elementor-3 h2.elementor-heading-title,
.elementor-775 h2.elementor-heading-title {
	margin-top: 1.6em;
}

/* ── FAQ accordion-like icon boxes ── */
.elementor-85 .elementor-widget-icon-box .elementor-icon-box-wrapper {
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 6px 20px rgb(66 191 237 / 10%);
	padding: 22px 20px;
}
.elementor-85 .elementor-widget-icon-box:hover .elementor-icon-box-wrapper {
	box-shadow: 0 12px 32px rgb(66 191 237 / 18%);
}

/* ── Pricing cards visual polish ── */
.elementor-32 .e-con-inner > .elementor-widget-wrap,
.elementor-32 .elementor-pricing-table-wrap {
	border-radius: 22px;
	overflow: hidden;
}

/* ── Contact-us card polish ── */
.elementor-83 .elementor-widget-form .elementor-form-fields-wrapper {
	gap: 14px !important;
}

/* ── Generic scroll-reveal animation (opt-in via .ilc-reveal) ── */
@keyframes ilc-fade-up {
	from { opacity: 0; transform: translateY(28px); }
	to   { opacity: 1; transform: translateY(0); }
}
.ilc-reveal {
	animation: ilc-fade-up 600ms cubic-bezier(.25, .46, .45, .94) both;
}
.ilc-reveal-d1 { animation-delay:  60ms; }
.ilc-reveal-d2 { animation-delay: 140ms; }
.ilc-reveal-d3 { animation-delay: 220ms; }
.ilc-reveal-d4 { animation-delay: 300ms; }
.ilc-reveal-d5 { animation-delay: 380ms; }

@media (prefers-reduced-motion: reduce) {
	.ilc-reveal { animation: none; }
}
