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 & 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 & 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 & 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 & 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 & 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. 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="{"redirectOnSubmit":false,"redirectUrl":null,"webhookUrl":null,"thankYouTitle":null,"thankYouSubtitle":null,"thankYouParagraph1":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 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.