Anthropic Claude Opus 5.5 – Religion and Spirituality

via Azure · Generated

  • AIMAC Debt 5.39
  • Cost $0.50
  • Total Violations 35
  • HTML Size 54 KB
  • Em Dashes 16

Screenshot

View Anthropic Claude Opus 5.5 Religion and Spirituality page View Live Page

Accessibility Issues Found

35 Serious

  • color-contrast serious 35 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <a href="#contact" class="btn btn-gold btn-sm">Plan a Visit</a>

Artifacts

View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cedar Hill Fellowship | Rooted in Grace. Growing Together.</title>
<meta name="description" content="Cedar Hill Fellowship is a welcoming faith community offering Sunday worship, scripture study groups, youth programs, and outreach ministry for every season of life.">
<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=Lora:ital,wght@0,500;0,600;0,700;1,500&family=Source+Sans+3:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
  :root{
    --cedar:#1f3a33;
    --cedar-deep:#14271f;
    --cedar-soft:#2f5348;
    --gold:#c08a3e;
    --gold-soft:#e8d2ac;
    --parchment:#f7f2ea;
    --cream:#fffdf9;
    --ink:#23211e;
    --muted:#6a645b;
    --line:#e4dccf;
    --radius:14px;
    --shadow:0 10px 30px rgba(20,39,31,.08);
    --shadow-lg:0 20px 50px rgba(20,39,31,.16);
    --serif:'Lora',Georgia,serif;
    --sans:'Source Sans 3',system-ui,-apple-system,Segoe UI,sans-serif;
  }
  *,*::before,*::after{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.65;color:var(--ink);background:var(--cream)}
  img{max-width:100%;display:block}
  a{color:var(--cedar-soft)}
  h1,h2,h3,h4{font-family:var(--serif);color:var(--cedar-deep);line-height:1.2;margin:0 0 .6em}
  h2{font-size:clamp(1.9rem,3.2vw,2.6rem)}
  h3{font-size:1.3rem}
  p{margin:0 0 1em}
  .container{width:min(1180px,92%);margin:0 auto}
  .eyebrow{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:.8rem}
  .section{padding:96px 0}
  .section-head{max-width:720px;margin-bottom:48px}
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center}
  .lead{font-size:1.15rem;color:var(--muted)}
  .btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.5rem;border-radius:999px;font-weight:600;font-size:1rem;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:all .2s ease;font-family:var(--sans)}
  .btn-gold{background:var(--gold);color:#fff}
  .btn-gold:hover{background:#a8752f;transform:translateY(-2px)}
  .btn-outline{border-color:currentColor;color:var(--cedar);background:transparent}
  .btn-outline:hover{background:var(--cedar);color:#fff;border-color:var(--cedar)}
  .btn-light{border-color:rgba(255,255,255,.7);color:#fff;background:transparent}
  .btn-light:hover{background:#fff;color:var(--cedar)}
  .btn-sm{padding:.55rem 1.1rem;font-size:.92rem}
  :focus-visible{outline:3px solid var(--gold);outline-offset:3px}

  /* Top bar */
  .topbar{background:var(--cedar-deep);color:#d8e0dc;font-size:.88rem}
  .topbar .container{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;gap:1rem;flex-wrap:wrap}
  .topbar a{color:var(--gold-soft);text-decoration:none}
  .topbar span strong{color:#fff;font-weight:600}

  /* Header */
  header.site-header{position:sticky;top:0;z-index:50;background:rgba(255,253,249,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
  .header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:1.5rem}
  .brand{display:flex;align-items:center;gap:.85rem;text-decoration:none}
  .brand img{width:52px;height:52px;border-radius:12px}
  .brand-name{font-family:var(--serif);font-weight:700;font-size:1.35rem;color:var(--cedar-deep);line-height:1.1}
  .brand-tag{font-size:.8rem;color:var(--muted);letter-spacing:.04em}
  nav.primary ul{list-style:none;display:flex;gap:1.5rem;margin:0;padding:0;align-items:center}
  nav.primary a{text-decoration:none;color:var(--ink);font-weight:600;font-size:.97rem;position:relative;padding:.3rem 0}
  nav.primary a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--gold);transition:width .2s}
  nav.primary a:not(.btn):hover::after{width:100%}
  nav.primary .btn{color:#fff}
  .nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem;cursor:pointer}
  .nav-toggle span{display:block;width:22px;height:2px;background:var(--cedar);margin:4px 0}

  /* Hero */
  .hero{position:relative;color:#fff;min-height:620px;display:flex;align-items:center;overflow:hidden}
  .hero-bg{position:absolute;inset:0;background:url('https://picsum.photos/id/1018/1800/1000') center/cover no-repeat}
  .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(20,39,31,.92) 0%,rgba(20,39,31,.7) 45%,rgba(20,39,31,.25) 100%)}
  .hero .container{position:relative;z-index:2;padding:80px 0}
  .hero h1{color:#fff;font-size:clamp(2.4rem,5vw,4rem);max-width:720px;margin-bottom:1.2rem}
  .hero h1 em{color:var(--gold-soft);font-style:italic}
  .hero p{max-width:580px;font-size:1.18rem;color:#e6ece9}
  .hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}
  .hero-verse{margin-top:3rem;padding-left:1rem;border-left:3px solid var(--gold);font-family:var(--serif);font-style:italic;color:#dfe7e3;max-width:520px}

  /* Service strip */
  .service-strip{background:var(--parchment);border-bottom:1px solid var(--line)}
  .service-strip .container{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
  .strip-item{padding:28px 24px;border-right:1px solid var(--line)}
  .strip-item:last-child{border-right:none}
  .strip-item h4{font-size:1.05rem;margin-bottom:.2rem}
  .strip-item p{margin:0;color:var(--muted);font-size:.95rem}
  .strip-item .time{font-family:var(--serif);font-size:1.5rem;color:var(--gold);font-weight:700}

  /* Our Faith */
  .faith-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}
  .faith-img{position:relative}
  .faith-img img{border-radius:var(--radius);box-shadow:var(--shadow-lg)}
  .faith-img .badge{position:absolute;bottom:-24px;right:-18px;background:var(--cedar);color:#fff;padding:20px 24px;border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:220px}
  .faith-img .badge strong{display:block;font-family:var(--serif);font-size:2rem;color:var(--gold-soft)}
  .beliefs{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:72px}
  .belief{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px;transition:transform .2s,box-shadow .2s}
  .belief:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
  .belief .icon{width:48px;height:48px;border-radius:12px;background:var(--parchment);display:grid;place-items:center;font-size:1.4rem;margin-bottom:1rem}
  .belief p{color:var(--muted);font-size:.96rem;margin:0}

  /* Groups + sidebar */
  .groups{background:var(--parchment)}
  .groups-layout{display:grid;grid-template-columns:1fr 330px;gap:40px;align-items:start}
  .finder{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}
  .finder-controls{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:14px;align-items:end;margin-bottom:24px}
  .finder label{display:block;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem}
  .finder select,.form input,.form select,.form textarea{width:100%;padding:.75rem .9rem;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:.98rem;background:var(--cream);color:var(--ink)}
  .finder select:focus,.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(192,138,62,.18)}
  .finder-meta{display:flex;justify-content:space-between;align-items:center;font-size:.92rem;color:var(--muted);margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:12px}
  .group-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
  .group-card{border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:.5rem;transition:border-color .2s,box-shadow .2s;background:var(--cream)}
  .group-card:hover{border-color:var(--gold);box-shadow:var(--shadow)}
  .group-card h4{margin:0;font-size:1.12rem}
  .tags{display:flex;flex-wrap:wrap;gap:6px}
  .tag{font-size:.75rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;background:var(--parchment);color:var(--cedar-soft)}
  .tag.gold{background:#f6e7cf;color:#8a5f22}
  .group-card .info{font-size:.92rem;color:var(--muted);margin:0}
  .group-card .leader{display:flex;align-items:center;gap:.6rem;font-size:.9rem;margin-top:auto;padding-top:.6rem}
  .group-card .leader img{width:34px;height:34px;border-radius:50%}
  .group-card .join-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
  .group-card .seats{font-size:.82rem;color:var(--muted)}
  .group-card.joined{border-color:var(--cedar-soft);background:#eef4f1}
  .empty{grid-column:1/-1;text-align:center;padding:40px 20px;color:var(--muted)}
  .groups-intro{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:40px}

  aside.sidebar{display:flex;flex-direction:column;gap:22px;position:sticky;top:100px}
  .side-card{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
  .side-card h3{font-size:1.1rem;display:flex;align-items:center;gap:.5rem}
  .verse-card{background:var(--cedar);color:#e7eeea}
  .verse-card h3{color:var(--gold-soft)}
  .verse-card blockquote{margin:0 0 .8rem;font-family:var(--serif);font-style:italic;font-size:1.12rem;line-height:1.55;color:#fff}
  .verse-card cite{font-style:normal;font-size:.9rem;color:var(--gold-soft)}
  .schedule{list-style:none;margin:0;padding:0}
  .schedule li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px dashed var(--line);font-size:.94rem}
  .schedule li:last-child{border-bottom:none}
  .schedule span:last-child{color:var(--muted);text-align:right;white-space:nowrap}
  .updates{list-style:none;padding:0;margin:0}
  .updates li{padding:.7rem 0;border-bottom:1px solid var(--line)}
  .updates li:last-child{border-bottom:none}
  .updates small{display:block;color:var(--gold);font-weight:700;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}
  .updates a{text-decoration:none;color:var(--ink);font-weight:600}
  .updates a:hover{color:var(--gold)}

  /* Youth */
  .youth-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .youth-card{border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
  .youth-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
  .youth-card img{aspect-ratio:3/2;object-fit:cover;width:100%}
  .youth-body{padding:26px;display:flex;flex-direction:column;flex:1}
  .youth-body .age{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
  .youth-body p{color:var(--muted);font-size:.97rem}
  .youth-body ul{padding-left:1.1rem;margin:0 0 1.2rem;color:var(--ink);font-size:.94rem}
  .youth-body .btn{margin-top:auto;align-self:flex-start}
  .safety-note{margin-top:36px;display:flex;gap:16px;align-items:flex-start;background:var(--parchment);border-left:4px solid var(--gold);padding:20px 24px;border-radius:0 var(--radius) var(--radius) 0}
  .safety-note p{margin:0;color:var(--muted)}

  /* Outreach */
  .outreach{background:var(--cedar);color:#dfe8e4;position:relative;overflow:hidden}
  .outreach h2,.outreach h3{color:#fff}
  .outreach .lead{color:#c7d4ce}
  .outreach-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
  .outreach-photos{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .outreach-photos img{border-radius:var(--radius);object-fit:cover;width:100%;height:100%}
  .outreach-photos img:first-child{grid-row:span 2}
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:64px 0 56px}
  .stat{text-align:center;padding:24px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);background:rgba(255,255,255,.04)}
  .stat strong{display:block;font-family:var(--serif);font-size:2.4rem;color:var(--gold-soft);line-height:1.1}
  .stat span{font-size:.92rem;color:#c7d4ce}
  .ministries{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .ministry{padding:28px;border-radius:var(--radius);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
  .ministry p{color:#c7d4ce;font-size:.96rem}
  .ministry a{color:var(--gold-soft);font-weight:600;text-decoration:none}
  .ministry a:hover{text-decoration:underline}

  /* Testimonials */
  .testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
  .testimonial{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;position:relative;display:flex;flex-direction:column}
  .testimonial::before{content:"\201C";font-family:var(--serif);font-size:4.5rem;color:var(--gold-soft);position:absolute;top:4px;right:20px;line-height:1}
  .testimonial p{font-size:1rem;flex:1}
  .person{display:flex;align-items:center;gap:.8rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
  .person img{width:52px;height:52px;border-radius:50%}
  .person strong{display:block;color:var(--cedar-deep)}
  .person span{font-size:.88rem;color:var(--muted)}

  /* Sermon */
  .sermon{background:var(--parchment)}
  .sermon-feature{display:grid;grid-template-columns:1.2fr 1fr;gap:0;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
  .sermon-media{position:relative}
  .sermon-media img{width:100%;height:100%;object-fit:cover;min-height:340px}
  .play{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;background:rgba(255,255,255,.92);border:none;display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-lg);transition:transform .2s}
  .play:hover{transform:scale(1.08)}
  .play::after{content:"";border-left:22px solid var(--cedar);border-top:14px solid transparent;border-bottom:14px solid transparent;margin-left:6px}
  .sermon-info{padding:40px}
  .sermon-info .meta{font-size:.9rem;color:var(--muted);margin-bottom:1rem}
  .series{display:flex;gap:14px;margin-top:1.4rem;flex-wrap:wrap}

  /* FAQ */
  .faq-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px}
  .accordion-item{border-bottom:1px solid var(--line)}
  .accordion-btn{width:100%;text-align:left;background:none;border:none;padding:22px 40px 22px 0;font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--cedar-deep);cursor:pointer;position:relative}
  .accordion-btn::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:1.6rem;color:var(--gold);transition:transform .25s}
  .accordion-btn[aria-expanded="true"]::after{transform:translateY(-50%) rotate(45deg)}
  .accordion-panel{max-height:0;overflow:hidden;transition:max-height .35s ease}
  .accordion-panel p{color:var(--muted);padding-bottom:20px;margin:0}

  /* Contact */
  .contact{background:linear-gradient(180deg,var(--cream),var(--parchment))}
  .contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:start}
  .contact-list{list-style:none;padding:0;margin:1.5rem 0}
  .contact-list li{display:flex;gap:14px;padding:.8rem 0;border-bottom:1px solid var(--line)}
  .contact-list .ico{width:40px;height:40px;flex-shrink:0;border-radius:10px;background:var(--cedar);color:#fff;display:grid;place-items:center}
  .contact-list strong{display:block;color:var(--cedar-deep)}
  .contact-list span{color:var(--muted);font-size:.95rem}
  .form{background:#fff;border-radius:var(--radius);padding:36px;box-shadow:var(--shadow)}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .form .field{margin-bottom:16px}
  .form label{display:block;font-weight:600;font-size:.92rem;margin-bottom:.35rem}
  .form textarea{min-height:120px;resize:vertical}
  .check{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;color:var(--muted);margin-bottom:20px}
  .check input{width:auto;margin-top:.3rem}
  .form-success{display:none;background:#eef4f1;border:1px solid var(--cedar-soft);color:var(--cedar-deep);padding:16px;border-radius:10px;margin-top:16px}

  /* Footer */
  footer{background:var(--cedar-deep);color:#b9c7c1;padding:72px 0 0;font-size:.95rem}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:48px}
  footer h4{color:#fff;font-family:var(--sans);font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.1rem}
  footer ul{list-style:none;padding:0;margin:0}
  footer li{margin-bottom:.55rem}
  footer a{color:#b9c7c1;text-decoration:none}
  footer a:hover{color:var(--gold-soft)}
  .footer-brand{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}
  .footer-brand img{width:46px;height:46px;border-radius:10px}
  .footer-brand span{font-family:var(--serif);color:#fff;font-size:1.25rem;font-weight:700}
  .socials{display:flex;gap:10px;margin-top:1.2rem}
  .socials a{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;transition:all .2s}
  .socials a:hover{background:var(--gold);border-color:var(--gold);color:#fff}
  .socials svg{width:18px;height:18px;fill:currentColor}
  .newsletter{display:flex;gap:8px;margin-top:.8rem}
  .newsletter input{flex:1;padding:.7rem .9rem;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;font:inherit;min-width:0}
  .newsletter input::placeholder{color:#8fa39b}
  .footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:22px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.88rem}
  .footer-bottom nav a{margin-left:1.2rem}

  /* Responsive */
  @media (max-width:1080px){
    nav.primary ul{gap:1rem}
    .groups-layout{grid-template-columns:1fr}
    aside.sidebar{position:static;display:grid;grid-template-columns:repeat(3,1fr)}
    .beliefs{grid-template-columns:repeat(2,1fr)}
    .footer-grid{grid-template-columns:1fr 1fr}
  }
  @media (max-width:900px){
    .nav-toggle{display:block}
    nav.primary{position:absolute;top:100%;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--line);display:none;box-shadow:var(--shadow)}
    nav.primary.open{display:block}
    nav.primary ul{flex-direction:column;align-items:stretch;padding:1rem 4%;gap:.2rem}
    nav.primary a{display:block;padding:.7rem 0}
    nav.primary .btn{justify-content:center;margin-top:.5rem}
    .faith-grid,.outreach-grid,.faq-wrap,.contact-grid,.sermon-feature,.groups-intro{grid-template-columns:1fr}
    .faith-img .badge{right:12px}
    .service-strip .container{grid-template-columns:1fr 1fr}
    .strip-item:nth-child(2){border-right:none}
    .strip-item{border-bottom:1px solid var(--line)}
    .youth-cards,.testimonials,.ministries{grid-template-columns:1fr}
    .stats{grid-template-columns:1fr 1fr}
    aside.sidebar{grid-template-columns:1fr}
    .finder-controls{grid-template-columns:1fr 1fr}
  }
  @media (max-width:640px){
    .section{padding:72px 0}
    .group-list,.beliefs,.form-row{grid-template-columns:1fr}
    .finder-controls{grid-template-columns:1fr}
    .finder{padding:22px}
    .footer-grid{grid-template-columns:1fr}
    .topbar .hide-sm{display:none}
    .brand-tag{display:none}
  }
</style>
</head>
<body>

<div class="topbar">
  <div class="container">
    <span>Sunday Worship: <strong>8:30 &amp; 10:45 AM</strong> · Wednesday Prayer: <strong>7:00 PM</strong></span>
    <span class="hide-sm"><a href="tel:+15035550147">(503) 555-0147</a> · <a href="#contact">Submit a Prayer Request</a></span>
  </div>
</div>

<header class="site-header">
  <div class="container header-inner">
    <a href="#top" class="brand" aria-label="Cedar Hill Fellowship home">
      <img src="https://placehold.co/104x104/1f3a33/e8d2ac?text=CH&font=lora" alt="Cedar Hill Fellowship logo">
      <div>
        <div class="brand-name">Cedar Hill Fellowship</div>
        <div class="brand-tag">Rooted in Grace. Growing Together.</div>
      </div>
    </a>
    <button class="nav-toggle" aria-label="Open menu" aria-expanded="false" aria-controls="primary-nav">
      <span></span><span></span><span></span>
    </button>
    <nav class="primary" id="primary-nav" aria-label="Primary">
      <ul>
        <li><a href="#faith">Our Faith</a></li>
        <li><a href="#groups">Study Groups</a></li>
        <li><a href="#youth">Youth</a></li>
        <li><a href="#outreach">Outreach</a></li>
        <li><a href="#sermons">Sermons</a></li>
        <li><a href="#faq">FAQ</a></li>
        <li><a href="#contact">Contact</a></li>
        <li><a href="#contact" class="btn btn-gold btn-sm">Plan a Visit</a></li>
      </ul>
    </nav>
  </div>
</header>

<main id="top">

  <!-- HERO -->
  <section class="hero" aria-label="Welcome">
    <div class="hero-bg" role="img" aria-label="Morning light over a forested hillside"></div>
    <div class="container">
      <span class="eyebrow">Welcome Home</span>
      <h1>A place to belong, believe, and <em>become</em>.</h1>
      <p>Cedar Hill Fellowship is a warm, multi-generational church family gathered around scripture, prayer, and the simple practice of loving our neighbors well. Whether you've walked with God for decades or you're just beginning to ask the big questions, there's a seat saved for you.</p>
      <div class="hero-ctas">
        <a href="#contact" class="btn btn-gold">Plan Your First Visit</a>
        <a href="#groups" class="btn btn-light">Find a Group</a>
      </div>
      <p class="hero-verse">"They are like trees planted by streams of water, which yield their fruit in season." — Psalm 1:3</p>
    </div>
  </section>

  <!-- SERVICE STRIP -->
  <section class="service-strip" aria-label="Weekly gatherings">
    <div class="container">
      <div class="strip-item"><div class="time">8:30 AM</div><h4>Traditional Worship</h4><p>Hymns, liturgy &amp; choir · Sanctuary</p></div>
      <div class="strip-item"><div class="time">10:45 AM</div><h4>Contemporary Worship</h4><p>Band-led · Livestreamed · Kids' church</p></div>
      <div class="strip-item"><div class="time">Wed 7 PM</div><h4>Midweek Prayer</h4><p>Quiet chapel gathering &amp; communion</p></div>
      <div class="strip-item"><div class="time">Daily</div><h4>Online Devotional</h4><p>Five-minute readings in your inbox</p></div>
    </div>
  </section>

  <!-- OUR FAITH -->
  <section class="section" id="faith">
    <div class="container">
      <div class="faith-grid">
        <div>
          <span class="eyebrow">Our Faith</span>
          <h2>Ancient truth, lived out in an everyday kind of way.</h2>
          <p class="lead">We are a non-denominational Christian community grounded in the historic creeds of the church and committed to the authority of scripture.</p>
          <p>Since our first gathering in a borrowed schoolhouse in 1987, Cedar Hill has believed that faith grows best in the soil of real relationships. We worship with reverence and joy, we open the Bible together with curiosity and humility, and we take seriously Jesus' call to care for the poor, the lonely, and the overlooked.</p>
          <p>You won't find perfect people here—just ordinary folks learning grace one Sunday at a time. Our pastors preach verse-by-verse through books of the Bible, our fellowship meals are famously generous, and our doors are open to skeptics, seekers, and saints alike.</p>
          <div class="hero-ctas">
            <a href="#beliefs" class="btn btn-outline">Read Our Beliefs</a>
            <a href="#contact" class="btn btn-gold">Meet Our Pastors</a>
          </div>
        </div>
        <div class="faith-img">
          <img src="https://picsum.photos/id/1047/720/820" alt="Sunlight streaming through the sanctuary windows" width="720" height="820" loading="lazy">
          <div class="badge"><strong>37 yrs</strong>serving the Willamette Valley with worship, care, and community.</div>
        </div>
      </div>

      <div class="beliefs" id="beliefs">
        <article class="belief">
          <div class="icon" aria-hidden="true">📖</div>
          <h3>Scripture</h3>
          <p>We hold the Old and New Testaments as God's inspired Word—our trustworthy guide for faith, doctrine, and daily life.</p>
        </article>
        <article class="belief">
          <div class="icon" aria-hidden="true">✝️</div>
          <h3>Grace</h3>
          <p>Salvation is a gift received through faith in Jesus Christ—not earned by effort, but freely given by a loving Father.</p>
        </article>
        <article class="belief">
          <div class="icon" aria-hidden="true">🕊️</div>
          <h3>Prayer</h3>
          <p>Through the Holy Spirit we speak with God and listen for His voice—alone, in small groups, and as one gathered church.</p>
        </article>
        <article class="belief">
          <div class="icon" aria-hidden="true">🤝</div>
          <h3>Fellowship</h3>
          <p>We are made for one another. Shared tables, honest conversation, and mutual care are at the heart of church life.</p>
        </article>
      </div>
    </div>
  </section>

  <!-- STUDY GROUPS + SIDEBAR -->
  <section class="section groups" id="groups">
    <div class="container">
      <div class="groups-intro">
        <div>
          <span class="eyebrow">Study Groups</span>
          <h2>Church gets smaller, so it can feel bigger.</h2>
        </div>
        <div>
          <p>Sunday worship is where we gather; small groups are where we grow. More than 40 groups meet throughout the week in living rooms, coffee shops, and classrooms across the valley—studying scripture, praying for one another, and sharing life's ordinary and extraordinary moments.</p>
          <p>Use the group finder below to browse by meeting day, life stage, and focus. Every group is led by trained volunteers and welcomes newcomers at any point in the semester.</p>
        </div>
      </div>

      <div class="groups-layout">
        <div class="finder" aria-labelledby="finder-title">
          <h3 id="finder-title">Group Finder</h3>
          <div class="finder-controls">
            <div>
              <label for="f-day">Meeting Day</label>
              <select id="f-day">
                <option value="all">Any day</option>
                <option>Sunday</option><option>Monday</option><option>Tuesday</option>
                <option>Wednesday</option><option>Thursday</option><option>Saturday</option>
              </select>
            </div>
            <div>
              <label for="f-stage">Life Stage</label>
              <select id="f-stage">
                <option value="all">Everyone</option>
                <option>Young Adults</option><option>Couples</option><option>Parents</option>
                <option>Women</option><option>Men</option><option>Seniors</option><option>All Ages</option>
              </select>
            </div>
            <div>
              <label for="f-focus">Focus</label>
              <select id="f-focus">
                <option value="all">Any focus</option>
                <option>Bible Study</option><option>Prayer</option><option>Book Study</option>
                <option>Recovery</option><option>Service</option>
              </select>
            </div>
            <button class="btn btn-outline btn-sm" id="f-reset" type="button">Reset</button>
          </div>
          <div class="finder-meta">
            <span id="f-count" aria-live="polite">Showing all groups</span>
            <span>📍 In-person &amp; online options</span>
          </div>
          <div class="group-list" id="group-list"></div>
        </div>

        <aside class="sidebar" aria-label="Church updates">
          <div class="side-card verse-card">
            <h3>✦ Verse of the Week</h3>
            <blockquote>"Come to me, all you who are weary and burdened, and I will give you rest."</blockquote>
            <cite>Matthew 11:28 (NIV)</cite>
          </div>
          <div class="side-card">
            <h3>🗓️ This Week at Cedar Hill</h3>
            <ul class="schedule">
              <li><span>Sun · Worship</span><span>8:30 &amp; 10:45</span></li>
              <li><span>Mon · Men's Breakfast</span><span>6:30 AM</span></li>
              <li><span>Tue · Food Pantry</span><span>3–6 PM</span></li>
              <li><span>Wed · Prayer &amp; Communion</span><span>7:00 PM</span></li>
              <li><span>Fri · Youth Night</span><span>6:30 PM</span></li>
              <li><span>Sat · Community Garden</span><span>9:00 AM</span></li>
            </ul>
          </div>
          <div class="side-card">
            <h3>📣 Ministry Updates</h3>
            <ul class="updates">
              <li><small>Oct 12</small><a href="#outreach">Fall coat drive collected 640 coats—thank you!</a></li>
              <li><small>Oct 20</small><a href="#sermons">New sermon series: "Psalms for the Weary"</a></li>
              <li><small>Nov 2</small><a href="#youth">Middle school retreat registration now open</a></li>
              <li><small>Nov 16</small><a href="#contact">Newcomers' Lunch with Pastor Ruth</a></li>
            </ul>
          </div>
        </aside>
      </div>
    </div>
  </section>

  <!-- YOUTH -->
  <section class="section" id="youth">
    <div class="container">
      <div class="section-head center">
        <span class="eyebrow">Youth Programs</span>
        <h2>Raising a generation that knows they're loved.</h2>
        <p class="lead">From the nursery to college send-off, our next-generation ministries help kids and teens discover a faith of their own—through fun, mentoring, and honest conversation about the questions that matter.</p>
      </div>

      <div class="youth-cards">
        <article class="youth-card">
          <img src="https://picsum.photos/id/1005/600/400" alt="Children's classroom activity" width="600" height="400" loading="lazy">
          <div class="youth-body">
            <span class="age">Birth – 5th Grade</span>
            <h3>Cedar Kids</h3>
            <p>Engaging Bible stories, worship songs, and hands-on crafts in safe, age-appropriate classrooms every Sunday morning. Children learn that God made them, loves them, and has a purpose for them.</p>
            <ul><li>Secure check-in system</li><li>Sensory-friendly classroom</li><li>Parent resources each week</li></ul>
            <a href="#contact" class="btn btn-outline btn-sm">Register Your Child</a>
          </div>
        </article>
        <article class="youth-card">
          <img src="https://picsum.photos/id/1062/600/400" alt="Middle school students at a retreat" width="600" height="400" loading="lazy">
          <div class="youth-body">
            <span class="age">6th – 8th Grade</span>
            <h3>The Grove</h3>
            <p>Middle school is a season of big changes. The Grove offers Friday night games, small-group discipleship, and seasonal retreats where students build friendships and dig into scripture together.</p>
            <ul><li>Friday nights, 6:30–8:30 PM</li><li>Fall &amp; spring retreats</li><li>Trained adult mentors</li></ul>
            <a href="#contact" class="btn btn-outline btn-sm">Learn More</a>
          </div>
        </article>
        <article class="youth-card">
          <img src="https://picsum.photos/id/1059/600/400" alt="High school students serving together" width="600" height="400" loading="lazy">
          <div class="youth-body">
            <span class="age">9th – 12th Grade</span>
            <h3>Rooted Students</h3>
            <p>High schoolers wrestle with real faith questions, lead worship, and serve their city. Our summer mission trip and senior leadership track prepare students to carry their faith confidently into adulthood.</p>
            <ul><li>Sunday evening gatherings</li><li>Summer mission trip</li><li>Student leadership track</li></ul>
            <a href="#contact" class="btn btn-outline btn-sm">Get Involved</a>
          </div>
        </article>
      </div>

      <div class="safety-note">
        <span aria-hidden="true" style="font-size:1.5rem">🛡️</span>
        <p><strong style="color:var(--cedar-deep)">Your child's safety is sacred to us.</strong> Every volunteer who serves with minors completes a background check, child-protection training, and a personal interview. We follow a strict two-adult policy in all classrooms and activities.</p>
      </div>
    </div>
  </section>

  <!-- OUTREACH -->
  <section class="section outreach" id="outreach">
    <div class="container">
      <div class="outreach-grid">
        <div>
          <span class="eyebrow">Outreach Ministry</span>
          <h2>Faith that rolls up its sleeves.</h2>
          <p class="lead">We believe the church exists not for itself, but for the flourishing of the city it calls home.</p>
          <p>Every week, Cedar Hill volunteers stock our community food pantry, tutor students at Riverside Elementary, visit homebound neighbors, and partner with local shelters to provide warm meals and dignified care. Beyond our valley, we support long-term partners in Guatemala and Kenya with clean-water projects and pastoral training.</p>
          <p>Serving isn't reserved for the especially gifted—it's how ordinary believers become the hands and feet of Christ. There's a place for every skill, schedule, and season of life.</p>
          <div class="hero-ctas">
            <a href="#contact" class="btn btn-gold">Get Involved</a>
            <a href="#contact" class="btn btn-light">Partner With Us</a>
          </div>
        </div>
        <div class="outreach-photos">
          <img src="https://picsum.photos/id/1067/500/640" alt="Volunteers at the community food pantry" loading="lazy">
          <img src="https://picsum.photos/id/1076/500/310" alt="Neighbors sharing a community meal" loading="lazy">
          <img src="https://picsum.photos/id/1080/500/310" alt="Fresh produce from the community garden" loading="lazy">
        </div>
      </div>

      <div class="stats">
        <div class="stat"><strong>18,400</strong><span>meals served last year</span></div>
        <div class="stat"><strong>320+</strong><span>active volunteers</span></div>
        <div class="stat"><strong>12</strong><span>local partner agencies</span></div>
        <div class="stat"><strong>4</strong><span>global mission partners</span></div>
      </div>

      <div class="ministries">
        <article class="ministry">
          <h3>Open Table Pantry</h3>
          <p>Open every Tuesday and Saturday, our client-choice pantry provides groceries, hygiene supplies, and a listening ear to over 200 families each week.</p>
          <a href="#contact">Volunteer a shift →</a>
        </article>
        <article class="ministry">
          <h3>Care &amp; Visitation</h3>
          <p>Trained Stephen Ministers and lay chaplains walk with those facing grief, illness, or isolation—offering prayer, presence, and practical help.</p>
          <a href="#contact">Request a visit →</a>
        </article>
        <article class="ministry">
          <h3>Global Partners</h3>
          <p>Through clean-water wells, pastoral training, and child sponsorship, we stand alongside churches in Huehuetenango, Guatemala, and Kisumu, Kenya.</p>
          <a href="#contact">Join a mission trip →</a>
        </article>
      </div>
    </div>
  </section>

  <!-- TESTIMONIALS -->
  <section class="section" aria-labelledby="stories-title">
    <div class="container">
      <div class="section-head center">
        <span class="eyebrow">Stories of Grace</span>
        <h2 id="stories-title">What God is doing among us</h2>
        <p class="lead">The best way to understand a church is through the lives it touches. Here are a few voices from our fellowship.</p>
      </div>
      <div class="testimonials">
        <figure class="testimonial">
          <p>"We moved here knowing no one. A neighbor invited us to a Tuesday group, and within a month those families were bringing us meals when our son was born. Cedar Hill didn't just give us a church—it gave us family."</p>
          <figcaption class="person"><img src="https://i.pravatar.cc/104?u=cedarhill-maria" alt="Maria Delgado" loading="lazy"><div><strong>Maria Delgado</strong><span>Member since 2019</span></div></figcaption>
        </figure>
        <figure class="testimonial">
          <p>"I came with a lot of doubts and hurt from past church experiences. Pastor Ruth never rushed me. The Alpha course gave me room to ask hard questions, and slowly, prayer became real to me again."</p>
          <figcaption class="person"><img src="https://i.pravatar.cc/104?u=cedarhill-james" alt="James Okafor" loading="lazy"><div><strong>James Okafor</strong><span>Alpha Course graduate</span></div></figcaption>
        </figure>
        <figure class="testimonial">
          <p>"After my husband passed, the care team visited every week for a year. Now I volunteer in the pantry myself. Serving others has become one of the deepest joys of my faith."</p>
          <figcaption class="person"><img src="https://i.pravatar.cc/104?u=cedarhill-eleanor" alt="Eleanor Whitfield" loading="lazy"><div><strong>Eleanor Whitfield</strong><span>Outreach volunteer</span></div></figcaption>
        </figure>
      </div>
    </div>
  </section>

  <!-- SERMONS -->
  <section class="section sermon" id="sermons">
    <div class="container">
      <div class="section-head">
        <span class="eyebrow">Latest Message</span>
        <h2>Hear the Word, wherever you are.</h2>
      </div>
      <div class="sermon-feature">
        <div class="sermon-media">
          <img src="https://picsum.photos/id/1040/800/560" alt="Sermon series artwork: Psalms for the Weary" loading="lazy">
          <button class="play" type="button" aria-label="Play latest sermon" id="play-btn"></button>
        </div>
        <div class="sermon-info">
          <span class="eyebrow">Psalms for the Weary · Week 3</span>
          <h3 style="font-size:1.7rem">"When the Night Is Long" — Psalm 42</h3>
          <p class="meta">Pastor Ruth Abernathy · 38 min</p>
          <p>The psalmist's soul is downcast, yet he speaks to it with hope. In this message, Pastor Ruth explores the honest prayers of lament and how God meets us in seasons of spiritual dryness, grief, and waiting.</p>
          <p>Each week's sermon includes a discussion guide for small groups and families, plus a printable prayer journal page.</p>
          <div class="series">
            <a href="#sermons" class="btn btn-gold btn-sm">Watch Sermon</a>
            <a href="#sermons" class="btn btn-outline btn-sm">Download Study Guide</a>
          </div>
        </div>
      </div>
    </div>
  </section>

  <!-- FAQ -->
  <section class="section" id="faq">
    <div class="container faq-wrap">
      <div>
        <span class="eyebrow">First Time?</span>
        <h2>Questions newcomers often ask</h2>
        <p class="lead">Visiting a church for the first time can feel intimidating. We want you to know exactly what to expect before you arrive.</p>
        <p>If you don't see your question here, our Welcome Team would love to hear from you. Just drop us a note and someone will reply within a day.</p>
        <img src="https://picsum.photos/id/1039/600/380" alt="Greeters welcoming guests at the church entrance" style="border-radius:var(--radius);margin-top:1.5rem" loading="lazy">
      </div>
      <div class="accordion" id="accordion">
        <div class="accordion-item">
          <button class="accordion-btn" aria-expanded="false" aria-controls="faq1" id="faq1-btn">What should I wear?</button>
          <div class="accordion-panel" id="faq1" role="region" aria-labelledby="faq1-btn"><p>Come as you are. You'll see everything from jeans and hiking boots to suits and Sunday dresses. We care far more about you than about what you're wearing.</p></div>
        </div>
        <div class="accordion-item">
          <button class="accordion-btn" aria-expanded="false" aria-controls="faq2" id="faq2-btn">What happens during a worship service?</button>
          <div class="accordion-panel" id="faq2" role="region" aria-labelledby="faq2-btn"><p>Services last about 75 minutes and include congregational singing, scripture readings, a time of prayer, and a sermon. We celebrate communion on the first Sunday of each month, and all who trust in Christ are welcome at the table.</p></div>
        </div>
        <div class="accordion-item">
          <button class="accordion-btn" aria-expanded="false" aria-controls="faq3" id="faq3-btn">Is there something for my kids?</button>
          <div class="accordion-panel" id="faq3" role="region" aria-labelledby="faq3-btn"><p>Yes! Cedar Kids runs during both services for infants through 5th grade. Stop by the Family Welcome Desk in the main lobby and our team will help you check in securely. Children are always welcome to stay in the service with you, too.</p></div>
        </div>
        <div class="accordion-item">
          <button class="accordion-btn" aria-expanded="false" aria-controls="faq4" id="faq4-btn">Where do I park, and is the building accessible?</button>
          <div class="accordion-panel" id="faq4" role="region" aria-labelledby="faq4-btn"><p>Reserved visitor parking is located directly in front of the main entrance—look for the gold signs. The entire building is wheelchair accessible, with hearing-assist devices and large-print bulletins available at the Welcome Desk.</p></div>
        </div>
        <div class="accordion-item">
          <button class="accordion-btn" aria-expanded="false" aria-controls="faq5" id="faq5-btn">Do I have to be a member to join a group or serve?</button>
          <div class="accordion-panel" id="faq5" role="region" aria-labelledby="faq5-btn"><p>Not at all. Small groups and most outreach opportunities are open to everyone. Membership is a meaningful step we're happy to talk about whenever you're ready—our quarterly Discover Cedar Hill class is a great place to start.</p></div>
        </div>
        <div class="accordion-item">
          <button class="accordion-btn" aria-expanded="false" aria-controls="faq6" id="faq6-btn">How can I request prayer?</button>
          <div class="accordion-panel" id="faq6" role="region" aria-labelledby="faq6-btn"><p>Use the contact form below and choose "Prayer Request." Our prayer team meets every Wednesday and prays over each request confidentially. You can also visit the prayer chapel, open daily from 7 AM to 7 PM.</p></div>
        </div>
      </div>
    </div>
  </section>

  <!-- CONTACT -->
  <section class="section contact" id="contact">
    <div class="container contact-grid">
      <div>
        <span class="eyebrow">Contact &amp; Visit</span>
        <h2>We'd love to welcome you this Sunday.</h2>
        <p>Let us know you're coming and a member of our Welcome Team will meet you at the door, save you a seat, and help your family get settled. Prefer to reach out first? Send a question, share a prayer request, or ask about getting involved.</p>
        <ul class="contact-list">
          <li><span class="ico" aria-hidden="true">📍</span><div><strong>Address</strong><span>2140 Cedar Hill Road, Corvallis, OR 97330</span></div></li>
          <li><span class="ico" aria-hidden="true">📞</span><div><strong>Phone</strong><span>(503) 555-0147 · Mon–Thu, 9 AM–4 PM</span></div></li>
          <li><span class="ico" aria-hidden="true">✉️</span><div><strong>Email</strong><span>hello@cedarhillfellowship.org</span></div></li>
          <li><span class="ico" aria-hidden="true">🕊️</span><div><strong>Prayer Line</strong><span>(503) 555-0199 · Available 24/7</span></div></li>
        </ul>
      </div>
      <form class="form" id="contact-form" novalidate>
        <h3>Send Us a Message</h3>
        <div class="form-row">
          <div class="field"><label for="c-name">Full name</label><input id="c-name" name="name" type="text" required autocomplete="name"></div>
          <div class="field"><label for="c-email">Email</label><input id="c-email" name="email" type="email" required autocomplete="email"></div>
        </div>
        <div class="form-row">
          <div class="field"><label for="c-phone">Phone (optional)</label><input id="c-phone" name="phone" type="tel" autocomplete="tel"></div>
          <div class="field"><label for="c-topic">I'd like to…</label>
            <select id="c-topic" name="topic">
              <option>Plan a visit</option>
              <option>Submit a prayer request</option>
              <option>Join a study group</option>
              <option>Register for youth programs</option>
              <option>Volunteer with outreach</option>
              <option>Speak with a pastor</option>
            </select>
          </div>
        </div>
        <div class="field"><label for="c-msg">Message</label><textarea id="c-msg" name="message" placeholder="Tell us a little about yourself or how we can pray for you…"></textarea></div>
        <label class="check"><input type="checkbox" name="confidential"> Please keep my prayer request confidential to the pastoral team.</label>
        <button class="btn btn-gold" type="submit">Send Message</button>
        <div class="form-success" id="form-success" role="status">Thank you! Your message has been received. A member of our team will be in touch within one business day. Grace and peace to you.</div>
      </form>
    </div>
  </section>
</main>

<footer>
  <div class="container">
    <div class="footer-grid">
      <div>
        <div class="footer-brand">
          <img src="https://placehold.co/92x92/c08a3e/14271f?text=CH&font=lora" alt="Cedar Hill Fellowship logo">
          <span>Cedar Hill Fellowship</span>
        </div>
        <p>Rooted in Grace. Growing Together. A Christ-centered community gathering for worship, scripture, prayer, and service in the heart of the Willamette Valley.</p>
        <div class="socials">
          <a href="#" aria-label="Facebook"><svg viewBox="0 0 24 24"><path d="M14 9V7c0-.8.5-1 1-1h2V2h-3c-3 0-4 2-4 4.5V9H8v4h2v9h4v-9h3l.5-4H14z"/></svg></a>
          <a href="#" aria-label="Instagram"><svg viewBox="0 0 24 24"><path d="M12 7a5 5 0 100 10 5 5 0 000-10zm0 8a3 3 0 110-6 3 3 0 010 6zm5.2-8.9a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4zM12 2c-2.7 0-3 0-4.1.1C4 2.3 2.3 4 2.1 7.9 2 9 2 9.3 2 12s0 3 .1 4.1c.2 3.9 1.9 5.6 5.8 5.8 1.1.1 1.4.1 4.1.1s3 0 4.1-.1c3.9-.2 5.6-1.9 5.8-5.8.1-1.1.1-1.4.1-4.1s0-3-.1-4.1C21.7 4 20 2.3 16.1 2.1 15 2 14.7 2 12 2zm0 2c2.6 0 2.9 0 4 .1 2.7.1 3.8 1.3 3.9 3.9.1 1 .1 1.4.1 4s0 2.9-.1 4c-.1 2.6-1.3 3.8-3.9 3.9-1 .1-1.4.1-4 .1s-2.9 0-4-.1C5.3 19.8 4.2 18.6 4.1 16 4 15 4 14.6 4 12s0-2.9.1-4C4.2 5.4 5.4 4.2 8 4.1 9 4 9.4 4 12 4z"/></svg></a>
          <a href="#" aria-label="YouTube"><svg viewBox="0 0 24 24"><path d="M23 7.2a3 3 0 00-2.1-2.1C19 4.6 12 4.6 12 4.6s-7 0-8.9.5A3 3 0 001 7.2 31 31 0 00.5 12a31 31 0 00.5 4.8 3 3 0 002.1 2.1c1.9.5 8.9.5 8.9.5s7 0 8.9-.5a3 3 0 002.1-2.1 31 31 0 00.5-4.8 31 31 0 00-.5-4.8zM9.8 15V9l5.8 3-5.8 3z"/></svg></a>
          <a href="#" aria-label="Spotify podcast"><svg viewBox="0 0 24 24"><path d="M12 2a10 10 0 100 20 10 10 0 000-20zm4.6 14.4a.6.6 0 01-.9.2c-2.4-1.5-5.4-1.8-9-1a.6.6 0 11-.3-1.2c3.9-.9 7.2-.5 9.9 1.1.3.2.4.6.3.9zm1.2-2.7a.8.8 0 01-1.1.3c-2.7-1.7-6.9-2.2-10.1-1.2a.8.8 0 11-.5-1.5c3.7-1.1 8.3-.6 11.4 1.3.4.2.5.7.3 1.1zm.1-2.8C14.7 9 9.4 8.8 6.3 9.7a1 1 0 11-.6-1.8c3.5-1.1 9.4-.9 13.1 1.3a1 1 0 01-.9 1.7z"/></svg></a>
        </div>
      </div>
      <div>
        <h4>Explore</h4>
        <ul>
          <li><a href="#faith">Our Faith</a></li>
          <li><a href="#groups">Study Groups</a></li>
          <li><a href="#youth">Youth Programs</a></li>
          <li><a href="#outreach">Outreach</a></li>
          <li><a href="#sermons">Sermons</a></li>
          <li><a href="#contact">Give Online</a></li>
        </ul>
      </div>
      <div>
        <h4>Visit</h4>
        <ul>
          <li>2140 Cedar Hill Road</li>
          <li>Corvallis, OR 97330</li>
          <li><a href="tel:+15035550147">(503) 555-0147</a></li>
          <li><a href="mailto:hello@cedarhillfellowship.org">hello@cedarhillfellowship.org</a></li>
          <li>Office: Mon–Thu, 9–4</li>
        </ul>
      </div>
      <div>
        <h4>Daily Devotional</h4>
        <p>Start each morning with a short scripture reading and reflection from our pastoral team.</p>
        <form class="newsletter" id="newsletter">
          <input type="email" placeholder="Your email" aria-label="Email address" required>
          <button class="btn btn-gold btn-sm" type="submit">Subscribe</button>
        </form>
      </div>
    </div>
    <div class="footer-bottom">
      <span>© <span id="year">2025</span> Cedar Hill Fellowship. All rights reserved. A registered 501(c)(3) nonprofit.</span>
      <nav aria-label="Legal">
        <a href="#">Privacy Policy</a>
        <a href="#">Terms of Use</a>
        <a href="#">Accessibility</a>
      </nav>
    </div>
  </div>
</footer>

<script>
  // Year
  document.getElementById('year').textContent = new Date().getFullYear();

  // Mobile nav
  const toggle = document.querySelector('.nav-toggle');
  const nav = document.getElementById('primary-nav');
  toggle.addEventListener('click', () => {
    const open = nav.classList.toggle('open');
    toggle.setAttribute('aria-expanded', open);
  });
  nav.querySelectorAll('a').forEach(a => a.addEventListener('click', () => {
    nav.classList.remove('open'); toggle.setAttribute('aria-expanded', false);
  }));

  // Group Finder
  const groups = [
    {name:"Psalms & Prayer Circle", day:"Wednesday", time:"6:00 PM", stage:"All Ages", focus:"Prayer", place:"Prayer Chapel", leader:"Pastor Ruth A.", seats:6},
    {name:"Young Adults Gospel of John", day:"Tuesday", time:"7:30 PM", stage:"Young Adults", focus:"Bible Study", place:"Bean & Leaf Café", leader:"Daniel Park", seats:4},
    {name:"Married Life Together", day:"Sunday", time:"5:00 PM", stage:"Couples", focus:"Book Study", place:"The Hendersons' Home", leader:"Mark & Lisa H.", seats:3},
    {name:"Women in the Word: Ruth", day:"Thursday", time:"9:30 AM", stage:"Women", focus:"Bible Study", place:"Room 204 · Childcare", leader:"Grace Muller", seats:8},
    {name:"Men's Breakfast & Proverbs", day:"Monday", time:"6:30 AM", stage:"Men", focus:"Bible Study", place:"Fellowship Hall", leader:"Tom Reyes", seats:10},
    {name:"Parenting with Grace", day:"Tuesday", time:"7:00 PM", stage:"Parents", focus:"Book Study", place:"Online (Zoom)", leader:"Anika Shah", seats:5},
    {name:"Restore Recovery Group", day:"Thursday", time:"7:00 PM", stage:"All Ages", focus:"Recovery", place:"Room 110", leader:"Chris Delaney", seats:7},
    {name:"Golden Years Fellowship", day:"Wednesday", time:"10:00 AM", stage:"Seniors", focus:"Bible Study", place:"Library Lounge", leader:"Harold Benson", seats:9},
    {name:"Saturday Service Crew", day:"Saturday", time:"9:00 AM", stage:"All Ages", focus:"Service", place:"Community Garden", leader:"Joy Nakamura", seats:12},
    {name:"Young Families Supper Club", day:"Sunday", time:"5:30 PM", stage:"Parents", focus:"Prayer", place:"Rotating Homes", leader:"Ben & Ivy Cole", seats:2},
  ];
  const joined = new Set();
  const listEl = document.getElementById('group-list');
  const countEl = document.getElementById('f-count');
  const fDay = document.getElementById('f-day');
  const fStage = document.getElementById('f-stage');
  const fFocus = document.getElementById('f-focus');

  function slug(s){return s.toLowerCase().replace(/[^a-z0-9]+/g,'-')}
  function render(){
    const d=fDay.value, s=fStage.value, f=fFocus.value;
    const results = groups.filter(g => (d==='all'||g.day===d)&&(s==='all'||g.stage===s)&&(f==='all'||g.focus===f));
    countEl.textContent = results.length === groups.length ? `Showing all ${groups.length} groups` : `${results.length} group${results.length!==1?'s':''} match your filters`;
    if(!results.length){
      listEl.innerHTML = `<div class="empty"><strong>No groups match those filters yet.</strong><br>Try widening your search—or <a href="#contact">tell us what you're looking for</a> and we'll help you find (or start!) the right group.</div>`;
      return;
    }
    listEl.innerHTML = results.map(g=>{
      const isJoined = joined.has(g.name);
      return `<article class="group-card${isJoined?' joined':''}">
        <div class="tags"><span class="tag gold">${g.focus}</span><span class="tag">${g.stage}</span></div>
        <h4>${g.name}</h4>
        <p class="info">🗓️ ${g.day}s · ${g.time}<br>📍 ${g.place}</p>
        <div class="leader"><img src="https://i.pravatar.cc/68?u=${slug(g.leader)}" alt="" loading="lazy"><span>Led by <strong>${g.leader}</strong></span></div>
        <div class="join-row">
          <span class="seats">${isJoined?'Request sent ✓':g.seats+' spots open'}</span>
          <button class="btn ${isJoined?'btn-outline':'btn-gold'} btn-sm" data-group="${g.name}" type="button">${isJoined?'Cancel':'Find Group'}</button>
        </div>
      </article>`;
    }).join('');
  }
  listEl.addEventListener('click', e=>{
    const btn = e.target.closest('button[data-group]');
    if(!btn) return;
    const n = btn.dataset.group;
    joined.has(n) ? joined.delete(n) : joined.add(n);
    render();
  });
  [fDay,fStage,fFocus].forEach(el=>el.addEventListener('change',render));
  document.getElementById('f-reset').addEventListener('click',()=>{fDay.value=fStage.value=fFocus.value='all';render();});
  render();

  // Accordion
  document.querySelectorAll('.accordion-btn').forEach(btn=>{
    btn.addEventListener('click',()=>{
      const panel = document.getElementById(btn.getAttribute('aria-controls'));
      const open = btn.getAttribute('aria-expanded')==='true';
      document.querySelectorAll('.accordion-btn').forEach(b=>{
        b.setAttribute('aria-expanded','false');
        document.getElementById(b.getAttribute('aria-controls')).style.maxHeight=null;
      });
      if(!open){btn.setAttribute('aria-expanded','true');panel.style.maxHeight=panel.scrollHeight+'px';}
    });
  });

  // Contact form
  document.getElementById('contact-form').addEventListener('submit',e=>{
    e.preventDefault();
    const f=e.target, name=f.name.value.trim(), email=f.email.value.trim();
    if(!name||!/^\S+@\S+\.\S+$/.test(email)){
      (!name?f.name:f.email).focus();
      (!name?f.name:f.email).style.borderColor='#b5462f';
      return;
    }
    f.querySelectorAll('input,select,textarea').forEach(i=>i.style.borderColor='');
    document.getElementById('form-success').style.display='block';
    f.reset();
  });

  // Newsletter
  document.getElementById('newsletter').addEventListener('submit',e=>{
    e.preventDefault();
    const input=e.target.querySelector('input');
    if(!input.value.includes('@')){input.focus();return;}
    e.target.innerHTML='<p style="margin:0;color:#e8d2ac">✓ Subscribed! Watch for tomorrow\'s devotional.</p>';
  });

  // Sermon play placeholder
  document.getElementById('play-btn').addEventListener('click',function(){
    this.style.display='none';
    const note=document.createElement('div');
    note.style.cssText='position:absolute;inset:0;display:grid;place-items:center;background:rgba(20,39,31,.75);color:#fff;font-family:Lora,serif;font-size:1.2rem;text-align:center;padding:20px';
    note.textContent='Now playing: "When the Night Is Long" — Psalm 42';
    this.parentElement.appendChild(note);
  });
</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:51:53.561Z",
  "url": "https://benchmark.aimac.invalid/6a22aeab50249a1b470d72e65088d8c92fbef86d285eb2d3d627f52b41ea85cc.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-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-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-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": "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": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": []
    },
    {
      "id": "server-side-image-map",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "nodes": []
    },
    {
      "id": "summary-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "svg-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "td-headers-attr",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "th-has-data-cells",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "nodes": []
    },
    {
      "id": "valid-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "nodes": []
    },
    {
      "id": "video-caption",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "nodes": []
    },
    {
      "id": "no-autoplay-audio",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "nodes": []
    }
  ],
  "passes": [
    {
      "id": "aria-allowed-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure an element's role supports its ARIA attributes",
      "help": "Elements must only use supported ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-allowed-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attributes are used correctly for the defined role"
            }
          ],
          "none": [
            {
              "id": "aria-unsupported-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute is supported"
            }
          ],
          "impact": null,
          "html": "<a href=\"#top\" class=\"brand\" aria-label=\"Cedar Hill Fellowship home\">",
          "target": [
            ".brand"
          ]
        }
      ]
    },
    {
      "id": "aria-conditional-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
      "help": "ARIA attributes must be used as specified for the element's role",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-conditional-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#top\" class=\"brand\" aria-label=\"Cedar Hill Fellowship home\">",
          "target": [
            ".brand"
          ]
        }
      ]
    },
    {
      "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": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "deprecatedrole",
              "data": null,
              "relatedNodes": [],
              "impact": "minor",
              "message": "ARIA role is not deprecated"
            }
          ],
          "impact": null,
          "html": "<div class=\"hero-bg\" role=\"img\" aria-label=\"Morning light over a forested hillside\"></div>",
          "target": [
            ".hero-bg"
          ]
        }
      ]
    },
    {
      "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-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": [
        {
          "any": [],
          "all": [
            {
              "id": "focusable-modal-open",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "No focusable elements while a modal is open"
            },
            {
              "id": "focusable-disabled",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "No focusable elements contained within element"
            },
            {
              "id": "focusable-not-tabbable",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "No focusable elements contained within element"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<div class=\"icon\" aria-hidden=\"true\">\ud83d\udcd6</div>",
          "target": [
            ".belief:nth-child(1) > .icon[aria-hidden=\"true\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-prohibited-attr",
      "impact": "serious",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "impact": null,
          "html": "<a href=\"#top\" class=\"brand\" aria-label=\"Cedar Hill Fellowship home\">",
          "target": [
            ".brand"
          ]
        }
      ]
    },
    {
      "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": [
        {
          "any": [
            {
              "id": "aria-required-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "All required ARIA attributes are present"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div class=\"hero-bg\" role=\"img\" aria-label=\"Morning light over a forested hillside\"></div>",
          "target": [
            ".hero-bg"
          ]
        }
      ]
    },
    {
      "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": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "invalidrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA role is valid"
            },
            {
              "id": "abstractrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Abstract roles are not used"
            },
            {
              "id": "unsupportedrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA role is supported"
            }
          ],
          "impact": null,
          "html": "<div class=\"hero-bg\" role=\"img\" aria-label=\"Morning light over a forested hillside\"></div>",
          "target": [
            ".hero-bg"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr-value",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all ARIA attributes have valid values",
      "help": "ARIA attributes must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-valid-attr-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute values are valid"
            },
            {
              "id": "aria-errormessage",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
            },
            {
              "id": "aria-level",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-level values are valid"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<a href=\"#top\" class=\"brand\" aria-label=\"Cedar Hill Fellowship home\">",
          "target": [
            ".brand"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
      "help": "ARIA attributes must conform to valid names",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-valid-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute name is valid"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#top\" class=\"brand\" aria-label=\"Cedar Hill Fellowship home\">",
          "target": [
            ".brand"
          ]
        }
      ]
    },
    {
      "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": [
        {
          "any": [],
          "all": [
            {
              "id": "autocomplete-valid",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "the autocomplete attribute is correctly formatted"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<input id=\"c-name\" name=\"name\" type=\"text\" required=\"\" autocomplete=\"name\">",
          "target": [
            "#c-name"
          ]
        }
      ]
    },
    {
      "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": "<strong style=\"color:var(--cedar-deep)\">Your child's safety is sacred to us.</strong>",
          "target": [
            "p > strong"
          ]
        }
      ]
    },
    {
      "id": "button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure buttons have discernible text",
      "help": "Buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has inner text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button class=\"btn btn-outline btn-sm\" id=\"f-reset\" type=\"button\">Reset</button>",
          "target": [
            "#f-reset"
          ]
        }
      ]
    },
    {
      "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>A place to belong, believe, and <em>become</em>.</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h4>Traditional Worship</h4>",
                  "target": [
                    ".strip-item:nth-child(1) > h4"
                  ]
                },
                {
                  "html": "<h4>Contemporary Worship</h4>",
                  "target": [
                    ".strip-item:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Midweek Prayer</h4>",
                  "target": [
                    ".strip-item:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Online Devotional</h4>",
                  "target": [
                    ".strip-item:nth-child(4) > h4"
                  ]
                },
                {
                  "html": "<h2>Ancient truth, lived out in an everyday kind of way.</h2>",
                  "target": [
                    ".faith-grid > div:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h3>Scripture</h3>",
                  "target": [
                    ".belief:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Grace</h3>",
                  "target": [
                    ".belief:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>Prayer</h3>",
                  "target": [
                    ".belief:nth-child(3) > h3"
                  ]
                },
                {
                  "html": "<h3>Fellowship</h3>",
                  "target": [
                    ".belief:nth-child(4) > h3"
                  ]
                },
                {
                  "html": "<h2>Church gets smaller, so it can feel bigger.</h2>",
                  "target": [
                    ".groups-intro > div:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h3 id=\"finder-title\">Group Finder</h3>",
                  "target": [
                    "#finder-title"
                  ]
                },
                {
                  "html": "<h4>Psalms &amp; Prayer Circle</h4>",
                  "target": [
                    ".group-card:nth-child(1) > h4"
                  ]
                },
                {
                  "html": "<h4>Young Adults Gospel of John</h4>",
                  "target": [
                    ".group-card:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Married Life Together</h4>",
                  "target": [
                    ".group-card:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Women in the Word: Ruth</h4>",
                  "target": [
                    ".group-card:nth-child(4) > h4"
                  ]
                },
                {
                  "html": "<h4>Men's Breakfast &amp; Proverbs</h4>",
                  "target": [
                    ".group-card:nth-child(5) > h4"
                  ]
                },
                {
                  "html": "<h4>Parenting with Grace</h4>",
                  "target": [
                    ".group-card:nth-child(6) > h4"
                  ]
                },
                {
                  "html": "<h4>Restore Recovery Group</h4>",
                  "target": [
                    ".group-card:nth-child(7) > h4"
                  ]
                },
                {
                  "html": "<h4>Golden Years Fellowship</h4>",
                  "target": [
                    ".group-card:nth-child(8) > h4"
                  ]
                },
                {
                  "html": "<h4>Saturday Service Crew</h4>",
                  "target": [
                    ".group-card:nth-child(9) > h4"
                  ]
                },
                {
                  "html": "<h4>Young Families Supper Club</h4>",
                  "target": [
                    ".group-card:nth-child(10) > h4"
                  ]
                },
                {
                  "html": "<h3>\u2726 Verse of the Week</h3>",
                  "target": [
                    ".verse-card > h3"
                  ]
                },
                {
                  "html": "<h3>\ud83d\uddd3\ufe0f This Week at Cedar Hill</h3>",
                  "target": [
                    ".side-card:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>\ud83d\udce3 Ministry Updates</h3>",
                  "target": [
                    ".side-card:nth-child(3) > h3"
                  ]
                },
                {
                  "html": "<h2>Raising a generation that knows they're loved.</h2>",
                  "target": [
                    "#youth > .container > .center.section-head > h2"
                  ]
                },
                {
                  "html": "<h3>Cedar Kids</h3>",
                  "target": [
                    ".youth-card:nth-child(1) > .youth-body > h3"
                  ]
                },
                {
                  "html": "<h3>The Grove</h3>",
                  "target": [
                    ".youth-card:nth-child(2) > .youth-body > h3"
                  ]
                },
                {
                  "html": "<h3>Rooted Students</h3>",
                  "target": [
                    ".youth-card:nth-child(3) > .youth-body > h3"
                  ]
                },
                {
                  "html": "<h2>Faith that rolls up its sleeves.</h2>",
                  "target": [
                    ".outreach-grid > div:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h3>Open Table Pantry</h3>",
                  "target": [
                    ".ministry:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Care &amp; Visitation</h3>",
                  "target": [
                    ".ministry:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>Global Partners</h3>",
                  "target": [
                    ".ministry:nth-child(3) > h3"
                  ]
                },
                {
                  "html": "<h2 id=\"stories-title\">What God is doing among us</h2>",
                  "target": [
                    "#stories-title"
                  ]
                },
                {
                  "html": "<h2>Hear the Word, wherever you are.</h2>",
                  "target": [
                    "#sermons > .container > .section-head > h2"
                  ]
                },
                {
                  "html": "<h3 style=\"font-size:1.7rem\">\"When the Night Is Long\" \u2014 Psalm 42</h3>",
                  "target": [
                    ".sermon-info > h3"
                  ]
                },
                {
                  "html": "<h2>Questions newcomers often ask</h2>",
                  "target": [
                    ".faq-wrap > div:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h2>We'd love to welcome you this Sunday.</h2>",
                  "target": [
                    ".contact-grid > div > h2"
                  ]
                },
                {
                  "html": "<h3>Send Us a Message</h3>",
                  "target": [
                    "#contact-form > h3"
                  ]
                },
                {
                  "html": "<h4>Explore</h4>",
                  "target": [
                    ".footer-grid > div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Visit</h4>",
                  "target": [
                    ".footer-grid > div:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Daily Devotional</h4>",
                  "target": [
                    ".footer-grid > div:nth-child(4) > h4"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            },
            {
              "id": "landmark",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<main id=\"top\">",
                  "target": [
                    "#top"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a landmark region"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#d8e0dc",
                "bgColor": "#14271f",
                "contrastRatio": 11.65,
                "fontSize": "10.6pt (14.08px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 11.65"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<span>Sunday Worship: <strong>8:30 &amp; 10:45 AM</strong> \u00b7 Wednesday Prayer: <strong>7:00 PM</strong></span>",
          "target": [
            ".topbar > .container > 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": "primary-nav",
              "relatedNodes": [],
              "impact": "critical",
              "message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<nav class=\"primary\" id=\"primary-nav\" aria-label=\"Primary\">",
          "target": [
            "#primary-nav"
          ]
        }
      ]
    },
    {
      "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=\"f-day\">Meeting Day</label>",
                  "target": [
                    "label[for=\"f-day\"]"
                  ]
                }
              ],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<select id=\"f-day\">\n                <option value=\"all\">Any day</option>\n                <option>Sunday</option><option>Monday</option><option>Tuesday</option>\n                <option>Wednesday</option><option>Thursday</option><option>Saturday</option>\n              </select>",
          "target": [
            "#f-day"
          ]
        }
      ]
    },
    {
      "id": "html-has-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "The <html> element has a lang attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "html-lang-valid",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages"
            }
          ],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "TT7.b",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <img> elements have alternative text or a role of none or presentation",
      "help": "Images must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has an alt attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "alt-space-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a valid alt attribute value"
            }
          ],
          "impact": null,
          "html": "<img src=\"https://placehold.co/104x104/1f3a33/e8d2ac?text=CH&amp;font=lora\" alt=\"Cedar Hill Fellowship logo\">",
          "target": [
            ".brand > img[alt=\"Cedar Hill Fellowship logo\"]"
          ]
        }
      ]
    },
    {
      "id": "label",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "explicit-label",
              "data": {
                "explicitLabel": "Full name"
              },
              "relatedNodes": [
                {
                  "html": "<label for=\"c-name\">Full name</label>",
                  "target": [
                    "label[for=\"c-name\"]"
                  ]
                }
              ],
              "impact": "critical",
              "message": "Element has an explicit <label>"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<input id=\"c-name\" name=\"name\" type=\"text\" required=\"\" autocomplete=\"name\">",
          "target": [
            "#c-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": "<article class=\"ministry\">\n          <h3>Open Table Pantry</h3>\n          <p>Open every Tuesday and Saturday, our client-choice pantry provides groceries, hygiene supplies, and a listening ear to over 200 families each week.</p>\n          <a href=\"#contact\">Volunteer a shift \u2192</a>\n        </article>",
                  "target": [
                    ".ministry:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#contact\">Volunteer a shift \u2192</a>",
          "target": [
            ".ministry:nth-child(1) > a[href$=\"#contact\"]"
          ]
        }
      ]
    },
    {
      "id": "link-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "focusable-no-name",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element is not in tab order or has accessible text"
            }
          ],
          "impact": null,
          "html": "<a href=\"tel:+15035550147\">(503) 555-0147</a>",
          "target": [
            ".hide-sm > a[href=\"tel:+15035550147\"]"
          ]
        }
      ]
    },
    {
      "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": [
            "#primary-nav > ul"
          ]
        }
      ]
    },
    {
      "id": "listitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "listitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List item has a <ul>, <ol> or role=\"list\" parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<li><a href=\"#faith\">Our Faith</a></li>",
          "target": [
            "#primary-nav > ul > li:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "meta-viewport",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "meta-viewport",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "<meta> tag does not disable zooming on mobile devices"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
          "target": [
            "meta[name=\"viewport\"]"
          ]
        }
      ]
    },
    {
      "id": "nested-interactive",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "no-focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element does not have focusable descendants"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<img src=\"https://placehold.co/104x104/1f3a33/e8d2ac?text=CH&amp;font=lora\" alt=\"Cedar Hill Fellowship logo\">",
          "target": [
            ".brand > img[alt=\"Cedar Hill Fellowship logo\"]"
          ]
        }
      ]
    },
    {
      "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": [
        {
          "any": [
            {
              "id": "aria-label",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "aria-label attribute exists and is not empty"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div class=\"hero-bg\" role=\"img\" aria-label=\"Morning light over a forested hillside\"></div>",
          "target": [
            ".hero-bg"
          ]
        }
      ]
    },
    {
      "id": "select-name",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "explicit-label",
              "data": {
                "explicitLabel": "Meeting Day"
              },
              "relatedNodes": [
                {
                  "html": "<label for=\"f-day\">Meeting Day</label>",
                  "target": [
                    "label[for=\"f-day\"]"
                  ]
                }
              ],
              "impact": "critical",
              "message": "Element has an explicit <label>"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<select id=\"f-day\">\n                <option value=\"all\">Any day</option>\n                <option>Sunday</option><option>Monday</option><option>Tuesday</option>\n                <option>Wednesday</option><option>Thursday</option><option>Saturday</option>\n              </select>",
          "target": [
            "#f-day"
          ]
        }
      ]
    },
    {
      "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": 285.8,
                "height": 52
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Control has sufficient size (285.8px by 52px, should be at least 24px by 24px)"
            },
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 24,
                "minOffset": 24
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#top\" class=\"brand\" aria-label=\"Cedar Hill Fellowship home\">",
          "target": [
            ".brand"
          ]
        }
      ]
    }
  ],
  "incomplete": [
    {
      "id": "aria-prohibited-attr",
      "impact": "serious",
      "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": {
                "role": null,
                "nodeName": "div",
                "messageKey": "noRoleSingular",
                "prohibited": [
                  "aria-labelledby"
                ]
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "aria-labelledby attribute is not well supported on a div with no valid role attribute."
            }
          ],
          "impact": "serious",
          "html": "<div class=\"finder\" aria-labelledby=\"finder-title\">",
          "target": [
            ".finder"
          ],
          "failureSummary": "Fix all of the following:\n  aria-labelledby attribute is not well supported on a div with no valid role attribute."
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": "pseudoContent",
                "expectedContrastRatio": "4.5:1"
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"hero\" aria-label=\"Welcome\">",
                  "target": [
                    ".hero"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element's background color could not be determined due to a pseudo element"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Welcome Home</span>",
          "target": [
            ".container > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined due to a pseudo element"
        }
      ]
    }
  ],
  "violations": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.6pt (15.52px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#contact\" class=\"btn btn-gold btn-sm\">Plan a Visit</a>",
                  "target": [
                    ".btn-gold.btn-sm[href$=\"#contact\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.6pt (15.52px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#contact\" class=\"btn btn-gold btn-sm\">Plan a Visit</a>",
          "target": [
            ".btn-gold.btn-sm[href$=\"#contact\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.6pt (15.52px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#f7f2ea",
                "contrastRatio": 2.71,
                "fontSize": "18.0pt (24px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"service-strip\" aria-label=\"Weekly gatherings\">",
                  "target": [
                    ".service-strip"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 18.0pt (24px), font weight: bold). Expected contrast ratio of 3:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"time\">8:30 AM</div>",
          "target": [
            ".strip-item:nth-child(1) > .time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 18.0pt (24px), font weight: bold). Expected contrast ratio of 3:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#f7f2ea",
                "contrastRatio": 2.71,
                "fontSize": "18.0pt (24px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"service-strip\" aria-label=\"Weekly gatherings\">",
                  "target": [
                    ".service-strip"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 18.0pt (24px), font weight: bold). Expected contrast ratio of 3:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"time\">10:45 AM</div>",
          "target": [
            ".strip-item:nth-child(2) > .time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 18.0pt (24px), font weight: bold). Expected contrast ratio of 3:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#f7f2ea",
                "contrastRatio": 2.71,
                "fontSize": "18.0pt (24px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"service-strip\" aria-label=\"Weekly gatherings\">",
                  "target": [
                    ".service-strip"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 18.0pt (24px), font weight: bold). Expected contrast ratio of 3:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"time\">Wed 7 PM</div>",
          "target": [
            ".strip-item:nth-child(3) > .time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 18.0pt (24px), font weight: bold). Expected contrast ratio of 3:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#f7f2ea",
                "contrastRatio": 2.71,
                "fontSize": "18.0pt (24px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"service-strip\" aria-label=\"Weekly gatherings\">",
                  "target": [
                    ".service-strip"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 18.0pt (24px), font weight: bold). Expected contrast ratio of 3:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<div class=\"time\">Daily</div>",
          "target": [
            ".strip-item:nth-child(4) > .time"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 18.0pt (24px), font weight: bold). Expected contrast ratio of 3:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#fffdf9",
                "contrastRatio": 2.97,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.97 (foreground color: #c08a3e, background color: #fffdf9, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Our Faith</span>",
          "target": [
            ".faith-grid > div:nth-child(1) > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.97 (foreground color: #c08a3e, background color: #fffdf9, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#contact\" class=\"btn btn-gold\">Meet Our Pastors</a>",
                  "target": [
                    ".faith-grid > div:nth-child(1) > .hero-ctas > .btn-gold.btn[href$=\"#contact\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#contact\" class=\"btn btn-gold\">Meet Our Pastors</a>",
          "target": [
            ".faith-grid > div:nth-child(1) > .hero-ctas > .btn-gold.btn[href$=\"#contact\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#f7f2ea",
                "contrastRatio": 2.71,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"section groups\" id=\"groups\">",
                  "target": [
                    "#groups"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Study Groups</span>",
          "target": [
            ".groups-intro > div:nth-child(1) > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Psalms &amp; Prayer Circle\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Psalms & Prayer Circle\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Psalms &amp; Prayer Circle\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Psalms & Prayer Circle\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Young Adults Gospel of John\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Young Adults Gospel of John\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Young Adults Gospel of John\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Young Adults Gospel of John\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Married Life Together\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Married Life Together\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Married Life Together\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Married Life Together\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Women in the Word: Ruth\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Women in the Word: Ruth\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Women in the Word: Ruth\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Women in the Word: Ruth\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Men's Breakfast &amp; Proverbs\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Men's Breakfast & Proverbs\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Men's Breakfast &amp; Proverbs\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Men's Breakfast & Proverbs\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Parenting with Grace\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Parenting with Grace\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Parenting with Grace\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Parenting with Grace\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Restore Recovery Group\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Restore Recovery Group\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Restore Recovery Group\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Restore Recovery Group\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Golden Years Fellowship\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Golden Years Fellowship\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Golden Years Fellowship\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Golden Years Fellowship\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Saturday Service Crew\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Saturday Service Crew\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Saturday Service Crew\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Saturday Service Crew\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Young Families Supper Club\" type=\"button\">Find Group</button>",
                  "target": [
                    "button[data-group=\"Young Families Supper Club\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" data-group=\"Young Families Supper Club\" type=\"button\">Find Group</button>",
          "target": [
            "button[data-group=\"Young Families Supper Club\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.02,
                "fontSize": "9.1pt (12.16px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-card\">",
                  "target": [
                    ".side-card:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.1pt (12.16px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<small>Oct 12</small>",
          "target": [
            "li:nth-child(1) > small"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.1pt (12.16px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.02,
                "fontSize": "9.1pt (12.16px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-card\">",
                  "target": [
                    ".side-card:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.1pt (12.16px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<small>Oct 20</small>",
          "target": [
            "li:nth-child(2) > small"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.1pt (12.16px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.02,
                "fontSize": "9.1pt (12.16px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-card\">",
                  "target": [
                    ".side-card:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.1pt (12.16px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<small>Nov 2</small>",
          "target": [
            "li:nth-child(3) > small"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.1pt (12.16px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.02,
                "fontSize": "9.1pt (12.16px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-card\">",
                  "target": [
                    ".side-card:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.1pt (12.16px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<small>Nov 16</small>",
          "target": [
            "li:nth-child(4) > small"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.1pt (12.16px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#fffdf9",
                "contrastRatio": 2.97,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.97 (foreground color: #c08a3e, background color: #fffdf9, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Youth Programs</span>",
          "target": [
            "#youth > .container > .center.section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.97 (foreground color: #c08a3e, background color: #fffdf9, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.02,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"youth-card\">",
                  "target": [
                    ".youth-card:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"age\">Birth \u2013 5th Grade</span>",
          "target": [
            ".youth-card:nth-child(1) > .youth-body > .age"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.02,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"youth-card\">",
                  "target": [
                    ".youth-card:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"age\">6th \u2013 8th Grade</span>",
          "target": [
            ".youth-card:nth-child(2) > .youth-body > .age"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.02,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"youth-card\">",
                  "target": [
                    ".youth-card:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"age\">9th \u2013 12th Grade</span>",
          "target": [
            ".youth-card:nth-child(3) > .youth-body > .age"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#1f3a33",
                "contrastRatio": 4.05,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"section outreach\" id=\"outreach\">",
                  "target": [
                    "#outreach"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.05 (foreground color: #c08a3e, background color: #1f3a33, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Outreach Ministry</span>",
          "target": [
            ".outreach-grid > div:nth-child(1) > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.05 (foreground color: #c08a3e, background color: #1f3a33, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#contact\" class=\"btn btn-gold\">Get Involved</a>",
                  "target": [
                    ".outreach-grid > div:nth-child(1) > .hero-ctas > .btn-gold.btn[href$=\"#contact\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#contact\" class=\"btn btn-gold\">Get Involved</a>",
          "target": [
            ".outreach-grid > div:nth-child(1) > .hero-ctas > .btn-gold.btn[href$=\"#contact\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#fffdf9",
                "contrastRatio": 2.97,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.97 (foreground color: #c08a3e, background color: #fffdf9, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Stories of Grace</span>",
          "target": [
            "section[aria-labelledby=\"stories-title\"] > .container > .center.section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.97 (foreground color: #c08a3e, background color: #fffdf9, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#f7f2ea",
                "contrastRatio": 2.71,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"section sermon\" id=\"sermons\">",
                  "target": [
                    "#sermons"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Latest Message</span>",
          "target": [
            "#sermons > .container > .section-head > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.71 (foreground color: #c08a3e, background color: #f7f2ea, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.02,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"sermon-feature\">",
                  "target": [
                    ".sermon-feature"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">Psalms for the Weary \u00b7 Week 3</span>",
          "target": [
            ".sermon-info > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #c08a3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<a href=\"#sermons\" class=\"btn btn-gold btn-sm\">Watch Sermon</a>",
                  "target": [
                    ".btn-gold.btn-sm[href$=\"#sermons\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#sermons\" class=\"btn btn-gold btn-sm\">Watch Sermon</a>",
          "target": [
            ".btn-gold.btn-sm[href$=\"#sermons\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c08a3e",
                "bgColor": "#fffdf9",
                "contrastRatio": 2.97,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "bold",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.97 (foreground color: #c08a3e, background color: #fffdf9, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"eyebrow\">First Time?</span>",
          "target": [
            ".faq-wrap > div:nth-child(1) > .eyebrow"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.97 (foreground color: #c08a3e, background color: #fffdf9, font size: 9.6pt (12.8px), font weight: bold). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold\" type=\"submit\">Send Message</button>",
                  "target": [
                    "#contact-form > .btn-gold[type=\"submit\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold\" type=\"submit\">Send Message</button>",
          "target": [
            "#contact-form > .btn-gold[type=\"submit\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#c08a3e",
                "contrastRatio": 3.02,
                "fontSize": "11.0pt (14.72px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<button class=\"btn btn-gold btn-sm\" type=\"submit\">Subscribe</button>",
                  "target": [
                    ".btn-gold.btn-sm[type=\"submit\"]"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<button class=\"btn btn-gold btn-sm\" type=\"submit\">Subscribe</button>",
          "target": [
            ".btn-gold.btn-sm[type=\"submit\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.02 (foreground color: #ffffff, background color: #c08a3e, font size: 11.0pt (14.72px), font weight: normal). Expected contrast ratio of 4.5:1"
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 10559
      },
      {
        "y": 576,
        "height": 10559
      },
      {
        "y": 1152,
        "height": 10559
      },
      {
        "y": 1728,
        "height": 10559
      },
      {
        "y": 2304,
        "height": 10559
      },
      {
        "y": 2880,
        "height": 10559
      },
      {
        "y": 3456,
        "height": 10559
      },
      {
        "y": 4032,
        "height": 10559
      },
      {
        "y": 4608,
        "height": 10559
      },
      {
        "y": 5184,
        "height": 10559
      },
      {
        "y": 5760,
        "height": 10786
      },
      {
        "y": 6336,
        "height": 10786
      },
      {
        "y": 6912,
        "height": 10786
      },
      {
        "y": 7488,
        "height": 10786
      },
      {
        "y": 8064,
        "height": 10786
      },
      {
        "y": 8640,
        "height": 10786
      },
      {
        "y": 9216,
        "height": 10786
      },
      {
        "y": 9792,
        "height": 10786
      },
      {
        "y": 10066,
        "height": 10786
      }
    ],
    "scans": 20,
    "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 "Religion and Spirituality" 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: "Religion and Spirituality"
- Description: Religious organizations, spiritual resources, faith communities, and worship services.

**Your Creative Task:**
1.  **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Religion and Spirituality" 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: "Our Faith", "Contact", "Outreach".
-   **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
    -   Address key topics relevant to the "Religion and Spirituality" category. Consider themes similar to: "Study Groups", "Youth Programs", "Outreach Ministry".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "scripture", "prayer", "fellowship".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Find Group", "Learn More", "Get Involved".
-   **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Religion and Spirituality" sector. Ideas similar but not limited to: "group finder".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "inspirational messages", "ministry updates", "service schedule".
-   **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.