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(\"
Virtual Workouts • Health Coaching Advice • Community
15-Minute Beginner Rowing Machine Workout to Improve Endurance
The rowing machine is a versatile workout tool for endurance and strength. Try this beginner rowing workout and bonus full-body circuit to improve your form.
The rowing machine is an often overlooked piece of gym equipment — but it can be a valuable addition to any gym routine, no matter your fitness level or goals. Don’t skip out on the full-body benefits of one of the most versatile exercise machines. Let’s talk about why rowing is a good workout. We’ll cover:
Is rowing a good workout for beginners?
The benefits of rowing
How to use the rowing machine
A 15-minute beginner rowing machine workout
How to incorporate rowing into your training routine
Is rowing a good workout for beginners?
Rowing machine workouts are measured by distance and effort — not by weight or rep count — so they are well suited for any fitness level and ability. The low-impact movement doesn’t take long to master, and you can control the difficulty and easily adjust the intensity throughout your workout.
As you improve your strength and cardiovascular endurance with the rower, you can gradually increase your stroke rate — or the speed at which you row — to up the intensity and your results.
Benefits of rowing machine workouts
Here are some of the other benefits of rowing machine workouts.
Rowing is a full-body workout. Rowing targets every major muscle group in your body, including your back, legs, shoulders, arms, and core. It offers an effective combination of cardio and strength training in one machine.
The rowing machine offers a high-intensity, low-impact workout. Unlike other cardio machines like treadmills, rowing has a minimal impact on your joints, so you can work out longer and avoid injury.
Rowers are efficient and versatile. Rowers can provide a full-body workout in as little as 10 minutes or be a tool for your warm-up or cooldown routine.
How to use the rowing machine
In addition to resistance and stroke rate, using proper form is key to maximizing the benefits of rowing machine workouts. Rowing should feel like one fluid motion, but there are a few critical steps to get the results you want and prevent injury. Let’s break it down.
Step 1: The catch
In the starting position, your body is upright and your back is straight. You’ll begin with your knees bent and hands holding the handles in front of your body, with your arms straight out but relaxed. Avoid hunching your shoulders and keep your core engaged.
Step 2: The drive
During the drive, you’ll start to push away from the machine with your lower body, using your hips to generate power. While you push away, allow your arms to follow naturally. Once your arms cross your knees, you’ll start the rowing motion by pulling the handles straight back toward your chest.
Step 3: The finish
The finish continues the momentum you’ve built up in the drive stage. Continue the rowing motion, pulling the handle toward your body, below your chest line. Row until your elbows are at a 90-degree angle. Throughout the movement, keep your core engaged, your back straight, and your legs extended.
Once you’ve finished the movement, return to the starting position slowly and with control. Then, repeat!
What is a good stroke rate for rowing?
So, how fast should you row? There isn’t a hard and fast rule, but in general, 20–24 strokes per minute is an appropriate stroke rate for beginner rowers.
Listen to your body and find the balance between challenge and sustainability. As you row more, you’ll find that you’re able to maintain your stroke rate for longer amounts of time, or that your stroke rate increases. These are signs your body is getting stronger and your cardiovascular system is getting more efficient.
15-minute beginner rowing machine workout
Now, let’s put it all together in a 15-minute beginner rowing machine workout.
This beginner rowing workout is measured by duration and effort. Your stroke rate depends on your experience and fitness level. Remember that it doesn’t matter where you start — it matters that you focus on form and improve over time.
Here’s how the 15-minute rowing workout breaks down:
Warm-up: Row for 3 minutes at an easy pace. Rest for 1 minute.
Interval 1: Row for 3 minutes at an easy pace. Rest for 1 minute.
Interval 2: Row for 2 minutes at a moderate pace. Rest for 1 minute.
Interval 3: Row for 1 minute at a challenging pace. Rest for 1 minute.
Cooldown: Row for 2 minutes at an easy pace.
A moderate to challenging pace should elevate your heart rate and engage your muscles, but your pace may be too intense if it compromises your form or causes discomfort.
While you can increase your fitness using only the rower, you’ll experience a broader range of benefits when you train using a variety of equipment, modalities, and formats.
Strength training can help improve your rowing performance, and vice versa. Rowing uses 86% of your body’s muscles in just one motion. Therefore, the stronger your muscles are, the more efficient and powerful each rowing stroke will be. On the other hand, rowing improves your body’s cardiovascular capacity and muscular endurance, which both help you exercise with more intensity.
To get the most out of the rower, aim to incorporate two to three rowing sessions per week into your gym routine, supplemented by at least two strength training sessions.
Stand upright, holding the dumbbells at your thighs with your arms straight and your feet hip-width apart.
Lower the dumbbells to just below your knees, shifting your hips back and keeping your legs straight and back flat.
Return to the upright starting position.
Plank to high plank
Planks are a foundational core exercise, strengthening your abdominal muscles and back stabilizers.
How to:
Start in a low plank position on your toes and elbows, with your forearms flat on the ground.
Place one hand under the same shoulder.
Begin pushing your body up and place the opposite hand under the same shoulder.
Straighten your arms coming up into a high plank position.
Lower yourself back to your forearms, one arm at a time.
Leg press
Leg presses work your quads, hamstrings, glutes, and calves.
How to:
Sit in the leg press machine with your knees bent and your feet shoulder-width apart on the platform.
Press the platform out and away from your body, extending your legs fully.
Bend your hips and knees, return to the start position, and repeat.
Box jump
Box jumps increase your explosive power, strengthening your lower body and core and emphasizing explosive triple extension in the hip, knee, and ankle.
How to:
Face the box with a shoulder-width stance and your arms by your sides.
Drop the hips back into a quarter squat and jump onto the box.
As you jump, drive the arms up and forward.
Land on the box quietly by quarter squatting to absorb the impact.
Step off the box and repeat.
Single-arm bent-over dumbbell row
Single-arm rows help unilaterally strengthen and stabilize your back and shoulders.
How to:
Holding a dumbbell in one hand with your arm straight, place the opposite knee and hand on a bench, keeping your back flat.
Lift the dumbbell up to the side of your chest, bending at your elbow.
Lower the dumbbell back to a straight arm position, keeping your back flat throughout.
Complete all reps on one side before switching to the other side.
A final word on beginner rowing workouts
Whether you’re rowing to get your heart rate up at the beginning of a workout or to build full-body strength, the rower is a valuable gym tool.
Remember that the effort you put in determines your results — focus on form and consistency rather than your stroke rate. And as always, listen to your body. Need a break? Try a slower stroke rate. Up for a challenge? Increase the resistance on the machine. Over time, you’ll build the strength and endurance you need to master the rower.
Want more workout tips for beginners? Team up with an Anytime Fitness Coach to get personalized training, nutrition, and recovery plans tailored to your unique fitness goals.
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.