@import url('https://fonts.cdnfonts.com/css/aptos');
.ivx-gb,
.ivx-gb * { box-sizing: border-box; margin: 0; padding: 0; }
.ivx-gb {
--gold: #d0b873;
--gold-hover: #8f7240;
--gold-active: #6f582f;
--grad: linear-gradient(135deg, #f6ec9f 0%, #d0b873 100%);
--ink: #0a0a0a;
--muted: #6f6c64;
--line: #ece7da;
--cream: #f7f5ef;
font-family: 'Aptos', 'Segoe UI', -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;
background: var(--cream);
padding: 64px 20px;
}
.ivx-gb-wrap { max-width: 820px; margin: 0 auto; }
/* ---------- header ---------- */
.ivx-gb-head {
text-align: center;
margin-bottom: 40px;
}
.ivx-gb-head .ivx-eyebrow {
display: inline-flex;
align-items: center;
gap: 10px;
font-size: 12px;
font-weight: 700;
letter-spacing: 3px;
text-transform: uppercase;
color: var(--gold-hover);
margin-bottom: 14px;
}
.ivx-gb-head .ivx-eyebrow::before,
.ivx-gb-head .ivx-eyebrow::after {
content: "";
width: 34px; height: 2px;
background: var(--grad);
border-radius: 2px;
}
.ivx-gb-head h1 {
font-size: clamp(30px, 4.4vw, 46px);
font-weight: 800;
letter-spacing: -.5px;
color: var(--ink);
}
.ivx-gb-head h1 em {
font-style: normal;
background: var(--grad);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
}
.ivx-gb-head p {
font-size: 15px;
color: var(--muted);
line-height: 1.75;
max-width: 560px;
margin: 14px auto 0;
}
/* ---------- card ---------- */
.ivx-gb-card {
background: #ffffff;
border: 1px solid var(--line);
border-radius: 20px;
overflow: hidden;
box-shadow: 0 24px 60px rgba(20,18,16,.10);
}
.ivx-gb-card::before {
content: "";
display: block;
height: 5px;
background: var(--grad);
}
.ivx-gb-body { padding: 44px 46px; }
/* ---------- fields ---------- */
.ivx-gb-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 22px;
}
.ivx-gb-grid .full { grid-column: 1 / -1; }
.ivx-f label {
display: block;
font-size: 12.5px;
font-weight: 700;
letter-spacing: .8px;
text-transform: uppercase;
color: var(--ink);
margin-bottom: 8px;
}
.ivx-f label .req { color: #d92d20; }
.ivx-f input,
.ivx-f select,
.ivx-f textarea {
width: 100%;
font-family: inherit;
font-size: 14.5px;
color: var(--ink);
background: #fbfaf7;
border: 1.5px solid var(--line);
border-radius: 10px;
padding: 14px 16px;
outline: none;
transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
appearance: none;
-webkit-appearance: none;
}
.ivx-f input:focus,
.ivx-f select:focus,
.ivx-f textarea:focus {
border-color: var(--gold);
background: #ffffff;
box-shadow: 0 0 0 4px rgba(208,184,115,.18);
}
.ivx-f input::placeholder,
.ivx-f textarea::placeholder { color: #a5a093; }
.ivx-f textarea { resize: vertical; min-height: 110px; }
.ivx-f .sel-wrap { position: relative; }
.ivx-f .sel-wrap::after {
content: "";
position: absolute;
right: 18px; top: 50%;
width: 9px; height: 9px;
border-right: 2px solid var(--gold-hover);
border-bottom: 2px solid var(--gold-hover);
transform: translateY(-70%) rotate(45deg);
pointer-events: none;
}
/* captcha slot */
.ivx-captcha { margin-top: 26px; display: flex; justify-content: center; }
.ivx-captcha-placeholder {
display: inline-flex;
align-items: center;
gap: 10px;
font-size: 12.5px;
font-weight: 600;
letter-spacing: .4px;
color: #a5a093;
border: 1.5px dashed var(--line);
border-radius: 10px;
padding: 14px 22px;
background: #fbfaf7;
}
.ivx-captcha-placeholder svg { color: var(--gold-hover); flex-shrink: 0; }
.cf-turnstile { margin: 0 auto; }
/* honeypot — must stay invisible */
.ivx-hp { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }
/* ---------- submit ---------- */
.ivx-gb-submit {
margin-top: 30px;
display: flex;
flex-direction: column;
align-items: center;
gap: 14px;
}
.ivx-gb-btn {
font-family: inherit;
font-size: 15px;
font-weight: 800;
letter-spacing: .8px;
text-transform: uppercase;
color: #000;
background: var(--grad);
border: none;
border-radius: 10px;
padding: 17px 48px;
cursor: pointer;
box-shadow: 0 10px 26px rgba(208,184,115,.4);
transition: filter .2s ease, transform .2s ease, box-shadow .2s ease;
}
.ivx-gb-btn:hover { filter: brightness(1.06); transform: translateY(-2px); box-shadow: 0 14px 32px rgba(208,184,115,.5); }
.ivx-gb-btn:active { filter: brightness(.92); transform: translateY(0); }
.ivx-gb-btn:disabled { opacity: .6; cursor: wait; transform: none; }
.ivx-gb-note { font-size: 12.5px; color: var(--muted); }
/* ---------- status ---------- */
.ivx-gb-status {
display: none;
margin-top: 24px;
border-radius: 12px;
padding: 16px 20px;
font-size: 14px;
font-weight: 600;
line-height: 1.6;
}
.ivx-gb-status.ok {
display: block;
background: #eef6ec;
border: 1px solid #bcd9b3;
color: #2f6b2a;
}
.ivx-gb-status.err {
display: block;
background: #fdf0ec;
border: 1px solid #f0c4b4;
color: #a33f1d;
}
.ivx-f .err-text { display: none; font-size: 12px; color: #a33f1d; margin-top: 6px; }
.ivx-f.invalid .err-text { display: block; }
.ivx-f.invalid input,
.ivx-f.invalid select,
.ivx-f.invalid textarea { border-color: #d97b52; }
/* ---------- responsive ---------- */
@media (max-width: 640px) {
.ivx-gb { padding: 44px 14px; }
.ivx-gb-body { padding: 30px 22px; }
.ivx-gb-grid { grid-template-columns: 1fr; gap: 18px; }
.ivx-gb-btn { width: 100%; }
}
<!-- ═══════ CAPTCHA SLOT ═══════
To activate Cloudflare Turnstile:
1) Uncomment the script tag just above of .ivx-gb below
2) Replace YOUR-TURNSTILE-SITE-KEY with your key
3) Delete the .ivx-captcha-placeholder box — the widget renders into .cf-turnstile
-->
<!-- -->
(function () {
/* Point this at where you upload ivx-send-booking.php */
var FORM_ENDPOINT = 'ivx-send-booking.php';
var form = document.getElementById('ivxGbForm');
var btn = document.getElementById('ivxGbBtn');
var status = document.getElementById('ivxGbStatus');
/* block past dates on the training date picker */
var dateInput = document.getElementById('gb-date');
if (dateInput) {
var t = new Date();
var iso = t.getFullYear() + '-' +
String(t.getMonth() + 1).padStart(2, '0') + '-' +
String(t.getDate()).padStart(2, '0');
dateInput.min = iso;
}
function setStatus(kind, msg) {
status.className = 'ivx-gb-status ' + kind;
status.textContent = msg;
}
function valid(field) {
var wrap = field.closest('.ivx-f');
var ok = true;
if (field.required && !field.value.trim()) ok = false;
if (ok && field.type === 'email' && !/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(field.value)) ok = false;
wrap.classList.toggle('invalid', !ok);
return ok;
}
form.addEventListener('submit', function (e) {
e.preventDefault();
var fields = form.querySelectorAll('[required]');
var allOk = true;
fields.forEach(function (f) { if (!valid(f)) allOk = false; });
if (!allOk) {
setStatus('err', 'Please fix the highlighted fields and try again.');
return;
}
var data = {};
new FormData(form).forEach(function (v, k) { data[k] = v; });
btn.disabled = true;
btn.textContent = 'Sending…';
setStatus('', '');
status.style.display = 'none';
fetch(FORM_ENDPOINT, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
})
.then(function (r) { return r.json(); })
.then(function (res) {
if (res.ok) {
setStatus('ok', 'Thank you! Your group booking request has been sent — our team will reach out to discuss your booking.');
form.reset();
} else {
setStatus('err', res.msg || 'Something went wrong sending your request. Please email us directly at info@invictusconsultants.com.au');
}
})
.catch(function () {
setStatus('err', 'Network error — please try again or email info@invictusconsultants.com.au');
})
.finally(function () {
btn.disabled = false;
btn.textContent = 'Send Group Booking Request';
});
});
/* live re-validate as the user fixes fields */
form.querySelectorAll('[required]').forEach(function (f) {
f.addEventListener('input', function () { valid(f); });
});
})();
Group Booking
Training for your group or team?
Interested in training or wellbeing support for a team or larger group? Fill in the form below and our team will reach out to discuss your booking.
Please enter your first name.
Please enter your last name.
Please enter a valid email address.
Please enter a contact number.
Select state / territory
New South Wales
Victoria
Queensland
Western Australia
South Australia
Tasmania
Australian Capital Territory
Northern Territory
Please select a state or territory.
Please tell us where training would take place.
Select a service
HLTAID011 – Provide First Aid
HLTAID012 – First Aid in Education & Care Setting
HLTAID009 – Provide CPR
CHCPRT025 – Child Protection
Mental Health Support in the Workplace & Community
Professional Development
Consultancy & Compliance
Coaching & Mentoring
Counselling & Wellbeing
Other / Not sure
Please choose a service.
Please enter the group size.
Captcha verification will appear here
<!-- -->
We typically respond within 1–2 business days.
