Thinking Machines Inkling – Religion and Spirituality

via Together · Generated

  • AIMAC Debt 4.85
  • Cost $0.04
  • Total Violations 20
  • HTML Size 30 KB
  • Em Dashes 9

Screenshot

View Thinking Machines Inkling Religion and Spirituality page View Live Page

Accessibility Issues Found

20 Serious

  • color-contrast serious 20 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <span>A Community of Faith &amp; Light</span>

Artifacts

View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Sanctus Luminis | A Community of Faith & Light</title>
  <meta name="description" content="Sanctus Luminis is a modern faith community dedicated to spiritual formation, worship, and compassionate outreach. Join our congregation." />

  <!-- Google Fonts -->
  <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=Cormorant+Garamond:ital,wght@0,300;0,600;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,600&display=swap" rel="stylesheet" />

  <!-- Font Awesome -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />

  <style>
    :root {
      --ink: #0f172a;
      --parchment: #f5f0e6;
      --gold: #c5a065;
      --gold-deep: #a07d3e;
      --stone: #e2dac8;
      --fog: #f0ede8;
      --text-body: #334155;
      --text-muted: #64748b;
      --shadow: 0 20px 50px rgba(15, 23, 42, 0.08);
      --shadow-hover: 0 30px 70px rgba(15, 23, 42, 0.12);
    }

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

    html { scroll-behavior: smooth; }

    body {
      font-family: 'DM Sans', system-ui, sans-serif;
      background-color: var(--parchment);
      color: var(--text-body);
      line-height: 1.7;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    /* Typography Scale */
    h1, h2, h3, h4 {
      font-family: 'Cormorant Garamond', Georgia, serif;
      font-weight: 300;
      color: var(--ink);
      line-height: 1.15;
      letter-spacing: -0.02em;
    }

    h1 { font-size: clamp(3rem, 5.5vw, 5.5rem); }
    h2 { font-size: clamp(2.2rem, 3.8vw, 3.2rem); margin-bottom: 0.75em; }
    h3 { font-size: 1.6rem; font-weight: 600; margin-bottom: 0.5em; }
    h4 { font-size: 1.15rem; font-weight: 600; margin-bottom: 0.6em; }

    p { margin-bottom: 1.2em; color: var(--text-body); }

    a { color: var(--gold-deep); text-decoration: none; transition: color 0.2s ease; }
    a:hover { color: var(--ink); text-decoration: underline; }

    img { display: block; max-width: 100%; height: auto; border-radius: 4px; }

    /* Utilities */
    .container {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 2rem;
    }

    /* Header / Navigation */
    header {
      position: sticky;
      top: 0;
      z-index: 100;
      background: rgba(245, 240, 230, 0.92);
      backdrop-filter: blur(16px) saturate(1.2);
      -webkit-backdrop-filter: blur(16px) saturate(1.2);
      border-bottom: 1px solid rgba(15, 23, 42, 0.05);
    }

    .nav-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      height: 90px;
    }

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

    .logo-group img {
      width: 48px;
      height: 48px;
      border-radius: 50%;
      object-fit: cover;
      border: 2px solid var(--gold);
      box-shadow: 0 4px 10px rgba(197, 160, 101, 0.2);
    }

    .brand-text h1 {
      font-size: 1.35rem;
      margin: 0 0 2px 0;
      letter-spacing: 0.02em;
      color: var(--ink);
    }

    .brand-text span {
      font-family: 'DM Sans', sans-serif;
      font-size: 0.8rem;
      text-transform: uppercase;
      letter-spacing: 0.15em;
      color: var(--gold-deep);
      font-weight: 600;
    }

    nav ul {
      list-style: none;
      display: flex;
      gap: 2.2rem;
      align-items: center;
    }

    nav ul li a {
      font-family: 'DM Sans', sans-serif;
      font-size: 0.85rem;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      font-weight: 600;
      color: var(--ink);
      position: relative;
      text-decoration: none;
    }

    nav ul li a::after {
      content: '';
      position: absolute;
      bottom: -4px;
      left: 0;
      width: 0%;
      height: 2px;
      background: var(--gold);
      transition: width 0.3s ease;
    }

    nav ul li a:hover::after { width: 100%; }

    /* Hero Section */
    .hero {
      position: relative;
      min-height: 80vh;
      display: flex;
      align-items: center;
      overflow: hidden;
      color: white;
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      z-index: 0;
    }

    .hero-bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: brightness(0.35) contrast(1.1);
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom, rgba(15,23,42,0.2), rgba(15,23,42,0.7));
    }

    .hero-content {
      position: relative;
      z-index: 2;
      max-width: 1200px;
      width: 100%;
      padding: 0 2rem;
      margin: 0 auto;
    }

    .hero-content .tagline {
      display: inline-block;
      font-family: 'DM Sans', sans-serif;
      text-transform: uppercase;
      letter-spacing: 0.2em;
      font-size: 0.9rem;
      color: var(--gold);
      margin-bottom: 1.5rem;
      border-left: 2px solid var(--gold);
      padding-left: 1rem;
    }

    .hero h2 {
      color: white;
      max-width: 800px;
      margin-bottom: 1.5rem;
      text-shadow: 0 10px 40px rgba(0,0,0,0.4);
    }

    .hero p {
      font-size: 1.2rem;
      max-width: 600px;
      color: rgba(255,255,255,0.85);
      margin-bottom: 2.5rem;
      font-weight: 300;
    }

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

    .btn {
      display: inline-flex;
      align-items: center;
      gap: 0.6rem;
      padding: 1rem 2rem;
      border-radius: 2px;
      font-family: 'DM Sans', sans-serif;
      font-size: 0.85rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      text-decoration: none;
      transition: all 0.3s ease;
      cursor: pointer;
      border: none;
    }

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

    .btn-primary:hover {
      background: white;
      color: var(--ink);
      box-shadow: 0 10px 30px rgba(197, 160, 101, 0.4);
      text-decoration: none;
    }

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

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

    /* Main Layout */
    .main-wrapper {
      display: grid;
      grid-template-columns: 1fr 380px;
      gap: 4rem;
      padding: 6rem 0;
    }

    @media (max-width: 1024px) {
      .main-wrapper {
        grid-template-columns: 1fr;
        gap: 4rem;
      }
      .sidebar { order: 2; }
      .content-col { order: 1; }
    }

    /* Sections */
    section { padding: 6rem 0; }
    section:not(.content-section) { background: var(--fog); border-top: 1px solid rgba(15,23,42,0.05); }

    .section-header {
      margin-bottom: 3rem;
    }

    .section-header p.subtitle {
      font-family: 'Cormorant Garamond', serif;
      font-style: italic;
      font-size: 1.3rem;
      color: var(--gold-deep);
      margin-bottom: 0.5rem;
    }

    /* Content Cards / Grid */
    .feature-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 2rem;
      margin-top: 3rem;
    }

    .feature-card {
      background: white;
      padding: 2.5rem;
      border-radius: 4px;
      box-shadow: var(--shadow);
      border-top: 3px solid var(--gold);
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      position: relative;
      overflow: hidden;
    }

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

    .feature-card img {
      width: 100%;
      height: 200px;
      object-fit: cover;
      border-radius: 2px;
      margin-bottom: 1.5rem;
      filter: grayscale(20%) contrast(1.05);
    }

    .feature-card i {
      font-size: 1.5rem;
      color: var(--gold-deep);
      margin-bottom: 1rem;
    }

    /* Sidebar */
    .sidebar {
      padding-top: 2rem;
    }

    .side-block {
      background: white;
      padding: 2.5rem;
      margin-bottom: 2.5rem;
      border-radius: 4px;
      box-shadow: var(--shadow);
      border-top: 3px solid var(--gold);
    }

    .side-block h3 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.5rem;
      margin-bottom: 1.5rem;
      color: var(--ink);
    }

    .side-list {
      list-style: none;
      padding: 0;
    }

    .side-list li {
      padding: 1rem 0;
      border-bottom: 1px solid var(--fog);
    }

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

    .side-list .date {
      display: block;
      font-family: 'DM Sans', sans-serif;
      font-size: 0.75rem;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      color: var(--gold-deep);
      font-weight: 600;
      margin-bottom: 0.2rem;
    }

    .side-list a {
      font-weight: 600;
      color: var(--ink);
      text-decoration: none;
    }

    /* Testimonial Card */
    .testimonial {
      background: var(--ink);
      color: white;
      padding: 6rem 0;
    }

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

    @media (max-width: 900px) {
      .testimonial-inner { grid-template-columns: 1fr; }
    }

    .quote-text {
      font-family: 'Cormorant Garamond', serif;
      font-size: 2rem;
      font-weight: 300;
      line-height: 1.3;
      font-style: italic;
      color: white;
      border-left: 3px solid var(--gold);
      padding-left: 2rem;
    }

    .quote-text span {
      display: block;
      margin-top: 1.5rem;
      font-family: 'DM Sans', sans-serif;
      font-size: 0.9rem;
      font-style: normal;
      text-transform: uppercase;
      letter-spacing: 0.15em;
      color: var(--gold);
      font-weight: 600;
    }

    .quote-img img {
      width: 100%;
      height: 450px;
      object-fit: cover;
      filter: grayscale(30%) sepia(10%);
      border-radius: 4px;
      box-shadow: 0 30px 60px rgba(0,0,0,0.4);
    }

    /* Interactive Section: Event Registration */
    .interactive-section {
      background: linear-gradient(to bottom right, #f5f0e6, #eae4d3);
      padding: 0;
    }

    .interactive-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      min-height: 600px;
    }

    @media (max-width: 900px) {
      .interactive-inner { grid-template-columns: 1fr; }
    }

    .interactive-visual {
      position: relative;
    }

    .interactive-visual img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: grayscale(20%);
      min-height: 500px;
    }

    .interactive-content {
      padding: 5rem;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .interactive-content h2 {
      margin-bottom: 0.5rem;
    }

    .interactive-content p {
      margin-bottom: 2rem;
    }

    /* Form Styling */
    form {
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }

    .form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1rem;
    }

    input, select, textarea {
      width: 100%;
      padding: 1rem 1.2rem;
      border: 1px solid rgba(15, 23, 42, 0.1);
      border-radius: 2px;
      background: white;
      font-family: 'DM Sans', sans-serif;
      font-size: 0.95rem;
      color: var(--ink);
      transition: border-color 0.2s, box-shadow 0.2s;
    }

    input:focus, select:focus, textarea:focus {
      outline: none;
      border-color: var(--gold);
      box-shadow: 0 0 0 3px rgba(197, 160, 101, 0.15);
    }

    label {
      display: block;
      font-size: 0.8rem;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      font-weight: 600;
      color: var(--text-muted);
      margin-bottom: 0.3rem;
    }

    /* Footer */
    footer {
      background: var(--ink);
      color: white;
      padding: 6rem 0 2rem;
    }

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

    @media (max-width: 900px) {
      .footer-grid { grid-template-columns: 1fr 1fr; }
    }

    .footer-brand h3 {
      color: white;
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.8rem;
      margin-bottom: 1rem;
    }

    .footer-brand p {
      color: rgba(255,255,255,0.6);
      font-size: 0.95rem;
    }

    footer h4 {
      color: var(--gold);
      text-transform: uppercase;
      letter-spacing: 0.1em;
      font-size: 0.85rem;
      margin-bottom: 1.5rem;
      font-family: 'DM Sans', sans-serif;
      font-weight: 600;
    }

    .footer-links {
      list-style: none;
    }

    .footer-links li { margin-bottom: 0.8rem; }

    .footer-links a {
      color: rgba(255,255,255,0.7);
      text-decoration: none;
      font-size: 0.9rem;
      transition: color 0.2s;
    }

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

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

    .social-links a {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.2);
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      transition: background 0.2s, border-color 0.2s;
    }

    .social-links a:hover {
      background: var(--gold);
      border-color: var(--gold);
      color: var(--ink);
      text-decoration: none;
    }

    .footer-bottom {
      border-top: 1px solid rgba(255,255,255,0.1);
      padding-top: 2rem;
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 0.8rem;
      color: rgba(255,255,255,0.4);
    }

    .footer-bottom a { color: rgba(255,255,255,0.5); }

    /* Small decorative rules */
    .divider {
      width: 60px;
      height: 3px;
      background: var(--gold);
      margin-bottom: 2rem;
    }

    /* Responsive */
    @media (max-width: 768px) {
      .nav-inner { height: 80px; }
      nav ul { gap: 1.2rem; }
      nav ul li a { font-size: 0.7rem; }
      .hero p { font-size: 1rem; }
      .interactive-content { padding: 3rem 2rem; }
      .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; }
    }
  </style>
