:root {
	--rf-pink: #ffd6e5;
	--rf-pink-deep: #ff9ec7;
	--rf-blue: #cfeaff;
	--rf-blue-deep: #7fc4ff;
	--rf-yellow: #fff2c2;
	--rf-yellow-deep: #ffd95e;
	--rf-mint: #d3f5e6;
	--rf-lavender: #e6ddff;
	--rf-ink: #3a3252;
	--rf-ink-soft: #6a6182;
	--rf-cream: #fffaf3;
	--rf-radius: 24px;
	--rf-shadow: 0 12px 30px rgba(80,60,120,.1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--rf-ink);
	background: var(--rf-cream);
	line-height: 1.6;
}
h1, h2, h3, h4 { font-family: "Baloo 2", "Nunito", sans-serif; font-weight: 800; margin: 0 0 .5em; line-height: 1.2; }
a { color: var(--rf-pink-deep); text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
.rf-container { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.rf-container-narrow { max-width: 760px; }

/* Header */
.rf-header { position: sticky; top: 0; z-index: 50; background: rgba(255,250,243,.9); backdrop-filter: blur(8px); border-bottom: 1px solid #ffe9f2; }
.rf-header-inner { max-width: 1180px; margin: 0 auto; padding: 14px 20px; display: flex; align-items: center; gap: 20px; }
.rf-logo { display: flex; align-items: center; gap: 8px; font-family: "Baloo 2", sans-serif; font-weight: 800; font-size: 20px; color: var(--rf-ink); }
.rf-logo-icon { font-size: 24px; }
.rf-nav { flex: 1; }
.rf-nav-list, .rf-footer-list { list-style: none; display: flex; gap: 24px; margin: 0; padding: 0; flex-wrap: wrap; }
.rf-nav-list a, .rf-footer-list a { color: var(--rf-ink-soft); font-weight: 700; font-size: 14.5px; }
.rf-nav-list a:hover { color: var(--rf-pink-deep); }
.rf-header-cta { white-space: nowrap; }

/* Buttons */
.rf-btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 26px; border-radius: 999px; font-weight: 800; font-size: 14.5px; transition: transform .15s ease, box-shadow .15s ease; }
.rf-btn:hover { transform: translateY(-2px); }
.rf-btn-primary { background: linear-gradient(135deg, var(--rf-pink-deep), #ff7fb0); color: #fff; box-shadow: 0 10px 22px rgba(255,158,199,.4); }
.rf-btn-primary:hover { color: #fff; }
.rf-btn-ghost { background: #fff; color: var(--rf-ink); border: 2px solid #ffe1ec; }
.rf-btn-ghost:hover { color: var(--rf-ink); border-color: var(--rf-pink-deep); }

/* Hero */
.rf-hero { position: relative; overflow: hidden; padding: 80px 20px 60px; text-align: center; background: radial-gradient(ellipse at top, #fff2f8 0%, var(--rf-cream) 60%); }
.rf-hero-inner { max-width: 720px; margin: 0 auto; position: relative; z-index: 2; }
.rf-eyebrow { display: inline-block; background: var(--rf-yellow); color: #8a6d00; font-weight: 800; font-size: 12.5px; padding: 6px 16px; border-radius: 999px; margin-bottom: 18px; }
.rf-hero h1 { font-size: clamp(32px, 5.5vw, 56px); margin-bottom: 16px; }
.rf-hero-sub { font-size: 18px; color: var(--rf-ink-soft); max-width: 560px; margin: 0 auto 30px; }
.rf-hero-ctas { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 30px; }
.rf-hero-badges { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; font-size: 13.5px; color: var(--rf-ink-soft); font-weight: 700; }
.rf-hero-art { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.rf-hero-art span { position: absolute; font-size: 32px; opacity: .8; animation: rf-bob 6s ease-in-out infinite; }
.rf-cloud-1 { top: 12%; left: 8%; animation-delay: 0s; }
.rf-cloud-2 { top: 18%; right: 10%; animation-delay: 1.5s; font-size: 26px; }
.rf-star-1 { top: 55%; left: 4%; animation-delay: .8s; font-size: 22px; }
.rf-star-2 { top: 62%; right: 6%; animation-delay: 2.2s; font-size: 22px; }
.rf-moon { top: 8%; right: 30%; animation-delay: 1s; font-size: 30px; }
@keyframes rf-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }

/* Section heads */
.rf-section-head { text-align: center; max-width: 620px; margin: 0 auto 40px; }
.rf-section-head h2 { font-size: clamp(26px, 4vw, 36px); }
.rf-section-head p { color: var(--rf-ink-soft); font-size: 16px; }

/* Features */
.rf-features { padding: 70px 20px; max-width: 1180px; margin: 0 auto; }
.rf-feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.rf-feature-card { background: #fff; border-radius: var(--rf-radius); padding: 26px; box-shadow: var(--rf-shadow); }
.rf-feature-icon { font-size: 34px; margin-bottom: 12px; }
.rf-feature-card h3 { font-size: 18px; margin-bottom: 8px; }
.rf-feature-card p { color: var(--rf-ink-soft); font-size: 14.5px; margin: 0; }

/* Demo */
.rf-demo { padding: 20px 20px 70px; max-width: 1180px; margin: 0 auto; }

/* Age groups */
.rf-ages { padding: 20px 20px 70px; max-width: 1180px; margin: 0 auto; }
.rf-age-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.rf-age-card { border-radius: var(--rf-radius); padding: 30px; text-align: center; box-shadow: var(--rf-shadow); }
.rf-age-emoji { font-size: 42px; display: block; margin-bottom: 10px; }
.rf-age-baby { background: linear-gradient(160deg, #ffeef5, #fff); }
.rf-age-toddler { background: linear-gradient(160deg, #e8f6ff, #fff); }
.rf-age-preschool { background: linear-gradient(160deg, #ecfff2, #fff); }
.rf-age-card p { color: var(--rf-ink-soft); font-size: 14px; margin: 0; }

/* Pricing */
.rf-pricing { padding: 20px 20px 80px; max-width: 1000px; margin: 0 auto; }
.rf-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 28px; }
.rf-price-card { position: relative; background: #fff; border-radius: var(--rf-radius); padding: 34px 30px; box-shadow: var(--rf-shadow); border: 2px solid transparent; }
.rf-price-featured { border-color: var(--rf-pink-deep); transform: scale(1.02); }
.rf-price-badge { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background: var(--rf-pink-deep); color: #fff; font-size: 12px; font-weight: 800; padding: 5px 14px; border-radius: 999px; }
.rf-price { font-size: 30px; font-weight: 800; margin: 6px 0 18px; }
.rf-price-card ul { list-style: none; padding: 0; margin: 0 0 24px; font-size: 14.5px; }
.rf-price-card li { margin-bottom: 10px; }

/* FAQ */
.rf-faq { padding: 20px 20px 90px; max-width: 760px; margin: 0 auto; }
.rf-faq-item { background: #fff; border-radius: 16px; padding: 16px 20px; margin-bottom: 12px; box-shadow: 0 4px 14px rgba(80,60,120,.06); }
.rf-faq-item summary { font-weight: 800; cursor: pointer; font-size: 15.5px; }
.rf-faq-item p { color: var(--rf-ink-soft); margin: 10px 0 0; font-size: 14.5px; }

/* Blog / page content */
.rf-content-page { padding: 60px 20px; }
.rf-post-card { background: #fff; border-radius: var(--rf-radius); padding: 26px; margin-bottom: 20px; box-shadow: var(--rf-shadow); }
.rf-post-meta { color: var(--rf-ink-soft); font-size: 13px; margin-bottom: 10px; }
.rf-page-title { font-size: 34px; margin-bottom: 16px; }
.rf-page-content { font-size: 16px; }
.rf-page-content img { border-radius: 16px; }

/* Footer */
.rf-footer { background: #2f2850; color: #efe9ff; padding: 50px 20px 20px; margin-top: 40px; }
.rf-footer-inner { max-width: 1180px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; padding-bottom: 30px; border-bottom: 1px solid rgba(255,255,255,.12); }
.rf-footer-brand { max-width: 320px; }
.rf-footer-brand .rf-logo-text { color: #fff; }
.rf-footer-brand p { color: #cfc4f0; font-size: 14px; }
.rf-footer-list a { color: #cfc4f0; }
.rf-footer-list a:hover { color: #fff; }
.rf-footer-bottom { max-width: 1180px; margin: 0 auto; padding-top: 20px; font-size: 13px; color: #a99bd6; }

@media (max-width: 720px) {
	.rf-header-inner { flex-wrap: wrap; }
	.rf-nav { order: 3; width: 100%; }
	.rf-nav-list { justify-content: center; }
}
