StepFun Step 5 Preview – Family and Parenting

via StepFun · Generated

  • AIMAC Debt 4.28
  • Cost $0.05
  • Total Violations 11
  • HTML Size 61 KB
  • Em Dashes 4

Screenshot

View StepFun Step 5 Preview Family and Parenting page View Live Page

Accessibility Issues Found

11 Serious

  • color-contrast serious 11 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <span class="eyebrow">Why Kindred Roots</span>

Artifacts

View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Kindred Roots | Parenting with Confidence, Growing with Joy</title>
    <meta name="description" content="Kindred Roots offers evidence-based parenting advice, family resources, childcare tips, and expert support to help your family thrive.">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600&family=Poppins:wght@500;600;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        :root {
            --primary: #0F766E;
            --primary-dark: #115E59;
            --primary-light: #CCFBF1;
            --accent: #EA580C;
            --accent-light: #FFEDD5;
            --bg-body: #FDFBF7;
            --bg-surface: #FFFFFF;
            --text-main: #1E293B;
            --text-muted: #64748B;
            --border: #E2E8F0;
            --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
            --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
            --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
            --radius: 12px;
            --font-heading: 'Poppins', sans-serif;
            --font-body: 'Open Sans', sans-serif;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: var(--font-body);
            background-color: var(--bg-body);
            color: var(--text-main);
            line-height: 1.7;
            -webkit-font-smoothing: antialiased;
        }

        h1, h2, h3, h4, h5, h6 {
            font-family: var(--font-heading);
            color: var(--text-main);
            line-height: 1.2;
        }

        a {
            text-decoration: none;
            color: inherit;
            transition: color 0.2s ease;
        }

        ul {
            list-style: none;
        }

        img {
            max-width: 100%;
            display: block;
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 24px;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            padding: 12px 28px;
            border-radius: 50px;
            font-family: var(--font-heading);
            font-weight: 600;
            font-size: 0.95rem;
            cursor: pointer;
            transition: all 0.3s ease;
            border: 2px solid transparent;
            text-align: center;
        }

        .btn-primary {
            background-color: var(--primary);
            color: #fff;
            box-shadow: var(--shadow-md);
        }

        .btn-primary:hover {
            background-color: var(--primary-dark);
            transform: translateY(-2px);
            box-shadow: var(--shadow-lg);
        }

        .btn-accent {
            background-color: var(--accent);
            color: #fff;
            box-shadow: var(--shadow-md);
        }

        .btn-accent:hover {
            background-color: #C2410C;
            transform: translateY(-2px);
            box-shadow: var(--shadow-lg);
        }

        .btn-outline {
            background-color: transparent;
            color: var(--primary);
            border-color: var(--primary);
        }

        .btn-outline:hover {
            background-color: var(--primary);
            color: #fff;
        }

        .section-header {
            text-align: center;
            max-width: 680px;
            margin: 0 auto 56px;
        }

        .section-header .eyebrow {
            display: inline-block;
            font-family: var(--font-heading);
            font-size: 0.85rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            color: var(--accent);
            margin-bottom: 12px;
        }

        .section-header h2 {
            font-size: 2.25rem;
            margin-bottom: 16px;
        }

        .section-header p {
            color: var(--text-muted);
            font-size: 1.05rem;
        }

        /* Header */
        .site-header {
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(10px);
            border-bottom: 1px solid var(--border);
            position: sticky;
            top: 0;
            z-index: 1000;
        }

        .top-bar {
            background-color: var(--primary-dark);
            color: #fff;
            font-size: 0.85rem;
            padding: 8px 0;
        }

        .top-bar-inner {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .top-bar a {
            color: #fff;
            opacity: 0.9;
        }

        .top-bar a:hover {
            opacity: 1;
            text-decoration: underline;
        }

        .top-bar-left, .top-bar-right {
            display: flex;
            gap: 20px;
            align-items: center;
        }

        .nav-wrap {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 16px 0;
        }

        .brand {
            display: flex;
            align-items: center;
            gap: 14px;
        }

        .brand img {
            height: 44px;
            width: auto;
            border-radius: 8px;
        }

        .brand-text h1 {
            font-size: 1.5rem;
            color: var(--primary-dark);
            line-height: 1.1;
        }

        .brand-text span {
            font-size: 0.75rem;
            color: var(--text-muted);
            font-family: var(--font-body);
            font-weight: 500;
            letter-spacing: 0.5px;
            display: block;
        }

        .main-nav ul {
            display: flex;
            gap: 32px;
            align-items: center;
        }

        .main-nav a {
            font-family: var(--font-heading);
            font-weight: 600;
            font-size: 0.95rem;
            color: var(--text-main);
            position: relative;
            padding: 4px 0;
        }

        .main-nav a::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 0;
            height: 2px;
            background-color: var(--primary);
            transition: width 0.3s ease;
        }

        .main-nav a:hover {
            color: var(--primary);
        }

        .main-nav a:hover::after {
            width: 100%;
        }

        .mobile-toggle {
            display: none;
            background: none;
            border: none;
            font-size: 1.5rem;
            color: var(--primary-dark);
            cursor: pointer;
        }

        /* Hero */
        .hero {
            padding: 80px 0 100px;
            background: linear-gradient(135deg, #F0FDFA 0%, #FFF7ED 100%);
            position: relative;
            overflow: hidden;
        }

        .hero-inner {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 60px;
            align-items: center;
        }

        .hero-content h2 {
            font-size: 3.25rem;
            margin-bottom: 24px;
            color: var(--primary-dark);
        }

        .hero-content h2 span {
            color: var(--accent);
        }

        .hero-content p {
            font-size: 1.125rem;
            color: var(--text-muted);
            margin-bottom: 20px;
            max-width: 540px;
        }

        .hero-actions {
            display: flex;
            gap: 16px;
            margin-top: 32px;
            flex-wrap: wrap;
        }

        .hero-image {
            position: relative;
        }

        .hero-image img {
            border-radius: 24px;
            box-shadow: var(--shadow-lg);
            width: 100%;
            height: 480px;
            object-fit: cover;
        }

        .hero-badge {
            position: absolute;
            bottom: -24px;
            left: -24px;
            background: #fff;
            padding: 16px 24px;
            border-radius: 16px;
            box-shadow: var(--shadow-lg);
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .hero-badge i {
            color: var(--accent);
            font-size: 1.5rem;
        }

        .hero-badge strong {
            display: block;
            font-family: var(--font-heading);
            font-size: 1.1rem;
            color: var(--text-main);
        }

        .hero-badge span {
            font-size: 0.85rem;
            color: var(--text-muted);
        }

        /* Features */
        .features {
            padding: 90px 0;
        }

        .features-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 32px;
        }

        .feature-card {
            background: var(--bg-surface);
            padding: 40px 32px;
            border-radius: var(--radius);
            border: 1px solid var(--border);
            transition: all 0.3s ease;
            text-align: center;
        }

        .feature-card:hover {
            transform: translateY(-6px);
            box-shadow: var(--shadow-lg);
            border-color: transparent;
        }

        .feature-icon {
            width: 64px;
            height: 64px;
            border-radius: 50%;
            background: var(--primary-light);
            color: var(--primary);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            margin-bottom: 24px;
        }

        .feature-card h3 {
            font-size: 1.25rem;
            margin-bottom: 12px;
        }

        .feature-card p {
            color: var(--text-muted);
            font-size: 0.95rem;
        }

        /* Split Sections */
        .split-section {
            padding: 90px 0;
        }

        .split-section.alt {
            background: #fff;
        }

        .split-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 64px;
            align-items: center;
        }

        .split-grid.reverse .split-media {
            order: -1;
        }

        .split-media img {
            border-radius: var(--radius);
            box-shadow: var(--shadow-lg);
            width: 100%;
            height: 420px;
            object-fit: cover;
        }

        .split-content h3 {
            font-size: 2rem;
            margin-bottom: 20px;
            color: var(--primary-dark);
        }

        .split-content p {
            color: var(--text-muted);
            margin-bottom: 18px;
            font-size: 1.02rem;
        }

        .split-content .btn {
            margin-top: 16px;
        }

        /* Milestone Tracker */
        .tracker {
            background: var(--primary-dark);
            padding: 90px 0;
            color: #fff;
        }

        .tracker .section-header h2,
        .tracker .section-header p {
            color: #fff;
        }

        .tracker .section-header .eyebrow {
            color: #5EEAD4;
        }

        .tracker-container {
            background: #fff;
            border-radius: 20px;
            padding: 40px;
            color: var(--text-main);
            box-shadow: var(--shadow-lg);
        }

        .tracker-tabs {
            display: flex;
            gap: 8px;
            border-bottom: 2px solid var(--border);
            margin-bottom: 32px;
            overflow-x: auto;
            padding-bottom: 4px;
        }

        .tracker-tab {
            padding: 12px 24px;
            border: none;
            background: none;
            font-family: var(--font-heading);
            font-weight: 600;
            color: var(--text-muted);
            cursor: pointer;
            border-bottom: 3px solid transparent;
            margin-bottom: -6px;
            white-space: nowrap;
            transition: all 0.2s;
            font-size: 0.95rem;
        }

        .tracker-tab:hover {
            color: var(--primary);
        }

        .tracker-tab.active {
            color: var(--primary);
            border-bottom-color: var(--primary);
        }

        .tracker-progress {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 28px;
            background: var(--bg-body);
            padding: 16px 24px;
            border-radius: 12px;
            flex-wrap: wrap;
            gap: 12px;
        }

        .tracker-progress-text {
            font-family: var(--font-heading);
            font-weight: 600;
            color: var(--primary-dark);
        }

        .progress-bar-bg {
            flex: 1;
            min-width: 200px;
            height: 10px;
            background: #E2E8F0;
            border-radius: 50px;
            overflow: hidden;
        }

        .progress-bar-fill {
            height: 100%;
            background: linear-gradient(90deg, var(--primary), #14B8A6);
            border-radius: 50px;
            width: 0%;
            transition: width 0.4s ease;
        }

        .milestone-list {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 16px;
        }

        .milestone-item {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 14px 18px;
            border: 1px solid var(--border);
            border-radius: 10px;
            cursor: pointer;
            transition: all 0.2s;
            user-select: none;
        }

        .milestone-item:hover {
            border-color: var(--primary);
            background: #F0FDFA;
        }

        .milestone-item.checked {
            background: #F0FDFA;
            border-color: var(--primary);
        }

        .milestone-item.checked .milestone-label {
            color: var(--primary-dark);
            font-weight: 600;
        }

        .milestone-check {
            width: 22px;
            height: 22px;
            border: 2px solid #CBD5E1;
            border-radius: 6px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            transition: all 0.2s;
        }

        .milestone-item.checked .milestone-check {
            background: var(--primary);
            border-color: var(--primary);
        }

        .milestone-check i {
            color: #fff;
            font-size: 0.7rem;
            opacity: 0;
            transition: opacity 0.2s;
        }

        .milestone-item.checked .milestone-check i {
            opacity: 1;
        }

        .milestone-label {
            font-size: 0.95rem;
            color: var(--text-main);
        }

        .tracker-reset {
            margin-top: 24px;
            background: none;
            border: none;
            color: var(--accent);
            font-family: var(--font-heading);
            font-weight: 600;
            cursor: pointer;
            font-size: 0.9rem;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        .tracker-reset:hover {
            text-decoration: underline;
        }

        /* Resources + Sidebar */
        .resources {
            padding: 90px 0;
            background: var(--bg-body);
        }

        .resources-layout {
            display: grid;
            grid-template-columns: 2fr 1fr;
            gap: 48px;
        }

        .resource-card {
            background: #fff;
            border-radius: var(--radius);
            overflow: hidden;
            border: 1px solid var(--border);
            margin-bottom: 32px;
            transition: box-shadow 0.3s;
        }

        .resource-card:hover {
            box-shadow: var(--shadow-md);
        }

        .resource-card img {
            width: 100%;
            height: 240px;
            object-fit: cover;
        }

        .resource-body {
            padding: 28px;
        }

        .resource-tag {
            display: inline-block;
            background: var(--accent-light);
            color: var(--accent);
            padding: 4px 12px;
            border-radius: 50px;
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 12px;
            font-family: var(--font-heading);
        }

        .resource-body h3 {
            font-size: 1.4rem;
            margin-bottom: 12px;
        }

        .resource-body p {
            color: var(--text-muted);
            margin-bottom: 18px;
            font-size: 0.95rem;
        }

        .sidebar-widget {
            background: #fff;
            border: 1px solid var(--border);
            border-radius: var(--radius);
            padding: 28px;
            margin-bottom: 32px;
        }

        .sidebar-widget h4 {
            font-size: 1.1rem;
            margin-bottom: 20px;
            padding-bottom: 12px;
            border-bottom: 2px solid var(--bg-body);
            color: var(--primary-dark);
        }

        .guide-list li {
            padding: 10px 0;
            border-bottom: 1px solid #F1F5F9;
        }

        .guide-list li:last-child {
            border-bottom: none;
        }

        .guide-list a {
            display: flex;
            align-items: center;
            justify-content: space-between;
            color: var(--text-main);
            font-weight: 500;
            font-size: 0.92rem;
        }

        .guide-list a:hover {
            color: var(--primary);
        }

        .guide-list i {
            color: #CBD5E1;
            font-size: 0.8rem;
        }

        .product-mini {
            display: flex;
            gap: 16px;
            align-items: center;
            margin-bottom: 20px;
        }

        .product-mini:last-child {
            margin-bottom: 0;
        }

        .product-mini img {
            width: 72px;
            height: 72px;
            border-radius: 10px;
            object-fit: cover;
        }

        .product-mini-info h5 {
            font-size: 0.95rem;
            margin-bottom: 4px;
            font-family: var(--font-heading);
        }

        .product-mini-info .price {
            color: var(--primary);
            font-weight: 700;
            font-family: var(--font-heading);
        }

        .expert-widget {
            text-align: center;
        }

        .expert-widget img {
            width: 88px;
            height: 88px;
            border-radius: 50%;
            margin: 0 auto 16px;
            object-fit: cover;
            border: 3px solid var(--primary-light);
        }

        .expert-widget h5 {
            font-size: 1rem;
            margin-bottom: 4px;
            font-family: var(--font-heading);
        }

        .expert-widget .role {
            font-size: 0.8rem;
            color: var(--accent);
            font-weight: 600;
            margin-bottom: 12px;
            display: block;
        }

        .expert-widget p {
            font-size: 0.85rem;
            color: var(--text-muted);
            font-style: italic;
            margin-bottom: 16px;
        }

        /* Testimonials */
        .testimonials {
            padding: 90px 0;
            background: #fff;
        }

        .testimonials-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 32px;
        }

        .testimonial-card {
            background: var(--bg-body);
            padding: 36px;
            border-radius: var(--radius);
            border: 1px solid var(--border);
            position: relative;
        }

        .testimonial-card::before {
            content: '\201C';
            font-family: Georgia, serif;
            font-size: 5rem;
            color: var(--primary-light);
            position: absolute;
            top: 10px;
            left: 20px;
            line-height: 1;
        }

        .stars {
            color: #F59E0B;
            margin-bottom: 16px;
            font-size: 0.9rem;
            position: relative;
            z-index: 1;
        }

        .testimonial-text {
            color: var(--text-main);
            font-size: 0.98rem;
            margin-bottom: 24px;
            position: relative;
            z-index: 1;
        }

        .testimonial-author {
            display: flex;
            align-items: center;
            gap: 14px;
        }

        .testimonial-author img {
            width: 48px;
            height: 48px;
            border-radius: 50%;
        }

        .testimonial-author strong {
            display: block;
            font-family: var(--font-heading);
            font-size: 0.95rem;
        }

        .testimonial-author span {
            font-size: 0.8rem;
            color: var(--text-muted);
        }

        /* FAQ */
        .faq {
            padding: 90px 0;
        }

        .faq-accordion {
            max-width: 800px;
            margin: 0 auto;
        }

        .faq-item {
            background: #fff;
            border: 1px solid var(--border);
            border-radius: var(--radius);
            margin-bottom: 16px;
            overflow: hidden;
            transition: box-shadow 0.2s;
        }

        .faq-item.active {
            box-shadow: var(--shadow-md);
            border-color: var(--primary-light);
        }

        .faq-question {
            width: 100%;
            text-align: left;
            padding: 24px;
            background: none;
            border: none;
            font-family: var(--font-heading);
            font-size: 1.05rem;
            font-weight: 600;
            color: var(--text-main);
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 16px;
        }

        .faq-question:hover {
            color: var(--primary);
        }

        .faq-question i {
            color: var(--primary);
            transition: transform 0.3s;
            flex-shrink: 0;
        }

        .faq-item.active .faq-question i {
            transform: rotate(180deg);
        }

        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease;
        }

        .faq-answer-inner {
            padding: 0 24px 24px;
            color: var(--text-muted);
            font-size: 0.95rem;
        }

        /* CTA */
        .cta-section {
            padding: 90px 0;
            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
            color: #fff;
            text-align: center;
        }

        .cta-section h2 {
            font-size: 2.5rem;
            color: #fff;
            margin-bottom: 20px;
        }

        .cta-section p {
            max-width: 620px;
            margin: 0 auto 36px;
            font-size: 1.1rem;
            opacity: 0.9;
        }

        .newsletter-form {
            display: flex;
            max-width: 520px;
            margin: 0 auto;
            gap: 12px;
            flex-wrap: wrap;
            justify-content: center;
        }

        .newsletter-form input {
            flex: 1;
            min-width: 260px;
            padding: 14px 24px;
            border-radius: 50px;
            border: none;
            font-family: var(--font-body);
            font-size: 1rem;
            outline: none;
        }

        .newsletter-form .btn {
            background: var(--accent);
            border: none;
        }

        .newsletter-form .btn:hover {
            background: #C2410C;
        }

        /* Footer */
        .site-footer {
            background: #0F172A;
            color: #94A3B8;
            padding: 70px 0 30px;
            font-size: 0.9rem;
        }

        .footer-grid {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1.5fr;
            gap: 48px;
            margin-bottom: 50px;
        }

        .footer-brand img {
            height: 40px;
            margin-bottom: 20px;
            border-radius: 8px;
        }

        .footer-brand p {
            margin-bottom: 20px;
            line-height: 1.7;
        }

        .footer-col h5 {
            color: #fff;
            font-family: var(--font-heading);
            font-size: 1rem;
            margin-bottom: 20px;
        }

        .footer-col ul li {
            margin-bottom: 12px;
        }

        .footer-col ul li a:hover {
            color: #fff;
            padding-left: 4px;
            transition: all 0.2s;
        }

        .footer-contact li {
            display: flex;
            gap: 12px;
            margin-bottom: 14px;
            align-items: flex-start;
        }

        .footer-contact i {
            color: var(--primary);
            margin-top: 4px;
        }

        .social-links {
            display: flex;
            gap: 12px;
            margin-top: 20px;
        }

        .social-links a {
            width: 38px;
            height: 38px;
            border-radius: 50%;
            background: #1E293B;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            transition: all 0.3s;
        }

        .social-links a:hover {
            background: var(--primary);
            transform: translateY(-3px);
        }

        .footer-bottom {
            border-top: 1px solid #1E293B;
            padding-top: 30px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 16px;
        }

        .footer-bottom-links {
            display: flex;
            gap: 24px;
        }

        .footer-bottom-links a:hover {
            color: #fff;
        }

        @media (max-width: 1024px) {
            .hero-inner,
            .split-grid,
            .resources-layout {
                grid-template-columns: 1fr;
            }
            .split-grid.reverse .split-media {
                order: 0;
            }
            .features-grid,
            .testimonials-grid {
                grid-template-columns: 1fr;
            }
            .footer-grid {
                grid-template-columns: 1fr 1fr;
            }
            .hero-content h2 {
                font-size: 2.5rem;
            }
            .hero-image img {
                height: 360px;
            }
        }

        @media (max-width: 768px) {
            .main-nav {
                display: none;
                position: absolute;
                top: 100%;
                left: 0;
                right: 0;
                background: #fff;
                border-bottom: 1px solid var(--border);
                padding: 20px 24px;
                box-shadow: var(--shadow-lg);
            }
            .main-nav.open {
                display: block;
            }
            .main-nav ul {
                flex-direction: column;
                gap: 20px;
                align-items: flex-start;
            }
            .mobile-toggle {
                display: block;
            }
            .top-bar-left span:nth-child(2),
            .top-bar-left span:nth-child(3) {
                display: none;
            }
            .milestone-list {
                grid-template-columns: 1fr;
            }
            .hero-content h2 {
                font-size: 2rem;
            }
            .section-header h2 {
                font-size: 1.75rem;
            }
            .footer-grid {
                grid-template-columns: 1fr;
            }
            .footer-bottom {
                flex-direction: column;
                text-align: center;
            }
        }
    </style>
