Buy a Gift Card
Send a digital gift card by email
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = 'e5e5bec1-1796-4bd0-a8df-d082dd8d3968';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == 'e5e5bec1-1796-4bd0-a8df-d082dd8d3968' || additionalServices.includes('e5e5bec1-1796-4bd0-a8df-d082dd8d3968') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
Standard Haircut/With Beard Trim
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = 'ab5c8051-1033-4fac-9ba5-48fca9731703';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == 'ab5c8051-1033-4fac-9ba5-48fca9731703' || additionalServices.includes('ab5c8051-1033-4fac-9ba5-48fca9731703') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
Standard Haircut
Haircut Ages 13+
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = '3f499593-9c09-4727-92ff-052e0318a16d';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == '3f499593-9c09-4727-92ff-052e0318a16d' || additionalServices.includes('3f499593-9c09-4727-92ff-052e0318a16d') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
Shape Up/Edge Up
Hairline outline, mustache trim, neckline cleanup, and eyebrow arch.
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = '7446a58c-2545-4c06-bee8-cb029ea1d1eb';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == '7446a58c-2545-4c06-bee8-cb029ea1d1eb' || additionalServices.includes('7446a58c-2545-4c06-bee8-cb029ea1d1eb') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = 'a05f7e4a-bb08-4289-8eed-c06d1583e7c2';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == 'a05f7e4a-bb08-4289-8eed-c06d1583e7c2' || additionalServices.includes('a05f7e4a-bb08-4289-8eed-c06d1583e7c2') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
Full Service
Shampoo and conditioning, haircut, Rest Facial, and beard treatment or shave.
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = 'eda9c824-21aa-4175-8672-1c617cbc869a';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == 'eda9c824-21aa-4175-8672-1c617cbc869a' || additionalServices.includes('eda9c824-21aa-4175-8672-1c617cbc869a') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
Child Haircut
Child Services 16 and under
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = 'e507a765-7e9b-4a20-ba64-5ce22f9c0c14';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == 'e507a765-7e9b-4a20-ba64-5ce22f9c0c14' || additionalServices.includes('e507a765-7e9b-4a20-ba64-5ce22f9c0c14') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = '68ef78e8-f78d-405d-85b7-f7427e7dff12';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == '68ef78e8-f78d-405d-85b7-f7427e7dff12' || additionalServices.includes('68ef78e8-f78d-405d-85b7-f7427e7dff12') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
Royal Treatment with Standard Cut/ Beard Trim
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = 'f4182ee5-dfef-44ba-a0fd-a9a020c19432';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == 'f4182ee5-dfef-44ba-a0fd-a9a020c19432' || additionalServices.includes('f4182ee5-dfef-44ba-a0fd-a9a020c19432') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
Royal Treatment with Shape Up /Beard Trim
{
if (response.ok) {
response.text().then((text) => {
const element = document.getElementById('selected-service-details');
if (element) element.innerHTML = text;
document.getElementById('mobileSubtotal').innerText = document.getElementById('subtotalValue').innerText;
if ('None') {
const text = document.getElementById('selected-service-details').innerText;
let matches = text.match(/\d+\s+min/g);
if (matches) {
let sum = matches.map(match => parseInt(match)).reduce((a, b) => a + b, 0);
document.getElementById('mobileItemCount').innerText = '';
document.getElementById('mobileServiceDuration').innerText = `${matches.length } ${matches.length > 1 ? 'items' : 'item'} - ${sum} min`;
}
} else {
document.getElementById('mobileServiceDuration').innerText=document.getElementById('selectedServiceDuration').innerText;
}
})
}
else {
addMessage('An error occurred while fetching the selected service details', 'error')
}
});
$store.activeEntity.id = '3babad58-21b1-4688-841b-7b72408a5af0';
document.getElementById('actionButton').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
document.getElementById('continueMobile').href = '/appointments/services/?location-id=13616c6b-10d0-4333-903d-4b0f84994f59&service-id=' + $store.activeEntity.id + '&provider-id=86ce8f6f-fcba-4a43-86b5-b4d7b8d72f73';
serviceSelected = true;"
:class="$store.activeEntity.id == '3babad58-21b1-4688-841b-7b72408a5af0' || additionalServices.includes('3babad58-21b1-4688-841b-7b72408a5af0') ? 'border-2 border-skin-primary' : 'border border-borderGray hover:border-skin-primary'"
class="service flex flex-col bg-white rounded-2xl overflow-hidden cursor-pointer">
Basic Design/Basic Hair Enhancement