Tag: Classes

route beta discussion youthfam

Home School Classes

Home School Classes

Climbing | Fitness | Community

Just

$29.99Then $24.99 per week

Unlimited Home School classes per term

Includes, your coach, entry, shoe & chalk hire

Great physical, mental, & social confidence booster!

Join Us

.video-wrapper {
position: relative;
width: 100%;
margin: 0 auto; /* Center the wrapper horizontally */
}

.video-wrapper::before {
content: “”;
display: block;
padding-bottom: 177.78%; /* 9:16 aspect ratio for portrait video */
}

.video-wrapper video {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: zoom;
object-position: top;
}

/* New button styles */
.button-container {
display: flex;
flex-direction: column;
gap: 20px;
}

.b-content{
background-color: #fff000;
color: black !important;
border: none;
font-size: 18px;
border-radius: 0px 0px 25px 25px;
text-align: center;
transition: background-color 0.3s, color 0.3s;
}

.b-content:hover {
background-color: #181818;
color: #fff000 !important;
}

.custom-button {
padding: 15px 30px;
font-size: 18px;
text-decoration: none;
display: inline-block;
cursor: pointer;
transition: all 0.3s ease;
}

.primary-button {
background-color: #fff000;
color: black;
border: 2px solid #fff000;
}

.primary-button:hover {
background-color: #181818;
color: white;
border-color: #181818;
}

.secondary-button {
background-color: transparent;
color: #181818;
border: 2px solid #181818;
}

.secondary-button:hover {
background-color: #181818;
color: white;
}

.rounded-button {
border-radius: 5px;
}

.specific-container {
position: relative;
top: 80px;
margin-left: 100px;
margin-right: 100px;
}

Join Us

.video-wrapper {
position: relative;
width: 100%;
height: calc(100vh – 60px); /* Adjust the height to leave space for the text */
overflow: hidden;
}

.video-wrapper video {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
object-fit: cover;
}

.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}

.text-wrapper {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 20px 5px; /* Update the padding to only have top and bottom values */
text-align: left;
color: #fff;
z-index: 1;
}

.text-wrapper h2 {
margin: 0;
}

.text-wrapper h4 {
margin: 0;
color: #fff000;
}

Home School Classes
Climbing | Fitness | Community

#visual {
width: 100%;
height: auto;
position:absolute;
left:0;
bottom:0;
transform: translatey(20%);
}

Why ?

Sign up now and give your child the opportunity to grow, learn, and socialize in Home School classes!

Join Us

Discover the joy and benefits of our Home School classes, designed to fit seamlessly into your child’s weekly routine. Our consistent schedule not only facilitates commitment and progress for your child but also offers a much-needed energy boost.
With personalized coaching in smaller classes, each child receives the attention needed to enhance their climbing skills. Beyond the physical, we aim to foster concentration, problem-solving abilities, and self-confidence, equipping your child with invaluable life skills for a balanced and thriving future.
Join us for an experience that’s more than just climbing—it’s a step towards holistic development.

Subscribe for Classes

Our Home School Classes are currently open for expressions of interest. Please use the “Register Interest” form below, and we will provide you with more details on classes and pricing as soon as they are finalized.
Please note, enrolment is on a first come, first served basis, so registering your interest early is the best way to secure a spot for your child.

Just

$29.99Then $24.99 per week

Unlimited Home School classes per term

Includes, your coach, entry, shoe & chalk hire

Great physical, mental, & social confidence booster!

Join

Join Us

Schedule

Fun & Social Climbing
Max Class Size: 10
Engage in playful climbing games that promote problem-solving and dynamic movement. Enjoy the camaraderie as you socialize with fellow climbers.

Wall Walkers Bouldering resets weekly every Tuesday morning meaning No Class on this day.

Technique Tuning
Max Class Size: 10
Sharpen your climbing skills with a focus on footwork, hand placement, and efficient movement on the wall.

Strength Training
Max Class Size: 10
Power up with climbing-specific exercises like 4x4s, pull-ups, pushups, and various hangs, all aimed at building muscle endurance and strength.

Cardio & Endurance
Max Class Size: 10
Push your limits with cardio-intensive activities and endurance exercises, including max hangs and wall traversing, to improve your staying power.

Not quite ready to sign up?

Simply

Pay per Class$18.00 per class

Ultimate flexibility, valid for 1 year from purchase

Includes, your coach, entry, shoe & chalk hire

Great physical, mental, & social confidence booster!

One by One

Purchase

No, I would like to JOIN

#subscription-modal-container {
font-family: “Century Gothic”, Arial, sans-serif;
color: #fff;
}
#subscription-modal-container .modal {
display: none;
position: fixed;
z-index: 9999;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.4);
}
#subscription-modal-container .modal-content {
background: #181818;
margin: 15% auto;
padding: 50px;
border: none;
width: 80%;
max-width: 500px;
border-radius: 10px;
box-shadow: 0 15px 25px rgba(0, 0, 0, 0.6);
}
#subscription-modal-container .close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
#subscription-modal-container .close:hover,
#subscription-modal-container .close:focus {
color: #fff000;
text-decoration: none;
}
#subscription-modal-container h1,
#subscription-modal-container h3 {
color: #fff000;
text-align: center;
font-family: “Arial Black”, sans-serif;
font-size: 2em;
margin-bottom: 30px;
}
#subscription-modal-container form {
display: flex;
flex-direction: column;
}
#subscription-modal-container .user-box {
position: relative;
margin-bottom: 30px;
}
#subscription-modal-container .user-box input {
width: 100%;
padding: 10px 0;
font-size: 16px;
color: #fff;
border: none;
border-bottom: 1px solid #fff;
outline: none;
background: transparent;
font-family: “Century Gothic”, sans-serif;
}
#subscription-modal-container .user-box label {
position: absolute;
top: 0;
left: 0;
padding: 10px 0;
font-size: 16px;
color: #fff;
pointer-events: none;
transition: 0.5s;
}
#subscription-modal-container .user-box input:focus ~ label,
#subscription-modal-container .user-box input:valid ~ label {
top: -20px;
left: 0;
color: #fff000;
font-size: 12px;
}
#subscription-modal-container button {
position: relative;
display: inline-block;
padding: 10px 20px;
color: #fff000;
font-size: 16px;
text-decoration: none;
text-transform: uppercase;
overflow: hidden;
transition: 0.5s;
margin-top: 40px;
letter-spacing: 4px;
border: none;
background: transparent;
cursor: pointer;
}
#subscription-modal-container button:hover {
background: #fff000;
color: #000;
border-radius: 5px;
box-shadow: 0 0 5px #fff000, 0 0 25px #fff000, 0 0 50px #fff000,
0 0 100px #fff000;
}
#subscription-modal-container #termsContent {
background: #181818;
margin: 5% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
max-width: 600px;
max-height: 80vh;
overflow-y: auto;
color: #fff;
}
#subscription-modal-container #termsText {
color: #fff;
}
#subscription-modal-container #termsContent h3,
#subscription-modal-container #termsContent h4 {
color: #fff000;
}
#subscription-modal-container #termsContent ul {
padding-left: 20px;
color: #fff;
}
#subscription-modal-container #termsContent li {
margin-bottom: 10px;
}
#subscription-modal-container #agreeCheckbox {
margin-right: 10px;
}
#subscription-modal-container label[for=”agreeCheckbox”] {
color: #fff;
}
#subscription-modal-container #planTypeDisplay {
color: #fff000;
font-size: 1.2em;
margin-bottom: 20px;
text-align: center;
}

Terms and Conditions

I agree to the terms and conditions

Continue to Form

×

Parent’s First Name

Parent’s Last Name

Parent’s Phone Number

Email

Child’s Name

Child’s Age

Number of Passes

Purchase Subscription