</head>

<body>

  <!-- Header -->
  <header>
    <div class="container">
      <div class="nav-inner">
        <a href="#" class="logo-group">
          <img src="https://placehold.co/100x100/0f172a/c5a065?text=SL" alt="Sanctus Luminis Logo" />
          <div class="brand-text">
            <h1>Sanctus Luminis</h1>
            <span>A Community of Faith & Light</span>
          </div>
        </a>
        <nav aria-label="Primary">
          <ul>
            <li><a href="#welcome">Welcome</a></li>
            <li><a href="#teachings">Teachings</a></li>
            <li><a href="#ministries">Ministries</a></li>
            <li><a href="#worship">Worship</a></li>
            <li><a href="#outreach">Outreach</a></li>
            <li><a href="#study">Study Groups</a></li>
            <li><a href="#give">Give</a></li>
          </ul>
        </nav>
      </div>
    </div>
  </header>

  <!-- Hero -->
  <section class="hero" aria-label="Hero">
    <div class="hero-bg">
      <img src="https://picsum.photos/seed/spiritualcathedral/1600/900" alt="Light streaming through cathedral windows" />
    </div>
    <div class="hero-overlay"></div>
    <div class="hero-content">
      <span class="tagline">Faith • Formation • Fellowship</span>
      <h2>Where Ancient Light Meets a Living Congregation</h2>
      <p>Sanctus Luminis is a modern spiritual community rooted in tradition, shaped by compassion, and open to all who seek meaning, connection, and grace.</p>
      <div class="btn-group">
        <a href="#welcome" class="btn btn-primary">Discover Our Mission</a>
        <a href="#worship" class="btn btn-outline">Join Worship</a>
      </div>
    </div>
  </section>

  <!-- Main Content + Sidebar -->
  <div class="container">
    <div class="main-wrapper">

      <!-- Main Column -->
      <main class="content-col">
        
        <!-- Welcome -->
        <section id="welcome" class="content-section">
          <div class="section-header">
            <h2>Welcome to Our Congregation</h2>
            <div class="divider"></div>
          </div>
          <p>
            At Sanctus Luminis, we believe that faith is not merely a private conviction but a public commitment to the common good. Our congregation gathers not to retreat from the world, but to be formed by the sacraments and sent back into the neighborhoods, workplaces, and relationships that shape our lives.
          </p>
          <p>
            Whether you are returning to a tradition you once loved, exploring spirituality for the first time, or seeking a community that takes both contemplation and justice seriously, you will find a place here. Our doors are open to all—no prerequisites, no hidden expectations, only an invitation to belong.
          </p>
          <img src="https://picsum.photos/seed/communitygathering/1000/500" alt="A diverse congregation gathering in fellowship" style="margin-top: 2rem; width: 100%; height: 300px; object-fit: cover;" />
        </section>

        <!-- Spiritual Teachings & Study Groups -->
        <section id="study">
          <div class="section-header">
            <h2>Spiritual Teachings & Study Groups</h2>
            <p class="subtitle">Formation through scripture, tradition, and conversation</p>
          </div>
          
          <p>
            Faith formation is a lifelong journey. Our study groups provide structured yet welcoming spaces for adults, youth, and families to explore sacred texts, theological themes, and the lived experience of prayer. We offer weekly Bible studies, guided meditation circles, and seasonal seminar series led by clergy and invited scholars.
          </p>
          <p>
            We approach every study with intellectual humility and pastoral warmth. Questions are encouraged, doubt is honored, and insight is shared. Whether discussing the poetry of the Psalms or the ethics of modern discipleship, our groups foster deep, enduring relationships rooted in mutual respect.
          </p>

          <div class="feature-grid">
            <article class="feature-card">
              <img src="https://picsum.photos/seed/biblestudy/600/400" alt="Open scripture and candles" />
              <i class="fa-solid fa-book-open"></i>
              <h3>Scripture Circles</h3>
              <p>Weekly gatherings that read the lectionary together with historical and devotional context, led by trained lay ministers.</p>
              <a href="#" class="btn btn-outline" style="margin-top: 1rem; padding: 0.6rem 1.2rem; font-size: 0.8rem;">Register</a>
            </article>
            <article class="feature-card">
              <img src="https://picsum.photos/seed/meditation/600/400" alt="A quiet chapel at sunrise" />
              <i class="fa-solid fa-om"></i>
              <h3>Contemplative Prayer</h3>
              <p>Early morning and evening sessions in silent prayer, guided lectio divina, and centering practices for daily spiritual renewal.</p>
              <a href="#" class="btn btn-outline" style="margin-top: 1rem; padding: 0.6rem 1.2rem; font-size: 0.8rem;">Join Worship</a>
            </article>
          </div>
        </section>

        <!-- Outreach -->
        <section id="outreach">
          <div class="section-header">
            <h2>Outreach Ministry</h2>
            <p class="subtitle">Serving our neighbors with dignity and presence</p>
          </div>
          <p>
            Our faith calls us outward. Through our outreach ministry, members participate in food justice programs, refugee resettlement partnerships, housing advocacy, and elder companionship. We do not serve from a distance; we serve shoulder to shoulder, building genuine relationships across lines of difference.
          </p>
          <p>
            The Outreach Ministry also maintains a community resource center that offers counseling referrals, material support, and a warm meal every Thursday evening. These acts of service are not optional extras—they are central to our identity as a congregation shaped by grace.
          </p>
          <img src="https://picsum.photos/seed/communityservice/1000/500" alt="Volunteers distributing supplies" style="margin-top: 2rem; width: 100%; height: 300px; object-fit: cover;" />
        </section>

        <!-- Worship & Sacrament -->
        <section id="worship">
          <div class="section-header">
            <h2>Worship & Sacrament</h2>
            <p class="subtitle">Gathered around the table, sent toward the world</p>
          </div>
          <p>
            Worship at Sanctus Luminis is both reverent and accessible. Our liturgical tradition honors ancient rhythms—prayer, song, scripture, and sacrament—while remaining responsive to the present moment. Services are held every Sunday morning and include full choral music, congregational singing, and space for contemplative silence.
          </p>
          <p>
            The Eucharist is celebrated weekly. We practice an open table, welcoming all baptized believers and all who seek to encounter Christ in the breaking of bread. Beyond the weekly gathering, we observe the liturgical calendar with special services for Advent, Lent, Holy Week, and feast days, deepening our collective formation through the seasons of the church year.
          </p>
        </section>

      </main>

      <!-- Sidebar -->
      <aside class="sidebar" aria-label="Sidebar">
        
        <div class="side-block">
          <h3>Upcoming Events</h3>
          <ul class="side-list">
            <li>
              <span class="date">March 15, 2026</span>
              <a href="#">Annual Spring Retreat — Registration Open</a>
            </li>
            <li>
              <span class="date">March 22, 2026</span>
              <a href="#">Youth Formation Weekend</a>
            </li>
            <li>
              <span class="date">April 5, 2026</span>
              <a href="#">Easter Sunrise Worship</a>
            </li>
            <li>
              <span class="date">April 12, 2026</span>
              <a href="#">Community Outreach Day</a>
            </li>
          </ul>
        </div>

        <div class="side-block">
          <h3>Ministry Updates</h3>
          <ul class="side-list">
            <li>
              <span class="date">New</span>
              <a href="#">Scripture Circles Relaunch with Expanded Evening Hours</a>
            </li>
            <li>
              <span class="date">Update</span>
              <a href="#">Contemplative Prayer Group Now Meets Twice Weekly</a>
            </li>
          </ul>
        </div>

        <div class="side-block">
          <h3>A Member Story</h3>
          <img src="https://picsum.photos/seed/memberportrait/400/500" alt="Portrait of a congregation member" style="margin-bottom: 1rem; height: 280px; object-fit: cover; width: 100%;" />
          <blockquote style="font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.1rem; color: var(--ink); line-height: 1.5;">
            "After years of searching, I found here a community that holds both tradition and openness with equal care. I have never felt more at home."
          </blockquote>
          <p style="margin-top: 1rem; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; color: var(--gold-deep);">— Elena V., Member since 2023</p>
        </div>

      </aside>

    </div>
  </div>

  <!-- Ministries Feature Section -->
  <section id="ministries" style="padding-top: 6rem;">
    <div class="container">
      <div class="section-header" style="text-align: center;">
        <h2>Ministries That Shape Us</h2>
        <div class="divider" style="margin: 0 auto 2rem;"></div>
        <p style="font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.2rem; color: var(--gold-deep); max-width: 600px; margin: 0 auto;">Dedicated groups that live out the call to serve, teach, and worship together.</p>
      </div>

      <div class="feature-grid">
        <article class="feature-card">
          <i class="fa-solid fa-hands-holding-child"></i>
          <h3>Family & Formation</h3>
          <p>Nursery care, children's chapel, youth discipleship, and adult education designed to grow faith across every generation of the congregation.</p>
        </article>
        <article class="feature-card">
          <i class="fa-solid fa-music"></i>
          <h3>Music & Liturgy</h3>
          <p>Choir, instrumental ensembles, and lay leaders who shape beautiful, reverent worship that honors our tradition and welcomes new voices.</p>
        </article>
        <article class="feature-card">
          <i class="fa-solid fa-people-roof"></i>
          <h3>Hospitality & Welcome</h3>
          <p>Greeters, ushers, and hosts who create a warm atmosphere for newcomers and long-time members alike, ensuring no one walks alone.</p>
        </article>
      </div>
    </div>
  </section>

  <!-- Testimonial -->
  <section class="testimonial" aria-label="Testimonial">
    <div class="container">
      <div class="testimonial-inner">
        <div>
          <blockquote class="quote-text">
            "Sanctus Luminis did not ask me to become someone else before I could belong. It asked me to come as I was, and in that welcome, I discovered the grace I had been seeking all along."
            <span>— Marcus T., Congregation Member</span>
          </blockquote>
        </div>
        <div class="quote-img">
          <img src="https://picsum.photos/seed/chapelinterior/800/800" alt="Stained glass illuminating the chapel interior" />
        </div>
      </div>
    </div>
  </section>

  <!-- Interactive Event Registration -->
  <section class="interactive-section" id="give" aria-label="Event Registration">
    <div class="interactive-inner">
      <div class="interactive-visual">
        <img src="https://picsum.photos/seed/sunsetretreat/800/1000" alt="A peaceful retreat center at sunset" />
      </div>
      <div class="interactive-content">
        <h2>Register for Our Annual Retreat</h2>
        <p class="subtitle" style="font-family: 'Cormorant Garamond', serif; font-style: italic; color: var(--gold-deep); font-size: 1.2rem; margin-bottom: 1.5rem;">March 15–17, 2026 • Lake Serenity Retreat Center</p>
        <p>
          Join us for a weekend of silence, study, and shared prayer. The retreat will focus on the theme of "Rest and Renewal," guided by clergy and spiritual directors from our extended network. Registration includes lodging, meals, and all session materials.
        </p>
        <form id="retreatForm" onsubmit="event.preventDefault(); document.getElementById('formSuccess').style.display='block'; this.reset();">
          <div class="form-row">
            <div>
              <label for="firstName">First Name</label>
              <input type="text" id="firstName" name="firstName" placeholder="Your first name" required />
            </div>
            <div>
              <label for="lastName">Last Name</label>
              <input type="text" id="lastName" name="lastName" placeholder="Your last name" required />
            </div>
          </div>
          <div>
            <label for="email">Email Address</label>
            <input type="email" id="email" name="email" placeholder="you@example.com" required />
          </div>
          <div>
            <label for="groupSelect">Interested In</label>
            <select id="groupSelect" name="groupSelect">
              <option>Full Weekend Retreat</option>
              <option>Single Day Pass</option>
              <option>Scholarship / Volunteer</option>
            </select>
          </div>
          <button type="submit" class="btn btn-primary">Register Now</button>
          <p id="formSuccess" style="display: none; color: var(--gold-deep); font-weight: 600; margin-top: 0.5rem;">Thank you for registering! We will contact you shortly with confirmation details.</p>
        </form>
      </div>
    </div>
  </section>

  <!-- Give CTA Section -->
  <section id="give-cta" style="background: var(--ink); color: white; text-align: center;">
    <div class="container" style="padding-top: 5rem; padding-bottom: 5rem;">
      <h2 style="color: white;">Support the Work of Grace</h2>
      <p style="max-width: 600px; margin: 0 auto 2rem; color: rgba(255,255,255,0.8); font-size: 1.1rem;">
        Your generosity sustains our worship, our outreach, and our formation programs. Every gift—large and small—builds the kingdom we share.
      </p>
      <a href="#" class="btn btn-primary" style="font-size: 1rem; padding: 1.2rem 2.5rem;">Give Online</a>
    </div>
  </section>

  <!-- Footer -->
  <footer>
    <div class="container">
      <div class="footer-grid">
        <div class="footer-brand">
          <h3>Sanctus Luminis</h3>
          <p>
            A modern faith community dedicated to spiritual formation, compassionate outreach, and the sacramental life. Located in the heart of the city, open to all.
          </p>
          <div class="social-links">
            <a href="#" aria-label="Instagram"><i class="fa-brands fa-instagram"></i></a>
            <a href="#" aria-label="Facebook"><i class="fa-brands fa-facebook-f"></i></a>
            <a href="#" aria-label="YouTube"><i class="fa-brands fa-youtube"></i></a>
            <a href="#" aria-label="Email"><i class="fa-solid fa-envelope"></i></a>
          </div>
        </div>
        <div>
          <h4>Explore</h4>
          <ul class="footer-links">
            <li><a href="#welcome">About Us</a></li>
            <li><a href="#worship">Worship</a></li>
            <li><a href="#study">Study Groups</a></li>
            <li><a href="#ministries">Ministries</a></li>
            <li><a href="#outreach">Outreach</a></li>
          </ul>
        </div>
        <div>
          <h4>Resources</h4>
          <ul class="footer-links">
            <li><a href="#">Sermons & Teachings</a></li>
            <li><a href="#">Prayer Requests</a></li>
            <li><a href="#">Calendar</a></li>
            <li><a href="#">Member Portal</a></li>
          </ul>
        </div>
        <div>
          <h4>Contact</h4>
          <ul class="footer-links">
            <li>123 Cathedral Lane</li>
            <li>San Francisco, CA 94108</li>
            <li><a href="mailto:hello@sanctusluminis.org">hello@sanctusluminis.org</a></li>
            <li><a href="tel:+14155551234">(415) 555-1234</a></li>
          </ul>
        </div>
      </div>
      <div class="footer-bottom">
        <p>&copy; 2026 Sanctus Luminis. All rights reserved.</p>
        <div>
          <a href="#">Privacy Policy</a> &nbsp;|&nbsp; <a href="#">Terms of Service</a>
        </div>
      </div>
    </div>
  </footer>

