body { font-family: 'Inter', sans-serif; }
.nav-drawer { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.nav-drawer.open { max-height: 560px; }
.faq-body { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .4s ease, opacity .25s ease; }
.faq-body.is-open { max-height: 300px; 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; }
.faq-panel { max-height: 0; overflow: hidden; transition: max-height 0.28s ease; }
.faq-panel.is-open { max-height: 520px; }
.faq-button:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid rgba(79, 70, 229, .28); outline-offset: 3px; }
.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; }
.dashboard-grid-bg {
  background-image: radial-gradient(circle at 1px 1px, rgba(99,102,241,0.12) 1px, transparent 0);
  background-size: 20px 20px;
}

/* FAQ accordion */
.faq-panel {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition:
    height 0.4s ease,
    opacity 0.4s ease;
}

.faq-panel.is-open {
  opacity: 1;
}

[data-role="faq-icon"] {
  transition: transform 0.4s ease;
}

/* Tab Panel */
.tab-panel.is-active {
  display: block;
}
.tab-panel {
  display: none;
}

/* 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; }

.legal-content h2 { font-size: 1.125rem; line-height: 1.75rem; font-weight: 700; color: #0f172a; margin-top: 2rem; margin-bottom: .75rem; }
.legal-content h3 { font-size: 1rem; line-height: 1.5rem; font-weight: 700; color: #1e293b; margin-top: 1.5rem; margin-bottom: .5rem; }
.legal-content p { color: #475569; line-height: 1.8; margin-bottom: 1rem; }
.legal-content ul { list-style: disc; padding-left: 1.25rem; color: #475569; line-height: 1.8; margin: .75rem 0 1rem; }
.legal-content a { color: #4f46e5; font-weight: 600; }
.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; }