(function() {
const container = document.getElementById(“subscription-modal-container”);
const termsModal = container.querySelector(“#termsModal”);
const purchaseModal = container.querySelector(“#purchaseModal”);
const span = container.querySelector(“.close”);
const form = container.querySelector(“#purchaseForm”);
const passesInput = container.querySelector(“#passesInput”);
const agreeCheckbox = container.querySelector(“#agreeCheckbox”);
const continueToFormBtn = container.querySelector(“#continueToForm”);
const planTypeDisplay = container.querySelector(“#planTypeDisplay”);

let currentPlanType = “”;

window.openSubscriptionModal = function(planType) {
currentPlanType = planType;
console.log(“Opening modal for plan:”, currentPlanType);
showTermsAndConditions();
}

function showTermsAndConditions() {
const termsText = container.querySelector(“#termsText”);

if (currentPlanType === “The Ascent Plan”) {
termsText.innerHTML = `
Terms and Conditions for The Ascent Plan

Payment Frequency is Weekly
Your membership is open ended and will continue until you cancel it
One-month’s notice is required for canceling a membership
Wall Walkers Bouldering reserves the right to update or change the Privacy Policy or Terms and Conditions without notice
Wall Walkers Bouldering may terminate memberships at their discretion
Classes may be cancelled if too few attendees are booked, so help us spread the word 🙂

Membership Benefits

Unlimited access to our Home School Classes
Weekly wall resets for new challenges
Experienced and passionate coach
All gear included in class price
Online booking system
Great community of climbers and staff
Fully air-conditioned gym
Free WiFi

`;
} else if (currentPlanType === “One by One Plan”) {
termsText.innerHTML = `
Terms and Conditions for One by One Plan

Payment Frequency is fixed for the One by One Plan
Passes purchased under this plan are valid for 6 months from the date of purchase
Wall Walkers Bouldering reserves the right to update or change the Privacy Policy or Terms and Conditions without notice
Wall Walkers Bouldering may terminate or revoke passes at their discretion
Passes can be used on any person listed in your portal, they may not be transferred to another User account or given away
Passes purchased at $18 are for use on children only for Adult pricing see the front desk to pay on entry
Classes may be cancelled if too few attendees are booked, so help us spread the word 🙂

Pass Benefits

Access to our Home School Classes (booking required)
Weekly wall resets for new challenges
Experienced and passionate coach
All gear included in class price
Online booking system
Great community of climbers and staff
Fully air-conditioned gym
Free WiFi

`;
}

termsModal.style.display = “block”;
}

continueToFormBtn.addEventListener(“click”, () => {
if (!agreeCheckbox.checked) {
alert(“Please agree to the terms and conditions”);
return;
}
termsModal.style.display = “none”;
planTypeDisplay.textContent = `Selected Plan: ${currentPlanType}`;
if (currentPlanType === “One by One Plan”) {
passesInput.style.display = “block”;
} else {
passesInput.style.display = “none”;
}
purchaseModal.style.display = “block”;
});

span.onclick = function() {
purchaseModal.style.display = “none”;
};

window.onclick = function(event) {
if (event.target == purchaseModal) {
purchaseModal.style.display = “none”;
}
if (event.target == termsModal) {
termsModal.style.display = “none”;
}
};

form.addEventListener(“submit”, async (e) => {
e.preventDefault();
console.log(“Form submitted. Current plan type:”, currentPlanType);
const parentFirstName = container.querySelector(“#parentFirstName”).value;
const parentLastName = container.querySelector(“#parentLastName”).value;
const parentPhone = container.querySelector(“#parentPhone”).value;
const email = container.querySelector(“#email”).value;
const childName = container.querySelector(“#childName”).value;
const childAge = container.querySelector(“#childAge”).value;
const numberOfPasses = container.querySelector(“#numberOfPasses”).value;

let endpoint;
let requestBody;

if (currentPlanType === “The Ascent Plan”) {
endpoint = “https://dokku.wallwalkersbouldering.com/stripeControls/purchase/TheAscentPlan”;
//endpoint = “http://localhost:3000/stripeControls/purchase/TheAscentPlan”;
requestBody = {
parentFirstName,
parentLastName,
parentPhone,
email,
planType: currentPlanType,
childName,
childAge,
fromPortal: false,
termsAndConditions: true,
status: “pending”,
};
} else if (currentPlanType === “One by One Plan”) {
endpoint = “https://dokku.wallwalkersbouldering.com/stripeControls/purchase/OnebyOnePasses”;
//endpoint = “http://localhost:3000/stripeControls/purchase/OnebyOnePasses”;
requestBody = {
parentFirstName,
parentLastName,
parentPhone,
email,
childName,
childAge,
numberOfPasses: parseInt(numberOfPasses),
fromPortal: false,
termsAndConditions: true,
};
} else {
console.error(“Invalid plan type:”, currentPlanType);
alert(“Invalid plan type”);
return;
}

try {
console.log(“Sending request to:”, endpoint);
console.log(“Request body:”, requestBody);
const response = await fetch(endpoint, {
method: “POST”,
headers: {
“Content-Type”: “application/json”,
“x-app-identifier”: “WallWalkersBouldering_MonkeyMagic”,
},
body: JSON.stringify(requestBody),
});

if (!response.ok) {
const errorData = await response.json();
throw new Error(errorData.error || “Purchase request failed”);
}

const data = await response.json();
window.location.href = data.checkoutUrl;
} catch (error) {
console.error(“Error:”, error);
alert(error.message || “Failed to create checkout session. Please try again.”);
}
});
})();

body {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}

.login-box {
width: 100%;
padding: 50px;
background: #181818;
box-sizing: border-box;
box-shadow: 0 15px 25px rgba(0, 0, 0, .6);
border-radius: 10px;
}

.login-box h2 {
margin: 0 0 30px;
padding: 0;
color: #fff000 !important;
text-align: center;
font-family: Arial Black;
font-size: 2em;
}

.login-box h3 {
font-size: 18px;
color: white !important;
font-weight: bold;
font-family: Arial Black, Gadget, sans-serif;
margin: 0px;
padding: 0px;
margin-top: 10px;
padding-top: 10px;
}

@media (max-width: 767px) {
.login-box h2 {
margin: 0 0 30px;
padding: 0;
color: #fff000 !important;
text-align: center;
font-family: Arial Black;
font-size: 1em;
}
}

.login-box .user-box {
position: relative;
}

.login-box .user-box input,
.login-box .user-box textarea {
width: 100%;
padding: 10px 0;
font-size: 16px;
color: #fff;
margin-bottom: 30px;
border: none;
border-bottom: 1px solid #fff;
outline: none;
background: transparent;
font-family: ‘Century Gothic’;
}

.login-box .user-box label {
position: absolute;
top: 0;
left: 0;
padding: 10px 0;
font-size: 16px;
color: #fff;
pointer-events: none;
transition: .5s;
font-family: ‘Century Gothic’;
}

.TandC label {
color: #fff !important;
font-family: ‘Century Gothic’;
}

.makeLink {
color: #fff000 !important;
text-decoration: underline;
font-family: ‘Century Gothic’;
}

.makeLink:hover {
color: white !important;
text-decoration: none;
font-family: ‘Century Gothic’;
}

.login-box .user-box input:focus~label,
.login-box .user-box input:valid~label {
top: -20px;
left: 0;
color: #fff000;
font-size: 12px;
}

.login-box .user-box textarea:focus~label,
.login-box .user-box textarea:valid~label {
top: -20px;
left: 0;
color: #fff000;
font-size: 12px;
}

.login-box form input[type=submit] {
position: relative;
display: inline-block;
padding: 10px 20px;
color: white;
background-color: black;
font-size: 16px;
text-decoration: none;
text-transform: uppercase;
overflow: hidden;
transition: .5s;
margin-top: 40px;
letter-spacing: 4px
}

.login-box input[type=submit]:hover {
background: #fff000;
color: black;
border-radius: 5px;
box-shadow: 0 0 5px #fff000,
0 0 25px #fff000,
0 0 50px #fff000,
0 0 100px #fff000;
}

.login-box input[type=checkbox] {
width: 25px;
height: 25px;
vertical-align: middle;
position: relative;
}

.form-inline {
display: flex;
align-items: center;
width: 100%;
}

.form-inline label {
margin: 5px 10px 5px 0;
}

/* .form-inline input {
vertical-align: middle;
margin: 5px 10px 5px 0;
padding: 10px;
background-color: #fff;
border: 1px solid #ddd;
} */

::-webkit-calendar-picker-indicator {
filter: invert(1);
}

.container {
padding: 20px 100px 20px 100px;
text-align: left;
display: none;
}

.container p {
color: white;
font-size: 14px;
margin-bottom: 20px;
font-family: Century Gothic;
margin: 0px;
padding: 0px;
}

.container li {
color: white;
font-size: 14px;
margin-bottom: 20px;
font-family: Century Gothic;
margin: 0px;
padding: 0px;
}

.ReturnText {
color: #fff000;
font-size: 14px;
margin-bottom: 20px;
font-family: Century Gothic;
margin: 0px;
padding: 0px;
}

#toggleButton {
display: flex;
position: fixed;
align-items: center;
justify-content: center;
top: 0;
left: 0;
}

.ring {
position: relative;
top: 100%;
left: 0%;
/* transform: translate(-50%, -50%); */
width: 50px;
height: 50px;
background: transparent;
border: 3px solid #3c3c3c;
border-radius: 50%;
text-align: center;
line-height: 150px;
font-family: sans-serif;
font-size: 20px;
color: #fff000;
letter-spacing: 4px;
text-transform: uppercase;
text-shadow: 0 0 10px #fff000;
box-shadow: 0 0 20px rgba(0, 0, 0, .5);
display: none;
}

.ring:before {
content: ”;
position: absolute;
top: -3px;
left: -3px;
width: 100%;
height: 100%;
border: 3px solid transparent;
border-top: 3px solid #fff000;
border-right: 3px solid #fff000;
border-radius: 50%;
animation: animateC 2s linear infinite;
}

.circleContainer {
display: none;
position: absolute;
top: calc(50% – 2px);
left: 50%;
width: 50%;
height: 4px;
background: transparent;
transform-origin: left;
animation: animate 2s linear infinite;
}

.circleContainer:before {
content: ”;
position: absolute;
width: 16px;
height: 16px;
border-radius: 50%;
background: #fff000;
top: -6px;
right: -8px;
box-shadow: 0 0 20px #fff000;
}

.drop {
cursor: pointer;
}

@keyframes animateC {
0% {
transform: rotate(0deg);
}

100% {
transform: rotate(360deg);
}
}

@keyframes animate {
0% {
transform: rotate(45deg);
}

100% {
transform: rotate(405deg);
}
}

Register Your Interest

Parent Name

Child Name

Child Age

Mobile Number

Email

Class Type:

Captcha Question: What is 4 plus 4?

By checking this box you agree to the below terms and conditions

Introduction:

These Terms and Conditions (the “Agreement”) govern the terms by which
you may participate in Wall Walkers Bouldering class Programs. The Programs offered by Wall Walkers
Bouldering are outlined on the specific class information pages (listed below) and in this
agreement.

Register:

To register for a Class Program, you must complete the registration process by providing Wall
Walkers Bouldering with current, complete, and accurate information as
prompted by the applicable registration form. You acknowledge that if any information provided by
you is untrue, inaccurate, not current, or incomplete, we may be unable to contact You
and/or your child, and we reserve the right to terminate your position in the Class Program queue.

Enrollment:

To participate in a Program, Wall Walkers Bouldering will confirm your details via email and provide
you with the relevant class details including start date, end date, and payment link.

Communication:

By submitting this form, you agree to receive communications from Wall Walkers Bouldering, including
via e-mail, text message, calls, and push notifications. You agree that texts, calls, or prerecorded
messages may be generated by automatic telephone dialing systems.
Communications from Wall Walkers Bouldering, its affiliated companies, and/or agents, may include
but are not limited to: operational communications concerning your class or Program, updates
concerning new and existing features on the Wall Walkers Bouldering website, and news concerning
Wall Walkers Bouldering and industry developments.

Termination:

Should your child act unreasonably during a class on multiple occasions, Wall Walkers Bouldering
reserves the right to terminate your child’s remaining classes without a refund.

Home School Classes:

Home School Classes are specifically designed to accommodate the needs of home-educated children,
focusing on their physical development and social interaction through climbing. These classes are
scheduled during typical school hours to facilitate accessibility for home school students.

Home School Classes are run on a subscription basis, each subscription has different pros and
cons. Be sure to understand your subscription clearly.
Shoe and chalk hire are included in the price.
Memberships can be frozen for 1 week without charge; subsequent weeks will be charged at $5 per
week.
No discounts or refunds for missed classes due to freezing a membership.
1 Free pass card will be issued on the first visit; a $20 fee applies for replacement if lost or
stolen.
Comp Squad memberships are non-transferable.
All prices include 10% GST.
Surcharges may apply as stated; no additional fees or charges.
Kids must be at least 7 years old to participate in Home School Classes.
If Wall Walkers Bouldering cancels a class, a make-up class will be scheduled on a different
day.
Wall Walkers Bouldering reserves the right to refuse membership renewal if your child does not
regularly participate in classes.
There are no refunds for missed classes or competition entries.

By submitting the information in this form, you acknowledge that you have read,
understand, and agree to be bound by the terms and conditions of this Agreement and that we may
contact you from time to time with class updates and offers.

function ShowHide() {
var x = document.getElementById(“container”);
console.log(x);
if (x.style.display === “none” || x.style.display === “”) {
x.style.display = “block”;
} else {
x.style.display = “none”;
}
}

//https://stackoverflow.com/questions/374644/how-do-i-capture-response-of-form-submit
document.forms[‘sendForm’].addEventListener(‘submit’, (event) => {
event.preventDefault();
// TODO do something here to show user that form is being submitted
var submitButton = document.getElementById(“submit”);
var loadingMainCircle = document.getElementById(“loading”);
var loadingSmallCircle = document.getElementById(“loadingCircle”);

// console.log(loadingSmallCircle);

submitButton.style.display = “none”;
loadingMainCircle.style.display = “block”;
loadingSmallCircle.style.display = “block”;

fetch(event.target.action, {
method: ‘POST’,
headers: {
“Content-Type”: “application/x-www-form-urlencoded”, // Necessary for URL-encoded forms
“x-app-identifier”: “WallWalkersBouldering_MonkeyMagic”, // Custom header for trusted requests
},
body: new URLSearchParams(new FormData(event.target)) // event.target is the form

})

.then((response) => {
if (!response.ok) {
throw new Error(‘Network response was not ok: ‘ + response.statusText);
}
return response.json(); // This parses the JSON body and returns another promise
})

.then((body) => {
console.log(“Body: “, body.responseMessage);
// TODO handle body
if (body.responseCode == 201) { //Success
changeText(body.responseMessage);
}
else { //Other things
changeText(“Submitted Unsuccessfully: ” + body.responseMessage);
}

submitButton.style.display = “block”;
loadingMainCircle.style.display = “none”;
loadingSmallCircle.style.display = “none”;
})

.catch((error) => { //Error
console.error(‘There was a problem with the fetch operation: ‘, error);
changeText(“There was a problem submitting your form. Please try again later.”);
submitButton.style.display = “block”;
loadingMainCircle.style.display = “none”;
loadingSmallCircle.style.display = “none”;
});
});

var timeout;
function changeText(message) {
var elem = document.getElementById(“Submitted”);

var date = new Date();
var hours = date.getHours();
var minutes = (date.getMinutes() < 15 ? '0' : '') + date.getMinutes(); elem.innerHTML = message; clearTimeout(timeout); timeout = setTimeout(function () { elem.innerHTML = ""; }, 10000); }

CompSquad

Comp Squad

Test your limits!

Every Saturday from 8:00 to 09:30 am.  $31 per week max 6 kids.

Comp Squad

Test your limits!

Every Saturday from 8:00 to 09:30 am.  $31 per week max 6 kids.

WHY COMP SQUAD?

Training, to become a stronger climber with like-minded people.
Build strength, skill, and technique
Comp Squad is for kids who want to test their limits, and learn advanced climbing movements and techniques such as, in-depth footwork, body positioning/awareness, using momentum, optimizing the use of hold types and grip types, detailed beta breakdown, visualisation.
Training will be tailored to individuals to suit different strengths and weaknesses such as physical body strength, finger strength, power, endurance, flexibility, mobility, and head space.  Kids will learn everything they need to be successful in climbing competitions such as detailed rule break down for different competition formats, strategies, and competitive mentality.
Perhaps the most important part…have fun and make friends!

Comp Squad is full.Register your interest below to join the waiting list.

Spots available
Term 1 Signups Underway, the first class will be 27th, January, 2024.

Register Interest

FAQ

Kids who join CompSquad have a defined interest in improving their general strength, coordination, balance, and climbing skills.  To join simply submit your request using the below Form, a member of our staff will get in contact with you about your inquiry and assess how well your child will fit into CompSquad or if another of our classes might be more beneficial.
We will only offer kids a spot in CompSquad if there is one currently available.

The membership price includes:

Entry to the gym during hours of operation,
Classes with our instructor split over each school term,
Rental shoes and chalk if needed during class only

CompSquad memberships work the same as all memberships at Wall Walkers Bouldering, except that classes on Saturdays are included.  So long as your child is a member of CompSquad, they can join all CompSquad classes and climb any time during the week during staffed hours.  If your child is 16 or over they may also sign up for our 24-hour access.
Regular Membership Benefits:

Unlimited access to our bouldering gym
Weekly reset of wall sections
Regular Saturday night community setting sessions and pizza night
A 20% discount on gear and equipment
Access to exclusive member-only events
Free entry to our regular competitions
Our great community of climbers and staff, be sure to check out our Community Discord Chat
A fully air-conditioned gym
Free WiFi
And much more!

The membership $31 each week. 
The membership rate will be charged each week until the membership is cancelled.

No. This is a membership pass that also covers classes. Once purchased your child will receive a 20% discount on any climbing gear purchased through our pro shop.

The kids will learn:

Advanced climbing techniques, when to apply them, and why,
How to physically / mentally train to climb at their best,
How to warm up correctly and avoid injury during training competitions,
Everything they will need to be a successful climber.

Class is every Saturday morning at 8:00 – 09:30 am in total a 90 min.
Classes will vary from week to week and focus on building strength, balance, flexibility, coordination, and climbing skill.

There are no refunds or transfers for missed classes.

In the event, Wall Walkers cancels a class, we will run a make-up class at a later date.

Comp Squad Instructor

Jackson Mead

As an avid climber, I’m fascinated by the diverse approaches to solving different routes and problems. I find joy not only in discovering my own solutions but also in observing how others tackle their projects, often revealing methods I hadn’t considered. The climbing community’s supportive nature is another aspect I cherish; we constantly encourage each other to improve, making the pursuit of new limits both easier and more rewarding.
I’m currently pursuing Certificates III and IV in Fitness, with a clear focus on climbing training and calisthenics (bodyweight exercises). I’m excited about the opportunity to share my knowledge through both group classes and one-on-one coaching, offering insights on climbing-specific training to enhance strength and technique. Whether you’re a beginner or an experienced climber looking to push your boundaries.
I look forward to helping you achieve your goals.

And much more…

How do i book in?

Bookings are first come first served
If our classes are full, be sure to join the waiting list for the best chance to get a future spot.
Simply fill out the form below to register your interest and a team member will be in touch shortly.

body {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}

.login-box {
width: 100%;
padding: 50px;
background: #181818;
box-sizing: border-box;
box-shadow: 0 15px 25px rgba(0,0,0,.6);
border-radius: 10px;
}

.login-box h2 {
margin: 0 0 30px;
padding: 0;
color: #fff000 !important;
text-align: center;
font-family: Arial Black;
font-size: 2em;
}

.login-box h3 {
font-size: 18px;
color: white !important;
font-weight: bold;
font-family: Arial Black, Gadget, sans-serif;
margin: 0px;
padding: 0px;
margin-top: 10px;
padding-top: 10px;
}

@media (max-width: 767px) {
.login-box h2 {
margin: 0 0 30px;
padding: 0;
color: #fff000 !important;
text-align: center;
font-family: Arial Black;
font-size: 1em;
}
}

.login-box .user-box {
position: relative;
}

.login-box .user-box input,
.login-box .user-box textarea {
width: 100%;
padding: 10px 0;
font-size: 16px;
color: #fff;
margin-bottom: 30px;
border: none;
border-bottom: 1px solid #fff;
outline: none;
background: transparent;
font-family: ‘Century Gothic’;
}
.login-box .user-box label {
position: absolute;
top:0;
left: 0;
padding: 10px 0;
font-size: 16px;
color: #fff;
pointer-events: none;
transition: .5s;
font-family: ‘Century Gothic’;
}

.TandC label{
color: #fff !important;
font-family: ‘Century Gothic’;
}

.makeLink{
color: #fff000 !important;
text-decoration: underline;
font-family: ‘Century Gothic’;
}

.makeLink:hover{
color: white !important;
text-decoration: none;
font-family: ‘Century Gothic’;
}

.login-box #submitBlock{
/* position: relative;
display: inline-block; */
padding: 10px 20px;
/* color: white; */
/* background-color: black ; */
/* font-size: 16px; */
/* text-decoration: none;
text-transform: uppercase; */
/* overflow: hidden; */
/* transition: .5s; */
margin-top: 40px;
/* letter-spacing: 4px */
}

.login-box .user-box input:focus ~ label,
.login-box .user-box input:valid ~ label {
top: -20px;
left: 0;
color: #fff000;
font-size: 12px;
}

.login-box .user-box textarea:focus ~ label,
.login-box .user-box textarea:valid ~ label {
top: -20px;
left: 0;
color: #fff000;
font-size: 12px;
}

.login-box form input[type=submit] {
position: relative;
display: inline-block;
padding: 10px 20px;
color: white;
background-color: black ;
font-size: 16px;
text-decoration: none;
text-transform: uppercase;
overflow: hidden;
transition: .5s;
/* margin-top: 40px; */
letter-spacing: 4px
}

.login-box input[type=submit]:hover {
background: #fff000;
color: black;
border-radius: 5px;
box-shadow: 0 0 5px #fff000,
0 0 25px #fff000,
0 0 50px #fff000,
0 0 100px #fff000;
}

.login-box input[type=checkbox] {
width: 25px;
height: 25px;
vertical-align: middle;
position: relative;
}

.form-inline {
display: flex;
align-items: center;
width:100%;
}

.form-inline label {
margin: 5px 10px 5px 0;
}

/* .form-inline input {
vertical-align: middle;
margin: 5px 10px 5px 0;
padding: 10px;
background-color: #fff;
border: 1px solid #ddd;
} */

::-webkit-calendar-picker-indicator {
filter: invert(1);
}

.container {
padding: 20px 100px 20px 100px;
text-align: left;
display: none;
}

.container p {
color: white;
font-size: 14px;
margin-bottom: 20px;
font-family: Century Gothic;
margin: 0px;
padding: 0px;
}

.container li {
color: white;
font-size: 14px;
margin-bottom: 20px;
font-family: Century Gothic;
margin: 0px;
padding: 0px;
}

.ReturnText{
color: #fff000;
font-size: 14px;
margin-bottom: 20px;
font-family: Century Gothic;
margin: 0px;
padding: 0px;
}

#toggleButton {
display: flex;
position: fixed;
align-items: center;
justify-content: center;
top: 0;
left: 0;
}

.ring {
position: relative;
top: 100%;
left: 0%;
/* transform: translate(-50%, -50%); */
width: 50px;
height: 50px;
background: transparent;
border: 3px solid #3c3c3c;
border-radius: 50%;
text-align: center;
line-height: 150px;
font-family: sans-serif;
font-size: 20px;
color: #fff000;
letter-spacing: 4px;
text-transform: uppercase;
text-shadow: 0 0 10px #fff000;
box-shadow: 0 0 20px rgba(0,0,0,.5);
display: none;
}

.ring:before {
content: ”;
position: absolute;
top: -3px;
left: -3px;
width: 100%;
height: 100%;
border: 3px solid transparent;
border-top: 3px solid #fff000;
border-right: 3px solid #fff000;
border-radius: 50%;
animation: animateC 2s linear infinite;
}

.circleContainer {
display: none;
position: absolute;
top: calc(50% – 2px);
left: 50%;
width: 50%;
height: 4px;
background: transparent;
transform-origin: left;
animation: animate 2s linear infinite;
}

.circleContainer:before {
content: ”;
position: absolute;
width: 16px;
height: 16px;
border-radius: 50%;
background: #fff000;
top: -6px;
right: -8px;
box-shadow: 0 0 20px #fff000;
}

.drop{
cursor: pointer;
}

@keyframes animateC {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}

@keyframes animate {
0% {
transform: rotate(45deg);
}
100% {
transform: rotate(405deg);
}
}

Register Your Interest

Parent Name

Child Name

Child Age

Mobile Number

Email

Class Type

By checking this box you agree to the below terms and conditions

Introduction:

These Terms and Conditions (the “Agreement”) govern the terms by which
you may participate in Wall Walkers Bouldering class Programs. The Programs offered by Wall Walkers
Bouldering are outlined on the specific class information pages (listed below) and in this agreement.

Register:

To register for a Class Program, you must complete the registration process by providing Wall Walkers Bouldering with current, complete, and accurate information as
prompted by the applicable registration form. You acknowledge that if any information provided by you is untrue, inaccurate, not current, or incomplete, we may be unable to contact You
and/or your child, and we reserve the right to terminate your position in the Class Program queue.

Enrollment:

To participate in a Program, Wall Walkers Bouldering will confirm your details via email and provide you with the relevant class details including start date, end date, and payment link.

Communication:

By submitting this form, you agree to receive communications from Wall Walkers Bouldering, including via e-mail, text message, calls, and push notifications. You agree that texts, calls, or prerecorded messages may be generated by automatic telephone dialing systems.
Communications from Wall Walkers Bouldering, its affiliated companies, and/or agents, may include but are not limited to: operational communications concerning your class or Program, updates concerning new and existing features on the Wall Walkers Bouldering website, and news concerning Wall Walkers Bouldering and industry developments.

Termination:

Should your child act unreasonably during a class on multiple occasions, Wall Walkers Bouldering reserves the right to terminate your child’s remaining classes without a refund.

CompSquad Conditions:

CompSquad spots are offered to children who show an interest in climbing and want to pursue training and competition. Kids must either complete 1 term of Youth Squad or demonstrate significant interest in climbing to be offered a spot in CompSquad.
Comp Squad is limited to a maximum of 10 children.
Kids must be 7 – 18 years old to participate in CompSquad.
If Wall Walkers Bouldering cancels a class, a make-up class will be scheduled on a different day.
Wall Walkers Bouldering reserves the right to refuse membership renewal if your child does not regularly participate in classes or competitions.
There are no refunds for missed classes or competition entries.
Wall Walkers Bouldering may provide a T-Shirt for competitions, which is expected to be worn during the event.
The membership pass allows unlimited climbing at Wall Walkers Bouldering during operational hours, which may change, for the duration of the pass period.
Shoe hire is included in the membership price.
Chalk bag hire is Not included in the membership price.
Memberships can be frozen for 1 week without charge; subsequent weeks will be charged at $5 per week.
No discounts or refunds for missed classes due to freezing a membership.
1 Free pass card will be issued on the first visit; a $20 fee applies for replacement if lost or stolen.
Comp Squad memberships are non-transferable.
All prices include 10% GST.
Surcharges may apply as stated; no additional fees or charges.

CompSquad Class Information Page.

YouthFam Thursday sessions can only be booked term by term. Existing YouthFam Thursday members will be given priority booking for each new term.
There are no refunds for missed YouthFam Thursday bouldering classes. For more information, see the YouthFam Thursday class information page (link below).
Bookings are on a first-come, first-served basis.
The minimum number of people for a YouthFam Thursdays class is outlined on the class information page (link below). If there are less than the indicated minimum for each class, Wall Walkers reserves the right to cancel the class.
Class limits for YouthFam Thursdays are outlined in the About section on the class information page.
Kids must be 7 – 10 years old to participate in YouthFam Thursday bouldering classes.
Shoe hire is included in the price.
Chalk bag hire is included in the price.
All prices include 10% GST.
Surcharges may apply as stated, but there are no additional administration fees, registration fees, or any other charges.
YouthFam Thursdays Class Information Page.

YouthFam Saturdays Conditions:

YouthFam Saturdays can only be booked term by term. Existing YouthFam Saturdays members will be given priority booking for each new term.
There are no refunds given for missed YouthFam Saturdays classes. For more information, see the YouthFam Saturdays class information page (link below).
Bookings are on a first-come, first-served basis.
The minimum number of people for a YouthFam Saturdays class is outlined on the class information page (link below). If there are less than the indicated minimum for each class, Wall Walkers reserves the right to cancel the class.
Class limits for YouthFam Saturdays are outlined in the About section on the class information page.
Kids must be 7 – 12 years old to participate in YouthFam Saturdays bouldering classes.
Shoe hire is included in the price.
Chalk bag hire is included in the price.
All prices include 10% GST.
Surcharges may apply as stated, but there are no additional administration fees, registration fees, or any other charges.
YouthFam Saturdays Class Information Page.

By submitting the information in this form, you acknowledge that you have read,
understand, and agree to be bound by the terms and conditions of this Agreement and that we may contact you from time to time with class updates and offers.

Captcha Question: What is 5 plus 3?

function ShowHide() {
var x = document.getElementById(“container”);
console.log(x);
if (x.style.display === “none” || x.style.display === “”) {
x.style.display = “block”;
} else {
x.style.display = “none”;
}
}

//https://stackoverflow.com/questions/374644/how-do-i-capture-response-of-form-submit
document.forms[‘sendForm’].addEventListener(‘submit’, (event) => {
event.preventDefault();
console.log(event.target.action); // will output the url that the form is going to be submitted to
// TODO do something here to show user that form is being submitted
if(document.getElementById(“captcha”).value != 8){
changeText(“Submitted Unsuccessfully: Please answer the captcha question correctly.”);
return;
}
var submitButton = document.getElementById(“submit”);
var loadingMainCircle = document.getElementById(“loading”);
var loadingSmallCircle = document.getElementById(“loadingCircle”);

// console.log(loadingSmallCircle);

submitButton.style.display = “none”;
loadingMainCircle.style.display = “block”;
loadingSmallCircle.style.display = “block”;

fetch(event.target.action, {
method: ‘POST’,
headers: {
“Content-Type”: “application/x-www-form-urlencoded”, // Necessary for URL-encoded forms
“x-app-identifier”: “WallWalkersBouldering_MonkeyMagic”, // Custom header for trusted requests
},
body: new URLSearchParams(new FormData(event.target)) // event.target is the form
}).then((resp) => {
// console.log(resp.json());
return resp.json(); // or resp.text() or whatever the server sends
}).then((body) => {
// console.log(body.responseMessage);
// TODO handle body
if(body.responseCode == 201){ //Success
changeText(body.responseMessage);
}
else{ //Other things
changeText(“Submitted Unsuccessfully: ” + body.responseMessage);
}

submitButton.style.display = “block”;
loadingMainCircle.style.display = “none”;
loadingSmallCircle.style.display = “none”;
}).catch((error) => { //Error
// TODO handle error
// console.log(body.responseMessage);
changeText(“There was a problem submitting your form. Please try again later.”);
});
});

var timeout;
function changeText(message) {
var elem = document.getElementById(“Submitted”);

var date = new Date();
var hours = date.getHours();
var minutes = (date.getMinutes() < 15 ? '0' : '') + date.getMinutes(); elem.innerHTML = message; clearTimeout(timeout); timeout = setTimeout(function() { elem.innerHTML = ""; }, 10000); }

Register Interest

Terms and Conditions:

CompSquad spots are offered to children who show interest in climbing and want to pursue training and competition,
Kids must either first complete 1 term of Youth Squad or have demonstrated significant interest in climbing as a sport in order to be offered a spot in CompSquad,
Comp Squad is limited to 6 children max,
Kids must be 7 – 18 years old to participate in CompSquad,
If Wall Walkers Bouldering cancels a class, we will schedule a make-up class on a different day,
Wall Walkers Bouldering reserves the right to refuse membership renewal to the class if your child is not participating in classes or competitions regularly,
There are no refunds for missed classes or competition entries,
CompSquad kids will be given a Wall Walkers t-shirt which must be worn during competitions,
This membership pass allows unlimited climbing at Wall Walkers Bouldering for the duration of the pass period only during hours of operation which may change from time to time,
Shoe hire is included in the membership price,
Chalk bag hire is included in the membership price,
Memberships may be frozen for a period of 1 week without charge,  subsequent weeks will be charged at $5 per week,
No discounts or refunds will be given for missed classes due to freezing a membership,
1 Free pass card will be issued to the pass holder on their first visit to Wall Walkers, if this card is lost or stolen there will be a $20 replacement fee,
Comp Squad memberships may not be transferred to another person,
All prices include 10% GST,
Surcharges may apply where stated however there are no additional administration fees, registration fees, or any other charges.

YouthFam Climbing Classes

YouthFam climbing classes

Active learning, problem solving, fun!

Secure Your Childs Spot Now

YouthFamclimbing classes

Active learning, problem solving, fun!

Secure Your Childs Spot Now

WHY YouthFam?

Climbing skills, techniques, and physical fitness all in one
Fun with a purpose over the course of each class our climbing youth will experience a general introduction & fundamentals of climbing.  
If you’re interested in device free time that builds confidence, problem-solving, physical strength, balance and more all while socializing in a fun group environment.  Look no further.
The kids will learn valuable climbing skills needed to start or improve their climbing, all in a fun, safe social environment!

Available Classes

YouthFam Monday
Max Class Size: 5
Class Price: $200
Fun with a purpose

YouthFam Thursday
Max Class Size: 5
Class Price: $200
Fun with a purpose

YouthFam Saturday
Max Class Size: 10
Class Price: $200
Fun with a purpose

FAQ

Classes include entry to the gym, the instructor, climbing shoes and chalk for the class only.

Yes, If you wish to book a spot in multiple YouthFam classes simply pay the price for the classes you wish to attend
e.g. If you wish to join both YouthFam Monday and Thursday you would pay $200 for the Monday classes and $200 for the Thursday classes, which is 18 classes in total.

We currently do not have specific age ranges for our classes.  So long as your child is 7 or older and below 18 they can join a class.
Reach out to discuss your options if your child is younger as we will make exceptions on a case-by-case basis.

All climbers at Wall Walkers are required to wear Climbing Shoes.
Other than this you should wear comfortable clothing similar to what you would wear to the gym.
For more information check out the First Timers page.

Classes are unstructured and will focus more on each climber’s ability rather than a prescribed list of techniques and tricks. Each young climber will climb to their level with the instructor giving feedback and advice for improvement.  In general they will learn:

General introduction to climbing and climbing terminology,
Problem-solving, exercise, group activity, socializing,
Climbing tips, techniques needed to start or improve,
Pathways for improvement and progression in climbing

Yes, members will enjoy a 20% discount on the class fee.

Unfortunately due to the nature of the class structure, we are unable to provide refunds for missed classes.  However, if you enrol in the following term class block we will discount the term fee proportionately up to a maximum of 2 classes.
Wall Walkers Bouldering reserves the right to refuse new term bookings if multiple classes have been missed.  This is done to give other young climbers who may be more interested the opportunity to participate.

In the event Wall Walkers cancels a term, anyone who has booked in will be transferred to the next term or given a refund depending on their preference.

No.  Bookings for each term will be taken in the month prior to the new term.  Existing climbers with good attendance will be given the first chance to book each new term.

Great! You can find our contact details Here, give us a call or send an email to clear things up.

Secure Your Child’s Spot

YouthFam Instructor

Jackson Mead

As an avid climber, I’m fascinated by the diverse approaches to solving different routes and problems.
I find joy not only in discovering my own solutions but also in observing how others tackle their projects, often revealing methods I hadn’t considered. The climbing community’s supportive nature is another aspect I cherish; we constantly encourage each other to improve, making the pursuit of new limits both easier and more rewarding.
I’m currently pursuing Certificates III and IV in Fitness, with a clear focus on climbing training and calisthenics (bodyweight exercises). I’m excited about the opportunity to share my knowledge through both group classes and one-on-one coaching, offering insights on climbing-specific training to enhance strength and technique. Whether you’re a beginner or an experienced climber looking to push your boundaries.
I look forward to helping you achieve your goals.

.benefits-section {
background-color: #181818;
padding: 60px 15px;
font-family: ‘Helvetica Neue’, Arial, sans-serif;
}
.benefits-container {
max-width: 1000px;
margin: 0 auto;
}
.section-title {
text-align: center;
font-size: 32px;
color: #fff;
margin-bottom: 40px;
font-weight: 300;
letter-spacing: 1px;
opacity: 0;
transform: translateY(-20px);
animation: fadeInDown 0.8s forwards;
}
.benefits-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 25px;
}
.benefit-card {
background-color: #222;
border-left: 3px solid #fff000;
padding: 25px;
transition: all 0.3s ease;
opacity: 0;
transform: translateY(20px);
}
.benefit-card:hover {
transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(255, 240, 0, 0.1);
}
.benefit-text {
font-size: 18px;
color: #fff;
margin-bottom: 10px;
}
.benefit-description {
font-size: 14px;
color: #aaa;
line-height: 1.4;
}
@keyframes fadeInDown {
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeInUp {
to {
opacity: 1;
transform: translateY(0);
}
}

Experience the Benefits

Physical Wellness
Improve flexibility, strength, and overall body balance

Mental Clarity
Enhance focus, mindfulness, and problem-solving skills

Stress Relief
Release tension, find calm, and build resilience

Emotional Balance
Cultivate inner peace and emotional stability

Enjoyment & Excitement
Experience fun, thrilling challenges in a unique activity

Personal Growth
Develop confidence, overcome fears, and push boundaries

document.addEventListener(‘DOMContentLoaded’, () => {
const cards = document.querySelectorAll(‘.benefit-card’);
cards.forEach((card, index) => {
card.style.animation = `fadeInUp 0.5s forwards ${index * 0.1}s`;

card.addEventListener(‘mouseenter’, () => {
card.style.transform = ‘translateY(-5px)’;
});
card.addEventListener(‘mouseleave’, () => {
card.style.transform = ‘translateY(0)’;
});
});
});

And much more…

How do i book in?

Spots are allocated on a first-come, first-served basis and are available for one term at a time.
Registration opens 2 weeks before each term begins, with priority given to returning climbers and people already on the waiting list. To secure your child’s place, we recommend signing up early.
Simply fill out the form below to Secure Your Spot and a team member will be in touch shortly.

.arrow-container {
display: flex;
justify-content: center;
align-items: center;
height: 100px;
}
.arrow-down {
width: 40px;
height: 40px;
border: 4px solid #fff000;
border-left: 0;
border-top: 0;
transform: rotate(45deg);
animation: bounce 2s infinite;
}
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0) rotate(45deg);
}
40% {
transform: translateY(-30px) rotate(45deg);
}
60% {
transform: translateY(-15px) rotate(45deg);
}
}

Join Waiting List

Terms and Conditions

YouthFam Saturdays Conditions:

YouthFam Saturdays can only be booked term by term. Existing YouthFam Saturdays members will be given priority booking for each new term.
There are no refunds given for missed YouthFam Saturdays classes. For more information, see the YouthFam Saturdays class information page (link below).
Bookings are on a first-come, first-served basis.
The minimum number of people for a YouthFam Saturdays class is outlined on the class information page (link below). If there are less than the indicated minimum for each class, Wall Walkers reserves the right to cancel the class.
Class limits for YouthFam Saturdays are outlined in the About section on the class information page.
Kids must be 7 – 12 years old to participate in YouthFam Saturdays bouldering classes.
Shoe hire is included in the price.
Chalk bag hire is included in the price.
All prices include 10% GST.
Surcharges may apply as stated, but there are no additional administration fees, registration fees, or any other charges.

.wwb-container {
max-width: 600px;
margin: 20px auto;
background-color: #181818;
border: 1px solid #fff000;
border-radius: 10px;
padding: 20px;
box-shadow: 0 0 25px #fff000;
box-sizing: border-box;
}

.wwb-container::-webkit-scrollbar {
width: 10px;
}

.wwb-container::-webkit-scrollbar-track {
background: #181818;
}

.wwb-container::-webkit-scrollbar-thumb {
background-color: #fff000;
border-radius: 5px;
border: 2px solid #181818;
}

.wwb-container h2 {
color: #fff000;
font-size: 24px;
margin-bottom: 20px;
text-align: center;
font-family: “Arial Black”, sans-serif;
}

.form-group {
position: relative;
margin-bottom: 15px;
}

.form-group input,
.form-group select {
width: 100%;
padding: 8px 0;
font-size: 15px;
color: #fff;
margin-bottom: 5px;
border: none;
border-bottom: 1px solid #fff;
outline: none;
background: transparent;
font-family: “Century Gothic”, sans-serif;
}

.form-group input::-webkit-outer-spin-button,
.form-group input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}

.form-group input[type=”number”] {
-moz-appearance: textfield;
}

.form-group label {
position: absolute;
top: 0;
left: 0;
padding: 8px 0;
font-size: 15px;
color: #fff;
pointer-events: none;
transition: 0.5s;
}

/* Enhanced Select Styling */
.form-group select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
cursor: pointer;
padding-right: 30px; /* Space for the custom arrow */
}

.form-group.select-container {
position: relative;
}

.form-group.select-container::after {
content: “\25BC”;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
color: #fff000;
pointer-events: none;
font-size: 12px;
transition: 0.3s ease;
}

.form-group.select-container:hover::after {
color: #fff;
}

.form-group select option {
background-color: #181818;
color: #fff;
padding: 10px;
}

.form-group input:focus ~ label,
.form-group input:valid ~ label,
.form-group select:focus ~ label,
.form-group select:valid ~ label {
top: -18px;
left: 0;
color: #fff000;
font-size: 12px;
}

/* Validation Styles */
.form-group input:invalid,
.form-group select:invalid {
border-bottom: 1px solid #fff;
}

.form-group input:focus:invalid,
.form-group select:focus:invalid {
border-bottom: 1px solid #f44336;
}

.form-group input:valid,
.form-group select:valid {
border-bottom: 1px solid #fff000;
}

.validation-message {
position: absolute;
bottom: -20px;
left: 0;
font-size: 12px;
color: #f44336;
opacity: 0;
transition: opacity 0.3s ease;
}

.validation-message.show {
opacity: 1;
}

.wwb-checkbox-group {
display: flex;
align-items: center;
margin-bottom: 15px;
color: white;
padding: 5px;
border-radius: 4px;
transition: all 0.3s ease;
}

.wwb-checkbox-group.checked {
background-color: #fff000;
}

.wwb-checkbox-group.checked .wwb-checkbox-label {
color: #181818;
}

.wwb-checkbox {
position: absolute;
opacity: 0;
}

.wwb-checkbox-label {
position: relative;
cursor: pointer;
padding-left: 35px;
color: #fff;
font-size: 16px;
}

.wwb-checkbox-label:before {
content: “”;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 20px;
height: 20px;
border: 2px solid #fff000;
background: #181818;
border-radius: 4px;
}

.wwb-checkbox:checked + .wwb-checkbox-label:after {
content: “\2714”;
position: absolute;
left: 6px;
top: 50%;
transform: translateY(-50%);
color: #181818; /* Changed to black when checked due to yellow background */
font-size: 14px;
line-height: 1;
}

.wwb-checkbox-group.checked .wwb-checkbox-label:before {
border-color: #181818;
background: #fff000;
}

.wwb-link {
color: #fff000;
text-decoration: underline;
cursor: pointer;
}

.wwb-checkbox-group.checked .wwb-link {
color: #181818;
}

.wwb-link:hover {
color: white;
text-decoration: none;
}

.wwb-checkbox-group.checked .wwb-link:hover {
color: #181818;
opacity: 0.8;
}

.wwb-terms-content {
display: none;
color: white;
margin: 15px 0;
padding: 15px;
border: 1px solid #fff000;
border-radius: 5px;
}

.wwb-submit-button {
width: 100%;
padding: 10px 20px;
background-color: transparent;
border: 2px solid #fff000;
color: #fff000;
font-size: 16px;
cursor: pointer;
border-radius: 5px;
transition: all 0.3s ease;
margin-top: 20px;
position: relative;
overflow: hidden;
}

.wwb-submit-button:hover:not(:disabled) {
background-color: #fff000;
color: #181818;
box-shadow: 0 0 15px #fff000;
}

.wwb-submit-button:disabled {
opacity: 0.5;
cursor: not-allowed;
}

.wwb-loading {
display: none;
width: 40px;
height: 40px;
margin: 15px auto;
border: 3px solid #3c3c3c;
border-radius: 50%;
border-top: 3px solid #fff000;
border-right: 3px solid #fff000;
animation: wwb-spin 1s linear infinite;
}

@keyframes wwb-spin {
to {
transform: rotate(360deg);
}
}

.wwb-message {
color: #fff000;
text-align: center;
margin-top: 10px;
min-height: 20px;
transition: opacity 0.3s ease;
}

@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}

.restore-form {
display: none;
padding: 10px;
margin-bottom: 15px;
background-color: rgba(255, 240, 0, 0.1);
border-radius: 5px;
color: white;
}

.restore-form button {
background-color: #fff000;
color: #181818;
border: none;
padding: 5px 10px;
border-radius: 3px;
margin-left: 10px;
cursor: pointer;
}

@media (max-width: 600px) {
.wwb-container {
margin: 10px;
padding: 15px;
}

.wwb-container h2 {
font-size: 20px;
}
}

Secure Your Child’s Spot Now

We found your previous form data. Would you like to restore it?
Restore
Clear

Parent Name
Please enter a valid name

Child Name
Please enter a valid name

Child Age
Age must be between 5 and 17

Mobile Number
Please enter a valid 10-digit mobile number

Email
Please enter a valid email address

YouthFam Monday
YouthFam Thursday
YouthFam Saturday
YouthSquad

Class Type
Please select a class type

I agree to the
terms and conditions

Terms and Conditions
Wall Walkers Bouldering™ Youth Programs

1. General Enrollment

Classes are designed for children aged 5-17 years old
All spots are allocated on a first-come, first-served basis

Waiting list registration is strongly recommended for future
availability

Payment must be made in advance to secure enrollment

A parent or guardian must attend the first class session for mandatory
orientation

2. Program-Specific Policies

2.1 YouthFam Program

Credit for missed classes may be applied to the following term’s fees

Maximum of two (2) missed classes per term may be credited
Credits are only valid if re-enrolling for the subsequent term

Credit value will be deducted from the next term’s enrollment fee

2.2 YouthSquad Program

No make-up classes or credits are provided for missed sessions
Full term fees apply regardless of attendance

3. Safety and Equipment Requirements

Proper climbing attire is mandatory:

Comfortable, athletic clothing
Climbing shoes (rental available)
No loose jewelry or accessories

All participants must follow safety rules and instructor guidance

Parents/guardians must complete and sign a waiver form prior to
participation

4. Class Administration

Wall Walkers Bouldering™ reserves the right to:

Modify class schedules with advance notice
Cancel classes when necessary (with advance notice)
Adjust program content to ensure safety and quality

24-hour notice is required for any class changes or cancellations

Photography may occur during classes for promotional purposes

Parents must inform staff if they do not consent to photography

5. Code of Conduct

Participants must:

Follow all instructor directions
Respect fellow climbers and staff
Adhere to facility rules and safety guidelines

Wall Walkers Bouldering™ reserves the right to dismiss
participants who do not follow the code of conduct

6. Liability and Insurance

Parents/guardians must maintain valid emergency contact information

Wall Walkers Bouldering™ maintains appropriate insurance
coverage

Personal climbing insurance is recommended but not required

7. Force Majeure

Wall Walkers Bouldering™ reserves the right to suspend or modify
services due to circumstances beyond reasonable control, including but
not limited to:

Natural disasters
Public health emergencies
Facility maintenance emergencies

Captcha Question: What is 5 plus 3?
Please answer the captcha correctly

Register

const WWBKidsForm = {
init() {
// Get all required elements
this.form = document.getElementById(“wwb-registration-form”);
this.submitButton = this.form.querySelector(“.wwb-submit-button”);
this.loading = document.getElementById(“wwb-loading”);
this.message = document.getElementById(“wwb-message”);
this.termsContent = document.getElementById(“wwb-terms-content”);
this.termsLink = document.querySelector(“.wwb-link”);
this.endpoint = ‘https://dokku.wallwalkersbouldering.com/kidsClass/addRegistration’;
//this.endpoint = “http://localhost:3000/kidsClass/addRegistration”;

// Set up all event listeners
this.setupEventListeners();
this.checkSavedForm();
},

checkSavedForm() {
const savedForm = localStorage.getItem(“wwbKidsFormData”);
if (savedForm) {
document.getElementById(“restore-form”).style.display = “block”;
}
},

restoreForm() {
const savedForm = JSON.parse(localStorage.getItem(“wwbKidsFormData”));
if (savedForm) {
Object.keys(savedForm).forEach((key) => {
const element = this.form.elements[key];
if (element) {
if (element.type === “checkbox”) {
element.checked = savedForm[key];
this.updateCheckboxBackground(element);
} else {
element.value = savedForm[key];
if (savedForm[key]) {
element.dispatchEvent(new Event(“change”));
}
}
}
});
}
document.getElementById(“restore-form”).style.display = “none”;
},

clearSavedForm() {
localStorage.removeItem(“wwbKidsFormData”);
document.getElementById(“restore-form”).style.display = “none”;
},

toggleTerms() {
const terms = document.getElementById(“wwb-terms-content”);
terms.style.display = terms.style.display === “block” ? “none” : “block”;
if (terms.style.display === “block”) {
terms.scrollIntoView({ behavior: “smooth”, block: “nearest” });
}
},

updateCheckboxBackground(checkbox) {
const group = checkbox.closest(“.wwb-checkbox-group”);
if (group) {
group.classList.toggle(“checked”, checkbox.checked);
}
},

showMessage(message, duration = 10000) {
this.message.innerHTML = message;
this.message.style.opacity = “1”;
clearTimeout(this.messageTimeout);
this.messageTimeout = setTimeout(() => {
this.message.style.opacity = “0”;
setTimeout(() => {
this.message.innerHTML = “”;
}, 300);
}, duration);
},

validateField(field) {
const validationMessage = field.parentElement.querySelector(
“.validation-message”
);

// Skip validation message handling if the element doesn’t exist
if (!validationMessage) {
return field.checkValidity();
}

const isValid = field.checkValidity();

if (!isValid && field.value) {
validationMessage.classList.add(“show”);
} else {
validationMessage.classList.remove(“show”);
}

return isValid;
},

saveFormProgress() {
const formData = new FormData(this.form);
const data = {};
formData.forEach((value, key) => {
if (this.form.elements[key].type === “checkbox”) {
data[key] = this.form.elements[key].checked;
} else {
data[key] = value;
}
});
localStorage.setItem(“wwbKidsFormData”, JSON.stringify(data));
},

setupEventListeners() {
// Checkbox handler
const checkbox = this.form.querySelector(“.wwb-checkbox”);
checkbox.addEventListener(“change”, () => {
this.updateCheckboxBackground(checkbox);
this.saveFormProgress();
});

// Input fields handlers
this.form.querySelectorAll(“input, select”).forEach((field) => {
field.addEventListener(“input”, () => {
this.validateField(field);
this.saveFormProgress();
});

field.addEventListener(“blur”, () => {
this.validateField(field);
});

// Special handling for number input
if (field.type === “number”) {
field.addEventListener(“keypress”, (e) => {
if (!/[0-9]/.test(e.key)) {
e.preventDefault();
}
});
}

// Phone number formatting
if (field.id === “mobile”) {
field.addEventListener(“input”, (e) => {
let value = e.target.value.replace(/\D/g, “”);
if (value.length > 10) {
value = value.slice(0, 10);
}
e.target.value = value;
});
}
});

// Form submission
this.form.addEventListener(“submit”, (event) => {
event.preventDefault();

let isValid = true;
this.form.querySelectorAll(“input, select”).forEach((field) => {
if (!this.validateField(field)) {
isValid = false;
}
});

if (!isValid) {
this.showMessage(“Please check all fields and try again.”);
return;
}

if (document.getElementById(“captcha”).value !== “8”) {
this.showMessage(“Please answer the captcha question correctly.”);
return;
}

this.submitForm();
});
},

async submitForm() {
this.submitButton.style.display = “none”;
this.loading.style.display = “block”;

try {
const formData = new FormData(this.form);
const response = await fetch(this.endpoint, {
method: “POST”,
headers: {
“Content-Type”: “application/x-www-form-urlencoded”,
“x-app-identifier”: “WallWalkersBouldering_MonkeyMagic”,
},
body: new URLSearchParams(formData),
});

const data = await response.json();

if (data.responseCode === 201) {
this.showSuccessState(data.responseMessage);
} else {
throw new Error(data.responseMessage || “Submission failed”);
}
} catch (error) {
this.showMessage(
`Submitted Unsuccessfully: ${
error.message || “An error occurred”
}`
);
} finally {
this.submitButton.style.display = “block”;
this.loading.style.display = “none”;
}
},

showSuccessState(message) {
this.showMessage(message);
this.form.reset();
this.clearSavedForm();

// Reset all validation states
this.form.querySelectorAll(“.validation-message”).forEach((msg) => {
msg.classList.remove(“show”);
});

// Reset all checkbox states
this.form.querySelectorAll(“.wwb-checkbox-group”).forEach((group) => {
group.classList.remove(“checked”);
});

// Animate success
this.submitButton.style.backgroundColor = “#fff000”;
this.submitButton.style.color = “#181818”;
setTimeout(() => {
this.submitButton.style.backgroundColor = “transparent”;
this.submitButton.style.color = “#fff000”;
}, 1500);
},
};

// Initialize the form
document.addEventListener(“DOMContentLoaded”, () => {
WWBKidsForm.init();
});


Areas we serve: Capalaba, Thornlands, Alexandra Hills