body { font-family: 'Inter', sans-serif; }
.nav-drawer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.nav-drawer.is-open { max-height: 560px; }
.faq-body { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .32s ease, opacity .22s ease; }
.faq-body.is-open { max-height: 260px; opacity: 1; }
.faq-item.is-open .faq-icon { transform: rotate(45deg); }
.faq-icon { transition: transform .22s ease; }
input[type="range"] { accent-color: #4f46e5; }
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type="number"] { -moz-appearance: textfield; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.hero-grid-bg {
	background-image: radial-gradient(circle at 1px 1px, rgba(99,102,241,0.12) 1px, transparent 0);
	background-size: 22px 22px;
}

/* FAQ accordion */
.faq-panel { max-height: 0; overflow: hidden; transition: max-height 0.28s ease; }
.faq-panel.open { max-height: 240px; }

/* Subtle entrance animation */
@keyframes fadeUp {
	from { opacity: 0; transform: translateY(16px); }
	to   { opacity: 1; transform: translateY(0); }
}
.hero-animate { animation: fadeUp 0.55s ease both; }
.hero-animate-2 { animation: fadeUp 0.55s 0.1s ease both; }
.hero-animate-3 { animation: fadeUp 0.55s 0.2s ease both; }
.hero-animate-4 { animation: fadeUp 0.55s 0.32s ease both; }