MiniMax MiniMax M3 – Shopping

via CoreWeave · Generated

  • AIMAC Debt 23.91
  • Cost $0.03
  • Total Violations 50
  • HTML Size 90 KB
  • Em Dashes 24

Screenshot

View MiniMax MiniMax M3 Shopping page View Live Page

Accessibility Issues Found

12 Critical 38 Serious

  • button-name critical 12 instances

    Buttons must have discernible text

    Example HTML <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7...
  • color-contrast serious 38 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <span class="logo-tag">Curated Marketplace</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>Mercato — Curated finds from independent makers, delivered to your door.</title>
<meta name="description" content="Mercato is a curated online marketplace featuring the best in home, fashion, kitchen, and gift essentials from independent brands worldwide." />
<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=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
/* ============================================
   RESET & BASE
   ============================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:16px;
  line-height:1.6;
  color:#1F1F1F;
  background:#FBF8F3;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}

:root{
  --bg:#FBF8F3;
  --bg-alt:#F2EDE4;
  --card:#FFFFFF;
  --ink:#1F1F1F;
  --ink-soft:#5C544A;
  --muted:#8B7E72;
  --line:#E8E2D6;
  --accent:#C8553D;
  --accent-dark:#A6432F;
  --green:#2C4A3E;
  --gold:#B8935A;
  --shadow:0 1px 2px rgba(31,31,31,.04),0 8px 24px rgba(31,31,31,.06);
  --shadow-lg:0 4px 12px rgba(31,31,31,.08),0 24px 60px rgba(31,31,31,.12);
  --radius:14px;
  --radius-sm:8px;
  --maxw:1280px;
}

h1,h2,h3,h4,h5{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.15;letter-spacing:-.01em}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.container{max-width:var(--maxw);margin:0 auto;padding:0 28px}

/* ============================================
   ANNOUNCEMENT BAR
   ============================================ */
.announce{
  background:var(--ink);
  color:#FBF8F3;
  text-align:center;
  padding:10px 20px;
  font-size:13px;
  letter-spacing:.04em;
  position:relative;
  overflow:hidden;
}
.announce-track{display:flex;gap:60px;justify-content:center;flex-wrap:wrap}
.announce-track span strong{color:#E8B97B;font-weight:600}
.announce-close{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#FBF8F3;opacity:.6;font-size:16px;padding:4px 8px}
.announce-close:hover{opacity:1}

/* ============================================
   HEADER & NAV
   ============================================ */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(251,248,243,.92);
  backdrop-filter:saturate(160%) blur(12px);
  -webkit-backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s ease;
}
.site-header.scrolled{box-shadow:0 4px 18px rgba(31,31,31,.05)}
.nav-bar{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:24px;
  padding:18px 0;
}
.logo{display:flex;align-items:center;gap:12px}
.logo-mark{
  width:42px;height:42px;border-radius:50%;
  background:var(--ink);
  display:flex;align-items:center;justify-content:center;
  color:#FBF8F3;font-family:'Playfair Display',serif;font-weight:700;font-size:22px;
  letter-spacing:-.04em;
}
.logo-text{display:flex;flex-direction:column;line-height:1}
.logo-name{font-family:'Playfair Display',serif;font-size:24px;font-weight:600;letter-spacing:-.02em}
.logo-tag{font-size:10px;color:var(--muted);letter-spacing:.18em;text-transform:uppercase;margin-top:3px}

.main-nav{display:flex;gap:30px;justify-content:center;align-items:center}
.main-nav a{
  font-size:14px;font-weight:500;color:var(--ink-soft);
  position:relative;padding:6px 0;
  transition:color .2s ease;
}
.main-nav a:hover{color:var(--ink)}
.main-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
.main-nav a:hover::after{transform:scaleX(1)}
.main-nav a.sale-link{color:var(--accent);font-weight:600}
.main-nav a.sale-link::after{background:var(--accent)}
.main-nav .nav-badge{
  display:inline-block;background:var(--accent);color:#fff;
  font-size:10px;padding:1px 6px;border-radius:8px;margin-left:6px;
  letter-spacing:.05em;font-weight:600;
}

.nav-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.icon-btn{
  width:40px;height:40px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);
  transition:background .2s ease, color .2s ease;
  position:relative;
}
.icon-btn:hover{background:var(--bg-alt);color:var(--ink)}
.icon-btn svg{width:20px;height:20px;stroke-width:1.6}
.cart-count{
  position:absolute;top:4px;right:4px;
  background:var(--accent);color:#fff;
  font-size:10px;font-weight:700;
  min-width:18px;height:18px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  padding:0 5px;
}

.menu-toggle{display:none}

/* ============================================
   HERO
   ============================================ */
.hero{
  padding:40px 0 80px;
  position:relative;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:48px;
  align-items:center;
}
.hero-copy h1{
  font-size:clamp(44px,5.4vw,76px);
  line-height:1.02;
  letter-spacing:-.025em;
  margin:18px 0 24px;
}
.hero-copy h1 em{font-style:italic;color:var(--accent)}
.hero-copy p.lead{
  font-size:18px;color:var(--ink-soft);max-width:480px;margin-bottom:32px;line-height:1.65;
}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:36px}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 28px;border-radius:999px;
  font-size:14px;font-weight:600;letter-spacing:.04em;
  transition:all .25s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--ink);color:#FBF8F3}
