NVIDIA Nemotron 3.5 Super VL – Shopping

via Crusoe · Generated

  • AIMAC Debt 4.44
  • Cost $0.007
  • Total Violations 13
  • HTML Size 45 KB
  • Em Dashes 2

Screenshot

View NVIDIA Nemotron 3.5 Super VL Shopping page View Live Page

Accessibility Issues Found

13 Serious

  • color-contrast serious 13 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <span class="badge">Limited Time</span>

Artifacts

View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VelvetCart | Curated Deals, Delivered Daily.</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap" rel="stylesheet">
<style>
  :root {
    --primary: #0f172a;
    --primary-dark: #0a0e1a;
    --accent: #e11d48;
    --accent-hover: #be123c;
    --bg: #f8fafc;
    --card: #ffffff;
    --text: #0f172a;
    --text-muted: #64748b;
    --border: #e2e8f0;
    --success: #059669;
    --shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.08), 0 4px 6px -4px rgb(0 0 0 / 0.05);
    --radius: 12px;
    --transition: all 0.3s ease;
  }

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

  html {
    scroll-behavior: smooth;
  }

  body {
    font-family: 'Inter', sans-serif;
    background-color: var(--bg);
    color: var(--text);
    line-height: 1.7;
    overflow-x: hidden;
  }

  h1, h2, h3, h4 {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    line-height: 1.2;
  }

  a {
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
  }

  ul {
    list-style: none;
  }

  img {
    max-width: 100%;
    display: block;
    border-radius: var(--radius);
  }

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

  .section {
    padding: 5rem 0;
  }

  .section-header {
    text-align: center;
    max-width: 700px;
    margin: 0 auto 3rem;
  }

  .section-header .badge {
    display: inline-block;
    background: rgba(225, 29, 72, 0.1);
    color: var(--accent);
    padding: 0.4rem 1rem;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 1rem;
  }

  .section-header h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
  }

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

  /* Header */
  header {
    background: var(--card);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 1000;
    transition: var(--transition);
  }

  header.scrolled {
    box-shadow: var(--shadow);
    background: rgba(255, 255, 255, 0.95);
  }

  .top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.5rem;
    font-size: 0.85rem;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border);
  }

  .top-bar .left {
    display: flex;
    gap: 1.5rem;
    align-items: center;
  }

  .top-bar .right {
    display: flex;
    gap: 1rem;
    align-items: center;
  }

  .nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.5rem;
  }

  .logo {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }

  .logo-img {
    width: 48px;
    height: 48px;
    object-fit: cover;
  }

  .logo-text {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary);
  }

  .logo-tag {
    font-size: 0.7rem;
    color: var(--accent);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 0.15rem;
    display: block;
  }

  nav ul {
    display: flex;
    gap: 2rem;
    align-items: center;
  }

  nav a {
    font-weight: 500;
    font-size: 0.95rem;
    color: var(--text);
  }

  nav a:hover {
    color: var(--accent);
  }

  .cart-btn {
    position: relative;
    background: var(--primary);
    color: white;
    padding: 0.6rem 1.2rem;
    border-radius: 30px;
    font-weight: 600;
    font-size: 0.9rem;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  .cart-btn:hover {
    background: var(--accent);
  }

  .cart-count {
    position: absolute;
    top: -8px;
    right: -8px;
    background: var(--accent);
    color: white;
    font-size: 0.7rem;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
  }

  .mobile-menu-btn {
    display: none;
    background: none;
    border: none;
    font-size: 1.5rem;
    color: var(--text);
    cursor: pointer;
  }

  /* Hero */
  .hero {
    background: linear-gradient(135deg, var(--primary) 0%, #1e293b 100%);
    color: white;
    padding: 6rem 0;
    overflow: hidden;
  }

  .hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
  }

  .hero-content h1 {
    font-size: 3.5rem;
    margin-bottom: 1.5rem;
    line-height: 1.1;
  }

  .hero-content p {
    font-size: 1.15rem;
    color: #cbd5e1;
    margin-bottom: 2rem;
    max-width: 500px;
  }

  .hero-image img {
    width: 100%;
    height: 500px;
    object-fit: cover;
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    border: 4px solid rgba(255, 255, 255, 0.1);
  }

  .btn-group {
    display: flex;
    gap: 1rem;
  }

  .btn-primary {
    background: var(--accent);
    color: white;
    padding: 1rem 2rem;
    border-radius: var(--radius);
    font-weight: 600;
    display: inline-block;
    border: none;
    cursor: pointer;
    transition: var(--transition);
  }

  .btn-primary:hover {
    background: var(--accent-hover);
    transform: translateY(-2px);
  }

  .btn-outline {
    background: transparent;
    color: white;
    padding: 1rem 2rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--radius);
    font-weight: 600;
    display: inline-block;
    transition: var(--transition);
  }

  .btn-outline:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: white;
  }

  /* Flash Deals */
  .deal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
  }

  .product-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    transition: var(--transition);
  }

  .product-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
  }

  .product-image {
    height: 280px;
    background: var(--bg);
    overflow: hidden;
  }

  .product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    transition: transform 0.5s ease;
  }

  .product-card:hover .product-image img {
    transform: scale(1.05);
  }

  .product-info {
    padding: 1.25rem;
  }

  .product-category {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--accent);
    font-weight: 600;
    margin-bottom: 0.5rem;
  }

  .product-title {
    font-size: 1rem;
    margin-bottom: 0.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .product-prices {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
  }

  .sale-price {
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--primary);
  }

  .original-price {
    font-size: 0.9rem;
    color: var(--text-muted);
    text-decoration: line-through;
  }

  .product-actions {
    display: flex;
    gap: 0.5rem;
  }

  .add-to-cart {
    flex: 1;
    background: var(--primary);
    color: white;
    border: none;
    padding: 0.75rem;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
  }

  .add-to-cart:hover {
    background: var(--accent);
  }

  .quick-view {
    width: 40px;
    height: 40px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--card);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
  }

  .quick-view:hover {
    color: var(--primary);
    border-color: var(--primary);
  }

  .section-link {
    text-align: center;
    margin-top: 2rem;
  }

  .section-link a {
    color: var(--accent);
    font-weight: 600;
  }

  /* Gift Guides */
  .guide-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 2rem;
  }

  .guide-card {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    height: 320px;
    cursor: pointer;
  }

  .guide-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition);
  }

  .guide-card:hover img {
    transform: scale(1.05);
  }

  .guide-content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.5rem;
    background: linear-gradient(transparent, rgba(0,0,0,0.8));
    color: white;
  }

  .guide-content h3 {
    font-size: 1.4rem;
    margin-bottom: 0.5rem;
  }

  .guide-content p {
    font-size: 0.9rem;
    opacity: 0.9;
  }

  /* Gift Finder */
  .gift-finder {
    background: var(--primary);
    color: white;
    border-radius: var(--radius);
    padding: 3rem 2rem;
    margin-top: 2rem;
  }

  .finder-header {
    text-align: center;
    margin-bottom: 2.5rem;
  }

  .finder-header h2 {
    color: white;
    margin-bottom: 0.5rem;
  }

  .finder-form {
    max-width: 700px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
    align-items: end;
  }

  .finder-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .finder-group label {
    font-size: 0.9rem;
    font-weight: 500;
    color: #cbd5e1;
  }

  .finder-group select {
    padding: 0.75rem 1rem;
    border-radius: 8px;
    border: 1px solid #334155;
    background: #0f172a;
    color: white;
    font-family: inherit;
    font-size: 0.95rem;
  }

  .finder-btn {
    grid-column: 1 / -1;
    background: var(--accent);
    color: white;
    padding: 1rem;
    border-radius: 8px;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    border: none;
    transition: var(--transition);
  }

  .finder-btn:hover {
    background: var(--accent-hover);
  }

  .finder-results {
    margin-top: 2.5rem;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.5rem;
    display: none;
  }

  .finder-results.active {
    display: grid;
  }

  .finder-card {
    background: #1e293b;
    border: 1px solid #334155;
    border-radius: 10px;
    padding: 1rem;
    text-align: center;
  }

  .finder-card img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 1rem;
  }

  .finder-card h4 {
    font-size: 1rem;
    margin-bottom: 0.5rem;
  }

  .finder-card .price {
    color: #34d399;
    font-weight: 700;
  }

  /* Top Rated */
  .rated-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
  }

  .rated-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.5rem;
    display: flex;
    gap: 1rem;
    align-items: center;
  }

  .rated-img {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
    background: var(--bg);
    object-fit: cover;
  }

  .rated-info h4 {
    font-size: 1.05rem;
    margin-bottom: 0.25rem;
  }

  .rated-info .stars {
    color: #f59e0b;
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
  }

  .rated-info p {
    font-size: 0.9rem;
    color: var(--text-muted);
    margin-bottom: 0.75rem;
  }

  .rated-info .price {
    font-weight: 700;
    color: var(--primary);
  }

  /* Testimonials */
  .testimonial-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
  }

  .testimonial-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 2rem;
  }

  .stars {
    color: #f59e0b;
    margin-bottom: 1rem;
    font-size: 1.1rem;
  }

  .testimonial-card p {
    font-size: 0.95rem;
    color: var(--text-muted);
    margin-bottom: 1.5rem;
    font-style: italic;
  }

  .testimonial-author {
    display: flex;
    align-items: center;
    gap: 1rem;
  }

  .author-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
  }

  .author-info h4 {
    font-size: 0.95rem;
    margin-bottom: 0.15rem;
  }

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

  /* Features */
  .feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 2rem;
    text-align: center;
  }

  .feature-item {
    padding: 2rem 1rem;
    border-radius: var(--radius);
    background: var(--card);
    border: 1px solid var(--border);
  }

  .feature-icon {
    width: 56px;
    height: 56px;
    background: rgba(225, 29, 72, 0.1);
    color: var(--accent);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin: 0 auto 1.5rem;
  }

  .feature-item h3 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
  }

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

  /* FAQ */
  .faq-grid {
    max-width: 800px;
    margin: 0 auto;
    display: grid;
    gap: 1rem;
  }

  .faq-item {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
  }

  .faq-question {
    padding: 1.25rem 1.5rem;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: var(--transition);
  }

  .faq-question:hover {
    background: #f1f5f9;
  }

  .faq-answer {
    padding: 0 1.5rem;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    color: var(--text-muted);
    font-size: 0.95rem;
    line-height: 1.6;
  }

  .faq-item.open .faq-answer {
    max-height: 300px;
    padding-bottom: 1.25rem;
  }

  .faq-toggle {
    font-size: 1.2rem;
    transition: transform 0.3s ease;
  }

  .faq-item.open .faq-toggle {
    transform: rotate(180deg);
  }

  /* Newsletter */
  .newsletter {
    background: var(--primary);
    color: white;
    border-radius: var(--radius);
    padding: 4rem 2rem;
    text-align: center;
  }

  .newsletter h2 {
    color: white;
    font-size: 2.25rem;
    margin-bottom: 1rem;
  }

  .newsletter p {
    color: #cbd5e1;
    margin-bottom: 2rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }

  .newsletter-form {
    max-width: 500px;
    margin: 0 auto;
    display: flex;
    gap: 0.5rem;
  }

  .newsletter-form input {
    flex: 1;
    padding: 1rem 1.25rem;
    border-radius: 8px;
    border: none;
    font-family: inherit;
    font-size: 1rem;
  }

  /* Footer */
  footer {
    background: var(--primary-dark);
    color: #94a3b8;
    padding: 4rem 0 2rem;
    border-top: 1px solid #1e293b;
  }

  .footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 3rem;
    margin-bottom: 3rem;
  }

  .footer-brand .logo-text {
    color: white;
  }

  .footer-brand p {
    color: #94a3b8;
    margin-top: 1rem;
    font-size: 0.95rem;
    line-height: 1.6;
  }

  .footer-col h4 {
    color: white;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 1.25rem;
    font-weight: 600;
  }

  .footer-col ul li {
    margin-bottom: 0.75rem;
  }

  .footer-col a {
    color: #94a3b8;
    font-size: 0.95rem;
    transition: var(--transition);
  }

  .footer-col a:hover {
    color: white;
  }

  .socials {
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
  }

  .social-link {
    width: 40px;
    height: 40px;
    border: 1px solid #334155;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    transition: var(--transition);
  }

  .social-link:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: white;
  }

  .footer-bottom {
    border-top: 1px solid #1e293b;
    padding-top: 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.85rem;
  }

  .footer-links {
    display: flex;
    gap: 1.5rem;
  }

  /* Overlay Cart */
  .cart-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 2000;
    display: none;
    backdrop-filter: blur(4px);
  }

  .cart-panel {
    position: fixed;
    top: 0;
    right: 0;
    width: 400px;
    max-width: 90vw;
    height: 100vh;
    background: var(--card);
    z-index: 2001;
    transform: translateX(100%);
    transition: transform 0.3s ease;
    display: flex;
    flex-direction: column;
    box-shadow: -10px 0 30px rgba(0,0,0,0.1);
  }

  .cart-panel.open {
    transform: translateX(0);
  }

  .cart-header {
    padding: 1.5rem;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .cart-header h3 {
    font-size: 1.25rem;
  }

  .close-cart {
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--text-muted);
  }

  .cart-items {
    flex: 1;
    overflow-y: auto;
    padding: 1.5rem;
  }

  .cart-item {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.25rem;
    align-items: center;
  }

  .cart-item-img {
    width: 70px;
    height: 70px;
    flex-shrink: 0;
    background: var(--bg);
    object-fit: cover;
  }

  .cart-item-info h4 {
    font-size: 0.95rem;
    margin-bottom: 0.25rem;
  }

  .cart-item-info p {
    font-size: 0.85rem;
    color: var(--text-muted);
  }

  .remove-item {
    margin-left: auto;
    background: none;
    border: none;
    color: var(--accent);
    cursor: pointer;
    font-weight: 600;
    font-size: 0.85rem;
  }

  .cart-footer {
    padding: 1.5rem;
    border-top: 1px solid var(--border);
    background: #fafafa;
  }

  .cart-total {
    display: flex;
    justify-content: space-between;
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--primary);
  }

  .checkout-btn {
    width: 100%;
    background: var(--accent);
    color: white;
    border: none;
    padding: 1rem;
    border-radius: 8px;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
  }

  .checkout-btn:hover {
    background: var(--accent-hover);
  }

  /* Responsive */
  @media (max-width: 900px) {
    .hero-grid {
      grid-template-columns: 1fr;
      text-align: center;
    }

    .hero-content {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    .hero-content p {
      margin-left: auto;
      margin-right: auto;
    }

    .btn-group {
      justify-content: center;
    }

    nav ul {
      display: none;
      flex-direction: column;
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      background: var(--card);
      padding: 1.5rem;
      gap: 1rem;
      border-bottom: 1px solid var(--border);
      box-shadow: var(--shadow);
    }

    nav ul.open {
      display: flex;
    }

    .mobile-menu-btn {
      display: block;
    }

    .cart-btn {
      display: none;
    }

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

  @media (max-width: 600px) {
    .hero-content h1 {
      font-size: 2.5rem;
    }

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

    .newsletter-form {
      flex-direction: column;
    }
  }
</style>
</head>
<body>

<header id="header">
  <div class="top-bar">
    <div class="left">
      <span>🚚 Free Shipping on Orders Over $50</span>
      <span>🔒 Secure Checkout</span>
    </div>
    <div class="right">
      <a href="#" style="font-size:0.85rem; color:var(--text-muted);">Track Order</a>
      <span>|</span>
      <a href="#" style="font-size:0.85rem; color:var(--text-muted);">Help Center</a>
    </div>
  </div>
  <div class="nav-container">
    <div class="logo" href="#">
      <img src="https://placehold.co/48x48/0f172a/ffffff?text=VC&font=inter" alt="VelvetCart Logo" class="logo-img">
      <div>
        <span class="logo-text">VelvetCart</span>
        <span class="logo-tag">Curated Deals, Delivered Daily.</span>
      </div>
    </div>
    <nav>
      <ul id="nav-links">
        <li><a href="#home">Home</a></li>
        <li><a href="#shop">Shop</a></li>
        <li><a href="#deals">Deals</a></li>
        <li><a href="#categories">Categories</a></li>
        <li><a href="#gift-guides">Gift Guides</a></li>
        <li><a href="#brands">Brands</a></li>
        <li><a href="#contact">Contact</a></li>
      </ul>
    </nav>
    <button class="cart-btn" id="cart-btn">
      🛒 Cart <span class="cart-count" id="cart-count">0</span>
    </button>
    <button class="mobile-menu-btn" id="mobile-menu">☰</button>
  </div>
</header>

<main>

  <!-- Hero -->
  <section class="hero" id="home">
    <div class="container">
      <div class="hero-grid">
        <div class="hero-content">
          <span class="badge">New Arrivals Just Dropped</span>
          <h1>Shop Smarter. Live Better.</h1>
          <p>Welcome to VelvetCart, your premier destination for curated online shopping, exclusive daily deals, and thoughtfully crafted gift guides. We combine a massive selection of retail products with unbeatable value, offering free shipping on qualifying orders, a price match guarantee, and flexible shipping options that fit your schedule. Whether you're refreshing your wardrobe, upgrading your home, or hunting for the perfect present, we make every purchase feel like a win.</p>
          <div class="btn-group">
            <a href="#shop" class="btn-primary">Start Shopping</a>
            <a href="#gift-guides" class="btn-outline">Browse Gift Guides</a>
          </div>
        </div>
        <div class="hero-image">
          <img src="https://picsum.photos/900/700?random=10" alt="Shopping lifestyle hero image">
        </div>
      </div>
    </div>
  </section>

  <!-- Flash Deals -->
  <section class="section" id="deals">
    <div class="container">
      <div class="section-header">
        <span class="badge">Limited Time</span>
        <h2>Flash Sales & Daily Deals</h2>
        <p>New deals drop every hour across electronics, fashion, home essentials, and more. Every item in our flash sale includes fast shipping options, and most qualify for free shipping. Prices drop fast—once they're gone, they're gone.</p>
      </div>
      <div class="deal-grid" id="deals-grid">
        <!-- Products injected by JS -->
      </div>
      <div class="section-link">
        <a href="#shop">Shop All Flash Deals →</a>
      </div>
    </div>
  </section>

  <!-- Gift Guides -->
  <section class="section" id="gift-guides" style="background:#fff;">
    <div class="container">
      <div class="section-header">
        <span class="badge">Inspiration</span>
        <h2>Gift Guides for Every Occasion</h2>
        <p>Finding the perfect present shouldn't be stressful. Our expert-curated gift guides take the guesswork out of shopping by organizing top-rated products by recipient, interest, and price point. From birthdays and anniversaries to holidays and housewarmings, we've done the research so you can shop with confidence and ship with ease.</p>
      </div>
      <div class="guide-grid">
        <div class="guide-card">
          <img src="https://picsum.photos/600/500?random=20" alt="Gifts for him">
          <div class="guide-content">
            <h3>For Him</h3>
            <p>Tech, grooming, and gear he'll actually use.</p>
          </div>
        </div>
        <div class="guide-card">
          <img src="https://picsum.photos/600/500?random=21" alt="Gifts for her">
          <div class="guide-content">
            <h3>For Her</h3>
            <p>Beauty, fashion, and thoughtful keepsakes.</p>
          </div>
        </div>
        <div class="guide-card">
          <img src="https://picsum.photos/600/500?random=22" alt="Gifts for home">
          <div class="guide-content">
            <h3>For the Home</h3>
            <p>Cozy essentials and stylish décor upgrades.</p>
          </div>
        </div>
        <div class="guide-card">
          <img src="https://picsum.photos/600/500?random=23" alt="Tech gifts">
          <div class="guide-content">
            <h3>Tech Lovers</h3>
            <p>Gadgets, accessories, and smart home picks.</p>
          </div>
        </div>
      </div>
    </div>
  </section>

  <!-- Gift Finder Interactive -->
  <section class="section" id="gift-finder">
    <div class="container">
      <div class="gift-finder">
        <div class="finder-header">
          <h2>Gift Finder</h2>
          <p>Not sure what to buy? Tell us a little about who you're shopping for and we'll suggest the perfect match.</p>
        </div>
        <form class="finder-form" id="gift-form">
          <div class="finder-group">
            <label for="recipient">Who is it for?</label>
            <select id="recipient">
              <option value="any">Anyone</option>
              <option value="him">Him</option>
              <option value="her">Her</option>
              <option value="kids">Kids</option>
              <option value="home">Home</option>
            </select>
          </div>
          <div class="finder-group">
            <label for="occasion">Occasion</label>
            <select id="occasion">
              <option value="any">Any Occasion</option>
              <option value="birthday">Birthday</option>
              <option value="anniversary">Anniversary</option>
              <option value="holiday">Holiday</option>
              <option value="just-because">Just Because</option>
            </select>
          </div>
          <div class="finder-group">
            <label for="budget">Budget</label>
            <select id="budget">
              <option value="any">Any Budget</option>
              <option value="under-25">Under $25</option>
              <option value="25-50">$25 – $50</option>
              <option value="50-100">$50 – $100</option>
              <option value="over-100">Over $100</option>
            </select>
          </div>
          <button type="submit" class="finder-btn">Find My Gift</button>
        </form>
        <div class="finder-results" id="finder-results">
          <!-- results injected by JS -->
        </div>
      </div>
    </div>
  </section>

  <!-- Top Rated -->
  <section class="section" id="top-rated">
    <div class="container">
      <div class="section-header">
        <span class="badge">Customer Favorites</span>
        <h2>Top Rated Products</h>
        <p>Join thousands of happy shoppers who rely on VelvetCart for quality and value. These best-sellers are backed by real reviews, fast shipping options, and our no-hassle return policy. Add your favorites to cart and experience why customers keep coming back.</p>
      </div>
      <div class="rated-grid" id="rated-grid">
        <!-- injected by JS -->
      </div>
    </div>
  </section>

  <!-- Testimonials -->
  <section class="section" style="background:#fff;">
    <div class="container">
      <div class="section-header">
        <span class="badge">Reviews</span>
        <h2>What Our Shoppers Say</h2>
        <p>Real feedback from real customers. Read how VelvetCart is transforming the way people shop online.</p>
      </div>
      <div class="testimonial-grid">
        <div class="testimonial-card">
          <div class="stars">★★★★★</div>
          <p>"The flash sales are incredible. I got a premium coffee maker at half price with free shipping. The packaging was beautiful and it arrived two days early."</p>
          <div class="testimonial-author">
            <img src="https://i.pravatar.cc/150?u=customer1" alt="Customer" class="author-avatar">
            <div class="author-info">
              <h4>Maya R.</h4>
              <span>Verified Buyer</span>
            </div>
          </div>
        </div>
        <div class="testimonial-card">
          <div class="stars">★★★★★</div>
          <p>"I used the gift finder for my sister's birthday and it was spot-on. The gift guide made choosing so easy, and the shipping options let me schedule delivery exactly when I needed it."</p>
          <div class="testimonial-author">
            <img src="https://i.pravatar.cc/150?u=customer2" alt="Customer" class="author-avatar">
            <div class="author-info">
              <h4>Daniel K.</h4>
              <span>Verified Buyer</span>
            </div>
          </div>
        </div>
        <div class="testimonial-card">
          <div class="stars">★★★★★</div>
          <p>"Their price match guarantee saved me money on a laptop I was already planning to buy. The checkout process was seamless and the customer support team was incredibly responsive."</p>
          <div class="testimonial-author">
            <img src="https://i.pravatar.cc/150?u=customer3" alt="Customer" class="author-avatar">
            <div class="author-info">
              <h4>Sophia L.</h4>
              <span>Verified Buyer</span>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>

  <!-- Features -->
  <section class="section" id="features">
    <div class="container">
      <div class="section-header">
        <span class="badge">Why VelvetCart</span>
        <h2>Why Shop With Us?</h2>
        <p>We believe online shopping should be simple, transparent, and rewarding. Here's what sets us apart from the rest.</p>
      </div>
      <div class="feature-grid">
        <div class="feature-item">
          <div class="feature-icon">🚚</div>
          <h3>Free Shipping</h3>
          <p>Enjoy complimentary shipping on all orders over $50, with express and standard shipping options available at checkout.</p>
        </div>
        <div class="feature-item">
          <div class="feature-icon">🏷️</div>
          <h3>Price Match</h3>
          <p>Found a lower price elsewhere? We'll match it. Our price match guarantee ensures you always get the best deal.</p>
        </div>
        <div class="feature-item">
          <div class="feature-icon">🔒</div>
          <h3>Secure Checkout</h3>
          <p>Shop with confidence knowing your payment information is protected by industry-standard encryption and fraud protection.</p>
        </div>
        <div class="feature-item">
          <div class="feature-icon">↩️</div>
          <h3>30-Day Returns</h3>
          <p>Not completely satisfied? Return your item within 30 days for a full refund or exchange—no questions asked.</p>
        </div>
      </div>
    </div>
  </section>

  <!-- FAQ -->
  <section class="section" id="faq" style="background:#fff;">
    <div class="container">
      <div class="section-header">
        <span class="badge">Help</span>
        <h2>Frequently Asked Questions</h2>
        <p>Everything you need to know about shopping with VelvetCart.</p>
      </div>
      <div class="faq-grid">
        <div class="faq-item">
          <div class="faq-question">
            <span>How long does shipping take?</span>
            <span class="faq-toggle">▼</span>
          </div>
          <div class="faq-answer">
            Standard shipping typically arrives within 3–7 business days. Express shipping options deliver in 1–3 business days. All orders include tracking information.
          </div>
        </div>
        <div class="faq-item">
          <div class="faq-question">
            <span>Do you offer free shipping?</span>
            <span class="faq-toggle">▼</span>
          </div>
          <div class="faq-answer">
            Yes! We offer free shipping on all orders over $50. Orders under $50 have a flat shipping rate calculated at checkout based on your location.
          </div>
        </div>
        <div class="faq-item">
          <div class="faq-question">
            <span>How does the price match guarantee work?</span>
            <span class="faq-toggle">▼</span>
          </div>
          <div class="faq-answer">
            If you find an identical product in stock at a lower price from a authorized competitor, contact our support team with proof and we'll match the price.
          </div>
        </div>
        <div class="faq-item">
          <div class="faq-question">
            <span>Can I return a gift?</span>
            <span class="faq-toggle">▼</span>
          </div>
          <div class="faq-answer">
            Absolutely. Gifts can be returned within 30 days of delivery for store credit or exchanged for another item of equal or lesser value.
          </div>
        </div>
      </div>
    </div>
  </section>

  <!-- Newsletter -->
  <section class="newsletter" id="newsletter">
    <div class="container">
      <h2>Join the VelvetCart Insider</h2>
      <p>Subscribe to our newsletter for early access to flash sales, exclusive discount codes, and new gift guide releases.</p>
      <form class="newsletter-form" id="newsletter-form">
        <input type="email" placeholder="Enter your email" required>
        <button type="submit" class="btn-primary">Subscribe</button>
      </form>
    </div>
  </section>

</main>

<footer id="contact">
  <div class="container">
    <div class="footer-grid">
      <div class="footer-brand">
        <div class="logo" style="margin-bottom:1rem;">
          <img src="https://placehold.co/48x48/0f172a/ffffff?text=VC&font=inter" alt="VelvetCart Logo" class="logo-img">
          <div>
            <span class="logo-text">VelvetCart</span>
            <span class="logo-tag">Curated Deals, Delivered Daily.</span>
          </div>
        </div>
        <p>Your one-stop shop for curated retail products, daily deals, and inspired gift guides. Shop smarter with free shipping and price match guarantees.</p>
      </div>
      <div class="footer-col">
        <h4>Shop</h4>
        <ul>
          <li><a href="#shop">All Products</a></li>
          <li><a href="#deals">Flash Deals</a></li>
          <li><a href="#gift-guides">Gift Guides</a></li>
          <li><a href="#categories">Categories</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h4>Support</h4>
        <ul>
          <li><a href="#">Help Center</a></li>
          <li><a href="#">Track Order</a></li>
          <li><a href="#">Returns & Exchanges</a></li>
          <li><a href="#">Shipping Options</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h4>Company</h4>
        <ul>
          <li><a href="#">About Us</a></li>
          <li><a href="#">Press</a></li>
          <li><a href="#">Careers</a></li>
          <li><a href="#contact">Contact Us</a></li>
        </ul>
      </div>
    </div>
    <div class="footer-bottom">
      <div class="socials">
        <a href="#" class="social-link" aria-label="Instagram">📷</a>
        <a href="#" class="social-link" aria-label="Facebook">📘</a>
        <a href="#" class="social-link" aria-label="Twitter">🐦</a>
        <a href="#" class="social-link" aria-label="Pinterest">📌</a>
      </div>
      <div class="footer-links">
        <a href="#">Privacy Policy</a>
        <a href="#">Terms of Service</a>
      </div>
      <p>&copy; 2024 VelvetCart. All rights reserved.</p>
    </div>
  </div>
</footer>

<!-- Cart Overlay -->
<div class="cart-overlay" id="cart-overlay"></div>
<div class="cart-panel" id="cart-panel">
  <div class="cart-header">
    <h3>Your Cart</h3>
    <button class="close-cart" id="close-cart">✕</button>
  </div>
  <div class="cart-items" id="cart-items">
    <p style="color:var(--text-muted); text-align:center; margin-top:2rem;">Your cart is empty.</p>
  </div>
  <div class="cart-footer">
    <div class="cart-total">
      <span>Total</span>
      <span id="cart-total">$0.00</span>
    </div>
    <button class="checkout-btn">Checkout</button>
  </div>
</div>

<script>
  // Product data
  const products = [
    { id: 1, name: "Wireless Noise-Canceling Headphones", category: "Electronics", price: 179.99, original: 249.99, image: "https://picsum.photos/400/400?random=1", tags: ["tech","him","over-100"] },
    { id: 2, name: "Ceramic Coffee Mug Set", category: "Home", price: 34.99, original: 44.99, image: "https://picsum.photos/400/400?random=2", tags: ["home","her","under-25"] },
    { id: 3, name: "Smart Fitness Watch", category: "Electronics", price: 129.00, original: 159.00, image: "https://picsum.photos/400/400?random=3", tags: ["tech","him","over-100"] },
    { id: 4, name: "Organic Cotton Throw Blanket", category: "Home", price: 48.50, original: 68.00, image: "https://picsum.photos/400/400?random=4", tags: ["home","her","25-50"] },
    { id: 5, name: "Leather Travel Wallet", category: "Accessories", price: 42.00, original: 58.00, image: "https://picsum.photos/400/400?random=5", tags: ["him","her","25-50"] },
    { id: 6, name: "Aromatherapy Diffuser", category: "Home", price: 39.99, original: 54.99, image: "https://picsum.photos/400/400?random=6", tags: ["home","her","under-25"] },
    { id: 7, name: "Kids STEM Building Kit", category: "Toys", price: 54.99, original: 74.99, image: "https://picsum.photos/400/400?random=7", tags: ["kids","25-50"] },
    { id: 8, name: "Minimalist Desk Lamp", category: "Home", price: 29.99, original: 39.99, image: "https://picsum.photos/400/400?random=8", tags: ["home","him","under-25"] }
  ];

  const ratedProducts = [
    { id: 101, name: "Premium Espresso Machine", price: 299.00, image: "https://picsum.photos/400/400?random=30", stars: 5, reviews: 128 },
    { id: 102, name: "Memory Foam Mattress Topper", price: 149.00, image: "https://picsum.photos/400/400?random=31", stars: 5, reviews: 204 },
    { id: 103, name: "Stainless Steel Cookware Set", price: 189.00, image: "https://picsum.photos/400/400?random=32", stars: 4, reviews: 87 },
    { id: 104, name: "Running Shoes - Air Cushion", price: 89.00, image: "https://picsum.photos/400/400?random=33", stars: 5, reviews: 312 }
  ];

  // Render flash deals
  const dealsGrid = document.getElementById('deals-grid');
  products.forEach(p => {
    const card = document.createElement('div');
    card.className = 'product-card';
    card.innerHTML = `
      <div class="product-image">
        <img src="${p.image}" alt="${p.name}">
      </div>
      <div class="product-info">
        <div class="product-category">${p.category}</div>
        <div class="product-title">${p.name}</div>
        <div class="product-prices">
          <span class="sale-price">$${p.price.toFixed(2)}</span>
          <span class="original-price">$${p.original.toFixed(2)}</span>
        </div>
        <div class="product-actions">
          <button class="add-to-cart" data-id="${p.id}" data-name="${p.name}" data-price="${p.price}">Add to Cart</button>
          <button class="quick-view" title="Quick View">👁</button>
        </div>
      </div>
    `;
    dealsGrid.appendChild(card);
  });

  // Render top rated
  const ratedGrid = document.getElementById('rated-grid');
  ratedProducts.forEach(p => {
    const stars = '★'.repeat(p.stars) + '☆'.repeat(5 - p.stars);
    const card = document.createElement('div');
    card.className = 'rated-card';
    card.innerHTML = `
      <img src="${p.image}" alt="${p.name}" class="rated-img">
      <div class="rated-info">
        <h4>${p.name}</h4>
        <div class="stars" title="${p.reviews} reviews">${stars} <span style="color:var(--text-muted); font-weight:400; font-size:0.85rem; margin-left:4px;">(${p.reviews})</span></div>
        <p>Customer favorite with excellent reviews and fast shipping options.</p>
        <div class="price">$${p.price.toFixed(2)}</div>
      </div>
    `;
    ratedGrid.appendChild(card);
  });

  // Cart functionality
  let cart = [];
  const cartCountEl = document.getElementById('cart-count');
  const cartItemsEl = document.getElementById('cart-items');
  const cartTotalEl = document.getElementById('cart-total');
  const cartBtn = document.getElementById('cart-btn');
  const cartPanel = document.getElementById('cart-panel');
  const cartOverlay = document.getElementById('cart-overlay');
  const closeCart = document.getElementById('close-cart');

  function updateCart() {
    cartCountEl.textContent = cart.reduce((sum, item) => sum + item.qty, 0);
    const total = cart.reduce((sum, item) => sum + item.price * item.qty, 0);
    cartTotalEl.textContent = '$' + total.toFixed(2);

    if (cart.length === 0) {
      cartItemsEl.innerHTML = '<p style="color:var(--text-muted); text-align:center; margin-top:2rem;">Your cart is empty.</p>';
    } else {
      cartItemsEl.innerHTML = '';
      cart.forEach((item, index) => {
        const el = document.createElement('div');
        el.className = 'cart-item';
        el.innerHTML = `
          <img src="${item.image}" alt="${item.name}" class="cart-item-img">
          <div class="cart-item-info">
            <h4>${item.name}</h4>
            <p>$${item.price.toFixed(2)} × ${item.qty}</p>
          </div>
          <button class="remove-item" data-index="${index}">Remove</button>
        `;
        cartItemsEl.appendChild(el);
      });
      cartItemsEl.querySelectorAll('.remove-item').forEach(btn => {
        btn.addEventListener('click', (e) => {
          const idx = parseInt(e.target.dataset.index);
          cart.splice(idx, 1);
          updateCart();
        });
      });
    }
  }

  document.querySelectorAll('.add-to-cart').forEach(btn => {
    btn.addEventListener('click', (e) => {
      const id = parseInt(e.target.dataset.id);
      const name = e.target.dataset.name;
      const price = parseFloat(e.target.dataset.price);
      const product = products.find(p => p.id === id);
      const existing = cart.find(item => item.id === id);
      if (existing) {
        existing.qty += 1;
      } else {
        cart.push({ id, name, price, qty: 1, image: product.image });
      }
      updateCart();
      cartPanel.classList.add('open');
      cartOverlay.style.display = 'block';
    });
  });

  cartBtn.addEventListener('click', () => {
    cartPanel.classList.add('open');
    cartOverlay.style.display = 'block';
  });

  function closeCartPanel() {
    cartPanel.classList.remove('open');
    cartOverlay.style.display = 'none';
  }

  closeCart.addEventListener('click', closeCartPanel);
  cartOverlay.addEventListener('click', closeCartPanel);

  // Mobile menu
  const mobileMenu = document.getElementById('mobile-menu');
  const navLinks = document.getElementById('nav-links');
  mobileMenu.addEventListener('click', () => {
    navLinks.classList.toggle('open');
  });

  // Header scroll effect
  window.addEventListener('scroll', () => {
    if (window.scrollY > 50) {
      header.classList.add('scrolled');
    } else {
      header.classList.remove('scrolled');
    }
  });
  const header = document.querySelector('header');

  // Newsletter form
  document.getElementById('newsletter-form').addEventListener('submit', (e) => {
    e.preventDefault();
    alert('Thanks for subscribing! You\'ll be the first to know about our next flash sale.');
    e.target.reset();
  });

  // Gift Finder
  const giftForm = document.getElementById('gift-form');
  const resultsContainer = document.getElementById('finder-results');

  giftForm.addEventListener('submit', (e) => {
    e.preventDefault();
    const recipient = document.getElementById('recipient').value;
    const occasion = document.getElementById('occasion').value;
    const budget = document.getElementById('budget').value;

    const filtered = products.filter(p => {
      const matchRecipient = recipient === 'any' || p.tags.includes(recipient);
      // For demo, occasion doesn't filter strictly but we accept all
      let matchBudget = true;
      if (budget === 'under-25') matchBudget = p.price < 25;
      if (budget === '25-50') matchBudget = p.price >= 25 && p.price <= 50;
      if (budget === '50-100') matchBudget = p.price > 50 && p.price <= 100;
      if (budget === 'over-100') matchBudget = p.price > 100;
      return matchRecipient && matchBudget;
    });

    resultsContainer.classList.add('active');
    resultsContainer.innerHTML = '';

    if (filtered.length === 0) {
      resultsContainer.innerHTML = '<p style="grid-column:1/-1; text-align:center; color:var(--text-muted);">No matches found. Try adjusting your filters.</p>';
      return;
    }

    filtered.forEach(p => {
      const card = document.createElement('div');
      card.className = 'finder-card';
      card.innerHTML = `
        <img src="${p.image}" alt="${p.name}">
        <h4>${p.name}</h4>
        <div class="price">$${p.price.toFixed(2)}</div>
        <button class="add-to-cart" data-id="${p.id}" data-name="${p.name}" data-price="${p.price}" style="width:100%; margin-top:0.75rem; padding:0.6rem;">Add to Cart</button>
      `;
      resultsContainer.appendChild(card);
    });

    // Re-bind add to cart for new buttons
    resultsContainer.querySelectorAll('.add-to-cart').forEach(btn => {
      btn.addEventListener('click', (e) => {
        const id = parseInt(e.target.dataset.id);
        const name = e.target.dataset.name;
        const price = parseFloat(e.target.dataset.price);
        const product = products.find(p => p.id === id);
        const existing = cart.find(item => item.id === id);
        if (existing) {
          existing.qty += 1;
        } else {
          cart.push({ id, name, price, qty: 1, image: product.image });
        }
        updateCart();
        cartPanel.classList.add('open');
        cartOverlay.style.display = 'block';
      });
    });
  });

  // FAQ accordion
  document.querySelectorAll('.faq-question').forEach(q => {
    q.addEventListener('click', () => {
      const item = q.parentElement;
      item.classList.toggle('open');
    });
  });
</script>
</body>
</html>
View Axe Report (JSON)
{
  "testEngine": {
    "name": "axe-core",
    "version": "4.10.2"
  },
  "testRunner": {
    "name": "axe"
  },
  "testEnvironment": {
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
    "windowWidth": 1280,
    "windowHeight": 720,
    "orientationAngle": 0,
    "orientationType": "landscape-primary"
  },
  "timestamp": "2026-11-12T10:13:03.470Z",
  "url": "https://benchmark.aimac.invalid/8e1f8d90059bb4b6838b07e216e319c1eece1db6e9c00815716adef0e9a1699c.html",
  "toolOptions": {
    "runOnly": {
      "type": "tag",
      "values": [
        "wcag2a",
        "wcag2aa",
        "wcag21a",
        "wcag21aa",
        "wcag22a",
        "wcag22aa"
      ]
    },
    "resultTypes": [
      "violations"
    ],
    "reporter": "v1"
  },
  "inapplicable": [
    {
      "id": "area-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <area> elements of image maps have alternative text",
      "help": "Active <area> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-braille-equivalent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
      "help": "aria-braille attributes must have a non-braille equivalent",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-command-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA button, link and menuitem has an accessible name",
      "help": "ARIA commands must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-deprecated-role",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-hidden-focus",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-input-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-meter-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-progressbar-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-children",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-parent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-roles",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-toggle-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-tooltip-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "autocomplete-valid",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "nodes": []
    },
    {
      "id": "blink",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "nodes": []
    },
    {
      "id": "definition-list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "nodes": []
    },
    {
      "id": "dlitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "nodes": []
    },
    {
      "id": "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": "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": []
    },
    {
      "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": "server-side-image-map",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "nodes": []
    },
    {
      "id": "summary-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "svg-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "td-headers-attr",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "th-has-data-cells",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "nodes": []
    },
    {
      "id": "valid-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "nodes": []
    },
    {
      "id": "video-caption",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "nodes": []
    },
    {
      "id": "no-autoplay-audio",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "nodes": []
    }
  ],
  "passes": [
    {
      "id": "aria-allowed-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure an element's role supports its ARIA attributes",
      "help": "Elements must only use supported ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-allowed-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attributes are used correctly for the defined role"
            }
          ],
          "none": [
            {
              "id": "aria-unsupported-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute is supported"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" class=\"social-link\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-conditional-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
      "help": "ARIA attributes must be used as specified for the element's role",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-conditional-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" class=\"social-link\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-hidden-body",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-hidden-body",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<body>",
          "target": [
            "body"
          ]
        }
      ]
    },
    {
      "id": "aria-prohibited-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" class=\"social-link\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr-value",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all ARIA attributes have valid values",
      "help": "ARIA attributes must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-valid-attr-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute values are valid"
            },
            {
              "id": "aria-errormessage",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
            },
            {
              "id": "aria-level",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-level values are valid"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" class=\"social-link\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
      "help": "ARIA attributes must conform to valid names",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-valid-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute name is valid"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" class=\"social-link\" aria-label=\"Instagram\">\ud83d\udcf7</a>",
          "target": [
            "a[aria-label=\"Instagram\"]"
          ]
        }
      ]
    },
    {
      "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": "<a href=\"#\" style=\"font-size:0.85rem; color:var(--text-muted);\">Track Order</a>",
          "target": [
            ".right > a[href=\"#\"]:nth-child(1)"
          ]
        }
      ]
    },
    {
      "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=\"cart-btn\" id=\"cart-btn\">\n      \ud83d\uded2 Cart <span class=\"cart-count\" id=\"cart-count\">0</span>\n    </button>",
          "target": [
            "#cart-btn"
          ]
        }
      ]
    },
    {
      "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>Shop Smarter. Live Better.</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h2>Flash Sales &amp; Daily Deals</h2>",
                  "target": [
                    "#deals > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h2>Gift Guides for Every Occasion</h2>",
                  "target": [
                    "#gift-guides > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h3>For Him</h3>",
                  "target": [
                    ".guide-card:nth-child(1) > .guide-content > h3"
                  ]
                },
                {
                  "html": "<h3>For Her</h3>",
                  "target": [
                    ".guide-card:nth-child(2) > .guide-content > h3"
                  ]
                },
                {
                  "html": "<h3>For the Home</h3>",
                  "target": [
                    ".guide-card:nth-child(3) > .guide-content > h3"
                  ]
                },
                {
                  "html": "<h3>Tech Lovers</h3>",
                  "target": [
                    ".guide-card:nth-child(4) > .guide-content > h3"
                  ]
                },
                {
                  "html": "<h2>Gift Finder</h2>",
                  "target": [
                    ".finder-header > h2"
                  ]
                },
                {
                  "html": "<h2>",
                  "target": [
                    "#top-rated > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h4>Premium Espresso Machine</h4>",
                  "target": [
                    ".rated-card:nth-child(1) > .rated-info > h4"
                  ]
                },
                {
                  "html": "<h4>Memory Foam Mattress Topper</h4>",
                  "target": [
                    ".rated-card:nth-child(2) > .rated-info > h4"
                  ]
                },
                {
                  "html": "<h4>Stainless Steel Cookware Set</h4>",
                  "target": [
                    ".rated-card:nth-child(3) > .rated-info > h4"
                  ]
                },
                {
                  "html": "<h4>Running Shoes - Air Cushion</h4>",
                  "target": [
                    ".rated-card:nth-child(4) > .rated-info > h4"
                  ]
                },
                {
                  "html": "<h2>What Our Shoppers Say</h2>",
                  "target": [
                    ".section:nth-child(6) > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h4>Maya R.</h4>",
                  "target": [
                    ".testimonial-card:nth-child(1) > .testimonial-author > .author-info > h4"
                  ]
                },
                {
                  "html": "<h4>Daniel K.</h4>",
                  "target": [
                    ".testimonial-card:nth-child(2) > .testimonial-author > .author-info > h4"
                  ]
                },
                {
                  "html": "<h4>Sophia L.</h4>",
                  "target": [
                    ".testimonial-card:nth-child(3) > .testimonial-author > .author-info > h4"
                  ]
                },
                {
                  "html": "<h2>Why Shop With Us?</h2>",
                  "target": [
                    "#features > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h3>Free Shipping</h3>",
                  "target": [
                    ".feature-item:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Price Match</h3>",
                  "target": [
                    ".feature-item:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>Secure Checkout</h3>",
                  "target": [
                    ".feature-item:nth-child(3) > h3"
                  ]
                },
                {
                  "html": "<h3>30-Day Returns</h3>",
                  "target": [
                    ".feature-item:nth-child(4) > h3"
                  ]
                },
                {
                  "html": "<h2>Frequently Asked Questions</h2>",
                  "target": [
                    "#faq > .container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h2>Join the VelvetCart Insider</h2>",
                  "target": [
                    ".container > h2"
                  ]
                },
                {
                  "html": "<h4>Shop</h4>",
                  "target": [
                    ".footer-col:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Support</h4>",
                  "target": [
                    ".footer-col:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Company</h4>",
                  "target": [
                    ".footer-col:nth-child(4) > h4"
                  ]
                },
                {
                  "html": "<h3>Your Cart</h3>",
                  "target": [
                    ".cart-header > h3"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            },
            {
              "id": "landmark",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<main>",
                  "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": "#64748b",
                "bgColor": "#ffffff",
                "contrastRatio": 4.75,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 4.75"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<span>\ud83d\ude9a Free Shipping on Orders Over $50</span>",
          "target": [
            ".left > span:nth-child(1)"
          ]
        }
      ]
    },
    {
      "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": "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": [
        {
          "any": [
            {
              "id": "duplicate-id-aria",
              "data": "recipient",
              "relatedNodes": [],
              "impact": "critical",
              "message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<select id=\"recipient\">\n              <option value=\"any\">Anyone</option>\n              <option value=\"him\">Him</option>\n              <option value=\"her\">Her</option>\n              <option value=\"kids\">Kids</option>\n              <option value=\"home\">Home</option>\n            </select>",
          "target": [
            "#recipient"
          ]
        }
      ]
    },
    {
      "id": "form-field-multiple-labels",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag332",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.3.3.2"
      ],
      "description": "Ensure form field does not have multiple label elements",
      "help": "Form field must not have multiple label elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<label for=\"recipient\">Who is it for?</label>",
                  "target": [
                    "label[for=\"recipient\"]"
                  ]
                }
              ],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<select id=\"recipient\">\n              <option value=\"any\">Anyone</option>\n              <option value=\"him\">Him</option>\n              <option value=\"her\">Her</option>\n              <option value=\"kids\">Kids</option>\n              <option value=\"home\">Home</option>\n            </select>",
          "target": [
            "#recipient"
          ]
        }
      ]
    },
    {
      "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/0f172a/ffffff?text=VC&amp;font=inter\" alt=\"VelvetCart Logo\" class=\"logo-img\">",
          "target": [
            ".logo[href=\"#\"] > .logo-img[alt=\"VelvetCart Logo\"]"
          ]
        }
      ]
    },
    {
      "id": "label",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "non-empty-placeholder",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a placeholder attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<input type=\"email\" placeholder=\"Enter your email\" required=\"\">",
          "target": [
            "input"
          ]
        }
      ]
    },
    {
      "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=\"#\" style=\"font-size:0.85rem; color:var(--text-muted);\">Track Order</a>",
          "target": [
            ".right > a[href=\"#\"]:nth-child(1)"
          ]
        }
      ]
    },
    {
      "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 id=\"nav-links\">",
          "target": [
            "#nav-links"
          ]
        }
      ]
    },
    {
      "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=\"#home\">Home</a></li>",
          "target": [
            "#nav-links > 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/0f172a/ffffff?text=VC&amp;font=inter\" alt=\"VelvetCart Logo\" class=\"logo-img\">",
          "target": [
            ".logo[href=\"#\"] > .logo-img[alt=\"VelvetCart Logo\"]"
          ]
        }
      ]
    },
    {
      "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": [
        {
          "any": [
            {
              "id": "explicit-label",
              "data": {
                "explicitLabel": "Who is it for?"
              },
              "relatedNodes": [
                {
                  "html": "<label for=\"recipient\">Who is it for?</label>",
                  "target": [
                    "label[for=\"recipient\"]"
                  ]
                }
              ],
              "impact": "critical",
              "message": "Element has an explicit <label>"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<select id=\"recipient\">\n              <option value=\"any\">Anyone</option>\n              <option value=\"him\">Him</option>\n              <option value=\"her\">Her</option>\n              <option value=\"kids\">Kids</option>\n              <option value=\"home\">Home</option>\n            </select>",
          "target": [
            "#recipient"
          ]
        }
      ]
    },
    {
      "id": "target-size",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag22aa",
        "wcag258"
      ],
      "description": "Ensure touch targets have sufficient size and space",
      "help": "All touch targets must be 24px large, or leave sufficient space",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 24,
                "minOffset": 24
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" style=\"font-size:0.85rem; color:var(--text-muted);\">Track Order</a>",
          "target": [
            ".right > a[href=\"#\"]:nth-child(1)"
          ]
        }
      ]
    }
  ],
  "incomplete": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": null,
                "bgColor": null,
                "contrastRatio": 0,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "normal",
                "messageKey": "bgGradient",
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"hero\" id=\"home\">",
                  "target": [
                    "#home"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element's background color could not be determined due to a background gradient"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"badge\">New Arrivals Just Dropped</span>",
          "target": [
            ".hero-content > .badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a background gradient"
        }
      ]
    }
  ],
  "violations": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e11d48",
                "bgColor": "#f6e4ea",
                "contrastRatio": 3.84,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"badge\">Limited Time</span>",
                  "target": [
                    "#deals > .container > .section-header > .badge"
                  ]
                },
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.84 (foreground color: #e11d48, background color: #f6e4ea, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"badge\">Limited Time</span>",
          "target": [
            "#deals > .container > .section-header > .badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.84 (foreground color: #e11d48, background color: #f6e4ea, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e11d48",
                "bgColor": "#f8fafc",
                "contrastRatio": 4.48,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.48 (foreground color: #e11d48, background color: #f8fafc, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#shop\">Shop All Flash Deals \u2192</a>",
          "target": [
            ".section-link > a[href$=\"#shop\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.48 (foreground color: #e11d48, background color: #f8fafc, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e11d48",
                "bgColor": "#fce8ed",
                "contrastRatio": 4,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"badge\">Inspiration</span>",
                  "target": [
                    "#gift-guides > .container > .section-header > .badge"
                  ]
                },
                {
                  "html": "<section class=\"section\" id=\"gift-guides\" style=\"background:#fff;\">",
                  "target": [
                    "#gift-guides"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4 (foreground color: #e11d48, background color: #fce8ed, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"badge\">Inspiration</span>",
          "target": [
            "#gift-guides > .container > .section-header > .badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4 (foreground color: #e11d48, background color: #fce8ed, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e11d48",
                "bgColor": "#f6e4ea",
                "contrastRatio": 3.84,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"badge\">Customer Favorites</span>",
                  "target": [
                    "#top-rated > .container > .section-header > .badge"
                  ]
                },
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.84 (foreground color: #e11d48, background color: #f6e4ea, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"badge\">Customer Favorites</span>",
          "target": [
            "#top-rated > .container > .section-header > .badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.84 (foreground color: #e11d48, background color: #f6e4ea, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e11d48",
                "bgColor": "#fce8ed",
                "contrastRatio": 4,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"badge\">Reviews</span>",
                  "target": [
                    ".section:nth-child(6) > .container > .section-header > .badge"
                  ]
                },
                {
                  "html": "<section class=\"section\" style=\"background:#fff;\">",
                  "target": [
                    ".section:nth-child(6)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4 (foreground color: #e11d48, background color: #fce8ed, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"badge\">Reviews</span>",
          "target": [
            ".section:nth-child(6) > .container > .section-header > .badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4 (foreground color: #e11d48, background color: #fce8ed, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e11d48",
                "bgColor": "#f6e4ea",
                "contrastRatio": 3.84,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"badge\">Why VelvetCart</span>",
                  "target": [
                    "#features > .container > .section-header > .badge"
                  ]
                },
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.84 (foreground color: #e11d48, background color: #f6e4ea, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"badge\">Why VelvetCart</span>",
          "target": [
            "#features > .container > .section-header > .badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.84 (foreground color: #e11d48, background color: #f6e4ea, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e11d48",
                "bgColor": "#fce8ed",
                "contrastRatio": 4,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"badge\">Help</span>",
                  "target": [
                    "#faq > .container > .section-header > .badge"
                  ]
                },
                {
                  "html": "<section class=\"section\" id=\"faq\" style=\"background:#fff;\">",
                  "target": [
                    "#faq"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4 (foreground color: #e11d48, background color: #fce8ed, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"badge\">Help</span>",
          "target": [
            "#faq > .container > .section-header > .badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4 (foreground color: #e11d48, background color: #fce8ed, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e11d48",
                "bgColor": "#0a0e1a",
                "contrastRatio": 4.09,
                "fontSize": "8.4pt (11.2px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer id=\"contact\">",
                  "target": [
                    "#contact"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.09 (foreground color: #e11d48, background color: #0a0e1a, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"logo-tag\">Curated Deals, Delivered Daily.</span>",
          "target": [
            ".footer-brand > .logo > div > .logo-tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.09 (foreground color: #e11d48, background color: #0a0e1a, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f3f3f4",
                "contrastRatio": 4.29,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header id=\"header\" class=\"scrolled\">",
                  "target": [
                    "#header"
                  ]
                },
                {
                  "html": "<div class=\"gift-finder\">",
                  "target": [
                    ".gift-finder"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.29 (foreground color: #64748b, background color: #f3f3f4, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" style=\"font-size:0.85rem; color:var(--text-muted);\">Track Order</a>",
          "target": [
            ".right > a[href=\"#\"]:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.29 (foreground color: #64748b, background color: #f3f3f4, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#e11d48",
                "bgColor": "#f3f3f4",
                "contrastRatio": 4.23,
                "fontSize": "8.4pt (11.2px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header id=\"header\" class=\"scrolled\">",
                  "target": [
                    "#header"
                  ]
                },
                {
                  "html": "<div class=\"gift-finder\">",
                  "target": [
                    ".gift-finder"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.23 (foreground color: #e11d48, background color: #f3f3f4, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"logo-tag\">Curated Deals, Delivered Daily.</span>",
          "target": [
            ".logo[href=\"#\"] > div > .logo-tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.23 (foreground color: #e11d48, background color: #f3f3f4, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f3f3f4",
                "contrastRatio": 4.29,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header id=\"header\" class=\"scrolled\">",
                  "target": [
                    "#header"
                  ]
                },
                {
                  "html": "<section class=\"newsletter\" id=\"newsletter\">",
                  "target": [
                    "#newsletter"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.29 (foreground color: #64748b, background color: #f3f3f4, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\ude9a Free Shipping on Orders Over $50</span>",
          "target": [
            ".left > span:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.29 (foreground color: #64748b, background color: #f3f3f4, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f3f3f4",
                "contrastRatio": 4.29,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header id=\"header\" class=\"scrolled\">",
                  "target": [
                    "#header"
                  ]
                },
                {
                  "html": "<section class=\"newsletter\" id=\"newsletter\">",
                  "target": [
                    "#newsletter"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.29 (foreground color: #64748b, background color: #f3f3f4, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\ud83d\udd12 Secure Checkout</span>",
          "target": [
            ".left > span:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.29 (foreground color: #64748b, background color: #f3f3f4, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f3f3f4",
                "contrastRatio": 4.29,
                "fontSize": "10.2pt (13.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header id=\"header\" class=\"scrolled\">",
                  "target": [
                    "#header"
                  ]
                },
                {
                  "html": "<section class=\"newsletter\" id=\"newsletter\">",
                  "target": [
                    "#newsletter"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.29 (foreground color: #64748b, background color: #f3f3f4, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" style=\"font-size:0.85rem; color:var(--text-muted);\">Help Center</a>",
          "target": [
            ".right > a[href=\"#\"]:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.29 (foreground color: #64748b, background color: #f3f3f4, font size: 10.2pt (13.6px), font weight: normal). Expected contrast ratio of 4.5:1"
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 7473
      },
      {
        "y": 576,
        "height": 7473
      },
      {
        "y": 1152,
        "height": 7473
      },
      {
        "y": 1728,
        "height": 7473
      },
      {
        "y": 2304,
        "height": 7473
      },
      {
        "y": 2880,
        "height": 7473
      },
      {
        "y": 3456,
        "height": 7473
      },
      {
        "y": 4032,
        "height": 7473
      },
      {
        "y": 4608,
        "height": 7473
      },
      {
        "y": 5184,
        "height": 7473
      },
      {
        "y": 5760,
        "height": 7473
      },
      {
        "y": 6336,
        "height": 7473
      },
      {
        "y": 6753,
        "height": 7473
      }
    ],
    "scans": 14,
    "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 "Shopping" 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: "Shopping"
- Description: Online shopping, e-commerce, deals, retail products, and gift guides.

**Your Creative Task:**
1.  **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Shopping" 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: "Shop", "Deals", "Categories".
-   **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
    -   Address key topics relevant to the "Shopping" category. Consider themes similar to: "Gift Guides", "Flash Sales", "Top Rated".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "free shipping", "price match", "shipping options".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Add to Cart", "Shop Collection", "Subscribe".
-   **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Shopping" sector. Ideas similar but not limited to: "gift finder".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "top picks", "recommendations", "price drops".
-   **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.