{"id":3471,"date":"2025-10-24T13:06:44","date_gmt":"2025-10-24T13:06:44","guid":{"rendered":"https:\/\/cpe.kennesaw.edu\/olli\/?page_id=3471"},"modified":"2026-06-12T14:22:11","modified_gmt":"2026-06-12T14:22:11","slug":"courses","status":"publish","type":"page","link":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/","title":{"rendered":"Courses"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3471\" class=\"elementor elementor-3471\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-295eb7d elementor-section-full_width elementor-section-stretched elementor-section-height-default elementor-section-height-default\" data-id=\"295eb7d\" data-element_type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-222a2d5\" data-id=\"222a2d5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-35173cc elementor-widget elementor-widget-html\" data-id=\"35173cc\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!-- =======================\r\n  KSU OLLI \u2014 COURSES PAGE (ONE-SHOT, ELEMENTOR-SAFE)\r\n  - Full-bleed hero w\/ subtle blur + dark overlay\r\n  - Category cards are fully clickable links\r\n  - Same heading + gold underline style as homepage\r\n  - Bottom full-bleed newsletter CTA band (like testimonial band, but signup)\r\n======================= -->\r\n\r\n<style>\r\n  :root{\r\n    --olli-wrap: 1320px;\r\n    --olli-padX: clamp(16px, 3vw, 40px);\r\n    --olli-padY: clamp(22px, 4vw, 54px);\r\n    --olli-gold: #FFC629;\r\n    --olli-ink: #111;\r\n    --olli-muted: #444;\r\n    --olli-line: #e6e6e6;\r\n  }\r\n\r\n  \/* Scope everything to this page block *\/\r\n  .olli-courses-page{\r\n    margin:0;\r\n    padding:0;\r\n    border:0;\r\n    color: var(--olli-ink);\r\n\r\n  }\r\n  .olli-courses-page *{ box-sizing:border-box; }\r\n\r\n  \/* Content width *\/\r\n  .olli-wrap{ max-width: var(--olli-wrap); margin:0 auto; }\r\n\r\n  \/* Full-bleed band (Elementor-safe: kills side slivers) *\/\r\n  .olli-band{\r\n    width: 100vw;\r\n    position: relative;\r\n    left: 50%;\r\n    right: 50%;\r\n    margin-left: -50vw;\r\n    margin-right: -50vw;\r\n  }\r\n  .olli-band--pad{ padding: var(--olli-padY) var(--olli-padX); }\r\n\r\n  \/* Heading underline *\/\r\n  .olli-underline{\r\n    width:56px;\r\n    height:6px;\r\n    background: var(--olli-gold);\r\n  }\r\n  .olli-underline--left{ margin-top: 10px; }\r\n\r\n  \/* Buttons *\/\r\n  .olli-btn{\r\n    display:inline-flex;\r\n    align-items:center;\r\n    justify-content:center;\r\n    border-radius:999px;\r\n    padding: 10px 14px;\r\n    background: var(--olli-gold);\r\n    color: #111 !important;\r\n    font-weight: 800;\r\n    text-decoration:none;\r\n    cursor:pointer;\r\n    transition: transform .12s ease, background-color .12s ease, color .12s ease;\r\n    white-space: nowrap;\r\n    border: 0;\r\n  }\r\n  .olli-btn:hover{\r\n    transform: translateY(-1px);\r\n    background:#f2f2f2;\r\n    color:#111;\r\n  }\r\n  .olli-btn:focus-visible{\r\n    outline: 3px solid #111;\r\n    outline-offset: 3px;\r\n  }\r\n\r\n  \/* =======================\r\n     HERO (full width w\/ blur + dark overlay)\r\n  ======================= *\/\r\n  .olli-courses-hero{\r\n    background:#000;\r\n    color:#fff;\r\n    overflow:hidden;\r\n  }\r\n\r\n  .olli-courses-hero__frame{\r\n    position:relative;\r\n    min-height: clamp(300px, 34vw, 520px);\r\n    display:flex;\r\n    align-items:center;\r\n  }\r\n\r\n  .olli-courses-hero__bg{\r\n    position:absolute;\r\n    inset:0;\r\n    z-index:0;\r\n  }\r\n  .olli-courses-hero__bg img{\r\n    width:100%;\r\n    height:100%;\r\n    object-fit:cover;\r\n    object-position:center 85%;\r\n    display:block;\r\n\r\n    \/* subtle blur to help text legibility without looking \u201chazy\u201d *\/\r\n    filter: blur(2px);\r\n    transform: scale(1.03); \/* prevents blur edge clipping *\/\r\n  }\r\n\r\n  \/* dark overlay *\/\r\n  .olli-courses-hero__frame::before{\r\n    content:\"\";\r\n    position:absolute;\r\n    inset:0;\r\n    z-index:1;\r\n    background: rgba(0,0,0,0.22);\r\n  }\r\n\r\n  \/* optional gentle vignette for readability *\/\r\n  .olli-courses-hero__frame::after{\r\n    content:\"\";\r\n    position:absolute;\r\n    inset:0;\r\n    z-index:1;\r\n    background: radial-gradient(1200px 420px at 30% 45%,\r\n      rgba(0,0,0,0.35) 0%,\r\n      rgba(0,0,0,0.55) 60%,\r\n      rgba(0,0,0,0.62) 100%);\r\n    pointer-events:none;\r\n  }\r\n\r\n  .olli-courses-hero__content{\r\n    position:relative;\r\n    z-index:2;\r\n    padding: var(--olli-padY) var(--olli-padX);\r\n    width:100%;\r\n  }\r\n\r\n  \/* Keep text comfortably constrained like the homepage *\/\r\n  .olli-courses-hero__inner{\r\n    max-width: 980px;\r\n  }\r\n\r\n  .olli-courses-hero__title{\r\n    margin:0;\r\n    font-weight:800;\r\n    line-height:1.12;\r\n    font-size: clamp(32px, 3vw, 44px);\r\n    color:#fff;\r\n  }\r\n\r\n  .olli-courses-hero__copy{\r\n    margin: 10px 0 0 0;\r\n    line-height:1.6;\r\n    max-width: 75ch;\r\n    color: rgba(255,255,255,0.92);\r\n  }\r\n\r\n  .olli-courses-hero__cta{\r\n    margin-top: 14px;\r\n    display:flex;\r\n    gap: 10px;\r\n    flex-wrap:wrap;\r\n    align-items:center;\r\n  }\r\n\r\n  \/* =======================\r\n     CATEGORIES GRID\r\n  ======================= *\/\r\n  .olli-cats{\r\n    background:#fff;\r\n  }\r\n\r\n  .olli-cats__header{\r\n    margin: 0 0 18px 0;\r\n  }\r\n\r\n  .olli-cats__kicker{\r\n    margin: 8px 0 0 0;\r\n    color: var(--olli-muted);\r\n    line-height:1.6;\r\n    max-width: 85ch;\r\n  }\r\n\r\n  .olli-cats__grid{\r\n    display:grid;\r\n    grid-template-columns: repeat(3, minmax(0, 1fr));\r\n    gap: clamp(14px, 1.6vw, 20px);\r\n    margin: 0;\r\n    padding: 0;\r\n    list-style:none;\r\n  }\r\n\r\n  \/* Entire card is the link *\/\r\n  .olli-cat{\r\n    list-style:none;\r\n  }\r\n\r\n  .olli-cat__link{\r\n    display:flex;\r\n    flex-direction:column;\r\n    height:100%;\r\n    text-decoration:none;\r\n    color: inherit;\r\n    background:#fff;\r\n    border: 1px solid var(--olli-line);\r\n    transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;\r\n  }\r\n  .olli-cat__link:hover{\r\n    transform: translateY(-2px);\r\n    border-color:#cfcfcf;\r\n    box-shadow: 0 10px 24px rgba(0,0,0,0.08);\r\n  }\r\n  .olli-cat__link:focus-visible{\r\n    outline: 3px solid #111;\r\n    outline-offset: 3px;\r\n  }\r\n\r\n  .olli-cat__thumb{\r\n    aspect-ratio: 16 \/ 10;\r\n    background:#f2f2f2;\r\n    overflow:hidden;\r\n  }\r\n  .olli-cat__thumb img{\r\n    width:100%;\r\n    height:100%;\r\n    object-fit:cover;\r\n    display:block;\r\n  }\r\n\r\n  .olli-cat__body{\r\n    padding: 14px;\r\n    display:flex;\r\n    flex-direction:column;\r\n    gap: 8px;\r\n    min-width:0;\r\n    flex: 1 1 auto;\r\n  }\r\n\r\n  .olli-cat__title{\r\n    margin:0;\r\n    font-weight:800;\r\n    line-height:1.2;\r\n    font-size: 18px;\r\n  }\r\n\r\n  .olli-cat__underline{\r\n    width:56px;\r\n    height:6px;\r\n    background: var(--olli-gold);\r\n  }\r\n\r\n  .olli-cat__desc{\r\n    margin:0;\r\n    color: var(--olli-muted);\r\n    line-height:1.55;\r\n  }\r\n\r\n  \/* Responsive *\/\r\n  @media (max-width: 1050px){\r\n    .olli-cats__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }\r\n  }\r\n  @media (max-width: 650px){\r\n    .olli-cats__grid{ grid-template-columns: 1fr; }\r\n  }\r\n\r\n \r\n<\/style>\r\n\r\n<div class=\"olli-courses-page\">\r\n\r\n  <!-- ========== HERO (FULL WIDTH) ========== -->\r\n  <section class=\"olli-band olli-courses-hero\" aria-label=\"Courses page hero\">\r\n    <div class=\"olli-courses-hero__frame\">\r\n\r\n      <!-- Background image (replace src) -->\r\n      <div class=\"olli-courses-hero__bg\" aria-hidden=\"true\">\r\n        <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/10\/CPE_250217_Painting_0076-scaled.jpg\" alt=\"\">\r\n      <\/div>\r\n\r\n      <div class=\"olli-courses-hero__content\">\r\n        <div class=\"olli-wrap\">\r\n          <div class=\"olli-courses-hero__inner\">\r\n            <h1 class=\"olli-courses-hero__title\">Explore Courses at OLLI at KSU<\/h1>\r\n            <div class=\"olli-underline olli-underline--left\" aria-hidden=\"true\"><\/div>\r\n\r\n            <p class=\"olli-courses-hero__copy\">\r\n              Explore a diverse selection of courses designed to inspire curiosity, creativity, and lifelong learning.\r\n              Browse the categories below to discover opportunities that match your interests, challenge your mind,\r\n              and connect you with a vibrant community of lifelong learners.\r\n            <\/p>\r\n\r\n            <div class=\"olli-courses-hero__cta\">\r\n              <a class=\"olli-btn\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/catalog\/\" aria-label=\"View the OLLI course catalog\">View Catalog (PDF)<\/a>\r\n              <!-- Optional secondary button (delete if you don\u2019t want it) -->\r\n              <!-- <a class=\"olli-btn\" href=\"#\" aria-label=\"Jump to course categories\">Browse Categories<\/a> -->\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/section>\r\n\r\n<section class=\"olli-course-search\" aria-label=\"Search courses\">\r\n  <style>\r\n    \/* Wrapper *\/\r\n.olli-course-search{\r\n  max-width:1000px;\r\n  padding:20px 0;\r\n  margin:0 auto -20px;\r\n}\r\n\r\n.olli-course-search *{\r\n  box-sizing:border-box;\r\n}\r\n\r\n\/* Search container *\/\r\n.courses-searching{\r\n  position:relative;\r\n  width:100%;\r\n}\r\n\r\n\/* Form layout *\/\r\n.olli-search-form{\r\n  display:flex;\r\n  width:100%;\r\n}\r\n\r\n\/* Input field *\/\r\n.olli-search-form input[type=\"search\"]{\r\n  flex:1 1 auto;\r\n  width:100%;\r\n  min-width:0;\r\n  padding:12px 14px;\r\n  border:1px solid #b3b3b3;\r\n  border-right:none;\r\n  font-size:16px;\r\n  outline:none;\r\n  background:#fff;\r\n  color:#111;\r\n}\r\n\r\n\/* Search button *\/\r\n.olli-search-form button{\r\n  flex:0 0 auto;\r\n  padding:12px 18px;\r\n  border:1px solid #111;\r\n  background:#111;\r\n  color:#fff;\r\n  font-weight:600;\r\n  cursor:pointer;\r\n  white-space:nowrap;\r\n}\r\n\r\n.olli-search-form button:hover{\r\n  filter:brightness(.9);\r\n}\r\n\r\n\/* Autocomplete dropdown *\/\r\n.courses-list-search{\r\n  position:absolute;\r\n  top:100%;\r\n  left:0;\r\n  right:0;\r\n  width:100%;\r\n  margin-top:6px;\r\n  padding:0;\r\n  list-style:none;\r\n  background:#fff;\r\n  border:1px solid #e2e2e2;\r\n  box-shadow:0 12px 28px rgba(0,0,0,.12);\r\n  max-height:320px;\r\n  overflow:auto;\r\n  display:none;\r\n  z-index:9999;\r\n}\r\n\r\n\/* Suggestion items *\/\r\n.courses-list-search li{\r\n  padding:10px 14px;\r\n  cursor:pointer;\r\n  line-height:1.3;\r\n}\r\n\r\n.courses-list-search li:hover,\r\n.courses-list-search li[aria-selected=\"true\"]{\r\n  background:#f5f5f5;\r\n}\r\n\r\n\/* Screen-reader only label *\/\r\n.sr-only{\r\n  position:absolute;\r\n  width:1px;\r\n  height:1px;\r\n  margin:-1px;\r\n  padding:0;\r\n  overflow:hidden;\r\n  clip:rect(0,0,0,0);\r\n  border:0;\r\n}\r\n    \r\n  <\/style>\r\n\r\n  <div class=\"courses-searching\">\r\n    <form class=\"olli-search-form\" method=\"get\" action=\"https:\/\/cpe.kennesaw.edu\/courses\/\">\r\n      <label class=\"sr-only\" for=\"olli-search-input\">Search OLLI classes<\/label>\r\n      <input\r\n        type=\"search\"\r\n        id=\"olli-search-input\"\r\n        name=\"s\"\r\n        class=\"courses-search-input\"\r\n        placeholder=\"Search OLLI classes...\"\r\n        autocomplete=\"off\">\r\n      <input type=\"hidden\" name=\"ref\" value=\"course\">\r\n      <button type=\"submit\">Search<\/button>\r\n    <\/form>\r\n\r\n    <ul class=\"courses-list-search\" role=\"listbox\" aria-label=\"Search suggestions\"><\/ul>\r\n  <\/div>\r\n\r\n  <script>\r\n  (function(){\r\n    \/\/ If WP strips scripts, nothing below will run. We'll test with a console log.\r\n    console.log('[OLLI search] script loaded');\r\n\r\n    const wrap = document.currentScript && document.currentScript.closest('.olli-course-search')\r\n      ? document.currentScript.closest('.olli-course-search')\r\n      : document.querySelector('.olli-course-search');\r\n\r\n    if(!wrap){ console.log('[OLLI search] wrap not found'); return; }\r\n\r\n    const widget = wrap.querySelector('.courses-searching');\r\n    const input  = wrap.querySelector('.courses-search-input');\r\n    const list   = wrap.querySelector('.courses-list-search');\r\n\r\n    if(!widget || !input || !list){\r\n      console.log('[OLLI search] missing elements', {widget:!!widget, input:!!input, list:!!list});\r\n      return;\r\n    }\r\n\r\n    function debounce(fn, delay){\r\n      let t;\r\n      return (...args)=>{ clearTimeout(t); t=setTimeout(()=>fn(...args), delay); };\r\n    }\r\n\r\n    function extractLinks(doc, q){\r\n  const query = (q || '').trim().toLowerCase();\r\n  const terms = query.split(\/\\s+\/).filter(Boolean);\r\n\r\n  \/\/ Pull all course detail anchors (image links, title links, etc.)\r\n  const anchors = Array.from(doc.querySelectorAll('a[href*=\"\/courses\/50\/\"]'));\r\n\r\n  const out = [];\r\n  const seen = new Set();\r\n\r\n  function normalizeUrl(href){\r\n    try{\r\n      const u = new URL(href, location.origin);\r\n      \/\/ Normalize: strip query\/hash and ensure trailing slash consistency\r\n      u.hash = '';\r\n      u.search = '';\r\n      return u.toString().replace(\/\\\/?$\/, '\/');\r\n    }catch(e){\r\n      return null;\r\n    }\r\n  }\r\n\r\n  function slugToTitle(urlStr){\r\n    try{\r\n      const u = new URL(urlStr, location.origin);\r\n      const parts = u.pathname.split('\/').filter(Boolean);\r\n      const slug = parts[parts.length - 1] || '';\r\n      return slug\r\n        .replace(\/-\/g, ' ')\r\n        .replace(\/\\b\\w\/g, c => c.toUpperCase());\r\n    }catch(e){\r\n      return '';\r\n    }\r\n  }\r\n\r\n  for(const a of anchors){\r\n    const href = a.getAttribute('href');\r\n    const url = normalizeUrl(href);\r\n    if(!url) continue;\r\n\r\n    if(seen.has(url)) continue;\r\n\r\n    \/\/ Find a reasonable \"card\" container\r\n    const card =\r\n      a.closest('article') ||\r\n      a.closest('li') ||\r\n      a.closest('[class*=\"course\"]') ||\r\n      a.closest('div');\r\n\r\n    \/\/ Best label strategy:\r\n    \/\/ 1) inside the same card, find an <a> with the SAME href that has real text\r\n    \/\/ 2) fallback to slug-derived title\r\n    let label = '';\r\n\r\n    if(card){\r\n      const sameHrefLinks = Array.from(card.querySelectorAll('a[href]'))\r\n        .map(x => ({ el: x, u: normalizeUrl(x.getAttribute('href')) }))\r\n        .filter(x => x.u === url)\r\n        .map(x => x.el);\r\n\r\n      \/\/ Choose the longest non-empty text among matching links (usually the title)\r\n      let best = '';\r\n      for(const link of sameHrefLinks){\r\n        const txt = (link.textContent || '').replace(\/\\s+\/g,' ').trim();\r\n        if(txt.length > best.length) best = txt;\r\n      }\r\n      label = best;\r\n    }\r\n\r\n    if(!label) label = slugToTitle(url);\r\n\r\n    \/\/ Filter by typed terms (keeps results relevant)\r\n    const labelLower = label.toLowerCase();\r\n    const matchesQuery = terms.length ? terms.every(t => labelLower.includes(t)) : true;\r\n    if(!matchesQuery) continue;\r\n\r\n    seen.add(url);\r\n    out.push({ label, url });\r\n    if(out.length >= 10) break;\r\n  }\r\n\r\n  return out;\r\n}\r\n\r\n    let activeIndex = -1;\r\n    let controller = null;\r\n\r\n    function close(){\r\n      list.innerHTML = '';\r\n      list.style.display = 'none';\r\n      activeIndex = -1;\r\n    }\r\n\r\n    function open(){\r\n      if(list.children.length) list.style.display = 'block';\r\n    }\r\n\r\n    function setActive(i){\r\n      const items = Array.from(list.querySelectorAll('li'));\r\n      items.forEach((li, idx)=>li.setAttribute('aria-selected', idx===i ? 'true' : 'false'));\r\n      activeIndex = i;\r\n      if(i>=0 && items[i]) items[i].scrollIntoView({ block:'nearest' });\r\n    }\r\n\r\n    function render(items){\r\n      list.innerHTML = '';\r\n      items.forEach(item=>{\r\n        const li = document.createElement('li');\r\n        li.setAttribute('role','option');\r\n        li.textContent = item.label;\r\n\r\n        li.addEventListener('mousedown', (e)=>{\r\n          e.preventDefault();\r\n          window.location.href = item.url;\r\n        });\r\n\r\n        list.appendChild(li);\r\n      });\r\n\r\n      if(items.length){ open(); setActive(-1); }\r\n      else close();\r\n    }\r\n\r\n    const suggest = debounce(async ()=>{\r\n      const q = (input.value || '').trim();\r\n      if(q.length < 2){ close(); return; }\r\n\r\n      if(controller) controller.abort();\r\n      controller = new AbortController();\r\n\r\n      const url = new URL('https:\/\/cpe.kennesaw.edu\/courses\/');\r\n      url.searchParams.set('s', q);\r\n      url.searchParams.set('ref', 'course');\r\n\r\n      try{\r\n        const res = await fetch(url.toString(), { signal: controller.signal, credentials:'same-origin' });\r\n        if(!res.ok){ close(); return; }\r\n\r\n        const html = await res.text();\r\n        const doc = new DOMParser().parseFromString(html, 'text\/html');\r\n        const items = extractLinks(doc, q);\r\n\r\n        render(items);\r\n      }catch(e){\r\n        close();\r\n      }\r\n    }, 220);\r\n\r\n    input.addEventListener('input', suggest);\r\n\r\n    input.addEventListener('keydown', (e)=>{\r\n      const items = Array.from(list.querySelectorAll('li'));\r\n      if(!items.length) return;\r\n\r\n      if(e.key === 'ArrowDown'){\r\n        e.preventDefault();\r\n        setActive(Math.min(activeIndex + 1, items.length - 1));\r\n      } else if(e.key === 'ArrowUp'){\r\n        e.preventDefault();\r\n        setActive(Math.max(activeIndex - 1, 0));\r\n      } else if(e.key === 'Enter'){\r\n        if(activeIndex >= 0){\r\n          e.preventDefault();\r\n          items[activeIndex].dispatchEvent(new MouseEvent('mousedown', { bubbles:true }));\r\n        }\r\n      } else if(e.key === 'Escape'){\r\n        close();\r\n      }\r\n    });\r\n\r\n    document.addEventListener('click', (e)=>{\r\n      if(!wrap.contains(e.target)) close();\r\n    });\r\n\r\n    input.addEventListener('blur', ()=>setTimeout(close, 120));\r\n  })();\r\n  <\/script>\r\n<\/section>\r\n\r\n  <!-- ========== CATEGORY CARDS ========== -->\r\n  <section class=\"olli-band olli-band--pad olli-cats\" aria-label=\"Course categories\">\r\n    <div class=\"olli-wrap\">\r\n\r\n\r\n      <ul class=\"olli-cats__grid\" aria-label=\"Course category links\">\r\n\r\n        <!-- CARD 1 -->\r\n        <li class=\"olli-cat\">\r\n          <a class=\"olli-cat__link\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/art-and-music\/\" aria-label=\"Browse Art and Music courses\">\r\n            <div class=\"olli-cat__thumb\">\r\n              <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/11\/CPE_250217_Painting_0040-scaled.jpg\" alt=\"Art and Music category thumbnail\">\r\n            <\/div>\r\n            <div class=\"olli-cat__body\">\r\n              <h3 class=\"olli-cat__title\">Art and Music<\/h3>\r\n              <div class=\"olli-cat__underline\" aria-hidden=\"true\"><\/div>\r\n              <p class=\"olli-cat__desc\">Explore creativity through courses in visual arts, music appreciation, and artistic expression.<\/p>\r\n            <\/div>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <!-- CARD 2 -->\r\n        <li class=\"olli-cat\">\r\n          <a class=\"olli-cat__link\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/technology\/\" aria-label=\"Browse Technology and Computers courses\">\r\n            <div class=\"olli-cat__thumb\">\r\n              <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/wp-content\/uploads\/2023\/07\/Revit-1-1.png\" alt=\"Technology and Computers category thumbnail\">\r\n            <\/div>\r\n            <div class=\"olli-cat__body\">\r\n              <h3 class=\"olli-cat__title\">Technology and Computers<\/h3>\r\n              <div class=\"olli-cat__underline\" aria-hidden=\"true\"><\/div>\r\n              <p class=\"olli-cat__desc\">Courses cover topics like smartphones, computers, digital tools, and emerging technology that can make everyday life easier.<\/p>\r\n            <\/div>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <!-- CARD 3 -->\r\n        <li class=\"olli-cat\">\r\n          <a class=\"olli-cat__link\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/personal-finance\/\" aria-label=\"Browse Personal Finance courses\">\r\n            <div class=\"olli-cat__thumb\">\r\n              <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/wp-content\/uploads\/2024\/10\/Mask-Group-2.png\" alt=\"Personal Finance category thumbnail\">\r\n            <\/div>\r\n            <div class=\"olli-cat__body\">\r\n              <h3 class=\"olli-cat__title\">Personal Finance<\/h3>\r\n              <div class=\"olli-cat__underline\" aria-hidden=\"true\"><\/div>\r\n              <p class=\"olli-cat__desc\">Topics may include retirement planning, investments, budgeting, and strategies for managing finances with confidence.<\/p>\r\n            <\/div>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <!-- CARD 4 -->\r\n        <li class=\"olli-cat\">\r\n          <a class=\"olli-cat__link\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/health-and-fitness\/\" aria-label=\"Browse Health and Fitness courses\">\r\n            <div class=\"olli-cat__thumb\">\r\n              <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2026\/02\/IMG_5742-scaled.jpg\" alt=\"Health and Fitness category thumbnail\">\r\n            <\/div>\r\n            <div class=\"olli-cat__body\">\r\n              <h3 class=\"olli-cat__title\">Health and Fitness<\/h3>\r\n              <div class=\"olli-cat__underline\" aria-hidden=\"true\"><\/div>\r\n              <p class=\"olli-cat__desc\">Mind and body balance, movement, and well-being.<\/p>\r\n            <\/div>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <!-- CARD 5 -->\r\n        <li class=\"olli-cat\">\r\n          <a class=\"olli-cat__link\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/history\/\" aria-label=\"Browse History courses\">\r\n            <div class=\"olli-cat__thumb\">\r\n              <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2026\/02\/AdobeStock_246063095-scaled.jpeg\" alt=\"History category thumbnail\">\r\n            <\/div>\r\n            <div class=\"olli-cat__body\">\r\n              <h3 class=\"olli-cat__title\">History<\/h3>\r\n              <div class=\"olli-cat__underline\" aria-hidden=\"true\"><\/div>\r\n              <p class=\"olli-cat__desc\">History courses offer engaging discussions and fresh perspectives on topics ranging from ancient civilizations to modern times.<\/p>\r\n            <\/div>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <!-- CARD 6 -->\r\n        <li class=\"olli-cat\">\r\n          <a class=\"olli-cat__link\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/home-and-hobbies\/\" aria-label=\"Browse Home and Hobbies courses\">\r\n            <div class=\"olli-cat__thumb\">\r\n              <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/12\/home-and-hobbies-scaled.jpeg\" alt=\"Home and Hobbies category thumbnail\">\r\n            <\/div>\r\n            <div class=\"olli-cat__body\">\r\n              <h3 class=\"olli-cat__title\">Home and Hobbies<\/h3>\r\n              <div class=\"olli-cat__underline\" aria-hidden=\"true\"><\/div>\r\n              <p class=\"olli-cat__desc\">From practical skills to creative pastimes, these courses encourage curiosity and hands-on learning.<\/p>\r\n            <\/div>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <!-- CARD 7 -->\r\n        <li class=\"olli-cat\">\r\n          <a class=\"olli-cat__link\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/recreation\/\" aria-label=\"Browse Recreation courses\">\r\n            <div class=\"olli-cat__thumb\">\r\n              <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2026\/02\/IMG_5779-scaled.jpg\" alt=\"Recreation category thumbnail\">\r\n            <\/div>\r\n            <div class=\"olli-cat__body\">\r\n              <h3 class=\"olli-cat__title\">Recreation<\/h3>\r\n              <div class=\"olli-cat__underline\" aria-hidden=\"true\"><\/div>\r\n              <p class=\"olli-cat__desc\">Courses may include Mah Jongg, bridge, photography, and other activities that bring members together to learn and have fun.<\/p>\r\n            <\/div>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <!-- CARD 8 -->\r\n        <li class=\"olli-cat\">\r\n          <a class=\"olli-cat__link\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/writing\/\" aria-label=\"Browse Writing courses\">\r\n            <div class=\"olli-cat__thumb\">\r\n              <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/wp-content\/uploads\/2021\/07\/21WT_LanguagesAndWriting.jpg\" alt=\"Writing category thumbnail\">\r\n            <\/div>\r\n            <div class=\"olli-cat__body\">\r\n              <h3 class=\"olli-cat__title\">Writing<\/h3>\r\n              <div class=\"olli-cat__underline\" aria-hidden=\"true\"><\/div>\r\n              <p class=\"olli-cat__desc\">Courses may include creative writing, memoir, storytelling, and opportunities to share your work with others.<\/p>\r\n            <\/div>\r\n          <\/a>\r\n        <\/li>\r\n\r\n        <!-- CARD 9 -->\r\n        <li class=\"olli-cat\">\r\n          <a class=\"olli-cat__link\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/language\/\" aria-label=\"Browse World Languages courses\">\r\n            <div class=\"olli-cat__thumb\">\r\n              <img decoding=\"async\" src=\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2026\/02\/AdobeStock_303009582-scaled.jpeg\" alt=\"World Languages category thumbnail\">\r\n            <\/div>\r\n            <div class=\"olli-cat__body\">\r\n              <h3 class=\"olli-cat__title\"> Languages<\/h3>\r\n              <div class=\"olli-cat__underline\" aria-hidden=\"true\"><\/div>\r\n              <p class=\"olli-cat__desc\">Language courses focus on practical conversation and cultural understanding in a relaxed and supportive setting.<\/p>\r\n            <\/div>\r\n          <\/a>\r\n        <\/li>\r\n\r\n      <\/ul>\r\n    <\/div>\r\n  <\/section>\r\n\r\n\r\n\r\n<\/div>\r\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-461bbb4 elementor-section-full_width elementor-section-stretched elementor-section-height-default elementor-section-height-default\" data-id=\"461bbb4\" data-element_type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f4548f8\" data-id=\"f4548f8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-adfc196 elementor-widget elementor-widget-html\" data-id=\"adfc196\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!-- ========== OLLI CONTACT PAGE (2-COLUMN: COPY\/IMAGE LEFT + GENOO FORM RIGHT) ========== -->\r\n<section class=\"olli-contact-page\" aria-label=\"Contact OLLI page content\">\r\n  <style>\r\n    .olli-contact-page{\r\n      --wrap: 1200px; \/* slightly tighter than 1320 for comfort *\/\r\n      --padX: clamp(16px, 3vw, 40px);\r\n      --padY: clamp(22px, 4vw, 54px);\r\n      --gold:#FFC629;\r\n      --ink:#111;\r\n      --muted:#444;\r\n      --line:#e6e6e6;\r\n\r\n      margin:0;\r\n      padding:0;\r\n      background:#fff;\r\n      color: var(--ink);\r\n      font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif;\r\n    }\r\n    .olli-contact-page *{ box-sizing:border-box; }\r\n\r\n    \/* Full-bleed background, but content stays constrained *\/\r\n    .olli-contact-page__inner{\r\n      width: 100vw;\r\n      position: relative;\r\n      left: 50%;\r\n      right: 50%;\r\n      margin-left: -50vw;\r\n      margin-right: -50vw;\r\n      padding: var(--padY) var(--padX);\r\n      background:#fff;\r\n    }\r\n\r\n    .olli-contact-page__content{\r\n      max-width: var(--wrap);\r\n      margin: 0 auto;\r\n      width: 100%;\r\n    }\r\n\r\n    \/* Heading + KSU underline *\/\r\n    .olli-contact-page__title{\r\n      margin:0;\r\n      font-weight: 800;\r\n      line-height: 1.1;\r\n      font-size: clamp(34px, 3vw, 48px);\r\n      color: var(--ink);\r\n    }\r\n    .olli-underline{\r\n      width:56px;\r\n      height:6px;\r\n      background: var(--gold);\r\n      margin-top: 10px;\r\n    }\r\n\r\n    \/* =======================\r\n       2-COLUMN LAYOUT (SAFE)\r\n    ======================= *\/\r\n    .olli-contact-page__grid{\r\n      margin-top: clamp(16px, 2.4vw, 24px);\r\n      display:grid;\r\n      grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);\r\n      gap: clamp(16px, 2.6vw, 28px);\r\n      align-items:start;\r\n      width:100%;\r\n      max-width:100%;\r\n    }\r\n    @media (max-width: 980px){\r\n      .olli-contact-page__grid{ grid-template-columns: 1fr; }\r\n    }\r\n\r\n    \/* Critical: prevent overflow inside grid columns *\/\r\n    .olli-contact-page__left,\r\n    .olli-contact-page__right{\r\n      min-width:0;\r\n      max-width:100%;\r\n      overflow-wrap:anywhere;\r\n      word-break:break-word;\r\n    }\r\n\r\n    \/* LEFT *\/\r\n    .olli-contact-page__lede{\r\n      margin: 0 0 14px;\r\n      color: var(--muted);\r\n      font-size: clamp(16px, 1.1vw, 18px);\r\n      line-height: 1.6;\r\n      max-width: 70ch;\r\n    }\r\n\r\n    .olli-contact-page__imageWrap{\r\n      margin-top: 14px;\r\n      border-radius: 18px;\r\n      overflow: hidden;\r\n      border: 1px solid var(--line);\r\n      box-shadow: 0 10px 28px rgba(0,0,0,.08);\r\n      background:#fff;\r\n    }\r\n    .olli-contact-page__image{\r\n      display:block;\r\n      width:100%;\r\n      height:auto;\r\n    }\r\n\r\n    .olli-contact-page__support{\r\n      margin-top: 16px;\r\n      padding-top: 14px;\r\n      border-top: 1px solid var(--line);\r\n    }\r\n    .olli-contact-page__subhead{\r\n      margin: 0 0 8px;\r\n      font-size: 18px;\r\n      line-height: 1.25;\r\n      font-weight: 800;\r\n      color: var(--ink);\r\n    }\r\n    .olli-contact-page__list{\r\n      margin: 0;\r\n      padding-left: 18px;\r\n      color: var(--muted);\r\n      line-height: 1.6;\r\n    }\r\n    .olli-contact-page__list a{\r\n      color: inherit;\r\n      text-decoration-thickness: 2px;\r\n      text-underline-offset: 3px;\r\n    }\r\n\r\n    \/* RIGHT: Form card *\/\r\n    .olli-contact-page__formShell{\r\n      border: 1px solid var(--line);\r\n      border-radius: 20px;\r\n      background:#ffc629;\r\n      box-shadow: 0 10px 28px rgba(0,0,0,.08);\r\n      padding: clamp(16px, 2.2vw, 22px);\r\n      max-width:100%;\r\n      min-width:0;\r\n    }\r\n\r\n    \/* =======================\r\n       GENOO FORM SKIN (scoped)\r\n       - Apply the \u201cnewsletter skin\u201d to this form container\r\n    ======================= *\/\r\n\r\n    \/* Layout guardrails (this is what stops \"break off the page\") *\/\r\n    .olli-contact-page__formShell *{ max-width: 100%; }\r\n    .olli-contact-page__formShell form{ width:100% !important; max-width:100% !important; }\r\n\r\n    .olli-contact-page__formShell label{\r\n      display:block;\r\n      font-weight:600;\r\n      margin:0 0 6px;\r\n    }\r\n\r\n    .olli-contact-page__formShell input[type=\"email\"],\r\n    .olli-contact-page__formShell input[type=\"text\"],\r\n    .olli-contact-page__formShell input[type=\"tel\"],\r\n    .olli-contact-page__formShell input[type=\"url\"],\r\n    .olli-contact-page__formShell input[type=\"number\"],\r\n    .olli-contact-page__formShell select,\r\n    .olli-contact-page__formShell textarea{\r\n      width:100% !important;\r\n      max-width:100% !important;\r\n      padding:12px 14px;\r\n      border:1px solid rgba(0,0,0,.2);\r\n      border-radius:10px;\r\n      font:inherit;\r\n      line-height:1.2;\r\n      background:#fff;\r\n      box-sizing:border-box;\r\n    }\r\n\r\n    .olli-contact-page__formShell input::placeholder,\r\n    .olli-contact-page__formShell textarea::placeholder{\r\n      opacity:.7;\r\n    }\r\n\r\n    .olli-contact-page__formShell input:focus,\r\n    .olli-contact-page__formShell select:focus,\r\n    .olli-contact-page__formShell textarea:focus{\r\n      outline:none;\r\n      border-color:rgba(0,0,0,.45);\r\n      box-shadow:0 0 0 3px rgba(255, 198, 41, .35);\r\n    }\r\n\r\n    .olli-contact-page__formShell button,\r\n    .olli-contact-page__formShell input[type=\"submit\"],\r\n    .olli-contact-page__formShell .wpcf7-submit{\r\n      appearance:none;\r\n      border:0;\r\n      border-radius:999px;\r\n      padding:12px 18px;\r\n      font:inherit;\r\n      font-weight:700;\r\n      cursor:pointer;\r\n      background:#111 !important;\r\n      color:#fff !important;\r\n      transition:transform .08s ease, opacity .2s ease;\r\n      max-width:100%;\r\n      white-space: normal;\r\n    }\r\n\r\n    .olli-contact-page__formShell button:hover,\r\n    .olli-contact-page__formShell input[type=\"submit\"]:hover,\r\n    .olli-contact-page__formShell .wpcf7-submit:hover{\r\n      opacity:.92;\r\n    }\r\n    .olli-contact-page__formShell button:active,\r\n    .olli-contact-page__formShell input[type=\"submit\"]:active,\r\n    .olli-contact-page__formShell .wpcf7-submit:active{\r\n      transform:translateY(1px);\r\n    }\r\n\r\n    \/* If Genoo outputs paragraph wrappers, keep spacing tidy *\/\r\n    .olli-contact-page__formShell p{ margin: 0 0 12px; }\r\n    .olli-contact-page__formShell p:last-child{ margin-bottom: 0; }\r\n\r\n    \/* If Genoo uses a 2-col field row internally, don't let it overflow *\/\r\n    .olli-contact-page__formShell .row,\r\n    .olli-contact-page__formShell .columns,\r\n    .olli-contact-page__formShell .field,\r\n    .olli-contact-page__formShell .fields{\r\n      max-width:100%;\r\n      min-width:0;\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"olli-contact-page__inner\">\r\n    <div class=\"olli-contact-page__content\">\r\n      <h1 class=\"olli-contact-page__title\">Stay Connected!<\/h1>\r\n      <div class=\"olli-underline\" aria-hidden=\"true\"><\/div>\r\n\r\n      <div class=\"olli-contact-page__grid\" role=\"region\" aria-label=\"Contact information and form\">\r\n        <!-- LEFT: intro copy + image -->\r\n        <div class=\"olli-contact-page__left\">\r\n          <p class=\"olli-contact-page__lede\">\r\n            <strong>Have a question about courses, membership, or registration? Send us a message and our team will get back to you.<\/strong>\r\n          <\/p>\r\n\r\n          <div class=\"olli-contact-page__imageWrap\">\r\n            <img\r\n              class=\"olli-contact-page__image\"\r\n              src=\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/11\/CPE_250217_Painting_0040-scaled.jpg\"\r\n              alt=\"OLLI members participating in a class\"\r\n              loading=\"lazy\"\r\n              decoding=\"async\"\r\n            \/>\r\n          <\/div>\r\n\r\n          \r\n        <\/div>\r\n\r\n        <!-- RIGHT: Genoo form -->\r\n        <div class=\"olli-contact-page__right\">\r\n          <div class=\"olli-contact-page__formShell\" aria-label=\"Contact form\">\r\n            <div class=\"gn-generated\" id=\"f_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b\"><?xml encoding=\"utf-8\" ?><div id=\"gn2b78f757c8c0de99572ebd404e4b919d\" class=\"genooForm genooShortcode themeResetDefault \"><div class=\"genooGuts\"><div id=\"genooMsg\"><\/div>\n\n<script type=\"text\/javascript\" src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/intl-tel-input\/17.0.19\/js\/intlTelInput.min.js\"><\/script> \n<script>\n\/* <![CDATA[ *\/\nfunction isInteger(s) {\nvar i;\nfor (i = 0; i < s.length; i++) {\nvar c = s.charAt(i);\nif (((c < \"0\") || (c > \"9\"))) return false;\n}\nreturn true;\n}\nfunction stripCharsInBag(s, bag){\nvar i;\nvar returnString = \"\";\nfor (i = 0; i < s.length; i++){\nvar c = s.charAt(i);\nif (bag.indexOf(c) == -1) returnString += c;\n}\nreturn returnString;\n}\nfunction checkAreaCode(val){\nvar res=false;\nfor (var i=0; i<AreaCode.length;i++){\nif(AreaCode[i]==val) res=true;\n}\nreturn res;\n}\n\n\nfunction validateForm_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b(formElem) {\nif (window.ga){ga('send',{hitType: 'event', eventCategory: 'Form', eventAction: 'complete', transport: 'beacon'});}\nvar oldErrorMsgs = formElem.querySelectorAll('.gn-error-msg');\ndocument.getElementById('referrer_page_url').value = window.location.href;\nvar referrerElement = document.createElement(\"input\");\nreferrerElement.setAttribute(\"type\", \"hidden\");\nreferrerElement.setAttribute(\"value\", window.location.href);\nreferrerElement.setAttribute(\"name\", \"referrer_page_url_2\");\nreferrerElement.setAttribute(\"id\", \"referrer_page_url_2\");\nformElem.appendChild(referrerElement);\n\nfor (var j=0;j<oldErrorMsgs.length;j++){\noldErrorMsgs[j].parentNode.removeChild(oldErrorMsgs[j]);\n}\nvar reqParents = formElem.querySelectorAll('[data-required=\"true\"]');\nfor (var i=0; i<reqParents.length; i++) {\nvar reqInput = reqParents[i].querySelector(\n'input:not([type=\"radio\"]):not([type=\"checkbox\"]),select,textarea');\nvar containsCheckedCheckbox =\n!reqInput && reqParents[i].querySelector('input[type=\"radio\"]:checked,input[type=\"checkbox\"]:checked');\nvar labelInput = reqParents[i].querySelector('label');\nif ( (!reqInput && !containsCheckedCheckbox) || (reqInput && reqInput.value === '') ) {\nvar errorMsg = document.createElement('span');\nerrorMsg.className = 'gn-error-msg';\nerrorMsg.innerHTML = labelInput.innerHTML;\nif ( formElem.getAttribute('data-req-err') ){\nerrorMsg.innerHTML += formElem.getAttribute('data-req-err');\n} else {\nerrorMsg.innerHTML +' is a required field';\n}\nerrorMsg.style.color = '#FF0000';\nif ( reqInput && reqInput.nextSibling ) {\nreqParents[i].insertBefore(errorMsg, reqInput.nextSibling);\n} else {\nreqParents[i].appendChild( errorMsg );\n}\nreturn false;\n}\n\/* Validate Phone Numbers *\/\nif (\nformElem.className.match( 'validate-phone-usa' ) &&\nreqInput &&\n[\"phone\",\"fax\",\"mobile_phone\",\"work_phone\"].indexOf(reqInput.getAttribute('name')) > -1 &&\nreqInput.value.match(\/[<>()^\\\\]\/g)\n) {\nvar errorMsg = document.createElement('span');\nerrorMsg.style = \"color: red;\";\nerrorMsg.className = \"gn-error-msg\";\nerrorMsg.innerHTML = \"Phone Number contains incorrect characters\";\nif ( reqInput.nextSibling ) {\nreqInput.parentNode.parentNode.insertBefore( errorMsg,  reqInput.nextSibling);\n} else {\nreqInput.parentNode.parentNode.appendChild( errorMsg );\n}\nreturn false;\n}\n}\nvar confirmElem = formElem.querySelector('[name=\"email_confirm\"]');\nif ( confirmElem && confirmElem.value !== formElem.querySelector('[name=\"email\"]').value ){\nvar errorMsg = document.createElement('span');\nerrorMsg.className = 'gn-error-msg';\nif ( formElem.getAttribute('data-match-err') ) {\nerrorMsg.innerHTML = formElem.getAttribute('data-match-err');\n} else {\nerrorMsg.innerHTML = \"Email and Confirmation Email do not match. Please correct\";\n}\nerrorMsg.style.color = '#FF0000';\nif ( reqInput && confirmElem.nextSibling ) {\nconfirmElem.insertBefore(errorMsg, reqInput.nextSibling);\n} else {\nconfirmElem.appendChild( errorMsg );\n}\nreturn false;\n};\nif (window.ga){ga('send',{hitType: 'event', eventCategory: 'Form', eventAction: 'complete'});}\nreturn true;\n}\nsetInterval(function(){\nvar uninitiatedForms = document.querySelectorAll(\"form[data-action]\");\nfor (var i=0; i<uninitiatedForms.length; i++) {\nuninitiatedForms[i].setAttribute(\n\"action\",\nuninitiatedForms[i].getAttribute(\"data-action\")\n);\nuninitiatedForms[i].removeAttribute(\"data-action\");\n}\n}, 1000);\n\nfunction updateDateField() {\nvar formElement = document.getElementById(\"form-_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b\");\n\nvar dateFields = [].slice.call(formElement.querySelectorAll(\n'[data-template=\"template--date-1\"],[data-template=\"template--datetime-1\"]'\n));\n\nvar dateFields = [].slice.call(formElement.querySelectorAll('.gn-field-date'));\ndateFields.forEach(function(x){\nvar isDatetimeField = x.querySelectorAll('[name]').length > 4;\nvar fieldName = x.querySelector(\"input\").getAttribute(\"name\");\n\nx.querySelector(\"[name=\\\"\"+fieldName+\"_month\\\"]\").value\n\nlet fieldValue = x.querySelector(\"[name=\\\"\"+fieldName+\"_month\\\"]\").value + \"\/\"\n+ x.querySelector(\"[name=\\\"\"+fieldName+\"_day\\\"]\").value + \"\/\"\n+ x.querySelector(\"[name=\\\"\"+fieldName+\"_year\\\"]\").value;\nif (isDatetimeField) {\nfieldValue += \" \"\n+  x.querySelector(\"[name=\\\"\"+fieldName+\"_hour\\\"]\").value + \":\"\n+  x.querySelector(\"[name=\\\"\"+fieldName+\"_minute\\\"]\").value;\n}\nx.querySelector(\"input\").setAttribute(\"value\", fieldValue);\n})\n}\nfunction onSubmit__1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b(token){\nvar formElement = document.getElementById(\"form-_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b\");\n\nupdateDateField();\n\nvar formIsValid = validateForm_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b( formElement );\nif( formIsValid ) {\n\tformElement.submit();\n}\n}\n\/* ]]> *\/\n<\/script>\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/intl-tel-input\/17.0.19\/css\/intlTelInput.css\">\n<style scoped>\n#on-step-2-_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b:not(:checked) ~ .gn-tier-0 {display: none;}\n#on-step-2-_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b:checked ~ .gn-step-1-overlay {display: none;}\n[name=\"c00eudatasubject\"]:not(:checked) ~ .gdpr-mssg {display: none !important;}\n.gdpr-mssg {\nmargin: 8px;\npadding: 12px;\nborder: dashed 1px;\nborder-radius: 6px;\n}\n.gdpr-mssg textarea {\nbackground: rgba(0, 0, 0, 0);\nborder: none;\noutline: 0;\ncursor: text;\nresize: none;\n}\n[data-display=\"false\"] { display: none !important;}\n\t.iti__country-list {\n\t\tlist-style: none !important;\n\t}\n\t.iti__country-list{\n\t\tbackground-color:white !important;\n\t}\n\t\n<\/style>\n\n\n<form class=\"gn-form bootstrap-plain validate-phone-usa ext-form  \" action=\"https:\/\/api.genoo.com\/servlet\/PostForm\" data-action=\"https:\/\/api.genoo.com\/servlet\/PostForm\" method=\"post\" data-req-err=\" is a required field\" data-match-err=\"Email and Confirmation Email do not match. Please correct\" onsubmit=\"return validateForm_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b(this);\" style=\"position: relative !important;\" id=\"form-_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b\"><input type=\"hidden\" name=\"form_version\" value=\"KIMjE2LjczLjIxNy4xMDY=zd\">\n<noscript><span style=\"background: #ff0000; color: #ffffff; display: block; text-align: center; padding: 12px; margin-bottom: 12px; font-family: arial;\">You need Javascript enabled to submit this form.<\/span><\/noscript>\n<input type=\"hidden\" name=\"form_key\" value=\"000fpk23186863:mgppgucy\">\n<input type=\"hidden\" name=\"prefill\" value=\"true\">\n\t<input type=\"hidden\" name=\"prefill_utmparams\" value=\"false\">\n<input type=\"hidden\" id=\"referrer_page_url\" name=\"referrer_page_url\">\n\t<input type=\"hidden\" id=\"country_code\" name=\"country_code\">\n\t<input type=\"hidden\" id=\"work_phone_country_code\" name=\"work_phone_country_code\">\n\t<input type=\"hidden\" id=\"mobile_phone_country_code\" name=\"mobile_phone_country_code\">\n\n\n<input type=\"hidden\" name=\"returl\" value=\"https:\/\/cpe.kennesaw.edu\/olli\/\"><div class=\"gn-tier-0\"><div style=\"width: 100%; display: inline-block;\"><p class=\" \"><span>Want to learn more about our travel program, OLLI Memberships, or have a question? Fill out the form below and we&rsquo;ll be in touch!<\/span><\/p><p class=\" \"><span><br data-mce-bogus=\"1\"><\/span><\/p><\/div><div class=\"form-group\" style=\"width: 100%; display: inline-block;\" data-required=\"true\"><label for=\"text-field-14827631723285528\" class=\"control-label  \">First Name*<\/label><div class=\"gn-field-container\" style=\"margin: 0 2px;\"><input id=\"text-field-14827631723285528\" class=\"form-control ext-form-input  \" placeholder=\"\" type=\"text\" name=\"first_name\"><\/div><\/div><div class=\"form-group\" style=\"width: 100%; display: inline-block;\" data-required=\"true\"><label for=\"text-field-6654683233691497\" class=\"control-label  \">Last Name*<\/label><div class=\"gn-field-container\" style=\"margin: 0 2px;\"><input id=\"text-field-6654683233691497\" class=\"form-control ext-form-input  \" placeholder=\"\" type=\"text\" name=\"last_name\"><\/div><\/div><div class=\"form-group\" style=\"width: 100%; display: inline-block;\" data-required=\"true\"><label for=\"text-field-6435094924271026\" class=\"control-label  \">Email *<\/label><div class=\"gn-field-container\" style=\"margin: 0 2px;\"><input id=\"text-field-6435094924271026\" class=\"form-control ext-form-input  \" placeholder=\"\" type=\"email\" name=\"email\"><\/div><\/div><div class=\"form-group\" style=\"width: 100%; display: inline-block;\" data-required=\"\"><label for=\"text-field-23538246825974485\" class=\"control-label  \">Phone #<\/label><div class=\"gn-field-container\" style=\"margin: 0 2px;\"><input id=\"text-field-23538246825974485\" class=\"form-control ext-form-input  \" placeholder=\"\" type=\"text\" name=\"phone\"><\/div><\/div><div class=\"form-group\" style=\"width: 100%; display: inline-block;\" data-required=\"\"><label for=\"textarea-011773055182686343\" class=\"control-label  \">What course(s) are you interested in? Please be as specific as possible (course name, start date, time, etc.). Enter a comment or question in the box below.<\/label><div class=\"gn-field-container\"><textarea id=\"textarea-011773055182686343\" class=\"form-control  \" placeholder=\"\" rows=\"3\" name=\"comments_txt\"><\/textarea><\/div><\/div><div style=\"width: 100%;\"><style> div:not(.gn-component--selected) > .gn-btn:hover {} <\/style><button class=\"g-recaptcha gn-btn  \" data-sitekey=\"6LcF_SgUAAAAAPwMRyVefTy_IdkLnM7SCVjSEo0B\" data-callback=\"onSubmit__1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b\" style=\"width: 100%; background-color: rgb(255, 198, 41); color: rgb(0, 0, 0);\" onclick=\"this.setAttribute('onclick', this.getAttribute('callback'))\" data-background-color=\"\" data-color=\"\">Tell Me More<\/button><\/div><div style=\"clear: both;\"><\/div><\/div>\n<script>\nconsole.log(document.getElementById(\"form-_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b\").querySelectorAll(\"[data-set-val]\"));\n[].slice.call(document.getElementById(\"form-_1_6d4f64b0e38e638a33eabde1ec04c5b25502f28b\").querySelectorAll(\"[data-set-val]\")).forEach(function(elem) {elem.value = eval(elem.getAttribute(\"data-set-val\"))});\nfunction gn_each( query, fn ){\nvar c = document.querySelectorAll(query);\nif (c.length){for(var i=0;i<c.length;i++){fn(c[i]);}}\n}\nvar b = document.querySelectorAll(\"[name=\\\"c00gdprconsent\\\"]\");\nfor ( var i=0; i<b.length; i++ ) {\nvar node = b[i];\nnode.addEventListener(\n\"change\",\nfunction(){\nvar consentMessage = this.parentNode.querySelector(\"[name=\\\"c00gdprconsentmsg\\\"]\");\nif ( this.checked ) {\nconsentMessage.removeAttribute(\"disabled\");\n} else {\nconsentMessage.setAttribute(\"disabled\", \"true\");\n}\n}\n)\n}\n\n\t  var phoneFieldData = document.getElementsByName(\"phone\");\n\t  console.log(\"phoneFieldData=\" + phoneFieldData)\n\t  if (phoneFieldData) {\n\t\tphoneFieldData.forEach(function (phoneItem) {\n\t\tif (phoneItem && phoneItem.id) {\n\t  \tvar phoneFieldId = phoneItem.id;\n\t  \t\n\t  \tif (phoneFieldId) {\n\t\t\tdocument.getElementById(phoneFieldId).type=\"tel\";\n\t\tvar phoneInputField = document.querySelector(\"#\"+phoneFieldId);\n\t\tvar phoneInput = window.intlTelInput(phoneInputField, {\n\t\/\/ https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2\n\tpreferredCountries: [\"us\", \"ca\"],\n\tutilsScript:\n\t\t\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/intl-tel-input\/17.0.19\/js\/utils.js\",\n\t\t});\n\t  \t\t\n\t\t\tvar element = document.getElementById(phoneFieldId);\n\t\t\telement.addEventListener(\"click\", function() {\n\t\t\t\tif(phoneInput && phoneInput.s) {\n\t\t\t\t\tconsole.log(\"CountryCode\"+phoneInput.s.dialCode);\n\t\t\t\t\tdocument.getElementById(\"country_code\").value = phoneInput.s.dialCode;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(\"CountryCode is blank\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t}\n\t\t});\n\t  }\n\n\tvar workphoneFieldData = document.getElementsByName(\"work_phone\");\n\t  console.log(\"workphoneFieldData=\" + workphoneFieldData)\n\t  if (workphoneFieldData) {\n\n\t\tworkphoneFieldData.forEach(function (phoneItem) {\n\t\tif (phoneItem && phoneItem.id) {\n\t  \tvar workphoneFieldId = phoneItem.id;\n\t  \tif (workphoneFieldId) {\n\t\t\tdocument.getElementById(workphoneFieldId).type=\"tel\";\n\t\tvar workphoneInputField = document.querySelector(\"#\"+workphoneFieldId);\n\t\tvar workphoneInput = window.intlTelInput(workphoneInputField, {\n\t\/\/ https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2\n\tpreferredCountries: [\"us\", \"ca\"],\n\tutilsScript:\n\t\t\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/intl-tel-input\/17.0.19\/js\/utils.js\",\n\t\t});\n\t  \t\t\n\t\t\tvar element1 = document.getElementById(workphoneFieldId);\n\t\t\telement1.addEventListener(\"click\", function() {\n\t\t\t\tif(workphoneInput && workphoneInput.s) {\n\t\t\t\t\tconsole.log(\"CountryCode\"+workphoneInput.s.dialCode);\n\t\t\t\t\tdocument.getElementById(\"work_phone_country_code\").value = workphoneInput.s.dialCode;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(\"workphone CountryCode is blank\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t}\n\t\t});\n\t  }\n\n\tvar mobilephoneFieldData = document.getElementsByName(\"mobile_phone\");\n\t  console.log(\"mobilephoneFieldData=\" + mobilephoneFieldData)\n\t\n\t  if (mobilephoneFieldData) {\n\n\t\tmobilephoneFieldData.forEach(function (phoneItem) {\n\t\t  if (phoneItem && phoneItem.id) {\n\t  \t\tvar mobilephoneFieldId = phoneItem.id;\n\t  \t\tif (mobilephoneFieldId) {\n\t\t\t\tdocument.getElementById(mobilephoneFieldId).type=\"tel\";\n\t\t\tvar mobilephoneInputField = document.querySelector(\"#\"+mobilephoneFieldId);\n\t\t\tvar mobilephoneInput = window.intlTelInput(mobilephoneInputField, {\n\t\t\/\/ https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2\n\t\tpreferredCountries: [\"us\", \"ca\"],\n\t\tutilsScript:\n\t\t\t\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/intl-tel-input\/17.0.19\/js\/utils.js\",\n\t\t\t});\n\t  \t\t\n\t\t\t\tvar element2 = document.getElementById(mobilephoneFieldId);\n\t\t\t\telement2.addEventListener(\"click\", function() {\n\t\t\t\tif(mobilephoneInput && mobilephoneInput.s) {\n\t\t\t\t\tconsole.log(\"CountryCode\"+mobilephoneInput.s.dialCode);\n\t\t\t\t\tdocument.getElementById(\"mobile_phone_country_code\").value = mobilephoneInput.s.dialCode;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(\"mobilephone CountryCode is blank\");\n\t\t\t\t}\n\t\t\t});\n\t\t  }\n\t\t }\n\t\t});\n\t  }\n\n\n<\/script>\n<br>\n<\/form>\n<\/div><\/div><\/div><script type=\"text\/javascript\">if(typeof GenooCSS != \"undefined\"){ GenooCSS.add(\"#gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form input[type=\\\"radio\\\"] ~ span{padding-left: 4px;}\\n#gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form, #gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form *{box-sizing: border-box;font-family: Arial, helvetica, sans-serif;font-size: 15px;line-height: 1.42857143;color: #2c3e50;}\\n#gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form .form-group{margin-bottom: 14px;display: inline-block;width: 100%;}\\n#gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form label{display: inline-block;max-width: 100%;margin-bottom: 5px;font-weight: 700;}\\n#gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form input.form-control, #gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form select.form-control, #gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form textarea.form-control{display: block;width: 100%;height: 34px;font-size: 14px;line-height: 1.42857143;color: #555;background-color: #fff;background-image: none;border: 1px solid #ccc;border-radius: 4px;-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);box-shadow: inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;}\\n#gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form textarea.form-control{ height: auto; }\\n#gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form .gn-field-container{margin: 0 2px;}\\n#gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form input.form-control:focus, #gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain.gn-form select.form-control:focus{border-color: #66afe9;outline: 0;-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);}\\n#gn2b78f757c8c0de99572ebd404e4b919d \\\/* The Button *\\\/.bootstrap-plain .gn-btn, #gn2b78f757c8c0de99572ebd404e4b919d .bootstrap-plain .gn-form input[type=\\\"submit\\\"]{display: inline-block;padding: 6px 12px;margin-bottom: 0;font-size: 14px;font-weight: 400;line-height: 1.42857143;text-align: center;white-space: nowrap;vertical-align: middle;-ms-touch-action: manipulation;touch-action: manipulation;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;background-image: none;border: 1px solid transparent;border-radius: 4px;background: rgb(255, 50, 50);color: rgb(255, 255, 255);}\\n#gn2b78f757c8c0de99572ebd404e4b919d .gn-form input[type=\\\"submit\\\"]{background-color: rgb(255, 198, 41);color: rgb(0, 0, 0);width: 100%;}\\n\"); }<\/script>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Explore Courses at OLLI at KSU Explore a diverse selection of courses designed to inspire curiosity, creativity, and lifelong learning. Browse the categories below to discover opportunities that match your interests, challenge your mind, and connect you with a vibrant community of lifelong learners. View Catalog (PDF) Search OLLI classes Search Art and Music Explore&#8230;<\/p>\n","protected":false},"author":23,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-3471","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OLLI at KSU Courses | Adult Education Classes in Kennesaw, GA<\/title>\n<meta name=\"description\" content=\"Explore engaging non-credit courses for adults 50+ at KSU. No tests, no grades \u2014 just the joy of learning what interests you.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OLLI at KSU Courses | Adult Education Classes in Kennesaw, GA\" \/>\n<meta property=\"og:description\" content=\"Explore engaging non-credit courses for adults 50+ at KSU. No tests, no grades \u2014 just the joy of learning what interests you.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/\" \/>\n<meta property=\"og:site_name\" content=\"OLLI at Community and Professional Education - Kennesaw State University\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-12T14:22:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/10\/CPE_250217_Painting_0076-scaled.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/\",\"url\":\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/\",\"name\":\"OLLI at KSU Courses | Adult Education Classes in Kennesaw, GA\",\"isPartOf\":{\"@id\":\"https:\/\/cpe.kennesaw.edu\/olli\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/10\/CPE_250217_Painting_0076-scaled.jpg\",\"datePublished\":\"2025-10-24T13:06:44+00:00\",\"dateModified\":\"2026-06-12T14:22:11+00:00\",\"description\":\"Explore engaging non-credit courses for adults 50+ at KSU. No tests, no grades \u2014 just the joy of learning what interests you.\",\"breadcrumb\":{\"@id\":\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#primaryimage\",\"url\":\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/10\/CPE_250217_Painting_0076-scaled.jpg\",\"contentUrl\":\"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/10\/CPE_250217_Painting_0076-scaled.jpg\",\"width\":2560,\"height\":1618},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cpe.kennesaw.edu\/olli\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Courses\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cpe.kennesaw.edu\/olli\/#website\",\"url\":\"https:\/\/cpe.kennesaw.edu\/olli\/\",\"name\":\"OLLI at Community and Professional Education - Kennesaw State University\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cpe.kennesaw.edu\/olli\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OLLI at KSU Courses | Adult Education Classes in Kennesaw, GA","description":"Explore engaging non-credit courses for adults 50+ at KSU. No tests, no grades \u2014 just the joy of learning what interests you.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/","og_locale":"en_US","og_type":"article","og_title":"OLLI at KSU Courses | Adult Education Classes in Kennesaw, GA","og_description":"Explore engaging non-credit courses for adults 50+ at KSU. No tests, no grades \u2014 just the joy of learning what interests you.","og_url":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/","og_site_name":"OLLI at Community and Professional Education - Kennesaw State University","article_modified_time":"2026-06-12T14:22:11+00:00","og_image":[{"url":"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/10\/CPE_250217_Painting_0076-scaled.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/","url":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/","name":"OLLI at KSU Courses | Adult Education Classes in Kennesaw, GA","isPartOf":{"@id":"https:\/\/cpe.kennesaw.edu\/olli\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#primaryimage"},"image":{"@id":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#primaryimage"},"thumbnailUrl":"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/10\/CPE_250217_Painting_0076-scaled.jpg","datePublished":"2025-10-24T13:06:44+00:00","dateModified":"2026-06-12T14:22:11+00:00","description":"Explore engaging non-credit courses for adults 50+ at KSU. No tests, no grades \u2014 just the joy of learning what interests you.","breadcrumb":{"@id":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cpe.kennesaw.edu\/olli\/courses\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#primaryimage","url":"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/10\/CPE_250217_Painting_0076-scaled.jpg","contentUrl":"https:\/\/cpe.kennesaw.edu\/olli\/wp-content\/uploads\/sites\/7\/2025\/10\/CPE_250217_Painting_0076-scaled.jpg","width":2560,"height":1618},{"@type":"BreadcrumbList","@id":"https:\/\/cpe.kennesaw.edu\/olli\/courses\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cpe.kennesaw.edu\/olli\/"},{"@type":"ListItem","position":2,"name":"Courses"}]},{"@type":"WebSite","@id":"https:\/\/cpe.kennesaw.edu\/olli\/#website","url":"https:\/\/cpe.kennesaw.edu\/olli\/","name":"OLLI at Community and Professional Education - Kennesaw State University","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cpe.kennesaw.edu\/olli\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/cpe.kennesaw.edu\/olli\/wp-json\/wp\/v2\/pages\/3471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cpe.kennesaw.edu\/olli\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cpe.kennesaw.edu\/olli\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cpe.kennesaw.edu\/olli\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/cpe.kennesaw.edu\/olli\/wp-json\/wp\/v2\/comments?post=3471"}],"version-history":[{"count":6,"href":"https:\/\/cpe.kennesaw.edu\/olli\/wp-json\/wp\/v2\/pages\/3471\/revisions"}],"predecessor-version":[{"id":6345,"href":"https:\/\/cpe.kennesaw.edu\/olli\/wp-json\/wp\/v2\/pages\/3471\/revisions\/6345"}],"wp:attachment":[{"href":"https:\/\/cpe.kennesaw.edu\/olli\/wp-json\/wp\/v2\/media?parent=3471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}