</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:45:12.338Z",
  "url": "https://benchmark.aimac.invalid/51a56569d54c01d06e7f5db07a90ad0138004bd94de260918a60732e7a2a27f6.html",
  "toolOptions": {
    "runOnly": {
      "type": "tag",
      "values": [
        "wcag2a",
        "wcag2aa",
        "wcag21a",
        "wcag21aa",
        "wcag22a",
        "wcag22aa"
      ]
    },
    "resultTypes": [
      "violations"
    ],
    "reporter": "v1"
  },
  "inapplicable": [
    {
      "id": "area-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <area> elements of image maps have alternative text",
      "help": "Active <area> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-braille-equivalent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
      "help": "aria-braille attributes must have a non-braille equivalent",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-command-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA button, link and menuitem has an accessible name",
      "help": "ARIA commands must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-deprecated-role",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-hidden-focus",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-input-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-meter-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-progressbar-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-children",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-parent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-roles",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-toggle-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-tooltip-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "autocomplete-valid",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "nodes": []
    },
    {
      "id": "blink",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "nodes": []
    },
    {
      "id": "definition-list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "nodes": []
    },
    {
      "id": "dlitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-focusable-content",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title-unique",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "nodes": []
    },
    {
      "id": "html-xml-lang-mismatch",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <input type=\"image\"> elements have alternative text",
      "help": "Image buttons must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "marquee",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "nodes": []
    },
    {
      "id": "meta-refresh",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "nodes": []
    },
    {
      "id": "object-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure <object> elements have alternative text",
      "help": "<object> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "role-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure [role=\"img\"] elements have alternative text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": []
    },
    {
      "id": "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": "<nav aria-label=\"Primary\">",
          "target": [
            "nav"
          ]
        }
      ]
    },
    {
      "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": "<nav aria-label=\"Primary\">",
          "target": [
            "nav"
          ]
        }
      ]
    },
    {
      "id": "aria-hidden-body",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-hidden-body",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<body>",
          "target": [
            "body"
          ]
        }
      ]
    },
    {
      "id": "aria-prohibited-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "impact": null,
          "html": "<nav aria-label=\"Primary\">",
          "target": [
            "nav"
          ]
        }
      ]
    },
    {
      "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": "<nav aria-label=\"Primary\">",
          "target": [
            "nav"
          ]
        }
      ]
    },
    {
      "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": "<nav aria-label=\"Primary\">",
          "target": [
            "nav"
          ]
        }
      ]
    },
    {
      "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": "<img src=\"https://picsum.photos/seed/communitygathering/1000/500\" alt=\"A diverse congregation gathering in fellowship\" style=\"margin-top: 2rem; width: 100%; height: 300px; object-fit: cover;\">",
          "target": [
            "#welcome > img"
          ]
        }
      ]
    },
    {
      "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 type=\"submit\" class=\"btn btn-primary\">Register Now</button>",
          "target": [
            "button"
          ]
        }
      ]
    },
    {
      "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>Sanctus Luminis</h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h2>Where Ancient Light Meets a Living Congregation</h2>",
                  "target": [
                    ".hero-content > h2"
                  ]
                },
                {
                  "html": "<h2>Welcome to Our Congregation</h2>",
                  "target": [
                    "#welcome > .section-header > h2"
                  ]
                },
                {
                  "html": "<h2>Spiritual Teachings &amp; Study Groups</h2>",
                  "target": [
                    "#study > .section-header > h2"
                  ]
                },
                {
                  "html": "<h3>Scripture Circles</h3>",
                  "target": [
                    "#study > .feature-grid > article:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Contemplative Prayer</h3>",
                  "target": [
                    "#study > .feature-grid > article:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h2>Outreach Ministry</h2>",
                  "target": [
                    "#outreach > .section-header > h2"
                  ]
                },
                {
                  "html": "<h2>Worship &amp; Sacrament</h2>",
                  "target": [
                    "#worship > .section-header > h2"
                  ]
                },
                {
                  "html": "<h3>Upcoming Events</h3>",
                  "target": [
                    ".side-block:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Ministry Updates</h3>",
                  "target": [
                    ".side-block:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>A Member Story</h3>",
                  "target": [
                    ".side-block:nth-child(3) > h3"
                  ]
                },
                {
                  "html": "<h2>Ministries That Shape Us</h2>",
                  "target": [
                    ".container > .section-header > h2"
                  ]
                },
                {
                  "html": "<h3>Family &amp; Formation</h3>",
                  "target": [
                    ".container > .feature-grid > article:nth-child(1) > h3"
                  ]
                },
                {
                  "html": "<h3>Music &amp; Liturgy</h3>",
                  "target": [
                    ".container > .feature-grid > article:nth-child(2) > h3"
                  ]
                },
                {
                  "html": "<h3>Hospitality &amp; Welcome</h3>",
                  "target": [
                    "article:nth-child(3) > h3"
                  ]
                },
                {
                  "html": "<h2>Register for Our Annual Retreat</h2>",
                  "target": [
                    ".interactive-content > h2"
                  ]
                },
                {
                  "html": "<h2 style=\"color: white;\">Support the Work of Grace</h2>",
                  "target": [
                    ".container > h2"
                  ]
                },
                {
                  "html": "<h3>Sanctus Luminis</h3>",
                  "target": [
                    ".footer-brand > h3"
                  ]
                },
                {
                  "html": "<h4>Explore</h4>",
                  "target": [
                    "div:nth-child(2) > h4"
                  ]
                },
                {
                  "html": "<h4>Resources</h4>",
                  "target": [
                    "div:nth-child(3) > h4"
                  ]
                },
                {
                  "html": "<h4>Contact</h4>",
                  "target": [
                    "div:nth-child(4) > h4"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            },
            {
              "id": "landmark",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<main class=\"content-col\">",
                  "target": [
                    "main"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a landmark region"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#0f172a",
                "bgColor": "#f5f0e6",
                "contrastRatio": 15.71,
                "fontSize": "16.2pt (21.6px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 15.71"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<h1>Sanctus Luminis</h1>",
          "target": [
            "h1"
          ]
        }
      ]
    },
    {
      "id": "document-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "doc-has-title",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Document has a non-empty <title> element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "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": "firstName",
              "relatedNodes": [],
              "impact": "critical",
              "message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<input type=\"text\" id=\"firstName\" name=\"firstName\" placeholder=\"Your first name\" required=\"\">",
          "target": [
            "#firstName"
          ]
        }
      ]
    },
    {
      "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=\"firstName\">First Name</label>",
                  "target": [
                    "label[for=\"firstName\"]"
                  ]
                }
              ],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<input type=\"text\" id=\"firstName\" name=\"firstName\" placeholder=\"Your first name\" required=\"\">",
          "target": [
            "#firstName"
          ]
        }
      ]
    },
    {
      "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/100x100/0f172a/c5a065?text=SL\" alt=\"Sanctus Luminis Logo\">",
          "target": [
            "img[alt=\"Sanctus Luminis 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": "First Name"
              },
              "relatedNodes": [
                {
                  "html": "<label for=\"firstName\">First Name</label>",
                  "target": [
                    "label[for=\"firstName\"]"
                  ]
                }
              ],
              "impact": "critical",
              "message": "Element has an explicit <label>"
            },
            {
              "id": "non-empty-placeholder",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a placeholder attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<input type=\"text\" id=\"firstName\" name=\"firstName\" placeholder=\"Your first name\" required=\"\">",
          "target": [
            "#firstName"
          ]
        }
      ]
    },
    {
      "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",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<article class=\"feature-card\">",
                  "target": [
                    "#study > .feature-grid > article:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text in some way other than by color"
            },
            {
              "id": "link-in-text-block-style",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<article class=\"feature-card\">",
                  "target": [
                    "#study > .feature-grid > article:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Links can be distinguished from surrounding text by visual styling"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#\" class=\"btn btn-outline\" style=\"margin-top: 1rem; padding: 0.6rem 1.2rem; font-size: 0.8rem;\">Register</a>",
          "target": [
            "article:nth-child(1) > .btn-outline.btn[href=\"#\"]"
          ]
        }
      ]
    },
    {
      "id": "link-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "focusable-no-name",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element is not in tab order or has accessible text"
            }
          ],
          "impact": null,
          "html": "<a href=\"#\" class=\"logo-group\">\n          <img src=\"https://placehold.co/100x100/0f172a/c5a065?text=SL\" alt=\"Sanctus Luminis Logo\">\n          <div class=\"brand-text\">\n            <h1>Sanctus Luminis</h1>\n            <span>A Community of Faith &amp; Light</span>\n          </div>\n        </a>",
          "target": [
            ".logo-group"
          ]
        }
      ]
    },
    {
      "id": "list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "only-listitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List element only has direct children that are allowed inside <li> elements"
            }
          ],
          "impact": null,
          "html": "<ul>",
          "target": [
            "nav > ul"
          ]
        }
      ]
    },
    {
      "id": "listitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "listitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List item has a <ul>, <ol> or role=\"list\" parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<li><a href=\"#welcome\">Welcome</a></li>",
          "target": [
            "nav > ul > li:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "meta-viewport",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "meta-viewport",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "<meta> tag does not disable zooming on mobile devices"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
          "target": [
            "meta[name=\"viewport\"]"
          ]
        }
      ]
    },
    {
      "id": "nested-interactive",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "no-focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element does not have focusable descendants"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<img src=\"https://placehold.co/100x100/0f172a/c5a065?text=SL\" alt=\"Sanctus Luminis Logo\">",
          "target": [
            "img[alt=\"Sanctus Luminis Logo\"]"
          ]
        }
      ]
    },
    {
      "id": "select-name",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "explicit-label",
              "data": {
                "explicitLabel": "Interested In"
              },
              "relatedNodes": [
                {
                  "html": "<label for=\"groupSelect\">Interested In</label>",
                  "target": [
                    "label[for=\"groupSelect\"]"
                  ]
                }
              ],
              "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=\"groupSelect\" name=\"groupSelect\">\n              <option>Full Weekend Retreat</option>\n              <option>Single Day Pass</option>\n              <option>Scholarship / Volunteer</option>\n            </select>",
          "target": [
            "#groupSelect"
          ]
        }
      ]
    },
    {
      "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": 319.3,
                "height": 54
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Control has sufficient size (319.3px by 54px, 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=\"#\" class=\"logo-group\">\n          <img src=\"https://placehold.co/100x100/0f172a/c5a065?text=SL\" alt=\"Sanctus Luminis Logo\">\n          <div class=\"brand-text\">\n            <h1>Sanctus Luminis</h1>\n            <span>A Community of Faith &amp; Light</span>\n          </div>\n        </a>",
          "target": [
            ".logo-group"
          ]
        }
      ]
    }
  ],
  "incomplete": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": null,
                "bgColor": null,
                "contrastRatio": 0,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "normal",
                "messageKey": "imgNode",
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<img src=\"https://picsum.photos/seed/spiritualcathedral/1600/900\" alt=\"Light streaming through cathedral windows\">",
                  "target": [
                    ".hero-bg > img"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element's background color could not be determined because element contains an image node"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"tagline\">Faith \u2022 Formation \u2022 Fellowship</span>",
          "target": [
            ".tagline"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because element contains an image node"
        }
      ]
    }
  ],
  "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": "#a07d3e",
                "bgColor": "#f5f0e6",
                "contrastRatio": 3.36,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<header>",
                  "target": [
                    "header"
                  ]
                },
                {
                  "html": "<body>",
                  "target": [
                    "body"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.36 (foreground color: #a07d3e, background color: #f5f0e6, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>A Community of Faith &amp; Light</span>",
          "target": [
            ".brand-text > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.36 (foreground color: #a07d3e, background color: #f5f0e6, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#f0ede8",
                "contrastRatio": 3.27,
                "fontSize": "15.6pt (20.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"study\">",
                  "target": [
                    "#study"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 15.6pt (20.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"subtitle\">Formation through scripture, tradition, and conversation</p>",
          "target": [
            "#study > .section-header > .subtitle"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 15.6pt (20.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#f0ede8",
                "contrastRatio": 3.27,
                "fontSize": "15.6pt (20.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"outreach\">",
                  "target": [
                    "#outreach"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 15.6pt (20.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"subtitle\">Serving our neighbors with dignity and presence</p>",
          "target": [
            "#outreach > .section-header > .subtitle"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 15.6pt (20.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#f0ede8",
                "contrastRatio": 3.27,
                "fontSize": "15.6pt (20.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"worship\">",
                  "target": [
                    "#worship"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 15.6pt (20.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"subtitle\">Gathered around the table, sent toward the world</p>",
          "target": [
            "#worship > .section-header > .subtitle"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 15.6pt (20.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.81,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-block\">",
                  "target": [
                    ".side-block:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"date\">March 15, 2026</span>",
          "target": [
            ".side-block:nth-child(1) > .side-list > li:nth-child(1) > .date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.81,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-block\">",
                  "target": [
                    ".side-block:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"date\">March 22, 2026</span>",
          "target": [
            ".side-block:nth-child(1) > .side-list > li:nth-child(2) > .date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.81,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-block\">",
                  "target": [
                    ".side-block:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"date\">April 5, 2026</span>",
          "target": [
            "li:nth-child(3) > .date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.81,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-block\">",
                  "target": [
                    ".side-block:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"date\">April 12, 2026</span>",
          "target": [
            "li:nth-child(4) > .date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.81,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-block\">",
                  "target": [
                    ".side-block:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"date\">New</span>",
          "target": [
            ".side-block:nth-child(2) > .side-list > li:nth-child(1) > .date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.81,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-block\">",
                  "target": [
                    ".side-block:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"date\">Update</span>",
          "target": [
            ".side-block:nth-child(2) > .side-list > li:nth-child(2) > .date"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#ffffff",
                "contrastRatio": 3.81,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"side-block\">",
                  "target": [
                    ".side-block:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p style=\"margin-top: 1rem; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; color: var(--gold-deep);\">\u2014 Elena V., Member since 2023</p>",
          "target": [
            ".side-block:nth-child(3) > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.81 (foreground color: #a07d3e, background color: #ffffff, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#f0ede8",
                "contrastRatio": 3.27,
                "fontSize": "14.4pt (19.2px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"ministries\" style=\"padding-top: 6rem;\">",
                  "target": [
                    "#ministries"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 14.4pt (19.2px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p style=\"font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.2rem; color: var(--gold-deep); max-width: 600px; margin: 0 auto;\">Dedicated groups that live out the call to serve, teach, and worship together.</p>",
          "target": [
            ".container > .section-header > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 14.4pt (19.2px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#ffffff",
                "bgColor": "#f0ede8",
                "contrastRatio": 1.16,
                "fontSize": "24.0pt (32px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "3:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"testimonial\" aria-label=\"Testimonial\">",
                  "target": [
                    ".testimonial"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 1.16 (foreground color: #ffffff, background color: #f0ede8, font size: 24.0pt (32px), font weight: normal). Expected contrast ratio of 3:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<blockquote class=\"quote-text\">",
          "target": [
            ".quote-text"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 1.16 (foreground color: #ffffff, background color: #f0ede8, font size: 24.0pt (32px), font weight: normal). Expected contrast ratio of 3:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#c5a065",
                "bgColor": "#f0ede8",
                "contrastRatio": 2.09,
                "fontSize": "10.8pt (14.4px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"testimonial\" aria-label=\"Testimonial\">",
                  "target": [
                    ".testimonial"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.09 (foreground color: #c5a065, background color: #f0ede8, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span>\u2014 Marcus T., Congregation Member</span>",
          "target": [
            ".quote-text > span"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.09 (foreground color: #c5a065, background color: #f0ede8, font size: 10.8pt (14.4px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a07d3e",
                "bgColor": "#f0ede8",
                "contrastRatio": 3.27,
                "fontSize": "14.4pt (19.2px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"interactive-section\" id=\"give\" aria-label=\"Event Registration\">",
                  "target": [
                    "#give"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 14.4pt (19.2px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"subtitle\" style=\"font-family: 'Cormorant Garamond', serif; font-style: italic; color: var(--gold-deep); font-size: 1.2rem; margin-bottom: 1.5rem;\">March 15\u201317, 2026 \u2022 Lake Serenity Retreat Center</p>",
          "target": [
            ".interactive-content > .subtitle"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.27 (foreground color: #a07d3e, background color: #f0ede8, font size: 14.4pt (19.2px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f0ede8",
                "contrastRatio": 4.07,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"interactive-section\" id=\"give\" aria-label=\"Event Registration\">",
                  "target": [
                    "#give"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #64748b, background color: #f0ede8, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<label for=\"firstName\">First Name</label>",
          "target": [
            "label[for=\"firstName\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #64748b, background color: #f0ede8, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f0ede8",
                "contrastRatio": 4.07,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"interactive-section\" id=\"give\" aria-label=\"Event Registration\">",
                  "target": [
                    "#give"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #64748b, background color: #f0ede8, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<label for=\"lastName\">Last Name</label>",
          "target": [
            "label[for=\"lastName\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #64748b, background color: #f0ede8, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f0ede8",
                "contrastRatio": 4.07,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"interactive-section\" id=\"give\" aria-label=\"Event Registration\">",
                  "target": [
                    "#give"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #64748b, background color: #f0ede8, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<label for=\"email\">Email Address</label>",
          "target": [
            "label[for=\"email\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #64748b, background color: #f0ede8, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#64748b",
                "bgColor": "#f0ede8",
                "contrastRatio": 4.07,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"interactive-section\" id=\"give\" aria-label=\"Event Registration\">",
                  "target": [
                    "#give"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.07 (foreground color: #64748b, background color: #f0ede8, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<label for=\"groupSelect\">Interested In</label>",
          "target": [
            "label[for=\"groupSelect\"]"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.07 (foreground color: #64748b, background color: #f0ede8, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#334155",
                "bgColor": "#0f172a",
                "contrastRatio": 1.72,
                "fontSize": "9.6pt (12.8px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer>",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 1.72 (foreground color: #334155, background color: #0f172a, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>\u00a9 2026 Sanctus Luminis. All rights reserved.</p>",
          "target": [
            ".footer-bottom > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 1.72 (foreground color: #334155, background color: #0f172a, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 7842
      },
      {
        "y": 576,
        "height": 7842
      },
      {
        "y": 1152,
        "height": 7842
      },
      {
        "y": 1728,
        "height": 7842
      },
      {
        "y": 2304,
        "height": 7842
      },
      {
        "y": 2880,
        "height": 7842
      },
      {
        "y": 3456,
        "height": 7842
      },
      {
        "y": 4032,
        "height": 7842
      },
      {
        "y": 4608,
        "height": 7842
      },
      {
        "y": 5184,
        "height": 7842
      },
      {
        "y": 5760,
        "height": 7842
      },
      {
        "y": 6336,
        "height": 7842
      },
      {
        "y": 6912,
        "height": 7842
      },
      {
        "y": 7122,
        "height": 7842
      }
    ],
    "scans": 15,
    "max_states": 512,
    "settle_ms": 5000,
    "page_timeout_seconds": 150,
    "layout_stability": "consecutive 100ms size samples within one CSS pixel",
    "animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
    "interactive_states": "not exercised",
    "horizontal_scroll": "not exercised"
  }
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "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: "Outreach", "Give", "Ministries".
-   **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", "Spiritual Teachings", "Outreach Ministry".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "congregation", "sacrament", "faith formation".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Register", "Join Worship", "Give Online".
-   **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: "event registration".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "upcoming events", "ministry updates", "member stories".
-   **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.