</head>
<body>

    <!-- Top Bar -->
    <div class="top-bar">
        <div class="container top-bar-inner">
            <div class="top-bar-left">
                <span><i class="fas fa-phone-alt"></i> <a href="tel:+18005550199">(800) 555-0199</a></span>
                <span><i class="fas fa-envelope"></i> <a href="mailto:hello@kindredroots.com">hello@kindredroots.com</a></span>
                <span><i class="fas fa-clock"></i> Mon–Fri: 8am–6pm EST</span>
            </div>
            <div class="top-bar-right">
                <a href="#community">Parenting Community</a>
                <a href="#shop">Shop</a>
            </div>
        </div>
    </div>

    <!-- Header -->
    <header class="site-header" id="top">
        <div class="container">
            <div class="nav-wrap">
                <a href="#" class="brand">
                    <img src="https://placehold.co/160x50/0F766E/FFF?text=Kindred+Roots&font=poppins" alt="Kindred Roots Logo">
                    <span class="brand-text">
                        <h1>Kindred Roots</h1>
                        <span>Family & Parenting Resource Hub</span>
                    </span>
                </a>
                <nav class="main-nav" id="mainNav">
                    <ul>
                        <li><a href="#top">Home</a></li>
                        <li><a href="#development">Child Development</a></li>
                        <li><a href="#health">Health</a></li>
                        <li><a href="#shop">Shop</a></li>
                        <li><a href="#community">Community</a></li>
                        <li><a href="#experts">Expert Advice</a></li>
                        <li><a href="#contact">Contact</a></li>
                    </ul>
                </nav>
                <button class="mobile-toggle" id="mobileToggle" aria-label="Toggle menu">
                    <i class="fas fa-bars"></i>
                </button>
            </div>
        </div>
    </header>

    <!-- Hero -->
    <section class="hero">
        <div class="container">
            <div class="hero-inner">
                <div class="hero-content">
                    <h2>Parenting with <span>Confidence</span>, Growing with Joy</h2>
                    <p>At Kindred Roots, we believe that raising children is a journey best traveled with trustworthy guidance, empathetic community, and evidence-based resources. From the very first feeding to the first day of school, we are here to walk beside you.</p>
                    <p>Our curated library of articles, interactive tools, and expert-led programs is designed to simplify the complex world of modern parenting—helping you nurture resilience, emotional intelligence, and lifelong wellbeing in your family.</p>
                    <div class="hero-actions">
                        <a href="#development" class="btn btn-primary">Explore Resources <i class="fas fa-arrow-right"></i></a>
                        <a href="#community" class="btn btn-outline">Join Support Group</a>
                    </div>
                </div>
                <div class="hero-image">
                    <img src="https://picsum.photos/seed/kindredfamily/900/700" alt="Happy family spending quality time together outdoors">
                    <div class="hero-badge">
                        <i class="fas fa-heart"></i>
                        <div>
                            <strong>12,000+ Families</strong>
                            <span>Trusted since 2015</span>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Features -->
    <section class="features">
        <div class="container">
            <div class="section-header">
                <span class="eyebrow">Why Kindred Roots</span>
                <h2>Everything Your Family Needs to Thrive</h2>
                <p>We combine pediatric expertise, developmental psychology, and the lived experience of real parents to deliver practical guidance you can use today.</p>
            </div>
            <div class="features-grid">
                <div class="feature-card">
                    <div class="feature-icon">
                        <i class="fas fa-book-medical"></i>
                    </div>
                    <h3>Evidence-Based Advice</h3>
                    <p>Every article is reviewed by licensed pediatricians, child psychologists, and family therapists to ensure accuracy and safety for your little ones.</p>
                </div>
                <div class="feature-card">
                    <div class="feature-icon">
                        <i class="fas fa-tools"></i>
                    </div>
                    <h3>Interactive Tools</h3>
                    <p>Track developmental milestones, create personalized nutrition plans, and access printable routines designed by early childhood specialists.</p>
                </div>
                <div class="feature-card">
                    <div class="feature-icon">
                        <i class="fas fa-users"></i>
                    </div>
                    <h3>Supportive Community</h3>
                    <p>Join moderated parent circles where you can share stories, ask questions, and find encouragement from families walking the same path.</p>
                </div>
            </div>
        </div>
    </section>

    <!-- Child Development -->
    <section id="development" class="split-section alt">
        <div class="container">
            <div class="split-grid">
                <div class="split-content">
                    <span class="eyebrow" style="color:var(--accent);font-family:var(--font-heading);font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:0.85rem;display:block;margin-bottom:12px;">Child Development</span>
                    <h3>Understanding Every Stage of Your Child's Growth</h3>
                    <p>Childhood development unfolds in remarkable, predictable patterns—yet no two children follow the exact same timeline. Our development hub breaks down cognitive, physical, social, and emotional growth into clear, actionable stages so you always know what to expect next. We emphasize that milestones are guidelines, not deadlines, and that every child's unique pace deserves celebration.</p>
                    <p>Emotional intelligence is the foundation of lifelong success. Through guided play, responsive caregiving, and consistent routines, you can help your child identify feelings, develop empathy, and build secure attachments. Our resources on behavior management focus on positive reinforcement, boundary-setting, and connection-based discipline rather than punitive measures.</p>
                    <p>Whether you are navigating toddler tantrums, preschool social dynamics, or early literacy skills, our age-specific guides translate complex developmental science into everyday parenting strategies that actually work.</p>
                    <a href="#tracker" class="btn btn-accent">Track Milestones <i class="fas fa-tasks"></i></a>
                </div>
                <div class="split-media">
                    <img src="https://picsum.photos/seed/childplay/800/600" alt="Child engaged in creative educational play with building blocks">
                </div>
            </div>
        </div>
    </section>

    <!-- Milestone Tracker (Interactive) -->
    <section id="tracker" class="tracker">
        <div class="container">
            <div class="section-header">
                <span class="eyebrow">Interactive Tool</span>
                <h2>Milestone Tracker</h2>
                <p>Select your child's age group and check off the milestones they have reached. Use this tool to prepare for pediatric visits or simply celebrate progress at home.</p>
            </div>
            <div class="tracker-container">
                <div class="tracker-tabs" id="trackerTabs">
                    <button class="tracker-tab active" data-age="0-6">0–6 Months</button>
                    <button class="tracker-tab" data-age="6-18">6–18 Months</button>
                    <button class="tracker-tab" data-age="18-36">18–36 Months</button>
                    <button class="tracker-tab" data-age="3-5">3–5 Years</button>
                </div>
                <div class="tracker-progress">
                    <span class="tracker-progress-text" id="progressText">0 of 5 milestones reached</span>
                    <div class="progress-bar-bg">
                        <div class="progress-bar-fill" id="progressFill"></div>
                    </div>
                </div>
                <div class="milestone-list" id="milestoneList">
                    <!-- Populated by JS -->
                </div>
                <button class="tracker-reset" id="resetTracker"><i class="fas fa-undo"></i> Reset Progress</button>
            </div>
        </div>
    </section>

    <!-- Health -->
    <section id="health" class="split-section">
        <div class="container">
            <div class="split-grid reverse">
                <div class="split-content">
                    <span class="eyebrow" style="color:var(--accent);font-family:var(--font-heading);font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:0.85rem;display:block;margin-bottom:12px;">Health & Nutrition</span>
                    <h3>Holistic Health for Busy Families</h3>
                    <p>Nutrition is the cornerstone of childhood growth, brain development, and immune resilience. Our registered dietitians share practical meal plans, allergen introductions, and picky-eater strategies that prioritize whole foods without adding stress to your kitchen. We believe that healthy eating should be joyful, seasonal, and accessible—not restrictive or overwhelming.</p>
                    <p>Sleep is just as vital as nourishment. From establishing newborn sleep cues to transitioning from crib to bed, we provide gentle, research-backed sleep coaching techniques that respect your child's temperament and your family's values. Consistent sleep hygiene supports emotional regulation, learning, and overall wellbeing.</p>
                    <p>Beyond the physical, we address family mental health openly. Our resources on parental burnout, anxiety in children, and mindfulness practices help create a calm, connected home environment where everyone feels safe to express themselves.</p>
                    <a href="#experts" class="btn btn-primary">Connect with Experts <i class="fas fa-user-md"></i></a>
                </div>
                <div class="split-media">
                    <img src="https://picsum.photos/seed/healthyfood/800/600" alt="Colorful and nutritious family meal preparation with vegetables">
                </div>
            </div>
        </div>
    </section>

    <!-- Resources + Sidebar -->
    <section id="shop" class="resources">
        <div class="container">
            <div class="section-header">
                <span class="eyebrow">Resource Hub</span>
                <h2>Educational Activities & Curated Products</h2>
                <p>Explore our latest guides and hand-picked tools designed to make screen-free learning, family connection, and daily routines easier.</p>
            </div>
            <div class="resources-layout">
                <div class="resources-main">
                    <article class="resource-card">
                        <img src="https://picsum.photos/seed/sensoryplay/900/500" alt="Child doing sensory play with safe household materials">
                        <div class="resource-body">
                            <span class="resource-tag">Educational Activities</span>
                            <h3>Screen-Free Sensory Play for Toddlers</h3>
                            <p>Sensory play is more than messy fun—it is critical brain architecture work. When children squish, pour, sort, and explore textures, they are building neural connections that support language, motor skills, and problem-solving. In this comprehensive guide, we walk you through setting up safe, affordable sensory bins using common household items. You will learn how to introduce new textures gradually, encourage open-ended exploration, and use sensory play as a tool for behavior management during high-energy times of day.</p>
                            <a href="#" class="btn btn-outline" style="padding:8px 20px;font-size:0.85rem;">Read Guide</a>
                        </div>
                    </article>
                    <article class="resource-card">
                        <img src="https://picsum.photos/seed/familyreading/900/500" alt="Parent and child reading a book together at bedtime">
                        <div class="resource-body">
                            <span class="resource-tag">Emotional Intelligence</span>
                            <h3>Building an Emotion-Rich Bedtime Routine</h3>
                            <p>Bedtime battles often stem from a child's difficulty transitioning and processing the day's emotions. By integrating emotional intelligence practices into your nightly routine, you transform bedtime from a struggle into a sacred connection point. This resource offers scripts for emotion coaching, breathing exercises for preschoolers, and book recommendations that validate feelings. Discover how a predictable, warm routine reduces anxiety and improves sleep quality for the entire household.</p>
                            <a href="#" class="btn btn-outline" style="padding:8px 20px;font-size:0.85rem;">Read Guide</a>
                        </div>
                    </article>
                </div>
                <aside class="sidebar">
                    <div class="sidebar-widget">
                        <h4>Age-Specific Guides</h4>
                        <ul class="guide-list">
                            <li><a href="#">Newborns (0–3 Months) <i class="fas fa-chevron-right"></i></a></li>
                            <li><a href="#">Infants (4–12 Months) <i class="fas fa-chevron-right"></i></a></li>
                            <li><a href="#">Toddlers (1–3 Years) <i class="fas fa-chevron-right"></i></a></li>
                            <li><a href="#">Preschoolers (3–5 Years) <i class="fas fa-chevron-right"></i></a></li>
                            <li><a href="#">School Age (6–9 Years) <i class="fas fa-chevron-right"></i></a></li>
                        </ul>
                    </div>
                    <div class="sidebar-widget" id="shop-products">
                        <h4>From Our Shop</h4>
                        <div class="product-mini">
                            <img src="https://placehold.co/150x150/F97316/FFF?text=Play+Kit&font=montserrat" alt="Toddler play kit product">
                            <div class="product-mini-info">
                                <h5>Sensory Play Starter Kit</h5>
                                <span class="price">$42.00</span>
                            </div>
                        </div>
                        <div class="product-mini">
                            <img src="https://placehold.co/150x150/0F766E/FFF?text=Routine+Chart&font=montserrat" alt="Morning routine chart product">
                            <div class="product-mini-info">
                                <h5>Visual Routine Chart Set</h5>
                                <span class="price">$24.00</span>
                            </div>
                        </div>
                        <div class="product-mini">
                            <img src="https://placehold.co/150x150/EA580C/FFF?text=Sleep+Guide&font=montserrat" alt="Sleep guide ebook product">
                            <div class="product-mini-info">
                                <h5>Gentle Sleep Guide (eBook)</h5>
                                <span class="price">$18.00</span>
                            </div>
                        </div>
                    </div>
                    <div class="sidebar-widget expert-widget" id="experts">
                        <h4>Ask an Expert</h4>
                        <img src="https://i.pravatar.cc/150?u=drchen" alt="Dr. Elena Chen">
                        <h5>Dr. Elena Chen</h5>
                        <span class="role">Pediatric Sleep Specialist</span>
                        <p>"Trust your instincts. You know your child better than any manual ever could."</p>
                        <a href="#" class="btn btn-primary" style="width:100%;padding:10px;">Book a Session</a>
                    </div>
                </aside>
            </div>
        </div>
    </section>

    <!-- Testimonials -->
    <section id="community" class="testimonials">
        <div class="container">
            <div class="section-header">
                <span class="eyebrow">Parent Stories</span>
                <h2>Loved by Families Everywhere</h2>
                <p>Real feedback from parents who found confidence, calm, and community within Kindred Roots.</p>
            </div>
            <div class="testimonials-grid">
                <div class="testimonial-card">
                    <div class="stars">
                        <i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i>
                    </div>
                    <p class="testimonial-text">"The milestone tracker was a game-changer for us. It helped us spot a speech delay early and gave us the confidence to advocate for our son at his two-year checkup. The resources are thorough and genuinely comforting."</p>
                    <div class="testimonial-author">
                        <img src="https://i.pravatar.cc/100?u=sarahm" alt="Sarah M.">
                        <div>
                            <strong>Sarah M.</strong>
                            <span>Mother of two, Portland</span>
                        </div>
                    </div>
                </div>
                <div class="testimonial-card">
                    <div class="stars">
                        <i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i>
                    </div>
                    <p class="testimonial-text">"I used to dread mealtime battles. The nutrition guides and picky-eater strategies from Kindred Roots completely shifted our relationship with food. My daughter now tries vegetables without tears!"</p>
                    <div class="testimonial-author">
                        <img src="https://i.pravatar.cc/100?u=davidl" alt="David L.">
                        <div>
                            <strong>David L.</strong>
                            <span>Father of a toddler, Austin</span>
                        </div>
                    </div>
                </div>
                <div class="testimonial-card">
                    <div class="stars">
                        <i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i>
                    </div>
                    <p class="testimonial-text">"As a first-time mom, I felt lost. The community support group and expert Q&As made me feel seen. The behavior management techniques are kind, effective, and never made me feel like a 'bad parent.'"</p>
                    <div class="testimonial-author">
                        <img src="https://i.pravatar.cc/100?u=priyak" alt="Priya K.">
                        <div>
                            <strong>Priya K.</strong>
                            <span>New parent, Chicago</span>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- FAQ -->
    <section class="faq">
        <div class="container">
            <div class="section-header">
                <span class="eyebrow">Common Questions</span>
                <h2>Frequently Asked Questions</h2>
                <p>Everything you need to know about our resources, community guidelines, and expert support.</p>
            </div>
            <div class="faq-accordion" id="faqAccordion">
                <div class="faq-item active">
                    <button class="faq-question">
                        How do I know if my child is meeting developmental milestones?
                        <i class="fas fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer" style="max-height: 200px;">
                        <div class="faq-answer-inner">
                            Milestones provide a general framework, but healthy children develop at different paces. Our interactive Milestone Tracker allows you to monitor progress by age group. If you notice significant delays or have concerns, we recommend scheduling a consultation with your pediatrician or one of our developmental specialists.
                        </div>
                    </div>
                </div>
                <div class="faq-item">
                    <button class="faq-question">
                        What are the fundamentals of good nutrition for toddlers?
                        <i class="fas fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer">
                        <div class="faq-answer-inner">
                            Toddler nutrition should emphasize iron-rich foods, healthy fats for brain development, and a rainbow of fruits and vegetables. We recommend offering structured meals plus two snacks daily, introducing new foods repeatedly without pressure, and modeling balanced eating as a family. Avoid excessive sugar and prioritize water over juices.
                        </div>
                    </div>
                </div>
                <div class="faq-item">
                    <button class="faq-question">
                        How can I support my child's emotional intelligence at home?
                        <i class="fas fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer">
                        <div class="faq-answer-inner">
                            Emotional intelligence grows through connection and modeling. Name emotions as they arise, validate your child's feelings without judgment, and coach them through calming strategies like deep breathing. Reading books about feelings, maintaining predictable routines, and practicing active listening are powerful daily tools.
                        </div>
                    </div>
                </div>
                <div class="faq-item">
                    <button class="faq-question">
                        What strategies work best for behavior management?
                        <i class="fas fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer">
                        <div class="faq-answer-inner">
                            Connection-based discipline outperforms punitive approaches. Set clear, consistent boundaries; use positive reinforcement to acknowledge desired behaviors; and implement logical consequences rather than arbitrary punishments. Time-ins, redirection, and collaborative problem-solving foster internal motivation and trust.
                        </div>
                    </div>
                </div>
                <div class="faq-item">
                    <button class="faq-question">
                        Is the Kindred Roots community moderated by professionals?
                        <i class="fas fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer">
                        <div class="faq-answer-inner">
                            Yes. Our parent circles are actively moderated by licensed family therapists and experienced parent educators. We maintain strict community guidelines to ensure every discussion remains respectful, evidence-informed, and supportive.
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- CTA -->
    <section class="cta-section">
        <div class="container">
            <h2>Join Thousands of Parents Who Feel Supported</h2>
            <p>Subscribe to The Weekly Root for curated parenting tips, developmental insights, and early access to new resources delivered straight to your inbox.</p>
            <form class="newsletter-form" id="newsletterForm">
                <input type="email" placeholder="Enter your email address" required>
                <button type="submit" class="btn">Download Resource <i class="fas fa-download"></i></button>
            </form>
        </div>
    </section>

    <!-- Footer -->
    <footer class="site-footer" id="contact">
        <div class="container">
            <div class="footer-grid">
                <div class="footer-brand">
                    <img src="https://placehold.co/160x50/FFFFFF/0F766E?text=Kindred+Roots&font=poppins" alt="Kindred Roots Logo">
                    <p>Kindred Roots is dedicated to empowering families with compassionate, evidence-based parenting guidance. We believe that when parents feel supported, children flourish.</p>
                    <div class="social-links">
                        <a href="#" aria-label="Facebook"><i class="fab fa-facebook-f"></i></a>
                        <a href="#" aria-label="Instagram"><i class="fab fa-instagram"></i></a>
                        <a href="#" aria-label="Twitter"><i class="fab fa-twitter"></i></a>
                        <a href="#" aria-label="YouTube"><i class="fab fa-youtube"></i></a>
                        <a href="#" aria-label="Pinterest"><i class="fab fa-pinterest-p"></i></a>
                    </div>
                </div>
                <div class="footer-col">
                    <h5>Explore</h5>
                    <ul>
                        <li><a href="#development">Child Development</a></li>
                        <li><a href="#health">Health & Nutrition</a></li>
                        <li><a href="#shop">Shop</a></li>
                        <li><a href="#community">Community</a></li>
                        <li><a href="#experts">Expert Advice</a></li>
                    </ul>
                </div>
                <div class="footer-col">
                    <h5>Support</h5>
                    <ul>
                        <li><a href="#">Help Center</a></li>
                        <li><a href="#">Parenting Guides</a></li>
                        <li><a href="#">Privacy Policy</a></li>
                        <li><a href="#">Terms of Service</a></li>
                        <li><a href="#">Sitemap</a></li>
                    </ul>
                </div>
                <div class="footer-col">
                    <h5>Contact Us</h5>
                    <ul class="footer-contact">
                        <li><i class="fas fa-map-marker-alt"></i> <span>128 Willow Lane, Suite 200<br>Portland, OR 97205</span></li>
                        <li><i class="fas fa-phone-alt"></i> <a href="tel:+18005550199">(800) 555-0199</a></li>
                        <li><i class="fas fa-envelope"></i> <a href="mailto:hello@kindredroots.com">hello@kindredroots.com</a></li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <span>&copy; 2025 Kindred Roots. All rights reserved.</span>
                <div class="footer-bottom-links">
                    <a href="#">Privacy</a>
                    <a href="#">Terms</a>
                    <a href="#">Cookies</a>
                </div>
            </div>
        </div>
    </footer>

    <script>
        // Mobile Menu Toggle
        const mobileToggle = document.getElementById('mobileToggle');
        const mainNav = document.getElementById('mainNav');
        mobileToggle.addEventListener('click', () => {
            mainNav.classList.toggle('open');
            const icon = mobileToggle.querySelector('i');
            if (mainNav.classList.contains('open')) {
                icon.classList.remove('fa-bars');
                icon.classList.add('fa-times');
            } else {
                icon.classList.remove('fa-times');
                icon.classList.add('fa-bars');
            }
        });

        // Close mobile menu on link click
        document.querySelectorAll('.main-nav a').forEach(link => {
            link.addEventListener('click', () => {
                mainNav.classList.remove('open');
                mobileToggle.querySelector('i').classList.remove('fa-times');
                mobileToggle.querySelector('i').classList.add('fa-bars');
            });
        });

        // FAQ Accordion
        const faqItems = document.querySelectorAll('.faq-item');
        faqItems.forEach(item => {
            const question = item.querySelector('.faq-question');
            const answer = item.querySelector('.faq-answer');
            question.addEventListener('click', () => {
                const isActive = item.classList.contains('active');
                faqItems.forEach(i => {
                    i.classList.remove('active');
                    i.querySelector('.faq-answer').style.maxHeight = null;
                });
                if (!isActive) {
                    item.classList.add('active');
                    answer.style.maxHeight = answer.scrollHeight + 'px';
                }
            });
        });

        // Milestone Tracker
        const milestonesData = {
            '0-6': [
                'Smiles responsively at caregivers',
                'Holds head steady without support',
                'Rolls over in both directions',
                'Laughs and squeals with delight',
                'Responds to familiar voices and names'
            ],
            '6-18': [
                'Sits without support',
                'Speaks first recognizable words',
                'Crawls or scoots intentionally',
                'Pulls up to a standing position',
                'Waves bye-bye and plays pat-a-cake'
            ],
            '18-36': [
                'Walks independently and confidently',
                'Speaks in two-to-three word phrases',
                'Scribbles with crayons or markers',
                'Follows simple one-step instructions',
                'Shows affection for familiar people'
            ],
            '3-5': [
                'Dresses and undresses with minimal help',
                'Tells simple stories and asks "why"',
                'Shares toys and takes turns (with reminders)',
                'Counts to ten and recognizes some letters',
                'Uses the toilet independently during the day'
            ]
        };

        const trackerTabs = document.getElementById('trackerTabs');
        const milestoneList = document.getElementById('milestoneList');
        const progressText = document.getElementById('progressText');
        const progressFill = document.getElementById('progressFill');
        const resetBtn = document.getElementById('resetTracker');
        let currentAge = '0-6';
        let trackerState = {};

        function renderMilestones(age) {
            const items = milestonesData[age];
            milestoneList.innerHTML = '';
            items.forEach((text, idx) => {
                const key = age + '-' + idx;
                const checked = trackerState[key] ? 'checked' : '';
                const div = document.createElement('div');
                div.className = 'milestone-item ' + checked;
                div.innerHTML = `
                    <span class="milestone-check"><i class="fas fa-check"></i></span>
                    <span class="milestone-label">${text}</span>
                `;
                div.addEventListener('click', () => {
                    trackerState[key] = !trackerState[key];
                    div.classList.toggle('checked');
                    updateProgress();
                });
                milestoneList.appendChild(div);
            });
            updateProgress();
        }

        function updateProgress() {
            const items = milestonesData[currentAge];
            const checkedCount = items.filter((_, idx) => trackerState[currentAge + '-' + idx]).length;
            const total = items.length;
            const percent = total === 0 ? 0 : (checkedCount / total) * 100;
            progressText.textContent = `${checkedCount} of ${total} milestones reached`;
            progressFill.style.width = percent + '%';
        }

        trackerTabs.addEventListener('click', (e) => {
            if (e.target.classList.contains('tracker-tab')) {
                document.querySelectorAll('.tracker-tab').forEach(t => t.classList.remove('active'));
                e.target.classList.add('active');
                currentAge = e.target.dataset.age;
                renderMilestones(currentAge);
            }
        });

        resetBtn.addEventListener('click', () => {
            trackerState = {};
            renderMilestones(currentAge);
        });

        // Initialize
        renderMilestones(currentAge);

        // Newsletter Form
        document.getElementById('newsletterForm').addEventListener('submit', function(e) {
            e.preventDefault();
            const input = this.querySelector('input');
            const btn = this.querySelector('button');
            const originalText = btn.innerHTML;
            btn.innerHTML = '<i class="fas fa-check"></i> Subscribed!';
            btn.style.background = '#0F766E';
            input.value = '';
            setTimeout(() => {
                btn.innerHTML = originalText;
                btn.style.background = '';
            }, 3000);
        });
    </script>
