{"id":31136,"date":"2026-08-21T10:45:57","date_gmt":"2026-08-21T08:45:57","guid":{"rendered":"https:\/\/disciplestoday.org\/clone\/clone\/?page_id=31136"},"modified":"2026-09-02T14:17:56","modified_gmt":"2026-09-02T12:17:56","slug":"dt-travel-mt-kilimanjaro-registration","status":"publish","type":"page","link":"https:\/\/disciplestoday.org\/clone\/dt-travel-mt-kilimanjaro-registration\/","title":{"rendered":"DT Travel &#8211; Mt Kilimanjaro-Registration"},"content":{"rendered":"\n<!-- =====================================================================\nDT TRAVEL - MT KILIMANJARO REGISTRATION FORM\nPaste this whole block into an Elementor \"HTML\" widget.\n=====================================================================\nHOW TO CHANGE WHICH EMAIL(S) RECEIVE SUBMISSIONS:\nThis file only builds the form and sends the data to a PHP file called\nprocess-registration.php when Submit is clicked. The actual recipient\nemail address(es) live INSIDE process-registration.php, not here.\nOpen process-registration.php and edit the $recipients array near the\ntop of the file. See that file's comments for exact instructions.\n\nWHERE process-registration.php MUST GO ON YOUR SERVER:\nThis is set up for: \/home\/disciple\/public_html\/clone\/clone\/wp-content\/kili-form\/process-registration.php\nThen update the FORM_ACTION_URL constant just below to match that path.\n===================================================================== -->\n\n<div id=\"kili-reg-app\">\n  <style>\n    #kili-reg-app{\n      --kr-ink:#1c1c1c; --kr-line:#d8d8d8; --kr-red:#c0392b;\n      --kr-accent:#1f4d3a; --kr-accent-light:#e8f0ec; --kr-bg:#fafaf9;\n      font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n      color:var(--kr-ink); max-width:1200px; margin:0 auto; padding:24px 16px 60px;\n    }\n    #kili-reg-app *{box-sizing:border-box;}\n    #kili-reg-app h1.kr-title{font-size:28px; font-weight:700; margin:0 0 20px;}\n    .kr-steps{display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:32px; position:relative;}\n    .kr-steps::before{content:\"\"; position:absolute; top:24px; left:5%; right:5%; height:2px; background:var(--kr-line); z-index:0;}\n    .kr-step{flex:1; display:flex; flex-direction:column; align-items:center; position:relative; z-index:1;}\n    .kr-step .kr-circle{width:48px; height:48px; border-radius:50%; background:#e6e6e6; color:#8a8a8a;\n      display:flex; align-items:center; justify-content:center; font-weight:700; font-size:18px; border:4px solid var(--kr-bg);}\n    .kr-step.active .kr-circle{background:var(--kr-accent); color:#fff;}\n    .kr-step.done .kr-circle{background:var(--kr-accent-light); color:var(--kr-accent); border:2px solid var(--kr-accent);}\n    .kr-step .kr-label{font-size:12px; text-align:center; margin-top:6px; color:#6a6a6a; max-width:90px;}\n    .kr-step.active .kr-label{color:var(--kr-ink); font-weight:600;}\n\n    .kr-layout{display:flex; gap:24px; align-items:flex-start;}\n    .kr-main{flex:1 1 640px; min-width:0; border:1px solid var(--kr-line); border-radius:6px; padding:24px; background:#fff;}\n    .kr-side{flex:0 0 320px; border:1px solid var(--kr-line); border-radius:6px; padding:20px; background:#fff; position:sticky; top:16px;}\n    @media(max-width:880px){ .kr-layout{flex-direction:column;} .kr-side{width:100%; position:static;} }\n\n    .kr-field{margin-bottom:16px;}\n    .kr-field label{display:block; font-weight:600; font-size:14px; margin-bottom:6px;}\n    .kr-field label .req{color:var(--kr-red); margin-right:4px;}\n    .kr-field input[type=text], .kr-field input[type=date], .kr-field input[type=email],\n    .kr-field input[type=tel], .kr-field select, .kr-field textarea{\n      width:100%; padding:10px 12px; border:1px solid #bbb; border-radius:4px; font-size:14px; background:#fff;\n    }\n    .kr-field textarea{resize:vertical; min-height:80px;}\n    .kr-field input[readonly]{background:#f0f0ee; color:#555; cursor:not-allowed;}\n    .kr-row{display:flex; gap:16px; flex-wrap:wrap;}\n    .kr-row > .kr-field{flex:1 1 200px;}\n    .kr-check{display:flex; align-items:center; gap:8px; font-size:14px; margin-bottom:16px;}\n    .kr-check input{width:16px; height:16px;}\n\n    .kr-guest-block{border:1px solid var(--kr-line); border-radius:6px; padding:18px; margin-bottom:18px; background:#fdfdfc;}\n    .kr-guest-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px;}\n    .kr-guest-head h3{font-size:16px; margin:0;}\n    .kr-guest-head button{background:none; border:none; color:#1a6bb5; font-size:13px; cursor:pointer; text-decoration:underline; padding:0;}\n\n    .kr-price h2{font-size:18px; margin:0 0 12px;}\n    .kr-price table{width:100%; border-collapse:collapse; font-size:14px;}\n    .kr-price td{padding:4px 0;}\n    .kr-price td.amt{text-align:right;}\n    .kr-price tr.total td{border-top:1px solid var(--kr-line); font-weight:700; padding-top:8px;}\n    .kr-price tr.grand td{font-weight:700; border-top:2px solid var(--kr-ink); padding-top:10px; font-size:15px;}\n    .kr-disclaimer{font-size:12px; color:#777; margin-top:16px; line-height:1.4;}\n\n    .kr-contact{border:1px solid var(--kr-line); border-radius:6px; padding:18px 20px; background:#fff; margin-top:16px;}\n    .kr-contact h2{font-size:15px; margin:0 0 6px;}\n    .kr-contact p{font-size:14px; margin:0; color:#333;}\n    .kr-contact a{color:var(--kr-accent); font-weight:600; text-decoration:none;}\n    .kr-contact a:hover{text-decoration:underline;}\n\n    .kr-nav{display:flex; justify-content:space-between; margin-top:28px;}\n    .kr-btn{padding:12px 24px; border-radius:4px; font-size:14px; font-weight:600; cursor:pointer; border:1px solid transparent;}\n    .kr-btn-primary{background:var(--kr-accent); color:#fff;}\n    .kr-btn-primary:hover{background:#163b2c;}\n    .kr-btn-secondary{background:#fff; color:var(--kr-ink); border-color:#bbb;}\n    .kr-btn-secondary:hover{background:#f2f2f2;}\n    .kr-btn:disabled{opacity:.5; cursor:not-allowed;}\n\n    .kr-panel{display:none;}\n    .kr-panel.active{display:block;}\n\n    .kr-review-group{margin-bottom:20px;}\n    .kr-review-group h3{font-size:15px; border-bottom:1px solid var(--kr-line); padding-bottom:6px; margin-bottom:10px;}\n    .kr-review-row{display:flex; justify-content:space-between; font-size:14px; padding:3px 0; gap:12px;}\n    .kr-review-row span:first-child{color:#666;}\n    .kr-review-row span:last-child{font-weight:600; text-align:right;}\n\n    .kr-note{background:#fff8e6; border:1px solid #e8d48a; border-radius:4px; padding:12px 14px; font-size:13px; margin-bottom:18px; line-height:1.5;}\n    .kr-pay-btn{display:inline-block; background:var(--kr-accent); color:#fff; font-weight:700; font-size:15px;\n      padding:14px 28px; border-radius:4px; text-decoration:none;}\n    .kr-pay-btn:hover{background:#163b2c;}\n    .kr-iframe-wrap{border:1px solid var(--kr-line); border-radius:6px; overflow:hidden; margin-top:16px;}\n    .kr-iframe-wrap iframe{width:100%; height:700px; border:none; display:block;}\n    .kr-iframe-fallback{font-size:13px; color:#777; margin-top:8px;}\n    .kr-success{text-align:center; padding:40px 20px;}\n    .kr-success h2{color:var(--kr-accent);}\n    .kr-error{color:var(--kr-red); font-size:13px; margin-top:-10px; margin-bottom:14px; display:none;}\n  <\/style>\n\n  <h1 class=\"kr-title\">Guest Registration<\/h1>\n\n  <div class=\"kr-steps\" id=\"kr-steps\"><\/div>\n\n  <div class=\"kr-layout\">\n    <div class=\"kr-main\">\n\n      <!-- STEP 1: PASSENGER INFO -->\n      <div class=\"kr-panel\" data-panel=\"1\">\n        <div class=\"kr-row\">\n          <div class=\"kr-field\">\n            <label>Category<\/label>\n            <input type=\"text\" id=\"kr-category\" value=\"Premium Climb\" readonly=\"\">\n          <\/div>\n          <div class=\"kr-field\">\n            <label>Number of Guests<\/label>\n            <select id=\"kr-guest-count\"><\/select>\n          <\/div>\n        <\/div>\n        <div class=\"kr-row\">\n          <div class=\"kr-field\">\n            <label>Start Date<\/label>\n            <input type=\"text\" id=\"kr-start-date\" value=\"July 19, 2027\" readonly=\"\">\n          <\/div>\n          <div class=\"kr-field\">\n            <label>End Date<\/label>\n            <input type=\"text\" id=\"kr-end-date\" value=\"July 26, 2027\" readonly=\"\">\n          <\/div>\n        <\/div>\n\n        <div id=\"kr-guests\"><\/div>\n      <\/div>\n\n      <!-- STEP 2: ADDITIONAL OPTIONS -->\n      <div class=\"kr-panel\" data-panel=\"2\">\n        <div class=\"kr-field\">\n          <label>Room Preference<\/label>\n          <select id=\"kr-room-pref\">\n            <option value=\"Single\">Single<\/option>\n            <option value=\"Double\">Double<\/option>\n            <option value=\"Triple\">Triple<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"kr-field\">\n          <label>Dietary Requirements<\/label>\n          <input type=\"text\" id=\"kr-dietary\" placeholder=\"e.g. Vegetarian, no nuts\">\n        <\/div>\n        <div class=\"kr-field\">\n          <label>T-Shirt Size<\/label>\n          <select id=\"kr-tshirt\">\n            <option>S<\/option><option>M<\/option><option selected=\"\">L<\/option><option>XL<\/option><option>XXL<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"kr-field\">\n          <label>Special Requests<\/label>\n          <textarea id=\"kr-special\"><\/textarea>\n        <\/div>\n      <\/div>\n\n      <!-- STEP 3: REVIEW -->\n      <div class=\"kr-panel\" data-panel=\"3\">\n        <div id=\"kr-review\"><\/div>\n      <\/div>\n\n      <!-- STEP 4: PAYMENT -->\n      <div class=\"kr-panel\" data-panel=\"4\">\n        <div class=\"kr-note\">\n          Please complete your deposit or payment below using our secure\n          payment portal. You must confirm your payment before you can\n          submit your registration.\n        <\/div>\n        <div class=\"kr-field\">\n          <label><span class=\"req\">*<\/span>Billing Name<\/label>\n          <input type=\"text\" id=\"kr-bill-name\" placeholder=\"Name used when paying\">\n        <\/div>\n        <div class=\"kr-iframe-wrap\">\n          <iframe id=\"kr-pay-iframe\" src=\"https:\/\/dtoday.kindful.com\/campaigns\/1431216?amount=10&amp;recurring=landing_recurring&amp;frequency=\" title=\"Secure payment portal\" loading=\"lazy\"><\/iframe>\n        <\/div>\n        <p class=\"kr-iframe-fallback\">\n          If the payment form above doesn&#8217;t load, <a href=\"https:\/\/dtoday.kindful.com\/campaigns\/1431216?amount=10&amp;recurring=landing_recurring&amp;frequency=\" target=\"_blank\" rel=\"noopener\">open it in a new tab<\/a> instead, then come back here to confirm.\n        <\/p>\n        <div class=\"kr-check\" style=\"margin-top:18px;\">\n          <input type=\"checkbox\" id=\"kr-payment-confirm\">\n          <label for=\"kr-payment-confirm\">I confirm I have completed my payment through the portal above.<\/label>\n        <\/div>\n        <div class=\"kr-error\" id=\"kr-payment-error\">Please confirm your payment before continuing.<\/div>\n      <\/div>\n\n      <!-- STEP 5: SUBMIT -->\n      <div class=\"kr-panel\" data-panel=\"5\">\n        <div id=\"kr-submit-view\">\n          <div class=\"kr-check\">\n            <input type=\"checkbox\" id=\"kr-terms\">\n            <label for=\"kr-terms\">I confirm the information above is accurate and agree to the terms of registration.<\/label>\n          <\/div>\n          <div class=\"kr-error\" id=\"kr-submit-error\">Please confirm the checkbox above before submitting.<\/div>\n        <\/div>\n        <div class=\"kr-success\" id=\"kr-success\" style=\"display:none;\">\n          <h2>Registration received<\/h2>\n          <p>Thank you \u2014 your Mt Kilimanjaro registration has been submitted. A confirmation email is on its way.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"kr-nav\" id=\"kr-nav\">\n        <button class=\"kr-btn kr-btn-secondary\" id=\"kr-prev\">Back<\/button>\n        <button class=\"kr-btn kr-btn-primary\" id=\"kr-next\">Continue<\/button>\n      <\/div>\n    <\/div>\n\n    <div class=\"kr-side\">\n      <div class=\"kr-price\">\n        <h2>Package Price Information<\/h2>\n        <table>\n          <tbody><tr><td>Pricing Tier<\/td><td class=\"amt\" id=\"kr-tier-label\">Early Bird<\/td><\/tr>\n          <tr><td>Per Person (sharing)<\/td><td class=\"amt\" id=\"kr-fare\">$2,500.00<\/td><\/tr>\n          <tr><td>Guests<\/td><td class=\"amt\" id=\"kr-guest-label\">1 Guest<\/td><\/tr>\n          <tr class=\"total\"><td>Package Total<\/td><td class=\"amt\" id=\"kr-grand-total\">$2,500.00<\/td><\/tr>\n          <tr><td>Deposit Due Now<\/td><td class=\"amt\" id=\"kr-deposit\">$960.00<\/td><\/tr>\n          <tr class=\"grand\"><td>Balance Due Apr 15, 2027<\/td><td class=\"amt\" id=\"kr-balance\">$1,540.00<\/td><\/tr>\n        <\/tbody><\/table>\n        <div class=\"kr-disclaimer\" id=\"kr-disclaimer\">\n          Early Bird pricing of $2,500 per person (sharing) applies to registrations received\n          on or before February 15, 2027, with a $960 deposit per person due now to secure your\n          spot. Registrations from February 16 \u2013 April 14, 2027 are $2,600 per person.\n          Full payment for all guests is due by April 15, 2027. Trip dates: July 19 \u2013 26, 2027.\n        <\/div>\n      <\/div>\n      <div class=\"kr-contact\">\n        <h2>Questions?<\/h2>\n        <p>Contact Justin at <a href=\"mailto:justinrenton67@gmail.com\">justinrenton67@gmail.com<\/a><\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  \/\/ ---- CONFIG -------------------------------------------------------\n  \/\/ Point this at wherever you upload process-registration.php\n  var FORM_ACTION_URL = \"\/wp-content\/kili-form\/process-registration.php\";\n\n  \/\/ Fixed trip details - shown as read-only fields on the form\n  var CATEGORY_NAME = \"Premium Climb\";\n  var TRIP_START = \"July 19, 2027\";\n  var TRIP_END = \"July 26, 2027\";\n\n  \/\/ Pricing tiers. The active tier is picked automatically based on\n  \/\/ today's date - no manual switching needed. Edit dates\/prices here.\n  var EARLY_BIRD_PRICE   = 2500.00;\n  var EARLY_BIRD_CUTOFF  = new Date(\"2027-02-16T00:00:00\"); \/\/ pricing below applies UP TO Feb 15, 2027\n  var LATE_REG_PRICE     = 2600.00;\n  var LATE_REG_CUTOFF    = new Date(\"2027-04-15T00:00:00\"); \/\/ late pricing applies Feb 16 - Apr 14, 2027\n  var DEPOSIT_PER_PERSON = 960.00;\n  var FINAL_PAYMENT_LABEL = \"April 15, 2027\";\n\n  function getCurrentTier(){\n    var now = new Date();\n    if(now < EARLY_BIRD_CUTOFF){\n      return { name: \"Early Bird\", perPerson: EARLY_BIRD_PRICE };\n    }\n    if(now < LATE_REG_CUTOFF){\n      return { name: \"Late Registration\", perPerson: LATE_REG_PRICE };\n    }\n    return { name: \"Late Registration\", perPerson: LATE_REG_PRICE };\n  }\n  \/\/ ---------------------------------------------------------------------\n\n  var root = document.getElementById('kili-reg-app');\n  var stepNames = [\"Passenger Info\",\"Additional Options\",\"Review\",\"Payment\",\"Submit\"];\n  var currentStep = 1;\n  var totalSteps = 5;\n  var guestCount = 1;\n\n  function buildSteps(){\n    var wrap = document.getElementById('kr-steps');\n    wrap.innerHTML = \"\";\n    stepNames.forEach(function(name, i){\n      var n = i+1;\n      var div = document.createElement('div');\n      div.className = 'kr-step' + (n===currentStep?' active':'') + (n<currentStep?' done':'');\n      div.innerHTML = '<div class=\"kr-circle\">'+n+'<\/div><div class=\"kr-label\">'+name+'<\/div>';\n      wrap.appendChild(div);\n    });\n  }\n\n  function guestFieldsHTML(n){\n    return '' +\n      '<div class=\"kr-guest-block\" data-guest=\"'+n+'\">' +\n        '<div class=\"kr-guest-head\"><h3>GUEST '+n+'<\/h3>' + (n>1 ? '<button type=\"button\" class=\"kr-clear-guest\">Clear Guest<\/button>' : '') + '<\/div>' +\n        '<div class=\"kr-field\"><label>Nickname<\/label><input type=\"text\" class=\"g-nickname\"><\/div>' +\n        '<div class=\"kr-row\">' +\n          '<div class=\"kr-field\"><label><span class=\"req\">*<\/span>Legal First Name<\/label><input type=\"text\" class=\"g-first\" required><\/div>' +\n          '<div class=\"kr-field\"><label>Middle Name<\/label><input type=\"text\" class=\"g-middle\"><\/div>' +\n        '<\/div>' +\n        '<div class=\"kr-row\">' +\n          '<div class=\"kr-field\"><label><span class=\"req\">*<\/span>Legal Last Name<\/label><input type=\"text\" class=\"g-last\" required><\/div>' +\n          '<div class=\"kr-field\"><label>Suffix<\/label><select class=\"g-suffix\"><option value=\"\"><\/option><option>Jr.<\/option><option>Sr.<\/option><option>II<\/option><option>III<\/option><\/select><\/div>' +\n        '<\/div>' +\n        '<div class=\"kr-row\">' +\n          '<div class=\"kr-field\"><label><span class=\"req\">*<\/span>Birthday<\/label><input type=\"date\" class=\"g-birthday\" required><\/div>' +\n          '<div class=\"kr-field\"><label><span class=\"req\">*<\/span>Gender<\/label><select class=\"g-gender\" required><option value=\"\"><\/option><option>Male<\/option><option>Female<\/option><\/select><\/div>' +\n        '<\/div>' +\n        '<div class=\"kr-check\"><input type=\"checkbox\" class=\"g-uscitizen\"><label>US Citizen<\/label><\/div>' +\n        '<div class=\"kr-row\">' +\n          '<div class=\"kr-field\"><label>Passport Number<\/label><input type=\"text\" class=\"g-passport\"><\/div>' +\n          '<div class=\"kr-field\"><label>Passport Expiration<\/label><input type=\"date\" class=\"g-passport-exp\"><\/div>' +\n        '<\/div>' +\n      '<\/div>';\n  }\n\n  function renderGuests(){\n    var guestsWrap = document.getElementById('kr-guests');\n    var existing = {};\n    guestsWrap.querySelectorAll('.kr-guest-block').forEach(function(b){\n      existing[b.getAttribute('data-guest')] = b.outerHTML;\n    });\n    guestsWrap.innerHTML = \"\";\n    for(var i=1;i<=guestCount;i++){\n      var div = document.createElement('div');\n      div.innerHTML = existing[i] || guestFieldsHTML(i);\n      guestsWrap.appendChild(div.firstChild);\n    }\n    guestsWrap.querySelectorAll('.kr-clear-guest').forEach(function(btn){\n      btn.addEventListener('click', function(){\n        var block = btn.closest('.kr-guest-block');\n        block.querySelectorAll('input').forEach(function(i){ i.type==='checkbox' ? i.checked=false : i.value=''; });\n        block.querySelectorAll('select').forEach(function(s){ s.selectedIndex=0; });\n      });\n    });\n    updatePricing();\n  }\n\n  function initGuestCountSelect(){\n    var sel = document.getElementById('kr-guest-count');\n    sel.innerHTML = \"\";\n    for(var i=1;i<=8;i++){\n      var o = document.createElement('option');\n      o.value = i; o.textContent = i;\n      sel.appendChild(o);\n    }\n    sel.addEventListener('change', function(){\n      guestCount = parseInt(sel.value,10);\n      renderGuests();\n    });\n  }\n\n  function money(n){\n    return '$' + n.toLocaleString('en-US', {minimumFractionDigits:2, maximumFractionDigits:2});\n  }\n\n  function updatePricing(){\n    var tier = getCurrentTier();\n    var perPerson = tier.perPerson;\n    var packageTotal = perPerson * guestCount;\n    var depositTotal = DEPOSIT_PER_PERSON * guestCount;\n    var balance = packageTotal - depositTotal;\n\n    document.getElementById('kr-tier-label').textContent = tier.name;\n    document.getElementById('kr-fare').textContent = money(perPerson);\n    document.getElementById('kr-guest-label').textContent = guestCount + (guestCount===1 ? ' Guest' : ' Guests');\n    document.getElementById('kr-grand-total').textContent = money(packageTotal);\n    document.getElementById('kr-deposit').textContent = money(depositTotal);\n    document.getElementById('kr-balance').textContent = money(balance);\n  }\n\n  function showPanel(n){\n    root.querySelectorAll('.kr-panel').forEach(function(p){\n      p.classList.toggle('active', parseInt(p.getAttribute('data-panel'),10) === n);\n    });\n    buildSteps();\n    document.getElementById('kr-prev').style.visibility = (n===1) ? 'hidden' : 'visible';\n    document.getElementById('kr-next').textContent = (n===totalSteps) ? 'Submit Registration' : 'Continue';\n    if(n===3) buildReview();\n    window.scrollTo({top: root.offsetTop - 20, behavior:'smooth'});\n  }\n\n  function validateStep1(){\n    var ok = true;\n    root.querySelectorAll('#kr-guests .kr-guest-block').forEach(function(b){\n      ['.g-first','.g-last','.g-birthday','.g-gender'].forEach(function(sel){\n        var el = b.querySelector(sel);\n        if(!el.value){ el.style.borderColor = 'var(--kr-red)'; ok = false; }\n        else { el.style.borderColor = '#bbb'; }\n      });\n    });\n    return ok;\n  }\n\n  function validatePayment(){\n    var ok = true;\n    var billName = document.getElementById('kr-bill-name');\n    if(!billName.value){ billName.style.borderColor = 'var(--kr-red)'; ok = false; }\n    else { billName.style.borderColor = '#bbb'; }\n\n    var confirmBox = document.getElementById('kr-payment-confirm');\n    var errorDiv = document.getElementById('kr-payment-error');\n    if(!confirmBox.checked){ errorDiv.style.display = 'block'; ok = false; }\n    else { errorDiv.style.display = 'none'; }\n\n    return ok;\n  }\n\n  function collectData(){\n    var tier = getCurrentTier();\n    var packageTotalText = document.getElementById('kr-grand-total').textContent;\n    var depositText = document.getElementById('kr-deposit').textContent;\n    var balanceText = document.getElementById('kr-balance').textContent;\n    var data = {\n      category: document.getElementById('kr-category').value,\n      guest_count: guestCount,\n      start_date: document.getElementById('kr-start-date').value,\n      end_date: document.getElementById('kr-end-date').value,\n      pricing_tier: tier.name,\n      per_person: money(tier.perPerson),\n      guests: [],\n      room_pref: document.getElementById('kr-room-pref').value,\n      dietary: document.getElementById('kr-dietary').value,\n      tshirt: document.getElementById('kr-tshirt').value,\n      special: document.getElementById('kr-special').value,\n      bill_name: document.getElementById('kr-bill-name').value,\n      payment_confirmed: document.getElementById('kr-payment-confirm').checked,\n      package_total: packageTotalText,\n      deposit_due: depositText,\n      balance_due: balanceText\n    };\n    root.querySelectorAll('#kr-guests .kr-guest-block').forEach(function(b){\n      data.guests.push({\n        nickname: b.querySelector('.g-nickname').value,\n        first: b.querySelector('.g-first').value,\n        middle: b.querySelector('.g-middle').value,\n        last: b.querySelector('.g-last').value,\n        suffix: b.querySelector('.g-suffix').value,\n        birthday: b.querySelector('.g-birthday').value,\n        gender: b.querySelector('.g-gender').value,\n        us_citizen: b.querySelector('.g-uscitizen').checked,\n        passport: b.querySelector('.g-passport').value,\n        passport_exp: b.querySelector('.g-passport-exp').value\n      });\n    });\n    return data;\n  }\n\n  function buildReview(){\n    var d = collectData();\n    var html = '';\n    html += '<div class=\"kr-review-group\"><h3>Trip Details<\/h3>' +\n      '<div class=\"kr-review-row\"><span>Category<\/span><span>'+d.category+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>Guests<\/span><span>'+d.guest_count+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>Start Date<\/span><span>'+d.start_date+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>End Date<\/span><span>'+d.end_date+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>Pricing Tier<\/span><span>'+d.pricing_tier+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>Per Person<\/span><span>'+d.per_person+'<\/span><\/div>' +\n      '<\/div>';\n    d.guests.forEach(function(g, i){\n      html += '<div class=\"kr-review-group\"><h3>Guest '+(i+1)+'<\/h3>' +\n        '<div class=\"kr-review-row\"><span>Name<\/span><span>'+[g.first,g.middle,g.last,g.suffix].filter(Boolean).join(' ')+'<\/span><\/div>' +\n        '<div class=\"kr-review-row\"><span>Birthday<\/span><span>'+g.birthday+'<\/span><\/div>' +\n        '<div class=\"kr-review-row\"><span>Gender<\/span><span>'+g.gender+'<\/span><\/div>' +\n        '<div class=\"kr-review-row\"><span>US Citizen<\/span><span>'+(g.us_citizen?'Yes':'No')+'<\/span><\/div>' +\n        '<div class=\"kr-review-row\"><span>Passport #<\/span><span>'+(g.passport||'&mdash;')+'<\/span><\/div>' +\n        '<\/div>';\n    });\n    html += '<div class=\"kr-review-group\"><h3>Additional Options<\/h3>' +\n      '<div class=\"kr-review-row\"><span>Room Preference<\/span><span>'+d.room_pref+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>Dietary<\/span><span>'+(d.dietary||'&mdash;')+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>T-Shirt Size<\/span><span>'+d.tshirt+'<\/span><\/div>' +\n      '<\/div>';\n    html += '<div class=\"kr-review-group\"><h3>Payment<\/h3>' +\n      '<div class=\"kr-review-row\"><span>Billing Name<\/span><span>'+d.bill_name+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>Package Total<\/span><span>'+d.package_total+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>Deposit Due Now<\/span><span>'+d.deposit_due+'<\/span><\/div>' +\n      '<div class=\"kr-review-row\"><span>Balance Due '+FINAL_PAYMENT_LABEL+'<\/span><span>'+d.balance_due+'<\/span><\/div>' +\n      '<\/div>';\n    document.getElementById('kr-review').innerHTML = html;\n  }\n\n  function submitForm(){\n    var data = collectData();\n    var btn = document.getElementById('kr-next');\n    btn.disabled = true;\n    btn.textContent = 'Submitting\u2026';\n\n    fetch(FORM_ACTION_URL, {\n      method: 'POST',\n      headers: {'Content-Type':'application\/json'},\n      body: JSON.stringify(data)\n    }).then(function(res){\n      return res.text().then(function(text){\n        var parsed = null;\n        try { parsed = JSON.parse(text); } catch(e){ \/* not JSON *\/ }\n        return { ok: res.ok, status: res.status, parsed: parsed, raw: text };\n      });\n    }).then(function(result){\n      if(result.ok && result.parsed && result.parsed.success){\n        document.getElementById('kr-submit-view').style.display = 'none';\n        document.getElementById('kr-success').style.display = 'block';\n        document.getElementById('kr-nav').style.display = 'none';\n      } else {\n        btn.disabled = false;\n        btn.textContent = 'Submit Registration';\n        console.error('Registration submit failed:', result.status, result.raw);\n        var detail = (result.parsed && result.parsed.error) ? result.parsed.error : ('HTTP ' + result.status);\n        alert('Your registration was NOT sent (server said: ' + detail + '). Please try again or contact us directly.');\n      }\n    }).catch(function(err){\n      btn.disabled = false;\n      btn.textContent = 'Submit Registration';\n      console.error('Registration submit network error:', err);\n      alert('Something went wrong sending your registration. Please try again or contact us directly.');\n    });\n  }\n\n  document.getElementById('kr-next').addEventListener('click', function(){\n    if(currentStep===1 && !validateStep1()) return;\n    if(currentStep===4 && !validatePayment()) return;\n    if(currentStep===5){\n      var terms = document.getElementById('kr-terms');\n      if(!terms.checked){\n        document.getElementById('kr-submit-error').style.display = 'block';\n        return;\n      }\n      document.getElementById('kr-submit-error').style.display = 'none';\n      submitForm();\n      return;\n    }\n    currentStep++;\n    showPanel(currentStep);\n  });\n\n  document.getElementById('kr-prev').addEventListener('click', function(){\n    if(currentStep>1){ currentStep--; showPanel(currentStep); }\n  });\n\n  initGuestCountSelect();\n  renderGuests();\n  updatePricing();\n  showPanel(1);\n})();\n<\/script>\n\n\n\n<style>\n.kilimanjaro-inclusions {\n    max-width: 1660px;\n    margin: 0 auto;\n    padding: 20px 30px 40px;\n    box-sizing: border-box;\n}\n\n.kilimanjaro-inclusions h2 {\n    margin: 0 0 24px;\n    font-size: 28px;\n    line-height: 1.2;\n    font-weight: 700;\n    color: #202334;\n}\n\n.kilimanjaro-cards {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 32px;\n}\n\n.kilimanjaro-card {\n    border-radius: 16px;\n    padding: 32px;\n    border: 1px solid;\n}\n\n.kilimanjaro-card.included {\n    background: #f4faf4;\n    border-color: #c9e2c9;\n}\n\n.kilimanjaro-card.excluded {\n    background: #fff6f6;\n    border-color: #eacccc;\n}\n\n.kilimanjaro-card h3 {\n    margin: 0 0 18px;\n    font-size: 23px;\n    line-height: 1.3;\n    font-weight: 700;\n}\n\n.kilimanjaro-card.included h3 {\n    color: #2e7d32;\n}\n\n.kilimanjaro-card.excluded h3 {\n    color: #d6382b;\n}\n\n.kilimanjaro-item {\n    display: flex;\n    align-items: flex-start;\n    gap: 8px;\n    padding: 13px 0;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.06);\n    font-size: 17px;\n    line-height: 1.5;\n    color: #60482f;\n}\n\n.kilimanjaro-item:last-child {\n    border-bottom: none;\n}\n\n.kilimanjaro-item .icon {\n    flex: 0 0 auto;\n    font-weight: 700;\n}\n\n.included .icon {\n    color: #2e7d32;\n}\n\n.excluded .icon {\n    color: #d6382b;\n}\n\n@media (max-width: 767px) {\n    .kilimanjaro-inclusions {\n        padding: 15px 16px 30px;\n    }\n\n    .kilimanjaro-inclusions h2 {\n        font-size: 24px;\n    }\n\n    .kilimanjaro-cards {\n        grid-template-columns: 1fr;\n        gap: 20px;\n    }\n\n    .kilimanjaro-card {\n        padding: 24px 20px;\n    }\n\n    .kilimanjaro-card h3 {\n        font-size: 20px;\n    }\n\n    .kilimanjaro-item {\n        font-size: 16px;\n    }\n}\n<\/style>\n\n<div class=\"kilimanjaro-inclusions\">\n\n    <h2>What&#8217;s Included &amp; What&#8217;s Not<\/h2>\n\n    <div class=\"kilimanjaro-cards\">\n\n        <div class=\"kilimanjaro-card included\">\n\n            <h3>Included in Your Premium Climb<\/h3>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Pre and post-climb hotel accommodation<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Airport transfers<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>WFR-certified head guide with 7+ years of Kilimanjaro experience<\/span>\n            <\/div>\n<div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Assistant guides and porters<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Professional mountain cook<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>All meals on the mountain (breakfast, lunch, dinner, and snacks)<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Filtered drinking water<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Hut accommodation at Mandara, Horombo, and Kibo<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Emergency oxygen cylinder and pulse oximeter<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Daily health monitoring and vitals checks<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>1:1 staff-to-climber ratio on summit night<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Round-trip hotel-to-trailhead transport (Moshi or Arusha)<\/span>\n            <\/div>\n\n          \n     <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>All Kilimanjaro National Park entrance and hut fees<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2713<\/span>\n                <span>Post-climb summit certificate <\/span>\n            <\/div>\n\n        <\/div>\n\n        <div class=\"kilimanjaro-card excluded\">\n\n            <h3>Not Included<\/h3>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2715<\/span>\n                <span>International flights<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2715<\/span>\n                <span>Tanzania visa (available on arrival, ~$50 USD)<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2715<\/span>\n                <span>Travel and evacuation insurance (required)<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2715<\/span>\n                <span>Personal hiking gear and clothing<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2715<\/span>\n                <span>Sleeping bag (rental available)<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2715<\/span>\n                <span>Private hut upgrade fee<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2715<\/span>\n                <span>Tips for mountain crew (guidelines provided)<\/span>\n            <\/div>\n\n            <div class=\"kilimanjaro-item\">\n                <span class=\"icon\">\u2715<\/span>\n                <span>Alcoholic and bottled beverages<\/span>\n            <\/div>\n\n       \n\n        <\/div>\n\n    <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Guest Registration Category Number of Guests Start Date End Date Room Preference SingleDoubleTriple Dietary Requirements T-Shirt Size SMLXLXXL Special Requests&hellip;<\/p>\n","protected":false},"author":4,"featured_media":31197,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ghostkit_customizer_options":"","ghostkit_custom_css":"","ghostkit_custom_js_head":"","ghostkit_custom_js_foot":"","ghostkit_typography":"","footnotes":""},"folder":[150],"class_list":["post-31136","page","type-page","status-publish","has-post-thumbnail","hentry"],"featured_image_src":"https:\/\/i0.wp.com\/disciplestoday.org\/clone\/wp-content\/uploads\/2026\/08\/image.jpeg?fit=468%2C312&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/PhsvEw-86c","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":28723,"url":"https:\/\/disciplestoday.org\/clone\/travel\/","url_meta":{"origin":31136,"position":0},"title":"DT Travel","author":"dtadmin","date":"August 26, 2025","format":false,"excerpt":"TRAVEL CALENDAR Mount Kilimanjaro July 31 \u2013 August 8, 2027 New England and Canada Cruise Sept 7-17, 2027 ABOUT DT TRAVEL https:\/\/youtu.be\/KB3EFfX-H0I DT Travel organizes faith-filled travel experiences designed to strengthen fellowship and provide spiritual encouragement. Each journey includes a dedicated spiritual director who leads meaningful teachings and devotionals throughout\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/disciplestoday.org\/clone\/wp-content\/uploads\/2021\/07\/dt_logo.png?fit=225%2C225&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":31204,"url":"https:\/\/disciplestoday.org\/clone\/route-and-climbing-details\/","url_meta":{"origin":31136,"position":1},"title":"Kilimanjaro Route and Climbing Details","author":"Justin Renton","date":"August 26, 2026","format":false,"excerpt":"The classic Marangu Route is the most direct path to Uhuru Peak (5,895 m). It ascends and descends the southeastern face of Kilimanjaro and is the only route that offers permanent hut accommodation. Each day brings a distinct ecological zone \u2013 from dense montane rainforest through moorland and alpine desert\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/disciplestoday.org\/clone\/wp-content\/uploads\/2026\/08\/5.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/disciplestoday.org\/clone\/wp-content\/uploads\/2026\/08\/5.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/disciplestoday.org\/clone\/wp-content\/uploads\/2026\/08\/5.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/disciplestoday.org\/clone\/wp-content\/uploads\/2026\/08\/5.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/disciplestoday.org\/clone\/wp-content\/uploads\/2026\/08\/5.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":29727,"url":"https:\/\/disciplestoday.org\/clone\/publishing-policies\/","url_meta":{"origin":31136,"position":2},"title":"Publishing Policies","author":"dtadmin","date":"January 20, 2026","format":false,"excerpt":"Introduction DisciplesToday.org (DT) serves as the official communications platform for the International Churches of Christ (ICOC) family of churches. This policy and procedure document outlines comprehensive guidelines to ensure consistency, fairness, and alignment with the ICOC's values in all publishing, operational, and administrative activities. These policies aim to cover a\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6053,"url":"https:\/\/disciplestoday.org\/clone\/resources\/","url_meta":{"origin":31136,"position":3},"title":"Resources","author":"dtadmin","date":"August 12, 2022","format":false,"excerpt":"QUICK LINKS Books, Videos & Music | Study Series | New Christian Material | Specialty Ministries | Workshops BOOKS, VIDEOS, MUSIC ICOC HotResources Downloadable Bible Talks, Quiet Time booklets, sermon series and more DT YouTube Channel ICOC conference archives, testimonials, ICOC worship playlists and more Illumination Publishers Books, audio resources\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":29368,"url":"https:\/\/disciplestoday.org\/clone\/dt-connect\/","url_meta":{"origin":31136,"position":4},"title":"DT Connect","author":"dtadmin","date":"November 24, 2025","format":false,"excerpt":"","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9215,"url":"https:\/\/disciplestoday.org\/clone\/dt-boards\/","url_meta":{"origin":31136,"position":5},"title":"Meet Our Boards","author":"dtadmin","date":"December 14, 2022","format":false,"excerpt":"Our mission: To inform, inspire, unify and grow the International Churches of Christ. Disciples Today is a legally organized non-profit communications company created to serve the advancement of the nearly 700 International Churches of Christ around the world in over 150 countries. Disciples Today Board Corporate Integrity:\u00a0The Disciples Today Board\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/disciplestoday.org\/clone\/wp-json\/wp\/v2\/pages\/31136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/disciplestoday.org\/clone\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/disciplestoday.org\/clone\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/disciplestoday.org\/clone\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/disciplestoday.org\/clone\/wp-json\/wp\/v2\/comments?post=31136"}],"version-history":[{"count":18,"href":"https:\/\/disciplestoday.org\/clone\/wp-json\/wp\/v2\/pages\/31136\/revisions"}],"predecessor-version":[{"id":31314,"href":"https:\/\/disciplestoday.org\/clone\/wp-json\/wp\/v2\/pages\/31136\/revisions\/31314"}],"wp:attachment":[{"href":"https:\/\/disciplestoday.org\/clone\/wp-json\/wp\/v2\/media?parent=31136"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/disciplestoday.org\/clone\/wp-json\/wp\/v2\/folder?post=31136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}