PageSourceSearch

https://totalrejuvenationmedspa.com/blog/

html totalrejuvenationmedspa.com collected 2026-10-04 21:32:20 UTC 100,862 bytes, 803 lines download raw bytes

1<!DOCTYPE html><html lang="en-US"> <!-- 
2   _________________                                                        
3  /\      _____     \     ______             ___  ___                       
4  \ \     \    /     \   /\__  _\          /'___\/\_ \                      
5   \ \     \  / /     \  \/_/\ \/     ___ /\ \__/\//\ \    __  __  __  _    
6    \ \     \/ / \     \    \ \ \   /' _ `\ \ ,__\ \ \ \  /\ \/\ \/\ \/'\   
7     \ \      /   \     \    \_\ \__/\ \/\ \ \ \_/  \_\ \_\ \ \_\ \/>  </   
8      \ \     \____\     \   /\_____\ \_\ \_\ \_\   /\____\\ \____//\_/\_\  
9       \ \________________\  \/_____/\/_/\/_/\/_/   \/____/ \/___/ \//\/_/  
10        \/________________/                                                 
11--> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="generator" content="Growthstack by Influx"><meta name="swap" content="totalrejuvenationmedspa.com"><meta name="city" content="Roswell"><meta name="country" content="USA"><meta name="state" content="GA"><meta name="zipcode" content="30076"><meta property="og:locale" content="en_US"><meta property="og:type" content="website"><meta property="og:title" content="Total Rejuvenation MedSpa Blog | Botox, Juvederm &#38; Voluma Service"><meta property="og:description" content="Take time and visit the Total Rejuvenation Medspa to read informative articles, including what are Dermal Fillers? Double ALLE points and Botox cosmetic day, and more. Read now!"><meta property="og:site_name" content="Total Rejuvenation Medspa"><link rel="sitemap" type="application/xml" href="/sitemap.xml"><link rel="canonical" href="https://totalrejuvenationmedspa.com/blog/"><link rel="preconnect" href="https://use.typekit.net/"><style>@font-face {
12font-family:"vanitas";
13src:url("/assets/font/vanitas-regular-webfont.ttf") format("woff2"),url("/assets/font/vanitas-regular-webfont.ttf") format("ttf"),url("/assets/font/vanitas-regular-webfont.eot") format("opentype");
14font-display:swap;
15font-style:normal;
16font-weight:400;
17font-stretch:normal;
18unicode-range: U+0000-00FF;
19}
20@font-face {
21font-family:"poppins";
22src:url("https:
23font-display:auto;font-style:normal;font-weight:300;font-stretch:normal;
24}
25@font-face {
26font-family:"poppins";
27src:url("https:
28font-display:auto;font-style:italic;font-weight:300;font-stretch:normal;
29}
30@font-face {
31font-family:"poppins";
32src:url("https:
33font-display:auto;font-style:italic;font-weight:400;font-stretch:normal;
34}
35@font-face {
36font-family:"poppins";
37src:url("https:
38font-display:auto;font-style:normal;font-weight:400;font-stretch:normal;
39}
40.masthead__image {
41  background-position: top center;
42  background-image: none;
43  transform-origin: bottom left;
44  position: absolute;
45  height: 100%;
46  width: 100%;
47  top: 0;
48  overflow: hidden;
49  z-index: -1;
50  background-size: cover;
51  background-position: center center;
52}
53.masthead__image .gatsby-image-wrapper {
54  max-width: unset;
55  position: absolute !important;
56}
57@media (max-width: 840px) {
58  .masthead__image .gatsby-image-wrapper {
59    position: absolute !important;
60  }
61}
62.masthead__image .gatsby-image-wrapper {
63  min-width: 100%;
64  min-height: 100%;
65  overflow: hidden;
66  width: auto;
67  height: 100%;
68  margin: auto;
69  max-width: 100%;
70  object-fit: cover;
71  left: 0;
72  opacity: 0.0001;
73  -webkit-transition-property: opacity, -webkit-transform, filter;
74  -webkit-transition-duration: 1.5s, 10s, 3s;
75  -webkit-transform-transition-delay: 0s, 0s, 1.5s;
76  -webkit-transform-origin: top right;
77  -moz-transition-property: opacity, -moz-transform, filter;
78  -moz-transition-duration: 1.5s, 10s, 3s;
79  -moz-transition-transition-delay: 0s, 0s, 1.5s;
80  -moz-transform-origin: top right;
81  -ms-transition-property: opacity, -ms-transform, filter;
82  -ms-transition-duration: 1.5s, 10s, 3s;
83  -ms-transition-transition-delay: 0s, 0s, 1.5s;
84  -ms-transform-origin: top right;
85  -o-transition-property: opacity, -o-transform, filter;
86  -o-transition-duration: 1.5s, 10s, 3s;
87  -o-transition-transition-delay: 0s, 0s, 1.5s;
88  -o-transform-origin: top right;
89  transition-property: opacity, transform, filter;
90  transition-duration: 1.5s, 10s, 3s;
91  transition-delay: 0s, 0s, 1.5s;
92  transform-origin: top right;
93}
94@media (max-width: 840px) {
95  .masthead__image .gatsby-image-wrapper {
96    max-height: 100%;
97  }
98}
99.masthead__image .gatsby-image-wrapper:nth-child(2n+1) {
100  -webkit-transform-origin: top left;
101  -moz-transform-origin: top left;
102  -ms-transform-origin: top left;
103  -o-transform-origin: top left;
104  transform-origin: top left;
105}
106.masthead__image .gatsby-image-wrapper.first-load {
107  opacity: 1;
108}
109.masthead__image .gatsby-image-wrapper.fx {
110  opacity: 1;
111  -webkit-transform: scale(1.1);
112  -moz-transform: scale(1.1);
113  -ms-transform: scale(1.1);
114  -o-transform: scale(1.1);
115  transform: scale(1.1);
116}
117.masthead__image .gatsby-image-wrapper.fx:first-child + img ~ img {
118  z-index: -1;
119}
120
121@media (max-width: 840px) {
122  .is-desktop-only-image {
123    display: none !important;
124  }
125}
126
127@media (min-width: 840px) {
128  .is-mobile-only-image {
129    display: none !important;
130  }
131}
132
133.masthead-locations {
134  padding-bottom: 15px;
135}
136.masthead-locations::-webkit-scrollbar {
137  margin-top: 15px;
138  -webkit-appearance: none;
139  width: 100%;
140  height: 7px;
141}
142.masthead-locations::-webkit-scrollbar-thumb {
143  border-radius: 4px;
144  background-color: rgba(0, 0, 0, 0.3);
145  -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);
146}</style><link rel="icon" type="image/png" href="/_static_/logos/favicon.png" sizes="any"><meta property="og:image" content="/_static_/background/og-feat.jpg"><title>Total Rejuvenation MedSpa Blog | Botox, Juvederm &amp; Voluma Service</title><meta name="description" content="Take time and visit the Total Rejuvenation Medspa to read informative articles, including what are Dermal Fillers? Double ALLE points and Botox cosmetic day, and more. Read now!"><link rel="preconnect" href="https://cms-site-bucket.s3.us-west-2.amazonaws.com/"/>
147<link rel="preconnect" href="https://www.googletagmanager.com/" />
148<link rel="preconnect" href="https://www.google-analytics.com/"/>
148<script type="application/ld+json" id="newschema">
149{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://totalrejuvenationmedspa.com/#organization","name":"Total Rejuvenation Medspa","url":"https://totalrejuvenationmedspa.com/","sameAs":["https://www.facebook.com/totalrejuvmedspa","https://www.instagram.com/totalrejuvmedspa/"],"subOrganization":[{"@id":"https://totalrejuvenationmedspa.com/#location"}],"areaServed":{"@type":"City","name":"Roswell, GA"},"logo":{"@type":"ImageObject","@id":"https://totalrejuvenationmedspa.com/#logo","url":"https://totalrejuvenationmedspa.com/_static_/logos/logo-header.png","contentUrl":"https://totalrejuvenationmedspa.com/_static_/logos/logo-header.png","caption":"Total Rejuvenation Medspa"},"image":{"@type":"ImageObject","@id":"https://totalrejuvenationmedspa.com/#image","url":"https://totalrejuvenationmedspa.com/_static_/background/og-feat.jpg","contentUrl":"https://totalrejuvenationmedspa.com/_static_/background/og-feat.jpg","caption":"Total Rejuvenation Medspa"},"telephone":"(678) 548-6003","contactPoint":{"@type":"ContactPoint","telephone":"(678) 548-6003","contactType":"customer service"}},{"@type":"WebSite","@id":"https://totalrejuvenationmedspa.com/#website","url":"https://totalrejuvenationmedspa.com/","name":"Total Rejuvenation Medspa","publisher":{"@id":"https://totalrejuvenationmedspa.com/#organization"}},{"@type":"LocalBusiness","@id":"https://totalrejuvenationmedspa.com/#location","name":"Total Rejuvenation Medspa","url":"https://totalrejuvenationmedspa.com/","telephone":"(678) 548-6003","parentOrganization":{"@id":"https://totalrejuvenationmedspa.com/#organization"},"logo":{"@id":"https://totalrejuvenationmedspa.com/#logo"},"image":{"@id":"https://totalrejuvenationmedspa.com/#image"},"areaServed":{"@type":"City","name":"Roswell, GA"},"address":{"@type":"PostalAddress","streetAddress":"600 Houze Way Suite B6","addressLocality":"Roswell","addressRegion":"GA","postalCode":"30076","addressCountry":"US"},"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":"Monday","opens":"11:00","closes":"19:00"}],"aggregateRating":{"@type":"AggregateRating","ratingValue":"5.0","reviewCount":"165","bestRating":5,"worstRating":1},"hasMap":"https://maps.app.goo.gl/onTVSd7d5ZGjNjBY6","sameAs":["https://maps.app.goo.gl/onTVSd7d5ZGjNjBY6"],"hasOfferCatalog":{"@type":"OfferCatalog","name":"Total Rejuvenation Medspa Services","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/hair-restoration/#service","name":"Hair Restoration Services","description":"Total Rejuvenation MedSpa offers premier Hair Restoration services in Alpharetta, GA. Call (678) 548-6003 to schedule your appointment today.","url":"https://totalrejuvenationmedspa.com/hair-restoration/"}}},{"@type":"ListItem","position":2,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/injectables-fillers/#service","name":"Injectables & Fillers","description":"Total Rejuvenation MedSpa offers premier Injectables & Fillers services in Alpharetta, GA. Call (678) 548-6003 to schedule your appointment today.","url":"https://totalrejuvenationmedspa.com/injectables-fillers/"}}},{"@type":"ListItem","position":3,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/laser-treatments/#service","name":"Laser & Energy","description":"Total Rejuvenation MedSpa offers premier Laser and energy services in Alpharetta, GA. Call (678) 548-6003 to schedule your appointment today.","url":"https://totalrejuvenationmedspa.com/laser-treatments/"}}},{"@type":"ListItem","position":4,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/skin-treatments/#service","name":"Skin Rejuvenation","description":"Total Rejuvenation MedSpa offers premier Skin Rejuvenation services in Alpharetta, GA. Call (678) 548-6003 to schedule your appointment today.","url":"https://totalrejuvenationmedspa.com/skin-treatments/"}}},{"@type":"ListItem","position":5,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/wellness/#service","name":"Wellness Services","description":"Total Rejuvenation MedSpa offers premier Wellness services in Alpharetta, GA. Call (678) 548-6003 to schedule your appointment today.","url":"https://totalrejuvenationmedspa.com/wellness/"}}},{"@type":"OfferCatalog","name":"Hair Restoration","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/hair-restoration/hair-restoration/#service","name":"Hair Restoration","description":"Discover natural hair restoration with Exosomes and PRP at Total Rejuvenation Medspa, Alp
149haretta, for healthier, fuller hair.","url":"https://totalrejuvenationmedspa.com/hair-restoration/hair-restoration/"}}}]},{"@type":"OfferCatalog","name":"Injectables Fillers","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/injectables-fillers/botox/#service","name":"Botox","description":"Relax away wrinkles with Botox, administered by our elite injector at Rejuvenation Medspa in Alpharetta. Botox is an easy way to refresh your complexion naturally.","url":"https://totalrejuvenationmedspa.com/injectables-fillers/botox/"}}},{"@type":"ListItem","position":2,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/injectables-fillers/dermal-fillers/#service","name":"Dermal Fillers","description":"Discover youthful radiance with dermal fillers at Total Rejuvenation Medspa in Alpharetta, GA. Book your transformation today!","url":"https://totalrejuvenationmedspa.com/injectables-fillers/dermal-fillers/"}}},{"@type":"ListItem","position":3,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/injectables-fillers/facial-contouring/#service","name":"Facial Contouring","description":"Revitalize youthful, sculpted facial contours without surgery with minimally invasive facial balancing using innovative injectables. Personalized care for exceptional results.","url":"https://totalrejuvenationmedspa.com/injectables-fillers/facial-contouring/"}}},{"@type":"ListItem","position":4,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/injectables-fillers/kybella/#service","name":"Kybella","description":"Discover the art of refinement with Kybella at Total Rejuvenation Medspa, Alpharetta, GA.","url":"https://totalrejuvenationmedspa.com/injectables-fillers/kybella/"}}},{"@type":"ListItem","position":5,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/injectables-fillers/sclerotherapy/#service","name":"Sclerotherapy","description":"Picture clear skin without unsightly veins standing in the way of your confidence. Schedule your Alpharetta sclerotherapy consultation with our specialist today.","url":"https://totalrejuvenationmedspa.com/injectables-fillers/sclerotherapy/"}}}]},{"@type":"OfferCatalog","name":"Laser Treatments","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/laser-treatments/ipl/#service","name":"IPL","de
149scription":"Intense Pulsed Light (IPL) is a revolutionary skin rejuvenation method that targets dark marks, lines, and uneven texture to reveal smooth, youthful skin. Schedule a personal consultation to learn more about IPL and our other high-quality skin treatments in Alpharetta, GA,","url":"https://totalrejuvenationmedspa.com/laser-treatments/ipl/"}}}]},{"@type":"OfferCatalog","name":"Skin Treatments","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/skin-treatments/hydrafacial/#service","name":"HydraFacial","description":"Meet HydraFacial, a unique treatment to precisely exfoliate and deeply hydrate your complexion for optimal health. Total Rejuvenation Medspa offers this relaxing and nourishing facial experience in Alpharetta.","url":"https://totalrejuvenationmedspa.com/skin-treatments/hydrafacial/"}}},{"@type":"ListItem","position":2,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/skin-treatments/microneedling/#service","name":"Microneedling","description":"Microneedling at Total Rejuvenation Medspa in Alpharetta includes Microneedling with PRP and Exosomes to naturally replenish your skin’s youthful texture & tone. Schedule your consultation today!","url":"https://totalrejuvenationmedspa.com/skin-treatments/microneedling/"}}},{"@type":"ListItem","position":3,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/skin-treatments/pdo-threads/#service","name":"PDO Threads","description":"PDO Threads offer a non-surgical lift, stimulating collagen for natural beauty enhancement. Discover the power of rejuvenation at Total Rejuvenation Medspa.","url":"https://totalrejuvenationmedspa.com/skin-treatments/pdo-threads/"}}}]},{"@type":"OfferCatalog","name":"Wellness","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Offer","itemOffered":{"@type":"Service","@id":"https://totalrejuvenationmedspa.com/wellness/semaglutide/#service","name":"Semaglutide","description":"Experience effective weight loss with Semaglutide at Total Rejuvenation Medspa in Alpharetta, GA. Your journey to a healthier you starts here.","url":"https://totalrejuvenationmedspa.com/wellness/semaglutide/"}}}]}]}},{"@type":"WebPage","@id":"https://totalrejuvenationmedspa.com/blog/#webpage","url":"https://totalrejuvenationmedspa.com/blog/","name":"Total Rejuvenation MedSpa Blog | Botox, Juvederm & Voluma Service","description":"Take time and visit the Total Rejuvenation Medspa to read informative articles, including what are Dermal Fillers? Double ALLE points and Botox cosmetic day, and more. Read now!","isPartOf":{"@id":"https://totalrejuvenationmedspa.com/#website"},"publisher":{"@id":"https://totalrejuvenationmedspa.com/#organization"},"inLanguage":"en-US","primaryImageOfPage":{"@type":"ImageObject","url":"https://totalrejuvenationmedspa.com/_static_/masthead/laser-treatments-01.jpg"},"mainEntity":{"@id":"https://totalrejuvenationmedspa.com/blog/#article"},"about":{"@id":"https://totalrejuvenationmedspa.com/blog/#article"}},{"@type":"BlogPosting","@id":"https://totalrejuvenationmedspa.com/blog/#article","headline":"Total Rejuvenation MedSpa Blog | Botox, Juvederm & Voluma Service","description":"Take time and visit the Total Rejuvenation Medspa to read informative articles, including what are Dermal Fillers? Double ALLE points and Botox cosmetic day, and more. Read now!","url":"https://totalrejuvenationmedspa.com/blog/","publisher":{"@id":"https://totalrejuvenationmedspa.com/#organization"},"author":{"@id":"https://totalrejuvenationmedspa.com/#organization"},"inLanguage":"en-US","datePublished":"2023-11-02T19:06:38.697Z","dateModified":"2023-11-02T19:06:38.697Z","image":{"@type":"ImageObject","url":"https://totalrejuvenationmedspa.com/_static_/masthead/laser-treatments-01.jpg"}}]}
150</script>
150<link rel="stylesheet" href="/_astro/_gallery_.BIXNVayF.css">
151<link rel="stylesheet" href="/_astro/_landing_.gFDOZ5yy.css"></head> <body style="--navImage: url(https://influx-site-assets.s3.us-west-2.amazonaws.com/totalrejuvenationmedspa.com/logos/logo-header.png)" class=" blog-page blog "> <section class="header   animated-menu">  <nav class="navbar container" role="navigation" aria-label="main navigation"> <div class="nav-flex-item nav-left-container animate fadeIn" style="justify-content: flex-start"> <a class="nav-link nav-left-link" href="https://clients.mindbodyonline.com/ASP/adm/adm_appt_search.asp?studioid=5722628&lvl=&catid=&prodid=&date=9%2F18%2F2021&classid=0&loc=1&trn=0&stype=&tg=&vt=&justloggedin=&pMode=0&view=&sSU=&qParam=&page=&prodGroupId=&optForwardingLink=&nLgIn=" target="_blank" rel="noopener" aria-label="Open Book Now in a new tab"> Book Now </a>    </div> <div class="nav-flex-item nav-logo-container animate fadeIn"> <a class="navbar-brand" href="/" aria-label="Go to totalrejuvenationmedspa.com homepage"> <div data-gatsby-image-wrapper="" data-initial-width="546" data-initial-height="150" class="gatsby-image-wrapper gatsby-image-wrapper-constrained " style="position: relative !important" id="gatsby-img-a9h6qz1zg"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='150' width='546' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: contain; display: block" decoding="async" loading="eager" fetchpriority="high" class="navbar__logo" alt="Total Rejuvenation Medspa in Alpharetta, GA" src="/_static_/logos/logo-header.png"></picture></div>
151<script type="module">document.addEventListener("DOMContentLoaded",()=>{const o=document.querySelectorAll("[data-gatsby-image-wrapper]");if(o)for(const a of o){if(!a)continue;const r=a.querySelector(".placeholder-wrapper");if(!r)continue;const e=a.querySelector("[data-main-image]");if(!e)continue;const c=parseInt(a.getAttribute("data-initial-width")||"0",10),h=parseInt(a.getAttribute("data-initial-height")||"0",10),d=({width:n,height:t})=>{const i=document.createElementNS("http://www.w3.org/2000/svg","svg");return i.setAttribute("height",t),i.setAttribute("width",n),i},s=n=>{const t={width:n.naturalWidth,height:n.naturalHeight};if(t.width!==c||t.height!==h){d(t),r.style.aspectRatio=`${t.width} / ${t.height}`;const i=r.querySelector("img");i&&(i.src=`data:image/svg+xml;charset=utf-8,<svg height='${t.height}' width='${t.width}' xmlns='http://www.w3.org/2000/svg' version='1.1'></svg>`)}};e.complete&&e.naturalWidth?s(e):e.addEventListener("load",()=>{s(e)})}});</script>
151  </a> </div> <div class="navbar-links nav-flex-item nav-right-container animate fadeIn" style="justify-content: flex-end"> <div class="nav-right-links"> <a class="nav-link nav-right-link" href="tel:678-548-6003"> (678) 548-6003 </a>   <p class="nav-right-subtext">Alpharetta, GA</p> </div> <div class="menu-button"><div role="button" tabindex="0" aria-haspopup="menu" aria-expanded="false" aria-controls="site-menu" aria-labelledby="menuButtonLabel"><span></span><span></span><span></span></div><label id="menuButtonLabel">Menu</label></div>
151<script type="module">document.addEventListener("DOMContentLoaded",()=>{const t=document.querySelector(".menu-button");if(!t)return;const n=e=>{e.preventDefault(),document.dispatchEvent(new CustomEvent("toggleNavigation"))};t.addEventListener("click",n),t.addEventListener("keydown",e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),document.dispatchEvent(new CustomEvent("toggleNavigation")))})});</script>
151 </div> </nav> <menu class="mega-menu"> <div class="mobile-contact-menu"> <ul> <a class="no-menu" href="https://clients.mindbodyonline.com/ASP/adm/adm_appt_search.asp?studioid=5722628&lvl=&catid=&prodid=&date=9%2F18%2F2021&classid=0&loc=1&trn=0&stype=&tg=&vt=&justloggedin=&pMode=0&view=&sSU=&qParam=&page=&prodGroupId=&optForwardingLink=&nLgIn=" target="_blank" rel="noopener" aria-label="Open Book Now in a new tab"> Book Now </a> <a class="no-menu" href="tel:678-548-6003"> (678) 548-6003 </a> </ul> </div> <div class="main-menu"> <ul>  <li> <span class="highlight-color no-link title-xs" data-column-id="93774653-fe10-48c9-8348-f4ddb0705fce"> Botox &amp; Fillers  </span> </li> <li class> <a href="/injectables-fillers/botox/"> Botox </a> </li><li class> <a href="/injectables-fillers/dermal-fillers/"> Dermal Fillers </a> </li><li class> <a href="/injectables-fillers/facial-contouring/"> Facial Contouring </a> </li> </ul><ul>  <li> <span class="highlight-color no-link title-xs" data-column-id="6acba9b9-c56e-42c1-99f1-5c25b524cc37"> Injectables  </span> </li> <li class> <a href="/injectables-fillers/sclerotherapy/"> Sclerotherapy </a> </li><li class> <a href="/injectables-fillers/kybella/"> Kybella  </a> </li><li class> <a href="/skin-treatments/pdo-threads/"> PDO Thread Lift </a> </li> </ul><ul>  <li> <span class="highlight-color no-link title-xs" data-column-id="cde54dcc-6c3f-437c-a8ab-fb9f51c4c846"> Skin &amp; Hair  </span> </li> <li class> <a href="/skin-treatments/hydrafacial/"> HydraFacial  </a> </li><li class> <a href="/skin-treatments/microneedling/"> Microneedling  </a> </li><li class> <a href="/laser-treatments/ipl/"> IPL  </a> </li><li class> <a href="/hair-restoration/hair-restoration/"> Hair Restoration </a> </li> </ul><ul>  <li> <span class="highlight-color no-link title-xs" data-column-id="455f0365-8bfa-433d-9da6-0eb109eec773"> Wellness  </span> </li> <li class> <a href="/wellness/weight-loss/"> Weight Loss </a> </li> </ul><ul>   <li class="highlight-color nav-all-title title-xs no-link"> <a href="/about/about-us/"> About Us  </a> </li><li class="highlight-color nav-all-title title-xs "> <a href="/about/our-providers/"> Our Providers </a> </li><li class="highlight-color nav-all-title title-xs "> <a href="/contact/"> Contact  </a> </li><li class="highlight-color nav-all-title title-xs "> <a href="/testimonials/"> Reviews  </a> </li><li class="highlight-color nav-all-title title-xs "> <a href="/resources/finances/"> Payment Plans  </a> </li><li class="highlight-color nav-all-title title-xs "> <a href="/resources/memberships/"> VIP Membership  </a> </li><li class="highlight-color nav-all-title title-xs "> <a href="/blog/"> Blog </a> </li><li class="highlight-color nav-all-title title-xs "> <a href="https://clients.mindbodyonline.com/Pages/OnlineStore.aspx?studioid=5722628&partnerID=0&catid=" target="_blank" rel="noopener" aria-label="Open Shop Now in a new tab"> Shop Now </a> </li> </ul> </div> <a id="adaWidget" tabindex="0" class="menuAda" aria-label="Open accessibility menu" role="button">
152Accessibility <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg" role="img"> <title>Accessibility icon</title> <g clip-path="url(#clip0_3_2)"> <path d="M30 4.42857C44.1227 4.42857 55.5714 15.8773 55.5714 30C55.5714 44.1227 44.1227 55.5714 30 55.5714C15.8773 55.5714 4.42857 44.1227 4.42857 30C4.42857 15.8773 15.8773 4.42857 30 4.42857ZM30 6.42857C16.9819 6.42857 6.42857 16.9819 6.42857 30C6.42857 43.0181 16.9819 53.5714 30 53.5714C43.0181 53.5714 53.5714 43.0181 53.5714 30C53.5714 16.9819 43.0181 6.42857 30 6.42857ZM40.5936 24.6361C40.8208 24.6942 41.0323 24.8028 41.2129 24.9537C41.3927 25.1041 41.5373 25.2927 41.6362 25.506C41.7349 25.7185 41.7857 25.9505 41.7857 26.1965C41.778 26.578 41.6395 26.9452 41.3936 27.2353C41.1464 27.5268 40.8059 27.7221 40.4376 27.7857C38.1922 28.2018 35.9244 28.4828 33.6481 28.6271C33.5049 28.6367 33.3651 28.6759 33.2369 28.7424C33.1082 28.8091 32.994 28.9019 32.9012 29.0154C32.8079 29.1294 32.7383 29.2618 32.6967 29.4044C32.6759 29.4759 32.6623 29.5493 32.6557 29.6152L32.6511 29.7072L32.6599 29.8496L32.8523 31.5976C33.0926 33.7484 33.5345 35.8702 34.1701 37.9296L34.4174 38.6989L34.6846 39.4673L35.9271 42.8464C35.9992 43.0441 36.0318 43.2542 36.023 43.4646C36.0141 43.6751 35.964 43.8817 35.8755 44.0727C35.7867 44.2639 35.6611 44.4355 35.5059 44.5773C35.3502 44.7196 35.1677 44.829 34.99 44.8912C34.8134 44.9616 34.6253 44.9985 34.4204 45C34.1148 44.9943 33.8175 44.8987 33.5651 44.7253C33.4239 44.6283 33.2998 44.5091 33.189 44.3581L33.0827 44.196L33.0074 44.0456L32.6902 43.3563C31.8321 41.4806 31.0485 39.6428 30.3336 37.8221L30.0025 36.9627L29.5751 38.0696C29.3404 38.6637 29.0998 39.2561 28.8537 39.8465L28.4802 40.7305L27.9044 42.0505L27.3109 43.3601L27.0273 43.9426C26.881 44.3389 26.585 44.6608 26.2035 44.837C25.8203 45.0139 25.3832 45.0288 24.9892 44.8784C24.5966 44.7286 24.2796 44.4272 24.1073 44.0414C23.9886 43.7757 23.9447 43.4837 23.9834 43.1769L24.0166 42.9911L24.0668 42.8262L25.3079 39.4507C26.0439 37.4198 26.5852 35.3222 26.9239 33.1917L27.0415 32.3912L27.1413 31.5772L27.3403 29.8382C27.3582 29.6889 27.346 29.5376 27.3045 29.3935C27.2631 29.2497 27.1935 29.1162 27.1 29.0012C27.007 28.8867 26.8923 28.7929 26.7631 28.7253C26.6343 28.658 26.4937 28.6182 26.3535 28.6083C24.0561 28.4627 21.7692 28.1774 19.507 27.7543C19.3016 27.7166 19.1058 27.
1526379 18.9308 27.5231C18.7564 27.4085 18.6063 27.2602 18.489 27.0868C18.3721 26.9139 18.2902 26.7195 18.2479 26.5149C18.2055 26.3104 18.2035 26.0993 18.2404 25.902C18.2758 25.6952 18.3515 25.4975 18.4633 25.3202C18.5754 25.1425 18.7216 24.9892 18.8933 24.869C19.0655 24.7486 19.26 24.6643 19.4652 24.6211C19.6707 24.5779 19.8826 24.5768 20.0823 24.6167C26.6344 25.8478 33.3529 25.8478 39.898 24.618C40.1283 24.5717 40.366 24.5779 40.5936 24.6361ZM32.8056 16.183C34.352 17.7552 34.352 20.3006 32.8056 21.8729C31.2543 23.4501 28.7353 23.4501 27.184 21.8729C25.6376 20.3007 25.6376 17.7552 27.184 16.183C28.7353 14.6057 31.2543 14.6057 32.8056 16.183Z" fill="white"></path> </g> <defs> <clipPath id="clip0_3_2"> <rect width="60" height="60" fill="white"></rect> </clipPath> </defs> </svg> </a> <div class="mobile-social-icons"> <a href="https://www.instagram.com/totalrejuvmedspa/" target="_blank" rel="noreferrer" class="nav-social-media-icon-container" aria-label="View Total Rejuvenation Medspa Instagram Page (Opens in a new tab)"> <svg aria-hidden="true" focusable="false" class="nav-social-media-icon" width="100" height="100" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.69166 0.0548132C3.8379 0.0922779 3.25627 0.231432 2.74935 0.42946C2.22108 0.63284 1.77819 0.911149 1.3353 1.35537C0.88707 1.7996 0.620268 2.24917 0.412163 2.77368C0.21473 3.28213 0.0813297 3.86551 0.0439775 4.71649C0.00662526 5.56747 -0.00404779 5.84043 0.00128825 8.01338C0.00128825 10.1863 0.0119595 10.4593 0.0546478 11.3103C0.097336 12.1613 0.230738 12.7393 0.433508 13.2477C0.636277 13.7722 0.91375 14.2218 1.35664 14.666C1.79953 15.1103 2.24776 15.3832 2.77603 15.5866C3.28295 15.7846 3.86458 15.9184 4.71834 15.9559C5.57211 15.9934 5.84424 16.0041 8.01601 15.9987C10.1878 15.9987 10.4599 15.988 11.3137 15.9452C12.1674 15.9024 12.7437 15.7686 13.256 15.5705C13.7789 15.3672 14.2272 15.0889 14.67 14.6446C15.1129 14.2004 15.3851 13.7508 15.5878 13.2263C15.7853 12.7179 15.9187 12.1345 15.956 11.2835C15.9934 10.4272 16.004 10.1596 15.9987 7.98662C15.9987 5.81367 15.9827 5.54071 15.9454 4.68973C15.9027 3.83875 15.7693 3.25537 15.5718 2.74692C15.3637 2.22241 15.0916 1.77819 14.6487 1.33396C14.2005 0.88974 13.7522 0.616783 13.2293 0.413404C12.7224 0.215376 12.1408 0.0815737 11.287 0.044109C10.4332 0.00664437 10.1611 -0.00405991 7.98933 0.00129218C5.81756 0.00129218 5.54543 0.0119965 4.69166 0.0548132ZM4.78771 14.5162C4.00865 14.4841 3.58177 14.3503 3.29896 14.2432C2.92543 14.0987 2.65863 13.9274 2.37582 13.6438C2.09301 13.3655 1.92226 13.0979 1.77819 12.7232C1.66613 12.4396 1.53807 12.0167 1.50071 11.2407C1.46336 10.3951 1.45269 10.1435 1.44735 8.00803C1.44735 5.87254 1.44735 5.62099 1.49004 4.77536C1.52206 3.99396 1.65546 3.57114 1.76218 3.28748C1.90625 2.91283 2.07701 2.64523 2.35982 2.36692C2.63729 2.08861 2.90409 1.91199 3.27761 1.76748C3.56042 1.65509 3.98197 1.52664 4.76103 1.48917C5.60412 1.45171 5.86025 1.44101 7.99466 1.43565C10.1291 1.43565 10.3852 1.43565 11.2283 1.47847C12.0074 1.51058 12.4342 1.63903 12.7117 1.75143C13.0852 1.89593 13.352 2.0672 13.6348 2.34551C13.9123 2.62382 14.0884 2.89142 14.2325 3.26607C14.3445 3.54438 14.4726 3.97255 14.51 4.7486C14.5473 5.59423 14.558 5.84578 14.5633 7.98127C14.5633 10.1168 14.5633 10.3683 14.5206 11.2139C14.4886 11.9953 14.3606 12.4182 14.2485 12.7018C14.1044 13.0765 13.9337 13.3441 13.6509 13.6224C13.3734 13.9007 13.1066 14.0773 12.7331 14.2218C12.4502 14.3342 12.0287 14.4627 11.2496 14.5001C10.4066 14.5376 10.1504 14.5483 8.01601 14.5536C5.8816 14.5536 5.62547 14.5536 4.78237 14.5162M11.3083 3.721C11.3083 4.25086 11.7406 4.67902 12.2688 4.67902C12.7971 4.67902 13.2293 4.2455 13.2293 3.71565C13.2293 3.18579 12.7971 2.75762 12.2635 2.75762C11.7352 2.75762 11.303 3.19114 11.303 3.721M3.89659 8.00803C3.89659 10.2773 5.74286 12.1131 8.01601 12.1077C10.2838 12.1077 12.1248 10.2613 12.1194 7.99197C12.1194 5.72268 10.2732 3.88691 8 3.89227C5.73219 3.89227 3.89126 5.73874 3.89659 8.00803ZM5.33732 8.00268C5.33732 6.53085 6.52726 5.33198 8 5.33198C9.47275 5.33198 10.668 6.52015 10.6734 7.99197C10.6734 9.4638 9.48342 10.6627 8.01067 10.6627C6.53793 10.6627 5.34266 9.4745 5.33732 8.00268Z"></path> <defs> <linearGradient id="instagram-icon-svg-gradient-" x1="0" y1="0" x2="16" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg>            </a><a href="https://www.facebook.com/totalrejuvmedspa" target="_blank" rel="noreferrer" class="nav-social-media-icon-container" aria-label="View Total Rejuvenation Medspa Facebook Page (Opens in a new tab)">  <svg aria-hidden="true" focusable="false" class="nav-social-media-icon" width="47" height="101" viewB
152ox="0 0 47 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M31.3634 100.651V50.6455H44.9161L46.7122 33.4132H31.3634L31.3864 24.7883C31.3864 20.2938 31.8057 17.8856 38.1436 17.8856H46.6162V0.651367H33.0615C16.7802 0.651367 11.0496 9.01088 11.0496 23.069V33.4152H0.900879V50.6475H11.0496V100.651H31.3634Z"></path> <defs> <linearGradient id="facebook-icon-svg-gradient-" x1="0" y1="0" x2="47" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg>           </a> </div> </menu>  </section> <div class="mobile-cta"> <a class="mobile-cta-right-link" href="tel:678-548-6003"> (678) 548-6003 </a><a class="mobile-cta-left-link" href="https://clients.mindbodyonline.com/ASP/adm/adm_appt_search.asp?studioid=5722628&lvl=&catid=&prodid=&date=9%2F18%2F2021&classid=0&loc=1&trn=0&stype=&tg=&vt=&justloggedin=&pMode=0&view=&sSU=&qParam=&page=&prodGroupId=&optForwardingLink=&nLgIn=" target="_blank" rel="noopener" aria-label="Open Book Now in a new tab"> Book Now </a> </div> <div class="overlay"></div> <div class="modal"> <div class="modal-background"></div> <div class="modal-content"></div> <button class="modal-close is-large" aria-label="close"></button> </div> 
152<script type="module">document.addEventListener("DOMContentLoaded",()=>{let n="",i="",a=!1;window.innerWidth>840&&document.querySelectorAll(".navigation-image-container").forEach(e=>{e.setAttribute("loading","eager")});const l=()=>{const e=document.querySelector(".header"),t=document.querySelector("body"),o=document.querySelector("html"),r=document.querySelector(".menu-button"),u=document.querySelector(".mega-menu"),s=document.querySelector(".overlay");e&&t&&r&&u&&s&&o&&(a=!a,e.classList.toggle("open",a),t.classList.toggle("navigation-open",a),o.classList.toggle("open",a),r.classList.toggle("is-active",a),r.setAttribute("aria-expanded",a.toString()),u.classList.toggle("is-active",a),s.classList.toggle("is-active",a))},c=()=>{document.querySelectorAll(".top-menu li").forEach(e=>{const t=e.querySelector("a[data-page-id]");if(t){const o=t.getAttribute("data-page-id");e.classList.toggle("active",o===n)}}),document.querySelectorAll(".main-menu").forEach(e=>{const t=e.getAttribute("data-page-id");e.classList.toggle("active",t===n)}),document.querySelectorAll(".highlight-color[data-column-id]").forEach(e=>{const t=e.getAttribute("data-column-id");e.parentElement?.classList.toggle("active",t===i)})},d=()=>{const e=window.innerWidth;if(document.querySelector(".top-menu")?.classList.contains("active")||document.querySelector(".top-menu")?.classList.add("active"),e<1024)n="",a&&l();else{const t=document.querySelectorAll("[data-page-id]");t.length>1&&(document.querySelector(".main-menu .current-page")?n=document.querySelector(".main-menu .current-page")?.closest(".main-menu")?.getAttribute("data-page-id"):n=t[0].getAttribute("data-page-id")||"")}c()};document.addEventListener("toggleNavigation",()=>{l()}),document.querySelector(".menu-back")?.addEventListener("click",()=>{n="",i="",document.querySelector(".top-menu")?.classList.add("active"),c()}),document.querySelectorAll(".top-menu a[data-page-id]").forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),document.querySelector(".top-menu")?.classList.remove("active"),n=e.getAttribute("data-page-id")||"",c()})}),document.querySelectorAll(".highlight-color[data-column-id]").forEach(e=>{e.addEventListener("click",()=>{i=e.getAttribute("data-column-id")||"",c()})}),document.querySelector(".overlay")?.addEventListener("click",()=>{a&&l()}),window.addEventListener("resize",d),d()});</script>
152 
152<script>(function(){const serializedData = {"navLinks":"{\"navLeftLinkText\":\"Book Now\",\"navLeftLinkText2\":\"\",\"navLeftLinkUrl\":\"https://clients.mindbodyonline.com/ASP/adm/adm_appt_search.asp?studioid=5722628&lvl=&catid=&prodid=&date=9%2F18%2F2021&classid=0&loc=1&trn=0&stype=&tg=&vt=&justloggedin=&pMode=0&view=&sSU=&qParam=&page=&prodGroupId=&optForwardingLink=&nLgIn=\",\"navLeftLinkUrl2\":\"\",\"navLeftSubtext\":\"\",\"navRightLinkText\":\"(678) 548-6003\",\"navRightLinkText2\":\"\",\"navRightLinkUrl\":\"tel:678-548-6003\",\"navRightLinkUrl2\":\"\",\"navRightSubtext\":\"Alpharetta, GA\",\"navRightSocials\":false,\"navLeftSocials\":false,\"mobileCtaLinks\":[]}","locationData":null};
153const domain = "totalrejuvenationmedspa.com";
154const assetsBucket = "influx-site-assets";
155const siteId = "d4ab9ed5-b908-436b-9d6f-e4e0ed98c305";
156
157function getLocalSrcClient(src) {
158    if (!src || typeof src !== "string") {
159      return "";
160    }
161
162    const normalizedSrc = src.trim();
163    const queryStringIndex = normalizedSrc.indexOf("?");
164    const srcWithoutQueryString = queryStringIndex === -1 ? normalizedSrc : normalizedSrc.slice(0, queryStringIndex);
165    const queryString = queryStringIndex === -1 ? "" : normalizedSrc.slice(queryStringIndex);
166
167    let matchKey = null;
168    let staticPrefix = "/" + "_static_";
169
170    if (srcWithoutQueryString.startsWith(staticPrefix + "/")) {
171      return `${srcWithoutQueryString}${queryString}`;
172    }
173
174    // Determine the match key and its corresponding static prefix
175    if (srcWithoutQueryString && domain && srcWithoutQueryString.includes(`/${domain}/`)) {
176      matchKey = domain;
177    } else if (srcWithoutQueryString && siteId && srcWithoutQueryString.includes(`/${siteId}/`)) {
178      matchKey = siteId;
179    }
180
181    const baseImageUrl =
182      srcWithoutQueryString && matchKey && assetsBucket && srcWithoutQueryString.includes(assetsBucket) && srcWithoutQueryString.split(matchKey).length > 1
183        ? `${staticPrefix}${srcWithoutQueryString.split(matchKey)[1]}`
184        : srcWithoutQueryString;
185
186    return `${baseImageUrl}${queryString}`;
187  }
188
189  // Initialize state from serialized data
190  let navLinksState = JSON.parse(serializedData?.navLinks);
191  const locationData = serializedData.locationData ? JSON.parse(serializedData.locationData) : null;
192  // Initialize LocationCookies if locationData is provided
193  if (document && document.cookie) {
194    if (
195      locationData?.navLeftLinkText ||
196      locationData?.navLeftLinkUrl ||
197      locationData?.navLeftSubtext ||
198      locationData?.navRightLinkText ||
199      locationData?.navRightLinkUrl ||
200      locationData?.navRightSubtext ||
201      locationData?.navLeftLinkText2 ||
202      locationData?.navLeftLinkUrl2 ||
203      locationData?.navRightLinkText2 ||
204      locationData?.navRightLinkUrl2 ||
205      locationData?.mobileCtaLinks?.length > 0
206    ) {
207      // set cookie of "locationNav" to json string of locationNav object
208      let cookie = {
209        locationId: locationData?.locationId || undefined,
210        locationName: locationData?.friendlyName || undefined,
211        navLeftLinkText: locationData?.navLeftLinkText || undefined,
212        navLeftLinkUrl: locationData?.navLeftLinkUrl || undefined,
213        navLeftSubtext: locationData?.navLeftSubtext || undefined,
214        navRightLinkText: locationData?.navRightLinkText || undefined,
215        navRightLinkUrl: locationData?.navRightLinkUrl || undefined,
216        navRightSubtext: locationData?.navRightSubtext || undefined,
217        navLeftLinkText2: locationData?.navLeftLinkText2 || undefined,
218        navLeftLinkUrl2: locationData?.navLeftLinkUrl2 || undefined,
219        navRightLinkText2: locationData?.navRightLinkText2 || undefined,
220        navRightLinkUrl2: locationData?.navRightLinkUrl2 || undefined,
221        mobileCtaLinks: locationData?.mobileCtaLinks || undefined
222      }
223      // remove undefined values
224      Object.keys(cookie).forEach(key => cookie[key] === undefined && delete cookie[key]);
225      setNavLinks({...navLinksState, ...cookie});
226      document.cookie = `locationNav=${JSON.stringify({...navLinksState, ...cookie})}; path=/`;
227    }
228    else {
229      let locationCookie = getCookie("locationNav");
230      if (locationCookie) {
231        let cookie = JSON.parse(locationCookie);
232        setNavLinks({...navLinksState, ...cookie});
233      }
234    }
235  }
236  
237  function getCookie(name) {
238    function escape(s) {
239      return s.replace(/([.*+?\^$(){}|\[\]\/\\])/g, "\\$1");
240    }
241    const match = document.cookie.match(RegExp("(?:^|;\\s*)" + escape(name) + "=([^;]*)"));
242    return match ? match[1] : null;
243  }
244
245  function setNavLinks(links) {
246
247    const leftLink = document.querySelector('.nav-left-link');
248    const leftSub = document.querySelector('.nav-left-subtext');
249    const rightLink = document.querySelector('.nav-right-link');
250    const rightSub = document.querySelector('.nav-right-subtext');
251
252    // Update left nav link
253    if (leftLink && links.navLeftLinkUrl && links.navLeftLinkText) {
254      leftLink.href = links.navLeftLinkUrl;
255      leftLink.textContent = links.navLeftLinkText;
256    }
257
258    // Optional second left link (if structure allows adding it dynamically)
259    if (links.navLeftLinkText2 && links.navLeftLinkUrl2) {
260      let secondLeftLink = document.querySelector('.second-nav-link-left');
261      // if (!secondLeftLink && leftLink?.parentElement) {
262      //   secondLeftLink = document.createElement('a');
263      //   secondLeftLink.className = 'nav-link nav-left-link second-nav-link-left';
264      //   leftLink.parentElement.appendChild(secondLeftLink);
265      // }
266      if (secondLeftLink) {
267        secondLeftLink.href = links.navLeftLinkUrl2;
268        secondLeftLink.textContent = links.navLeftLinkText2;
269      }
270    }
271
272    // Update left subtext
273    if (leftSub && links.navLeftSubtext) {
274      leftSub.textContent = links.navLeftSubtext;
275    }
276
277    // Update right nav link
278    if (rightLink && links.navRightLinkUrl && links.navRightLinkText) {
279      rightLink.href = links.navRightLinkUrl;
280      rightLink.textContent = links.navRightLinkText;
281    }
282
283    // Optional second right link (if structure allows adding it dynamically)
284    if (links.navRightLinkText2 && links.navRightLinkUrl2) {
285      let secondRightLink = document.querySelector('.second-nav-link-right');
286      // if (!secondRightLink && rightLink?.parentElement) {
287      //   secondRightLink = document.createElement('a');
288      //   secondRightLink.className = 'nav-link nav-right-link second-nav-link-right';
289      //   rightLink.parentElement.appendChild(secondRightLink);
290      // }
291      if (secondRightLink) {
292        secondRightLink.href = links.navRightLinkUrl2;
293        secondRightLink.textContent = links.navRightLinkText2;
294      }
295    }
296
297    // Update right subtext
298    if (rightSub && links.navRightSubtext) {
299      rightSub.textContent = links.navRightSubtext;
300    }
301    if (links.mobileCtaLinks && links.mobileCtaLinks.length > 0) {
302      let mobileCta = document.querySelector(".mobile-cta");
303      mobileCta.innerHTML = "";
304      let mobileCtaHtml = "";
305      {links.mobileCtaLinks.forEach((ctaLink) => {
306        let ariaLabel = ctaLink.url.startsWith("http")
307                ? `Open ${ctaLink.mobileCtaLinkText} in a new tab`
308                : null;
309        mobileCtaHtml += `
310          <a class="mobile-cta-link mobile-cta-link-icon" href="${ctaLink.url}" ${ariaLabel ? `target="_blank"` : ""} ${ariaLabel ? `rel="noopener"` : ""} ${ariaLabel ? `aria-label=${ariaLabel}` : ""}>
311            ${ctaLink.icon ? `<img loading="lazy" src="${getLocalSrcClient(ctaLink.icon)}" alt="${ctaLink.iconAlt}" />` : ""}
312            ${ctaLink.displayTitle || ""}
313          </a>`
314        }
315      )}
316      mobileCta.innerHTML = mobileCtaHtml;
317    }
318    else {
319      let rightMobileCta = document.querySelector(".mobile-cta-right-link");
320      let leftMobileCta = document.querySelector(".mobile-cta-left-link");
321      if (rightMobileCta && links.navRightLinkUrl && links.navRightLinkText) {
322        rightMobileCta.href = links.navRightLinkUrl;
323        rightMobileCta.innerText = links.navRightLinkText;
324      }
325      if (leftMobileCta && links.navLeftLinkUrl && links.navLeftLinkText) {
326        leftMobileCta.href = links.navLeftLinkUrl;
327        leftMobileCta.innerText = links.navLeftLinkText;
328      }
329    }
330
331
332  }
333
334	const resizeObserver = new ResizeObserver((entries) => {
335  if (document.querySelector("html").classList.contains("open")) return;
336  for (const entry of entries) {
337    if (entry.contentBoxSize) {
338      const navbar = document.querySelector(".navbar");
339      const header = document.querySelector(".header");
340
341      if (navbar) {
342        const navHeight = navbar.getBoundingClientRect().height;
343        document.body.style.setProperty("--navbar-height", `${navHeight}px`);
344      }
345
346      if (header) {
347        const headerHeight = header.getBoundingClientRect().height;
348        document.body.style.setProperty("--header-height", `${headerHeight}px`);
349      }
350    }
351  }
352});
353
354const header = document.querySelector(".header");
355const headerHeight = header.getBoundingClientRect().height;
356document.body.style.setProperty("--header-height", `${headerHeight}px`);
357resizeObserver.observe(header);
358
359})();</script>
359 
359<script>(function(){const disableScrolledClassToggle = false;
360
361(() => {
362  if (typeof window === 'undefined') return;
363
364  const html = document.documentElement;
365  if (html) html.style.scrollBehavior = "smooth";
366
367  if (!disableScrolledClassToggle) {
368    let headerHeight = parseFloat(getComputedStyle(document.body).getPropertyValue("--header-height"))
369    // turn on scrolled 60% of header height, off at 20% - this is updated as the header height changes
370    let SCROLL_ON = headerHeight * .6;
371    let SCROLL_OFF = headerHeight * .2;
372
373    let isScrolled = window.scrollY > SCROLL_ON;
374    document.body.classList.toggle("scrolled", isScrolled);
375
376    let squelchUntil = 0;
377
378    const toggleScrolled = (y) => {
379      if (!isScrolled && y > SCROLL_ON) {
380        isScrolled = true;
381        document.body.classList.add("scrolled");
382        squelchUntil = performance.now() + 200;
383        setTimeout(() => {
384          headerHeight = parseFloat(getComputedStyle(document.body).getPropertyValue("--header-height"))
385          SCROLL_ON = headerHeight * .6;
386          SCROLL_OFF = headerHeight * .2;
387        }, 400)
388      } else if (isScrolled && y < SCROLL_OFF) {
389        isScrolled = false;
390        document.body.classList.remove("scrolled");
391        squelchUntil = performance.now() + 200;
392        setTimeout(() => {
393          headerHeight = parseFloat(getComputedStyle(document.body).getPropertyValue("--header-height"))
394          SCROLL_ON = headerHeight * .6;
395          SCROLL_OFF = headerHeight * .2;
396        }, 400)
397      }
398    };
399
400    const rafThrottle = (fn) => {
401      let ticking = false;
402      return (...args) => {
403        if (!ticking) {
404          ticking = true;
405          requestAnimationFrame(() => { ticking = false; fn(...args); });
406        }
407      };
408    };
409
410    const handleScroll = () => toggleScrolled(window.scrollY);
411    window.addEventListener("scroll", rafThrottle(handleScroll), { passive: true });
412  }
413
414  const animateIn = (entries, observer) => {
415    entries.forEach(entry => {
416      if (entry.isIntersecting && !entry.target.classList.contains("animated")) {
417        entry.target.classList.add("animated");
418        observer.unobserve(entry.target);
419      }
420    });
421  };
422
423  const animateObserver = new IntersectionObserver(animateIn, { threshold: 0 });
424  const observedElements = new WeakSet();
425
426  const observeNewElements = () => {
427    document.querySelectorAll(".animate:not(.animated)").forEach(element => {
428      if (!observedElements.has(element)) {
429        observedElements.add(element);
430        animateObserver.observe(element);
431      }
432    });
433  };
434
435  observeNewElements();
436  setInterval(observeNewElements, 500);
437})();
438})();</script>
438 <section class="masthead-outer-container blog-masthead-outer">  <div class="default-masthead-container subpage-masthead-container animate fadeIn animated has-accent-image"> <div data-gatsby-image-wrapper="" data-initial-width="2200" data-initial-height="1134" class="gatsby-image-wrapper gatsby-image-wrapper-fullWidth masthead-accent-container" style id="gatsby-img-c3bj97j8b"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='1134' width='2200' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover" decoding="async" loading="eager" fetchpriority="high" class alt="Accent Image" src="/_static_/background/masthead-accent.jpg" srcset="/_static_/background/@720@/masthead-accent.jpg 720w, /_static_/background/@1080@/masthead-accent.jpg 1080w, /_static_/background/@1620@/masthead-accent.jpg 1620w, /_static_/background/masthead-accent.jpg 2000w" sizes="100vw"></picture></div> <div class="masthead__image"> <div data-gatsby-image-wrapper="" data-initial-width="2200" data-initial-height="1200" class="gatsby-image-wrapper gatsby-image-wrapper-fullWidth animate zoomOutFadeIn gatsby-subpage-masthead-container " style id="gatsby-img-eguug4m2o"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='1200' width='2200' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: 42.125% 37.73479700296219%" decoding="async" loading="eager" fetchpriority="high" class alt="Total Rejuvenation MedSpa Blog" src="/_static_/masthead/laser-treatments-01.jpg" srcset="/_static_/masthead/@720@/laser-treatments-01.jpg 720w, /_static_/masthead/@1080@/laser-treatments-01.jpg 1080w, /_static_/masthead/@1620@/laser-treatments-01.jpg 1620w, /_static_/masthead/laser-treatments-01.jpg 2000w" sizes="100vw"></picture></div>  </div> <div class="masthead__content__subpage">  <h1 class="title-lg white">Blog</h1>    </div> </div> </section> 
438<script>(function(){const serializedData = {"hasMultipleImages":false};
439
440  document.addEventListener('DOMContentLoaded', () => {
441
442    if (window.innerWidth > 840) {
443      document.querySelectorAll(".masthead__image img").forEach(img => {
444        img.setAttribute("loading","eager");
445      })
446    }
447
448    const { hasMultipleImages } = serializedData;
449    
450    if (hasMultipleImages) {
451      let mastheadIterator = 1;
452
453      // Initial fade out of first image
454      setTimeout(() => {
455        document.querySelectorAll(".masthead__image .masthead_image_container.masthead-image-1").forEach(e => {
456          e.classList.add('fadeOutMasthead');
457        });
458      }, 7100);
459
460      // Remove first-load and fadeOutMasthead classes
461      setTimeout(() => {
462        document.querySelectorAll(".masthead__image .masthead_image_container.masthead-image-1").forEach(e => {
463          e.classList.remove('first-load');
464          e.classList.remove('fadeOutMasthead');
465        });
466      }, 10000);
467
468      // Image rotation interval
469      setInterval(() => {
470        mastheadIterator = mastheadIterator >= 4 ? 1 : mastheadIterator + 1;
471        document.querySelectorAll(".masthead__image .masthead_image_container").forEach(e => {
472          e.classList.remove('fx');
473        });
474        document.querySelectorAll(`.masthead__image .masthead_image_container.masthead-image-${mastheadIterator}`).forEach(e => {
475          e.classList.add('fx');
476        });
477      }, 7000);
478    }
479  });
480})();</script>
480  <section class="page-section-container cards-section-container  " id>    <div class="card-feature-section-text-container">  </div> <div class="flexy cards-container"> <a class="flexy-item animate fadeIn  card  card-feature-card remove-link-styling  " href="/blog/what-are-dermal-fillers/">  <div data-gatsby-image-wrapper="" data-initial-width="850" data-initial-height="332" class="gatsby-image-wrapper gatsby-image-wrapper-cover card-feature-image " style id="gatsby-img-vqiaefqby"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='332' width='850' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: top" decoding="async" loading="lazy" fetchpriority="low" class alt="What are Dermal Fillers" src="/_static_/feature/what-are-dermal-fillers.jpg" srcset="/_static_/feature/@720@/what-are-dermal-fillers.jpg 720w, /_static_/feature/@1080@/what-are-dermal-fillers.jpg 1080w, /_static_/feature/@1620@/what-are-dermal-fillers.jpg 1620w, /_static_/feature/what-are-dermal-fillers.jpg 2000w" sizes="100vw"></picture></div> <h3 class="title-sm card-feature-individual-title">What are Dermal Fillers?</h3>  <div class="card-feature-individual-text"><p>January 30, 2022 - Aging affects our skin more than just causing fine lines and wrinkles. Many changes occur in the aging process that involve your skin, fat, and facial muscles. It can materialize as volume loss, sagging...</p></div> <div class="text-center"> <span class="button"> Read More <svg class="arrow two-column-text-button-arrow" width="18" height="10" viewBox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.5 1.3252L17 5.3252M17 5.3252L12.5 9.3252M17 5.3252H1" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </span> </div> </a><a class="flexy-item animate fadeIn  card  card-feature-card remove-link-styling  " href="/blog/double-alle-points-and-botox-cosmetic-day/">  <div data-gatsby-image-wrapper="" data-initial-width="850" data-initial-height="358" class="gatsby-image-wrapper gatsby-image-wrapper-cover card-feature-image " style id="gatsby-img-rc03750c6"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='358' width='850' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: top" decoding="async" loading="lazy" fetchpriority="low" class alt="Double ALLE Points &#38; Botox Cosmetic Day" src="/_static_/feature/earn-double-poionts.png" srcset="/_static_/feature/@720@/earn-double-poionts.png 720w, /_static_/feature/@1080@/earn-double-poionts.png 1080w, /_static_/feature/@1620@/earn-double-poionts.png 1620w, /_static_/feature/earn-double-poionts.png 2000w" sizes="100vw"></picture></div> <h3 class="title-sm card-feature-individual-title">Double ALLE points and Botox Cosmetic Day</h3>  <div class="card-feature-individual-text"><p>November 15, 2021 - The week of November 15th, ALLE is offering the opportunity to earn double points! Thanksgiving and Christmas are just around the corner so we want to help you look your best! Schedule your appointment...</p></div> <div class="text-center"> <span class="button"> Read More <svg class="arrow two-column-text-button-arrow" width="18" height="10" viewBox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.5 1.3252L17 5.3252M17 5.3252L12.5 9.3252M17 5.3252H1" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </span> </div> </a><a class="flexy-item animate fadeIn  card  card-feature-card remove-link-styling  " href="/blog/benefits-of-juvederm-voluma/">  <div data-gatsby-image-wrapper="" data-initial-width="800" data-initial-height="445" class="gatsby-image-wrapper gatsby-image-wrapper-cover card-feature-image " style id="gatsby-img-9hzyl217h"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='445' width='800' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: top" decoding="async" loading="lazy" fetchpriority="low" class alt="Benefits of Juvederm Voluma" src="/_static_/feature/benefits-of-juvederm.jpg" srcset="/_static_/feature/@720@/benefits-of-juvederm.jpg 720w, /_static_/feature/@1080@/benefits-of-juvederm.jpg 1080w, /_static_/feature/@1620@/benefits-of-juvederm.jpg 1620w, /_static_/feature/benefits-of-juvederm.jpg 2000w" sizes="100vw"></picture></div> <h3 class="title-sm card-feature-individual-title">Benefits of Juvederm Voluma</h3>
480  <div class="card-feature-individual-text"><p>What are some of the benefits of using Juvederm Voluma for anti-aging? Do you want to have fuller cheeks? Be sure to check back soon as we explore the main benefits for why you may...</p></div> <div class="text-center"> <span class="button"> Read More <svg class="arrow two-column-text-button-arrow" width="18" height="10" viewBox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.5 1.3252L17 5.3252M17 5.3252L12.5 9.3252M17 5.3252H1" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </span> </div> </a><a class="flexy-item animate fadeIn  card  card-feature-card remove-link-styling  " href="/blog/what-is-botox/">  <div data-gatsby-image-wrapper="" data-initial-width="800" data-initial-height="445" class="gatsby-image-wrapper gatsby-image-wrapper-cover card-feature-image " style id="gatsby-img-1jb5r91av"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='445' width='800' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover; object-position: top" decoding="async" loading="lazy" fetchpriority="low" class alt="Total Rejuvenation MedSpa Blog" src="/_static_/feature/what-is-botox.jpg" srcset="/_static_/feature/@720@/what-is-botox.jpg 720w, /_static_/feature/@1080@/what-is-botox.jpg 1080w, /_static_/feature/@1620@/what-is-botox.jpg 1620w, /_static_/feature/what-is-botox.jpg 2000w" sizes="100vw"></picture></div> <h3 class="title-sm card-feature-individual-title">What is Botox?</h3>  <div class="card-feature-individual-text"><p>September 15, 2021 - Botox Are you considering getting some Botox done? Maybe you heard about it from a friend but don't know what it is or why you should even do it? Be sure to check back soon...</p></div> <div class="text-center"> <span class="button"> Read More <svg class="arrow two-column-text-button-arrow" width="18" height="10" viewBox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12.5 1.3252L17 5.3252M17 5.3252L12.5 9.3252M17 5.3252H1" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </span> </div> </a> </div> </section> <section class="contact-form-container footer-form-container pv100 animate fadeIn no-delay" data-astro-cid-svshx33u><div data-gatsby-image-wrapper="" data-initial-width="2200" data-initial-height="831" class="gatsby-image-wrapper gatsby-image-wrapper-constrained contact-form-background-image " style id="gatsby-img-0dpswqloh"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='831' width='2200' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: cover" decoding="async" loading="lazy" fetchpriority="low" class alt src="/_static_/background/request-consult-bg.jpg" srcset="/_static_/background/@720@/request-consult-bg.jpg 720w, /_static_/background/@1080@/request-consult-bg.jpg 1080w, /_static_/background/@1620@/request-consult-bg.jpg 1620w, /_static_/background/request-consult-bg.jpg 2000w" sizes="100vw"></picture></div><div class="container" id="schedule-consult-footer-form" data-astro-cid-svshx33u><div class="mw1600" data-astro-cid-svshx33u><div class="inline-schedule-consult" data-astro-cid-svshx33u><div class="flexy gap50 contact-form-flexy" data-astro-cid-svshx33u><div class="flexy-item contact-form-flexy-text-container" data-astro-cid-svshx33u><h2 class="ipj-link contact-form-title title-md"> Let Your Beauty Shine</h2><h3 class="lead contact-form-subtitle"> Make an Appointment</h3><div class="contact-form-text-container"><p>Need a specialist? Your search for the highest standard of medical spa services in Alpharetta, GA, ends at Total Rejuvenation Medspa. We warmly welcome you to get started by scheduling your personal consultation with one of our experienced aesthetic specialists. We love educating our clients about our treatments and providing personalized treatment plans focused on your individual goals. We bring passion, expertise, and inspiration to our work, helping you celebrate your uniqueness and letting your inner beauty shine.&nbsp;Click Below to Rejuvenate Now!</p></div></div><div class="flexy-item contact-form-flexy-form-container" data-astro-cid-svshx33u><div class="contact-form" data-astro-cid-svshx33u><form data-influx-form="{&#34;redirectOnSubmit&#34;:false,&#34;redirectUrl&#34;:null,&#34;webhookUrl&#34;:null,&#34;thankYouTitle&#34;:null,&#34;thankYouSubtitle&#34;:null,&#34;thankYouParagraph1&#34;:null}" action="https://forms.influx.mx/form" method="POST" novalidate name="Footer-Form" aria-label="Footer Form" class="form" data-thank-you-title="Thank y
480ou for your submission!" data-thank-you-text id="footer-form" data-astro-reload enctype="multipart/form-data" data-astro-cid-svshx33u><input type="hidden" name="formId" value="1cde59e7-c589-40f0-a35e-db6ae9c7905e" data-astro-cid-svshx33u><input type="hidden" name="siteId" value="d4ab9ed5-b908-436b-9d6f-e4e0ed98c305" data-astro-cid-svshx33u><input type="hidden" name="gtagevent" value="footer_form" data-astro-cid-svshx33u><input type="hidden" name="redirectOnSubmit" value="false" data-astro-cid-svshx33u><input type="hidden" name="redirectUrl" value data-astro-cid-svshx33u>
481        <div class="input-wrap-is-one-third">
482          <input
483            
484    name="Full-Name"
485    aria-label="Full Name"
486    aria-required="true"
487    placeholder="Full Name *"
488    required
489    
490  
491            type="text"
492          />
493        </div>
494      
495        <div class="input-wrap-is-one-third">
496          <input
497            
498    name="Phone-Number"
499    aria-label="Phone Number"
500    aria-required="true"
501    placeholder="Phone Number *"
502    required
503    
504  
505            pattern="[\+]?[0-9]{0,2}[\-\s\.]?[\(]?[0-9]{3}[\)]?[\-\s\.]?[0-9]{3}[\-\s\.]?[0-9]{4,6}"
506            type="tel"
507          />
508        </div>
509      
510        <div class="input-wrap-is-one-third">
511          <input
512            
513    name="Email-Address"
514    aria-label="Email Address"
515    aria-required="true"
516    placeholder="Email Address *"
517    required
518    
519  
520            type="email"
521          />
522        </div>
523      
524        <div class="input-wrap-is-one-third">
525          <input
526            
527    name="Procedure-of-Interest"
528    aria-label="Procedure of Interest"
529    aria-required="true"
530    placeholder="Procedure of Interest *"
531    required
532    
533  
534            type="text"
535          />
536        </div>
537      
538        <div class="input-wrap-is-one-third">
539          <input
540            
541    name="How-Did-You-Hear-of-Us"
542    aria-label="How Did You Hear of Us?"
543    aria-required="true"
544    placeholder="How Did You Hear of Us? *"
545    required
546    
547  
548            type="text"
549          />
550        </div>
551      
552        <div class="input-wrap-is-one-third">
553          <input
554            
555    name="Best-Time-to-Reach-You"
556    aria-label="Best Time to Reach You"
557    aria-required="true"
558    placeholder="Best Time to Reach You *"
559    required
560    
561  
562            type="text"
563          />
564        </div>
565      
566        <div class="input-wrap-is-full">
567          <textarea
568            
569    name="How-Can-We-Assist-Your-Aesthetic-Needs"
570    aria-label="How Can We Assist Your Aesthetic Needs?"
571    aria-required="true"
572    placeholder="How Can We Assist Your Aesthetic Needs? *"
573    required
574    
575  
576            maxlength="280"
577          ></textarea>
578        </div>
579      
580        <div class="input-wrap-is-full form-info">
581          <p class="optin-terms">By submitting this you agree to be contacted by Total Rejuvination Medpa via text, call or email. Standard rates may apply. For more details, read our <a href="/privacy-policy/">Privacy Policy</a>.</p>
582        </div>
583      <div class="input-wrap-is-full" style="display: none;" data-astro-cid-svshx33u><input name="ZipCode" placeholder="Zip Code*" type="number" aria-hidden="true" data-astro-cid-svshx33u></div><button type="submit" class="button contact-form-button" data-astro-cid-svshx33u>Schedule Appointment<svg class="arrow contact-form-button-arrow" width="18" height="10" viewBox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-svshx33u><path d="M12.5 1.3252L17 5.3252M17 5.3252L12.5 9.3252M17 5.3252H1" stroke="white" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-svshx33u></path></svg></button><a class="button contact-form-button form-phone-link" href="tel:(678) 548-6003" data-astro-cid-svshx33u>(678) 548-6003</a></form><div class="form-message" style="display: none;" data-astro-cid-svshx33u><div class="card" data-astro-cid-svshx33u><div class="error-message" style="display: none;" data-astro-cid-svshx33u><h2 class="ipj-link thank-you-form-title title-md" data-astro-cid-svshx33u>Error with Form Submission</h2><div class="thank-you-form-text-container" data-astro-cid-svshx33u><p data-astro-cid-svshx33u>There was an error processing your form. Please try again later.</p></div></div><div class="success-message" style="display: none;" data-astro-cid-svshx33u><h2 class="ipj-link thank-you-form-title title-md" data-astro-cid-svshx33u>Thank you for your submission!</h2></div></div></div></div></div></div></div></div></div></section> <section class="footer pv50 animate fadeIn no-delay"><div class="container text-center-touch"><div class="flexy mb-footer is-vcentered"><div class="flexy-item text-center footer-image is-visible-tablet mb35"><a href="/" aria-label="Go to totalrejuvenationmedspa.com homepage"><div data-gatsby-image-wrapper="" data-initial-width="546" data-initial-height="150" class="gatsby-image-wrapper gatsby-image-wrapper-constrained " style="position: relative !important" id="gatsby-img-9zh3pt5d9"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='150' width='546' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: contain; display: block; margin: auto" decoding="async" loading="lazy" fetchpriority="low" class="footer-logo" alt="Total Rejuvenation Medspa in Alpharetta, GA" src="/_static_/logos/footer-logo.png"></picture></div></a></div><div class="flexy-item animate fadeIn footer-address"><a href="https://maps.app.goo.gl/onTVSd7d5ZGjNjBY6" target="_blank" rel="noopener"><p class="lead mb15-tablet">600 Houze Way Suite B6<br>Roswell, GA 30076</p></a></div><div class="flexy-item text-center footer-image is-hidden-tablet animate fadeIn"><a href="/" aria-label="Go to totalrejuvenationmedspa.com homepage"><div data-gatsby-image-wrapper="" data-initial-width="546" data-initial-height="150" class="gatsby-image-wrapper gatsby-image-wrapper-constrained " style="position: relative !important" id="gatsby-img-fspexoqss"><div class="placeholder-wrapper" style="display:block;"><img alt="" aria-hidden="true" fetchpriority="high" src="data:image/svg+xml;charset=utf-8,%3Csvg height='150' width='546' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width: 100%; display: block; position: static"></div><picture><img data-main-image="" style="object-fit: contain; display: block; margin: auto" decoding="async" loading="lazy" fetchpriority="low" class="footer-logo" alt="Total Rejuvenation Medspa in Alpharetta, GA" src="/_static_/logos/footer-logo.png"></picture></div></a></div><div class="flexy-item animate fadeIn"><a class="display-unset" href="tel:(678) 548-6003"><p class="text-right-desktop lead mb0 mb15-tablet">(678) 548-6003</p></a><p class="text-right-desktop lead">Mon: Closed Tues  11:00 AM - 7:00 PM<br /> Wed - Fri  9:00 AM - 5:00 PM<br />
583 3rd Sat - 9:00 AM - 2:00 PM</p></div></div><div class="flexy is-vcentered mb50"><div class="flexy-item is-40 animate fadeIn"><a href="/testimonials/"><span class="ratingstars"><span class="ratings-number">5.0</span><div><span class="ratings-stars"><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg><svg class="footer-star" width="16" height="15" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23 22"><polygon points="15.893,13.597 23,8.403 14.215,8.403 11.5,0 8.785,8.403 0,8.403 7.107,13.597 4.393,22 11.5,16.807 18.607,22" fill="#FFF"></polygon></svg></span><span class="ratings-text">from 165+ Reviews</span></div></span></a></div><div class="flexy-item is-80 text-center animate fadeIn"><a href="https://www.instagram.com/totalrejuvmedspa/" target="_blank" rel="noreferrer" class="footer-social-media-icon-container" aria-label="View Total Rejuvenation Medspa Instagram Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="footer-social-media-icon" width="100" height="100" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.69166 0.0548132C3.8379 0.0922779 3.25627 0.231432 2.74935 0.42946C2.22108 0.63284 1.77819 0.911149 1.3353 1.35537C0.88707 1.7996 0.620268 2.24917 0.412163 2.77368C0.21473 3.28213 0.0813297 3.86551 0.0439775 4.71649C0.00662526 5.56747 -0.00404779 5.84043 0.00128825 8.01338C0.00128825 10.1863 0.0119595 10.4593 0.0546478 11.3103C0.097336 12.1613 0.230738 12.7393 0.433508 13.2477C0.636277 13.7722 0.91375 14.2218 1.35664 14.666C1.79953 15.1103 2.24776 15.3832 2.77603 15.5866C3.28295 15.7846 3.86458 15.9184 4.71834 15.9559C5.57211 15.9934 5.84424 16.0041 8.01601 15.9987C10.1878 15.9987 10.4599 15.988 11.3137 15.9452C12.1674 15.9024 12.7437 15.7686 13.256 15.5705C13.7789 15.3672 14.2272 15.0889 14.67 14.6446C15.1129 14.2004 15.3851 13.7508 15.5878 13.2263C15.7853 12.7179 15.9187 12.1345 15.956 11.2835C15.9934 10.4272 16.004 10.1596 15.9987 7.98662C15.9987 5.81367 15.9827 5.54071 15.9454 4.68973C15.9027 3.83875 15.7693 3.25537 15.5718 2.74692C15.3637 2.22241 15.0916 1.77819 14.6487 1.33396C14.2005 0.88974 13.7522 0.616783 13.2293 0.413404C12.7224 0.215376 12.1408 0.0815737 11.287 0.044109C10.4332 0.00664437 10.1611 -0.00405991 7.98933 0.00129218C5.81756 0.00129218 5.54543 0.0119965 4.69166 0.0548132ZM4.78771 14.5162C4.00865 14.4841 3.58177 14.3503 3.29896 14.2432C2.92543 14.0987 2.65863 13.9274 2.37582 13.6438C2.09301 13.3655 1.92226 13.0979 1.77819 12.7232C1.66613 12.4396 1.53807 12.0167 1.50071 11.2407C1.46336 10.3951 1.45269 10.1435 1.44735 8.00803C1.44735 5.87254 1.44735 5.62099 1.49004 4.77536C1.52206 3.99396 1.65546 3.57114 1.76218 3.28748C1.90625 2.91283 2.07701 2.64523 2.35982 2.36692C2.63729 2.08861 2.90409 1.91199 3.27761 1.76748C3.56042 1.65509 3.98197 1.52664 4.76103 1.48917C5.60412 1.45171 5.86025 1.44101 7.99466 1.43565C10.1291 1.43565 10.3852 1.43565 11.2283 1.47847C12.0074 1.51058 12.4342 1.63903 12.7117 1.75143C13.0852 1.89593 13.352 2.0672 13.6348 2.34551C13.9123 2.62382 14.0884 2.89142 14.2325 3.26607C14.3445 3.54438 14.4726 3.97255 14.51 4.7486C14.5473 5.59423 14.558 5.84578 14.5633 7.98127C14.5633 10.1168 14.5633 10.3683 14.5206 11.2139C14.4886 11.9953 14.3606 12.4182 14.2485 12.7018C14.1044 13.0765 13.9337 13.3441 13.6509 13.6224C13.3734 13.9007 13.1066 14.0773 12.7331 14.2218C12.4502 14.3342 12.0287 14.4627 11.2496 14.5001C10.4066 14.5376 10.1504 14.5483 8.01601 14.5536C5.8816 14.5536 5.62547 14.5536 4.78237 14.5162M11.3083 3.721C11.3083 4.25086 11.7406 4.67902 12.2688 4.67902C12.7971 4.67902 13.2293 4.2455 13.2293 3.71565C13.2293 3.18579 12.7971 2.75762 12.2635 2.75762C11.7352 2.75762 11.303 3.19114 11.303 3.721M3.89659 8.00803C3.89659 10.2773 5.74286 12.1131 8.01601 12.1077C10.2838 12.1077 12.1248 10.2613 12.1194 7.99197C12.1194 5.72268 10.2732 3.88691 8 3.89227C5.73219 3.89227 3.89126 5.73874 3.89659 8.00803ZM5.33732 8.00268C5.33732 6.53085 6.52726 5.33198 8 5.33198C9.47275 5.33198 10.668 6.52015 10.6734 7.99197C10.6734 9.4638 9.48342 10.6627 8.01067 10.6627C6.53793 10.6627 5.34266 9.4745 5.33732 8.00268Z" fill="url(#instagram-icon-svg-gradient-footer)"></path> <defs> <linearGradient id="instagram-icon-svg-gradient-footer" x1="0" y1="0" x2="16" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><a href="https://www.facebook.com/totalrejuvmedspa" target="_blank" rel="noreferrer" class="footer-social-media-icon-container" aria-label="View Total Rejuvenation Medspa Facebook Page (Opens in a new tab)"><svg aria-hidden="true" focusable="false" class="footer-social-media-icon" width="47" height="101" viewB
583ox="0 0 47 101" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M31.3634 100.651V50.6455H44.9161L46.7122 33.4132H31.3634L31.3864 24.7883C31.3864 20.2938 31.8057 17.8856 38.1436 17.8856H46.6162V0.651367H33.0615C16.7802 0.651367 11.0496 9.01088 11.0496 23.069V33.4152H0.900879V50.6475H11.0496V100.651H31.3634Z" fill="url(#facebook-icon-svg-gradient-footer)"></path> <defs> <linearGradient id="facebook-icon-svg-gradient-footer" x1="0" y1="0" x2="47" y2="0" gradientUnits="userSpaceOnUse"> <stop stop-color="#ffffff"></stop> <stop offset="0.08" stop-color="#ffffff"></stop> <stop offset="0.24" stop-color="#ffffff"></stop> <stop offset="0.47" stop-color="#ffffff"></stop> <stop offset="0.56" stop-color="#ffffff"></stop> <stop offset="0.69" stop-color="#ffffff"></stop> <stop offset="0.75" stop-color="#ffffff"></stop> <stop offset="0.89" stop-color="#ffffff"></stop> <stop offset="1" stop-color="#ffffff"></stop> </linearGradient> </defs> </svg></a><p class="footer-text bold mt30">
584© <span class="dynamic-full-year-container" id="full-year"></span>
585&nbsp; Total Rejuvenation Medspa | All Rights Reserved
586</p></div><div class="flexy-item is-40 animate fadeIn"><p class="text-right-desktop micro"><a class="influx-link" href="https://www.influxmarketing.com/" target="_blank" rel="noopener"><svg width="68" class="influx-footer-logo" height="17" viewBox="0 0 68 17" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0)"><path class="footer-influx-logo-letter" d="M24.0794 1.75391H20.6508V15.1743H24.0794V1.75391Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M25.6593 5.11066H28.4717V6.1793H28.5078C28.8159 5.69087 29.4518 4.76318 31.2481 4.76318C32.2085 4.76318 33.2804 5.16311 33.8245 5.63515C34.3687 6.10719 34.9849 6.90375 34.9849 8.88042V15.1743H31.9725V9.68027C31.9725 8.97221 31.9725 7.59542 30.3926 7.59542C28.6684 7.59542 28.6684 9.08366 28.6684 9.69994V15.1776H25.656V5.11066H25.6593Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M36.5059 7.39541H35.3816V5.1106H36.5059V4.58612C36.5059 1.75715 38.8824 1.50146 40.3509 1.50146H40.7868V3.76988H40.4427C40.1903 3.76988 39.5183 3.86167 39.5183 4.71396V5.11388H40.7868V7.39869H39.5183V15.1808H36.5059V7.39541Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M45.1071 1.75391H42.0947V15.1743H45.1071V1.75391Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M55.8816 15.174H53.0331V14.1053H52.997C52.3808 15.3936 51.1483 15.5018 50.3845 15.5018C49.7683 15.5018 48.3162 15.3576 47.4279 14.2332C46.6281 13.2367 46.5199 12.5089 46.5199 11.1321V5.11035H49.5323V10.6798C49.5323 11.3682 49.5323 12.6925 51.1483 12.6925C52.0202 12.6925 52.8725 12.2401 52.8725 10.6437V5.11035H55.8849V15.174H55.8816Z" fill="#424648"></path><path class="footer-influx-logo-letter" d="M63.9191 5.11035L62.3063 7.75574L60.6707 5.11035H57.0617L60.4543 9.78814L56.6257 15.174H60.2544L62.3063 12.0566L64.319 15.174H68L64.1026 9.78814L67.492 5.11035H63.9191Z" fill="#424648"></path><path d="M17.0025 0H0V17H17.0025V0Z" fill="url(#paint0_linear)"></path><path d="M7.08679 9.19177L9.74517 5.31055V13.0664H7.08679V9.19177Z" fill="white"></path><path d="M9.74517 3.93701H7.08679V7.81823L9.74517 3.93701Z" fill="#F9B78E"></path></g><defs><linearGradient id="paint0_linear" x1="17.8371" y1="0.21739" x2="-0.94874" y2="5.12118" gradientUnits="userSpaceOnUse"><stop stop-color="#EA1877"></stop><stop offset="1" stop-color="#FF8732"></stop></linearGradient><clipPath id="clip0"><rect width="68" height="17" fill="white"></rect></clipPath></defs></svg><span class="profession-text">Med Spa Marketing</span></a></p></div></div></div><div class="footer-bottom-container"><p class="footer-additional-links"><a href="/sitemap/">Sitemap</a> | <a href="/privacy-policy/">Privacy Policy</a> | <a href="/accessibility/">Accessibility</a> |  <a href="/open-payment-database-notice/">Notice of Open Payment Database</a></p><div class="disclaimer"><strong>Accessibility:</strong> If you are visually impaired or have some other impairment and you wish to discuss potential accommodations
587              related to using this website, please contact our office at <
587a href="tel:(678) 548-6003">(678) 548-6003</a>.
588</div></div></section>
588<script type="module">function n(e){const r=e.getBoundingClientRect().height;document.body.style.setProperty("--mobile-cta-height",`${r}px`)}const t=document.querySelector(".mobile-cta");t&&(n(t),new ResizeObserver(()=>{n(t)}).observe(t));let o=document.querySelectorAll(".dynamic-full-year-container");o.length>0&&o.forEach(e=>{e.textContent=`${new Date().getFullYear()}`});</script>
588 
589<script>
590  document.querySelectorAll("form").forEach(form => {
591    const oldForm = form;
592    const newForm = form.cloneNode(true);
593    oldForm.parentNode.replaceChild(newForm, oldForm)
594  });
595  document.querySelectorAll("form").forEach(form => {
596    form.setAttribute("action", "https://formspree.io/f/xpqzegop");
597    form.setAttribute("method", "POST");
598  });
599</script>
vendor: 60 bytes, lines 599-602
599
600
601
602<script src="https://www.googletagmanager.com/gtag/js?id=
602G-MS23DV4NES
vendor: 12 bytes, line 602
602"></script>
603<script>
604  
vendor: 133 bytes, lines 604-607
604window.dataLayer = window.dataLayer || [];
605  function gtag(){dataLayer.push(arguments);}
606  gtag('js', new Date());
607  gtag('config', '
607G-MS23DV4NES
vendor: 6 bytes, lines 607-608
607');
608  
608gtag('config', 'G-WSN3B37CDX');
609  gtag('config', 'G-JZCP12DYQ1');
610</script>
vendor: 1 bytes, line 610
610
611<script>
612  let allTelTags = document.querySelectorAll("a[href^='tel']");
613  for (let tag of allTelTags) {
614    tag.addEventListener("click", () => gtag('event', 'phone_number_click'));
615    let phoneNumberSplit = tag.href.split("tel:");
616    if (phoneNumberSplit.length > 1) {
617      tag.ariaLabel = `Call ${phoneNumberSplit[1]}`;
618    }
619  }
620  let allForms = document.querySelectorAll("form");
621  for (let form of allForms) {
622    form.addEventListener("submit", (e) => {
623      gtag("event", 'form_completion', {
624        'form_name': e.target.querySelector("input[name='gtagevent']").value || "contact_form"
625      });
626    })
627  } 
628</script>
628
629<!-- 
629<script>
630  /*lazy load javascript*/
631  let loadScripts = setInterval(function() {
632    if (document.documentElement.scrollTop > 30 || document.body.scrollTop > 30) {
633
634      var ghlchat = document.createElement("script");
635      ghlchat.async = true;
636      ghlchat.type = "text/javascript";
637      ghlchat.setAttribute("data-resources-url", "https://widgets.leadconnectorhq.com/chat-widget/loader.js");
638      ghlchat.setAttribute("data-widget-id", "679a666da77c7f749b5837b3");
639      ghlchat.src = "https://widgets.leadconnectorhq.com/loader.js";
640      var elem = document.body;
641      elem.appendChild(ghlchat);
642      
643      let checkChatWidget = setInterval(function() {
644      const chatWidget = document.querySelector('chat-widget');
645      if (chatWidget && chatWidget.shadowRoot) {
646        const styleSheet = chatWidget.shadowRoot.querySelector('style') || document.createElement('style');
647        styleSheet.textContent += `
648        @media (max-width: 840px) {
649          .lc_text-widget--bubble {
650            bottom: 60px !important; 
651          }
652          .lc_text-widget--box {
653            bottom: 50px !important; 
654          }
655          .lc_text-widget--prompt {
656            bottom: 40px !important; 
657          }
658        }
659      `;
660      chatWidget.shadowRoot.appendChild(styleSheet);
661      clearInterval(checkChatWidget);
662        }
663      }, 200);
664
665      clearInterval(loadScripts);
666    }
667  }, 500);
668</script>
668 --> <div id="ghl-chat-widget-container"> <style>
669    @media screen and (max-width: 841px) {
670      body.scrolled #ghl-chat-widget-container chat-widget,
671      html.open #ghl-chat-widget-container chat-widget {
672        --ghl-chat-widget-bottom: calc(var(--mobile-cta-height, 50px) + 20px);
673      }
674    }
675  </style> 
675<script src="https://widgets.leadconnectorhq.com/loader.js" data-resources-url="https://widgets.leadconnectorhq.com/chat-widget/loader.js" data-widget-id="679a666da77c7f749b5837b3"></script>
675 
675<script>
676    customElements.whenDefined("chat-widget").then(() => {
677      const widgetContainer = document.querySelector("#ghl-chat-widget-container");
678
679      const addMobileBottomPositionStyle = () => {
680        const chatWidget = widgetContainer.querySelector("chat-widget");
681        if (!chatWidget?.shadowRoot) {
682          return false;
683        }
684
685        const mobileBottomPositionStyle = document.createElement("style");
686        mobileBottomPositionStyle.textContent = `
687          @media screen and (max-width: 841px) {
688            #lc_text-widget,
689            #lc_text-widget--btn {
690              bottom: var(--ghl-chat-widget-bottom, 20px) !important;
691              transition: bottom 0.5s ease !important;
692            }
693          }
694        `;
695        chatWidget.shadowRoot.appendChild(mobileBottomPositionStyle);
696        return true;
697      };
698
699      if (!addMobileBottomPositionStyle()) {
700        const widgetObserver = new MutationObserver(() => {
701          if (addMobileBottomPositionStyle()) {
702            widgetObserver.disconnect();
703          }
704        });
705
706        widgetObserver.observe(widgetContainer, { childList: true });
707      }
708    });
709  </script>
709 </div>   
709<script>
710  function getCookie(name) {
711    function escape(s) {
712      return s.replace(/([.*+?\^$(){}|\[\]\/\\])/g, "\\$1");
713    }
714    const match = document.cookie.match(RegExp("(?:^|;\\s*)" + escape(name) + "=([^;]*)"));
715    return match ? match[1] : null;
716  }
717
718  function setFormLocation() {
719    const locationNav = getCookie("locationNav");
720    if (locationNav) {
721      const location = JSON.parse(locationNav).locationName;
722      document.querySelectorAll("form").forEach(form => {
723        form.querySelectorAll("select").forEach(select => {
724          select.querySelectorAll("option").forEach(option => {
725            if (option.value === location) option.selected = true;
726          });
727        });
728      });
729    }
730  }
731
732  function setTrackingCookies() {
733    const url = new URL(window.location);
734    for (const key of url.searchParams.keys()) {
735      if (!document.cookie.includes(`__form__${key}`)) {
736        document.cookie = `__form__${key}=${url.searchParams.get(key)}; path=/`;
737      }
738    }
739  }
740
741  function setVisitedPageCookie() {
742    if (document.cookie.includes("currentVisitedPage")) {
743      document.cookie = `lastVisitedPage=${getCookie("currentVisitedPage")}; path=/`;
744    }
745    document.cookie = `currentVisitedPage=${window.location.href}; path=/`;
746  }
747
748  function scrollToHashTarget() {
749    const hash = window.location.hash;
750    if (!hash) return;
751    const target = document.querySelector(hash);
752    if (!target) return;
753    let headerHeight = parseInt(document.body.style.getPropertyValue("--header-height")) || 135;
754    headerHeight += 75;
755    let lastOffset = null;
756    let stableCount = 0;
757    const offSetInterval = setInterval(() => {
758      const target = document.querySelector(hash);
759      if (!target) {
760        clearInterval(offSetInterval);
761        return;
762      }
763      const newOffset = target.getBoundingClientRect().top + window.scrollY - headerHeight;
764      if (newOffset === lastOffset) {
765        stableCount++;
766        if (stableCount >= 3) {
767          clearInterval(offSetInterval);
768          window.scrollTo({
769            top: newOffset,
770            behavior: "smooth"
771          });
772        }
773      } else {
774        stableCount = 0; 
775        lastOffset = newOffset;
776        window.scrollTo({
777          top: newOffset,
778          behavior: "smooth"
779        });
780      }
781    }, 100);
782  }
783
784  window.addEventListener("DOMContentLoaded", scrollToHashTarget);
785  window.addEventListener("hashchange", scrollToHashTarget);
786
787  setTrackingCookies();
788  setVisitedPageCookie();
789  setFormLocation();
790
791
792  //if current URL matches the item in the menu, add a "current-page" class to the item
793  document.querySelectorAll("menu a").forEach(a => {
794    if (a.href === window.location.href) {
795      a.classList.add("current-page");
796      a.parentElement.classList.add("current-page");
797    }
798  });
799
800</script>
800 
800<script type="module">function a(){const o={root:null,rootMargin:"1000px 0px",threshold:0},s=new IntersectionObserver(t=>{t.forEach(r=>{if(r.isIntersecting){const e=r.target;if(!e.dataset.src)return;e.src=e.dataset.src,s.unobserve(e)}})},o),n=new IntersectionObserver(t=>{t.forEach(r=>{if(r.isIntersecting){const e=r.target;if(!e.dataset.src)return;e.src=e.dataset.src,e.load(),e.onloadeddata=()=>{e.removeAttribute("data-src"),e.play()},n.unobserve(e)}})},o);document.querySelectorAll("img[data-src]").forEach(t=>s.observe(t)),document.querySelectorAll("video[data-src]:not([data-load-on-click])").forEach(t=>n.observe(t))}window.addEventListener("DOMContentLoaded",a);</script>
800 
800<script type="module" src="/_astro/FormHandler.astro_astro_type_script_index_0_lang.D8MarnXX.js"></script>
800 <div class="accessibility-widget-container"> <a role="button" class="accessibility-launcher" aria-label="Open Accessibility Menu" aria-expanded="false" tabindex="0"> <div class="accessibility-launcher-icon"> <svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg" role="img"> <title>Accessibility icon</title> <g clip-path="url(#clip0_3_2)"> <path d="M30 4.42857C44.1227 4.42857 55.5714 15.8773 55.5714 30C55.5714 44.1227 44.1227 55.5714 30 55.5714C15.8773 55.5714 4.42857 44.1227 4.42857 30C4.42857 15.8773 15.8773 4.42857 30 4.42857ZM30 6.42857C16.9819 6.42857 6.42857 16.9819 6.42857 30C6.42857 43.0181 16.9819 53.5714 30 53.5714C43.0181 53.5714 53.5714 43.0181 53.5714 30C53.5714 16.9819 43.0181 6.42857 30 6.42857ZM40.5936 24.6361C40.8208 24.6942 41.0323 24.8028 41.2129 24.9537C41.3927 25.1041 41.5373 25.2927 41.6362 25.506C41.7349 25.7185 41.7857 25.9505 41.7857 26.1965C41.778 26.578 41.6395 26.9452 41.3936 27.2353C41.1464 27.5268 40.8059 27.7221 40.4376 27.7857C38.1922 28.2018 35.9244 28.4828 33.6481 28.6271C33.5049 28.6367 33.3651 28.6759 33.2369 28.7424C33.1082 28.8091 32.994 28.9019 32.9012 29.0154C32.8079 29.1294 32.7383 29.2618 32.6967 29.4044C32.6759 29.4759 32.6623 29.5493 32.6557 29.6152L32.6511 29.7072L32.6599 29.8496L32.8523 31.5976C33.0926 33.7484 33.5345 35.8702 34.1701 37.9296L34.4174 38.6989L34.6846 39.4673L35.9271 42.8464C35.9992 43.0441 36.0318 43.2542 36.023 43.4646C36.0141 43.6751 35.964 43.8817 35.8755 44.0727C35.7867 44.2639 35.6611 44.4355 35.5059 44.5773C35.3502 44.7196 35.1677 44.829 34.99 44.8912C34.8134 44.9616 34.6253 44.9985 34.4204 45C34.1148 44.9943 33.8175 44.8987 33.5651 44.7253C33.4239 44.6283 33.2998 44.5091 33.189 44.3581L33.0827 44.196L33.0074 44.0456L32.6902 43.3563C31.8321 41.4806 31.0485 39.6428 30.3336 37.8221L30.0025 36.9627L29.5751 38.0696C29.3404 38.6637 29.0998 39.2561 28.8537 39.8465L28.4802 40.7305L27.9044 42.0505L27.3109 43.3601L27.0273 43.9426C26.881 44.3389 26.585 44.6608 26.2035 44.837C25.8203 45.0139 25.3832 45.0288 24.9892 44.8784C24.5966 44.7286 24.2796 44.4272 24.1073 44.0414C23.9886 43.7757 23.9447 43.4837 23.9834 43.1769L24.0166 42.9911L24.0668 42.8262L25.3079 39.4507C26.0439 37.4198 26.5852 35.3222 26.9239 33.1917L27.0415 32.3912L27.1413 31.5772L27.3403 29.8382C27.3582 29.6889 27.346 29.5376 27.3045 29.3935C27.2631 29.2497 27.1935 29.1162 27.1 29.0012C27.007 28.8867 26.8923 28.7929 26.7631 28.7253C26.6343 28.658 26.4937 28.6182 26.3535 28.6083C24.0561 28.4627 21.7692 28.1774 19.507 27.7543C19.3016 27.7166 19.1058 27.
8006379 18.9308 27.5231C18.7564 27.4085 18.6063 27.2602 18.489 27.0868C18.3721 26.9139 18.2902 26.7195 18.2479 26.5149C18.2055 26.3104 18.2035 26.0993 18.2404 25.902C18.2758 25.6952 18.3515 25.4975 18.4633 25.3202C18.5754 25.1425 18.7216 24.9892 18.8933 24.869C19.0655 24.7486 19.26 24.6643 19.4652 24.6211C19.6707 24.5779 19.8826 24.5768 20.0823 24.6167C26.6344 25.8478 33.3529 25.8478 39.898 24.618C40.1283 24.5717 40.366 24.5779 40.5936 24.6361ZM32.8056 16.183C34.352 17.7552 34.352 20.3006 32.8056 21.8729C31.2543 23.4501 28.7353 23.4501 27.184 21.8729C25.6376 20.3007 25.6376 17.7552 27.184 16.183C28.7353 14.6057 31.2543 14.6057 32.8056 16.183Z" fill="white"></path> </g> <defs> <clipPath id="clip0_3_2"> <rect width="60" height="60" fill="white"></rect> </clipPath> </defs> </svg> </div> </a> <div class="accessibility-panel hidden" role="dialog" aria-modal="true" aria-label="Accessibility Settings" tabindex="-1"> <div class="accessibility-panel-inner"> <div class="accessibility-header"> <p class="accessibility-header-title">Accessibility Menu <span class="accessibility-menu-small-text">(CTRL + U)</span></p> <div class="accessibility-header-controls"> <a role="button" class="accessibility-header-close" aria-label="Close Menu" tabindex="0"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="16" height="16"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5" d="m2.3 2.3 9.4 9.4m-9.4 0 9.4-9.4"></path></svg> </a> </div> </div> <div class="accessibility-body"> <div class="accessibility-feature-grid"> <a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Contrast Mode" data-feature-id="contrast" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon"> <span class="icon-char">◑</span>           </span> <span class="accessibility-feature-name">Contrast Mode</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Highlight Links" data-feature-id="highlight" data-current-step="0" data-steps="1" tabindex="0"> <span class="accessibility-feature-icon">  <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07L13.5 6.5M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07L10.5 17.5"></path> </svg> </span>          </span> <span class="accessibility-feature-name">Highlight Links</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Larger Text" data-feature-id="text-size" data-current-step="0" data-steps="2" tabindex="0"> <span class="accessibility-feature-icon">     <span class="icon-char">T+</span>       </span> <span class="accessibility-feature-name">Larger Text</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Text Spacing" data-feature-id="spacing" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon">      <span class="icon-char">↔</span>      </span> <span class="accessibility-feature-name">Text Spacing</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Dyslexia Friendly" data-feature-id="dyslexia" data-current-step="0" data-steps="1" tabindex="0"> <span class="accessibility-feature-icon">
800        <span class="icon-char">Aa</span>    </span> <span class="accessibility-feature-name">Dyslexia Friendly</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Hide Images" data-feature-id="hide-images" data-current-step="0" data-steps="1" tabindex="0"> <span class="accessibility-feature-icon">           <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="1" y1="1" x2="23" y2="23"></line> <path d="M21 15V5a2 2 0 0 0-2-2H9"></path> <path d="m21 15-5-5L5 21"></path> <path d="M3.6 3.6c-.4.4-.6.9-.6 1.4v14a2 2 0 0 0 2 2h14c.5 0 1-.2 1.4-.6"></path> </svg> </span> </span> <span class="accessibility-feature-name">Hide Images</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Line Height" data-feature-id="line-height" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon">   <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 3h18"></path> <path d="M3 21h18"></path> <path d="m16 16-4 4-4-4"></path> <path d="m12 20V4"></path> <path d="m16 8-4-4-4 4"></path> </svg> </span>         </span> <span class="accessibility-feature-name">Line Height</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Text Align" data-feature-id="text-align" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon">         <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="17" y1="10" x2="3" y2="10"></line> <line x1="21" y1="6" x2="3" y2="6"></line> <line x1="21" y1="14" x2="3" y2="14"></line> <line x1="17" y1="18" x2="3" y2="18"></line> </svg> </span>   </span> <span class="accessibility-feature-name">Text Align</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a role="button" class="accessibility-feature-btn" aria-pressed="false" aria-label="Saturation" data-feature-id="saturation" data-current-step="0" data-steps="3" tabindex="0"> <span class="accessibility-feature-icon">          <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path> </svg> </span>  </span> <span class="accessibility-feature-name">Saturation</span> <span class="accessibility-feature-steps"> <span class="step-dot" data-step-index="1"></span><span class="step-dot" data-step-index="2"></span><span class="step-dot" data-step-index="3"></span> </span> </a><a class="accessibility-feature-btn" href="/accessibility/" aria-pressed="false" aria-label="Accessibility Statement" data-feature-id="statement-page" data-current-step="0" data-steps="0" tabindex="0"> <span class="accessibility-feature-icon">    <span class="icon-char"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path> <polyline points="14 2 14 8 20 8"></polyline> <line x1="16" y1="13" x2="8" y2="13"></line> <line x1="16" y1="17" x2="8" y2="17"></line> <polyline points="10 9 9 9 8 9"></polyline> </svg> </span>        </span> <span class="accessibility-feature-name">Accessibility Statement</span> <span class="accessibility-feature-steps">  </span> </a> </div> </div> <div class="accessibility-footer"> <a role="button" class="accessibility-btn-reset" tabindex="0"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 16" width="16" style="margin-right:8px"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5"><path d="M16.2 8c0 .9-.2 1.9-.5 2.7-.3.8-.8 1.6-1.4 2.2-.6.6-1.3 1.1-2.1 1.5-.8.4-1.7.5-2.6.5-2.6 0-5-1.5-6.2-3.7M2.7 8c0-1 .2-1.9.5-2.7.3-.8.8-1.6 1.4-2.2.6-.6 1.3-1.1 2.1-1.5C7.6 1.2 8.5 1 9.4 1c.9 0 1.8.2 2.6.5.8.4 1.5.9 2.1 1.5"></path><path stroke-linejoin="round" d="m4.9 7-2.5 1.5L1 5.9m13 2.9 2.4-1.6L18 9.6"></path></g></svg>
801Reset Settings
802</a> <button class="accessibility-btn-oversize accessibility-btn-square" aria-label="Toggle Oversized Widget" aria-pressed="false" tabindex="0"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
802ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <line x1="16" y1="8" x2="8" y2="8"></line> <line x1="8" y1="16" x2="16" y2="16"></line> </svg> </button> <button class="accessibility-btn-widget-theme" aria-label="Toggle Widget Theme" tabindex="0"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </button> </div> </div> </div> </div> 
802<script type="module" src="/_astro/Accessibility.astro_astro_type_script_index_0_lang.D0lp6Osc.js"></script>
802 
802<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"9c4cdaed28c847bea872326bc685b3f6","r":1,"spa":2}' crossorigin="anonymous"></script>
802
803</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.