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 = '25b590b0-bf88-4d0a-8f78-70b07b9ed924';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == '25b590b0-bf88-4d0a-8f78-70b07b9ed924' || additionalServices.includes('25b590b0-bf88-4d0a-8f78-70b07b9ed924') ? '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
Haircut + Beard Trim & Shape-Up — 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 = 'ab5c8051-1033-4fac-9ba5-48fca9731703';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
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/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
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 = '892ef09c-0d3f-422b-80d9-a993f02afcdc';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == '892ef09c-0d3f-422b-80d9-a993f02afcdc' || additionalServices.includes('892ef09c-0d3f-422b-80d9-a993f02afcdc') ? '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 with Beard Trim
Hairline outline with a beard trim and shape-up.
{
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/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
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 12 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 = 'b6016b2b-d454-422d-adcd-3281e3c61284';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == 'b6016b2b-d454-422d-adcd-3281e3c61284' || additionalServices.includes('b6016b2b-d454-422d-adcd-3281e3c61284') ? '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">
Senior Service
Haircut service for seniors ages 65 and up.
{
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/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
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 = 'ac10265a-808b-4f30-980c-749eda2635b2';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == 'ac10265a-808b-4f30-980c-749eda2635b2' || additionalServices.includes('ac10265a-808b-4f30-980c-749eda2635b2') ? '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">
Hair Design/Enhancements
Basic Design/Basic Hair Enhancement
{
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 = '140255f8-7a18-4d04-b459-2a429ea10d19';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == '140255f8-7a18-4d04-b459-2a429ea10d19' || additionalServices.includes('140255f8-7a18-4d04-b459-2a429ea10d19') ? '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
Standard Haircut, beard trim, beard treatment, Rest Facial, and Royal Oils Kit Included.
{
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 = '7eddd753-5972-418f-9897-8dde0f4f90fb';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == '7eddd753-5972-418f-9897-8dde0f4f90fb' || additionalServices.includes('7eddd753-5972-418f-9897-8dde0f4f90fb') ? '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
Shape-up, beard trim, beard treatment, Rest Facial, and Royal Oils Kit Included.
{
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 = '321b0c4f-a301-4583-9693-7ab7e4e2c490';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == '321b0c4f-a301-4583-9693-7ab7e4e2c490' || additionalServices.includes('321b0c4f-a301-4583-9693-7ab7e4e2c490') ? '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">
Color
The base price is $100.00 and up
{
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 = '9d8f054e-f232-41b2-8e14-cdd894de71bb';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=2c63f7c5-5885-44c2-9303-dea4ab0461ef&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == '9d8f054e-f232-41b2-8e14-cdd894de71bb' || additionalServices.includes('9d8f054e-f232-41b2-8e14-cdd894de71bb') ? '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">