By providing your contact information, you consent to be contacted by Anytime Fitness, LLC, its affiliates, master franchisees and/or its franchisees and their authorized designees, through email, telephone, text message, or by other means, some of which may be from an automated service, as well as any other communication described in our Privacy Policy, which can be found at: https://www.anytimefitness.com/privacy/. For mobile messaging, message and data rates apply and consent is not required to become a member. Data collected will be sent outside your jurisdiction and to the United States and will be governed by our Privacy Policy, as it may be updated or amended. Full terms and conditions can be found at: www.anytimefitness.com or your local Anytime Fitness club.
`,t.innerHTML="TAKE ADVANTAGE TODAY. JOIN AT THE GYM."))):(t=document.querySelector("div.form-body h3"),e=document.querySelector("div[data-join-online-promo-plan-url], li.active[data-join-online-promo-plan-url]"),e&&(o=e.getAttribute("data-join-online-promo-plan-url"),e&&!document.querySelector(".join-online-container")&&(document.querySelector(".step3-content").innerHTML+=`\n
\n
\n
Join Online to Get Started Today
\n
Complete your membership signup in minutes—right now.
`,t.innerHTML="TAKE ADVANTAGE TODAY. JOIN AT THE GYM."))),console.log("you are in the test")})),clearInterval(window.vwoInterval1734538474))}),300);}catch(e) {console.error(e)}
return vwo_$('head')[0] && vwo_$('head')[0].lastChild;})("head")}}, R_736710_453_1_2_0:{ fn:function(log,nonce=''){return (function(x) {
try{
var ctx=vwo_$(x),el;
/*vwo_debug log("Revert","content",""); vwo_debug*/;
el=vwo_$('[vwo-element-id="1736202446197"]');
el.revertContentOp().remove();
} catch(e) {console.error(e)}
try{
var el,ctx=vwo_$(x);
/*vwo_debug log("Revert","addElement","body"); vwo_debug*/(el=vwo_$('[vwo-element-id="1736202446198"]')).remove();
} catch(e) {console.error(e)}
return vwo_$('head')[0] && vwo_$('head')[0].lastChild;})("head")}}, GL_736710_453_pre:{ fn:function(VWO_CURRENT_CAMPAIGN, VWO_CURRENT_VARIATION,nonce = ""){try{!function(){try{var e=function(e){return Object.keys(e).find((function(e){return e.startsWith("__reactInternalInstance$")||e.startsWith("__reactFiber$")}))},n=function(e,n){if(e&&n)return e[n]},t=function(e,n,t){var i=(i=e.nodeName)&&i.toLowerCase();n.stateNode=e,n.child=null,n.tag=e.nodeType===Node.ELEMENT_NODE?5:6,n.type&&(n.type=n.elementType="vwo-"+i),n.alternate&&(n.alternate.stateNode=e),e[t]=n},i=function(e,n){var t=Date.now();!function i(){var l=Object.keys(n).find((function(e){return e.startsWith("__reactProps$")}))||"",r=Date.now();if(l&&n[l])switch(e.name){case"href":n[l].href=e.value;break;case"onClick":n[l].onClick&&delete n[l].onClick;break;case"onChange":n[l].onChange&&n[l].onChange({target:n})}l||3e3 if (window.vwoInterval1733956191) {\n clearInterval(window.vwoInterval1733956191);\n}\nwindow.vwoInterval1733956191 = setInterval(function () {\n if (vwo_$('footer').length) { // ## Or whatever element you want to check for the presence.\n /* CUSTOM CODE */\n vwo_$(document).ready(function ($) {\n vwo_$(\"main\").vwoCss({\"visibility\":\"hidden !important\"});\n // Global Step Actions\n let form = document.querySelector('section.form');\n if (form) form.style.background = \"white\";\n let firstBridge = document.querySelector('.bridge');\n if (firstBridge) firstBridge.style.background = \"#6E38D5\";\n let oldAccountSpan = document.querySelector('.step-header .text-large span');\n let cityDifferentiator = document.querySelector('.nav li:first-child a');\n if (oldAccountSpan) oldAccountSpan = oldAccountSpan.textContent;\n const oldAccountHeading = document.querySelector('.step-header');\n if (oldAccountHeading) oldAccountHeading.innerHTML = `${cityDifferentiator.textContent}
Join Now
`;\n const iconCheckElements = document.querySelectorAll(\".step-label .icon-check\");\n iconCheckElements.forEach((icon, index) => {\n icon.textContent = `${index + 1}`;\n icon.classList.remove('icon-check');\n });\n let bridgeSpans = document.querySelectorAll(\".bridge\");\n let newBridgeCheck = document.querySelector(\".new-bridge\");\n !newBridgeCheck && bridgeSpans.forEach((bridgeSpan) => {\n let newBridgeSpan = document.createElement(\"span\");\n newBridgeSpan.classList.add('bridge', 'new-bridge');\n bridgeSpan.parentNode.insertBefore(newBridgeSpan, bridgeSpan.nextSibling);\n });\n\n let currentUrl = window.location.href;\n // Disclosure\n if (currentUrl.toLowerCase().includes(\"plans\")) {\n let labelElement = document.querySelector('label[for=\"phoneNumber\"]');\n if (labelElement) labelElement.innerHTML = 'Mobile Phone Number*';\n if (vwo_$('footer.signup .disclosure').length <= 0) {\n vwo_$('footer').prepend(\n `
\n
Terms & Conditions
\n
By providing your contact information, you consent to be contacted by Anytime Fitness, LLC, its affiliates, master franchisees and/or its franchisees and their authorized designees, through email, telephone, text message, or by other means, some of which may be from an automated service, as well as any other communication described in our Privacy Policy. For mobile messaging, message and data rates apply and consent is not required to become a member. Data collected will be sent outside your jurisdiction and to the United States and will be governed by our Privacy Policy, as it may be updated or amended. Full terms and conditions can be found at: www.anytimefitness.com or your local Anytime Fitness club.\n
\n
For California Residents
\n
Please review if you are a California resident, and to comply with Section 1798.100(b) of the California Consumer Privacy Act. For information regarding the categories of personal information collected about you, and the purposes for which your information will be used, please visit Anytime Fitness, LLC’s Privacy Notice for California Residents.
`\n );\n }\n\n vwo_$('footer.signup.forms').css('padding', '0 0 4rem');\n }\n\n\n // Account\n if (currentUrl.toLowerCase().includes(\"account\")) {\n /* EDITELEMENT */\n vwo_$(\".form-headline\").html(\"Create Your Account\");\n /* REMOVE */\n vwo_$(\".btn-clear\").vwoCss({ \"display\": \"none !important\" });\n }\n\n // Address\n if (currentUrl.toLowerCase().includes(\"address\")) {\n /* EDITELEMENT */\n vwo_$(\".form-headline\").html(\"Enter Address\");\n const bridgeSpans = document.querySelectorAll('.bridge');\n // Loop through the first 3 bridge spans and change their background color\n for (let i = 0; i < 3 && i < bridgeSpans.length; i++) {\n bridgeSpans[i].style.backgroundColor = '#6E38D5';\n }\n if (vwo_$('.margin-bottom').length <= 0) {\n vwo_$('.form-header').append('
* Indicates a required field
');\n }\n }\n\n // Review\n if (currentUrl.toLowerCase().includes(\"review\")) {\n vwo_$(\".form-headline\").html(\"Review Your Plan\");\n let elements = document.querySelectorAll('.display-plans .item');\n vwo_$(\".display-plans .item\").vwoCss({ \"box-shadow\": \"none\", \"border\": \"1px solid #707070\", \"border-radius\": \"8px\" });\n const bridgeSpans = document.querySelectorAll('.bridge');\n // Loop through the first 5 bridge spans and change their background color\n for (let i = 0; i < 5 && i < bridgeSpans.length; i++) {\n bridgeSpans[i].style.backgroundColor = '#6E38D5';\n }\n document.querySelectorAll('h4 br').forEach(function (brElement) {\n brElement.remove();\n });\n document.querySelectorAll('p.disclosure').forEach(function (paragraph) {\n if (paragraph.innerHTML.trim() === 'You will have access to over 4,000 Anytime Fitness clubs worldwide! How cool is that?') {\n paragraph.textContent = paragraph.textContent.replace('4,000', '5,000');\n }\n });\n /* EDITELEMENT */\n vwo_$(\".bod > ul:nth-of-type(1) > li:nth-of-type(4)\").vwoCss({ \"border-bottom-style\": \"none !important\" });\n }\n\n // Terms\n if (currentUrl.toLowerCase().includes(\"terms\")) {\n vwo_$(\".form-headline\").html(\"Terms & Conditions\");\n const bridgeSpans = document.querySelectorAll('.bridge');\n // Loop through the first 7 bridge spans and change their background color\n for (let i = 0; i < 7 && i < bridgeSpans.length; i++) {\n bridgeSpans[i].style.backgroundColor = '#6E38D5';\n }\n // Select the first paragraph element\n const firstParagraph = document.querySelector('.terms-segment p');\n\n // Select the first child paragraph within the first paragraph element\n const firstChildParagraph = firstParagraph.querySelector('p');\n\n // Remove the tags from the first child paragraph\n const strongTags = firstChildParagraph.querySelectorAll('strong');\n strongTags.forEach(tag => tag.outerHTML = tag.innerHTML);\n\n // Check if you need to replace the content without the tags inside the first paragraph child\n const searchText = \"MEMBERS’ RIGHT TO CANCEL:\";\n const textContent = firstChildParagraph.textContent;\n const index = textContent.indexOf(searchText);\n\n if (index !== -1) {\n const strongText = textContent.substring(index, index + searchText.length);\n const newHTML = textContent.replace(strongText, `${strongText}`);\n\n firstChildParagraph.innerHTML = newHTML;\n }\n }\n\n // Agreement Actions on Terms and Success pages\n const download = document.querySelectorAll('span.icon.icon-cloud-download');\n if (download) download.forEach(spanElement => {\n // Create a new SVG element\n const svgElement = document.createElement('svg');\n svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svgElement.setAttribute('class', 'h-5 w-5');\n svgElement.setAttribute('viewBox', '0 0 20 20');\n svgElement.setAttribute('fill', 'currentColor');\n svgElement.setAttribute('height', '20px'); // Set height to 20px\n svgElement.setAttribute('width', '20px'); // Set width to 20px\n spanElement.parentNode.innerHTML = ``;\n });\n const printer = document.querySelectorAll('span.icon.icon-print2');\n if (printer) printer.forEach(spanElement => {\n // Create a new SVG element\n const svgElement = document.createElement('svg');\n svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svgElement.setAttribute('class', 'h-5 w-5');\n svgElement.setAttribute('viewBox', '0 0 20 20');\n svgElement.setAttribute('fill', 'currentColor');\n svgElement.setAttribute('height', '20px'); // Set height to 20px\n svgElement.setAttribute('width', '20px'); // Set width to 20px\n svgElement.innerHTML = `\n \n `;\n spanElement.parentNode.innerHTML = ``;\n });\n let anchorElements = document.querySelectorAll('.agreement-actions a');\n if (anchorElements) anchorElements.forEach(anchorElement => {\n anchorElement.setAttribute('href', 'javascript:;');\n });\n\n // Billing\n if (currentUrl.toLowerCase().includes(\"billing\")) {\n const bridgeSpans = document.querySelectorAll('.bridge');\n // Loop through the first 9 bridge spans and change their background color\n for (let i = 0; i < 9 && i < bridgeSpans.length; i++) {\n bridgeSpans[i].style.backgroundColor = '#6E38D5';\n }\n vwo_$(\".form-headline\").html(\"Payment\");\n vwo_$('.form-headline').css('text-align', 'left');\n if (vwo_$(\"#billing .secure-payment\").length <= 0) {\n vwo_$(\"#billing .icon-lock.pull-left\").append(`
Secure Payment
`);\n }\n vwo_$(\"#billing .icon-lock.pull-left\").each(function () {\n var destP = vwo_$(\"#main\"),\n dest = vwo_$(\"#abcPayPage\");\n if (dest.length)\n dest.before(this);\n else\n destP.append(this);\n });\n vwo_$(\"#billing p.text-left:not(.disclosure)\").each(function () {\n var dest = vwo_$(\"#abcPayPage\");\n if (dest.length)\n vwo_$(\"#abcPayPage\").before(this);\n this.classList.add(\"mb-0\", \"mb-lg-3\", \"pb-4\");\n });\n // Select the first element to be wrapped\n var firstElement = document.querySelector('#billing .icon-lock.pull-left');\n\n // Select the second element to be wrapped\n var secondElement = document.querySelector('#billing p.text-left:not(.disclosure)');\n\n // Create a new div element with the class \"bg-light-gray\"\n var divElement = document.createElement('div');\n divElement.className = 'bg-dark-purple mx-auto';\n if (!vwo_$('.bg-dark-purple.mx-auto').length) {\n // Insert the created div element before the first element\n firstElement.parentNode.insertBefore(divElement, firstElement);\n\n // Move the first to the newly created div\n divElement.appendChild(firstElement);\n\n // Move the second element inside the newly created div\n divElement.appendChild(secondElement);\n }\n let container = document.querySelector('.form-container.form-width-sml:nth-of-type(1)');\n\n // Select all the ` ` elements inside the container\n let brElements = container.querySelectorAll('br');\n\n // Determine the number of ` ` elements to remove\n let elementsToRemove = 3;\n\n // Remove the last three ` ` elements\n for (let i = brElements.length - 1; i >= 0 && elementsToRemove > 0; i--) {\n container.removeChild(brElements[i]);\n elementsToRemove--;\n }\n let element = document.querySelector('#billing .form-footer .btn-rounded');\n\n // Change the text content to \"Submit\"\n if (element) {\n element.textContent = \"Submit\";\n }\n }\n\n // Success\n if (currentUrl.toLowerCase().includes(\"success\")) {\n // Add font awesome links\n const linkElement = document.createElement('link');\n\n // Set attributes for the link element\n linkElement.rel = 'stylesheet';\n linkElement.href = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css';\n\n // Append the link element to the head of the HTML document\n document.head.appendChild(linkElement);\n const heroGymElement = document.querySelector('section.hero.hero-gym');\n if (heroGymElement) heroGymElement.classList.add('bg-line-blend-aqua-5');\n const successMsg = document.querySelector('.success-msg');\n if (vwo_$('.container.bg-white.text.center').length <= 0) {\n successMsg.style.marginTop = 0;\n successMsg.innerHTML = `
\n
\n
\n
Success! Congrats on becoming a member.
\n
We sent a confirmation email which includes your membership confirmation and receipt.
\n
\n
\n
`;\n }\n vwo_$(\".whats-next > h2:nth-of-type(1) > strong:nth-of-type(1) > span:nth-of-type(1)\").html(\"Next Steps\");\n vwo_$(\"h2 strong span\").vwoCss({ \"font-size\": \"1.25rem\" });\n vwo_$(\"#success figcaption.hero-content.slim\").each(function () {\n if (vwo_$(\".success-msg .col\").length) vwo_$(\".success-msg .col\").append(this);\n });\n const whatsNextParent = document.querySelector('.whats-next');\n\n if (whatsNextParent) {\n // Create a new section element with the class 'bg-gray' and a div with the class 'container'\n const containerDiv = document.createElement('div');\n containerDiv.classList.add('container', 'my-4');\n\n const sectionElement = document.createElement('section');\n sectionElement.classList.add('bg-gray', 'py-5');\n\n // Move all children of .whats-next into the new section.bg-gray element\n Array.from(whatsNextParent.children).forEach(childElement => {\n\n // Check if the child element has the classes 'd-block', 'd-sm-flex', and 'py-4'\n if (!childElement.classList.contains('d-block') && !childElement.classList.contains('d-sm-flex') && !childElement.classList.contains('py-4')) {\n containerDiv.appendChild(childElement.cloneNode(true));\n whatsNextParent.removeChild(childElement);\n }\n });\n\n // Append the section.bg-gray element into the div.container\n sectionElement.appendChild(containerDiv);\n\n const heroElement = document.querySelector('.hero.hero-gym');\n // Append the new container with filtered elements to the body of the document\n if (heroElement) heroElement.insertAdjacentElement('afterend', sectionElement);\n }\n const leadParagraph = document.querySelector('.bg-gray p.lead');\n const phoneNumber = document.querySelector('.bg-gray a.phone').innerHTML;\n if (leadParagraph) {\n leadParagraph.classList.add('px-0', 'px-lg-5', 'px-xl-0');\n // Update the content of the paragraph with the dynamically fetched phone number\n leadParagraph.innerHTML = `Our gym staff will reach out to you to schedule a time to pick up your access passes.\n Or if you’re excited to get in here, just call us at ${phoneNumber}.`;\n }\n /* EDITELEMENT */\n vwo_$(\".mr-4 > h2:nth-of-type(1) > strong:nth-of-type(1) > span:nth-of-type(1)\").html(\"Download the AF app\");\n /* EDITELEMENT */\n vwo_$(\".my-4 > div:nth-of-type(1) > p:nth-of-type(1) > span:nth-of-type(1)\").html(\"Using the AF App, you can access the club 24/7 as well as any Anytime Fitness worldwide.\");\n if (vwo_$('.next-step-1').length <= 0) {\n const iconGpsMarkers = document.querySelector('.icon-gps-markers');\n const iconGroupEx = document.querySelector('.icon-groupex-fill');\n const iconMobilePhone = document.querySelector('.icon-mobile-phone');\n if (iconGpsMarkers) {\n // HTML content to be inserted\n const htmlContent = '
1. Get Your Access Pass
';\n // Insert the HTML content adjacent after the .icon-gps-markers element\n iconGpsMarkers.insertAdjacentHTML('afterend', htmlContent);\n }\n if (iconGroupEx) {\n // HTML content to be inserted\n const htmlContent = '
2. Get FREE Consultation
';\n // Insert the HTML content adjacent after the .icon-gps-markers element\n iconGroupEx.insertAdjacentHTML('afterend', htmlContent);\n }\n if (iconMobilePhone) {\n // HTML content to be inserted\n const htmlContent = '
3. Download the AF App
';\n // Insert the HTML content adjacent after the .icon-gps-markers element\n iconMobilePhone.insertAdjacentHTML('afterend', htmlContent);\n }\n }\n const elements = document.querySelectorAll('.bg-gray .container .d-flex.align-items-start');\n\n if (elements.length > 0) {\n // Create a new div element with the class 'd-flex'\n const divWrapper = document.createElement('div');\n divWrapper.classList.add('d-flex', 'next-steps', 'flex-column', 'flex-md-row', 'mt-4', 'pt-2');\n\n // Move each selected element into the new div container\n elements.forEach(element => {\n // Create a copy of the element without the 'd-flex' and 'align-items-start' classes\n const elementCopy = element.cloneNode(true);\n elementCopy.classList.remove('d-flex', 'align-items-start');\n\n // Append the updated element to the new div container\n divWrapper.appendChild(elementCopy);\n\n // Remove the element with classes 'd-flex align-items-start' from its original parent\n element.parentNode.removeChild(element);\n });\n\n const lead = document.querySelector('.bg-gray .lead');\n // Append the new container with filtered elements to the body of the document\n if (lead) lead.insertAdjacentElement('afterend', divWrapper);\n }\n const removeFlex = document.querySelectorAll('.bg-white .d-block.d-sm-flex.py-4');\n\n removeFlex.forEach(element => {\n // Check if the element has the class 'd-sm-flex'\n if (element.classList.contains('d-sm-flex')) {\n element.classList.remove('d-sm-flex'); // Remove the class 'd-sm-flex'\n }\n });\n vwo_$(\"#success .staffed-hours\").each(function () {\n if (vwo_$(\".cta\").length) {\n const cta = document.querySelector('.cta');\n if (cta) cta.insertAdjacentElement('afterend', this);\n }\n });\n // Move Facebook Inside the column\n vwo_$(\"#success section.bg-white p.text-center a\").vwoCss({ \"display\": \"none\" });\n const newAElement = document.createElement('a');\n const facebookLink = document.querySelector(\"#success section.bg-white p.text-center a\").href;\n newAElement.classList.add('cta-item');\n newAElement.href = facebookLink;\n newAElement.setAttribute('data-toggle', 'lightbox');\n newAElement.setAttribute('data-gallery', 'gym-photos');\n\n // Add the inner HTML content to the anchor element\n newAElement.innerHTML = '' +\n '
Join Facebook Page
';\n\n // Select the parent element with the class .cta and the second col-sm-4 element\n const ctaParent = document.querySelector('.cta');\n const secondCol = ctaParent.querySelector('.col-sm-4:nth-of-type(2)');\n\n if (ctaParent && secondCol) {\n // Append the new anchor element to the second col-sm-4 element\n secondCol.appendChild(newAElement);\n }\n const container = document.querySelector('.cta .row');\n\n if (container) {\n // Get the col-sm-4 elements\n const colElements = container.querySelectorAll('.col-sm-4');\n\n if (colElements.length >= 2) {\n // Swap the position of the first two col-sm-4 elements in the container\n const firstElement = colElements[0];\n const secondElement = colElements[1];\n\n // Insert the second element before the first element to switch positions\n container.insertBefore(secondElement, firstElement);\n }\n }\n const iconBinoculars = document.querySelector('.cta span.icon.icon-binoculars');\n if (iconBinoculars) {\n const newIcon = document.createElement('i');\n newIcon.classList.add('icon-binoculars2');\n iconBinoculars.parentNode.replaceChild(newIcon, iconBinoculars);\n }\n const iconPin = document.querySelector('.cta span.icon.icon-pin');\n if (iconPin) {\n const newIcon = document.createElement('i');\n newIcon.classList.add('icon-geo');\n iconPin.parentNode.replaceChild(newIcon, iconPin);\n }\n const staffedHoursHeader = document.querySelector('.staffed-hours h2');\n if (staffedHoursHeader) {\n // Capitalize only the first letter of the text content\n let textContent = staffedHoursHeader.textContent;\n staffedHoursHeader.textContent = textContent.charAt(0).toUpperCase() + textContent.slice(1).toLowerCase();\n }\n vwo_$(\".mr-4\").vwoAttr({ \"class\": { \"removedClasses\": [\"mr-4\"] } });\n vwo_$(\".d-block > div:nth-of-type(2)\").vwoAttr({ \"class\": { \"addedClasses\": [\"d-flex\", \"flex-column\", \"flex-sm-row\", \"app-links\", \"justify-content-center\", \"mt-4\", \"pt-2\"] } });\n }\n\n // Contact Us\n if (currentUrl.toLowerCase().includes(\"contactus\")) {\n let aside = document.querySelector('aside');\n if (aside) aside.style.display = 'none';\n const diffText = document.querySelector('.navbar li:nth-of-type(1) a').innerHTML;\n const formHeader = document.querySelector('.form-header');\n\n if (diffText && formHeader) {\n // Create a new h1 element with class 'step-header' containing the diffText\n const newH1 = document.createElement('h1');\n newH1.classList.add('step-header', 'text-center');\n newH1.innerHTML = diffText;\n\n // Create another h1 element with text 'Join Now'\n const joinNowH1 = document.createElement('h1');\n joinNowH1.innerHTML = 'Join Now';\n\n // Append the joinNowH1 element before the new h1 element and diffText\n newH1.append(joinNowH1);\n\n // Prepend the new h1 element with class 'step-header' to the form header\n formHeader.prepend(newH1);\n\n }\n }\n\n if (currentUrl.toLowerCase().includes(\"plans\")) {\n let modalElement = document.createElement(\"div\");\n modalElement.className = \"modal\";\n modalElement.id = \"afpModal\";\n modalElement.setAttribute(\"tabindex\", \"-1\");\n modalElement.setAttribute(\"role\", \"dialog\");\n modalElement.setAttribute(\"aria-labelledby\", \"afpModal\");\n modalElement.setAttribute(\"aria-hidden\", \"true\");\n\n let modalDialog = document.createElement(\"div\");\n modalDialog.className = \"modal-dialog\";\n modalDialog.setAttribute(\"role\", \"document\");\n\n let modalContent = document.createElement(\"div\");\n modalContent.className = \"modal-content\";\n\n let modalHeader = document.createElement(\"div\");\n modalHeader.className = \"modal-header\";\n let h5Title = document.createElement(\"h5\");\n h5Title.className = \"modal-title\";\n h5Title.id = \"afpModal\";\n h5Title.innerText = \"*APPLE FITNESS+ TERMS & CONDITIONS\";\n let closeButton = document.createElement(\"button\");\n closeButton.type = \"button\";\n closeButton.className = \"close\";\n closeButton.id = \"closeModalBtn\";\n closeButton.setAttribute(\"data-dismiss\", \"modal\");\n closeButton.setAttribute(\"aria-label\", \"Close\");\n closeButton.innerHTML = `×`;\n\n modalHeader.appendChild(h5Title);\n modalHeader.appendChild(closeButton);\n\n let modalBody = document.createElement(\"div\");\n modalBody.className = \"modal-body\";\n modalBody.innerHTML = `\n
Fitness+ Trial Offer: Offer open to new Anytime Fitness®️ customers, local residents to participating locations in the United States & Canada, only. Photo ID required. Offer valid for 1 or 7 days’ (as applicable) access to participating Anytime Fitness location plus up to 3 months access to Apple Fitness+℠ beginning on eligible device activation. Prior Fitness+ subscribers will qualify for 2 months. Fitness+ requires a subscription & Apple ID with payment card on file. After trial ends, payment card on file will be charged $9.99/month & subscription automatically renews until cancelled. Apple may change the subscription price at its discretion, other terms & Apple Privacy Policy apply; see the applicable terms. Offer requires use of the Anytime Fitness mobile. Offer limited to 1 subscription per Family Sharing group, Apple IDs already associated with a trial or subscription for Fitness+ are not eligible. Valid only for Fitness+ in the United States & Canada. Fitness+ requires iPhone 8 or later with iOS 16.1 or later, or Apple Watch Series 3 or later with watchOS 7.2 or later paired with iPhone 6s or later with iOS 14.3 or later. Fitness+ is a registered trademark of Apple Inc. Apple is not a sponsor of this promotion. No cash value, not valid with any other offer, no refunds or credits. Each Anytime Fitness location is independently owned & operated. Void where prohibited.
\n
Existing Anytime Members: Offer open to existing Anytime Fitness®️ members of participating locations in the United States & Canada, only. Offer valid for access to Apple Fitness+℠ access begins on eligible device activation & continues for 3 months. Fitness+ requires a subscription & Apple ID with payment card on file. Reactivation of the offer is required every 3 months to maintain access. If free access ends payment card on file will be charged $9.99/month & subscription automatically renews until cancelled. Apple may change the subscription price at its discretion, other terms & Apple Privacy Policy apply; see the applicable terms. Offer requires use of the Anytime Fitness mobile application. Offer limited to 1 subscription per Family Sharing group, Apple IDs already associated with a trial or subscription for Fitness+ are not eligible. Valid only for Fitness+ in the United States & Canada. Fitness+ requires iPhone 8 or later with iOS 16.1 or later, or Apple Watch Series 3 or later with watchOS 7.2 or later paired with iPhone 6s or later with iOS 14.3 or later. Fitness+ is a registered trademark of Apple Inc. Apple is not a sponsor of this promotion. No cash value, not valid with any other offer, no refunds or credits. Each Anytime Fitness location is independently owned & operated. Void where prohibited.
\n `;\n\n modalContent.appendChild(modalHeader);\n modalContent.appendChild(modalBody);\n\n modalDialog.appendChild(modalContent);\n\n modalElement.appendChild(modalDialog);\n\n document.body.appendChild(modalElement);\n\n const modal = document.getElementById('afpModal');\n const openModalBtn = document.getElementById('openModalBtn');\n // const openModalBtn = document.querySelector('.btn-modal');\n const closeModalBtn = document.getElementById('closeModalBtn');\n const modalWindow = document.querySelector('.modal-dialog');\n // const cancelBtn = document.getElementById('cancelBtn');\n // const confirmBtn = document.getElementById('confirmBtn');\n\n // Open modal function\n function openModal() {\n modal.style.display = 'block';\n }\n\n // Close modal function\n function closeModal() {\n modal.style.display = 'none';\n }\n\n // Event listeners for opening and closing the modal\n openModalBtn && openModalBtn.addEventListener('click', openModal);\n closeModalBtn && closeModalBtn.addEventListener('click', closeModal);\n // cancelBtn.addEventListener('click', closeModal);\n\n // Close modal if user clicks outside of it\n window.addEventListener('click', function (event) {\n if (event.target === modalWindow) {\n closeModal();\n }\n });\n\n // Optional: Close modal with Escape key\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Escape' && modal.style.display === 'block') {\n closeModal();\n }\n });\n\n\n let elements = document.querySelectorAll('.display-plans .item');\n elements.forEach(element => {\n element.style.boxShadow = '0 0 10px 0 rgba(0, 0, 0, 0.2)';\n });\n }\n\n // Miscellaneous Global Styling\n /* EDITELEMENT */\n vwo_$(\".p-2 > p:nth-of-type(2)\").vwoAttr({ \"class\": { \"removedClasses\": [\"mb-0\"] } });\n /* EDITELEMENT */\n vwo_$(\".step-header\").vwoAttr({ \"class\": { \"addedClasses\": [\"mt-md-4\"] } });\n /* EDITELEMENT */\n vwo_$(\".form-footer\").vwoAttr({ \"class\": { \"addedClasses\": [\"mt-4\", \"pt-2\"] } });\n\n /* CONTENT */\n vwo_$(\"#plans > div:nth-of-type(1) > div:nth-of-type(1) > h1:nth-of-type(1) > strong:nth-of-type(1)\").replaceWith(\"Select the plan that works for you.\");\n /* EDITELEMENT */\n vwo_$(\"#plans > div:nth-of-type(1) > p:nth-of-type(1)\").vwoAttr({ \"class\": { \"addedClasses\": [\"text-gray\"], \"removedClasses\": [\"text-white\"] } });\n /* EDITELEMENT */\n vwo_$(\".col-md-4 > a:nth-of-type(1)\").vwoAttr({ \"class\": { \"addedClasses\": [\"btn-outline-primary\", \"fw-800\"], \"removedClasses\": [\"btn-white\"] } });\n /* CONTENT */\n vwo_$(\".disclosure .mt-0\").replaceWith(\"
When it comes to working out with kettlebells, the swing is everything. It’s one of those pieces of equipment that, when used properly—benefits abound, but if your form is off—it becomes a fail fast. That’s why we’ve got all the information you need, complete with instructions and workout content, to master this move.
So, let’s get to learning until we’re all swing kings (and queens).
Kettlebell 101
Kettlebell swing training is an exercise that dates back to ancient Greece. In fact, there’s a 143-pound kettlebell on display in the Museum of Olympia in Athens! In the 1700s, kettlebells emerged in Russia as a weighing tool for grains and goods. But as curious humans do, they decided to pick them up and start throwing them around for entertainment, and that’s when they noticed they were building muscle as well, and that the product made for a serious workout for the entire body.
Why Kettlebell Training?
Unlike a dumbbell or other weights, a kettlebell’s center of mass extends beyond the hand. Kettlebells can be swung, thrown, juggled, pressed, held, moved, and manipulated in so many ways. Because they can be thrown around a bit more than dumbbells, they’re a great piece of equipment for ballistic exercises — those that involve explosive movements (think swinging and jumping) and are designed to build your explosive strength.
Kettlebell weights are small and portable and can be incorporated into all aspects of athletic and fitness training, making them a really valuable piece of equipment. Ultimately, kettlebells are a great way to burn calories, work towards fat loss, increase your cardiovascular health and build muscle mass in just about every muscle group, plus they help maintain joint health, mobility, and flexibility. A study by the American Council on Exercise (ACE) found that participants of an eight-week kettlebell training program increased their aerobic capacity, improved balance and dramatically increased core strength. Score!
Getting Started with Kettlebell Swings
The first thing to know about kettlebell swing workouts is that there are two main types: the Russian Kettlebell Swing and the American Kettlebell Swing. You might not immediately see the difference because they look a lot alike…especially because many people struggle with good form when they’re doing kettlebell swing training. But we’re here to teach you the proper form, so you know exactly how to kettlebell swing (or kb swing) with explosive strength.
We’ll start with the Russian swing for this article’s content, because that’s where it all started, but also because it’s safe and effective for most people.
And before we go further, there’s something we want to make abundantly clear in order for you to achieve full kettlebell swing benefits…it’s all in the hips. More specifically, in the hip-hinge movement.
The Russian Swing
Stand with your legs about armpit-width apart.
Grasp the kettlebell handle and place your thumbs tip to tip.
Hinge forward with a straight spine (to protect your lower back muscles and the entire posterior chain) placing your elbows at the hip flexor crease. Then fold, pushing your hips back, making a “hand sandwich.”
When you’re ready, place the kettlebell 10-12 inches out in front of you.
Tip the kettlebell slightly back, then fire.
Hike those hips forward and swing the bell upward to a full vertical position.
Remember, this is an explosive movement. Kettlebells are heavy, so momentum is your friend… but as always, proper form takes priority over using a heavy weight, so make sure you’re using the right weight. Keep those feet planted — letting them lift off the ground is a common mistake that beginners make. Don’t blast off so hard that you’re taking a step or even a jump…not for this variation, anyway. Keep your hips & knees fully extended, elbows soft, shoulder blades back and shoulders square to protect the shoulder joint and make sure the bottom of the kettlebell points forward.
On a tension scale of 1 to 10, you should be at a 9 at the top of the swing and relaxed to a 1 at the bottom. If it feels like you are lifting with your arms and not using the force of the hip hinge (a common problem), try tucking your elbows in so that you have to use your hip power. Or ask a personal trainer to keep an eye on your form. When you pull with your arms rather than your posterior chain muscles, you miss out on all the benefits of this exercise, including the fat loss and calorie burn effects! The below video is a great demonstration of a proper swing.
Note: Keep your core muscles tight — not only does this build core stability, but it helps you avoid overusing your back. The kettlebell needs to stay high up in the hips, and the movement needs to come from the hip hinge and hip drive. If you think you’re bending too low, place a medicine ball between your feet and stay clear of hitting it.
Two-Handed Swing in Action
Regardless of what initially comes to your mind when you think about exercise, it’s likely that there is an exercise out there that you will enjoy. It can help to think in terms of movement versus exercise. Many people picture hours on the treadmill when they think about exercise, but that certainly doesn’t have to be the case. There are all kinds of exercises you can do to get your body moving but generally, they should fall into the cardio/aerobic category or strength training category. Read on to learn more about each specific category of exercise.
The American Swing
The American Swing is almost identical to the Russian swing, but the most important information for the difference in these two kettlebell exercises is that for American style swings, you will raise the bell above your head instead of shoulder height. The American Swing is more commonly used in CrossFit workouts.
There are three key points to note at the top of the swing:
Keep your arms parallel to your ears.
Keep your neck aligned with your arms. (Many people push their chin forward, which could strain your neck and cervical spine. Think of a tall board connecting to the entire back of the body at the top of the move.)
Keep your feet slightly wider than hip width apart.
And that’s it. Just by raising your kettlebell high above your head, rather than out in front of you, you have achieved an American Swing. (And this version also challenges your upper back muscles, so know that you’re working the entire back of the body.)
Which is Better?
We know you’ve been waiting for this information… What’s better — the American style swing or the Russian swing? The answer is whichever works best for you! Both are awesome, functional movements that build explosive strength, and would be a great addition to any training program. If you’re trying to pick one single exercise, one thing to keep in mind is that the American swing incorporates more movement and therefore can build more explosive strength, since you’re swinging it up above your head. Essentially, more movement means more bang for your buck. But, if shoulder mobility is an issue for you (one exercise we love for strengthening shoulders is the standing plank), or if you’re still trying to master the hip hinge, the Russian kettlebell swing is still a great, effective kettlebell move. It’s also the safest and simplest, so you can be more than content with having this one in your workout routine.
In studying the different types of swings, you might also read about the hardstyle swing. Hardstyle kettlebell swings are no different from a regular kettlebell swing; however, in a hardstyle swing, you’re trying to keep your body as tense as possible to maximize the tension you’re creating and your explosive strength. Hardstyle kettlebell swings vs. softstyle are an advanced step that you don’t need to study until you’ve really mastered the hip hinge and this move.
How to Amplify Your Swing
Once you’ve mastered the two-handed swing, try the next progression—the single-arm swing! Loading the body unilaterally increases the body’s ability to fire its core in a really interesting way. Think of how often we carry things on one side of the body (groceries, a child, etc.), and our core and spine are challenged to keep us balanced and upright in a neutral position. It’s the same with this single-arm swing.
Single Arm Kettlebell Swing
The standing position here is the same: legs shoulder-width apart, but this time we’ll only use one hand.
Start with the kettlebell 10-12 inches out in front of you.
Keep the non-working arm extended back.
Hike!
Grip options: point your thumb forward or backward (thumbs down is used in the below video). Whatever thumb position you choose, it will remain that way on the upswing. This creates more rotation in the shoulder. Coming out of rotation happens naturally on the upswing and is proper form.
Your elbow and forearm will remain in contact with your pelvis during the hike back.
The non-working arm travels with the body, just like it would if you jumped or ran. (You gain 20-30% more hip extension when your non-working arm travels with you.)
Don’t get too wild with your form! Retract your lifting shoulder and square both of them to protect your shoulder joints. Sometimes the weight and momentum can pull you forward during kettlebell exercises, compromising the effectiveness and safety of the move, so protect that spine (lower and upper back) especially at the bottom of the kettlebell swing by remaining mindful and in control.
One-Arm Swing in Action
Wrapping Up
Kettlebells are a sneaky form of cardio! Add 10 swing reps into each circuit of your workout.
The swing and deadlift are the best movements to learn first, and while kettlebells really work your upper body, you can incorporate them very easily into a lower body or full-body workout using vertical jumps, squats, pushups, and more!
The more you use kettlebells, the more natural the movements of this great exercise tool will feel.
Curious about how to build kettlebells into your routine? Having a realistic plan is one of the best ways to stay consistent. Intentionally carve out time in your schedule to get that recommended 30 to 60 minutes of exercise. If you don’t intentionally set that time aside, you will find it difficult to find time throughout your day. A beginner workout plan should include both cardio and strength training. Choose your cardio of choice and make a commitment to do it three to five times per week. It can be as simple as getting out for a long walk or taking a 60-minute workout class that you enjoy. On strength days, plan to spend about 45-60 minutes lifting weights for a total body workout.
One thing we love about kettlebell workouts is that you can tweak this full-body exercise so that it meets your needs. If you’re looking for an impactful exercise that builds explosive strength, you’ll want to use a heavy kettlebell so that you can maximize your power output. But if you’re more concerned with getting your heart rate up to build cardiovascular endurance and practicing good form, a lighter weight might be best.
Free 7-Day Passes are only available for new customers who live or work nearby. Most Anytime Fitness locations have a drop-in charge for non-residents who want to use the gym for a short period of time. If you cannot provide proof of local residency, you may be charged a fee to use this club.
Free {{nday}}-Day Passes are only available for new customers who live or work nearby. Most Anytime Fitness locations have a drop-in charge for non-residents who want to use the gym for a short period of time. If you cannot provide proof of local residency, you may be charged a fee to use this club.