Qwen Qwen3.7 Plus – Law Government and Politics

via Alibaba · Generated

  • AIMAC Debt 7.70
  • Cost $0.023
  • Total Violations 19
  • HTML Size 70 KB
  • Em Dashes 18

Screenshot

View Qwen Qwen3.7 Plus Law Government and Politics page View Live Page

Accessibility Issues Found

19 Serious

  • color-contrast serious 17 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <div class="section-label">Legislative Updates</div>
  • target-size serious 2 instances

    All touch targets must be 24px large, or leave sufficient space

    Example HTML <a href="#resources" class="btn btn-gold btn-large">Find Resources</a>

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>CivicPulse — Empowering Citizens. Strengthening Democracy.</title>
    <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Source+Sans+Pro:wght@300;400;600;700&display=swap" rel="stylesheet">
    <style>
        :root {
            --navy: #1a2744;
            --navy-light: #2a3f6b;
            --gold: #c9952e;
            --gold-light: #e8b94a;
            --cream: #faf8f4;
            --white: #ffffff;
            --gray-100: #f5f5f5;
            --gray-200: #e8e8e8;
            --gray-300: #d1d1d1;
            --gray-600: #6b6b6b;
            --gray-800: #333333;
            --red: #c0392b;
            --green: #27ae60;
            --shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
            --shadow-md: 0 4px 20px rgba(0,0,0,0.12);
            --shadow-lg: 0 8px 40px rgba(0,0,0,0.16);
            --radius: 8px;
            --radius-lg: 12px;
        }

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

        body {
            font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, sans-serif;
            color: var(--gray-800);
            line-height: 1.7;
            background: var(--cream);
            overflow-x: hidden;
        }

        h1, h2, h3, h4, h5 {
            font-family: 'Playfair Display', Georgia, serif;
            line-height: 1.3;
        }

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

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

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

        /* ===== HEADER ===== */
        .header {
            background: var(--navy);
            position: sticky;
            top: 0;
            z-index: 1000;
            box-shadow: 0 2px 20px rgba(0,0,0,0.3);
        }

        .header-top {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 16px 0;
            border-bottom: 1px solid rgba(255,255,255,0.1);
        }

        .logo-area {
            display: flex;
            align-items: center;
            gap: 16px;
        }

        .logo-area img {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            border: 2px solid var(--gold);
        }

        .logo-text h1 {
            font-size: 1.6rem;
            color: var(--white);
            font-weight: 700;
            letter-spacing: -0.5px;
        }

        .logo-text .tagline {
            font-size: 0.75rem;
            color: var(--gold);
            text-transform: uppercase;
            letter-spacing: 2px;
            font-weight: 600;
        }

        .header-cta {
            display: flex;
            gap: 12px;
            align-items: center;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 10px 22px;
            border-radius: var(--radius);
            font-weight: 600;
            font-size: 0.9rem;
            cursor: pointer;
            border: none;
            transition: all 0.3s ease;
            font-family: 'Source Sans Pro', sans-serif;
        }

        .btn-gold {
            background: var(--gold);
            color: var(--navy);
        }

        .btn-gold:hover {
            background: var(--gold-light);
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(201, 149, 46, 0.4);
        }

        .btn-outline {
            background: transparent;
            color: var(--white);
            border: 2px solid rgba(255,255,255,0.3);
        }

        .btn-outline:hover {
            border-color: var(--gold);
            color: var(--gold);
        }

        .btn-navy {
            background: var(--navy);
            color: var(--white);
        }

        .btn-navy:hover {
            background: var(--navy-light);
            transform: translateY(-1px);
        }

        .btn-large {
            padding: 14px 32px;
            font-size: 1rem;
        }

        /* Navigation */
        .nav {
            padding: 0;
        }

        .nav ul {
            display: flex;
            list-style: none;
            gap: 0;
        }

        .nav a {
            display: block;
            padding: 14px 20px;
            color: rgba(255,255,255,0.85);
            font-weight: 600;
            font-size: 0.9rem;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            position: relative;
        }

        .nav a:hover {
            color: var(--gold);
            background: rgba(255,255,255,0.05);
        }

        .nav a::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 0;
            height: 3px;
            background: var(--gold);
            transition: width 0.3s ease;
        }

        .nav a:hover::after {
            width: 60%;
        }

        /* ===== HERO ===== */
        .hero {
            background: linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 100%);
            padding: 80px 0;
            position: relative;
            overflow: hidden;
        }

        .hero::before {
            content: '';
            position: absolute;
            top: 0;
            right: 0;
            width: 50%;
            height: 100%;
            background: url('https://placehold.co/800x600/1a2744/c9952e?text=Capitol+Building&font=playfair+display') center/cover no-repeat;
            opacity: 0.15;
            clip-path: polygon(20% 0, 100% 0, 100% 100%, 0% 100%);
        }

        .hero-content {
            position: relative;
            z-index: 2;
            max-width: 700px;
        }

        .hero-badge {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: rgba(201, 149, 46, 0.15);
            border: 1px solid rgba(201, 149, 46, 0.3);
            padding: 8px 16px;
            border-radius: 50px;
            color: var(--gold);
            font-size: 0.85rem;
            font-weight: 600;
            margin-bottom: 24px;
            text-transform: uppercase;
            letter-spacing: 1px;
        }

        .hero h2 {
            font-size: 3.2rem;
            color: var(--white);
            margin-bottom: 20px;
            font-weight: 800;
        }

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

        .hero p {
            font-size: 1.2rem;
            color: rgba(255,255,255,0.8);
            margin-bottom: 36px;
            line-height: 1.8;
        }

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

        .hero-stats {
            display: flex;
            gap: 48px;
            margin-top: 60px;
            padding-top: 40px;
            border-top: 1px solid rgba(255,255,255,0.1);
        }

        .stat-item {
            text-align: left;
        }

        .stat-number {
            font-family: 'Playfair Display', serif;
            font-size: 2.4rem;
            font-weight: 700;
            color: var(--gold);
        }

        .stat-label {
            font-size: 0.85rem;
            color: rgba(255,255,255,0.6);
            text-transform: uppercase;
            letter-spacing: 1px;
        }

        /* ===== TICKER ===== */
        .ticker {
            background: var(--gold);
            padding: 12px 0;
            overflow: hidden;
        }

        .ticker-content {
            display: flex;
            align-items: center;
            gap: 16px;
            white-space: nowrap;
            animation: scroll 30s linear infinite;
        }

        .ticker-item {
            font-weight: 600;
            color: var(--navy);
            font-size: 0.9rem;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .ticker-item::before {
            content: '●';
            color: var(--red);
            font-size: 0.6rem;
        }

        @keyframes scroll {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }

        /* ===== MAIN LAYOUT ===== */
        .main-layout {
            display: grid;
            grid-template-columns: 1fr 340px;
            gap: 40px;
            padding: 60px 0;
        }

        .main-content {
            min-width: 0;
        }

        /* ===== SECTION STYLES ===== */
        .section {
            margin-bottom: 60px;
        }

        .section-header {
            margin-bottom: 32px;
        }

        .section-label {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            font-size: 0.8rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 2px;
            color: var(--gold);
            margin-bottom: 12px;
        }

        .section-label::before {
            content: '';
            width: 24px;
            height: 2px;
            background: var(--gold);
        }

        .section-title {
            font-size: 2.2rem;
            color: var(--navy);
            margin-bottom: 12px;
        }

        .section-desc {
            font-size: 1.05rem;
            color: var(--gray-600);
            max-width: 600px;
        }

        /* ===== NEWS / LEGISLATIVE UPDATES ===== */
        .news-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 24px;
        }

        .news-card {
            background: var(--white);
            border-radius: var(--radius-lg);
            overflow: hidden;
            box-shadow: var(--shadow-sm);
            transition: all 0.3s ease;
        }

        .news-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-md);
        }

        .news-card.featured {
            grid-column: 1 / -1;
            display: grid;
            grid-template-columns: 1fr 1fr;
        }

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

        .news-card.featured img {
            height: 100%;
            min-height: 300px;
        }

        .news-card-body {
            padding: 24px;
        }

        .news-tag {
            display: inline-block;
            padding: 4px 12px;
            border-radius: 50px;
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 12px;
        }

        .tag-legislation { background: #e8f4fd; color: #1a73e8; }
        .tag-policy { background: #fef3e2; color: #e67e22; }
        .tag-civil-rights { background: #fde8e8; color: #c0392b; }
        .tag-election { background: #e8fde8; color: #27ae60; }

        .news-card h3 {
            font-size: 1.2rem;
            color: var(--navy);
            margin-bottom: 10px;
        }

        .news-card.featured h3 {
            font-size: 1.5rem;
        }

        .news-card p {
            color: var(--gray-600);
            font-size: 0.95rem;
            margin-bottom: 16px;
        }

        .news-meta {
            display: flex;
            align-items: center;
            justify-content: space-between;
            font-size: 0.8rem;
            color: var(--gray-600);
        }

        .read-more {
            color: var(--gold);
            font-weight: 600;
            display: inline-flex;
            align-items: center;
            gap: 4px;
        }

        .read-more:hover {
            color: var(--navy);
        }

        /* ===== LEGAL RESOURCES ===== */
        .resources-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
        }

        .resource-card {
            background: var(--white);
            padding: 32px 24px;
            border-radius: var(--radius-lg);
            text-align: center;
            box-shadow: var(--shadow-sm);
            transition: all 0.3s ease;
            border: 1px solid var(--gray-200);
        }

        .resource-card:hover {
            border-color: var(--gold);
            transform: translateY(-4px);
            box-shadow: var(--shadow-md);
        }

        .resource-icon {
            width: 64px;
            height: 64px;
            background: linear-gradient(135deg, var(--navy), var(--navy-light));
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 20px;
            font-size: 1.8rem;
        }

        .resource-card h4 {
            font-size: 1.1rem;
            color: var(--navy);
            margin-bottom: 10px;
        }

        .resource-card p {
            font-size: 0.9rem;
            color: var(--gray-600);
            margin-bottom: 16px;
        }

        .resource-link {
            color: var(--gold);
            font-weight: 600;
            font-size: 0.9rem;
        }

        .resource-link:hover {
            color: var(--navy);
        }

        /* ===== VOTER INFO ===== */
        .voter-section {
            background: var(--white);
            border-radius: var(--radius-lg);
            overflow: hidden;
            box-shadow: var(--shadow-md);
        }

        .voter-header {
            background: linear-gradient(135deg, var(--navy), var(--navy-light));
            padding: 40px;
            color: var(--white);
        }

        .voter-header h3 {
            font-size: 1.8rem;
            margin-bottom: 12px;
        }

        .voter-header p {
            color: rgba(255,255,255,0.8);
            font-size: 1rem;
        }

        .voter-body {
            padding: 40px;
        }

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

        .voter-step {
            text-align: center;
            position: relative;
        }

        .step-number {
            width: 40px;
            height: 40px;
            background: var(--gold);
            color: var(--navy);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 700;
            font-size: 1.1rem;
            margin: 0 auto 16px;
        }

        .voter-step h4 {
            font-size: 1rem;
            color: var(--navy);
            margin-bottom: 8px;
        }

        .voter-step p {
            font-size: 0.9rem;
            color: var(--gray-600);
        }

        .voter-cta {
            text-align: center;
            padding-top: 24px;
            border-top: 1px solid var(--gray-200);
        }

        /* ===== INTERACTIVE QUIZ ===== */
        .quiz-section {
            background: linear-gradient(135deg, #1a2744 0%, #2a3f6b 50%, #1a2744 100%);
            border-radius: var(--radius-lg);
            padding: 48px;
            color: var(--white);
            position: relative;
            overflow: hidden;
        }

        .quiz-section::before {
            content: '';
            position: absolute;
            top: -50%;
            right: -20%;
            width: 400px;
            height: 400px;
            background: radial-gradient(circle, rgba(201,149,46,0.1) 0%, transparent 70%);
            border-radius: 50%;
        }

        .quiz-section h3 {
            font-size: 1.8rem;
            margin-bottom: 12px;
            position: relative;
        }

        .quiz-section > p {
            color: rgba(255,255,255,0.8);
            margin-bottom: 32px;
            font-size: 1.05rem;
            position: relative;
        }

        .quiz-container {
            position: relative;
            background: rgba(255,255,255,0.08);
            border: 1px solid rgba(255,255,255,0.15);
            border-radius: var(--radius);
            padding: 32px;
            backdrop-filter: blur(10px);
        }

        .quiz-progress {
            display: flex;
            gap: 8px;
            margin-bottom: 24px;
        }

        .progress-dot {
            width: 100%;
            height: 4px;
            background: rgba(255,255,255,0.2);
            border-radius: 2px;
            transition: background 0.3s ease;
        }

        .progress-dot.active {
            background: var(--gold);
        }

        .quiz-question {
            font-family: 'Playfair Display', serif;
            font-size: 1.3rem;
            margin-bottom: 24px;
            line-height: 1.5;
        }

        .quiz-options {
            display: flex;
            flex-direction: column;
            gap: 12px;
            margin-bottom: 24px;
        }

        .quiz-option {
            padding: 16px 20px;
            background: rgba(255,255,255,0.06);
            border: 1px solid rgba(255,255,255,0.2);
            border-radius: var(--radius);
            cursor: pointer;
            transition: all 0.3s ease;
            font-size: 0.95rem;
        }

        .quiz-option:hover {
            background: rgba(201, 149, 46, 0.15);
            border-color: var(--gold);
        }

        .quiz-option.selected {
            background: rgba(201, 149, 46, 0.2);
            border-color: var(--gold);
        }

        .quiz-option.correct {
            background: rgba(39, 174, 96, 0.2);
            border-color: var(--green);
        }

        .quiz-option.incorrect {
            background: rgba(192, 57, 43, 0.2);
            border-color: var(--red);
        }

        .quiz-nav {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .quiz-result {
            text-align: center;
            padding: 20px 0;
        }

        .quiz-result h4 {
            font-size: 1.5rem;
            margin-bottom: 12px;
            color: var(--gold);
        }

        .quiz-result p {
            color: rgba(255,255,255,0.8);
            margin-bottom: 20px;
        }

        .quiz-score {
            font-family: 'Playfair Display', serif;
            font-size: 3rem;
            color: var(--gold);
            font-weight: 700;
        }

        /* ===== SIDEBAR ===== */
        .sidebar {
            position: sticky;
            top: 120px;
            align-self: start;
        }

        .sidebar-widget {
            background: var(--white);
            border-radius: var(--radius-lg);
            padding: 28px;
            margin-bottom: 24px;
            box-shadow: var(--shadow-sm);
            border: 1px solid var(--gray-200);
        }

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

        .trending-item {
            display: flex;
            gap: 12px;
            padding: 12px 0;
            border-bottom: 1px solid var(--gray-100);
        }

        .trending-item:last-child {
            border-bottom: none;
        }

        .trending-number {
            font-family: 'Playfair Display', serif;
            font-size: 1.4rem;
            font-weight: 700;
            color: var(--gold);
            min-width: 28px;
        }

        .trending-text h5 {
            font-family: 'Source Sans Pro', sans-serif;
            font-size: 0.9rem;
            font-weight: 600;
            color: var(--navy);
            margin-bottom: 4px;
        }

        .trending-text p {
            font-size: 0.8rem;
            color: var(--gray-600);
        }

        .volunteer-list {
            list-style: none;
        }

        .volunteer-list li {
            padding: 12px 0;
            border-bottom: 1px solid var(--gray-100);
            display: flex;
            align-items: flex-start;
            gap: 10px;
        }

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

        .volunteer-list li::before {
            content: '→';
            color: var(--gold);
            font-weight: 700;
            margin-top: 2px;
        }

        .volunteer-list a {
            font-size: 0.9rem;
            color: var(--gray-800);
            font-weight: 500;
        }

        .volunteer-list a:hover {
            color: var(--gold);
        }

        .advocacy-win {
            padding: 16px;
            background: #e8fde8;
            border-radius: var(--radius);
            margin-bottom: 12px;
            border-left: 3px solid var(--green);
        }

        .advocacy-win:last-child {
            margin-bottom: 0;
        }

        .advocacy-win h5 {
            font-family: 'Source Sans Pro', sans-serif;
            font-size: 0.9rem;
            color: var(--navy);
            margin-bottom: 4px;
        }

        .advocacy-win p {
            font-size: 0.8rem;
            color: var(--gray-600);
        }

        /* ===== TESTIMONIALS ===== */
        .testimonials-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 24px;
        }

        .testimonial-card {
            background: var(--white);
            padding: 32px;
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-sm);
            border: 1px solid var(--gray-200);
            position: relative;
        }

        .testimonial-card::before {
            content: '"';
            font-family: 'Playfair Display', serif;
            font-size: 4rem;
            color: var(--gold);
            position: absolute;
            top: 16px;
            left: 24px;
            line-height: 1;
            opacity: 0.3;
        }

        .testimonial-card p {
            font-style: italic;
            color: var(--gray-600);
            margin-bottom: 20px;
            padding-top: 20px;
            font-size: 0.95rem;
            line-height: 1.8;
        }

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

        .testimonial-author img {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            object-fit: cover;
        }

        .testimonial-author h5 {
            font-family: 'Source Sans Pro', sans-serif;
            font-size: 0.9rem;
            color: var(--navy);
        }

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

        /* ===== FAQ ===== */
        .faq-list {
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        .faq-item {
            background: var(--white);
            border-radius: var(--radius);
            border: 1px solid var(--gray-200);
            overflow: hidden;
            transition: all 0.3s ease;
        }

        .faq-item.active {
            border-color: var(--gold);
            box-shadow: var(--shadow-sm);
        }

        .faq-question {
            padding: 20px 24px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            cursor: pointer;
            font-weight: 600;
            color: var(--navy);
            font-size: 1rem;
            transition: all 0.3s ease;
        }

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

        .faq-icon {
            width: 24px;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.2rem;
            color: var(--gold);
            transition: transform 0.3s ease;
        }

        .faq-item.active .faq-icon {
            transform: rotate(45deg);
        }

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

        .faq-item.active .faq-answer {
            max-height: 300px;
            padding: 0 24px 20px;
        }

        .faq-answer p {
            color: var(--gray-600);
            font-size: 0.95rem;
            line-height: 1.8;
        }

        /* ===== CTA BANNER ===== */
        .cta-banner {
            background: linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 100%);
            border-radius: var(--radius-lg);
            padding: 60px;
            text-align: center;
            color: var(--white);
            position: relative;
            overflow: hidden;
        }

        .cta-banner::before {
            content: '';
            position: absolute;
            top: -100px;
            left: -100px;
            width: 300px;
            height: 300px;
            background: radial-gradient(circle, rgba(201,149,46,0.15) 0%, transparent 70%);
            border-radius: 50%;
        }

        .cta-banner::after {
            content: '';
            position: absolute;
            bottom: -100px;
            right: -100px;
            width: 300px;
            height: 300px;
            background: radial-gradient(circle, rgba(201,149,46,0.1) 0%, transparent 70%);
            border-radius: 50%;
        }

        .cta-banner h3 {
            font-size: 2rem;
            margin-bottom: 16px;
            position: relative;
        }

        .cta-banner p {
            font-size: 1.1rem;
            color: rgba(255,255,255,0.8);
            margin-bottom: 32px;
            max-width: 500px;
            margin-left: auto;
            margin-right: auto;
            position: relative;
        }

        .cta-banner .btn {
            position: relative;
        }

        /* ===== FOOTER ===== */
        .footer {
            background: var(--navy);
            color: rgba(255,255,255,0.7);
            padding: 60px 0 0;
        }

        .footer-grid {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1fr;
            gap: 40px;
            padding-bottom: 40px;
            border-bottom: 1px solid rgba(255,255,255,0.1);
        }

        .footer-about h3 {
            color: var(--white);
            font-size: 1.4rem;
            margin-bottom: 16px;
        }

        .footer-about p {
            font-size: 0.9rem;
            line-height: 1.8;
            margin-bottom: 20px;
        }

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

        .social-link {
            width: 40px;
            height: 40px;
            background: rgba(255,255,255,0.1);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.9rem;
            color: var(--white);
            transition: all 0.3s ease;
        }

        .social-link:hover {
            background: var(--gold);
            color: var(--navy);
        }

        .footer-col h4 {
            color: var(--white);
            font-family: 'Source Sans Pro', sans-serif;
            font-size: 0.9rem;
            text-transform: uppercase;
            letter-spacing: 1px;
            margin-bottom: 20px;
        }

        .footer-col ul {
            list-style: none;
        }

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

        .footer-col a {
            font-size: 0.9rem;
            color: rgba(255,255,255,0.6);
        }

        .footer-col a:hover {
            color: var(--gold);
        }

        .footer-bottom {
            padding: 24px 0;
            display: flex;
            align-items: center;
            justify-content: space-between;
            font-size: 0.85rem;
        }

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

        .footer-legal a:hover {
            color: var(--gold);
        }

        /* ===== RESPONSIVE ===== */
        @media (max-width: 1024px) {
            .main-layout {
                grid-template-columns: 1fr;
            }

            .sidebar {
                position: static;
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 24px;
            }
        }

        @media (max-width: 768px) {
            .hero h2 {
                font-size: 2.2rem;
            }

            .hero-stats {
                gap: 24px;
                flex-wrap: wrap;
            }

            .news-grid {
                grid-template-columns: 1fr;
            }

            .news-card.featured {
                grid-template-columns: 1fr;
            }

            .resources-grid {
                grid-template-columns: 1fr;
            }

            .voter-steps {
                grid-template-columns: 1fr;
            }

            .testimonials-grid {
                grid-template-columns: 1fr;
            }

            .footer-grid {
                grid-template-columns: 1fr 1fr;
            }

            .sidebar {
                grid-template-columns: 1fr;
            }

            .nav ul {
                flex-wrap: wrap;
            }

            .header-cta {
                display: none;
            }
        }
    </style>
</head>
<body>

    <!-- HEADER -->
    <header class="header">
        <div class="container">
            <div class="header-top">
                <div class="logo-area">
                    <img src="https://placehold.co/48x48/1a2744/c9952e?text=CP&font=playfair+display" alt="CivicPulse Logo">
                    <div class="logo-text">
                        <h1>CivicPulse</h1>
                        <div class="tagline">Empowering Citizens. Strengthening Democracy.</div>
                    </div>
                </div>
                <div class="header-cta">
                    <a href="#donate" class="btn btn-outline">Donate</a>
                    <a href="#action" class="btn btn-gold">Take Action</a>
                </div>
            </div>
            <nav class="nav">
                <ul>
                    <li><a href="#news">News</a></li>
                    <li><a href="#resources">Legal Resources</a></li>
                    <li><a href="#voter">Voter Hub</a></li>
                    <li><a href="#about">About</a></li>
                    <li><a href="#action">Take Action</a></li>
                    <li><a href="#donate">Donate</a></li>
                    <li><a href="#contact">Contact</a></li>
                </ul>
            </nav>
        </div>
    </header>

    <!-- TICKER -->
    <div class="ticker">
        <div class="ticker-content">
            <span class="ticker-item">BREAKING: Senate passes bipartisan infrastructure amendment — Full analysis available now</span>
            <span class="ticker-item">New voter registration deadline: October 15 — Check your status today</span>
            <span class="ticker-item">Supreme Court to hear arguments on digital privacy statute next term</span>
            <span class="ticker-item">Ballot Measure 42 polling data updated — See what voters think</span>
            <span class="ticker-item">CivicPulse wins 2024 Nonpartisan Advocacy Award</span>
            <span class="ticker-item">BREAKING: Senate passes bipartisan infrastructure amendment — Full analysis available now</span>
            <span class="ticker-item">New voter registration deadline: October 15 — Check your status today</span>
            <span class="ticker-item">Supreme Court to hear arguments on digital privacy statute next term</span>
            <span class="ticker-item">Ballot Measure 42 polling data updated — See what voters think</span>
            <span class="ticker-item">CivicPulse wins 2024 Nonpartisan Advocacy Award</span>
        </div>
    </div>

    <!-- HERO -->
    <section class="hero">
        <div class="container">
            <div class="hero-content">
                <div class="hero-badge">⚡ Nonpartisan • Independent • Trusted Since 2012</div>
                <h2>Your Voice in <span>Governance</span> Starts Here</h2>
                <p>CivicPulse is the nation's leading nonpartisan resource for legal information, legislative tracking, and civic engagement. We equip citizens with the knowledge and tools they need to participate meaningfully in democracy — from understanding ballot measures to contacting their representatives.</p>
                <div class="hero-actions">
                    <a href="#resources" class="btn btn-gold btn-large">Find Resources</a>
                    <a href="#voter" class="btn btn-outline btn-large">Check Voter Status</a>
                </div>
                <div class="hero-stats">
                    <div class="stat-item">
                        <div class="stat-number">2.4M+</div>
                        <div class="stat-label">Citizens Served</div>
                    </div>
                    <div class="stat-item">
                        <div class="stat-number">847</div>
                        <div class="stat-label">Bills Tracked</div>
                    </div>
                    <div class="stat-item">
                        <div class="stat-number">50</div>
                        <div class="stat-label">States Covered</div>
                    </div>
                    <div class="stat-item">
                        <div class="stat-number">12K+</div>
                        <div class="stat-label">Volunteers</div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- MAIN LAYOUT -->
    <div class="container">
        <div class="main-layout">
            <main class="main-content">

                <!-- LEGISLATIVE UPDATES / NEWS -->
                <section class="section" id="news">
                    <div class="section-header">
                        <div class="section-label">Legislative Updates</div>
                        <h2 class="section-title">What's Happening in Government</h2>
                        <p class="section-desc">Stay informed with real-time tracking of legislation, court decisions, and policy developments that affect your daily life and rights.</p>
                    </div>
                    <div class="news-grid">
                        <article class="news-card featured">
                            <img src="https://picsum.photos/600/400?grayscale" alt="Capitol building session">
                            <div class="news-card-body">
                                <span class="news-tag tag-legislation">Legislation</span>
                                <h3>Digital Privacy Act Advances Through Committee with Bipartisan Support</h3>
                                <p>The landmark Digital Privacy and Consumer Protection Act cleared the Senate Judiciary Committee this week with a rare bipartisan vote of 18-4. The proposed statute would establish comprehensive federal standards for data collection, mandate breach notification within 72 hours, and create a new enforcement division within the FTC. Legal analysts note this represents the most significant expansion of digital privacy protections since the Electronic Communications Privacy Act of 1986. Public comment periods remain open through November 30.</p>
                                <div class="news-meta">
                                    <span>November 2, 2024 • 8 min read</span>
                                    <a href="#" class="read-more">Read Full Analysis →</a>
                                </div>
                            </div>
                        </article>
                        <article class="news-card">
                            <img src="https://picsum.photos/400/250?grayscale&blur=1" alt="Voting booth">
                            <div class="news-card-body">
                                <span class="news-tag tag-election">Elections</span>
                                <h3>Ballot Measure 42: What the Proposed Constitutional Amendment Means for Voters</h3>
                                <p>Ballot Measure 42 would amend the state constitution to establish an independent redistricting commission, removing the authority currently held by the state legislature. Proponents argue this would reduce gerrymandering, while opponents raise concerns about accountability and jurisdictional overlap with existing oversight bodies.</p>
                                <div class="news-meta">
                                    <span>Oct 28, 2024</span>
                                    <a href="#" class="read-more">Read More →</a>
                                </div>
                            </div>
                        </article>
                        <article class="news-card">
                            <img src="https://picsum.photos/400/250?grayscale&blur=2" alt="Courthouse">
                            <div class="news-card-body">
                                <span class="news-tag tag-civil-rights">Civil Rights</span>
                                <h3>Supreme Court Agrees to Hear Case on First Amendment Protections for Online Speech</h3>
                                <p>In a decision that could reshape digital free speech jurisprudence, the Supreme Court granted certiorari in Henderson v. Pacific Platform, a case examining whether social media companies can be compelled by state statute to host content they would otherwise moderate.</p>
                                <div class="news-meta">
                                    <span>Oct 25, 2024</span>
                                    <a href="#" class="read-more">Read More →</a>
                                </div>
                            </div>
                        </article>
                    </div>
                </section>

                <!-- LEGAL RESOURCES -->
                <section class="section" id="resources">
                    <div class="section-header">
                        <div class="section-label">Legal Resources</div>
                        <h2 class="section-title">Know Your Rights, Know the Law</h2>
                        <p class="section-desc">Access comprehensive, plain-language legal guides curated by our team of attorneys and policy experts. All resources are free and regularly updated.</p>
                    </div>
                    <div class="resources-grid">
                        <div class="resource-card">
                            <div class="resource-icon">📜</div>
                            <h4>Constitutional Rights Guide</h4>
                            <p>A comprehensive guide to your rights under the U.S. Constitution and key Supreme Court interpretations. Covers First through Fourteenth Amendments with practical examples.</p>
                            <a href="#" class="resource-link">Access Guide →</a>
                        </div>
                        <div class="resource-card">
                            <div class="resource-icon">🏛️</div>
                            <h4>Legislative Tracker</h4>
                            <p>Track bills from introduction to enactment across all 50 states and Congress. Get alerts on legislation affecting your jurisdiction and areas of interest.</p>
                            <a href="#" class="resource-link">Start Tracking →</a>
                        </div>
                        <div class="resource-card">
                            <div class="resource-icon">⚖️</div>
                            <h4>Court Decisions Database</h4>
                            <p>Search and analyze recent federal and state court decisions. Our legal team provides plain-language summaries of rulings and their practical implications.</p>
                            <a href="#" class="resource-link">Search Cases →</a>
                        </div>
                        <div class="resource-card">
                            <div class="resource-icon">📋</div>
                            <h4>Policy Briefs</h4>
                            <p>In-depth analysis of current policy debates, including fiscal policy, healthcare reform, environmental regulation, and immigration law. Written for informed citizens.</p>
                            <a href="#" class="resource-link">Read Briefs →</a>
                        </div>
                        <div class="resource-card">
                            <div class="resource-icon">🗳️</div>
                            <h4>Ballot Measure Analysis</h4>
                            <p>Nonpartisan analysis of every ballot measure in your jurisdiction. Understand the legal text, fiscal impact, and arguments from both sides before you vote.</p>
                            <a href="#" class="resource-link">View Measures →</a>
                        </div>
                        <div class="resource-card">
                            <div class="resource-icon">🤝</div>
                            <h4>Find Legal Aid</h4>
                            <p>Connect with pro bono legal services, legal aid organizations, and attorney referral programs in your area. Free and low-cost options for qualifying individuals.</p>
                            <a href="#" class="resource-link">Find Help →</a>
                        </div>
                    </div>
                </section>

                <!-- VOTER INFORMATION -->
                <section class="section" id="voter">
                    <div class="section-header">
                        <div class="section-label">Civic Engagement</div>
                        <h2 class="section-title">Your Voter Information Hub</h2>
                        <p class="section-desc">Everything you need to register, verify your status, find your polling place, and make informed decisions on every item on your ballot.</p>
                    </div>
                    <div class="voter-section">
                        <div class="voter-header">
                            <h3>Three Steps to Civic Participation</h3>
                            <p>Whether you're a first-time voter or a lifelong participant, our streamlined process ensures you're ready for every election in your jurisdiction.</p>
                        </div>
                        <div class="voter-body">
                            <div class="voter-steps">
                                <div class="voter-step">
                                    <div class="step-number">1</div>
                                    <h4>Verify Registration</h4>
                                    <p>Check your voter registration status across all jurisdictions. Confirm your address is current and your party affiliation reflects your preferences. Many states require re-registration after moving or changing your name.</p>
                                </div>
                                <div class="voter-step">
                                    <div class="step-number">2</div>
                                    <h4>Know Your Ballot</h4>
                                    <p>Review every candidate and ballot measure before election day. Our nonpartisan analysis covers local races, judicial retention votes, bond issues, and constitutional amendments specific to your precinct and district.</p>
                                </div>
                                <div class="voter-step">
                                    <div class="step-number">3</div>
                                    <h4>Cast Your Vote</h4>
                                    <p>Find your polling place, understand early voting options in your state, or request an absentee ballot. Learn about voter ID requirements and your rights at the polls under federal and state statute.</p>
                                </div>
                            </div>
                            <div class="voter-cta">
                                <a href="#" class="btn btn-navy btn-large">Check My Voter Registration</a>
                            </div>
                        </div>
                    </div>
                </section>

                <!-- INTERACTIVE QUIZ -->
                <section class="section" id="quiz">
                    <div class="section-header">
                        <div class="section-label">Interactive</div>
                        <h2 class="section-title">Know Your Rights Quiz</h2>
                        <p class="section-desc">Test your knowledge of constitutional rights and civic responsibilities. This interactive quiz helps you understand the legal protections that apply to you every day.</p>
                    </div>
                    <div class="quiz-section">
                        <h3>How Well Do You Know Your Constitutional Rights?</h3>
                        <p>Answer 5 questions to discover your civic knowledge score and learn about protections you may not know you have.</p>
                        <div class="quiz-container" id="quizContainer">
                            <div class="quiz-progress" id="quizProgress">
                                <div class="progress-dot active"></div>
                                <div class="progress-dot"></div>
                                <div class="progress-dot"></div>
                                <div class="progress-dot"></div>
                                <div class="progress-dot"></div>
                            </div>
                            <div id="quizContent">
                                <div class="quiz-question" id="quizQuestion">Under the First Amendment, which of the following types of speech is NOT protected?</div>
                                <div class="quiz-options" id="quizOptions">
                                    <div class="quiz-option" onclick="selectOption(this, 0)">Political criticism of elected officials</div>
                                    <div class="quiz-option" onclick="selectOption(this, 1)">True threats and incitement to imminent lawless action</div>
                                    <div class="quiz-option" onclick="selectOption(this, 2)">Peaceful protest in public forums</div>
                                    <div class="quiz-option" onclick="selectOption(this, 3)">Artistic expression including symbolic speech</div>
                                </div>
                            </div>
                            <div class="quiz-nav">
                                <span id="quizCounter" style="color: rgba(255,255,255,0.6); font-size: 0.9rem;">Question 1 of 5</span>
                                <button class="btn btn-gold" id="quizNext" onclick="nextQuestion()" style="display:none;">Next Question →</button>
                            </div>
                        </div>
                    </div>
                </section>

                <!-- TESTIMONIALS -->
                <section class="section" id="about">
                    <div class="section-header">
                        <div class="section-label">Community Voices</div>
                        <h2 class="section-title">Trusted by Citizens Nationwide</h2>
                        <p class="section-desc">Hear from the people whose lives have been impacted by the resources and advocacy provided by CivicPulse.</p>
                    </div>
                    <div class="testimonials-grid">
                        <div class="testimonial-card">
                            <p>CivicPulse's ballot measure analysis was invaluable during the last election. For the first time, I felt I truly understood the legal implications of every proposition on my ballot. Their nonpartisan approach gave me confidence that I was making informed decisions for my family and community.</p>
                            <div class="testimonial-author">
                                <img src="https://i.pravatar.cc/44?u=maria" alt="Maria Santos">
                                <div>
                                    <h5>Maria Santos</h5>
                                    <span>Community Organizer, Phoenix, AZ</span>
                                </div>
                            </div>
                        </div>
                        <div class="testimonial-card">
                            <p>As a small business owner, I needed to understand new regulatory statutes affecting my industry. CivicPulse's policy briefs translated complex legislative language into actionable guidance. Their legislative tracker alerted me to a bill that would have significantly impacted my operations — I was able to contact my representative in time.</p>
                            <div class="testimonial-author">
                                <img src="https://i.pravatar.cc/44?u=james" alt="James Whitfield">
                                <div>
                                    <h5>James Whitfield</h5>
                                    <span>Small Business Owner, Portland, OR</span>
                                </div>
                            </div>
                        </div>
                        <div class="testimonial-card">
                            <p>The Know Your Rights guide helped me navigate a difficult situation with local law enforcement. I knew exactly what my constitutional protections were and how to assert them calmly and effectively. Every American should have access to this kind of clear, accurate legal information.</p>
                            <div class="testimonial-author">
                                <img src="https://i.pravatar.cc/44?u=deborah" alt="Deborah Chen">
                                <div>
                                    <h5>Deborah Chen</h5>
                                    <span>Educator, Chicago, IL</span>
                                </div>
                            </div>
                        </div>
                        <div class="testimonial-card">
                            <p>I volunteered with CivicPulse's voter registration drive and witnessed firsthand how their resources empower underserved communities. Their multilingual guides and accessible formats ensure that language barriers don't prevent eligible citizens from exercising their most fundamental right.</p>
                            <div class="testimonial-author">
                                <img src="https://i.pravatar.cc/44?u=marcus" alt="Marcus Johnson">
                                <div>
                                    <h5>Marcus Johnson</h5>
                                    <span>Volunteer Coordinator, Atlanta, GA</span>
                                </div>
                            </div>
                        </div>
                    </div>
                </section>

                <!-- FAQ -->
                <section class="section">
                    <div class="section-header">
                        <div class="section-label">Common Questions</div>
                        <h2 class="section-title">Frequently Asked Questions</h2>
                    </div>
                    <div class="faq-list">
                        <div class="faq-item active">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>Is CivicPulse affiliated with any political party?</span>
                                <span class="faq-icon">+</span>
                            </div>
                            <div class="faq-answer">
                                <p>No. CivicPulse is a strictly nonpartisan 501(c)(3) nonprofit organization. We do not endorse candidates, contribute to political campaigns, or advocate for or against any political party. Our mission is to provide accurate, accessible legal and civic information to all citizens regardless of their political affiliation. Our editorial independence is protected by our organizational bylaws and reviewed annually by an independent ethics board.</p>
                            </div>
                        </div>
                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>How do you ensure the accuracy of your legal information?</span>
                                <span class="faq-icon">+</span>
                            </div>
                            <div class="faq-answer">
                                <p>All legal content is authored or reviewed by licensed attorneys in the relevant jurisdiction. Our editorial team includes former judges, law professors, and policy analysts with decades of combined experience. We update all resources within 48 hours of significant legislative changes or court rulings. Each resource includes citations to primary legal sources including statutes, case law, and regulatory text.</p>
                            </div>
                        </div>
                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>Can CivicPulse provide me with personal legal advice?</span>
                                <span class="faq-icon">+</span>
                            </div>
                            <div class="faq-answer">
                                <p>CivicPulse provides general legal information and educational resources, but we cannot provide personalized legal advice. If you need legal assistance with a specific situation, we recommend using our "Find Legal Aid" resource to connect with qualified attorneys or legal aid organizations in your jurisdiction. Many states also offer free legal hotlines for common civil matters.</p>
                            </div>
                        </div>
                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>How can I volunteer or get involved with CivicPulse?</span>
                                <span class="faq-icon">+</span>
                            </div>
                            <div class="faq-answer">
                                <p>We welcome volunteers across all 50 states! Opportunities include voter registration drives, community education workshops, legal research assistance, translation services, and digital advocacy. Visit our "Take Action" page to see current openings, or contact your state coordinator directly. No legal background is required for most volunteer positions — we provide comprehensive training for all roles.</p>
                            </div>
                        </div>
                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>What jurisdictions does CivicPulse cover?</span>
                                <span class="faq-icon">+</span>
                            </div>
                            <div class="faq-answer">
                                <p>CivicPulse covers all 50 U.S. states, the District of Columbia, and U.S. territories including Puerto Rico, Guam, and the U.S. Virgin Islands. Our federal coverage includes all branches of government — Congress, the Executive Branch, and the federal judiciary. For state-level coverage, we track legislation, ballot measures, and court decisions in every state legislature and state supreme court.</p>
                            </div>
                        </div>
                    </div>
                </section>

                <!-- CTA BANNER -->
                <section class="section" id="action">
                    <div class="cta-banner">
                        <h3>Democracy Works When Citizens Participate</h3>
                        <p>Join over 2.4 million Americans who rely on CivicPulse for the information they need to make their voices heard. Your support keeps these resources free for everyone.</p>
                        <div style="display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;">
                            <a href="#donate" class="btn btn-gold btn-large">Donate Now</a>
                            <a href="#" class="btn btn-outline btn-large">Share This Resource</a>
                        </div>
                    </div>
                </section>

            </main>

            <!-- SIDEBAR -->
            <aside class="sidebar">
                <div class="sidebar-widget">
                    <h4>🔥 Trending Issues</h4>
                    <div class="trending-item">
                        <span class="trending-number">1</span>
                        <div class="trending-text">
                            <h5>Digital Privacy Act of 2024</h5>
                            <p>Federal data protection standards</p>
                        </div>
                    </div>
                    <div class="trending-item">
                        <span class="trending-number">2</span>
                        <div class="trending-text">
                            <h5>Redistricting Reform</h5>
                            <p>Independent commissions expanding</p>
                        </div>
                    </div>
                    <div class="trending-item">
                        <span class="trending-number">3</span>
                        <div class="trending-text">
                            <h5>Voter ID Law Challenges</h5>
                            <p>Multiple states face court battles</p>
                        </div>
                    </div>
                    <div class="trending-item">
                        <span class="trending-number">4</span>
                        <div class="trending-text">
                            <h5>AI Regulation Framework</h5>
                            <p>Executive order implementation</p>
                        </div>
                    </div>
                    <div class="trending-item">
                        <span class="trending-number">5</span>
                        <div class="trending-text">
                            <h5>Municipal Bond Measures</h5>
                            <p>Local infrastructure funding debates</p>
                        </div>
                    </div>
                </div>

                <div class="sidebar-widget">
                    <h4>🙋 Volunteer Opportunities</h4>
                    <ul class="volunteer-list">
                        <li><a href="#">Voter Registration Drive — Phoenix, AZ (Nov 5)</a></li>
                        <li><a href="#">Community Legal Workshop — Virtual (Nov 8)</a></li>
                        <li><a href="#">Ballot Measure Research — Remote (Ongoing)</a></li>
                        <li><a href="#">Translation Volunteer — Spanish/English (Nov 12)</a></li>
                        <li><a href="#">Polling Place Monitor Training — Atlanta, GA</a></li>
                    </ul>
                </div>

                <div class="sidebar-widget">
                    <h4>🏆 Recent Advocacy Wins</h4>
                    <div class="advocacy-win">
                        <h5>Expanded Early Voting in Georgia</h5>
                        <p>Our coalition's testimony contributed to a 3-day expansion of early voting periods across 12 counties.</p>
                    </div>
                    <div class="advocacy-win">
                        <h5>Transparency Ordinance — Austin, TX</h5>
                        <p>CivicPulse-drafted model legislation adopted by city council, requiring public disclosure of lobbying expenditures.</p>
                    </div>
                    <div class="advocacy-win">
                        <h5>Legal Aid Funding Restored — Ohio</h5>
                        <p>Advocacy campaign helped restore $4.2M in state funding for civil legal aid services.</p>
                    </div>
                </div>

                <div class="sidebar-widget" id="donate">
                    <h4>💛 Support Our Mission</h4>
                    <p style="font-size: 0.9rem; color: var(--gray-600); margin-bottom: 16px;">Your tax-deductible donation keeps legal resources free and accessible for all Americans.</p>
                    <div style="display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap;">
                        <button class="btn btn-navy" style="padding: 8px 16px; font-size: 0.85rem;">$10</button>
                        <button class="btn btn-navy" style="padding: 8px 16px; font-size: 0.85rem;">$25</button>
                        <button class="btn btn-gold" style="padding: 8px 16px; font-size: 0.85rem;">$50</button>
                        <button class="btn btn-navy" style="padding: 8px 16px; font-size: 0.85rem;">$100</button>
                    </div>
                    <a href="#" class="btn btn-gold" style="width: 100%; justify-content: center;">Donate Now</a>
                </div>
            </aside>
        </div>
    </div>

    <!-- FOOTER -->
    <footer class="footer" id="contact">
        <div class="container">
            <div class="footer-grid">
                <div class="footer-about">
                    <h3>CivicPulse</h3>
                    <p>CivicPulse is a nonpartisan 501(c)(3) nonprofit organization dedicated to strengthening American democracy through accessible legal information, civic education, and citizen engagement. Founded in 2012, we serve millions of Americans across all 50 states with free, accurate, and timely resources.</p>
                    <div class="social-links">
                        <a href="#" class="social-link" title="Twitter/X">𝕏</a>
                        <a href="#" class="social-link" title="Facebook">f</a>
                        <a href="#" class="social-link" title="LinkedIn">in</a>
                        <a href="#" class="social-link" title="YouTube">▶</a>
                        <a href="#" class="social-link" title="Instagram">◻</a>
                    </div>
                </div>
                <div class="footer-col">
                    <h4>Resources</h4>
                    <ul>
                        <li><a href="#">Legal Guides</a></li>
                        <li><a href="#">Legislative Tracker</a></li>
                        <li><a href="#">Court Database</a></li>
                        <li><a href="#">Policy Briefs</a></li>
                        <li><a href="#">Ballot Analysis</a></li>
                        <li><a href="#">Find Legal Aid</a></li>
                    </ul>
                </div>
                <div class="footer-col">
                    <h4>Organization</h4>
                    <ul>
                        <li><a href="#">About Us</a></li>
                        <li><a href="#">Our Team</a></li>
                        <li><a href="#">Annual Reports</a></li>
                        <li><a href="#">Press Room</a></li>
                        <li><a href="#">Careers</a></li>
                        <li><a href="#">Partner With Us</a></li>
                    </ul>
                </div>
                <div class="footer-col">
                    <h4>Contact</h4>
                    <ul>
                        <li><a href="#">1200 Pennsylvania Ave NW</a></li>
                        <li><a href="#">Suite 450, Washington, DC 20004</a></li>
                        <li><a href="tel:+12025551234">(202) 555-1234</a></li>
                        <li><a href="mailto:info@civicpulse.org">info@civicpulse.org</a></li>
                        <li style="margin-top: 12px;"><a href="#">Newsletter Signup</a></li>
                        <li><a href="#">Media Inquiries</a></li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <span>© 2024 CivicPulse. All rights reserved. EIN: 47-1234567</span>
                <div class="footer-legal">
                    <a href="#">Privacy Policy</a>
                    <a href="#">Terms of Service</a>
                    <a href="#">Accessibility</a>
                    <a href="#">Cookie Policy</a>
                </div>
            </div>
        </div>
    </footer>

    <script>
        // FAQ Accordion
        function toggleFaq(element) {
            const item = element.parentElement;
            const isActive = item.classList.contains('active');
            
            // Close all
            document.querySelectorAll('.faq-item').forEach(faq => {
                faq.classList.remove('active');
            });
            
            // Open clicked if it wasn't active
            if (!isActive) {
                item.classList.add('active');
            }
        }

        // Quiz Functionality
        const quizData = [
            {
                question: "Under the First Amendment, which of the following types of speech is NOT protected?",
                options: [
                    "Political criticism of elected officials",
                    "True threats and incitement to imminent lawless action",
                    "Peaceful protest in public forums",
                    "Artistic expression including symbolic speech"
                ],
                correct: 1
            },
            {
                question: "What amendment guarantees the right to a speedy and public trial by an impartial jury?",
                options: [
                    "Fifth Amendment",
                    "Seventh Amendment",
                    "Sixth Amendment",
                    "Eighth Amendment"
                ],
                correct: 2
            },
            {
                question: "Under the Fourth Amendment, what standard must law enforcement meet to obtain a search warrant?",
                options: [
                    "Reasonable suspicion",
                    "Probable cause",
                    "Preponderance of evidence",
                    "Clear and convincing evidence"
                ],
                correct: 1
            },
            {
                question: "Which article of the U.S. Constitution establishes the legislative branch?",
                options: [
                    "Article I",
                    "Article II",
                    "Article III",
                    "Article IV"
                ],
                correct: 0
            },
            {
                question: "The Equal Protection Clause, which requires states to treat individuals equally under the law, is found in which amendment?",
                options: [
                    "Thirteenth Amendment",
                    "Fourteenth Amendment",
                    "Fifteenth Amendment",
                    "Nineteenth Amendment"
                ],
                correct: 1
            }
        ];

        let currentQuestion = 0;
        let score = 0;
        let answered = false;

        function selectOption(element, index) {
            if (answered) return;
            answered = true;

            const options = document.querySelectorAll('.quiz-option');
            const correctIndex = quizData[currentQuestion].correct;

            options.forEach((opt, i) => {
                opt.style.pointerEvents = 'none';
                if (i === correctIndex) {
                    opt.classList.add('correct');
                }
            });

            if (index === correctIndex) {
                score++;
                element.classList.add('correct');
            } else {
                element.classList.add('incorrect');
            }

            document.getElementById('quizNext').style.display = 'inline-flex';
        }

        function nextQuestion() {
            currentQuestion++;
            answered = false;

            if (currentQuestion >= quizData.length) {
                showResults();
                return;
            }

            // Update progress
            const dots = document.querySelectorAll('.progress-dot');
            dots.forEach((dot, i) => {
                dot.classList.toggle('active', i <= currentQuestion);
            });

            // Update question
            const data = quizData[currentQuestion];
            document.getElementById('quizQuestion').textContent = data.question;
            
            const optionsContainer = document.getElementById('quizOptions');
            optionsContainer.innerHTML = '';
            data.options.forEach((opt, i) => {
                const div = document.createElement('div');
                div.className = 'quiz-option';
                div.textContent = opt;
                div.onclick = function() { selectOption(this, i); };
                optionsContainer.appendChild(div);
            });

            document.getElementById('quizCounter').textContent = `Question ${currentQuestion + 1} of ${quizData.length}`;
            document.getElementById('quizNext').style.display = 'none';
        }

        function showResults() {
            const container = document.getElementById('quizContent');
            const percentage = Math.round((score / quizData.length) * 100);
            let message = '';
            
            if (percentage === 100) {
                message = "Outstanding! You have an exceptional understanding of your constitutional rights. Consider volunteering as a community educator with CivicPulse.";
            } else if (percentage >= 60) {
                message = "Great job! You have a solid foundation of civic knowledge. Review our Constitutional Rights Guide to fill in any gaps.";
            } else {
                message = "There's always more to learn! Our legal resources are designed to help every citizen understand their rights. Start with our Constitutional Rights Guide.";
            }

            container.innerHTML = `
                <div class="quiz-result">
                    <h4>Quiz Complete!</h4>
                    <div class="quiz-score">${score}/${quizData.length}</div>
                    <p style="margin-top: 16px;">${message}</p>
                    <div style="margin-top: 24px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;">
                        <button class="btn btn-gold" onclick="resetQuiz()">Retake Quiz</button>
                        <a href="#resources" class="btn btn-outline">Explore Resources</a>
                    </div>
                </div>
            `;

            document.getElementById('quizNext').style.display = 'none';
            document.getElementById('quizCounter').textContent = 'Quiz Complete';
        }

        function resetQuiz() {
            currentQuestion = 0;
            score = 0;
            answered = false;

            const dots = document.querySelectorAll('.progress-dot');
            dots.forEach((dot, i) => {
                dot.classList.toggle('active', i === 0);
            });

            const data = quizData[0];
            document.getElementById('quizContent').innerHTML = `
                <div class="quiz-question" id="quizQuestion">${data.question}</div>
                <div class="quiz-options" id="quizOptions">
                    ${data.options.map((opt, i) => `<div class="quiz-option" onclick="selectOption(this, ${i})">${opt}</div>`).join('')}
                </div>
            `;
            document.getElementById('quizCounter').textContent = 'Question 1 of 5';
            document.getElementById('quizNext').style.display = 'none';
        }
    </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-12T09:43:07.131Z",
  "url": "https://benchmark.aimac.invalid/9535bedf4f4e3366da16bd7e72505e13041d0122b72cd56db36142fdb63cd10b.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-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": []
    },
    {
      "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-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": []
    },
    {
      "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-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": []
    },
    {
      "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": "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": []
    },
    {
      "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": []
    },
    {
      "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": "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": []
    },
    {
      "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": "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": []
    },
    {
      "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": "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": []
    },
    {
      "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-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": "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 id=\"quizCounter\" style=\"color: rgba(255,255,255,0.6); font-size: 0.9rem;\">Question 1 of 5</span>",
          "target": [
            "#quizCounter"
          ]
        }
      ]
    },
    {
      "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=\"btn btn-navy\" style=\"padding: 8px 16px; font-size: 0.85rem;\">$10</button>",
          "target": [
            "#donate > div > .btn-navy:nth-child(1)"
          ]
        }
      ]
    },
    {
      "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>CivicPulse</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h2>Your Voice in <span>Governance</span> Starts Here</h2>",
                  "target": [
                    ".hero-content > h2"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">What's Happening in Government</h2>",
                  "target": [
                    "#news > .section-header > .section-title"
                  ]
                },
                {
                  "html": "<h3>Digital Privacy Act Advances Through Committee with Bipartisan Support</h3>",
                  "target": [
                    ".featured > .news-card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Ballot Measure 42: What the Proposed Constitutional Amendment Means for Voters</h3>",
                  "target": [
                    "article:nth-child(2) > .news-card-body > h3"
                  ]
                },
                {
                  "html": "<h3>Supreme Court Agrees to Hear Case on First Amendment Protections for Online Speech</h3>",
                  "target": [
                    "article:nth-child(3) > .news-card-body > h3"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Know Your Rights, Know the Law</h2>",
                  "target": [
                    "#resources > .section-header > .section-title"
                  ]
                },
                {
                  "html": "<h4>Constitutional Rights Guide</h4>",
                  "target": [
                    ".resource-card:nth-child(1) > h4"
                  ]
                },
                {
                  "html": "<h4>Legislative Tracker</h4>",
                  "target": [
                    ".resource-card:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Court Decisions Database</h4>",
                  "target": [
                    ".resource-card:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Policy Briefs</h4>",
                  "target": [
                    ".resource-card:nth-child(4) > h4"
                  ]
                },
                {
                  "html": "<h4>Ballot Measure Analysis</h4>",
                  "target": [
                    ".resource-card:nth-child(5) > h4"
                  ]
                },
                {
                  "html": "<h4>Find Legal Aid</h4>",
                  "target": [
                    ".resource-card:nth-child(6) > h4"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Your Voter Information Hub</h2>",
                  "target": [
                    "#voter > .section-header > .section-title"
                  ]
                },
                {
                  "html": "<h3>Three Steps to Civic Participation</h3>",
                  "target": [
                    ".voter-header > h3"
                  ]
                },
                {
                  "html": "<h4>Verify Registration</h4>",
                  "target": [
                    ".voter-step:nth-child(1) > h4"
                  ]
                },
                {
                  "html": "<h4>Know Your Ballot</h4>",
                  "target": [
                    ".voter-step:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Cast Your Vote</h4>",
                  "target": [
                    ".voter-step:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Know Your Rights Quiz</h2>",
                  "target": [
                    "#quiz > .section-header > .section-title"
                  ]
                },
                {
                  "html": "<h3>How Well Do You Know Your Constitutional Rights?</h3>",
                  "target": [
                    ".quiz-section > h3"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Trusted by Citizens Nationwide</h2>",
                  "target": [
                    "#about > .section-header > .section-title"
                  ]
                },
                {
                  "html": "<h5>Maria Santos</h5>",
                  "target": [
                    ".testimonial-card:nth-child(1) > .testimonial-author > div > h5"
                  ]
                },
                {
                  "html": "<h5>James Whitfield</h5>",
                  "target": [
                    ".testimonial-card:nth-child(2) > .testimonial-author > div > h5"
                  ]
                },
                {
                  "html": "<h5>Deborah Chen</h5>",
                  "target": [
                    ".testimonial-card:nth-child(3) > .testimonial-author > div > h5"
                  ]
                },
                {
                  "html": "<h5>Marcus Johnson</h5>",
                  "target": [
                    ".testimonial-card:nth-child(4) > .testimonial-author > div > h5"
                  ]
                },
                {
                  "html": "<h2 class=\"section-title\">Frequently Asked Questions</h2>",
                  "target": [
                    ".section:nth-child(6) > .section-header > .section-title"
                  ]
                },
                {
                  "html": "<h3>Democracy Works When Citizens Participate</h3>",
                  "target": [
                    ".cta-banner > h3"
                  ]
                },
                {
                  "html": "<h4>\ud83d\udd25 Trending Issues</h4>",
                  "target": [
                    ".sidebar-widget:nth-child(1) > h4"
                  ]
                },
                {
                  "html": "<h5>Digital Privacy Act of 2024</h5>",
                  "target": [
                    ".trending-item:nth-child(2) > .trending-text > h5"
                  ]
                },
                {
                  "html": "<h5>Redistricting Reform</h5>",
                  "target": [
                    ".trending-item:nth-child(3) > .trending-text > h5"
                  ]
                },
                {
                  "html": "<h5>Voter ID Law Challenges</h5>",
                  "target": [
                    ".trending-item:nth-child(4) > .trending-text > h5"
                  ]
                },
                {
                  "html": "<h5>AI Regulation Framework</h5>",
                  "target": [
                    ".trending-item:nth-child(5) > .trending-text > h5"
                  ]
                },
                {
                  "html": "<h5>Municipal Bond Measures</h5>",
                  "target": [
                    ".trending-item:nth-child(6) > .trending-text > h5"
                  ]
                },
                {
                  "html": "<h4>\ud83d\ude4b Volunteer Opportunities</h4>",
                  "target": [
                    ".sidebar-widget:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>\ud83c\udfc6 Recent Advocacy Wins</h4>",
                  "target": [
                    ".sidebar-widget:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h5>Expanded Early Voting in Georgia</h5>",
                  "target": [
                    ".advocacy-win:nth-child(2) > h5"
                  ]
                },
                {
                  "html": "<h5>Transparency Ordinance \u2014 Austin, TX</h5>",
                  "target": [
                    ".advocacy-win:nth-child(3) > h5"
                  ]
                },
                {
                  "html": "<h5>Legal Aid Funding Restored \u2014 Ohio</h5>",
                  "target": [
                    ".advocacy-win:nth-child(4) > h5"
                  ]
                },
                {
                  "html": "<h4>\ud83d\udc9b Support Our Mission</h4>",
                  "target": [
                    "#donate > h4"
                  ]
                },
                {
                  "html": "<h3>CivicPulse</h3>",
                  "target": [
                    ".footer-about > h3"
                  ]
                },
                {
                  "html": "<h4>Resources</h4>",
                  "target": [
                    ".footer-col:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Organization</h4>",
                  "target": [
                    ".footer-col:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Contact</h4>",
                  "target": [
                    ".footer-col:nth-child(4) > h4"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            },
            {
              "id": "landmark",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<main class=\"main-content\">",
                  "target": [
                    "main"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a landmark region"
            }
          ],
          "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": "#ffffff",
                "bgColor": "#1a2744",
                "contrastRatio": 14.81,
                "fontSize": "19.2pt (25.6px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 14.81"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<h1>CivicPulse</h1>",
          "target": [
            "h1"
          ]
        }
      ]
    },
    {
      "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": "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/48x48/1a2744/c9952e?text=CP&amp;font=playfair+display\" alt=\"CivicPulse Logo\">",
          "target": [
            "img[alt=\"CivicPulse Logo\"]"
          ]
        }
      ]
    },
    {
      "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=\"resource-card\">",
                  "target": [
                    ".resource-card:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" class=\"resource-link\">Access Guide \u2192</a>",
          "target": [
            ".resource-card:nth-child(1) > .resource-link[href=\"#\"]"
          ]
        }
      ]
    },
    {
      "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=\"#donate\" class=\"btn btn-outline\">Donate</a>",
          "target": [
            ".btn-outline.btn[href$=\"#donate\"]"
          ]
        }
      ]
    },
    {
      "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": [
            "nav > 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=\"#news\">News</a></li>",
          "target": [
            "nav > 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/48x48/1a2744/c9952e?text=CP&amp;font=playfair+display\" alt=\"CivicPulse Logo\">",
          "target": [
            "img[alt=\"CivicPulse Logo\"]"
          ]
        }
      ]
    },
    {
      "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-size",
              "data": {
                "minSize": 24,
                "width": 92.5,
                "height": 48.5
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Control has sufficient size (92.5px by 48.5px, should be at least 24px by 24px)"
            },
            {
              "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=\"#donate\" class=\"btn btn-outline\">Donate</a>",
          "target": [
            ".btn-outline.btn[href$=\"#donate\"]"
          ]
        }
      ]
    }
  ],
  "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": {
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": "pseudoContent",
                "expectedContrastRatio": "4.5:1"
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"hero\">",
                  "target": [
                    ".hero"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element's background color could not be determined due to a pseudo element"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"hero-badge\">\u26a1 Nonpartisan \u2022 Independent \u2022 Trusted Since 2012</div>",
          "target": [
            ".hero-badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
        }
      ]
    }
  ],
  "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": "#c9952e",
                "bgColor": "#faf8f4",
                "contrastRatio": 2.53,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"section-label\">Legislative Updates</div>",
          "target": [
            "#news > .section-header > .section-label"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#1a73e8",
                "bgColor": "#e8f4fd",
                "contrastRatio": 4.03,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"news-tag tag-legislation\">Legislation</span>",
                  "target": [
                    ".tag-legislation"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.03 (foreground color: #1a73e8, background color: #e8f4fd, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"news-tag tag-legislation\">Legislation</span>",
          "target": [
            ".tag-legislation"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.03 (foreground color: #1a73e8, background color: #e8f4fd, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c9952e",
                "bgColor": "#ffffff",
                "contrastRatio": 2.68,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"news-card featured\">",
                  "target": [
                    ".featured"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #c9952e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"read-more\">Read Full Analysis \u2192</a>",
          "target": [
            ".featured > .news-card-body > .news-meta > .read-more[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #c9952e, 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": "#27ae60",
                "bgColor": "#e8fde8",
                "contrastRatio": 2.68,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"news-tag tag-election\">Elections</span>",
                  "target": [
                    ".tag-election"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #27ae60, background color: #e8fde8, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"news-tag tag-election\">Elections</span>",
          "target": [
            ".tag-election"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #27ae60, background color: #e8fde8, font size: 9.0pt (12px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c9952e",
                "bgColor": "#ffffff",
                "contrastRatio": 2.68,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"news-card\">",
                  "target": [
                    "article:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #c9952e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"read-more\">Read More \u2192</a>",
          "target": [
            "article:nth-child(2) > .news-card-body > .news-meta > .read-more[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #c9952e, 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": "#c9952e",
                "bgColor": "#ffffff",
                "contrastRatio": 2.68,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"news-card\">",
                  "target": [
                    "article:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #c9952e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"read-more\">Read More \u2192</a>",
          "target": [
            "article:nth-child(3) > .news-card-body > .news-meta > .read-more[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #c9952e, 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": "#c9952e",
                "bgColor": "#faf8f4",
                "contrastRatio": 2.53,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"section-label\">Legal Resources</div>",
          "target": [
            "#resources > .section-header > .section-label"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c9952e",
                "bgColor": "#ffffff",
                "contrastRatio": 2.68,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"resource-card\">",
                  "target": [
                    ".resource-card:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #c9952e, background color: #ffffff, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"resource-link\">Access Guide \u2192</a>",
          "target": [
            ".resource-card:nth-child(1) > .resource-link[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #c9952e, 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": "#c9952e",
                "bgColor": "#ffffff",
                "contrastRatio": 2.68,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"resource-card\">",
                  "target": [
                    ".resource-card:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #c9952e, background color: #ffffff, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"resource-link\">Start Tracking \u2192</a>",
          "target": [
            ".resource-card:nth-child(2) > .resource-link[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #c9952e, 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": "#c9952e",
                "bgColor": "#ffffff",
                "contrastRatio": 2.68,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"resource-card\">",
                  "target": [
                    ".resource-card:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #c9952e, background color: #ffffff, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"resource-link\">Search Cases \u2192</a>",
          "target": [
            ".resource-card:nth-child(3) > .resource-link[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #c9952e, 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": "#c9952e",
                "bgColor": "#ffffff",
                "contrastRatio": 2.68,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"resource-card\">",
                  "target": [
                    ".resource-card:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #c9952e, background color: #ffffff, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"resource-link\">Read Briefs \u2192</a>",
          "target": [
            ".resource-card:nth-child(4) > .resource-link[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #c9952e, 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": "#c9952e",
                "bgColor": "#ffffff",
                "contrastRatio": 2.68,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"resource-card\">",
                  "target": [
                    ".resource-card:nth-child(5)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #c9952e, background color: #ffffff, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"resource-link\">View Measures \u2192</a>",
          "target": [
            ".resource-card:nth-child(5) > .resource-link[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #c9952e, 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": "#c9952e",
                "bgColor": "#ffffff",
                "contrastRatio": 2.68,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"resource-card\">",
                  "target": [
                    ".resource-card:nth-child(6)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.68 (foreground color: #c9952e, background color: #ffffff, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"resource-link\">Find Help \u2192</a>",
          "target": [
            ".resource-card:nth-child(6) > .resource-link[href=\"#\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.68 (foreground color: #c9952e, 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": "#c9952e",
                "bgColor": "#faf8f4",
                "contrastRatio": 2.53,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"section-label\">Civic Engagement</div>",
          "target": [
            "#voter > .section-header > .section-label"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c9952e",
                "bgColor": "#faf8f4",
                "contrastRatio": 2.53,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"section-label\">Interactive</div>",
          "target": [
            "#quiz > .section-header > .section-label"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c9952e",
                "bgColor": "#faf8f4",
                "contrastRatio": 2.53,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"section-label\">Community Voices</div>",
          "target": [
            "#about > .section-header > .section-label"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c9952e",
                "bgColor": "#faf8f4",
                "contrastRatio": 2.53,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"section-label\">Common Questions</div>",
          "target": [
            ".section:nth-child(6) > .section-header > .section-label"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.53 (foreground color: #c9952e, background color: #faf8f4, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        }
      ]
    },
    {
      "id": "target-size",
      "impact": "serious",
      "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-size",
              "data": {
                "messageKey": "partiallyObscured",
                "minSize": 24,
                "width": 167.4,
                "height": 4.2
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#news\">News</a>",
                  "target": [
                    "a[href$=\"#news\"]"
                  ]
                },
                {
                  "html": "<a href=\"#resources\">Legal Resources</a>",
                  "target": [
                    "li:nth-child(2) > a[href$=\"#resources\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Target has insufficient size because it is partially obscured (smallest space is 167.4px by 4.2px, should be at least 24px by 24px)"
            },
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 4.2,
                "minOffset": 24
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#news\">News</a>",
                  "target": [
                    "a[href$=\"#news\"]"
                  ]
                },
                {
                  "html": "<a href=\"#resources\">Legal Resources</a>",
                  "target": [
                    "li:nth-child(2) > a[href$=\"#resources\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 4.2px instead of at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#resources\" class=\"btn btn-gold btn-large\">Find Resources</a>",
          "target": [
            ".btn-large.btn-gold[href$=\"#resources\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Target has insufficient size because it is partially obscured (smallest space is 167.4px by 4.2px, should be at least 24px by 24px)\n  Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 4.2px instead of at least 24px."
        },
        {
          "any": [
            {
              "id": "target-size",
              "data": {
                "messageKey": "partiallyObscured",
                "minSize": 24,
                "width": 196.1,
                "height": 4.2
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#resources\">Legal Resources</a>",
                  "target": [
                    "li:nth-child(2) > a[href$=\"#resources\"]"
                  ]
                },
                {
                  "html": "<a href=\"#voter\">Voter Hub</a>",
                  "target": [
                    "li:nth-child(3) > a[href$=\"#voter\"]"
                  ]
                },
                {
                  "html": "<a href=\"#about\">About</a>",
                  "target": [
                    "a[href$=\"#about\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Target has insufficient size because it is partially obscured (smallest space is 196.1px by 4.2px, should be at least 24px by 24px)"
            },
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 4.2,
                "minOffset": 24
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#voter\">Voter Hub</a>",
                  "target": [
                    "li:nth-child(3) > a[href$=\"#voter\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 4.2px instead of at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#voter\" class=\"btn btn-outline btn-large\">Check Voter Status</a>",
          "target": [
            ".btn-outline.btn-large[href$=\"#voter\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Target has insufficient size because it is partially obscured (smallest space is 196.1px by 4.2px, should be at least 24px by 24px)\n  Target has insufficient space to its closest neighbors. Safe clickable space has a diameter of 4.2px instead of at least 24px."
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 8089
      },
      {
        "y": 576,
        "height": 8089
      },
      {
        "y": 1152,
        "height": 8089
      },
      {
        "y": 1728,
        "height": 8089
      },
      {
        "y": 2304,
        "height": 8089
      },
      {
        "y": 2880,
        "height": 8089
      },
      {
        "y": 3456,
        "height": 8089
      },
      {
        "y": 4032,
        "height": 8089
      },
      {
        "y": 4608,
        "height": 8089
      },
      {
        "y": 5184,
        "height": 8089
      },
      {
        "y": 5760,
        "height": 8089
      },
      {
        "y": 6336,
        "height": 8089
      },
      {
        "y": 6912,
        "height": 8089
      },
      {
        "y": 7369,
        "height": 8089
      }
    ],
    "scans": 15,
    "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 "Law, Government, & Politics" 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: "Law, Government, & Politics"
- Description: Legal information, political organizations, government affairs, and civic engagement resources.

**Your Creative Task:**
1.  **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Law, Government, & Politics" 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: "News", "Donate", "About".
-   **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
    -   Address key topics relevant to the "Law, Government, & Politics" category. Consider themes similar to: "Legal Resources", "Legislative Updates", "Voter Information".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "ballot measure", "statute", "jurisdiction".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Share", "Take Action", "Find Resources".
-   **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Law, Government, & Politics" sector. Ideas similar but not limited to: "rights quiz".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "trending issues", "volunteer opportunities", "advocacy wins".
-   **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.