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 = 'b2068f1b-d03c-4ef4-ba05-357d616aa58e';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == 'b2068f1b-d03c-4ef4-ba05-357d616aa58e' || additionalServices.includes('b2068f1b-d03c-4ef4-ba05-357d616aa58e') ? '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 One Added Service
{
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=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&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 = 'eda9c824-21aa-4175-8672-1c617cbc869a';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&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 = 'ac362eab-fc26-4e5d-a911-cd8f3b3dae54';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == 'ac362eab-fc26-4e5d-a911-cd8f3b3dae54' || additionalServices.includes('ac362eab-fc26-4e5d-a911-cd8f3b3dae54') ? '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 Outline & 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 = 'a05f7e4a-bb08-4289-8eed-c06d1583e7c2';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&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 = '3f499593-9c09-4727-92ff-052e0318a16d';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&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 = 'bdc018b4-0a05-4c13-9156-db37bba9d565';
document.getElementById('actionButton').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
document.getElementById('continueMobile').href = '/appointments/service-providers/?location-id=ce226b52-d1fe-46eb-be06-a90bf03f378f&service-id=' + $store.activeEntity.id;
serviceSelected = true;"
:class="$store.activeEntity.id == 'bdc018b4-0a05-4c13-9156-db37bba9d565' || additionalServices.includes('bdc018b4-0a05-4c13-9156-db37bba9d565') ? '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">