{"id":30457,"date":"2026-06-01T19:45:13","date_gmt":"2026-06-01T19:45:13","guid":{"rendered":"https:\/\/onionlabs.link\/travelart\/?page_id=30457"},"modified":"2026-06-17T10:19:02","modified_gmt":"2026-06-17T10:19:02","slug":"groups","status":"publish","type":"page","link":"https:\/\/onionlabs.link\/travelart\/groups\/","title":{"rendered":"Groups"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"30457\" class=\"elementor elementor-30457\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d4fc8c4 elementor-section-full_width elementor-section-height-default elementor-section-height-default sc_fly_static\" data-id=\"d4fc8c4\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-extended\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-aabd002 sc_content_align_inherit sc_layouts_column_icons_position_left sc_fly_static\" data-id=\"aabd002\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-348006f sc_fly_static elementor-widget elementor-widget-html\" data-id=\"348006f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <meta name=\"theme-color\" content=\"#020202\">\n  <title>TravelArt Africa | Group Travel<\/title>\n  <script>\n    document.documentElement.classList.add(\"js\");\n    if (new URLSearchParams(window.location.search).get(\"embed\") === \"1\") {\n      document.documentElement.classList.add(\"embed-mode\");\n    }\n  <\/script>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:wght@400;500;700;900&amp;family=Outfit:wght@500;700;900&amp;display=swap\" rel=\"stylesheet\">\n  <style>\n    :root {\n      --green: #00fad3;\n      --black: #020202;\n      --white: #ffffff;\n      --ink: #111111;\n      --muted: #686868;\n      --line: rgba(0, 0, 0, .13);\n      --soft: #f4f4f2;\n      --radius: 10px;\n    }\n\n    * {\n      box-sizing: border-box;\n    }\n\n    html {\n      scroll-behavior: smooth;\n      background: var(--white);\n    }\n\n    body {\n      margin: 0;\n      overflow-x: hidden;\n      color: var(--ink);\n      background:\n        linear-gradient(90deg, rgba(0, 0, 0, .035) 1px, transparent 1px) 0 0 \/ 72px 72px,\n        linear-gradient(rgba(0, 0, 0, .035) 1px, transparent 1px) 0 0 \/ 72px 72px,\n        var(--white);\n      font-family: \"DM Sans\", Arial, sans-serif;\n    }\n\n    ::selection {\n      color: var(--black);\n      background: var(--green);\n    }\n\n    a {\n      color: inherit;\n      text-decoration: none;\n    }\n\n    button,\n    a {\n      -webkit-tap-highlight-color: transparent;\n    }\n\n    .progress {\n      position: fixed;\n      z-index: 100;\n      top: 0;\n      left: 0;\n      width: 0;\n      height: 4px;\n      background: var(--green);\n    }\n\n    .hero {\n      --hero-gutter: clamp(20px, 5vw, 72px);\n      position: relative;\n      min-height: 100svh;\n      display: grid;\n      align-items: end;\n      overflow: hidden;\n      padding: 130px var(--hero-gutter) 46px;\n      color: var(--white);\n      background:\n        radial-gradient(circle at 75% 30%, rgba(0, 250, 211, .22), transparent 25%),\n        radial-gradient(circle at 20% 105%, rgba(0, 250, 211, .15), transparent 32%),\n        var(--black);\n    }\n\n    .hero::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      opacity: .25;\n      background:\n        linear-gradient(90deg, rgba(255, 255, 255, .12) 1px, transparent 1px) 0 0 \/ 72px 72px,\n        linear-gradient(rgba(255, 255, 255, .12) 1px, transparent 1px) 0 0 \/ 72px 72px;\n      mask-image: linear-gradient(to bottom, transparent, #000 30%, #000);\n    }\n\n    .hero-orbit {\n      position: absolute;\n      z-index: 1;\n      top: 11%;\n      right: clamp(-140px, -5vw, -30px);\n      width: clamp(360px, 46vw, 680px);\n      aspect-ratio: 1;\n      border: 1px solid rgba(255, 255, 255, .18);\n      border-radius: 50%;\n      animation: rotate 25s linear infinite;\n    }\n\n    .hero-orbit::before,\n    .hero-orbit::after {\n      content: \"\";\n      position: absolute;\n      border: 1px solid rgba(255, 255, 255, .12);\n      border-radius: 50%;\n    }\n\n    .hero-orbit::before {\n      inset: 14%;\n    }\n\n    .hero-orbit::after {\n      inset: 29%;\n    }\n\n    .orbit-dot {\n      position: absolute;\n      display: grid;\n      place-items: center;\n      width: clamp(54px, 7vw, 88px);\n      aspect-ratio: 1;\n      border: 5px solid var(--black);\n      border-radius: 50%;\n      color: var(--black);\n      background: var(--green);\n      font-family: \"Outfit\", sans-serif;\n      font-weight: 900;\n      animation: rotate-reverse 25s linear infinite;\n    }\n\n    .orbit-dot:nth-child(1) {\n      top: 2%;\n      left: 20%;\n    }\n\n    .orbit-dot:nth-child(2) {\n      top: 48%;\n      right: -5%;\n      background: var(--white);\n    }\n\n    .orbit-dot:nth-child(3) {\n      bottom: 0;\n      left: 22%;\n    }\n\n    .orbit-dot:nth-child(4) {\n      top: 42%;\n      left: -4%;\n      background: var(--white);\n    }\n\n    .hero-inner {\n      position: relative;\n      z-index: 3;\n      width: min(1240px, 100%);\n      margin: 0 auto;\n    }\n\n    .eyebrow {\n      display: inline-flex;\n      align-items: center;\n      gap: 10px;\n      margin-bottom: 23px;\n      color: var(--green);\n      font-size: 13px;\n      font-weight: 900;\n      letter-spacing: .1em;\n      text-transform: uppercase;\n    }\n\n    .eyebrow::before {\n      content: \"\";\n      width: 42px;\n      height: 2px;\n      background: currentColor;\n    }\n\n    h1,\n    h2,\n    h3,\n    p {\n      margin-top: 0;\n    }\n\n    h1,\n    h2,\n    h3 {\n      margin-bottom: 0;\n      font-family: \"Outfit\", \"DM Sans\", Arial, sans-serif;\n      letter-spacing: -.045em;\n    }\n\n    h1 {\n      max-width: 1040px;\n      font-size: clamp(63px, 13vw, 178px);\n      line-height: .78;\n      text-transform: uppercase;\n    }\n\n    .hero h1 {\n      color: var(--white);\n    }\n\n    .stroke {\n      display: block;\n      color: transparent;\n      -webkit-text-stroke: 1px var(--green);\n      text-stroke: 1px var(--green);\n    }\n\n    .hero-bottom {\n      display: grid;\n      grid-template-columns: minmax(0, 660px) 1fr;\n      gap: 36px;\n      align-items: end;\n      margin-top: 36px;\n    }\n\n    .hero-copy {\n      margin: 0;\n      color: rgba(255, 255, 255, .75);\n      font-size: clamp(17px, 2vw, 21px);\n      line-height: 1.55;\n    }\n\n    .hero-note {\n      justify-self: end;\n      max-width: 260px;\n      padding-left: 18px;\n      border-left: 2px solid var(--green);\n      color: rgba(255, 255, 255, .65);\n      font-size: 12px;\n      font-weight: 700;\n      line-height: 1.6;\n      text-transform: uppercase;\n    }\n\n    .marquee {\n      position: relative;\n      z-index: 4;\n      width: calc(100% + var(--hero-gutter) + var(--hero-gutter));\n      margin: 48px calc(0px - var(--hero-gutter)) -46px;\n      overflow: hidden;\n      color: var(--black);\n      background: var(--green);\n      font-size: 13px;\n      font-weight: 900;\n      letter-spacing: .06em;\n      text-transform: uppercase;\n    }\n\n    .marquee-track {\n      display: flex;\n      min-width: max-content;\n      animation: marquee 24s linear infinite;\n    }\n\n    .marquee span {\n      padding: 18px 25px;\n      white-space: nowrap;\n    }\n\n    .marquee span::after {\n      content: \"+\";\n      margin-left: 50px;\n    }\n\n    .section {\n      padding: clamp(78px, 10vw, 136px) clamp(20px, 5vw, 72px);\n    }\n\n    .section-inner {\n      width: min(1180px, 100%);\n      margin: 0 auto;\n    }\n\n    .manifesto {\n      display: grid;\n      grid-template-columns: minmax(180px, 290px) minmax(0, 1fr);\n      gap: clamp(34px, 8vw, 118px);\n      align-items: start;\n    }\n\n    .section-label {\n      display: flex;\n      align-items: center;\n      gap: 12px;\n      color: var(--muted);\n      font-size: 12px;\n      font-weight: 900;\n      letter-spacing: .12em;\n      text-transform: uppercase;\n    }\n\n    .section-label::before {\n      content: \"\";\n      width: 13px;\n      height: 13px;\n      border: 3px solid var(--black);\n      border-radius: 50%;\n      background: var(--green);\n    }\n\n    .manifesto-copy {\n      margin: 0;\n      font-family: \"Outfit\", sans-serif;\n      font-size: clamp(31px, 5vw, 66px);\n      font-weight: 900;\n      letter-spacing: -.045em;\n      line-height: .99;\n    }\n\n    .manifesto-copy em {\n      color: var(--black);\n      background: var(--green);\n      font-style: normal;\n      box-shadow: .18em 0 0 var(--green), -.02em 0 0 var(--green);\n    }\n\n    .benefits {\n      padding-top: 0;\n    }\n\n    .benefit-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 1px;\n      border: 1px solid var(--line);\n      background: var(--line);\n    }\n\n    .benefit {\n      position: relative;\n      min-height: 380px;\n      display: grid;\n      align-content: space-between;\n      overflow: hidden;\n      padding: clamp(24px, 3vw, 38px);\n      background: var(--white);\n      transition: color .35s ease, background .35s ease;\n    }\n\n    .benefit::after {\n      content: \"\";\n      position: absolute;\n      right: -50px;\n      bottom: -50px;\n      width: 150px;\n      height: 150px;\n      border: 1px solid var(--line);\n      border-radius: 50%;\n      box-shadow: 0 0 0 24px rgba(0, 0, 0, .025), 0 0 0 48px rgba(0, 0, 0, .018);\n      transition: transform .5s ease;\n    }\n\n    .benefit:hover {\n      color: var(--white);\n      background: var(--black);\n    }\n\n    .benefit:hover h3 {\n      color: var(--white);\n    }\n\n    .benefit:hover::after {\n      border-color: var(--green);\n      transform: scale(1.25);\n    }\n\n    .benefit-number {\n      color: var(--green);\n      font-family: \"Outfit\", sans-serif;\n      font-size: 48px;\n      font-weight: 900;\n      line-height: 1;\n    }\n\n    .benefit h3 {\n      max-width: 240px;\n      font-size: clamp(20px, 1vw, 28px);\n      line-height: .95;\n      text-transform: uppercase;\n    }\n\n    .benefit p {\n      position: relative;\n      z-index: 1;\n      max-width: 290px;\n      margin: 19px 0 0;\n      color: var(--muted);\n      font-size: 15px;\n      line-height: 1.65;\n      transition: color .35s ease;\n    }\n\n    .benefit:hover p {\n      color: rgba(255, 255, 255, .7);\n    }\n\n    .journey {\n      overflow: hidden;\n      color: var(--white);\n      background: var(--black);\n    }\n\n    .journey-head {\n      display: grid;\n      grid-template-columns: minmax(0, 1fr) minmax(240px, 380px);\n      gap: 40px;\n      align-items: end;\n      padding-bottom: clamp(46px, 7vw, 82px);\n      border-bottom: 1px solid rgba(255, 255, 255, .16);\n    }\n\n    .journey h2 {\n      max-width: 780px;\n      color: var(--white);\n      font-size: clamp(52px, 9vw, 120px);\n      line-height: .82;\n      text-transform: uppercase;\n    }\n\n    .journey-head p {\n      margin: 0;\n      color: rgba(255, 255, 255, .67);\n      font-size: 17px;\n      line-height: 1.65;\n    }\n\n    .steps {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 0;\n    }\n\n    .step {\n      position: relative;\n      min-height: 260px;\n      padding: 34px 22px 0 0;\n      border-right: 1px solid rgba(255, 255, 255, .16);\n    }\n\n    .step:not(:first-child) {\n      padding-left: 24px;\n    }\n\n    .step:last-child {\n      border-right: 0;\n    }\n\n    .step-index {\n      display: grid;\n      place-items: center;\n      width: 48px;\n      height: 48px;\n      margin-bottom: 42px;\n      border: 1px solid rgba(255, 255, 255, .22);\n      border-radius: 50%;\n      color: var(--green);\n      font-family: \"Outfit\", sans-serif;\n      font-weight: 900;\n    }\n\n    .step h3 {\n      color: var(--white);\n      font-size: 23px;\n      text-transform: uppercase;\n    }\n\n    .step p {\n      margin: 12px 0 0;\n      color: rgba(255, 255, 255, .55);\n      font-size: 14px;\n      line-height: 1.55;\n    }\n\n    .host {\n      position: relative;\n      overflow: hidden;\n      color: var(--white);\n      \/* Muted green base + dark overlay so the green reads softer *\/\n      background: linear-gradient(rgba(2, 2, 2, .62), rgba(2, 2, 2, .62)), #0f8c79;\n    }\n\n    .host::before {\n      content: \"HOST\";\n      position: absolute;\n      top: -5vw;\n      right: -2vw;\n      color: transparent;\n      font-family: \"Outfit\", sans-serif;\n      font-size: clamp(190px, 32vw, 520px);\n      font-weight: 900;\n      line-height: .75;\n      -webkit-text-stroke: 1px rgba(255, 255, 255, .14);\n      text-stroke: 1px rgba(255, 255, 255, .14);\n      pointer-events: none;\n    }\n\n    .host-grid {\n      position: relative;\n      z-index: 1;\n      display: grid;\n      grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);\n      gap: clamp(45px, 9vw, 130px);\n      align-items: start;\n    }\n\n    .host-intro {\n      position: sticky;\n      top: 50px;\n    }\n\n    .host h2 {\n      max-width: 470px;\n      margin-top: 28px;\n      color: var(--white);\n      font-size: clamp(54px, 8vw, 112px);\n      line-height: .8;\n      text-transform: uppercase;\n    }\n\n    .host-intro p {\n      max-width: 380px;\n      margin: 26px 0 0;\n      font-size: 16px;\n      font-weight: 700;\n      line-height: 1.55;\n    }\n\n    .host-list {\n      display: grid;\n      gap: 12px;\n    }\n\n    .host-card {\n      display: grid;\n      grid-template-columns: auto 1fr;\n      gap: 20px;\n      align-items: start;\n      padding: clamp(20px, 3vw, 30px);\n      color: var(--black);\n      border: 1px solid rgba(255, 255, 255, .14);\n      border-radius: var(--radius);\n      background: rgba(255, 255, 255, .82);\n      backdrop-filter: blur(7px);\n      transition: background .25s ease, transform .25s ease;\n    }\n\n    .host-card:hover {\n      background: var(--white);\n      transform: translateX(-7px);\n    }\n\n    .host-card span {\n      display: grid;\n      place-items: center;\n      width: 36px;\n      height: 36px;\n      border-radius: 50%;\n      color: var(--green);\n      background: var(--black);\n      font-size: 12px;\n      font-weight: 900;\n    }\n\n    .host-card p {\n      margin: 2px 0 0;\n      font-size: clamp(17px, 2vw, 21px);\n      font-weight: 900;\n      line-height: 1.3;\n    }\n\n    .cta {\n      padding-top: clamp(78px, 9vw, 112px);\n      padding-bottom: clamp(78px, 9vw, 112px);\n      color: var(--white);\n      background: var(--black);\n    }\n\n    .cta-inner {\n      position: relative;\n      display: grid;\n      justify-items: center;\n      overflow: hidden;\n      padding: clamp(60px, 9vw, 110px) 20px;\n      border: 1px solid rgba(255, 255, 255, .15);\n      border-radius: var(--radius);\n      text-align: center;\n      background:\n        radial-gradient(circle at center, rgba(0, 250, 211, .16), transparent 40%),\n        rgba(255, 255, 255, .025);\n    }\n\n    .cta h2 {\n      max-width: 900px;\n      color: var(--white);\n      font-size: clamp(48px, 9vw, 118px);\n      line-height: .83;\n      text-transform: uppercase;\n    }\n\n    .cta h2 span {\n      color: var(--green);\n    }\n\n    .cta p {\n      max-width: 620px;\n      margin: 28px auto 0;\n      color: rgba(255, 255, 255, .65);\n      font-size: 17px;\n      line-height: 1.6;\n    }\n\n    .cta-actions {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: center;\n      gap: 12px;\n      margin-top: 35px;\n    }\n\n    .button {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      min-height: 52px;\n      padding: 13px 21px;\n      border: 1px solid rgba(255, 255, 255, .2);\n      border-radius: 999px;\n      font-size: 12px;\n      font-weight: 900;\n      letter-spacing: .06em;\n      text-transform: uppercase;\n      transition: transform .25s ease, background .25s ease, color .25s ease;\n    }\n\n    .button-primary {\n      border-color: var(--green);\n      color: var(--black);\n      background: var(--green);\n    }\n\n    .button:hover {\n      transform: translateY(-3px);\n    }\n\n    .button-secondary:hover {\n      color: var(--black);\n      background: var(--white);\n    }\n\n    .js .reveal {\n      opacity: 0;\n      transform: translateY(36px);\n      transition: opacity .8s ease, transform .8s cubic-bezier(.2, .8, .2, 1);\n    }\n\n    .js .reveal.is-visible {\n      opacity: 1;\n      transform: translateY(0);\n    }\n\n    .embed-mode .progress {\n      display: none;\n    }\n\n    .embed-mode .hero {\n      min-height: 86svh;\n      padding-top: 70px;\n    }\n\n    @keyframes rotate {\n      to { transform: rotate(360deg); }\n    }\n\n    @keyframes rotate-reverse {\n      to { transform: rotate(-360deg); }\n    }\n\n    @keyframes marquee {\n      to { transform: translateX(-50%); }\n    }\n\n    @media (max-width: 900px) {\n      .hero-bottom,\n      .manifesto,\n      .journey-head,\n      .host-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .hero-note {\n        justify-self: start;\n      }\n\n      .hero-orbit {\n        top: 16%;\n        right: -170px;\n        opacity: .68;\n      }\n\n      .benefit-grid {\n        grid-template-columns: 1fr;\n      }\n\n      .benefit {\n        min-height: 300px;\n      }\n\n      .steps {\n        grid-template-columns: repeat(2, 1fr);\n      }\n\n      .step:nth-child(2) {\n        border-right: 0;\n      }\n\n      .step:nth-child(3),\n      .step:nth-child(4) {\n        border-top: 1px solid rgba(255, 255, 255, .16);\n      }\n\n      .host-intro {\n        position: static;\n      }\n    }\n\n    @media (max-width: 560px) {\n      .hero {\n        min-height: 94svh;\n        padding-top: 108px;\n        padding-bottom: 40px;\n      }\n\n      h1 {\n        font-size: clamp(55px, 20vw, 82px);\n        line-height: .82;\n      }\n\n      .hero-orbit {\n        top: 12%;\n        right: -250px;\n        width: 480px;\n      }\n\n      .hero-bottom {\n        margin-top: 28px;\n      }\n\n      .hero-note {\n        display: none;\n      }\n\n      .marquee {\n        margin-bottom: -40px;\n      }\n\n      .manifesto-copy {\n        font-size: clamp(30px, 10vw, 44px);\n      }\n\n      .steps {\n        grid-template-columns: 1fr;\n      }\n\n      .step,\n      .step:not(:first-child) {\n        min-height: auto;\n        padding: 28px 0;\n        border-top: 1px solid rgba(255, 255, 255, .16);\n        border-right: 0;\n      }\n\n      .step-index {\n        margin-bottom: 22px;\n      }\n\n      .host-card {\n        gap: 14px;\n      }\n\n      .host-card p {\n        font-size: 17px;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      *,\n      *::before,\n      *::after {\n        scroll-behavior: auto !important;\n        animation-duration: .001ms !important;\n        animation-iteration-count: 1 !important;\n        transition-duration: .001ms !important;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <div class=\"progress\" aria-hidden=\"true\"><\/div>\n\n  <main>\n    <section class=\"hero\" id=\"top\">\n      <div class=\"hero-orbit\" aria-hidden=\"true\">\n        <span class=\"orbit-dot\">YOU<\/span>\n        <span class=\"orbit-dot\">US<\/span>\n        <span class=\"orbit-dot\">GO<\/span>\n        <span class=\"orbit-dot\">NEW<\/span>\n      <\/div>\n\n      <div class=\"hero-inner\">\n        <span class=\"eyebrow reveal\">Joined group adventures<\/span>\n        <h1 class=\"reveal\" style=\"font-size:75px\">Get lost <span class=\"stroke\">together<\/span><\/h1>\n\n        <div class=\"hero-bottom\">\n          <p class=\"hero-copy reveal\">Leave the wishy-washy group chats behind. We bring curious, ambitious travellers together for unforgettable African journeys, with every detail handled from arrival to farewell.<\/p>\n          <p class=\"hero-note reveal\">Built for connection. Guided by local expertise. Made for stories worth retelling.<\/p>\n        <\/div>\n\n        <div class=\"marquee\" aria-hidden=\"true\">\n          <div class=\"marquee-track\">\n            <span>Culture<\/span><span>Adventure<\/span><span>Connection<\/span><span>Good company<\/span><span>Zero planning stress<\/span>\n            <span>Culture<\/span><span>Adventure<\/span><span>Connection<\/span><span>Good company<\/span><span>Zero planning stress<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section\" style=\"background:#ffffff\">\n      <div class=\"section-inner manifesto\">\n        <span class=\"section-label reveal\">The group effect<\/span>\n        <p class=\"manifesto-copy reveal\">The best experiences happen just beyond your comfort zone, where <em>new friendships<\/em> are formed and stories are shared.<\/p>\n      <\/div>\n    <\/section>\n\n    <section class=\"section benefits\" id=\"benefits\" style=\"background:#ffffff\">\n      <div class=\"section-inner benefit-grid\">\n        <article class=\"benefit reveal\">\n          <span class=\"benefit-number\">01<\/span>\n          <div>\n            <h3>More trip, shared cost<\/h3>\n            <p>Enjoy thoughtfully designed itineraries and exceptional experiences while sharing the cost with your group.<\/p>\n          <\/div>\n        <\/article>\n        <article class=\"benefit reveal\">\n          <span class=\"benefit-number\">02<\/span>\n          <div>\n            <h3>Everything handled<\/h3>\n            <p>Professional coordination and trusted local expertise keep the entire journey smooth, simple, and hassle-free.<\/p>\n          <\/div>\n        <\/article>\n        <article class=\"benefit reveal\">\n          <span class=\"benefit-number\">03<\/span>\n          <div>\n            <h3>Arrive solo, leave connected<\/h3>\n            <p>Meet like-minded people who share your curiosity, your energy, and your appetite for meaningful adventure.<\/p>\n          <\/div>\n        <\/article>\n      <\/div>\n    <\/section>\n\n    <section class=\"section journey\" id=\"journey\">\n      <div class=\"section-inner\">\n        <div class=\"journey-head\">\n          <h2 class=\"reveal\">Unbox the adventure<\/h2>\n          <p class=\"reveal\">Our fully guided group tours balance culture, adventure, and relaxation. You simply show up ready to explore. We take care of the rest.<\/p>\n        <\/div>\n\n        <div class=\"steps\">\n          <article class=\"step reveal\">\n            <span class=\"step-index\">01<\/span>\n            <h3>Pick your trip<\/h3>\n            <p>Choose the destination and departure that feels right.<\/p>\n          <\/article>\n          <article class=\"step reveal\">\n            <span class=\"step-index\">02<\/span>\n            <h3>Meet the crew<\/h3>\n            <p>Connect with the people sharing the journey before you fly.<\/p>\n          <\/article>\n          <article class=\"step reveal\">\n            <span class=\"step-index\">03<\/span>\n            <h3>Follow the feeling<\/h3>\n            <p>Explore with expert guides and room for spontaneous moments.<\/p>\n          <\/article>\n          <article class=\"step reveal\">\n            <span class=\"step-index\">04<\/span>\n            <h3>Take home more<\/h3>\n            <p>Leave with stories, memories, and a whole new circle.<\/p>\n          <\/article>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section host\" id=\"host\">\n      <div class=\"section-inner host-grid\">\n        <div class=\"host-intro reveal\">\n          <span class=\"section-label\">Become a host<\/span>\n          <h2>Bring your people<\/h2>\n          <p>Turn your passion for connection into an epic trip where your community explores, connects, and travels brilliantly together.<\/p>\n        <\/div>\n\n        <div class=\"host-list\">\n          <article class=\"host-card reveal\">\n            <span>01<\/span>\n            <p>You are a creator whose audience genuinely shows up and engages.<\/p>\n          <\/article>\n          <article class=\"host-card reveal\">\n            <span>02<\/span>\n            <p>You already bring people together, from book clubs and golf days to gym crews and faith circles.<\/p>\n          <\/article>\n          <article class=\"host-card reveal\">\n            <span>03<\/span>\n            <p>You are a TravelArt Africa alum ready to run it back with your people.<\/p>\n          <\/article>\n          <article class=\"host-card reveal\">\n            <span>04<\/span>\n            <p>You care about real connection over numbers, and your community feels that.<\/p>\n          <\/article>\n          <article class=\"host-card reveal\">\n            <span>05<\/span>\n            <p>You are fully yourself, and that is exactly why your audience trusts you.<\/p>\n          <\/article>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section class=\"section cta\" id=\"groups-contact\">\n      <div class=\"section-inner cta-inner reveal\">\n        <span class=\"eyebrow\">TravelArt Africa groups<\/span>\n        <h2>Journeys crafted. <span>Memories guaranteed.<\/span><\/h2>\n        <p>Ready to join a group or lead your own? Start the conversation and let us shape a trip that fits your energy.<\/p>\n        <div class=\"cta-actions\">\n          <a class=\"button button-primary\" href=\"mailto:info@travelart.africa?subject=TravelArt%20groups%20enquiry\">Contact us<\/a>\n        <\/div>\n      <\/div>\n    <\/section>\n  <\/main>\n\n  <script>\n    const revealElements = document.querySelectorAll(\".reveal\");\n\n    if (\"IntersectionObserver\" in window) {\n      const observer = new IntersectionObserver((entries) => {\n        entries.forEach((entry) => {\n          if (entry.isIntersecting) {\n            entry.target.classList.add(\"is-visible\");\n            observer.unobserve(entry.target);\n          }\n        });\n      }, { threshold: 0.12 });\n\n      revealElements.forEach((element, index) => {\n        element.style.transitionDelay = `${Math.min(index % 4, 3) * 80}ms`;\n        observer.observe(element);\n      });\n    } else {\n      revealElements.forEach((element) => element.classList.add(\"is-visible\"));\n    }\n\n    const progress = document.querySelector(\".progress\");\n    function updateProgress() {\n      const distance = document.documentElement.scrollHeight - window.innerHeight;\n      progress.style.width = `${distance > 0 ? (window.scrollY \/ distance) * 100 : 0}%`;\n    }\n\n    function reportHeight() {\n      if (window.parent !== window) {\n        window.parent.postMessage({\n          type: \"travelart-groups-height\",\n          height: document.documentElement.scrollHeight\n        }, \"*\");\n      }\n    }\n\n    window.addEventListener(\"scroll\", updateProgress, { passive: true });\n    window.addEventListener(\"load\", reportHeight);\n    window.addEventListener(\"resize\", reportHeight);\n\n    if (\"ResizeObserver\" in window) {\n      new ResizeObserver(reportHeight).observe(document.body);\n    }\n\n    updateProgress();\n  <\/script>\n<\/body>\n<\/html>\n\t\t\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<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>TravelArt Africa | Group Travel YOU US GO NEW Joined group adventures Get lost together Leave the wishy-washy group chats behind. We bring curious, ambitious travellers together for unforgettable African&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-30457","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/onionlabs.link\/travelart\/wp-json\/wp\/v2\/pages\/30457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/onionlabs.link\/travelart\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/onionlabs.link\/travelart\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/onionlabs.link\/travelart\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/onionlabs.link\/travelart\/wp-json\/wp\/v2\/comments?post=30457"}],"version-history":[{"count":83,"href":"https:\/\/onionlabs.link\/travelart\/wp-json\/wp\/v2\/pages\/30457\/revisions"}],"predecessor-version":[{"id":30863,"href":"https:\/\/onionlabs.link\/travelart\/wp-json\/wp\/v2\/pages\/30457\/revisions\/30863"}],"wp:attachment":[{"href":"https:\/\/onionlabs.link\/travelart\/wp-json\/wp\/v2\/media?parent=30457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}