</body>
</html>
View Axe Report (JSON)
{
  "testEngine": {
    "name": "axe-core",
    "version": "4.10.2"
  },
  "testRunner": {
    "name": "axe"
  },
  "testEnvironment": {
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
    "windowWidth": 1280,
    "windowHeight": 720,
    "orientationAngle": 0,
    "orientationType": "landscape-primary"
  },
  "timestamp": "2026-11-12T10:14:21.839Z",
  "url": "https://benchmark.aimac.invalid/652c83ee38aa06835a973ff7ea3673ba6ebc7870e048fbae56ed8cf35b7d1dec.html",
  "toolOptions": {
    "runOnly": {
      "type": "tag",
      "values": [
        "wcag2a",
        "wcag2aa",
        "wcag21a",
        "wcag21aa",
        "wcag22a",
        "wcag22aa"
      ]
    },
    "resultTypes": [
      "violations"
    ],
    "reporter": "v1"
  },
  "inapplicable": [
    {
      "id": "area-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <area> elements of image maps have alternative text",
      "help": "Active <area> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-braille-equivalent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
      "help": "aria-braille attributes must have a non-braille equivalent",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-command-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA button, link and menuitem has an accessible name",
      "help": "ARIA commands must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-deprecated-role",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-hidden-focus",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-input-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-meter-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-progressbar-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-children",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-parent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-roles",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-toggle-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-tooltip-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "autocomplete-valid",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "nodes": []
    },
    {
      "id": "blink",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "nodes": []
    },
    {
      "id": "definition-list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "nodes": []
    },
    {
      "id": "dlitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "nodes": []
    },
    {
      "id": "duplicate-id-aria",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every id attribute value used in ARIA and in labels is unique",
      "help": "IDs used in ARIA and labels must be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-focusable-content",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title-unique",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "nodes": []
    },
    {
      "id": "html-xml-lang-mismatch",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <input type=\"image\"> elements have alternative text",
      "help": "Image buttons must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "marquee",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "nodes": []
    },
    {
      "id": "meta-refresh",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "nodes": []
    },
    {
      "id": "object-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure <object> elements have alternative text",
      "help": "<object> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "role-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure [role=\"img\"] elements have alternative text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "select-name",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "server-side-image-map",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "nodes": []
    },
    {
      "id": "summary-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "svg-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "td-headers-attr",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "th-has-data-cells",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "nodes": []
    },
    {
      "id": "valid-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "nodes": []
    },
    {
      "id": "video-caption",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "nodes": []
    },
    {
      "id": "no-autoplay-audio",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "nodes": []
    }
  ],
  "passes": [
    {
      "id": "aria-allowed-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure an element's role supports its ARIA attributes",
      "help": "Elements must only use supported ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-allowed-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attributes are used correctly for the defined role"
            }
          ],
          "none": [
            {
              "id": "aria-unsupported-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute is supported"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Facebook\"><i class=\"fab fa-facebook-f\"></i></a>",
          "target": [
            "a[aria-label=\"Facebook\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-conditional-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
      "help": "ARIA attributes must be used as specified for the element's role",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-conditional-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Facebook\"><i class=\"fab fa-facebook-f\"></i></a>",
          "target": [
            "a[aria-label=\"Facebook\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-hidden-body",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-hidden-body",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<body>",
          "target": [
            "body"
          ]
        }
      ]
    },
    {
      "id": "aria-prohibited-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Facebook\"><i class=\"fab fa-facebook-f\"></i></a>",
          "target": [
            "a[aria-label=\"Facebook\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr-value",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all ARIA attributes have valid values",
      "help": "ARIA attributes must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-valid-attr-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute values are valid"
            },
            {
              "id": "aria-errormessage",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
            },
            {
              "id": "aria-level",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-level values are valid"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Facebook\"><i class=\"fab fa-facebook-f\"></i></a>",
          "target": [
            "a[aria-label=\"Facebook\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
      "help": "ARIA attributes must conform to valid names",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-valid-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute name is valid"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" aria-label=\"Facebook\"><i class=\"fab fa-facebook-f\"></i></a>",
          "target": [
            "a[aria-label=\"Facebook\"]"
          ]
        }
      ]
    },
    {
      "id": "avoid-inline-spacing",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag21aa",
        "wcag1412",
        "EN-301-549",
        "EN-9.1.4.12",
        "ACT"
      ],
      "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
      "help": "Inline text spacing must be adjustable with custom stylesheets",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "important-letter-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-word-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-line-height",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "line-height in the style attribute is not set to !important, or meets the minimum"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<span class=\"eyebrow\" style=\"color:var(--accent);font-family:var(--font-heading);font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:0.85rem;display:block;margin-bottom:12px;\">Child Development</span>",
          "target": [
            "#development > .container > .split-grid > .split-content > .eyebrow"
          ]
        }
      ]
    },
    {
      "id": "button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure buttons have discernible text",
      "help": "Buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has inner text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button class=\"tracker-tab active\" data-age=\"0-6\">0\u20136 Months</button>",
          "target": [
            "button[data-age=\"0-6\"]"
          ]
        }
      ]
    },
    {
      "id": "bypass",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag241",
        "section508",
        "section508.22.o",
        "TTv5",
        "TT9.a",
        "EN-301-549",
        "EN-9.2.4.1"
      ],
      "description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
      "help": "Page must have means to bypass repeated blocks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "internal-link-present",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Valid skip link found"
            },
            {
              "id": "header-present",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1>Kindred Roots</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h2>Parenting with <span>Confidence</span>, Growing with Joy</h2>",
                  "target": [
                    ".hero-content > h2"
                  ]
                },
                {
                  "html": "<h2>Everything Your Family Needs to Thrive</h2>",
                  "target": [
                    ".features > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h3>Evidence-Based Advice</h3>",
                  "target": [
                    ".feature-card:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Interactive Tools</h3>",
                  "target": [
                    ".feature-card:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>Supportive Community</h3>",
                  "target": [
                    ".feature-card:nth-child(3) > h3"
                  ]
                },
                {
                  "html": "<h3>Understanding Every Stage of Your Child's Growth</h3>",
                  "target": [
                    "#development > .container > .split-grid > .split-content > h3"
                  ]
                },
                {
                  "html": "<h2>Milestone Tracker</h2>",
                  "target": [
                    "#tracker > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h3>Holistic Health for Busy Families</h3>",
                  "target": [
                    ".reverse > .split-content > h3"
                  ]
                },
                {
                  "html": "<h2>Educational Activities &amp; Curated Products</h2>",
                  "target": [
                    "#shop > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h3>Screen-Free Sensory Play for Toddlers</h3>",
                  "target": [
                    "article:nth-child(1) > .resource-body > h3"
                  ]
                },
                {
                  "html": "<h3>Building an Emotion-Rich Bedtime Routine</h3>",
                  "target": [
                    "article:nth-child(2) > .resource-body > h3"
                  ]
                },
                {
                  "html": "<h4>Age-Specific Guides</h4>",
                  "target": [
                    ".sidebar-widget:nth-child(1) > h4"
                  ]
                },
                {
                  "html": "<h4>From Our Shop</h4>",
                  "target": [
                    "#shop-products > h4"
                  ]
                },
                {
                  "html": "<h5>Sensory Play Starter Kit</h5>",
                  "target": [
                    ".product-mini:nth-child(2) > .product-mini-info > h5"
                  ]
                },
                {
                  "html": "<h5>Visual Routine Chart Set</h5>",
                  "target": [
                    ".product-mini:nth-child(3) > .product-mini-info > h5"
                  ]
                },
                {
                  "html": "<h5>Gentle Sleep Guide (eBook)</h5>",
                  "target": [
                    ".product-mini:nth-child(4) > .product-mini-info > h5"
                  ]
                },
                {
                  "html": "<h4>Ask an Expert</h4>",
                  "target": [
                    "#experts > h4"
                  ]
                },
                {
                  "html": "<h5>Dr. Elena Chen</h5>",
                  "target": [
                    "#experts > h5"
                  ]
                },
                {
                  "html": "<h2>Loved by Families Everywhere</h2>",
                  "target": [
                    "#community > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h2>Frequently Asked Questions</h2>",
                  "target": [
                    ".faq > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h2>Join Thousands of Parents Who Feel Supported</h2>",
                  "target": [
                    ".container > h2"
                  ]
                },
                {
                  "html": "<h5>Explore</h5>",
                  "target": [
                    ".footer-col:nth-child(2) > h5"
                  ]
                },
                {
                  "html": "<h5>Support</h5>",
                  "target": [
                    ".footer-col:nth-child(3) > h5"
                  ]
                },
                {
                  "html": "<h5>Contact Us</h5>",
                  "target": [
                    ".footer-col:nth-child(4) > h5"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e7efee",
                "bgColor": "#115e59",
                "contrastRatio": 6.49,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 6.49"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"tel:+18005550199\">(800) 555-0199</a>",
          "target": [
            "span:nth-child(1) > a[href=\"tel:+18005550199\"]"
          ]
        }
      ]
    },
    {
      "id": "document-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "doc-has-title",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Document has a non-empty <title> element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "form-field-multiple-labels",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag332",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.3.3.2"
      ],
      "description": "Ensure form field does not have multiple label elements",
      "help": "Form field must not have multiple label elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "data": null,
              "relatedNodes": [],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<input type=\"email\" placeholder=\"Enter your email address\" required=\"\">",
          "target": [
            "input"
          ]
        }
      ]
    },
    {
      "id": "html-has-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "The <html> element has a lang attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "html-lang-valid",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages"
            }
          ],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "TT7.b",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <img> elements have alternative text or a role of none or presentation",
      "help": "Images must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has an alt attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "alt-space-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a valid alt attribute value"
            }
          ],
          "impact": null,
          "html": "<img src=\"https://placehold.co/160x50/0F766E/FFF?text=Kindred+Roots&amp;font=poppins\" alt=\"Kindred Roots Logo\">",
          "target": [
            ".brand > img[alt=\"Kindred Roots Logo\"]"
          ]
        }
      ]
    },
    {
      "id": "label",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "non-empty-placeholder",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a placeholder attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<input type=\"email\" placeholder=\"Enter your email address\" required=\"\">",
          "target": [
            "input"
          ]
        }
      ]
    },
    {
      "id": "link-in-text-block",
      "impact": null,
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "link-in-text-block-style",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<div class=\"split-content\">",
                  "target": [
                    "#development > .container > .split-grid > .split-content"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#tracker\" class=\"btn btn-accent\">Track Milestones <i class=\"fas fa-tasks\"></i></a>",
          "target": [
            ".btn-accent"
          ]
        }
      ]
    },
    {
      "id": "link-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "focusable-no-name",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element is not in tab order or has accessible text"
            }
          ],
          "impact": null,
          "html": "<a href=\"tel:+18005550199\">(800) 555-0199</a>",
          "target": [
            "span:nth-child(1) > a[href=\"tel:+18005550199\"]"
          ]
        }
      ]
    },
    {
      "id": "list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "only-listitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List element only has direct children that are allowed inside <li> elements"
            }
          ],
          "impact": null,
          "html": "<ul>",
          "target": [
            "#mainNav > ul"
          ]
        }
      ]
    },
    {
      "id": "listitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "listitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List item has a <ul>, <ol> or role=\"list\" parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<li><a href=\"#top\">Home</a></li>",
          "target": [
            "#mainNav > ul > li:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "meta-viewport",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "meta-viewport",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "<meta> tag does not disable zooming on mobile devices"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
          "target": [
            "meta[name=\"viewport\"]"
          ]
        }
      ]
    },
    {
      "id": "nested-interactive",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "no-focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element does not have focusable descendants"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<img src=\"https://placehold.co/160x50/0F766E/FFF?text=Kindred+Roots&amp;font=poppins\" alt=\"Kindred Roots Logo\">",
          "target": [
            ".brand > img[alt=\"Kindred Roots Logo\"]"
          ]
        }
      ]
    },
    {
      "id": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element contains focusable elements"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div class=\"tracker-tabs\" id=\"trackerTabs\">",
          "target": [
            "#trackerTabs"
          ]
        }
      ]
    },
    {
      "id": "target-size",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag22aa",
        "wcag258"
      ],
      "description": "Ensure touch targets have sufficient size and space",
      "help": "All touch targets must be 24px large, or leave sufficient space",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 24,
                "minOffset": 24
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"tel:+18005550199\">(800) 555-0199</a>",
          "target": [
            "span:nth-child(1) > a[href=\"tel:+18005550199\"]"
          ]
        }
      ]
    }
  ],
  "incomplete": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": null,
                "bgColor": null,
                "contrastRatio": 0,
                "fontSize": "39.0pt (52px)",
                "fontWeight": "bold",
                "messageKey": "bgGradient",
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"hero\">",
                  "target": [
                    ".hero"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element's background color could not be determined due to a background gradient"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<h2>Parenting with <span>Confidence</span>, Growing with Joy</h2>",
          "target": [
            ".hero-content > h2"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
        }
      ]
    }
  ],
  "violations": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#fdfbf7",
                "contrastRatio": 3.44,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.44 (foreground color: #ea580c, background color: #fdfbf7, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Why Kindred Roots</span>",
          "target": [
            ".features > .container > .section-header > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.44 (foreground color: #ea580c, background color: #fdfbf7, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#ffffff",
                "contrastRatio": 3.55,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"development\" class=\"split-section alt\">",
                  "target": [
                    "#development"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.55 (foreground color: #ea580c, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\" style=\"color:var(--accent);font-family:var(--font-heading);font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:0.85rem;display:block;margin-bottom:12px;\">Child Development</span>",
          "target": [
            "#development > .container > .split-grid > .split-content > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.55 (foreground color: #ea580c, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#ea580c",
                "contrastRatio": 3.55,
                "fontSize": "11.4pt (15.2px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#tracker\" class=\"btn btn-accent\">Track Milestones <i class=\"fas fa-tasks\"></i></a>",
                  "target": [
                    ".btn-accent"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.55 (foreground color: #ffffff, background color: #ea580c, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#tracker\" class=\"btn btn-accent\">Track Milestones <i class=\"fas fa-tasks\"></i></a>",
          "target": [
            ".btn-accent"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.55 (foreground color: #ffffff, background color: #ea580c, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#ffffff",
                "contrastRatio": 3.55,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"tracker-container\">",
                  "target": [
                    ".tracker-container"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.55 (foreground color: #ea580c, background color: #ffffff, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"tracker-reset\" id=\"resetTracker\"><i class=\"fas fa-undo\"></i> Reset Progress</button>",
          "target": [
            "#resetTracker"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.55 (foreground color: #ea580c, background color: #ffffff, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#fdfbf7",
                "contrastRatio": 3.44,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.44 (foreground color: #ea580c, background color: #fdfbf7, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\" style=\"color:var(--accent);font-family:var(--font-heading);font-weight:700;text-transform:uppercase;letter-spacing:1.5px;font-size:0.85rem;display:block;margin-bottom:12px;\">Health &amp; Nutrition</span>",
          "target": [
            ".reverse > .split-content > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.44 (foreground color: #ea580c, background color: #fdfbf7, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#fdfbf7",
                "contrastRatio": 3.44,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"shop\" class=\"resources\">",
                  "target": [
                    "#shop"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.44 (foreground color: #ea580c, background color: #fdfbf7, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Resource Hub</span>",
          "target": [
            "#shop > .container > .section-header > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.44 (foreground color: #ea580c, background color: #fdfbf7, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#ffedd5",
                "contrastRatio": 3.1,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"resource-tag\">Educational Activities</span>",
                  "target": [
                    "article:nth-child(1) > .resource-body > .resource-tag"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.1 (foreground color: #ea580c, background color: #ffedd5, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"resource-tag\">Educational Activities</span>",
          "target": [
            "article:nth-child(1) > .resource-body > .resource-tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.1 (foreground color: #ea580c, background color: #ffedd5, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#ffedd5",
                "contrastRatio": 3.1,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"resource-tag\">Emotional Intelligence</span>",
                  "target": [
                    "article:nth-child(2) > .resource-body > .resource-tag"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.1 (foreground color: #ea580c, background color: #ffedd5, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"resource-tag\">Emotional Intelligence</span>",
          "target": [
            "article:nth-child(2) > .resource-body > .resource-tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.1 (foreground color: #ea580c, background color: #ffedd5, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#ffffff",
                "contrastRatio": 3.55,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sidebar-widget expert-widget\" id=\"experts\">",
                  "target": [
                    "#experts"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.55 (foreground color: #ea580c, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"role\">Pediatric Sleep Specialist</span>",
          "target": [
            ".role"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.55 (foreground color: #ea580c, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#ffffff",
                "contrastRatio": 3.55,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"community\" class=\"testimonials\">",
                  "target": [
                    "#community"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.55 (foreground color: #ea580c, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Parent Stories</span>",
          "target": [
            "#community > .container > .section-header > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.55 (foreground color: #ea580c, background color: #ffffff, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ea580c",
                "bgColor": "#fdfbf7",
                "contrastRatio": 3.44,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.44 (foreground color: #ea580c, background color: #fdfbf7, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Common Questions</span>",
          "target": [
            ".faq > .container > .section-header > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.44 (foreground color: #ea580c, background color: #fdfbf7, font size: 10.2pt (13.6px), font weight: bold). Expected contrast ratio of 4.5:1"
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 8467
      },
      {
        "y": 576,
        "height": 8467
      },
      {
        "y": 1152,
        "height": 8467
      },
      {
        "y": 1728,
        "height": 8467
      },
      {
        "y": 2304,
        "height": 8467
      },
      {
        "y": 2880,
        "height": 8467
      },
      {
        "y": 3456,
        "height": 8467
      },
      {
        "y": 4032,
        "height": 8467
      },
      {
        "y": 4608,
        "height": 8467
      },
      {
        "y": 5184,
        "height": 8467
      },
      {
        "y": 5760,
        "height": 8467
      },
      {
        "y": 6336,
        "height": 8467
      },
      {
        "y": 6912,
        "height": 8467
      },
      {
        "y": 7488,
        "height": 8467
      },
      {
        "y": 7747,
        "height": 8467
      }
    ],
    "scans": 16,
    "max_states": 512,
    "settle_ms": 5000,
    "page_timeout_seconds": 150,
    "layout_stability": "consecutive 100ms size samples within one CSS pixel",
    "animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
    "interactive_states": "not exercised",
    "horizontal_scroll": "not exercised"
  }
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Family and Parenting" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.

**Client & Category:**
- Industry: "Family and Parenting"
- Description: Parenting advice, family resources, childcare tips, and support for parents.

**Your Creative Task:**
1.  **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Family and Parenting" category.
2.  **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3.  **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.

**Content & Structure Requirements (Deliver a COMPLETE page):**
-   **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
-   **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Child Development", "Health", "Shop".
-   **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
    -   Address key topics relevant to the "Family and Parenting" category. Consider themes similar to: "Child Safety", "Educational Activities", "Expert Advice".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "nutrition", "emotional intelligence", "behavior management".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Connect with Experts", "Join Support Group", "Download Resource".
-   **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Family and Parenting" sector. Ideas similar but not limited to: "milestone tracker".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "age-specific guides", "expert advice", "featured products".
-   **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
-   **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.