.btn-primary:hover{background:#000;transform:translateY(-1px);box-shadow:0 10px 24px rgba(31,31,31,.18)}
.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn-secondary:hover{background:var(--ink);color:#FBF8F3}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-dark);transform:translateY(-1px)}
.btn-sm{padding:12px 20px;font-size:13px}
.btn svg{width:16px;height:16px}

.hero-stats{display:flex;gap:40px;padding-top:32px;border-top:1px solid var(--line)}
.hero-stat .num{font-family:'Playfair Display',serif;font-size:30px;font-weight:500;color:var(--ink)}
.hero-stat .lbl{font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:2px}

.hero-visual{position:relative}
.hero-img-main{
  border-radius:var(--radius);
  overflow:hidden;
  aspect-ratio:4/5;
  background:var(--bg-alt);
  box-shadow:var(--shadow-lg);
}
.hero-img-main img{width:100%;height:100%;object-fit:cover;transition:transform 8s ease}
.hero-visual:hover .hero-img-main img{transform:scale(1.05)}
.hero-card-float{
  position:absolute;left:-32px;bottom:40px;
  background:#fff;border-radius:12px;padding:14px 18px;
  box-shadow:var(--shadow-lg);
  display:flex;gap:12px;align-items:center;
  max-width:240px;
}
.hero-card-float .pf{
  width:44px;height:44px;border-radius:50%;
  background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;
}
.hero-card-float .info{font-size:13px;line-height:1.3}
.hero-card-float .info strong{display:block;color:var(--ink);font-weight:600}
.hero-card-float .info span{color:var(--muted);font-size:11px}

.hero-badge{
  position:absolute;top:-20px;right:-20px;
  width:120px;height:120px;border-radius:50%;
  background:var(--accent);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  text-align:center;line-height:1.3;
  transform:rotate(-8deg);
  box-shadow:0 12px 32px rgba(200,85,61,.3);
  font-weight:600;
}
.hero-badge strong{display:block;font-family:'Playfair Display',serif;font-size:22px;letter-spacing:0;text-transform:none;margin-top:2px}

/* ============================================
   VALUE PROPS
   ============================================ */
.value-props{padding:30px 0 80px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.value-card{
  display:flex;gap:16px;align-items:flex-start;
  padding:24px 4px;
}
.value-icon{
  width:44px;height:44px;border-radius:50%;
  background:var(--bg-alt);
  display:flex;align-items:center;justify-content:center;
  color:var(--green);flex-shrink:0;
}
.value-icon svg{width:22px;height:22px;stroke-width:1.6}
.value-card h4{font-family:'Inter',sans-serif;font-size:15px;font-weight:600;margin-bottom:4px}
.value-card p{font-size:13px;color:var(--ink-soft);line-height:1.55}

/* ============================================
   SECTION HEADINGS
   ============================================ */
.section{padding:96px 0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;gap:40px;flex-wrap:wrap}
.section-head.center{flex-direction:column;align-items:center;text-align:center}
.section-head h2{font-size:clamp(32px,3.4vw,46px);max-width:640px}
.section-head p{max-width:420px;color:var(--ink-soft);font-size:16px}
.section-head .link-arrow{
  font-size:14px;font-weight:600;color:var(--ink);
  display:inline-flex;align-items:center;gap:6px;
  border-bottom:1px solid var(--ink);padding-bottom:2px;
  transition:gap .25s ease;
}
.section-head .link-arrow:hover{gap:12px}

/* ============================================
   PRODUCT GRID
   ============================================ */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.product-card{position:relative;transition:transform .3s ease}
.product-card:hover{transform:translateY(-4px)}
.product-img{
  position:relative;
  border-radius:var(--radius-sm);
  overflow:hidden;
  aspect-ratio:4/5;
  background:var(--bg-alt);
  margin-bottom:14px;
}
.product-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.product-card:hover .product-img img{transform:scale(1.06)}
.product-badge{
  position:absolute;top:12px;left:12px;
  background:var(--ink);color:#FBF8F3;
  font-size:11px;font-weight:600;letter-spacing:.05em;
  padding:5px 10px;border-radius:4px;text-transform:uppercase;
}
.product-badge.sale{background:var(--accent)}
.product-badge.new{background:var(--green)}
.product-badge.low{background:var(--gold);color:var(--ink)}
.wish-btn{
  position:absolute;top:12px;right:12px;
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.95);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);transition:all .2s ease;
  opacity:0;transform:translateY(-4px);
}
.wish-btn svg{width:18px;height:18px;stroke-width:1.8}
.product-card:hover .wish-btn{opacity:1;transform:translateY(0)}
.wish-btn:hover{color:var(--accent)}
.wish-btn.active{color:var(--accent);fill:var(--accent);opacity:1;transform:translateY(0)}
.quick-add{
  position:absolute;left:12px;right:12px;bottom:12px;
  background:rgba(31,31,31,.95);color:#FBF8F3;
  padding:11px 14px;border-radius:6px;
  font-size:13px;font-weight:600;letter-spacing:.04em;
  text-align:center;
  opacity:0;transform:translateY(8px);
  transition:all .25s ease;
}
.product-card:hover .quick-add{opacity:1;transform:translateY(0)}
.quick-add:hover{background:var(--accent)}

.product-meta{display:flex;flex-direction:column;gap:4px}
.product-cat{font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.product-name{font-family:'Playfair Display',serif;font-size:17px;font-weight:500;color:var(--ink);line-height:1.3}
.product-rating{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);margin-top:3px}
.stars{color:var(--gold);letter-spacing:1px}
.product-price{display:flex;align-items:baseline;gap:8px;margin-top:8px}
.price-now{font-size:16px;font-weight:600;color:var(--ink)}
.price-was{font-size:13px;color:var(--muted);text-decoration:line-through}
.price-off{font-size:11px;font-weight:600;color:var(--accent);letter-spacing:.04em}

/* ============================================
   CATEGORIES
   ============================================ */
.categories-section{background:var(--bg-alt);padding:96px 0}
.category-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.category-card{
  position:relative;border-radius:var(--radius-sm);
  overflow:hidden;aspect-ratio:3/4;
  background:#fff;
  transition:transform .3s ease;
}
.category-card:hover{transform:translateY(-4px)}
.category-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.category-card:hover img{transform:scale(1.08)}
.category-card .overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(31,31,31,.78) 0%,rgba(31,31,31,.1) 60%,rgba(31,31,31,0) 100%);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:18px;color:#fff;
}
.category-card .overlay h3{font-size:20px;margin-bottom:4px;color:#fff}
.category-card .overlay span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.category-card .count{font-size:11px;color:#E8B97B;margin-top:4px}

/* ============================================
   FEATURED BANNER
   ============================================ */
.feature-banner{
  display:grid;grid-template-columns:1fr 1fr;
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--green);
  color:#FBF8F3;
  min-height:480px;
}
.feature-banner-img{position:relative;overflow:hidden}
.feature-banner-img img{width:100%;height:100%;object-fit:cover}
.feature-banner-copy{padding:72px 60px;display:flex;flex-direction:column;justify-content:center}
.feature-banner-copy .eyebrow{color:#E8B97B}
.feature-banner-copy h2{font-size:clamp(30px,3vw,42px);color:#FBF8F3;margin:14px 0 22px;max-width:420px}
.feature-banner-copy p{color:rgba(251,248,243,.78);max-width:420px;margin-bottom:32px;line-height:1.7}
.feature-banner-copy .btn{background:#FBF8F3;color:var(--ink);align-self:flex-start}
.feature-banner-copy .btn:hover{background:#fff;transform:translateY(-1px)}

/* ============================================
   SALE SECTION
   ============================================ */
.sale-section{
  background:linear-gradient(135deg,#1F1F1F 0%,#2C2620 100%);
  color:#FBF8F3;
  padding:96px 0;
  position:relative;
  overflow:hidden;
}
.sale-section::before{
  content:"";position:absolute;top:-100px;right:-100px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,85,61,.3) 0%,transparent 70%);
}
.sale-section::after{
  content:"";position:absolute;bottom:-150px;left:-100px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(184,147,90,.15) 0%,transparent 70%);
}
.sale-content{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;position:relative;z-index:1}
.sale-headline{font-size:clamp(48px,5vw,84px);line-height:1;letter-spacing:-.03em;margin:20px 0 24px}
.sale-headline em{font-style:italic;color:var(--accent)}
.sale-discount{display:inline-block;background:var(--accent);color:#fff;font-family:'Playfair Display',serif;font-weight:600;padding:6px 16px;border-radius:6px;font-size:22px;letter-spacing:.02em}
.sale-copy p{color:rgba(251,248,243,.75);font-size:17px;line-height:1.7;max-width:480px;margin-bottom:28px}

.countdown{display:flex;gap:12px;margin-bottom:32px}
.countdown-cell{
  background:rgba(251,248,243,.08);
  border:1px solid rgba(251,248,243,.15);
  border-radius:10px;
  padding:14px 18px;text-align:center;min-width:76px;
}
.countdown-cell .num{font-family:'Playfair Display',serif;font-size:32px;font-weight:600;line-height:1;color:#FBF8F3}
.countdown-cell .lbl{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:rgba(251,248,243,.6);margin-top:6px}

.sale-visual{position:relative;display:flex;justify-content:center}
.sale-img{
  border-radius:var(--radius);overflow:hidden;
  box-shadow:0 30px 60px rgba(0,0,0,.4);
  width:100%;max-width:520px;
  aspect-ratio:4/5;background:var(--bg-alt);
}
.sale-img img{width:100%;height:100%;object-fit:cover}
.sale-floating-tag{
  position:absolute;top:30px;right:-10px;
  background:var(--accent);color:#fff;
  width:110px;height:110px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;line-height:1.2;
  font-family:'Playfair Display',serif;font-weight:600;
  font-size:24px;letter-spacing:-.02em;
  box-shadow:0 16px 40px rgba(200,85,61,.4);
  animation:spin 18s linear infinite;
}
.sale-floating-tag small{display:block;font-size:9px;font-family:Inter,sans-serif;letter-spacing:.15em;text-transform:uppercase;font-weight:600;margin-top:4px}
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ============================================
   PRICE TRACKER (INTERACTIVE)
   ============================================ */
.tracker-section{padding:96px 0;background:var(--bg-alt)}
.tracker-wrap{
  display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;
}
.tracker-copy h2{font-size:clamp(32px,3.4vw,46px);margin:16px 0 20px;max-width:480px}
.tracker-copy p{color:var(--ink-soft);line-height:1.7;margin-bottom:24px;max-width:480px}
.tracker-features{margin-top:24px;display:flex;flex-direction:column;gap:14px}
.tracker-feat{display:flex;gap:14px;align-items:flex-start}
.tracker-feat .check{
  width:24px;height:24px;border-radius:50%;
  background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.tracker-feat .check svg{width:14px;height:14px;stroke-width:2.5}
.tracker-feat p{font-size:14px;color:var(--ink-soft);line-height:1.6;margin:0}
.tracker-feat p strong{display:block;color:var(--ink);font-weight:600;font-size:15px;margin-bottom:2px}

.tracker-card{
  background:#fff;border-radius:var(--radius);
  padding:36px;box-shadow:var(--shadow-lg);
}
.tracker-card h3{font-size:22px;margin-bottom:6px}
.tracker-card .sub{font-size:14px;color:var(--muted);margin-bottom:24px}
.tracker-form{display:flex;flex-direction:column;gap:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.field input,.field select{
  padding:13px 16px;border:1px solid var(--line);border-radius:8px;
  background:var(--bg);font-size:15px;color:var(--ink);
  transition:border-color .2s ease;
}
.field input:focus,.field select:focus{outline:none;border-color:var(--ink)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tracker-result{
  margin-top:20px;padding:18px;
  background:var(--bg-alt);border-radius:10px;
  display:none;
}
.tracker-result.show{display:block;animation:slideIn .35s ease}
@keyframes slideIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.tracker-result h4{font-family:Inter,sans-serif;font-size:14px;font-weight:600;margin-bottom:6px;color:var(--green)}
.tracker-result h4 span{color:var(--accent)}
.tracker-result p{font-size:13px;color:var(--ink-soft);line-height:1.55;margin:0}
.tracker-result .price-jump{display:flex;align-items:baseline;gap:8px;margin-top:8px;font-size:24px;font-family:'Playfair Display',serif}
.tracker-result .price-jump small{font-size:11px;font-family:Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* ============================================
   TESTIMONIALS
   ============================================ */
.testimonials-section{padding:96px 0}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.testimonial{
  background:#fff;border-radius:var(--radius);
  padding:32px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:18px;
  transition:transform .3s ease;
}
.testimonial:hover{transform:translateY(-4px)}
.testimonial .stars{font-size:16px;color:var(--gold);letter-spacing:2px}
.testimonial blockquote{
  font-family:'Playfair Display',serif;font-size:19px;
  font-weight:400;font-style:italic;color:var(--ink);
  line-height:1.5;flex:1;
}
.testimonial blockquote::before{content:"\201C";display:block;font-size:32px;color:var(--accent);line-height:.6;margin-bottom:6px}
.testimonial-author{display:flex;align-items:center;gap:14px;padding-top:18px;border-top:1px solid var(--line)}
.testimonial-author img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.testimonial-author .name{font-weight:600;font-size:15px;color:var(--ink)}
.testimonial-author .meta{font-size:12px;color:var(--muted);margin-top:2px}
.testimonial .verified{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--green);font-weight:600;margin-top:4px;letter-spacing:.04em}
.testimonial .verified svg{width:12px;height:12px}

/* ============================================
   GIFT GUIDES
   ============================================ */
.gifts-section{padding:96px 0;background:var(--bg-alt)}
.gift-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.gift-card{
  position:relative;border-radius:var(--radius);overflow:hidden;
  aspect-ratio:3/4;background:#fff;
  transition:transform .35s ease;
  cursor:pointer;
}
.gift-card:hover{transform:translateY(-6px)}
.gift-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.gift-card:hover img{transform:scale(1.06)}
.gift-card .badge-top{
  position:absolute;top:16px;left:16px;
  background:rgba(31,31,31,.85);color:#FBF8F3;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 12px;border-radius:99px;font-weight:600;
  backdrop-filter:blur(6px);
}
.gift-card .info{
  position:absolute;left:16px;right:16px;bottom:16px;
  background:rgba(251,248,243,.96);
  backdrop-filter:blur(8px);
  border-radius:10px;padding:14px 16px;
}
.gift-card .info h4{font-size:16px;font-weight:600;margin-bottom:2px}
.gift-card .info span{font-size:12px;color:var(--muted)}
.gift-card .info .arrow{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);
  width:30px;height:30px;border-radius:50%;background:var(--ink);color:#FBF8F3;
  display:flex;align-items:center;justify-content:center;
  transition:transform .25s ease;
}
.gift-card:hover .info .arrow{transform:translateY(-50%) translateX(2px);background:var(--accent)}
.gift-card .info .arrow svg{width:14px;height:14px}

/* ============================================
   REWARDS
   ============================================ */
.rewards-section{padding:96px 0}
.rewards-card{
  background:linear-gradient(135deg,#2C4A3E 0%,#1F3329 100%);
  color:#FBF8F3;border-radius:var(--radius);
  padding:72px 64px;
  display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center;
  position:relative;overflow:hidden;
}
.rewards-card::before{
  content:"";position:absolute;top:-100px;right:-50px;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(184,147,90,.25) 0%,transparent 70%);
}
.rewards-card .eyebrow{color:#E8B97B}
.rewards-card h2{font-size:clamp(32px,3.4vw,46px);color:#FBF8F3;margin:16px 0 20px;max-width:440px}
.rewards-card p{color:rgba(251,248,243,.75);line-height:1.7;max-width:480px;margin-bottom:32px}
.rewards-perks{display:flex;flex-direction:column;gap:18px;margin-bottom:32px}
.reward-perk{display:flex;gap:14px;align-items:center}
.reward-perk .dot{
  width:36px;height:36px;border-radius:50%;
  background:rgba(184,147,90,.18);color:#E8B97B;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-family:'Playfair Display',serif;font-weight:600;
}
.reward-perk .lbl{font-size:15px;color:#FBF8F3}
.reward-perk .lbl small{display:block;font-size:12px;color:rgba(251,248,243,.6);font-weight:400;margin-top:2px}

.rewards-visual{position:relative;z-index:1}
.rewards-card-visual{
  background:rgba(251,248,243,.06);border:1px solid rgba(251,248,243,.15);
  border-radius:var(--radius);padding:32px;
  backdrop-filter:blur(6px);
}
.rewards-card-visual .tier{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#E8B97B;margin-bottom:8px}
.rewards-card-visual .pts{font-family:'Playfair Display',serif;font-size:64px;font-weight:600;line-height:1;color:#FBF8F3}
.rewards-card-visual .pts-label{font-size:13px;color:rgba(251,248,243,.6);margin-bottom:24px}
.rewards-progress{height:6px;background:rgba(251,248,243,.1);border-radius:99px;overflow:hidden;margin-bottom:8px}
.rewards-progress span{display:block;height:100%;background:linear-gradient(90deg,#E8B97B,#B8935A);border-radius:99px;width:68%;transition:width 1.2s ease}
.rewards-progress-meta{display:flex;justify-content:space-between;font-size:12px;color:rgba(251,248,243,.6)}
.rewards-card-visual .reward-cta{margin-top:24px;padding-top:24px;border-top:1px solid rgba(251,248,243,.15);text-align:center;font-size:12px;color:rgba(251,248,243,.7)}

/* ============================================
   FAQ
   ============================================ */
.faq-section{padding:96px 0;background:var(--bg-alt)}
.faq-wrap{max-width:840px;margin:0 auto}
.faq-item{
  border-bottom:1px solid var(--line);
  background:transparent;
}
.faq-q{
  width:100%;text-align:left;
  padding:24px 0;
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  font-family:'Playfair Display',serif;font-size:20px;font-weight:500;color:var(--ink);
  transition:color .2s ease;
}
.faq-q:hover{color:var(--accent)}
.faq-icon{
  width:36px;height:36px;border-radius:50%;
  background:var(--bg);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all .3s ease;
}
.faq-icon svg{width:14px;height:14px;transition:transform .3s ease}
.faq-item.open .faq-icon{background:var(--ink);border-color:var(--ink);color:#FBF8F3;transform:rotate(45deg)}
.faq-a{
  max-height:0;overflow:hidden;
  transition:max-height .4s ease, padding .3s ease;
  color:var(--ink-soft);line-height:1.75;font-size:15px;
}
.faq-item.open .faq-a{max-height:340px;padding:0 0 24px}
.faq-a p+ p{margin-top:12px}

/* ============================================
   NEWSLETTER
   ============================================ */
.newsletter-section{padding:96px 0}
.newsletter-card{
  background:var(--ink);color:#FBF8F3;border-radius:var(--radius);
  padding:72px 60px;
  display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;
  position:relative;overflow:hidden;
}
.newsletter-card::after{
  content:"";position:absolute;bottom:-100px;right:-100px;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,85,61,.2) 0%,transparent 70%);
}
.newsletter-copy .eyebrow{color:#E8B97B}
.newsletter-copy h2{font-size:clamp(30px,3vw,42px);color:#FBF8F3;margin:14px 0 18px}
.newsletter-copy p{color:rgba(251,248,243,.72);line-height:1.7;max-width:440px;margin-bottom:8px}
.newsletter-copy .perks{font-size:13px;color:rgba(251,248,243,.55);display:flex;gap:18px;flex-wrap:wrap;margin-top:14px}
.newsletter-copy .perks span::before{content:"✓ ";color:var(--accent);font-weight:700;margin-right:4px}

.newsletter-form{position:relative;z-index:1}
.newsletter-form input{
  width:100%;padding:18px 22px;
  background:rgba(251,248,243,.08);
  border:1px solid rgba(251,248,243,.2);
  border-radius:99px;color:#FBF8F3;font-size:15px;
  transition:border-color .2s ease;margin-bottom:12px;
}
.newsletter-form input::placeholder{color:rgba(251,248,243,.4)}
.newsletter-form input:focus{outline:none;border-color:var(--accent)}
.newsletter-form button{width:100%;justify-content:center;background:var(--accent);color:#fff;padding:18px}
.newsletter-form button:hover{background:var(--accent-dark)}
.newsletter-success{
  display:none;text-align:center;padding:30px;
  background:rgba(184,147,90,.1);border:1px solid rgba(184,147,90,.3);
  border-radius:10px;color:#E8B97B;
}
.newsletter-success.show{display:block;animation:slideIn .4s ease}
.newsletter-success svg{width:36px;height:36px;margin:0 auto 12px;display:block}
.newsletter-success strong{display:block;color:#FBF8F3;font-size:18px;font-family:'Playfair Display',serif;margin-bottom:6px}
.newsletter-success span{font-size:13px}
.newsletter-fineprint{font-size:11px;color:rgba(251,248,243,.4);text-align:center;margin-top:14px;line-height:1.5}

/* ============================================
   FOOTER
   ============================================ */
.site-footer{
  background:#181513;color:#FBF8F3;
  padding:80px 0 30px;
  font-size:14px;
}
.footer-top{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;
  gap:48px;padding-bottom:56px;
  border-bottom:1px solid rgba(251,248,243,.1);
}
.footer-brand .logo-name{color:#FBF8F3;font-size:26px}
.footer-brand p{color:rgba(251,248,243,.6);margin:18px 0;line-height:1.7;max-width:280px;font-size:13px}
.footer-contact{display:flex;flex-direction:column;gap:10px;font-size:13px;color:rgba(251,248,243,.7);margin-bottom:24px}
.footer-contact div{display:flex;align-items:flex-start;gap:10px}
.footer-contact svg{width:14px;height:14px;margin-top:3px;flex-shrink:0;color:var(--accent)}
.social-row{display:flex;gap:10px}
.social-row a{
  width:36px;height:36px;border-radius:50%;
  background:rgba(251,248,243,.08);
  display:flex;align-items:center;justify-content:center;
  color:#FBF8F3;transition:all .2s ease;
}
.social-row a:hover{background:var(--accent);transform:translateY(-2px)}
.social-row svg{width:16px;height:16px}

.footer-col h5{
  font-family:Inter,sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:#E8B97B;margin-bottom:20px;font-weight:600;
}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.footer-col a{color:rgba(251,248,243,.7);transition:color .2s ease;font-size:14px}
.footer-col a:hover{color:#FBF8F3}

.footer-bottom{
  padding-top:30px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;
}
.footer-bottom small{color:rgba(251,248,243,.5);font-size:12px}
.footer-bottom .legal{display:flex;gap:24px;flex-wrap:wrap}
.footer-bottom .legal a{color:rgba(251,248,243,.5);font-size:12px;transition:color .2s ease}
.footer-bottom .legal a:hover{color:#FBF8F3}
.footer-bottom .payments{display:flex;gap:10px;align-items:center}
.footer-bottom .payments span{
  font-size:11px;color:rgba(251,248,243,.5);
  padding:5px 9px;border:1px solid rgba(251,248,243,.15);
  border-radius:5px;letter-spacing:.05em;font-weight:600;
}

/* ============================================
   SEARCH OVERLAY
   ============================================ */
.search-overlay{
  position:fixed;inset:0;background:rgba(31,31,31,.5);
  z-index:200;opacity:0;pointer-events:none;
  transition:opacity .25s ease;
  backdrop-filter:blur(4px);
}
.search-overlay.open{opacity:1;pointer-events:auto}
.search-modal{
  background:var(--bg);max-width:680px;margin:0 auto;
  margin-top:80px;border-radius:var(--radius);
  padding:32px;transform:translateY(-20px);
  transition:transform .3s ease;
}
.search-overlay.open .search-modal{transform:translateY(0)}
.search-modal .modal-close{
  position:absolute;top:18px;right:18px;
  width:32px;height:32px;border-radius:50%;
  background:var(--bg-alt);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);
}
.search-input-wrap{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--ink);padding-bottom:14px}
.search-input-wrap svg{width:24px;height:24px;color:var(--ink-soft)}
.search-input-wrap input{
  flex:1;border:none;background:transparent;font-size:22px;
  font-family:'Playfair Display',serif;color:var(--ink);
}
.search-input-wrap input:focus{outline:none}
.search-modal .quick-search{margin-top:24px}
.search-modal .quick-search h6{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;font-weight:600}
.search-modal .quick-tags{display:flex;flex-wrap:wrap;gap:8px}
.search-modal .quick-tags a{
  padding:7px 14px;background:var(--bg-alt);border-radius:99px;
  font-size:13px;color:var(--ink-soft);transition:all .2s ease;
}
.search-modal .quick-tags a:hover{background:var(--ink);color:#FBF8F3}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width:1024px){
  .hero-grid{grid-template-columns:1fr;gap:32px}
  .hero-visual{max-width:520px;margin:0 auto}
  .value-grid{grid-template-columns:repeat(2,1fr)}
  .product-grid{grid-template-columns:repeat(3,1fr)}
  .category-grid{grid-template-columns:repeat(3,1fr)}
  .feature-banner{grid-template-columns:1fr;min-height:auto}
  .feature-banner-img{aspect-ratio:16/9}
  .feature-banner-copy{padding:48px 40px}
  .sale-content{grid-template-columns:1fr;gap:48px;text-align:center}
  .sale-copy p{margin:0 auto 28px}
  .countdown{justify-content:center}
  .sale-floating-tag{top:20px;right:20px}
  .tracker-wrap{grid-template-columns:1fr;gap:40px}
  .testimonials-grid{grid-template-columns:1fr}
  .gift-grid{grid-template-columns:repeat(2,1fr)}
  .rewards-card{grid-template-columns:1fr;padding:48px 36px;gap:36px}
  .newsletter-card{grid-template-columns:1fr;padding:48px 36px;gap:36px}
  .footer-top{grid-template-columns:1fr 1fr;gap:36px}
}

@media (max-width:768px){
  .announce-track{gap:24px;font-size:12px}
  .menu-toggle{display:flex;align-items:center;justify-content:center}
  .menu-toggle svg{width:22px;height:22px}
  .main-nav{
    position:fixed;top:0;right:0;bottom:0;
    width:280px;background:var(--bg);
    flex-direction:column;align-items:flex-start;
    padding:80px 28px 28px;gap:20px;
    transform:translateX(100%);transition:transform .3s ease;
    box-shadow:-10px 0 30px rgba(31,31,31,.1);
    z-index:99;
  }
  .main-nav.open{transform:translateX(0)}
  .main-nav a{font-size:18px;width:100%;padding:10px 0;border-bottom:1px solid var(--line)}
  .main-nav a::after{display:none}
  .nav-bar{grid-template-columns:auto 1fr auto;gap:8px}
  .logo-text{display:none}
  .nav-actions .icon-btn:not(.cart-btn){display:none}
  .hero{padding:24px 0 56px}
  .hero-stats{gap:24px;flex-wrap:wrap}
  .hero-stat .num{font-size:24px}
  .product-grid{grid-template-columns:repeat(2,1fr);gap:14px}
  .category-grid{grid-template-columns:repeat(2,1fr)}
  .section{padding:64px 0}
  .section-head{margin-bottom:32px}
  .gift-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr;gap:36px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .countdown{gap:8px}
  .countdown-cell{padding:10px 12px;min-width:60px}
  .countdown-cell .num{font-size:24px}
}

@media (max-width:480px){
  .container{padding:0 18px}
  .hero-card-float{left:-10px;bottom:10px;max-width:200px;padding:10px 14px}
  .hero-card-float .info{font-size:12px}
  .hero-badge{width:90px;height:90px;font-size:10px}
  .hero-badge strong{font-size:18px}
  .product-grid{grid-template-columns:1fr 1fr}
  .value-grid{grid-template-columns:1fr}
}

/* ============================================
   UTILITIES
   ============================================ */
.fade-in{opacity:0;transform:translateY(20px);transition:opacity .7s ease, transform .7s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}
</style>
</head>
<body>

<!-- ============================================
     ANNOUNCEMENT BAR
     ============================================ -->
<div class="announce" id="announce">
  <div class="announce-track">
    <span><strong>Free shipping</strong> on orders over $75</span>
    <span>Use code <strong>MERCATO15</strong> for 15% off your first order</span>
    <span><strong>Easy returns</strong> within 60 days</span>
  </div>
  <button class="announce-close" aria-label="Dismiss announcement" onclick="document.getElementById('announce').style.display='none'">×</button>
</div>

<!-- ============================================
     HEADER
     ============================================ -->
<header class="site-header" id="siteHeader">
  <div class="container">
    <div class="nav-bar">
      <a href="#" class="logo">
        <div class="logo-mark">M</div>
        <div class="logo-text">
          <span class="logo-name">Mercato</span>
          <span class="logo-tag">Curated Marketplace</span>
        </div>
      </a>

      <nav class="main-nav" id="mainNav">
        <a href="#new">New Arrivals <span class="nav-badge">NEW</span></a>
        <a href="#bestsellers">Best Sellers</a>
        <a href="#categories">Categories</a>
        <a href="#gifts">Gift Guides</a>
        <a href="#sale" class="sale-link">Sale</a>
        <a href="#rewards">Rewards</a>
        <a href="#help">Help</a>
      </nav>

      <div class="nav-actions">
        <button class="icon-btn" aria-label="Search" onclick="openSearch()">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>
        </button>
        <button class="icon-btn" aria-label="Account">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 4-7 8-7s8 3 8 7"/></svg>
        </button>
        <button class="icon-btn" aria-label="Wishlist">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>
        </button>
        <button class="icon-btn cart-btn" aria-label="Cart" id="cartBtn">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M6 6h15l-1.5 9h-12z"/><circle cx="9" cy="20" r="1.5"/><circle cx="18" cy="20" r="1.5"/><path d="M6 6 5 3H2"/></svg>
          <span class="cart-count" id="cartCount">0</span>
        </button>
        <button class="icon-btn menu-toggle" aria-label="Menu" onclick="toggleMenu()">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M3 6h18M3 12h18M3 18h18"/></svg>
        </button>
      </div>
    </div>
  </div>
</header>

<!-- ============================================
     HERO
     ============================================ -->
<section class="hero">
  <div class="container">
    <div class="hero-grid">
      <div class="hero-copy fade-in">
        <span class="eyebrow">Autumn Collection · 2026</span>
        <h1>Considered goods, <em>quietly made</em>, joyfully worn.</h1>
        <p class="lead">Mercato brings together a rotating edit of home, fashion, and everyday objects from over 240 independent makers. Each piece is chosen by our team for craft, longevity, and the way it improves a routine.</p>
        <div class="hero-cta">
          <a href="#new" class="btn btn-primary">Shop the Collection
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
          </a>
          <a href="#categories" class="btn btn-secondary">Browse Categories</a>
        </div>
        <div class="hero-stats">
          <div class="hero-stat">
            <div class="num">240+</div>
            <div class="lbl">Independent Brands</div>
          </div>
          <div class="hero-stat">
            <div class="num">4.9★</div>
            <div class="lbl">Avg. Customer Rating</div>
          </div>
          <div class="hero-stat">
            <div class="num">60</div>
            <div class="lbl">Day Easy Returns</div>
          </div>
        </div>
      </div>
      <div class="hero-visual fade-in">
        <div class="hero-img-main">
          <img src="https://picsum.photos/seed/mercato-hero-living-room/800/1000" alt="Mercato curated collection in a warm modern interior" loading="eager">
        </div>
        <div class="hero-badge">
          Just<br>Arrived<strong>40+</strong>
        </div>
        <div class="hero-card-float">
          <div class="pf">⚡</div>
          <div class="info">
            <strong>Price drop alert</strong>
            <span>3 items in your wishlist just dropped</span>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- ============================================
     VALUE PROPS
     ============================================ -->
<section class="value-props">
  <div class="container">
    <div class="value-grid">
      <div class="value-card">
        <div class="value-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M3 7h13l5 5v5h-2"/><circle cx="7.5" cy="17.5" r="2.5"/><circle cx="17.5" cy="17.5" r="2.5"/><path d="M9 17V7"/></svg></div>
        <div>
          <h4>Free Shipping Over $75</h4>
          <p>Carbon-offset delivery on every order, with no minimum surprises at checkout.</p>
        </div>
      </div>
      <div class="value-card">
        <div class="value-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M3 12a9 9 0 1 0 3-6.7L3 8"/><path d="M3 3v5h5"/></svg></div>
        <div>
          <h4>60-Day Easy Returns</h4>
          <p>Try it at home with our no-questions-asked returns policy. Print a label in seconds.</p>
        </div>
      </div>
      <div class="value-card">
        <div class="value-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><rect x="3" y="6" width="18" height="13" rx="2"/><path d="M3 10h18M7 15h4"/></svg></div>
        <div>
          <h4>Secure Checkout</h4>
          <p>Shop with confidence using encrypted payments, Apple Pay, Klarna, and major credit cards.</p>
        </div>
      </div>
      <div class="value-card">
        <div class="value-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.4 8.4 0 0 1 3.8-.9h.5a8.5 8.5 0 0 1 8 8v.5z"/></svg></div>
        <div>
          <h4>Real Human Support</h4>
          <p>Our team replies in under 4 minutes during business hours — no chatbots, just people.</p>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- ============================================
     NEW ARRIVALS
     ============================================ -->
<section class="section" id="new">
  <div class="container">
    <div class="section-head">
      <div>
        <span class="eyebrow">Just Landed</span>
        <h2>New arrivals worth a closer look</h2>
        <p>This week's hand-picked drops from our makers — refreshed every Tuesday and Friday.</p>
      </div>
      <a href="#" class="link-arrow">View all new arrivals
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
      </a>
    </div>
    <div class="product-grid">

      <article class="product-card">
        <div class="product-img">
          <span class="product-badge new">New</span>
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/2C4A3E/FBF8F3?text=Aurora+Linen+Dress&font=playfair display" alt="Aurora Linen Dress">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Maison Vela</span>
          <h3 class="product-name">Aurora Linen Dress</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 218 reviews</div>
          <div class="product-price"><span class="price-now">$148</span></div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <span class="product-badge new">New</span>
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/C8553D/FBF8F3?text=Heritage+Leather+Tote&font=playfair display" alt="Heritage Leather Tote">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Otto & Oak</span>
          <h3 class="product-name">Heritage Leather Tote</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 412 reviews</div>
          <div class="product-price"><span class="price-now">$289</span></div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <span class="product-badge low">Low Stock</span>
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/B8935A/FBF8F3?text=Cedar+Wood+Diffuser&font=playfair display" alt="Cedar Wood Diffuser">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Forêt Studio</span>
          <h3 class="product-name">Cedar Wood Diffuser</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 96 reviews</div>
          <div class="product-price"><span class="price-now">$58</span></div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <span class="product-badge new">New</span>
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/1F1F1F/FBF8F3?text=Stoneware+Coffee+Set&font=playfair display" alt="Stoneware Coffee Set">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Kiln Atelier</span>
          <h3 class="product-name">Stoneware Coffee Set</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 142 reviews</div>
          <div class="product-price"><span class="price-now">$124</span></div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/6B6358/FBF8F3?text=Olive+Branch+Throw&font=playfair display" alt="Olive Branch Throw">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Loomwell</span>
          <h3 class="product-name">Olive Branch Throw</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 88 reviews</div>
          <div class="product-price"><span class="price-now">$186</span></div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <span class="product-badge sale">-25%</span>
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/E8B97B/1F1F1F?text=Brass+Pendant+Lamp&font=playfair display" alt="Brass Pendant Lamp">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Lumen Objects</span>
          <h3 class="product-name">Brass Pendant Lamp</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 274 reviews</div>
          <div class="product-price">
            <span class="price-now">$214</span>
            <span class="price-was">$285</span>
            <span class="price-off">Save $71</span>
          </div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/2C4A3E/FBF8F3?text=Heirloom+Wool+Blanket&font=playfair display" alt="Heirloom Wool Blanket">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Loomwell</span>
          <h3 class="product-name">Heirloom Wool Blanket</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 156 reviews</div>
          <div class="product-price"><span class="price-now">$245</span></div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <span class="product-badge new">New</span>
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/A6432F/FBF8F3?text=Ceramic+Pour-Over+Kit&font=playfair display" alt="Ceramic Pour-Over Kit">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Kiln Atelier</span>
          <h3 class="product-name">Ceramic Pour-Over Kit</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 321 reviews</div>
          <div class="product-price"><span class="price-now">$92</span></div>
        </div>
      </article>

    </div>
  </div>
</section>

<!-- ============================================
     FEATURED COLLECTION BANNER
     ============================================ -->
<section class="section" style="padding-top:32px">
  <div class="container">
    <div class="feature-banner">
      <div class="feature-banner-img">
        <img src="https://picsum.photos/seed/mercato-kitchen-warm/900/700" alt="Warm kitchen with curated ceramic pieces">
      </div>
      <div class="feature-banner-copy">
        <span class="eyebrow">Featured Edit</span>
        <h2>The Slow Kitchen — tableware for unhurried mornings.</h2>
        <p>Hand-thrown ceramics, hand-forged cutlery, and stoneware mugs from six small studios across Portugal, Japan, and the American South. Pieces built to live on your shelf long after the trend cycle moves on.</p>
        <a href="#" class="btn">Shop the Slow Kitchen
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
        </a>
      </div>
    </div>
  </div>
</section>

<!-- ============================================
     BEST SELLERS
     ============================================ -->
<section class="section" id="bestsellers">
  <div class="container">
    <div class="section-head">
      <div>
        <span class="eyebrow">Top Rated</span>
        <h2>Best sellers our community keeps coming back for</h2>
        <p>These are the pieces our shoppers rate highest, review most, and reorder for friends. Limited restocks land every Monday.</p>
      </div>
      <a href="#" class="link-arrow">See all best sellers
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
      </a>
    </div>
    <div class="product-grid">

      <article class="product-card">
        <div class="product-img">
          <span class="product-badge">#1 Best Seller</span>
          <button class="wish-btn active" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/2C4A3E/FBF8F3?text=Vintage+Glass+Decanter&font=playfair display" alt="Vintage Glass Decanter">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Vela Glassworks</span>
          <h3 class="product-name">Vintage Glass Decanter</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 1,284 reviews</div>
          <div class="product-price"><span class="price-now">$78</span></div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/C8553D/FBF8F3?text=Linen+Apron+-+Sand&font=playfair display" alt="Linen Apron in Sand">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Maison Vela</span>
          <h3 class="product-name">Linen Apron — Sand</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 942 reviews</div>
          <div class="product-price"><span class="price-now">$64</span></div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <span class="product-badge sale">-30%</span>
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/1F1F1F/FBF8F3?text=Reclaimed+Walnut+Board&font=playfair display" alt="Reclaimed Walnut Board">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Otto & Oak</span>
          <h3 class="product-name">Reclaimed Walnut Board</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 612 reviews</div>
          <div class="product-price">
            <span class="price-now">$84</span>
            <span class="price-was">$120</span>
            <span class="price-off">Save $36</span>
          </div>
        </div>
      </article>

      <article class="product-card">
        <div class="product-img">
          <button class="wish-btn" onclick="toggleWish(this)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>
          <img src="https://placehold.co/400x500/8B7E72/FBF8F3?text=Smoked+Glass+Vase&font=playfair display" alt="Smoked Glass Vase">
          <button class="quick-add" onclick="addToCart()">+ Add to Cart</button>
        </div>
        <div class="product-meta">
          <span class="product-cat">Vela Glassworks</span>
          <h3 class="product-name">Smoked Glass Vase</h3>
          <div class="product-rating"><span class="stars">★★★★★</span> 488 reviews</div>
          <div class="product-price"><span class="price-now">$96</span></div>
        </div>
      </article>

    </div>
  </div>
</section>

<!-- ============================================
     CATEGORIES
     ============================================ -->
<section class="categories-section" id="categories">
  <div class="container">
    <div class="section-head">
      <div>
        <span class="eyebrow">Browse the Marketplace</span>
        <h2>Shop by category</h2>
        <p>From pantry staples to statement furniture — every category is curated by a category lead who knows the makers personally.</p>
      </div>
      <a href="#" class="link-arrow">View all categories
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
      </a>
    </div>
    <div class="category-grid">
      <a href="#" class="category-card">
        <img src="https://picsum.photos/seed/cat-home/400/500" alt="Home & Living">
        <div class="overlay">
          <h3>Home & Living</h3>
          <span>Ceramics · Textiles · Decor</span>
          <div class="count">412 products</div>
        </div>
      </a>
      <a href="#" class="category-card">
        <img src="https://picsum.photos/seed/cat-fashion/400/500" alt="Fashion & Accessories">
        <div class="overlay">
          <h3>Fashion</h3>
          <span>Bags · Jewelry · Ready-to-wear</span>
          <div class="count">286 products</div>
        </div>
      </a>
      <a href="#" class="category-card">
        <img src="https://picsum.photos/seed/cat-beauty/400/500" alt="Beauty & Wellness">
        <div class="overlay">
          <h3>Beauty & Wellness</h3>
          <span>Skincare · Fragrance · Bath</span>
          <div class="count">198 products</div>
        </div>
      </a>
      <a href="#" class="category-card">
        <img src="https://picsum.photos/seed/cat-kitchen/400/500" alt="Kitchen & Dining">
        <div class="overlay">
          <h3>Kitchen</h3>
          <span>Tableware · Cookware · Tools</span>
          <div class="count">244 products</div>
        </div>
      </a>
      <a href="#" class="category-card">
        <img src="https://picsum.photos/seed/cat-outdoor/400/500" alt="Outdoor & Garden">
        <div class="overlay">
          <h3>Outdoor</h3>
          <span>Garden · Picnic · Travel</span>
          <div class="count">126 products</div>
        </div>
      </a>
      <a href="#" class="category-card">
        <img src="https://picsum.photos/seed/cat-gifts/400/500" alt="Gifts & Stationery">
        <div class="overlay">
          <h3>Gifts</h3>
          <span>Gift Cards · Sets · Cards</span>
          <div class="count">168 products</div>
        </div>
      </a>
    </div>
  </div>
</section>

<!-- ============================================
     SALE SECTION
     ============================================ -->
<section class="sale-section" id="sale">
  <div class="container">
    <div class="sale-content">
      <div class="sale-copy">
        <span class="eyebrow" style="color:#E8B97B">Clearance Event</span>
        <h2 class="sale-headline">End of <em>season</em> sale. Up to <span class="sale-discount">60% OFF</span></h2>
        <p>Our biggest markdown of the year. We're clearing the last of our autumn edit to make room for spring makers. Use code <strong style="color:#E8B97B">FINAL60</strong> at checkout for an additional 10% off sale items. No promo code stacking needed — savings apply automatically.</p>
        <div class="countdown" id="countdown">
          <div class="countdown-cell"><div class="num" id="cd-days">02</div><div class="lbl">Days</div></div>
          <div class="countdown-cell"><div class="num" id="cd-hours">14</div><div class="lbl">Hours</div></div>
          <div class="countdown-cell"><div class="num" id="cd-mins">36</div><div class="lbl">Mins</div></div>
          <div class="countdown-cell"><div class="num" id="cd-secs">22</div><div class="lbl">Secs</div></div>
        </div>
        <a href="#" class="btn btn-accent">Shop the Sale
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
        </a>
      </div>
      <div class="sale-visual">
        <div class="sale-img">
          <img src="https://picsum.photos/seed/mercato-sale-flatlay/700/900" alt="Sale flatlay with curated pieces">
        </div>
        <div class="sale-floating-tag">UP<br>TO<small>60% Off</small></div>
      </div>
    </div>
  </div>
</section>

<!-- ============================================
     PRICE TRACKER (INTERACTIVE)
     ============================================ -->
<section class="tracker-section" id="tracker">
  <div class="container">
    <div class="tracker-wrap">
      <div class="tracker-copy">
        <span class="eyebrow">Smart Shopping</span>
        <h2>Set it. Forget it. We'll let you know when the price drops.</h2>
        <p>Wishlist items can move quickly — restocks, markdowns, and seasonal clearances. Our price tracker watches your favorites 24/7 and emails you the moment a price drops below your target, so you never overpay on a piece you love.</p>
        <div class="tracker-features">
          <div class="tracker-feat">
            <div class="check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="m5 12 5 5L20 7"/></svg></div>
            <p><strong>Real-time price monitoring</strong>across all 240+ brands on Mercato, refreshed every 15 minutes.</p>
          </div>
          <div class="tracker-feat">
            <div class="check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="m5 12 5 5L20 7"/></svg></div>
            <p><strong>Custom alert thresholds</strong>set your target price per item — we'll wait for the right moment.</p>
          </div>
          <div class="tracker-feat">
            <div class="check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor"><path d="m5 12 5 5L20 7"/></svg></div>
            <p><strong>Stock & restock alerts</strong>get notified when sold-out favorites return in your size or color.</p>
          </div>
        </div>
      </div>

      <div class="tracker-card">
        <h3>Add to price tracker</h3>
        <p class="sub">Try it now — enter any product URL or paste a product name to see how it works.</p>
        <form class="tracker-form" onsubmit="trackPrice(event)">
          <div class="field">
            <label for="product-name">Product name or URL</label>
            <input type="text" id="product-name" placeholder="e.g. Aurora Linen Dress" required>
          </div>
          <div class="field-row">
            <div class="field">
              <label for="current-price">Current price ($)</label>
              <input type="number" id="current-price" placeholder="148" min="1" required>
            </div>
            <div class="field">
              <label for="target-price">Target price ($)</label>
              <input type="number" id="target-price" placeholder="120" min="1" required>
            </div>
          </div>
          <div class="field">
            <label for="alert-email">Email for alerts</label>
            <input type="email" id="alert-email" placeholder="you@example.com" required>
          </div>
          <button type="submit" class="btn btn-primary" style="width:100%;justify-content:center">Start Tracking
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
          </button>
        </form>
        <div class="tracker-result" id="trackerResult">
          <h4>✓ <span id="trackerStatus">You're tracking</span> this item</h4>
          <p id="trackerMsg">We'll email you the moment the price falls below your target. In the meantime, here's what we found:</p>
          <div class="price-jump">
            <small>Current best price:</small>
            <span id="trackerPrice">$148</span>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- ============================================
     TESTIMONIALS
     ============================================ -->
<section class="testimonials-section">
  <div class="container">
    <div class="section-head center">
      <span class="eyebrow">Customer Reviews</span>
      <h2>Loved by 86,000+ shoppers</h2>
      <p>From quick gifts to wedding registries — here's what our community is saying about their Mercato orders.</p>
    </div>
    <div class="testimonials-grid">

      <article class="testimonial">
        <div class="stars">★★★★★</div>
        <blockquote>The Aurora Linen Dress arrived wrapped in actual tissue paper with a handwritten thank-you note. The dress itself is the kind of piece I'll wear for years — breezy, well-cut, and the color is even better in person. Already eyeing two more pieces from Maison Vela.</blockquote>
        <div class="testimonial-author">
          <img src="https://i.pravatar.cc/100?u=amelia-r" alt="Amelia Rodriguez">
          <div>
            <div class="name">Amelia Rodriguez</div>
            <div class="meta">Verified buyer · Brooklyn, NY</div>
            <div class="verified"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m5 12 5 5L20 7"/></svg> Verified purchase</div>
          </div>
        </div>
      </article>

      <article class="testimonial">
        <div class="stars">★★★★★</div>
        <blockquote>I built my entire wedding registry through Mercato. Their concierge team helped me swap pieces, track duplicates, and coordinate timing for out-of-state guests. Five months later, I'm still getting compliments on the tableware. Worth every penny.</blockquote>
        <div class="testimonial-author">
          <img src="https://i.pravatar.cc/100?u=james-l" alt="James Lin">
          <div>
            <div class="name">James Lin</div>
            <div class="meta">Verified buyer · Portland, OR</div>
            <div class="verified"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m5 12 5 5L20 7"/></svg> Verified purchase</div>
          </div>
        </div>
      </article>

      <article class="testimonial">
        <div class="stars">★★★★★</div>
        <blockquote>The price tracker genuinely saved me $40 on the Brass Pendant Lamp — I added it to my wishlist in May and got the email alert the moment it went on sale. Customer support replied in three minutes when I had a sizing question. This is what online shopping should feel like.</blockquote>
        <div class="testimonial-author">
          <img src="https://i.pravatar.cc/100?u=priya-s" alt="Priya Shah">
          <div>
            <div class="name">Priya Shah</div>
            <div class="meta">Verified buyer · Austin, TX</div>
            <div class="verified"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m5 12 5 5L20 7"/></svg> Verified purchase</div>
          </div>
        </div>
      </article>

    </div>
  </div>
</section>

<!-- ============================================
     GIFT GUIDES
     ============================================ -->
<section class="gifts-section" id="gifts">
  <div class="container">
    <div class="section-head">
      <div>
        <span class="eyebrow">Holiday Edit</span>
        <h2>Gift guides for every kind of person on your list</h2>
        <p>Stop second-guessing. Our editors curate by recipient, occasion, and budget — all with same-day gift wrap and a printable card included at no charge.</p>
      </div>
      <a href="#" class="link-arrow">All gift guides
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
      </a>
    </div>
    <div class="gift-grid">
      <article class="gift-card">
        <span class="badge-top">Under $50</span>
        <img src="https://picsum.photos/seed/gift-stock/500/700" alt="Stocking stuffers">
        <div class="info">
          <h4>The Stocking Stuffer Edit</h4>
          <span>24 small-batch picks</span>
          <div class="arrow"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M13 5l7 7-7 7"/></svg></div>
        </div>
      </article>
      <article class="gift-card">
        <span class="badge-top">For Her</span>
        <img src="https://picsum.photos/seed/gift-her/500/700" alt="Gifts for her">
        <div class="info">
          <h4>Gifts She'll Actually Use</h4>
          <span>36 thoughtful finds</span>
          <div class="arrow"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M13 5l7 7-7 7"/></svg></div>
        </div>
      </article>
      <article class="gift-card">
        <span class="badge-top">For Him</span>
        <img src="https://picsum.photos/seed/gift-him/500/700" alt="Gifts for him">
        <div class="info">
          <h4>For the Guy Who Has Everything</h4>
          <span>28 understated picks</span>
          <div class="arrow"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M13 5l7 7-7 7"/></svg></div>
        </div>
      </article>
      <article class="gift-card">
        <span class="badge-top">For the Home</span>
        <img src="https://picsum.photos/seed/gift-home/500/700" alt="Home gifts">
        <div class="info">
          <h4>Move-In Ready Housewarming</h4>
          <span>19 cozy essentials</span>
          <div class="arrow"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M13 5l7 7-7 7"/></svg></div>
        </div>
      </article>
    </div>
  </div>
</section>

<!-- ============================================
     REWARDS
     ============================================ -->
<section class="rewards-section" id="rewards">
  <div class="container">
    <div class="rewards-card">
      <div class="rewards-copy">
        <span class="eyebrow">Mercato Rewards</span>
        <h2>Earn 5% back on every order — plus birthday gifts, early sale access, and free shipping.</h2>
        <p>Our loyalty program is free to join and pays you back in real ways. Points never expire, and tier upgrades happen automatically based on your rolling 12-month spend.</p>
        <div class="rewards-perks">
          <div class="reward-perk">
            <div class="dot">1</div>
            <div class="lbl">Member<small>5% back on every order · Free shipping over $50</small></div>
          </div>
          <div class="reward-perk">
            <div class="dot">2</div>
            <div class="lbl">Insider<small>Free shipping on everything · Early access to new drops</small></div>
          </div>
          <div class="reward-perk">
            <div class="dot">3</div>
            <div class="lbl">Patron<small>Personal stylist consults · Birthday gift box · VIP sale previews</small></div>
          </div>
        </div>
        <a href="#" class="btn" style="background:var(--accent);color:#fff">Join Rewards — It's Free
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
        </a>
      </div>
      <div class="rewards-visual">
        <div class="rewards-card-visual">
          <div class="tier">Patron Member</div>
          <div class="pts">2,840</div>
          <div class="pts-label">Points available · ≈ $284 to spend</div>
          <div class="rewards-progress"><span style="width:68%"></span></div>
          <div class="rewards-progress-meta">
            <span>2,840 / 4,200</span>
            <span>1,360 to Insider</span>
          </div>
          <div class="reward-cta">Reach Insider by spending <strong style="color:#E8B97B">$1,360 more</strong> this year to unlock unlimited free shipping.</div>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- ============================================
     FAQ
     ============================================ -->
<section class="faq-section" id="help">
  <div class="container">
    <div class="faq-wrap">
      <div class="section-head" style="margin-bottom:32px;flex-direction:column;align-items:center;text-align:center">
        <span class="eyebrow">Frequently Asked</span>
        <h2>Help & common questions</h2>
      </div>

      <div class="faq-item">
        <button class="faq-q" onclick="toggleFaq(this)">How long does shipping take?
          <span class="faq-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 5v14M5 12h14"/></svg></span>
        </button>
        <div class="faq-a">
          <p>Standard shipping arrives in 3–6 business days within the contiguous US and is free on orders over $75. Expedited (2-day) and overnight options are available at checkout for most metro areas. International orders ship via DHL Express and typically arrive in 5–10 business days depending on customs.</p>
          <p>You'll receive a tracking link via email as soon as your order leaves our warehouse in Brooklyn. Most orders ship within 24 hours.</p>
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-q" onclick="toggleFaq(this)">What is your return policy?
          <span class="faq-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 5v14M5 12h14"/></svg></span>
        </button>
        <div class="faq-a">
          <p>Every order comes with 60 days to decide. If something isn't right, start a return from your account dashboard and we'll email a prepaid label within seconds. Items must be unused with original tags; we refund to the original payment method within 5 business days of receiving the return.</p>
          <p>Final sale items, personalized pieces, and gift cards are non-returnable but covered by our quality guarantee.</p>
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-q" onclick="toggleFaq(this)">How do I use a promo code at checkout?
          <span class="faq-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 5v14M5 12h14"/></svg></span>
        </button>
        <div class="faq-a">
          <p>Add your items to cart and head to checkout. Look for the "Promo code or gift card" field on the right-hand summary panel — paste your code there and click Apply. The discount will adjust your order total instantly. Only one code can be used per order unless otherwise stated.</p>
          <p>Members on the Insider and Patron tiers automatically get our best available code applied at checkout, no manual entry required.</p>
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-q" onclick="toggleFaq(this)">Can I edit or cancel my order after placing it?
          <span class="faq-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 5v14M5 12h14"/></svg></span>
        </button>
        <div class="faq-a">
          <p>We process orders fast — usually within an hour — so the best move is to reach out to our support team immediately at help@mercato.shop or via the live chat in the bottom corner. If your order hasn't shipped yet, we'll do our best to update the address, swap a size, or cancel and refund.</p>
          <p>Once an order ships, edits aren't possible, but you can always initiate a return once it arrives.</p>
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-q" onclick="toggleFaq(this)">Are Mercato products ethically sourced?
          <span class="faq-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 5v14M5 12h14"/></svg></span>
        </button>
        <div class="faq-a">
          <p>Every brand on Mercato is independently vetted by our category leads. We require documentation of fair-wage production, transparent supply chains, and materials certifications (GOTS organic, FSC wood, recycled steel) where applicable. Roughly 70% of our assortment is made within 500 miles of its point of sale.</p>
          <p>We publish a yearly impact report — you can read it in full at mercato.shop/impact.</p>
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-q" onclick="toggleFaq(this)">Do you offer gift wrapping?
          <span class="faq-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 5v14M5 12h14"/></svg></span>
        </button>
        <div class="faq-a">
          <p>Yes — every order includes complimentary Mercato tissue and a kraft mailer. For $6 per item, you can upgrade to our premium gift wrap, which includes a hand-tied ribbon, a gift card printed with your message, and optional dried floral accent. Select the gift wrap option in your cart to add it.</p>
        </div>
      </div>

    </div>
  </div>
</section>

<!-- ============================================
     NEWSLETTER
     ============================================ -->
<section class="newsletter-section">
  <div class="container">
    <div class="newsletter-card">
      <div class="newsletter-copy">
        <span class="eyebrow">Subscribe & Save</span>
        <h2>Get 15% off your first order, plus first dibs on every new drop.</h2>
        <p>Join 124,000 readers of our weekly edit. We'll send you new arrivals, restock alerts, sale announcements, and the occasional shoppable recipe.</p>
        <div class="perks">
          <span>15% off welcome offer</span>
          <span>Early sale access</span>
          <span>Weekly edit</span>
          <span>Unsubscribe anytime</span>
        </div>
      </div>
      <div class="newsletter-form">
        <form id="newsletterForm" onsubmit="subscribe(event)">
          <input type="email" placeholder="Enter your email address" required>
          <button type="submit" class="btn btn-accent">Subscribe & Get 15% Off
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 12h14M13 5l7 7-7 7"/></svg>
          </button>
        </form>
        <div class="newsletter-success" id="newsletterSuccess">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.4 8.4 0 0 1 3.8-.9h.5a8.5 8.5 0 0 1 8 8v.5z" stroke="#E8B97B"/></svg>
          <strong>You're in. Welcome to Mercato.</strong>
          <span>Check your inbox — your code <strong style="color:#E8B97B">WELCOME15</strong> is on its way.</span>
        </div>
        <div class="newsletter-fineprint">By subscribing, you agree to our Privacy Policy. We send 1–2 emails per week and never share your address.</div>
      </div>
    </div>
  </div>
</section>

<!-- ============================================
     FOOTER
     ============================================ -->
<footer class="site-footer">
  <div class="container">
    <div class="footer-top">
      <div class="footer-brand">
        <div class="logo">
          <div class="logo-mark">M</div>
          <div class="logo-text">
            <span class="logo-name">Mercato</span>
            <span class="logo-tag" style="color:rgba(251,248,243,.5)">Curated Marketplace</span>
          </div>
        </div>
        <p>A curated online marketplace bringing together 240+ independent makers in home, fashion, kitchen, and gift essentials — shipped carbon-neutral from Brooklyn, NY.</p>
        <div class="footer-contact">
          <div><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
            <span>240 Kent Ave, Brooklyn, NY 11249</span>
          </div>
          <div><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 6 12 13 2 6"/><rect x="2" y="6" width="20" height="14" rx="2"/></svg>
            <span>help@mercato.shop</span>
          </div>
          <div><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></svg>
            <span>+1 (646) 555-0142 · Mon–Fri, 9am–7pm ET</span>
          </div>
        </div>
        <div class="social-row">
          <a href="#" aria-label="Instagram"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r=".5" fill="currentColor"/></svg></a>
          <a href="#" aria-label="Pinterest"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><circle cx="12" cy="12" r="10"/><path d="M8 12c0-2 1-4 3-4 2 0 3 1 3 3s-1 3-2 4l-1 5"/></svg></a>
          <a href="#" aria-label="TikTok"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M16 4v8a4 4 0 1 1-4-4"/><path d="M16 4c0 2 1 4 4 4"/></svg></a>
          <a href="#" aria-label="YouTube"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><rect x="3" y="6" width="18" height="12" rx="3"/><polygon points="10,9 16,12 10,15" fill="currentColor" stroke="none"/></svg></a>
          <a href="#" aria-label="Twitter"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M22 5.8c-.7.3-1.5.6-2.4.7.9-.5 1.5-1.3 1.8-2.3-.8.5-1.7.8-2.7 1A4.2 4.2 0 0 0 11.5 9c0 .3 0 .6.1.9-3.5-.2-6.7-1.9-8.8-4.5-.4.6-.6 1.3-.6 2.1 0 1.5.7 2.8 1.9 3.5-.7 0-1.3-.2-1.9-.5 0 2 1.5 3.7 3.4 4.1-.4.1-.8.2-1.2.2-.3 0-.6 0-.8-.1.6 1.7 2.2 3 4 3-1.5 1.2-3.4 1.9-5.5 1.9-.4 0-.7 0-1-.1 1.9 1.2 4.1 1.9 6.5 1.9 7.8 0 12.1-6.5 12.1-12.1v-.5c.8-.6 1.5-1.4 2.1-2.2z"/></svg></a>
        </div>
      </div>

      <div class="footer-col">
        <h5>Shop</h5>
        <ul>
          <li><a href="#new">New Arrivals</a></li>
          <li><a href="#bestsellers">Best Sellers</a></li>
          <li><a href="#sale">Sale & Clearance</a></li>
          <li><a href="#categories">All Categories</a></li>
          <li><a href="#gifts">Gift Guides</a></li>
          <li><a href="#">Gift Cards</a></li>
        </ul>
      </div>

      <div class="footer-col">
        <h5>Account</h5>
        <ul>
          <li><a href="#">Sign In / Register</a></li>
          <li><a href="#">Order History</a></li>
          <li><a href="#">Wishlist</a></li>
          <li><a href="#">Track an Order</a></li>
          <li><a href="#rewards">Mercato Rewards</a></li>
          <li><a href="#">Refer a Friend</a></li>
        </ul>
      </div>

      <div class="footer-col">
        <h5>Support</h5>
        <ul>
          <li><a href="#help">Help Center</a></li>
          <li><a href="#help">Shipping & Delivery</a></li>
          <li><a href="#help">Returns & Exchanges</a></li>
          <li><a href="#">Size Guide</a></li>
          <li><a href="#">Contact Us</a></li>
          <li><a href="#">Live Chat</a></li>
        </ul>
      </div>

      <div class="footer-col">
        <h5>Company</h5>
        <ul>
          <li><a href="#">Our Story</a></li>
          <li><a href="#">Maker Directory</a></li>
          <li><a href="#">Sustainability</a></li>
          <li><a href="#">Press & Media</a></li>
          <li><a href="#">Careers</a></li>
          <li><a href="#">Become a Maker</a></li>
        </ul>
      </div>
    </div>

    <div class="footer-bottom">
      <small>© 2026 Mercato Collective, Inc. All rights reserved. Brooklyn, NY.</small>
      <div class="legal">
        <a href="#">Privacy Policy</a>
        <a href="#">Terms of Service</a>
        <a href="#">Accessibility</a>
        <a href="#">Do Not Sell My Info</a>
      </div>
      <div class="payments">
        <span>VISA</span>
        <span>MC</span>
        <span>AMEX</span>
        <span>PAY</span>
        <span>KLARNA</span>
      </div>
    </div>
  </div>
</footer>

<!-- ============================================
     SEARCH OVERLAY
     ============================================ -->
<div class="search-overlay" id="searchOverlay" onclick="closeSearch(event)">
  <div class="search-modal" onclick="event.stopPropagation()">
    <button class="modal-close" onclick="closeSearch()" aria-label="Close search">
      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M18 6 6 18M6 6l12 12"/></svg>
    </button>
    <div class="search-input-wrap">
      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>
      <input type="text" placeholder="Search for products, brands, or categories..." id="searchInput" autofocus>
    </div>
    <div class="quick-search">
      <h6>Popular Searches</h6>
      <div class="quick-tags">
        <a href="#">Linen dress</a>
        <a href="#">Leather tote</a>
        <a href="#">Ceramic mug</a>
        <a href="#">Throw blanket</a>
        <a href="#">Coffee table</a>
        <a href="#">Wool scarf</a>
        <a href="#">Glass vase</a>
        <a href="#">Soy candle</a>
      </div>
    </div>
  </div>
</div>

<!-- ============================================
     JAVASCRIPT
     ============================================ -->
<script>
/* ============ CART ============ */
let cartCount = 0;
function addToCart(){
  cartCount++;
  const el = document.getElementById('cartCount');
  el.textContent = cartCount;
  el.style.transform = 'scale(1.4)';
  setTimeout(()=>el.style.transform='scale(1)', 200);
}

/* ============ WISHLIST TOGGLE ============ */
function toggleWish(btn){
  btn.classList.toggle('active');
}

/* ============ MOBILE MENU ============ */
function toggleMenu(){
  document.getElementById('mainNav').classList.toggle('open');
}

/* ============ SEARCH ============ */
function openSearch(){
  document.getElementById('searchOverlay').classList.add('open');
  setTimeout(()=>document.getElementById('searchInput').focus(),100);
}
function closeSearch(e){
  if(!e || e.target.id==='searchOverlay' || e.type==='click'){
    document.getElementById('searchOverlay').classList.remove('open');
  }
}
document.addEventListener('keydown',e=>{
  if(e.key==='Escape'){
    document.getElementById('searchOverlay').classList.remove('open');
    document.getElementById('mainNav').classList.remove('open');
  }
  if(e.key==='/' && document.activeElement.tagName!=='INPUT'){
    e.preventDefault();
    openSearch();
  }
});

/* ============ STICKY HEADER ============ */
let lastScroll=0;
window.addEventListener('scroll',()=>{
  const h=document.getElementById('siteHeader');
  if(window.scrollY>20) h.classList.add('scrolled');
  else h.classList.remove('scrolled');
  lastScroll=window.scrollY;
});

/* ============ FAQ ACCORDION ============ */
function toggleFaq(btn){
  const item = btn.parentElement;
  const wasOpen = item.classList.contains('open');
  document.querySelectorAll('.faq-item').forEach(i=>i.classList.remove('open'));
  if(!wasOpen) item.classList.add('open');
}

/* ============ COUNTDOWN TIMER ============ */
function updateCountdown(){
  const target = new Date();
  target.setDate(target.getDate()+2);
  target.setHours(target.getHours()+14);
  target.setMinutes(target.getMinutes()+36);
  target.setSeconds(target.getSeconds()+22);

  function tick(){
    const now = new Date();
    let diff = target - now;
    if(diff<0) diff=0;
    const days = Math.floor(diff/(1000*60*60*24));
    const hours = Math.floor((diff%(1000*60*60*24))/(1000*60*60));
    const mins = Math.floor((diff%(1000*60*60))/(1000*60));
    const secs = Math.floor((diff%(1000*60))/1000);
    document.getElementById('cd-days').textContent = String(days).padStart(2,'0');
    document.getElementById('cd-hours').textContent = String(hours).padStart(2,'0');
    document.getElementById('cd-mins').textContent = String(mins).padStart(2,'0');
    document.getElementById('cd-secs').textContent = String(secs).padStart(2,'0');
  }
  tick();
  setInterval(tick,1000);
}
updateCountdown();

/* ============ PRICE TRACKER ============ */
function trackPrice(e){
  e.preventDefault();
  const name = document.getElementById('product-name').value;
  const current = parseFloat(document.getElementById('current-price').value);
  const target = parseFloat(document.getElementById('target-price').value);
  const result = document.getElementById('trackerResult');
  const status = document.getElementById('trackerStatus');
  const msg = document.getElementById('trackerMsg');
  const price = document.getElementById('trackerPrice');

  if(!name || isNaN(current) || isNaN(target)) return;

  const savings = current - target;
  status.textContent = `You're tracking "${name}"`;
  if(savings>0){
    msg.innerHTML = `We'll email you the moment the price falls below <strong style="color:var(--ink)">$${target}</strong>. You'll save <strong style="color:var(--accent)">$${savings}</strong> when it hits.`;
  } else {
    msg.innerHTML = `Your target price is already at or below the current price — we'll still monitor for further drops and let you know about restocks.`;
  }
  price.textContent = `$${current}`;
  result.classList.add('show');
  result.scrollIntoView({behavior:'smooth',block:'nearest'});
}

/* ============ NEWSLETTER ============ */
function subscribe(e){
  e.preventDefault();
  document.getElementById('newsletterForm').style.display='none';
  document.getElementById('newsletterSuccess').classList.add('show');
}

/* ============ SCROLL REVEAL ============ */
const observer = new IntersectionObserver((entries)=>{
  entries.forEach(entry=>{
    if(entry.isIntersecting){
      entry.target.classList.add('visible');
      observer.unobserve(entry.target);
    }
  });
},{threshold:.12,rootMargin:'0px 0px -40px 0px'});
document.querySelectorAll('.fade-in').forEach(el=>observer.observe(el));

/* ============ SMOOTH ANCHOR SCROLL ============ */
document.querySelectorAll('a[href^="#"]').forEach(link=>{
  link.addEventListener('click',function(e){
    const target = document.querySelector(this.getAttribute('href'));
    if(target){
      e.preventDefault();
      target.scrollIntoView({behavior:'smooth',block:'start'});
      document.getElementById('mainNav').classList.remove('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-12T09:42:04.962Z",
  "url": "https://benchmark.aimac.invalid/08201df15d3bade203a12aa73b3c57196094f8950daa8ebd9731ba0c5073cafb.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": "marquee",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "nodes": []
    },
    {
      "id": "meta-refresh",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "nodes": []
    },
    {
      "id": "object-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure <object> elements have alternative text",
      "help": "<object> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "role-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure [role=\"img\"] elements have alternative text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": []
    },
    {
      "id": "select-name",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "server-side-image-map",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "nodes": []
    },
    {
      "id": "summary-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "svg-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "td-headers-attr",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "th-has-data-cells",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "nodes": []
    },
    {
      "id": "valid-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "nodes": []
    },
    {
      "id": "video-caption",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "nodes": []
    },
    {
      "id": "no-autoplay-audio",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "nodes": []
    }
  ],
  "passes": [
    {
      "id": "aria-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": "<button class=\"announce-close\" aria-label=\"Dismiss announcement\" onclick=\"document.getElementById('announce').style.display='none'\">\u00d7</button>",
          "target": [
            ".announce-close"
          ]
        }
      ]
    },
    {
      "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": "<button class=\"announce-close\" aria-label=\"Dismiss announcement\" onclick=\"document.getElementById('announce').style.display='none'\">\u00d7</button>",
          "target": [
            ".announce-close"
          ]
        }
      ]
    },
    {
      "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": "<button class=\"announce-close\" aria-label=\"Dismiss announcement\" onclick=\"document.getElementById('announce').style.display='none'\">\u00d7</button>",
          "target": [
            ".announce-close"
          ]
        }
      ]
    },
    {
      "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": "<button class=\"announce-close\" aria-label=\"Dismiss announcement\" onclick=\"document.getElementById('announce').style.display='none'\">\u00d7</button>",
          "target": [
            ".announce-close"
          ]
        }
      ]
    },
    {
      "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": "<button class=\"announce-close\" aria-label=\"Dismiss announcement\" onclick=\"document.getElementById('announce').style.display='none'\">\u00d7</button>",
          "target": [
            ".announce-close"
          ]
        }
      ]
    },
    {
      "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": "<section class=\"section\" style=\"padding-top:32px\">",
          "target": [
            ".section:nth-child(6)"
          ]
        }
      ]
    },
    {
      "id": "button-name",
      "impact": "critical",
      "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"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute exists and is not empty"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button class=\"announce-close\" aria-label=\"Dismiss announcement\" onclick=\"document.getElementById('announce').style.display='none'\">\u00d7</button>",
          "target": [
            ".announce-close"
          ]
        }
      ]
    },
    {
      "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>Considered goods, <em>quietly made</em>, joyfully worn.</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h4>Free Shipping Over $75</h4>",
                  "target": [
                    ".value-card:nth-child(1) > div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>60-Day Easy Returns</h4>",
                  "target": [
                    ".value-card:nth-child(2) > div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Secure Checkout</h4>",
                  "target": [
                    ".value-card:nth-child(3) > div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Real Human Support</h4>",
                  "target": [
                    ".value-card:nth-child(4) > div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h2>New arrivals worth a closer look</h2>",
                  "target": [
                    "#new > .container > .section-head > div > h2"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Aurora Linen Dress</h3>",
                  "target": [
                    "#new > .container > .product-grid > .product-card:nth-child(1) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Heritage Leather Tote</h3>",
                  "target": [
                    "#new > .container > .product-grid > .product-card:nth-child(2) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Cedar Wood Diffuser</h3>",
                  "target": [
                    "#new > .container > .product-grid > .product-card:nth-child(3) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Stoneware Coffee Set</h3>",
                  "target": [
                    "#new > .container > .product-grid > .product-card:nth-child(4) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Olive Branch Throw</h3>",
                  "target": [
                    ".product-card:nth-child(5) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Brass Pendant Lamp</h3>",
                  "target": [
                    ".product-card:nth-child(6) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Heirloom Wool Blanket</h3>",
                  "target": [
                    ".product-card:nth-child(7) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Ceramic Pour-Over Kit</h3>",
                  "target": [
                    ".product-card:nth-child(8) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h2>The Slow Kitchen \u2014 tableware for unhurried mornings.</h2>",
                  "target": [
                    ".feature-banner-copy > h2"
                  ]
                },
                {
                  "html": "<h2>Best sellers our community keeps coming back for</h2>",
                  "target": [
                    "#bestsellers > .container > .section-head > div > h2"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Vintage Glass Decanter</h3>",
                  "target": [
                    "#bestsellers > .container > .product-grid > .product-card:nth-child(1) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Linen Apron \u2014 Sand</h3>",
                  "target": [
                    "#bestsellers > .container > .product-grid > .product-card:nth-child(2) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Reclaimed Walnut Board</h3>",
                  "target": [
                    "#bestsellers > .container > .product-grid > .product-card:nth-child(3) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h3 class=\"product-name\">Smoked Glass Vase</h3>",
                  "target": [
                    "#bestsellers > .container > .product-grid > .product-card:nth-child(4) > .product-meta > .product-name"
                  ]
                },
                {
                  "html": "<h2>Shop by category</h2>",
                  "target": [
                    "#categories > .container > .section-head > div > h2"
                  ]
                },
                {
                  "html": "<h3>Home &amp; Living</h3>",
                  "target": [
                    ".category-card[href=\"#\"]:nth-child(1) > .overlay > h3"
                  ]
                },
                {
                  "html": "<h3>Fashion</h3>",
                  "target": [
                    ".category-card[href=\"#\"]:nth-child(2) > .overlay > h3"
                  ]
                },
                {
                  "html": "<h3>Beauty &amp; Wellness</h3>",
                  "target": [
                    ".category-card[href=\"#\"]:nth-child(3) > .overlay > h3"
                  ]
                },
                {
                  "html": "<h3>Kitchen</h3>",
                  "target": [
                    ".category-card[href=\"#\"]:nth-child(4) > .overlay > h3"
                  ]
                },
                {
                  "html": "<h3>Outdoor</h3>",
                  "target": [
                    ".category-card[href=\"#\"]:nth-child(5) > .overlay > h3"
                  ]
                },
                {
                  "html": "<h3>Gifts</h3>",
                  "target": [
                    ".category-card[href=\"#\"]:nth-child(6) > .overlay > h3"
                  ]
                },
                {
                  "html": "<h2 class=\"sale-headline\">End of <em>season</em> sale. Up to <span class=\"sale-discount\">60% OFF</span></h2>",
                  "target": [
                    ".sale-headline"
                  ]
                },
                {
                  "html": "<h2>Set it. Forget it. We'll let you know when the price drops.</h2>",
                  "target": [
                    ".tracker-copy > h2"
                  ]
                },
                {
                  "html": "<h3>Add to price tracker</h3>",
                  "target": [
                    ".tracker-card > h3"
                  ]
                },
                {
                  "html": "<h2>Loved by 86,000+ shoppers</h2>",
                  "target": [
                    ".center > h2"
                  ]
                },
                {
                  "html": "<h2>Gift guides for every kind of person on your list</h2>",
                  "target": [
                    "#gifts > .container > .section-head > div > h2"
                  ]
                },
                {
                  "html": "<h4>The Stocking Stuffer Edit</h4>",
                  "target": [
                    ".gift-card:nth-child(1) > .info > h4"
                  ]
                },
                {
                  "html": "<h4>Gifts She'll Actually Use</h4>",
                  "target": [
                    ".gift-card:nth-child(2) > .info > h4"
                  ]
                },
                {
                  "html": "<h4>For the Guy Who Has Everything</h4>",
                  "target": [
                    ".gift-card:nth-child(3) > .info > h4"
                  ]
                },
                {
                  "html": "<h4>Move-In Ready Housewarming</h4>",
                  "target": [
                    ".gift-card:nth-child(4) > .info > h4"
                  ]
                },
                {
                  "html": "<h2>Earn 5% back on every order \u2014 plus birthday gifts, early sale access, and free shipping.</h2>",
                  "target": [
                    ".rewards-copy > h2"
                  ]
                },
                {
                  "html": "<h2>Help &amp; common questions</h2>",
                  "target": [
                    ".faq-wrap > .section-head > h2"
                  ]
                },
                {
                  "html": "<h2>Get 15% off your first order, plus first dibs on every new drop.</h2>",
                  "target": [
                    ".newsletter-copy > h2"
                  ]
                },
                {
                  "html": "<h5>Shop</h5>",
                  "target": [
                    ".footer-col:nth-child(2) > h5"
                  ]
                },
                {
                  "html": "<h5>Account</h5>",
                  "target": [
                    ".footer-col:nth-child(3) > h5"
                  ]
                },
                {
                  "html": "<h5>Support</h5>",
                  "target": [
                    ".footer-col:nth-child(4) > h5"
                  ]
                },
                {
                  "html": "<h5>Company</h5>",
                  "target": [
                    ".footer-col:nth-child(5) > h5"
                  ]
                },
                {
                  "html": "<h6>Popular Searches</h6>",
                  "target": [
                    "h6"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#fbf8f3",
                "bgColor": "#1f1f1f",
                "contrastRatio": 15.55,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 15.55"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<span><strong>Free shipping</strong> on orders over $75</span>",
          "target": [
            ".announce-track > 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": "product-name",
              "relatedNodes": [],
              "impact": "critical",
              "message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<input type=\"text\" id=\"product-name\" placeholder=\"e.g. Aurora Linen Dress\" required=\"\">",
          "target": [
            "#product-name"
          ]
        }
      ]
    },
    {
      "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=\"product-name\">Product name or URL</label>",
                  "target": [
                    "label[for=\"product-name\"]"
                  ]
                }
              ],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<input type=\"text\" id=\"product-name\" placeholder=\"e.g. Aurora Linen Dress\" required=\"\">",
          "target": [
            "#product-name"
          ]
        }
      ]
    },
    {
      "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://picsum.photos/seed/mercato-hero-living-room/800/1000\" alt=\"Mercato curated collection in a warm modern interior\" loading=\"eager\">",
          "target": [
            "img[loading=\"eager\"]"
          ]
        }
      ]
    },
    {
      "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": "explicit-label",
              "data": {
                "explicitLabel": "Product name or URL"
              },
              "relatedNodes": [
                {
                  "html": "<label for=\"product-name\">Product name or URL</label>",
                  "target": [
                    "label[for=\"product-name\"]"
                  ]
                }
              ],
              "impact": "critical",
              "message": "Element has an explicit <label>"
            },
            {
              "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=\"text\" id=\"product-name\" placeholder=\"e.g. Aurora Linen Dress\" required=\"\">",
          "target": [
            "#product-name"
          ]
        }
      ]
    },
    {
      "id": "link-in-text-block",
      "impact": null,
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "link-in-text-block-style",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<div class=\"sale-copy\">",
                  "target": [
                    ".sale-copy"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" class=\"btn btn-accent\">Shop the Sale\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 5l7 7-7 7\"></path></svg>\n        </a>",
          "target": [
            ".btn-accent.btn[href=\"#\"]"
          ]
        }
      ]
    },
    {
      "id": "link-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "focusable-no-name",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element is not in tab order or has accessible text"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" class=\"logo\">\n        <div class=\"logo-mark\">M</div>\n        <div class=\"logo-text\">\n          <span class=\"logo-name\">Mercato</span>\n          <span class=\"logo-tag\">Curated Marketplace</span>\n        </div>\n      </a>",
          "target": [
            ".logo[href=\"#\"]"
          ]
        }
      ]
    },
    {
      "id": "list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "only-listitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List element only has direct children that are allowed inside <li> elements"
            }
          ],
          "impact": null,
          "html": "<ul>",
          "target": [
            ".footer-col:nth-child(2) > ul"
          ]
        }
      ]
    },
    {
      "id": "listitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "listitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List item has a <ul>, <ol> or role=\"list\" parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<li><a href=\"#new\">New Arrivals</a></li>",
          "target": [
            ".footer-col:nth-child(2) > ul > li:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "meta-viewport",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "meta-viewport",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "<meta> tag does not disable zooming on mobile devices"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
          "target": [
            "meta[name=\"viewport\"]"
          ]
        }
      ]
    },
    {
      "id": "nested-interactive",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "no-focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element does not have focusable descendants"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button class=\"announce-close\" aria-label=\"Dismiss announcement\" onclick=\"document.getElementById('announce').style.display='none'\">\u00d7</button>",
          "target": [
            ".announce-close"
          ]
        }
      ]
    },
    {
      "id": "target-size",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag22aa",
        "wcag258"
      ],
      "description": "Ensure touch targets have sufficient size and space",
      "help": "All touch targets must be 24px large, or leave sufficient space",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "target-size",
              "data": {
                "minSize": 24,
                "width": 26.6,
                "height": 28
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Control has sufficient size (26.6px by 28px, should be at least 24px by 24px)"
            },
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 24,
                "minOffset": 24
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button class=\"announce-close\" aria-label=\"Dismiss announcement\" onclick=\"document.getElementById('announce').style.display='none'\">\u00d7</button>",
          "target": [
            ".announce-close"
          ]
        }
      ]
    }
  ],
  "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": "#ffffff",
                "bgColor": "#c8553d",
                "contrastRatio": 4.35,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "bold",
                "messageKey": "shortTextContent",
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"cart-count\" id=\"cartCount\">0</span>",
                  "target": [
                    "#cartCount"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element content is too short to determine if it is actual text content"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"cart-count\" id=\"cartCount\">0</span>",
          "target": [
            "#cartCount"
          ],
          "failureSummary": "Fix any of the following:\n  Element content is too short to determine if it is actual text content"
        }
      ]
    }
  ],
  "violations": [
    {
      "id": "button-name",
      "impact": "critical",
      "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 does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            "#new > .container > .product-grid > .product-card:nth-child(1) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            "#new > .container > .product-grid > .product-card:nth-child(2) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            "#new > .container > .product-grid > .product-card:nth-child(3) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            "#new > .container > .product-grid > .product-card:nth-child(4) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            ".product-card:nth-child(5) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            ".product-card:nth-child(6) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            ".product-card:nth-child(7) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            ".product-card:nth-child(8) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn active\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            ".active"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            "#bestsellers > .container > .product-grid > .product-card:nth-child(2) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            "#bestsellers > .container > .product-grid > .product-card:nth-child(3) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        },
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have inner text that is visible to screen readers"
            },
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-label attribute does not exist or is empty"
            },
            {
              "id": "aria-labelledby",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
            },
            {
              "id": "non-empty-title",
              "data": {
                "messageKey": "noAttr"
              },
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has no title attribute"
            },
            {
              "id": "implicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an implicit (wrapped) <label>"
            },
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element does not have an explicit <label>"
            },
            {
              "id": "presentational-role",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
            }
          ],
          "all": [],
          "none": [],
          "impact": "critical",
          "html": "<button class=\"wish-btn\" onclick=\"toggleWish(this)\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></svg></button>",
          "target": [
            "#bestsellers > .container > .product-grid > .product-card:nth-child(4) > .product-img > .wish-btn[onclick=\"toggleWish(this)\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element does not have inner text that is visible to screen readers\n  aria-label attribute does not exist or is empty\n  aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n  Element has no title attribute\n  Element does not have an implicit (wrapped) <label>\n  Element does not have an explicit <label>\n  Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
        }
      ]
    },
    {
      "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": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header class=\"site-header\" id=\"siteHeader\">",
                  "target": [
                    "#siteHeader"
                  ]
                },
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"logo-tag\">Curated Marketplace</span>",
          "target": [
            ".logo[href=\"#\"] > .logo-text > .logo-tag"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c8553d",
                "contrastRatio": 4.35,
                "fontSize": "7.5pt (10px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"nav-badge\">NEW</span>",
                  "target": [
                    ".nav-badge"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.35 (foreground color: #ffffff, background color: #c8553d, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"nav-badge\">NEW</span>",
          "target": [
            ".nav-badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.35 (foreground color: #ffffff, background color: #c8553d, font size: 7.5pt (10px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#fbf8f3",
                "contrastRatio": 4.11,
                "fontSize": "10.5pt (14px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header class=\"site-header\" id=\"siteHeader\">",
                  "target": [
                    "#siteHeader"
                  ]
                },
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#sale\" class=\"sale-link\">Sale</a>",
          "target": [
            ".sale-link"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#fbf8f3",
                "contrastRatio": 4.11,
                "fontSize": "8.3pt (11px)",
                "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.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Autumn Collection \u00b7 2026</span>",
          "target": [
            ".hero-copy > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"lbl\">Independent Brands</div>",
          "target": [
            ".hero-stat:nth-child(1) > .lbl"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"lbl\">Avg. Customer Rating</div>",
          "target": [
            ".hero-stat:nth-child(2) > .lbl"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"lbl\">Day Easy Returns</div>",
          "target": [
            ".hero-stat:nth-child(3) > .lbl"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c8553d",
                "contrastRatio": 4.35,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"hero-badge\">\n          Just<br>Arrived<strong>40+</strong>\n        </div>",
                  "target": [
                    ".hero-badge"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.35 (foreground color: #ffffff, background color: #c8553d, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"hero-badge\">\n          Just<br>Arrived<strong>40+</strong>\n        </div>",
          "target": [
            ".hero-badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.35 (foreground color: #ffffff, background color: #c8553d, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#ffffff",
                "contrastRatio": 3.94,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"hero-card-float\">\n          <div class=\"pf\">\u26a1</div>\n          <div class=\"info\">\n            <strong>Price drop alert</strong>\n            <span>3 items in your wishlist just dropped</span>\n          </div>\n        </div>",
                  "target": [
                    ".hero-card-float"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>3 items in your wishlist just dropped</span>",
          "target": [
            ".hero-card-float > .info > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#fbf8f3",
                "contrastRatio": 4.11,
                "fontSize": "8.3pt (11px)",
                "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.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Just Landed</span>",
          "target": [
            "#new > .container > .section-head > div > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Maison Vela</span>",
          "target": [
            "#new > .container > .product-grid > .product-card:nth-child(1) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Otto &amp; Oak</span>",
          "target": [
            "#new > .container > .product-grid > .product-card:nth-child(2) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">For\u00eat Studio</span>",
          "target": [
            "#new > .container > .product-grid > .product-card:nth-child(3) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Kiln Atelier</span>",
          "target": [
            "#new > .container > .product-grid > .product-card:nth-child(4) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Loomwell</span>",
          "target": [
            ".product-card:nth-child(5) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#fbf8f3",
                "bgColor": "#c8553d",
                "contrastRatio": 4.11,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"product-badge sale\">-25%</span>",
                  "target": [
                    ".product-card:nth-child(6) > .product-img > .sale.product-badge"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.11 (foreground color: #fbf8f3, background color: #c8553d, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-badge sale\">-25%</span>",
          "target": [
            ".product-card:nth-child(6) > .product-img > .sale.product-badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.11 (foreground color: #fbf8f3, background color: #c8553d, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Lumen Objects</span>",
          "target": [
            ".product-card:nth-child(6) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"price-was\">$285</span>",
          "target": [
            ".product-card:nth-child(6) > .product-meta > .product-price > .price-was"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#fbf8f3",
                "contrastRatio": 4.11,
                "fontSize": "8.3pt (11px)",
                "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.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"price-off\">Save $71</span>",
          "target": [
            ".product-card:nth-child(6) > .product-meta > .product-price > .price-off"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Loomwell</span>",
          "target": [
            ".product-card:nth-child(7) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Kiln Atelier</span>",
          "target": [
            ".product-card:nth-child(8) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#fbf8f3",
                "contrastRatio": 4.11,
                "fontSize": "8.3pt (11px)",
                "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.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Top Rated</span>",
          "target": [
            "#bestsellers > .container > .section-head > div > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Vela Glassworks</span>",
          "target": [
            "#bestsellers > .container > .product-grid > .product-card:nth-child(1) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Maison Vela</span>",
          "target": [
            "#bestsellers > .container > .product-grid > .product-card:nth-child(2) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#fbf8f3",
                "bgColor": "#c8553d",
                "contrastRatio": 4.11,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<span class=\"product-badge sale\">-30%</span>",
                  "target": [
                    ".product-card:nth-child(3) > .product-img > .sale.product-badge"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.11 (foreground color: #fbf8f3, background color: #c8553d, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-badge sale\">-30%</span>",
          "target": [
            ".product-card:nth-child(3) > .product-img > .sale.product-badge"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.11 (foreground color: #fbf8f3, background color: #c8553d, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Otto &amp; Oak</span>",
          "target": [
            "#bestsellers > .container > .product-grid > .product-card:nth-child(3) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "9.8pt (13px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"price-was\">$120</span>",
          "target": [
            ".product-card:nth-child(3) > .product-meta > .product-price > .price-was"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#fbf8f3",
                "contrastRatio": 4.11,
                "fontSize": "8.3pt (11px)",
                "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.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"price-off\">Save $36</span>",
          "target": [
            ".product-card:nth-child(3) > .product-meta > .product-price > .price-off"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#fbf8f3",
                "contrastRatio": 3.72,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"product-cat\">Vela Glassworks</span>",
          "target": [
            "#bestsellers > .container > .product-grid > .product-card:nth-child(4) > .product-meta > .product-cat"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.72 (foreground color: #8b7e72, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#f2ede4",
                "contrastRatio": 3.73,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"categories-section\" id=\"categories\">",
                  "target": [
                    "#categories"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.73 (foreground color: #c8553d, background color: #f2ede4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Browse the Marketplace</span>",
          "target": [
            "#categories > .container > .section-head > div > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.73 (foreground color: #c8553d, background color: #f2ede4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#f2ede4",
                "contrastRatio": 3.73,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"tracker-section\" id=\"tracker\">",
                  "target": [
                    "#tracker"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.73 (foreground color: #c8553d, background color: #f2ede4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Smart Shopping</span>",
          "target": [
            ".tracker-copy > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.73 (foreground color: #c8553d, background color: #f2ede4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#ffffff",
                "contrastRatio": 3.94,
                "fontSize": "10.5pt (14px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"tracker-card\">",
                  "target": [
                    ".tracker-card"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"sub\">Try it now \u2014 enter any product URL or paste a product name to see how it works.</p>",
          "target": [
            ".sub"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#fbf8f3",
                "contrastRatio": 4.11,
                "fontSize": "8.3pt (11px)",
                "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.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Customer Reviews</span>",
          "target": [
            ".center > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.11 (foreground color: #c8553d, background color: #fbf8f3, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#ffffff",
                "contrastRatio": 3.94,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"testimonial\">",
                  "target": [
                    ".testimonial:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"meta\">Verified buyer \u00b7 Brooklyn, NY</div>",
          "target": [
            ".testimonial:nth-child(1) > .testimonial-author > div > .meta"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#ffffff",
                "contrastRatio": 3.94,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"testimonial\">",
                  "target": [
                    ".testimonial:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"meta\">Verified buyer \u00b7 Portland, OR</div>",
          "target": [
            ".testimonial:nth-child(2) > .testimonial-author > div > .meta"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b7e72",
                "bgColor": "#ffffff",
                "contrastRatio": 3.94,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"testimonial\">",
                  "target": [
                    ".testimonial:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"meta\">Verified buyer \u00b7 Austin, TX</div>",
          "target": [
            ".testimonial:nth-child(3) > .testimonial-author > div > .meta"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.94 (foreground color: #8b7e72, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#f2ede4",
                "contrastRatio": 3.73,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"gifts-section\" id=\"gifts\">",
                  "target": [
                    "#gifts"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.73 (foreground color: #c8553d, background color: #f2ede4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Holiday Edit</span>",
          "target": [
            "#gifts > .container > .section-head > div > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.73 (foreground color: #c8553d, background color: #f2ede4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c8553d",
                "bgColor": "#f2ede4",
                "contrastRatio": 3.73,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"faq-section\" id=\"help\">",
                  "target": [
                    "#help"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.73 (foreground color: #c8553d, background color: #f2ede4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Frequently Asked</span>",
          "target": [
            ".faq-wrap > .section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.73 (foreground color: #c8553d, background color: #f2ede4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 11112
      },
      {
        "y": 576,
        "height": 11112
      },
      {
        "y": 1152,
        "height": 11112
      },
      {
        "y": 1728,
        "height": 11112
      },
      {
        "y": 2304,
        "height": 11112
      },
      {
        "y": 2880,
        "height": 11112
      },
      {
        "y": 3456,
        "height": 11112
      },
      {
        "y": 4032,
        "height": 11112
      },
      {
        "y": 4608,
        "height": 11112
      },
      {
        "y": 5184,
        "height": 11112
      },
      {
        "y": 5760,
        "height": 11112
      },
      {
        "y": 6336,
        "height": 11112
      },
      {
        "y": 6912,
        "height": 11112
      },
      {
        "y": 7488,
        "height": 11112
      },
      {
        "y": 8064,
        "height": 11112
      },
      {
        "y": 8640,
        "height": 11112
      },
      {
        "y": 9216,
        "height": 11112
      },
      {
        "y": 9792,
        "height": 11112
      },
      {
        "y": 10368,
        "height": 11112
      },
      {
        "y": 10392,
        "height": 11112
      }
    ],
    "scans": 21,
    "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: "New Arrivals", "Sale", "Help".
-   **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: "Top Rated", "Best Sellers", "Clearance".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "add to cart", "product reviews", "promo code".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Shop Collection", "Get Rewards", "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: "price tracker".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "price drops", "customer reviews", "popular categories".
-   **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.