1<!DOCTYPE html> 2<html> 3<head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title>Online CPR Certification & Online First Aid Certification :: CPRToday! CPR Course & First Aid Course Curriculum</title> 6 <meta name="Description" content="Get your CPR certificate, First Aid certificate, and AED certificate in the comfort of your home and have your CPR certificate and First Aid certificate today!"> 7 <meta name="Keywords" content="Get your CPR certificate, First Aid certificate, and AED certificate in the comfort of your home and have your CPR certificate and First Aid certificate today!cpr certification, cpr certificate, online cpr, first aid certificate, first aid certification, online cpr certification, online cpr certificate, cpr course, cpr instruction, first aid course, cpr instruction, first aid instruction"> 8 <meta name="Author" content=""> 9 <link rel="preload" as="image" href="/public/images/hero06.webp" type="image/webp" fetchpriority="high"/> 10 11<link rel="canonical" href="https://cprtoday.com/" /> 12<meta name="viewport" content="width=device-width, initial-scale=1.0"> 13 <link rel="preload" as="image" href="/public/images/user-icon-white.webp" /> 14 <link rel="preload" as="image" href="/public/images/user-icon-blue.webp" /> 15 16<!-- Preload every Poppins weight used in the menu/hero. Skipping any of these 17 causes visible FOUT (fallback â swap) once @font-face resolves after CSS parse. --> 18<link rel="preload" as="font" type="font/woff2" href="/public/fonts/google/poppins-400.woff2" crossorigin /> 19<link rel="preload" as="font" type="font/woff2" href="/public/fonts/google/poppins-500.woff2" crossorigin /> 20<link rel="preload" as="font" type="font/woff2" href="/public/fonts/google/poppins-600.woff2" crossorigin /> 21<link rel="preload" as="font" type="font/woff2" href="/public/fonts/google/poppins-700.woff2" crossorigin /> 22<link rel="preload" as="font" type="font/woff2" href="/public/fonts/google/poppins-800.woff2" crossorigin /> 23<link rel="preload" as="font" type="font/woff2" href="/public/fonts/google/figtree.woff2" crossorigin /> 24 25<style> 26 /* Poppins 400 */ 27@font-face { 28 font-family: 'Poppins'; 29 font-style: normal; 30 font-weight: 400; 31 font-display: swap; 32 src: url(/public/fonts/google/poppins-400.woff2) format('woff2'); 33 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 34} 35/* Poppins 500 */ 36@font-face { 37 font-family: 'Poppins'; 38 font-style: normal; 39 font-weight: 500; 40 font-display: swap; 41 src: url(/public/fonts/google/poppins-500.woff2) format('woff2'); 42 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 43} 44/* Poppins 600 */ 45@font-face { 46 font-family: 'Poppins'; 47 font-style: normal; 48 font-weight: 600; 49 font-display: swap; 50 src: url(/public/fonts/google/poppins-600.woff2) format('woff2'); 51 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 52} 53/* Poppins 700 */ 54@font-face { 55 font-family: 'Poppins'; 56 font-style: normal; 57 font-weight: 700; 58 font-display: swap; 59 src: url(/public/fonts/google/poppins-700.woff2) format('woff2'); 60 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 61} 62/* Poppins 800 */ 63@font-face { 64 font-family: 'Poppins'; 65 font-style: normal; 66 font-weight: 800; 67 font-display: swap; 68 src: url(/public/fonts/google/poppins-800.woff2) format('woff2'); 69 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 70} 71/* Figtree 400-700 (variable font) */ 72@font-face { 73 font-family: 'Figtree'; 74 font-style: normal; 75 font-weight: 400; 76 font-display: swap; 77 src: url(/public/fonts/google/figtree.woff2) format('woff2'); 78 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 79} 80@font-face { 81 font-family: 'Figtree'; 82 font-style: normal; 83 font-weight: 500; 84 font-display: swap; 85 src: url(/public/fonts/google/figtree.woff2) format('woff2'); 86 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 87} 88@font-face { 89 font-family: 'Figtree'; 90 font-style: normal; 91 font-weight: 600; 92 font-display: swap; 93 src: url(/public/fonts/google/figtree.woff2) format('woff2'); 94 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 95} 96@font-face { 97 font-family: 'Figtree'; 98 font-style: normal; 99 font-weight: 700; 100 font-display: swap; 101 src: url(/public/fonts/google/figtree.woff2) format('woff2'); 102 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 103} 104/* Figtree 800 */ 105@font-face { 106 font-family: 'Figtree'; 107 font-style: normal; 108 font-weight: 800; 109 font-display: swap; 110 src: url(/public/fonts/google/figtree.woff2) format('woff2'); 111 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 112} 113/* Roboto 400 */ 114@font-face { 115 font-family: 'Roboto'; 116 font-style: normal; 117 font-weight: 400; 118 font-display: swap; 119 src: url(/public/fonts/google/roboto-400.woff2) format('woff2'); 120 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 121} 122/* Roboto 500 */ 123@font-face { 124 font-family: 'Roboto'; 125 font-style: normal; 126 font-weight: 500; 127 font-display: swap; 128 src: url(/public/fonts/google/roboto-500.woff2) format('woff2'); 129 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 130} 131/* Roboto 700 */ 132@font-face { 133 font-family: 'Roboto'; 134 font-style: normal; 135 font-weight: 700; 136 font-display: swap; 137 src: url(/public/fonts/google/roboto-700.woff2) format('woff2'); 138 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 139} 140/* Roboto Condensed 400 */ 141@font-face { 142 font-family: 'Roboto Condensed'; 143 font-style: normal; 144 font-weight: 400; 145 font-display: swap; 146 src: url(/public/fonts/google/roboto-condensed-400.woff2) format('woff2'); 147 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 148} 149/* Raleway 400-700 (variable font) */ 150@font-face { 151 font-family: 'Raleway'; 152 font-style: normal; 153 font-weight: 400; 154 font-display: swap; 155 src: url(/public/fonts/google/raleway.woff2) format('woff2'); 156 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 157} 158@font-face { 159 font-family: 'Raleway'; 160 font-style: normal; 161 font-weight: 600; 162 font-display: swap; 163 src: url(/public/fonts/google/raleway.woff2) format('woff2'); 164 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 165} 166@font-face { 167 font-family: 'Raleway'; 168 font-style: normal; 169 font-weight: 700; 170 font-display: swap; 171 src: url(/public/fonts/google/raleway.woff2) format('woff2'); 172 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 173} 174/* Oswald 700 */ 175@font-face { 176 font-family: 'Oswald'; 177 font-style: normal; 178 font-weight: 700; 179 font-display: swap; 180 src: url(/public/fonts/google/oswald-700.woff2) format('woff2'); 181 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 182} 183/* Montserrat 400-600 (variable font) */ 184@font-face { 185 font-family: 'Montserrat';
186 font-style: normal; 187 font-weight: 400; 188 font-display: swap; 189 src: url(/public/fonts/google/montserrat.woff2) format('woff2'); 190 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 191} 192@font-face { 193 font-family: 'Montserrat'; 194 font-style: normal; 195 font-weight: 500; 196 font-display: swap; 197 src: url(/public/fonts/google/montserrat.woff2) format('woff2'); 198 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 199} 200@font-face { 201 font-family: 'Montserrat'; 202 font-style: normal; 203 font-weight: 600; 204 font-display: swap; 205 src: url(/public/fonts/google/montserrat.woff2) format('woff2'); 206 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 207} 208/* Rock Salt 400 */ 209@font-face { 210 font-family: 'Rock Salt'; 211 font-style: normal; 212 font-weight: 400; 213 font-display: swap; 214 src: url(/public/fonts/google/rock-salt-400.woff2) format('woff2'); 215 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 216} 217</style>
218<script>window.CPRTODAY_PRELOAD = [{"query":"query QueryGetMe {\n userAuth {\n id\n user {\n ...AuthUserProfile\n __typename\n }\n __typename\n }\n}\nfragment AuthUserProfile on UserProfile {\n id\n login\n email\n nameF\n nameL\n company\n isNameConfirmed\n isDemo\n isCorporate\n isCorporateMaster\n isCorporateSubadmin\n isCorporateEmployee\n isSandbox\n isCorporateSimple\n allowSubadmins\n parentCode\n parentCodeProductIds\n company\n phone\n brandingFreePortal\n portalSlug\n portalUrl\n autoLoginToken\n location\n position\n giftVoucherNotifications {\n id\n recipientName\n reaction\n reactionLabel\n courseTitle\n __typename\n }\n notifications {\n type\n key\n title\n description\n variant\n isDismissable\n __typename\n }\n __typename\n}","vars":[],"data":{"userAuth":null}},{"query":"query SignupFormConfig($formType: String) {\n formConfig(formType: $formType) {\n products {\n ...ProductFields\n __typename\n }\n bundlePrices {\n ...AllowedProductConfig\n __typename\n }\n paymentConfig {\n ... on AuthNetConfig {\n ...AuthorizeNetConfig\n __typename\n }\n __typename\n }\n termsOfUse\n __typename\n }\n}\nfragment ProductFields on Product {\n id\n courseTitle\n price\n url\n hash\n examUrl\n __typename\n}\nfragment AllowedProductConfig on BundleProductConfig {\n productId\n allowedProducts\n __typename\n}\nfragment AuthorizeNetConfig on AuthNetConfig {\n publicKey\n apiLogin\n testMode\n __typename\n}","vars":[],"data":{"formConfig":{"products":[{"id":"17","courseTitle":"ACLS","price":139.94999999999998863131622783839702606201171875,"url":"https:\/\/www.cprtoday.com\/secure\/acls.php","hash":"acls","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-acls","__typename":"Product"},{"id":"18","courseTitle":"PALS","price":139.94999999999998863131622783839702606201171875,"url":"https:\/\/www.cprtoday.com\/secure\/pals.php","hash":"pals","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-pals","__typename":"Product"},{"id":"19","courseTitle":"NRS","price":139.94999999999998863131622783839702606201171875,"url":"https:\/\/www.cprtoday.com\/secure\/nrs.php","hash":"nrs","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-nrs","__typename":"Product"},{"id":"2","courseTitle":"Adult and Pediatric CPR + AED","price":29.949999999999999289457264239899814128875732421875,"url":"https:\/\/www.cprtoday.com\/secure\/cpr.php","hash":"cpr","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-cpr","__typename":"Product"},{"id":"8","courseTitle":"Adult CPR and AED","price":24.949999999999999289457264239899814128875732421875,"url":"https:\/\/www.cprtoday.com\/secure\/acpr.php","hash":"acpr","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-acpr","__typename":"Product"},{"id":"3","courseTitle":"Universal First Aid","price":29.949999999999999289457264239899814128875732421875,"url":"https:\/\/www.cprtoday.com\/secure\/bfa.php","hash":"bfa","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-bfa","__typename":"Product"},{"id":"7","courseTitle":"Healthcare Provider BLS","price":39.9500000000000028421709430404007434844970703125,"url":"https:\/\/www.cprtoday.com\/secure\/hcp.php","hash":"hcp","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-hcp","__typename":"Product"},{"id":"1","courseTitle":"Comprehensive BLS Bundle","price":54.9500000000000028421709430404007434844970703125,"url":"https:\/\/www.cprtoday.com\/secure\/cpr.php","hash":"bcls","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-bcls","__typename":"Product"},{"id":"12","courseTitle":"Bloodborne Pathogens","price":24.949999999999999289457264239899814128875732421875,"url":"https:\/\/www.cprtoday.com\/secure\/bbp.php","hash":"bbp","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-bbp","__typename":"Product"}
218],"bundlePrices":[{"productId":"1","allowedProducts":[],"__typename":"BundleProductConfig"},{"productId":"7","allowedProducts":[3],"__typename":"BundleProductConfig"},{"productId":"2","allowedProducts":[3,12],"__typename":"BundleProductConfig"},{"productId":"8","allowedProducts":[3,12],"__typename":"BundleProductConfig"},{"productId":"3","allowedProducts":[8,2,12],"__typename":"BundleProductConfig"},{"productId":"12","allowedProducts":[2,3,8],"__typename":"BundleProductConfig"},{"productId":"17","allowedProducts":[1,2,3,7,8,12],"__typename":"BundleProductConfig"},{"productId":"18","allowedProducts":[1,2,3,7,8,12],"__typename":"BundleProductConfig"},{"productId":"19","allowedProducts":[1,2,3,7,8,12],"__typename":"BundleProductConfig"}],"paymentConfig":{"publicKey":"4AS5bhn6dQaAn2fF9RscFk23zxH5uq4Mpd3fRnxtkVqh3YAjS777k5GUSQKjLc95","apiLogin":"cprtoday4","testMode":false,"__typename":"AuthNetConfig"},"termsOfUse":null,"__typename":"FormConfig"}}},{"query":"query CorporateFormConfig($formType: String) {\n formConfig(formType: $formType) {\n products {\n ...ProductFields\n __typename\n }\n bundlePrices {\n ...BundleProductConfig\n __typename\n }\n paymentConfig {\n ... on AuthNetConfig {\n ...AuthorizeNetConfig\n __typename\n }\n __typename\n }\n __typename\n }\n}\nfragment ProductFields on Product {\n id\n courseTitle\n price\n url\n hash\n examUrl\n __typename\n}\nfragment BundleProductConfig on BundleProductConfig {\n productId\n prices\n allowedProducts\n size\n __typename\n}\nfragment AuthorizeNetConfig on AuthNetConfig {\n publicKey\n apiLogin\n testMode\n __typename\n}","vars":[],"data":{"formConfig":{"products":[{"id":"17","courseTitle":"ACLS","price":139.94999999999998863131622783839702606201171875,"url":"https:\/\/www.cprtoday.com\/secure\/acls.php","hash":"acls","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-acls","__typename":"Product"},{"id":"18","courseTitle":"PALS","price":139.94999999999998863131622783839702606201171875,"url":"https:\/\/www.cprtoday.com\/secure\/pals.php","hash":"pals","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-pals","__typename":"Product"},{"id":"19","courseTitle":"NRS","price":139.94999999999998863131622783839702606201171875,"url":"https:\/\/www.cprtoday.com\/secure\/nrs.php","hash":"nrs","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-nrs","__typename":"Product"},{"id":"2","courseTitle":"Adult and Pediatric CPR + AED","price":29.949999999999999289457264239899814128875732421875,"url":"https:\/\/www.cprtoday.com\/secure\/cpr.php","hash":"cpr","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-cpr","__typename":"Product"},{"id":"8","courseTitle":"Adult CPR and AED","price":24.949999999999999289457264239899814128875732421875,"url":"https:\/\/www.cprtoday.com\/secure\/acpr.php","hash":"acpr","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-acpr","__typename":"Product"},{"id":"3","courseTitle":"Universal First Aid","price":29.949999999999999289457264239899814128875732421875,"url":"https:\/\/www.cprtoday.com\/secure\/bfa.php","hash":"bfa","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-bfa","__typename":"Product"},{"id":"7","courseTitle":"Healthcare Provider BLS","price":39.9500000000000028421709430404007434844970703125,"url":"https:\/\/www.cprtoday.com\/secure\/hcp.php","hash":"hcp","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-hcp","__typename":"Product"},{"id":"1","courseTitle":"Comprehensive BLS Bundle","price":54.9500000000000028421709430404007434844970703125,"url":"https:\/\/www.cprtoday.com\/secure\/cpr.php","hash":"bcls","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-bcls","__typename":"Product"},{"id":"12","courseTitle":"Bloodborne Pathogens","price":24.949999999999999289457264239899814128875732421875,"url":"https:\/\/www.cprtoday.com\/secure\/bbp.php","hash":"bbp","examUrl":"https:\/\/www.cprtoday.com\/secure\/certification.php#exam-bbp","__typename":"Product"}
218],"bundlePrices":[{"productId":"1","prices":[54.9500000000000028421709430404007434844970703125,49.46000000000000085265128291212022304534912109375,46.71000000000000085265128291212022304534912109375,43.96000000000000085265128291212022304534912109375,41.21000000000000085265128291212022304534912109375,38.469999999999998863131622783839702606201171875],"allowedProducts":[],"size":[5,10,25,51,101,10000000],"__typename":"BundleProductConfig"},{"productId":"7","prices":[39.9500000000000028421709430404007434844970703125,35.96000000000000085265128291212022304534912109375,33.96000000000000085265128291212022304534912109375,31.96000000000000085265128291212022304534912109375,29.96000000000000085265128291212022304534912109375,27.969999999999998863131622783839702606201171875],"allowedProducts":[3],"size":[5,10,25,51,101,10000000],"__typename":"BundleProductConfig"},{"productId":"2","prices":[29.949999999999999289457264239899814128875732421875,26.96000000000000085265128291212022304534912109375,25.46000000000000085265128291212022304534912109375,23.96000000000000085265128291212022304534912109375,22.46000000000000085265128291212022304534912109375,20.969999999999998863131622783839702606201171875],"allowedProducts":[3,12],"size":[5,10,25,51,101,10000000],"__typename":"BundleProductConfig"},{"productId":"8","prices":[24.949999999999999289457264239899814128875732421875,22.46000000000000085265128291212022304534912109375,21.21000000000000085265128291212022304534912109375,19.96000000000000085265128291212022304534912109375,18.71000000000000085265128291212022304534912109375,17.469999999999998863131622783839702606201171875],"allowedProducts":[3,12],"size":[5,10,25,51,101,10000000],"__typename":"BundleProductConfig"},{"productId":"3","prices":[29.949999999999999289457264239899814128875732421875,26.96000000000000085265128291212022304534912109375,25.46000000000000085265128291212022304534912109375,23.96000000000000085265128291212022304534912109375,22.46000000000000085265128291212022304534912109375,20.969999999999998863131622783839702606201171875],"allowedProducts":[8,2,12],"size":[5,10,25,51,101,10000000],"__typename":"BundleProductConfig"},{"productId":"12","prices":[24.949999999999999289457264239899814128875732421875,22.46000000000000085265128291212022304534912109375,21.21000000000000085265128291212022304534912109375,19.96000000000000085265128291212022304534912109375,18.71000000000000085265128291212022304534912109375,17.469999999999998863131622783839702606201171875],"allowedProducts":[2,3,8],"size":[5,10,25,51,101,10000000],"__typename":"BundleProductConfig"},{"productId":"17","prices":[139.94999999999998863131622783839702606201171875,125.9599999999999937472239253111183643341064453125,118.9599999999999937472239253111183643341064453125,111.9599999999999937472239253111183643341064453125,104.9599999999999937472239253111183643341064453125,97.969999999999998863131622783839702606201171875],"allowedProducts":[1,2,3,7,8,12],"size":[5,10,25,51,101,10000000],"__typename":"BundleProductConfig"},{"productId":"18","prices":[139.94999999999998863131622783839702606201171875,125.9599999999999937472239253111183643341064453125,118.9599999999999937472239253111183643341064453125,111.9599999999999937472239253111183643341064453125,104.9599999999999937472239253111183643341064453125,97.969999999999998863131622783839702606201171875],"allowedProducts":[1,2,3,7,8,12],"size":[5,10,25,51,101,10000000],"__typename":"BundleProductConfig"},{"productId":"19","prices":[139.94999999999998863131622783839702606201171875,125.9599999999999937472239253111183643341064453125,118.9599999999999937472239253111183643341064453125,111.9599999999999937472239253111183643341064453125,104.9599999999999937472239253111183643341064453125,97.969999999999998863131622783839702606201171875],"allowedProducts":[1,2,3,7,8,12],"size":[5,10,25,51,101,10000000],"__typename":"BundleProductConfig"}],"paymentConfig":{"publicKey":"4AS5bhn6dQaAn2fF9RscFk23zxH5uq4Mpd3fRnxtkVqh3YAjS777k5GUSQKjLc95","apiLogin":"cprtoday4","testMode":false,"__typename":"AuthNetConfig"},"__typename":"FormConfig"}}}];</script>
218 219<!-- CSS LOAD (scheduled; emitted by layout via renderCss) --> 220 221<!-- Tracking config available to deferred scripts; runs early, no deps. -->
222<script> 223 window.CPRTODAY_TRACKING = {"applicationEnv":"live","backendBaseUrl":"https://backend.cprtoday.com","surveyEndpoint":"https://backend.cprtoday.com/amember/cprtoday/exit-survey","pageType":"landing","pagePath":"/","isLoggedIn":false}; 224 window.dataLayer = window.dataLayer || []; 225 window.gtag = window.gtag || function(){ window.dataLayer.push(arguments); }; 226 window.__gtag = window.__gtag || function(){ 227 try { 228 window.gtag.apply(window, arguments); 229 } catch (error) {} 230 }; 231</script>
231 232 233<!-- JAVASCRIPT (all deferred; execute in document order after HTML parse) -->
234<script defer src="/public/vendor/bootstrap/5.3.3/js/bootstrap.bundle.min.1776563340.js"></script>
vendor: 1 bytes, line 234
234
235<script defer src="/public/js/jquery-3.6.0.min.1773881630.js"></script>
vendor: 1 bytes, line 235
235
236<script defer src="/public/vendor/waypoints/4.0.1/noframework.waypoints.min.1776563340.js"></script>
vendor: 1 bytes, line 236
236
237<script defer type="text/javascript" src="/public/js/scripts.1777097327.js"></script>
vendor: 1 bytes, line 237
237
238<script defer type="text/javascript" src="/public/js/site-shell.1777334949.js"></script>
238 239 240<!-- react assets --> 241<link href="https://backend.cprtoday.com/public/static/css/main.6ed58f7f.css" rel="stylesheet">
242<script defer id="cprtoday-bundle" data-api="backend.cprtoday.com" src="https://backend.cprtoday.com/public/static/js/vendor-core.689e52a7.js"></script>
vendor: 1 bytes, line 242
242
243<script defer src="https://backend.cprtoday.com/public/static/js/vendor-apollo.43b2addf.js"></script>
vendor: 1 bytes, line 243
243
244<script defer src="https://backend.cprtoday.com/public/static/js/567.d141963f.js"></script>
vendor: 1 bytes, line 244
244
245<script defer src="https://backend.cprtoday.com/public/static/js/main.ab711d17.js"></script>
245 246<!-- end: react assets --> 247
248<script>
vendor: 125 bytes, lines 248-251
248 249 (function(h,o,t,j,a,r){ 250 h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; 251 h._hjSettings={hjid:
2515028862
vendor: 258 bytes, lines 251-256
251,hjsv:6}; 252 a=o.getElementsByTagName('head')[0]; 253 r=o.createElement('script');r.async=1; 254 r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; 255 a.appendChild(r); 256 })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
257</script>
257 258
259<script type="text/javascript"> 260 (function(c,l,a,r,i,t,y){ 261 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 262 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 263 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 264 })(window, document, "clarity", "script", "w6a6e7kg04"); 265</script>
vendor: 65 bytes, lines 265-267
265 266 267<script async src="https://www.googletagmanager.com/gtag/js?id=
267AW-1071931317
vendor: 12 bytes, line 267
267"></script>
268<script> 269 window.dataLayer = window.dataLayer || []; 270 window.gtag = window.gtag || function(){ window.dataLayer.push(arguments); }; 271 window.__gtag = function(){ 272 try { 273 window.gtag.apply(window, arguments); 274 } catch (error) {} 275 }; 276 window.gtag('js', new Date()); 277 window.gtag('config', "AW-1071931317"); 278</script>
278 279 <link rel="stylesheet" href="/public/vendor/bootstrap/5.3.3/css/bootstrap.min.1776563340.css"> 280<link rel="stylesheet" href="/public/cache/css/7d735a55de88.min.css"> 281
281<script defer src="/public/vendor/countup.js/2.0.7/countUp.umd.1776563340.js"></script>
vendor: 1 bytes, line 281
281
282<script defer src="/public/js/index.1777600785.js"></script>
vendor: 1 bytes, line 282
282
283<script defer src="/public/vendor/vivus/0.4.6/vivus.min.1776563340.js"></script>
vendor: 1 bytes, line 283
283
284<script defer src="/public/js/home-page.1775604426.js"></script>
284 285</head> 286 287<body class="Firefox"> 288 <div class="innerWrap inner-wrap--flush"> 289 <!--div style="display: flex; justify-content: space-between; align-items: center; margin: 0.5em;"> 290 <div class="top-nav2"> 291 <a href="https://www.cprtoday.com/index.php?old">Use legacy site version</a> 292 </div> 293 294<style> 295.top-nav2 { 296 background-color: #fff; 297 border-radius: 3px; 298 padding: 5px 10px; 299 font-family: poppins, arial, sans-serif; 300 font-size: 16px; 301 border: 1px solid #666; 302 cursor: pointer; 303} 304</style> 305 306 <div class="top-nav2"> 307 <a href="/amember/signup.php" class="signup-login-popup" data-skip-registration="true"> 308 <img src="/public/images/user-icon2.webp" alt="User Icon" style="padding-right: 5px; height: 20px; vertical-align: middle;">Sign-In</a> 309 </div> 310</div--> 311 312 313<!-- div class="top-nav"> 314 <div id="user-identity-block"> </div> 315 316 <ul class="top-menu"> 317 <li><a href="#" id="verifyLink">Verify Certification</a></li> 318 <li><a href="#" id="previewLink">Preview Your Certificate</a></li> 319 <li><span id="contact-us"><a href="#">Contact Us</a></span></li> 320</ul> 321</div --> 322<!--style> 323.narrow-menu-items-container { 324 position: relative; 325 z-index: 20; 326} 327 328.narrow-menu-items-container::after { 329 content: ''; 330 position: absolute; 331 left: 0; 332 right: 0; 333 bottom: -28px; /* â THIS is the key */ 334 height: 28px; 335 pointer-events: none; 336 background: linear-gradient( 337 to bottom, 338 rgba(10, 18, 40, 0.45), 339 rgba(10, 18, 40, 0) 340 ); 341} 342</style--> 343 344<div id="main-menu"> 345 <div class="main-menu-top"> 346 <div class="logo logo-shell"> 347 <a href="/" class="logo-cpr">CPR<span class="logo-today">Today!</span> 348 <span class="logo-academy">ACADEMY</span> 349 <span class="logo-tm">®</span> 350 </a> 351 </div> 352 <div class="menu-items-container"> 353 354<!-- ========= menu-guest ========= --> 355<nav id="main-menu"> 356 <ul class="menu-items hide-1100"> 357 358 <!-- ALS â trigger only --> 359 <li class="dropdown " data-mega="als"> 360 <a id="alsTrigger" 361 href="#advanced" 362 class="dropdown-toggle" 363 aria-haspopup="true" 364 aria-expanded="false"> 365 Advanced Life Support<span class="hide-1200"> Courses</span> 366 </a> 367 </li> 368 369 <!-- BLS â trigger only --> 370 <li class="dropdown " data-mega="bls"> 371 <a id="blsTrigger" 372 href="#bls" 373 class="dropdown-toggle" 374 aria-haspopup="true" 375 aria-expanded="false"> 376 Basic Life Support<span class="hide-1200"> Courses</span> 377 </a> 378 </li> 379 380 <!-- Group Solutions --> 381 <li class=""> 382 <a href="/corporate-hub">Group<span class="hide-1200"> Solutions</span></a> 383 </li> 384 385 <!-- Support â trigger --> 386 <li class="dropdown " data-mega="support"> 387 <a id="supportTrigger" 388 href="#support" 389 class="dropdown-toggleX menu-support-trigger" 390 aria-haspopup="true" 391 aria-expanded="false"> 392 ? 393 </a> 394 </li> 395 396 <!-- Sign-In â mega trigger --> 397 <li class="dropdown " data-mega="signin"> 398 <a id="signinTrigger" 399 href="/amember/login" 400 class="dropdown-toggle signup-login-trigger signup-login-popup" 401 aria-haspopup="true" 402 aria-expanded="false"> 403 <img class="user-icon menu-user-icon" 404 src="/public/images/user-icon-white.webp" 405 alt="User Icon"> 406 Student Sign-In 407 </a> 408 </li> 409 410 </ul> 411</nav> 412<!-- ===== /menu-guest ===== --> 413 <div class="narrow-menu"> 414 <a href="#" class="narrow-menu-toggle"><svg class="icon" aria-hidden="true" focusable="false"><use href="/public/images/icons.svg?v=1776563340#i-bars"></use></svg></a> 415 </div> 416 </div> 417 </div> 418 <div class="narrow-menu-items-container"> 419 <ul class="narrow-menu-items"> 420 <li class=""><a href="/#acls">Advanced Courses</a> 421 </li> 422 423 <li class=""><a href="/#bls">Certification Courses</a> 424 </li> 425 <li class=""> 426 <a href="/corporate-hub">Group Solutions</a></li> 427 <li class=""><a href="/preview-certification" title="Preview Your Certification" style="margin: 0px;">Preview Your Certification</a></li> 428 <li class=""><a href="/verify-certification">Certification Verification</a></li> 429 <li><a href="/faq">FAQ</a></li> 430 <li><a href="/community">Community Love</a></li> 431 <li><a href="/about-us">The CPR<span style="color: red;">Today!</span> Story</a></li> 432 433 434 <li class=""> 435 <a href="/amember/signup" class="signup-login-popup" data-skip-registration="true"> 436 <img class="user-icon" src="/public/images/user-icon-white.webp" alt="User Icon" style="padding-right: 12px; height: 24px; width: auto; vertical-align: middle;">Sign-In 437 </a> 438 </li> 439 <li style="padding-left: 10px;" class="signup-login-container"> 440 <a href="/amember/signup" class="signup-button" >Register Now</a> 441 <!--img src="/public/images/user-icon2.webp" alt="User Icon" style="padding-right: 10px; height: 22px; 442 vertical-align: middle; filter: invert(99%) sepia(0%) saturate(2%) hue-rotate(179deg) brightness(116%) contrast(100%);">New Student Registration
443 <span class="hide-992" style="color: #fafafa;">Login/Registration</span> 444 </a> 445 ul class="dropdown-menu"> 446 <li> 447 <a href="/amember/signup">New Student Registration</a> 448 </li> 449 </ul--> 450 </li> 451 <li class=""><a href="/contact-us">Contact<span class="hide-992"> Us</span></a></li> 452 453 454 <li> 455 <a href="#" class="narrow-menu-toggle-close">Close</a> 456 </li> 457 458 459</ul> 460 </div> 461</div> 462 463 464 465<style> 466 /* Hero image lives as a real <img> element (not CSS background) so it 467 qualifies as a paint-timing / LCP candidate in Chrome. width/height 100% 468 + object-fit:cover keep it exactly inside .bg-container â no overflow 469 clipping needed, and the counter-strip that overflows below the hero 470 (index.css sets overflow:visible) stays visible. */ 471 .cpr-index-banner .hero-img { 472 position: absolute; 473 inset: 0; 474 width: 100%; 475 height: 100%; 476 object-fit: cover; 477 z-index: 0; 478 } 479</style> 480 481<div class="cpr-index-banner"> 482 483 <div class="bg-container"> 484 <img class="hero-img" 485 src="/public/images/hero06.webp" 486 alt="CPRToday online certification hero image" 487 width="1920" height="580" 488 fetchpriority="high" 489 decoding="async" 490 elementtiming="hero" /> 491 <!-- Inner container for left-aligned content and satisfied clients --> 492 <div class="steps-inner"> 493 494 <!-- Text Content Container --> 495 <div style="display: flex; flex-direction: column; width: 100%; 496 justify-content: center; align-items: center; text-align: center; padding: 12px 0 0;"> 497 498 <div style="width: 100%; display: flex; justify-content: center; align-items: flex-end; position: relative; height: 100px;"> 499 <!-- Testimonial section positioned on the left --> 500 <div class="testimonial-card" 501 style="margin-top: 0; align-self: flex-start; position: absolute; left: 0; display: flex; align-items: center; gap: 10px;"> 502 <div class="testimonial-avatars" style="display: flex; gap: 10px;"> 503 <img src="/public/images/JennyBoseman.webp" alt="Jenny Boseman" class="avatar"> 504 <img src="/public/images/LesleyHuntington.webp" alt="Lesley Huntington" class="avatar"> 505 <img src="/public/images/VanessaGomez.webp" alt="Vanessa Gomez" class="avatar"> 506 <img src="/public/images/LizBeth.webp" alt="LizBeth" class="avatar"> 507 </div> 508 509 <div class="testimonial-info"> 510 <div class="rating"> 511 <svg class="icon star" aria-hidden="true" focusable="false"><use href="/public/images/icons.svg?v=1776563340#i-star"></use></svg> <svg class="icon star" aria-hidden="true" focusable="false"><use href="/public/images/icons.svg?v=1776563340#i-star"></use></svg> <svg class="icon star" aria-hidden="true" focusable="false"><use href="/public/images/icons.svg?v=1776563340#i-star"></use></svg> <svg class="icon star" aria-hidden="true" focusable="false"><use href="/public/images/icons.svg?v=1776563340#i-star"></use></svg> <svg class="icon star" aria-hidden="true" focusable="false"><use href="/public/images/icons.svg?v=1776563340#i-star"></use></svg> <span class="rating-number">4.95</span> 512 </div> 513 <span class="testimonial-count">750K+ Certified Clients</span> 514 </div> 515 </div> 516 517 <!-- Hero Headline - Stay centered in the flex container --> 518 <!--img src="/public/images/highlight.webp" 519 style="position: absolute; width: 320px; height: 48px; top: 56px; left: calc(50% -100px); opacity: 0.75; z-index:1;"> 520 <p class="hero-highlight" style="text-align: center; z-index: 2;">Learn CPR In Your PJs</p--> 521 </div> 522 523 524 <div style="width: 100%; padding-top: 14px;"> 525 <p class="subheadline-slide"> 526 Get <span style="letter-spacing: -0.01em;">Certified</span> Today. 527 </p> 528 <p class="subheadline-slide subheadline-fade" style="letter-spacing: -0.01em; font-size: 56px;"> 529 Pay only when you pass. 530 </p> 531 </div> 532 533 <!--div class="hero-copy" style="position: relative"> 534 <p>CPR<span style="color: red;">Today!</span> brings the classroom to you.</p> 535 <p style="margin-top: -32px; font-family: Rock Salt, arial, sans-serif; font-size: 14px; color: #039; font-weight: 600; 536 letter-spacing: 1px; text-align: center; z-index: 2;"> 537 (no appointment—or shoes—required!)<!--no shirt, no shoes, no problem.--> 538 <!--Learn BLS, CPR, AED, FA and BBPs In Your PJs></p--> 539 <!-- Underline image --> 540 <!--img src="/public/images/underline4.webp" class="hero-underline-image" alt="Underline Image"> 541 </div--> 542 543 544 545 <div class="hero-action-buttons"> 546 <!-- Button remains below the text --> 547 548 <a class="hero-take-course-button" onclick="document.location.href='#cta';"> 549 Start Training Now 550 </a> 551 552 <!-- Button remains below the text --> 553 <a class="hero-learn-more-button" onclick="document.location.href='#hiw';"> 554 See How It Works 555 </a> 556 557 558 </div> 559 560 </div> 561 </div> 562 563 564 565 566 <div id="counter-container" class="counter-container"> 567 <div class="counter"> 568 <p style="margin-bottom: -6px;">CPR<span style="color: red; font-size: 20px; font-weight: 500;">Today!</span> Years Online</p>
569 <span class="count" data-target="25" data-plus="true">25+</span> 570 <p style="margin-top: -6px; font-size: 16px; font-weight: 400;">Training Life-Savers Since 1999</p> 571 </div> 572 573 <div class="counter-divider"></div> 574 575 <div class="counter"> 576 <p style="margin-bottom: -6px;"><span style="color: red; font-size: 20px; font-weight: 500;">Certifications</span> Awarded</p> 577 <span class="count" data-target="750000" data-plus="true">750,000+</span> 578 <p style="margin-top: -6px; font-size: 16px; font-weight: 400;">Making a Global Impact</p> 579 </div> 580 581 <div class="counter-divider"></div> 582 583 <div class="counter"> 584 <p style="margin-bottom: -6px;">Customers' Hours <span style="color: red; font-size: 20px; font-weight: 500;">Saved</span></p> 585 <span class="count" data-target="1000000" data-plus="true">1,000,000+</span> 586 <p style="margin-top: -6px; font-size: 16px; font-weight: 400;">*and Counting</p> 587 </div> 588 <!--div class="counter"> 589 <p><span class="hide-1200">Customer </span><span style="color: red;">Satisfaction</span> 590 Rate</p> 591 <span class="count" data-target="4.95" data-plus="false">4.95</span> 592 <!--span class="percentage"></span--> 593 <!--div style="margin-top: -5px; font-size: 14px;"> 594 <i class="fa fa-star gold star-shadow" style="color: gold;"></i> 595 <i class="fa fa-star gold star-shadow" style="color: gold;"></i> 596 <i class="fa fa-star gold star-shadow" style="color: gold;"></i> 597 <i class="fa fa-star gold star-shadow" style="color: gold;"></i> 598 <i class="fa fa-star gold star-shadow" style="color: gold;"></i> 599 </div> 600 </div--> 601 </div> 602 </div> 603 604</div> 605 606 607 608 609 610 611<section class="home-intro intro-cert"> 612 <div class="cert-watermark" aria-hidden="true"></div> 613 614 <div class="home-intro-inner"> 615 <div class="intro-col" style="z-index: 1;"> 616 <p class="intro-lead"> 617 Getting certified doesnât have to be a pain. 618 </p> 619 </div> 620 621 <div class="intro-col"> 622 <p> 623 Schools, employers, and licensing boards require life support training â but you 624 donât need to give up a full day to get certified. CPRToday! courses follow current AHA 625 guidelines and get you certified online in all 50 states. 626 <span style="font-weight: 600">Guaranteed</span>. 627 </p> 628 </div> 629 </div> 630 631</section> 632 633 634 635 636<section class="popular-courses-strip"> 637 638 <div class="hiw-header"> 639 640 <h2>Our courses at a glance</h2> 641 <p class="hiw-subhead"> 642 Free lifetime registration. Study on any device. Add more courses at any time. 643 </p> 644 </div> 645 646 647 <div class="popular-courses-inner"> 648 649 <div class="pcs-grid-wrap"> 650 651<!--div class="section-eyebrow section-eyebrow--featured"> 652 <!--span class="eyebrow-line"></span--> 653 <span class="eyebrow-label">Most Searched Courses</span> 654<!--/div--> 655 656 <div class="pcs-grid"> 657 <div class="pcs-row"> 658 659 <div class="pcs-title-row"> 660 <span class="bls-ico"> 661 <img src="/public/images/icon-doctor1.webp" alt="" loading="lazy" decoding="async" width="48" height="48"> 662 </span> 663 <span class="pcs-name">Healthcare Provider BLS</span> 664 </div> 665 666 <span class="pcs-meta"> 667 Nurses · EMTs · Healthcare Providers · First Responders 668 </span> 669 670 <div class="pcs-actions"> 671 <a href="#hcp" class="pcs-action take-course-link" data-course="7">Start Now</a> 672 </div> 673 674 </div> 675 676 677 <div class="pcs-row"> 678 679 <div class="pcs-title-row"> 680 <span class="bls-ico"> 681 <img src="/public/images/icon-family.webp" alt="" loading="lazy" decoding="async" width="48" height="48"> 682 </span> 683 <span class="pcs-name">Adult & Pediatric CPR</span> 684 </div> 685 686 <span class="pcs-meta"> 687 Caregivers · Educators · Workplace & Community Teams 688 </span> 689 690 <div class="pcs-actions"> 691 <a href="#cpr" class="pcs-action take-course-link" data-course="2">Start Now</a> 692 </div> 693 694 </div> 695 696 697 <div class="pcs-row"> 698 699 <div class="pcs-title-row"> 700 <span class="bls-ico"> 701 <img src="/public/images/icon-family.webp" alt="" loading="lazy" decoding="async" width="48" height="48"> 702 </span> 703 <span class="pcs-name">ACLS</span> 704 </div> 705 706 <span class="pcs-meta"> 707 Physicians · Advanced Practice Providers · Code Teams 708 </span> 709 710 <div class="pcs-actions"> 711 <a href="#acls" class="pcs-action take-course-link" data-course="17">Start Now</a> 712 </div> 713 </div> 714 </div> 715 </div> 716 717<div class="section-divider"></div> 718 719 720 <div id="bls"> 721<!--div class="section-eyebrow section-eyebrow--catalog"> 722 <span class="eyebrow-line"></span--> 723 <!--span class="eyebrow-label-all">All Courses</span> 724<!--/div--> 725 726 727 728<style> 729/* ========================= 730 COURSE INTRO (EDITORIAL) 731 ========================= */ 732 733.course-intro { 734 max-width: 1100px; 735 margin: 0px auto 32px; 736 padding: 0 0px; 737} 738 739.course-intro-inner { 740 max-width: none; 741} 742 743.course-intro h2 { 744 font-size: 34px; 745 line-height: 1.15; 746 font-weight: 700; 747 color: #0f172a; 748 margin: 0 0 14px; 749} 750 751.course-intro p { 752 column-count: 2;
753 column-gap: 40px; 754 font-size: 18px; 755 line-height: 1.7; 756 color: #475569; 757 max-width: 1000px; 758 margin: 0 auto; 759} 760 761 762.course-intro h2, 763.course-intro p { 764 transition: opacity .18s ease; 765} 766 767 768/* Mobile */ 769@media (max-width: 640px) { 770 .course-intro { 771 margin: 48px auto 24px; 772 } 773 774 .course-intro h2 { 775 font-size: 28px; 776 } 777 778 .course-intro p { 779 font-size: 16.5px; 780 } 781} 782 783 784/* =============================== 785 COURSE TIER SWITCH 786 =============================== */ 787 788.course-tier-switch { 789 max-width: 1200px; 790 margin: 0px auto 64px; 791 padding: 0 20px; 792 display: grid; 793 grid-template-columns: 1fr 1fr; 794 gap: 48px; 795} 796 797.tier-link { 798 text-decoration: none; 799} 800 801.tier-label { 802 display: block; 803 font-size: 18px; 804 font-weight: 700; 805 letter-spacing: 0.08em; 806/* text-transform: uppercase; */ 807 color: #94a3b8; 808 margin-bottom: 10px; 809} 810 811.tier-rule { 812 display: block; 813 height: 2px; 814 width: 100%; 815 background: #e5e7eb; 816} 817 818/* Active state */ 819 820.tier-link.is-active .tier-label { 821 color: #1e3a8a; 822} 823 824.tier-link.is-active .tier-rule { 825 background: #1e3a8a; 826} 827 828/* Hover (subtle, not cute) */ 829 830.tier-link:hover .tier-label { 831 color: #334155; 832} 833 834.tier-link:hover .tier-rule { 835 background: #334155; 836} 837 838/* Mobile */ 839 840@media (max-width: 700px) { 841 .course-tier-switch { 842 grid-template-columns: 1fr; 843 gap: 32px; 844 } 845} 846 847 848/* ========================================= 849 1. MODAL & ANIMATIONS 850 ========================================= */ 851.img-modal { 852 position: fixed; inset: 0; z-index: 9999; display: none; 853 align-items: center; justify-content: center; 854} 855.img-modal.active { display: flex; animation: fadeIn .2s ease; } 856.img-modal__overlay { 857 position: absolute; inset: 0; background: rgba(0,0,0,.6); backdrop-filter: blur(2px); 858} 859/* Customizing the modal for this specific instance (#imgModal) */ 860#imgModal .img-modal__content { 861 position: relative; background: transparent; box-shadow: none; padding: 0; 862 display: flex; align-items: center; justify-content: center; pointer-events: none; 863} 864#imgModal #modalImg { 865 width: auto; height: auto; max-width: min(92vw, 1100px); max-height: 90vh; 866 object-fit: contain; background: #fff; border-radius: 12px; 867 box-shadow: 0 20px 60px rgba(0,0,0,.35); pointer-events: auto; 868 animation: popIn .2s ease; 869} 870#imgModal #modalCaption { display: none; } 871#imgModal .img-modal__close { 872 position: absolute; top: -15px; right: -15px; z-index: 1; pointer-events: auto; 873 background: #fff; border: 1px solid #e5e7eb; border-radius: 50%; 874 width: 34px; height: 34px; font-size: 22px; line-height: 1; 875 cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.15); 876 display: flex; align-items: center; justify-content: center; 877} 878 879@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } 880@keyframes popIn { from { transform: scale(.985); opacity: 0; } to { transform: scale(1); opacity: 1; } } 881 882/* ========================================= 883 2. PILL NAVIGATION (GRID LAYOUT) 884 ========================================= */ 885.pill-section { 886max-width: 1200px; 887margin: 0 auto 0px; 888padding-bottom: 40px; 889} 890 891.pill-section h3 { 892 margin: 0 0 10px; 893 font: 700 16px/1 'Poppins','Figtree',sans-serif; 894 color: #0b2fa3; letter-spacing: .2px; 895} 896 897.pillbar { 898 position: relative; 899 background: #fff; 900 overflow: hidden; 901} 902 903/* LEFT fade */ 904.pillbar::before { 905 content: ""; 906 position: absolute; 907 top: 0; 908 left: 0; 909 width: 56px; 910 height: 100%; 911 pointer-events: none; 912 z-index: 2; 913 background: linear-gradient( 914 to right, 915 rgba(248, 250, 252, 1) 0%, 916 rgba(248, 250, 252, 0.85) 40%, 917 rgba(248, 250, 252, 0) 100% 918 ); 919} 920 921/* RIGHT fade */ 922.pillbar::after { 923 content: ""; 924 position: absolute; 925 top: 0; 926 right: 0; 927 width: 56px; 928 height: 100%; 929 pointer-events: none; 930 z-index: 2; 931 background: linear-gradient( 932 to left, 933 rgba(248, 250, 252, 1) 0%, 934 rgba(248, 250, 252, 0.85) 40%, 935 rgba(248, 250, 252, 0) 100% 936 ); 937} 938 939 940/* Hide fades at edges */ 941.pillbar.at-start::before { 942 opacity: 0; 943} 944.pillbar.at-end::after { 945 opacity: 0; 946} 947 948/* The Container - Fixed to GRID */ 949.pill-scroll { 950 background-color: #f8fafc; 951 display: flex; 952 gap: 14px; 953 954 overflow-x: auto; 955 overflow-y: visible; 956 957 justify-content:flex-start; 958 scroll-snap-type: x mandatory; 959 scroll-padding-left: calc(50% - 16px); 960 scroll-padding-right: 50%; 961 962 padding: 4px 0px; 963 964 /* 965 * NOTE: do NOT set `scroll-behavior: smooth` here. 966 * 967 * The active pill (`.switch-pill.is-active`) uses `scroll-snap-align: center`, 968 * so on page load the browser will try to reach that snap point. With smooth 969 * scrolling, that's animated over ~300ms and the browser fires scroll events 970 * continuously during the animation. Combined with mandatory snap, Chrome's 971 * paint-timing observer stays in an "unsettled layout" state the entire time 972 * and never commits a Largest Contentful Paint candidate â which shows up 973 * as NO_LCP in Lighthouse (performance score 0). 974 * 975 * Leaving scroll-behavior at its default (`auto`) makes the initial snap 976 * instantaneous: no animation frames, LCP commits, score jumps from 0 -> 90+. 977 * User-triggered centering (in centerActive below) is also instant â if we 978 * ever want smooth scroll specifically for clicks, do it programmatically 979 * with `rail.scrollTo({left, behavior: 'smooth'})` AFTER first paint. 980 */ 981 cursor: grab; 982 -webkit-overflow-scrolling: touch; 983 984 scrollbar-width: none; /* Firefox */ 985} 986 987.pill-scroll::before, 988.pill-scroll::after{ 989 content:""; 990 flex:0 0 50%; 991} 992 993 994.pill-scroll::-webkit-scrollbar {
995 display: none; /* Chrome/Safari */ 996} 997 998.pill-scroll.is-dragging { 999 cursor: grabbing; 1000} 1001 1002 1003/* Navigation Buttons (Hidden for Grid Layout) */ 1004.pill-nav { display: none !important; } 1005 1006/* ================================ 1007 SWITCH PILL â COURSE TOGGLE 1008 ================================ */ 1009 1010.switch-pill { 1011 scroll-snap-align: center; 1012 1013 position: relative; 1014 display: flex; 1015 align-items: center; 1016 1017 flex: 0 0 auto; 1018 min-width: 260px; 1019 max-width: 380px; 1020 min-height: 60px; 1021 1022 padding: 14px 22px 14px 68px; 1023 1024 border-radius: 999px; 1025 border: 1.5px solid #d0d8ff; 1026 background: linear-gradient(180deg, #ffffff 0%, #f8faff 100%); 1027 1028 color: #0b2fa3; 1029 font: 600 14px/1.25 'Poppins','Figtree',sans-serif; 1030 1031 box-shadow: 0 2px 4px rgba(11,47,163,0.04); 1032 cursor: pointer; 1033 transition: all .18s ease; 1034 text-align: left; 1035} 1036 1037.switch-pill .ico { 1038 position: absolute; 1039 left: 12px; 1040 top: 50%; 1041 transform: translateY(-50%); 1042 1043 width: 40px; 1044 height: 40px; 1045 border-radius: 50%; 1046 1047 border: 1.5px solid #b8c4ff; 1048 background: linear-gradient(180deg, #f9fbff 0%, #f2f4ff 100%); 1049 1050 display: flex; 1051 align-items: center; 1052 justify-content: center; 1053 1054 box-shadow: 0 2px 5px rgba(11,47,163,.06); 1055 transition: all .25s ease; 1056} 1057 1058.switch-pill .ico img { 1059 width: 22px; 1060 height: 22px; 1061 object-fit: contain; 1062 filter: brightness(0) saturate(100%) invert(18%) sepia(64%) 1063 saturate(1945%) hue-rotate(211deg) 1064 brightness(91%) contrast(95%); 1065} 1066 1067.switch-pill .txt { 1068 min-width: 0; 1069} 1070 1071.switch-pill .title { 1072 white-space: normal; 1073} 1074 1075/* Pill States */ 1076.switch-pill:hover { 1077 background: #f8faff; box-shadow: 0 4px 12px rgba(11,47,163,.08); transform: translateY(-1px); 1078} 1079.switch-pill:focus-visible { outline: 3px solid #2d6cff; outline-offset: 2px; } 1080 1081.switch-pill.is-active { 1082 background: linear-gradient(180deg, #eaf0ff 0%, #dfe5ff 100%); 1083 border-color: #5f7ad6; 1084 color: #0b2fa3; 1085 box-shadow: inset 0 2px 6px rgba(95, 122, 214, 0.25), 0 1px 3px rgba(11, 47, 163, 0.05); 1086} 1087 1088/* Specific Grid Overrides based on content type */ 1089.pill-scroll[data-grid="bls"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } 1090.pill-scroll[data-grid="advanced"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } 1091 1092/* ========================================= 1093 3. COURSE CARD LAYOUT 1094 ========================================= */ 1095.course-snapshot { 1096 padding: 10px 0px; 1097 font-family: 'Poppins','Figtree',sans-serif; color: #333; 1098} 1099 1100/* Image Swap Animation */ 1101#c-image { transition: opacity .18s ease; cursor: zoom-in; } 1102#courseCard.is-swapping #c-image { opacity: 0; } 1103#courseCard .snapshot-wrap { transition: opacity .18s ease, transform .18s ease; } 1104#courseCard.is-swapping .snapshot-wrap { opacity: .4; transform: translateY(2px); } 1105 1106.snapshot-wrap { 1107 display: flex; justify-content: center; align-items: center; 1108 gap: 60px; flex-wrap: wrap; max-width: 1100px; margin: 0 auto; 1109 background: #fff; border: 1px solid #e0e7ff; border-radius: 18px; 1110 padding: 48px; 1111 box-shadow: 0 10px 28px rgba(11,47,163,0.14), 0 0 0 2px rgba(11,47,163,0.06); 1112 box-shadow: 0 16px 40px rgba(0,0,0,0.1); 1113 1114} 1115 1116.snapshot-info { flex: 1 1 600px; text-align: left; } 1117.snapshot-info h1 { font-size: 32px; font-weight: 700; color: #0b2fa3; margin-bottom: 8px; } 1118.subhead { font-size: 15px; color: #555; margin-bottom: 12px; } 1119 1120.snapshot-image { 1121 flex: 1 1 300px; 1122 display: flex; 1123 flex-direction: column; 1124 justify-content: center; 1125 align-items: center; 1126 position: relative; 1127} 1128 1129.snapshot-image img { 1130 width: 100%; max-width: 360px; height: auto; 1131 border-radius: 6px; box-shadow: -16px 32px 40px rgba(0,0,0,0.1); 1132} 1133 1134.snapshot-wallet { 1135 width: 180px !important; 1136 height: auto !important; 1137 margin-top: -88px !important; 1138 margin-left: -58px !important; 1139 z-index: 200 !important; 1140 border-radius: 2px !important; 1141 box-shadow: 0px 32px 40px rgba(0,0,0,0.1); 1142} 1143 1144 1145/* Rating Stars */ 1146.rating-stars { display: flex; align-items: center; gap: 6px; font-size: 14px; color: #f28b00; margin-bottom: 18px; } 1147.rating-stars .score, .rating .reviews { color: #555; font-weight: 500; } 1148 1149/* Tags */ 1150.tag-group { display: flex; flex-wrap: wrap; gap: 10px 12px; margin-bottom: 18px; } 1151.tag { 1152 position: relative; font-size: 12px; font-weight: 500; letter-spacing: .5px; 1153 padding: 5px 12px 5px 24px; border-radius: 20px; cursor: default; 1154 background: linear-gradient(180deg, #f4f6ff 0%, #e8ecff 100%); 1155 border: 1px solid #d8defa; color: #12338c; 1156 box-shadow: inset 0 1px 3px rgba(95,122,214,.15), 0 1px 2px rgba(11,47,163,.04); 1157 transition: all .2s ease; 1158} 1159.tag::before { 1160 content: "â"; position: absolute; left: 10px; top: 50%; transform: translateY(-50%); 1161 font-size: 13.5px; color: #26a65b; font-weight: 700; opacity: .9; 1162} 1163.tag:hover { 1164 background: linear-gradient(180deg, #eaf0ff 0%, #dfe5ff 100%); 1165 color: #0b2fa3; transform: translateY(-1px); 1166 box-shadow: inset 0 2px 6px rgba(95,122,214,.25), 0 1px 3px rgba(11,47,163,.5); 1167} 1168 1169/* ========================================= 1170 4. FOOTER & PRICING 1171 ========================================= */
1172.card-footer { 1173 display: flex; 1174 flex-wrap: wrap; 1175 justify-content: flex-start; 1176 align-items: center; 1177 background: #fafbff; 1178 border: 1px solid #edf0ff; 1179 border-radius: 8px; 1180 color: #011f80; 1181 font-size: 14px; 1182 font-weight: 600; 1183 padding: 18px 24px; 1184 margin: 24px 0; 1185 text-align: center; 1186 box-shadow: inset 0 1px 4px rgba(11,47,163,.04); 1187 align-items: stretch; /* important */ 1188} 1189.card-footer .stat { 1190 padding: 12px 10px; 1191 position: relative; 1192 display: flex; 1193 flex-direction: column; 1194 align-items: center; 1195} 1196 1197/* remove outer padding */ 1198#courseCard .card-footer > .stat:first-of-type { 1199 padding-left: 0 !important; 1200} 1201 1202#courseCard .card-footer > .stat:last-of-type { 1203 padding-right: 0 !important; 1204} 1205 1206.card-footer .stat:not(:last-child)::after { 1207 content: ""; 1208 position: absolute; 1209 right: 0; 1210 top: 14px; 1211 bottom: 14px; 1212 width: 1.5px; 1213 background: rgba(15, 23, 42, 0.18); 1214} 1215 1216 1217.card-footer .label { 1218 font-size: 10px; font-weight: 600; color: #4a5cc4; text-transform: uppercase; letter-spacing: .6px; margin-bottom: 2px; 1219} 1220.card-footer .value { 1221 font-size: 14px; 1222 font-weight: 500; 1223 color: #011f80; 1224 line-height: 1.3; 1225} 1226 1227.course-stats { 1228 display: flex; 1229 align-items: center; 1230} 1231 1232.course-stats .stat { 1233 position: relative; 1234 padding: 0 24px; 1235} 1236 1237.course-stats .stat:not(:last-child)::after { 1238 content: ""; 1239 position: absolute; 1240 right: 0; 1241 top: 50%; 1242 transform: translateY(-50%); 1243 height: 36px; 1244 width: 1px; 1245 background: linear-gradient( 1246 to bottom, 1247 rgba(15, 23, 42, 0), 1248 rgba(15, 23, 42, 0.18), 1249 rgba(15, 23, 42, 0) 1250 ); 1251} 1252 1253.course-stats .stat:not(:last-child)::after { 1254 opacity: 0.7; 1255} 1256 1257.price-flex { 1258 width: 100%; display: flex; justify-content: center; align-items: center; 1259 gap: 40px; flex-wrap: wrap; margin-bottom: 6px; 1260} 1261.price-left { display: flex; align-items: center; gap: 14px; flex-shrink: 0; font-size: 18px; color: #1e2a60; } 1262.price-left strong { font-weight: 700; color: #0a1d58; margin-left: 4px; } 1263.price-left .divider { width: 1px !important; height: 20px !important; background: #c7cff5 !important; } 1264 1265.price-divider { 1266 display: block; 1267 width: 1px; 1268 height: 20px; 1269 background: #c7cff5; 1270} 1271 1272 1273.price-right { display: flex; flex-direction: column; gap: 4px; color: #22326f; line-height: 1.4; } 1274.price-right p { font-size: 13.5px; margin: 0; font-weight: 500; } 1275 1276/* ========================================= 1277 5. CTA BUTTONS 1278 ========================================= */ 1279.cta-row { 1280 display: flex; flex-wrap: wrap; gap: 16px; margin: 18px auto 0; align-items: stretch; width: 80%; 1281} 1282 1283.cta-btn, .cta-btn:link, .cta-btn:visited { 1284 flex: 1 1 260px; display: inline-flex; justify-content: center; align-items: center; 1285 height: 52px; padding: 0 26px; margin: 0; 1286 border-radius: 999px; border: 0; text-decoration: none; 1287 font-weight: 700; font-size: 17px; letter-spacing: .3px; line-height: 1; 1288 box-shadow: 0 8px 22px rgba(0,0,0,.08); 1289 transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease; 1290} 1291 1292/* Primary (Gold) */ 1293.cta-btn.primary { 1294 background: linear-gradient(180deg,#ffc947,#ff9f0a); color: #1f1400; color: #fff; text-shadow: 1295 /* inset highlight (top edge) */ 1296 0 -1px 0 rgba(255, 255, 255, 0.35), 1297 1298 /* subtle lift shadow */ 1299 0 1px 2px rgba(0, 0, 0, 0.35), 1300 0 3px 8px rgba(0, 0, 0, 0.25); 1301} 1302.cta-btn.primary:hover { 1303 transform: translateY(-1px); box-shadow: 0 10px 26px rgba(0,0,0,.12); 1304} 1305 1306/* Secondary (White/Blue) */ 1307.cta-btn.secondary { 1308 background: #fff; color: #2d6cff; 1309 border: 2px solid #cfe0ff; /* Restored border */ 1310 box-shadow: 0 4px 12px rgba(45,108,255,.12); 1311} 1312.cta-btn.secondary:hover { 1313 background: rgba(45,108,255,.08); border-color: #2d6cff; 1314} 1315 1316/* ========================================= 1317 6. RESPONSIVE 1318 ========================================= */ 1319@media (min-width: 1200px) { 1320 .pill-scroll { grid-template-columns: repeat(4, 1fr); } 1321} 1322@media (max-width: 1024px) { 1323 .pill-scroll, 1324 .pill-scroll[data-grid="bls"], 1325 .pill-scroll[data-grid="advanced"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } 1326} 1327@media (max-width: 900px) { 1328 .snapshot-wrap { flex-direction: column; align-items: center; text-align: center; } 1329 .snapshot-info { flex: 0 1 auto; max-width: 100%; width: 100%; } 1330 .snapshot-image { order: -1; margin-bottom: 30px; } 1331} 1332@media (max-width: 700px) { 1333 .card-footer { flex-direction: column; gap: 12px; padding: 12px 16px; } 1334 .card-footer .stat:not(:last-child)::after { content: none; } 1335 .price-flex { flex-direction: column; align-items: flex-start; gap: 14px; } 1336 .price-right { padding-left: 2px; } 1337 .cta-row { flex-direction: column; } 1338 .cta-btn { flex: 1 1 auto; width: 100%; } 1339 .snapshot-info .cta-row { width: 100%; gap: 10px; margin-top: 14px; } 1340 .snapshot-info .cta-btn, 1341 .snapshot-info .cta-btn:link, 1342 .snapshot-info .cta-btn:visited { 1343 flex: 0 0 40px; 1344 height: 40px; 1345 min-height: 40px; 1346 max-height: 40px; 1347 padding: 0 14px; 1348 border-radius: 999px; 1349 font-size: 14px; 1350 font-weight: 700; 1351 line-height: 1.15; 1352 letter-spacing: 0; 1353 box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18); 1354 text-shadow: 1355 0 1px 1px rgba(0, 0, 0, 0.25), 1356 0 2px 6px rgba(0, 0, 0, 0.15); 1357 } 1358} 1359@media (max-width: 600px) { 1360 .switch-pill { padding: 12px 14px; } 1361 .switch-pill .ico { width: 36px; height: 36px; } 1362 .pill-scroll, 1363 .pill-scroll[data-grid="bls"], 1364 .pill-scroll[data-grid="advanced"] { grid-template-columns: 1fr !important; } 1365} 1366@media (max-width: 480px) { 1367 .switch-pill .txt .sub { display: none; } 1368} 1369 1370 1371.snapshot-wrap { 1372 position: relative; 1373} 1374 1375.card-nav { 1376 position: absolute; 1377 top: 50%; 1378 transform: translateY(-50%); 1379 width: 42px; 1380 height: 42px; 1381 border-radius: 50%; 1382 border: none; 1383 cursor: pointer; 1384 z-index: 3; 1385 1386 background: rgba(255,255,255,0.85); 1387 backdrop-filter: blur(6px); 1388 box-shadow: 0 6px 24px rgba(0,0,0,0.18); 1389 1390 opacity: 0; 1391 pointer-events: none; 1392 transition: opacity 0.2s ease, transform 0.2s ease; 1393} 1394 1395.snapshot-wrap:hover .card-nav { 1396 opacity: 1; 1397 pointer-events: auto; 1398} 1399
1400.card-nav.prev { left: -16px; } 1401.card-nav.next { right: -16px; } 1402 1403/* arrow */ 1404.card-nav::before { 1405 content: ''; 1406 width: 10px; 1407 height: 10px; 1408 border-top: 2px solid #0b2fa3; 1409 border-right: 2px solid #0b2fa3; 1410 display: block; 1411 margin: auto; 1412} 1413 1414.card-nav.prev::before { transform: rotate(-135deg); } 1415.card-nav.next::before { transform: rotate(45deg); } 1416 1417/* mobile: always visible */ 1418@media (max-width: 768px) { 1419 .card-nav { 1420 opacity: 1; 1421 pointer-events: auto; 1422 } 1423} 1424 1425 1426</style> 1427 1428 1429<section class="course-snapshot"> 1430 1431<div class="course-tier-switch"> 1432 <a href="#advanced" class="tier-link"> 1433 <span class="tier-label">Advanced Life Support Courses</span> 1434 <span class="tier-rule"></span> 1435 </a> 1436 1437 <a href="#bls" class="tier-link is-active"> 1438 <span class="tier-label">Basic Life Support Courses</span> 1439 <span class="tier-rule"></span> 1440 </a> 1441</div> 1442 1443 1444<div class="pill-section"> 1445 <div class="pillbar" data-sticky> 1446 <div class="pill-scroll" role="radiogroup" aria-label="Select a course" data-grid="bls"> 1447 1448 <button class="switch-pill" role="radio" aria-checked="false" data-course="acpr" data-tier="bls"> 1449 <span class="ico"><img src="/public/images/icon-old-man.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"></span> 1450 <span class="txt"><span class="title">Adult CPR + AED</span><span class="sub" style="display:none">Adult-only</span></span> 1451 </button> 1452 1453 <button class="switch-pill" role="radio" aria-checked="false" data-course="hcp" data-tier="bls"> 1454 <span class="ico"><img src="/public/images/icon-doctor.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"></span> 1455 <span class="txt"><span class="title">Healthcare Provider BLS</span><span class="sub" style="display:none">Healthcare Provider</span></span> 1456 </button> 1457 1458 <button class="switch-pill is-active" role="radio" aria-checked="true" data-course="cpr" data-tier="bls"> 1459 <span class="ico"><img src="/public/images/icon-family.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"></span> 1460 <span class="txt"><span class="title">Adult & Pediatric CPR + AED</span><span class="sub" style="display:none">General Workplace</span></span> 1461 </button> 1462 1463 <button class="switch-pill" role="radio" aria-checked="false" data-course="bfa" data-tier="bls"> 1464 <span class="ico"><img src="/public/images/icon-wound.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"></span> 1465 <span class="txt"><span class="title">Emergency First Aid</span><span class="sub" style="display:none">Injuries & Illness</span></span> 1466 </button> 1467 1468 <button class="switch-pill" role="radio" aria-checked="false" data-course="bbp" data-tier="bls"> 1469 <span class="ico"><img src="/public/images/icon-blood.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"></span> 1470 <span class="txt"><span class="title">Bloodborne Pathogens (BBP)</span><span class="sub" style="display:none">OSHA 1910.1030</span></span> 1471 </button> 1472 1473 <button class="switch-pill" role="radio" aria-checked="false" data-course="bcls" data-tier="bls"> 1474 <span class="ico"><img src="/public/images/icon-hand-heart.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"></span> 1475 <span class="txt"><span class="title">Comprehensive BLS Bundle<br>(A/P CPR + First Aid + BBP)</span><span class="sub" style="display:none">CPR + First Aid</span></span> 1476 </button> 1477 1478 <button class="switch-pill" role="radio" aria-checked="false" data-course="acls" data-tier="advanced"> 1479 <span class="ico"><img src="/public/images/icon-family.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"></span> 1480 <span class="txt"><span class="title">Advanced Cardiovascular Life Support<br>(ACLS)</span><span class="sub" style="display:none">Advanced Adult</span></span> 1481 </button> 1482 1483 <button class="switch-pill" role="radio" aria-checked="false" data-course="pals" data-tier="advanced"> 1484 <span class="ico"><img src="/public/images/icon-kids.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"></span>
1485 <span class="txt"><span class="title">Pediatric Advanced Life Support<BR>(PALS)</span><span class="sub" style="display:none">Advanced Pediatric</span></span> 1486 </button> 1487 1488 <button class="switch-pill" role="radio" aria-checked="false" data-course="nrs" data-tier="advanced"> 1489 <span class="ico"><img src="/public/images/icon-infant.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"></span> 1490 <span class="txt"><span class="title">Neonatal Resuscitation & Stabilization<br>(NRP-equivalent)</span><span class="sub" style="display:none">Neonatal Resuscitation & Stabilization</span></span> 1491 </button> 1492 1493 </div> 1494 </div> 1495</div> 1496 1497 1498 <section class="course-snapshot" id="courseCard"> 1499 1500 <section class="course-intro" aria-live="polite" style="display: none;"> 1501 <div class="course-intro-inner"> 1502 <h2 id="intro-title" style="display: none;"></h2> 1503 <p id="intro-body"></p> 1504 </div> 1505 </section> 1506 1507 <div class="snapshot-wrap"> 1508 1509 <button class="card-nav prev" aria-label="Previous course"></button> 1510 1511 <div class="snapshot-info"> 1512 <h1 id="c-title">Adult & Pediatric CPR + AED</h1> 1513 <p class="subhead" id="c-subhead">Ideal for workplace, school, and public responders needing general certification in CPR, AED, and choking response across all age groups.</p> 1514 1515 <div class="rating-stars"> 1516 <div class="stars" id="c-stars">â â â â â </div> 1517 <span class="score" id="c-score">4.9 / 5</span> 1518 <span class="reviews" id="c-reviews">(2,340 reviews)</span> 1519 </div> 1520 1521 <div class="card-footer" id="c-footer"> 1522 <div class="tag-group" id="c-tags"></div> 1523 </div> 1524 1525 <div class="price-flex"> 1526 <div class="price-left"> 1527 <span class="train">Train Free <strong id="c-train">$0</strong></span> 1528 <!--span class="divider"></span--> 1529 <span class="price-divider"></span> 1530 <span class="certify">Certify Once <strong id="c-certify">$29.95</strong></span> 1531 </div> 1532 <div class="price-right" id="c-bullets" style="display: none;"></div> 1533 </div> 1534 1535 <div class="cta-row"> 1536 <a class="cta-btn primary" id="c-cta-primary" href="/courses/cpr/start">Start Free Course</a> 1537 <a class="cta-btn secondary" id="c-cta-secondary" href="/exam/cpr" style="display: none;">Take Exam Only</a> 1538 </div> 1539 </div> 1540 1541 <div class="snapshot-image"> 1542 <!-- width/height attrs give the browser an intrinsic aspect-ratio so 1543 height:auto resolves to a non-zero value BEFORE the image loads. 1544 Without this, loading="lazy" + height:auto = 0px height, the 1545 intersection observer never fires, the image never loads, and 1546 Chrome's LCP observer sits in an "unsettled layout" state 1547 (no LCP ever gets committed). --> 1548 <img id="c-image" src="/public/images/cert-image.webp" alt="Adult, Child and Infant CPR Certificate" width="720" height="1018" loading="lazy" decoding="async"> 1549 <img id="c-wallet" src="/public/images/cpr-card-image.webp" class="snapshot-wallet" alt="" width="363" height="238" loading="lazy" decoding="async"> 1550 </div> 1551 1552 <button class="card-nav next" aria-label="Next course"></button> 1553 1554 </div> 1555 </section> 1556 1557 <div id="imgModal" class="img-modal" aria-hidden="true"> 1558 <div class="img-modal__overlay" data-close></div> 1559 <figure class="img-modal__content"> 1560 <button class="img-modal__close" type="button" data-close aria-label="Close">Ã</button> 1561 <img id="modalImg" alt="Certificate preview"> 1562 <figcaption id="modalCaption"></figcaption> 1563 </figure> 1564 </div> 1565</section> 1566
1567<script> 1568window.COURSE_DATA = { 1569 cpr: { 1570 title: 'Adult & Pediatric CPR + AED', 1571 intro: ` 1572 This course prepares you to respond confidently to sudden cardiac arrest 1573 in adults, children, and infants â the most common life-threatening 1574 emergencies in workplaces, schools, and public spaces. 1575 1576 Youâll learn how to recognize cardiac emergencies, perform high-quality 1577 chest compressions, deliver rescue breaths, and safely use an AED. 1578 Complete the training online, pass the exam, and instantly download your 1579 CPRToday! Certificate of Completion and wallet card. 1580 ` 1581 }, 1582 1583 hcp: { 1584 title: 'Healthcare Provider BLS', 1585 intro: ` 1586 Designed for healthcare professionals and first responders, this BLS course 1587 emphasizes high-performance CPR, team-based resuscitation, and advanced 1588 life support fundamentals. 1589 1590 Training includes adult, child, and infant CPR, bag-mask ventilation, 1591 AED use, and coordinated team response. Study at your own pace, test when 1592 ready, and receive a trusted certification immediately after passing. 1593 ` 1594 }, 1595 1596 acpr: { 1597 title: 'Adult CPR', 1598 intro: ` 1599 Adult CPR focuses exclusively on the most likely real-world cardiac 1600 emergencies â sudden cardiac arrest in adults at work, at home, or in 1601 public settings. 1602 1603 Learn how to assess an unresponsive adult, perform effective chest 1604 compressions, manage choking emergencies, and operate an AED. 1605 Train online and download your certification instantly after completion. 1606 ` 1607 }, 1608 1609 bfa: { 1610 title: 'Emergency First Aid', 1611 intro: ` 1612 Emergency First Aid training equips you to respond to common injuries and 1613 medical emergencies until professional help arrives. 1614 1615 Topics include bleeding control, burns, fractures, allergic reactions, 1616 shock, and illness recognition. This course is ideal for workplaces, 1617 schools, and community responders seeking practical, everyday readiness. 1618 ` 1619 }, 1620 1621 bbp: { 1622 title: 'Bloodborne Pathogens (BBP)', 1623 intro: ` 1624 Bloodborne Pathogens training meets OSHA 1910.1030 requirements for employees 1625 who may encounter blood or other potentially infectious materials on the job. 1626 1627 Learn exposure prevention, proper use of PPE, spill response, and 1628 post-exposure procedures. Complete the course online and instantly download 1629 your Certificate of Completion. 1630 ` 1631 }, 1632 1633 bcls: { 1634 title: 'Comprehensive BLS Bundle', 1635 intro: ` 1636 The Comprehensive BLS Bundle combines CPR, AED, First Aid, and Bloodborne 1637 Pathogens training into a single, cost-effective certification solution. 1638 1639 Ideal for employers and professionals needing broad compliance coverage, 1640 this bundle delivers complete readiness across medical, injury, and 1641 exposure-control scenarios â all at your own pace. 1642 ` 1643 }, 1644 1645 acls: { 1646 title: 'Advanced Cardiovascular Life Support (ACLS)', 1647 intro: ` 1648 Advanced Cardiovascular Life Support focuses on the recognition and 1649 management of life-threatening cardiac and respiratory emergencies 1650 in adult patients. 1651 1652 This course covers advanced airway management, cardiac rhythms, 1653 pharmacology, and team-based resuscitation principles used in 1654 high-acuity clinical settings. Train fully online, demonstrate 1655 competency through assessment, and receive your ACLS certificate 1656 immediately after passing. 1657 ` 1658 }, 1659 1660 pals: { 1661 title: 'Pediatric Advanced Life Support (PALS)', 1662 intro: ` 1663 Pediatric Advanced Life Support prepares providers to recognize and 1664 manage critically ill or injured infants and children during 1665 emergency situations. 1666 1667 Training emphasizes pediatric assessment, airway and respiratory 1668 management, cardiac emergencies, and coordinated team response. 1669 Complete the course online, test when ready, and instantly access 1670 your PALS certification upon successful completion. 1671 ` 1672 }, 1673 1674 nrs: { 1675 title: 'Neonatal Resuscitation & Stabilization (NRP-Equivalent)', 1676 intro: ` 1677 Neonatal Resuscitation training focuses on the critical first minutes 1678 of life, preparing providers to respond to newborn respiratory and 1679 cardiovascular compromise at birth. 1680 1681 Topics include initial assessment, ventilation, airway support, and 1682 post-resuscitation stabilization. This NRP-equivalent course is 1683 completed fully online and provides immediate certification after 1684 passing the final assessment. 1685 ` 1686 } 1687 1688}; 1689 1690 1691</script>
1691 1692 1693
1694<script> 1695(() => { 1696 /** 1697 * CONFIGURATION & DATA 1698 * Centralized source of truth for all course content. 1699 */ 1700 const COURSE_DATA = { 1701 cpr: { 1702 title: 'Adult & Pediatric CPR + AED', 1703 subhead: 'Ideal for workplace, school, and public responders needing general certification in CPR, AED, and choking response across all age groups.', 1704 stars: 'â â â â â ', score: '4.9 / 5', reviews: '(2,340 reviews)', 1705 image: '/public/images/cert-ap-cpr.webp', 1706 imageAlt: 'Adult, Child and Infant CPR Certificate', 1707 wallet: '/public/images/cpr-card-image.webp', 1708 pricing: { train: '$0', certify: '$29.95' }, 1709 bullets: ['â Train and Test For Free','â Pay Only When You Pass','â Instant Certificate and eCard'], 1710 tags: ['Basic Life Support','Adult CPR','Child CPR','Infant CPR','AED Operation','Scene Safety','Choking Emergencies','Hands-Only CPR','1- & 2-Rescuer','Recovery Position','More...'], 1711 stats: [['STANDARD','AHA 2025 Updates'], ['COURSE LEVEL','Beginner â Expert'], ['TESTING','Free; Unlimited'], ['TIME TO COMPLETE','60-90 mins.']], 1712 ctas: { primaryText:'Start Your Adult & Pediatric CPR Course Now', primaryHref:'/#cta', secondaryText:'Take Exam Only', secondaryHref:'/exam/cpr', course: 2} 1713 }, 1714 hcp: { 1715 title: 'Healthcare Provider BLS', 1716 subhead: 'Built for healthcare providers and first responders: team CPR, bag-mask, and AED with emphasis on high-quality compressions.', 1717 stars: 'â â â â â ', score: '4.9 / 5', reviews: '(1,820 reviews)', 1718 image: '/public/images/cert-hcp-bls.webp', 1719 imageAlt: 'BLS Provider Certificate', 1720wallet: '/public/images/hcp-card-image.webp', 1721 pricing: { train: '$0', certify: '$39.95' }, 1722 bullets: ['â Train and Test For Free','â Pay Only When You Pass','â Instant Certificate and eCard'], 1723 tags: ['Healthcare Providers','Adult & Pediatric CPR','AED Operation','Infection Control','PPE & Barrier Devices','Team-Based Resuscitation','High-Quality Compressions','Post-Resuscitation Care','Moreâ¦'], 1724 stats: [['STANDARD','AHA 2025 Updates'], ['COURSE LEVEL','Clinical / Pro'], ['TESTING','Free; Unlimited'], ['TIME TO COMPLETE','90-120 mins.']], 1725 ctas: { primaryText:'Start Your Healthcare Provider BLS Course Now', primaryHref:'/#cta', secondaryText:'Take Exam Only', secondaryHref:'/exam/bls', course: 7} 1726 }, 1727 acpr: { 1728 title: 'Adult CPR + AED', 1729 subhead: 'Focused adult-only CPR and AED for workplace and community rescuers.', 1730 stars: 'â â â â â ', score: '4.9 / 5', reviews: '(1,540 reviews)', 1731 image: '/public/images/cert-adult-cpr.webp', 1732 imageAlt: 'Adult CPR Certificate', 1733wallet: '/public/images/acpr-card-image.webp', 1734 pricing: { train: '$0', certify: '$24.95' }, 1735 bullets: ['â Train and Test For Free','â Pay Only When You Pass','â Instant Certificate and eCard'], 1736 tags: ['Basic Life Support','AED Operation','Scene Safety','Choking Emergencies','Hands-Only CPR','1- & 2-Rescuer','Recovery Position','More...'], 1737 stats: [['STANDARD','AHA 2025 Updates'], ['COURSE LEVEL','Beginner â Expert'], ['TESTING','Free; Unlimited'], ['TIME TO COMPLETE','45â60 mins']], 1738 ctas: { primaryText:'Start Your Adult CPR + AED Course Now', primaryHref:'/#cta', secondaryText:'Take Exam Only', secondaryHref:'/exam/adult-cpr' , course: 8} 1739 }, 1740 bfa: { 1741 title: 'Emergency First Aid', 1742 subhead: 'Essentials: bleeding, burns, fractures, allergic reactions, illness assessment.', 1743 stars: 'â â â â â ', score: '4.9 / 5', reviews: '(2,010 reviews)', 1744 image: '/public/images/cert-first-aid.webp', 1745 imageAlt: 'First Aid Certificate', 1746wallet: '/public/images/bfa-card-image.webp', 1747 pricing: { train: '$0', certify: '$29.95' }, 1748 bullets: ['â Train and Test For Free','â Pay Only When You Pass','â Instant Certificate and eCard'], 1749 tags: ['Bleeding Control','Burns & Fractures','Allergic Reactions','Epi-Pen Use','Medical Emergencies','Shock Management','Illness & Injury Care','Wound Dressing','Scene Safety','Moreâ¦'], 1750 stats: [['STANDARD','OSHA-Aligned'], ['COURSE LEVEL','Beginner â Expert'], ['TESTING','Free; Unlimited'], ['TIME TO COMPLETE','60â90 mins.']], 1751 ctas: { primaryText:'Start Your First Aid Course Now', primaryHref:'/#cta', secondaryText:'Take Exam Only', secondaryHref:'/exam/first-aid' , course: 3} 1752 }, 1753 bbp: { 1754 title: 'Bloodborne Pathogens (BBP)', 1755 subhead: 'OSHA 1910.1030 exposure control for tattoo, aesthetics, janitorial, and healthcare-adjacent roles.', 1756 stars: 'â â â â â ', score: '4.9 / 5', reviews: '(860 reviews)', 1757 image: '/public/images/cert-bbp.webp', 1758 imageAlt: 'Bloodborne Pathogens Certificate', 1759wallet: '/public/images/bbp-card-image.webp', 1760 pricing: { train: '$0', certify: '$24.95' }, 1761 bullets: ['â Train and Test For Free','â Pay Only When You Pass','â Instant Certificate and eCard'], 1762 tags: ['Exposure Control Plan','Universal Precautions','PPE Usage','Sharps Safety','Decontamination Procedures','Hand Hygiene','Post-Exposure Protocols','Waste Disposal & Labeling','More...'], 1763 stats: [['STANDARD','OSHA 1910.1030'], ['COURSE LEVEL','Beginner â Expert'], ['TESTING','Free; Unlimited'], ['TIME TO COMPLETE','45â60 mins.']], 1764 ctas: { primaryText:'Start Your Bloodborne Pathogens Course Now', primaryHref:'/#cta', secondaryText:'Take Exam Only', secondaryHref:'/exam/bbp', course: 12} 1765 }, 1766 bcls: { 1767 title: 'Comprehensive BLS Bundle', 1768 subhead: 'CPR + AED + First Aid coverage for broad workplace compliance.', 1769 stars: 'â â â â â ', score: '4.9 / 5', reviews: '(3,120 reviews)', 1770 image: '/public/images/cert-hcp-bls.webp', 1771 imageAlt: 'Comprehensive BLS Certificate', 1772wallet: '/public/images/cpr-card-image.webp', 1773 pricing: { train: '$0', certify: '$54.95' }, 1774 bullets: ['â Full compliance set','â Train free, pay on pass','â Instant cert & eCard'], 1775 tags: ['Adult, Child, and Infant CPR','AED For All Ages','Hands-Only CPR','Scene Safety','Single & 2-Rescuer Techniques','
1775Emergency First Aid','Choking Response','Epi-Pen Administration','Moreâ¦'], 1776 stats: [['STANDARD','AHA & OSHA Aligned'], ['COURSE LEVEL','Beginner â Expert'], ['TESTING','Free; Unlimited'], ['TIME TO COMPLETE','2â3 hrs.']], 1777 ctas: { primaryText:'Start Your Comprehensive BLS Bundle Now', primaryHref:'/#cta', secondaryText:'Take Exam Only', secondaryHref:'/exam/cpr-first-aid', course: 1} 1778 }, 1779 acls: { 1780 title: 'ACLS/Advanced Cardiovascular Life Support', 1781 subhead: 'Advanced algorithms for cardiac arrest, bradycardia, tachycardia, and post-ROSC care with airway and pharmacology.', 1782 stars: 'â â â â â ', score: '4.8 / 5', reviews: '(1,265 reviews)', 1783 image: '/public/images/cert-acls.webp', 1784 imageAlt: 'ACLS Certificate', 1785wallet: '/public/images/acls-card-image.webp', 1786 pricing: { train: '$0', certify: '$139' }, 1787 bullets: ['â Defibrillation & cardioversion','â Megacode practice','â Instant cert & eCard'], 1788 tags: ['Advanced Algorithms','Defibrillation','Cardioversion','Airway Management','Pharmacology','Bradycardia & Tachycardia','Post-ROSC Care','Team Leadership','Megacodes','Moreâ¦'], 1789 stats: [['STANDARD','AHA 2025 Updates'], ['COURSE LEVEL','Expert'], ['TESTING','Free; Unlimited'], ['TIME TO COMPLETE','3â5 hrs.']], 1790 ctas: { primaryText:'Start Your ACLS Course Now', primaryHref:'/#cta', secondaryText:'Take Exam Only', secondaryHref:'/exam/acls' , course: 17} 1791 }, 1792 pals: { 1793 title: 'PALS/Pediatric Advanced Life Support', 1794 subhead: 'Pediatric advanced life support: recognition, algorithms, dosing, and team-based resuscitation for infants and children.', 1795 stars: 'â â â â â ', score: '4.8 / 5', reviews: '(1,030 reviews)', 1796 image: '/public/images/cert-pals.webp', 1797 imageAlt: 'PALS Certificate', 1798wallet: '/public/images/pals-card-image.webp', 1799 pricing: { train: '$0', certify: '$139' }, 1800 bullets: ['â Pediatric algorithms','â Dosing quick refs','â Instant cert & eCard'], 1801 tags: ['Pediatric Assessment','Airway Management','Arrhythmias','Shock Recognition','Cardiac Arrest Algorithms','Drug Dosing','Team Dynamics','Megacodes','Moreâ¦'], 1802 stats: [['STANDARD','AHA 2025 Updates'], ['COURSE LEVEL','Expert'], ['TESTING','Free; Unlimited'], ['TIME TO COMPLETE','3â5 hrs.']], 1803 ctas: { primaryText:'Start Your PALS Course Now', primaryHref:'/#cta', secondaryText:'Take Exam Only', secondaryHref:'/exam/pals', course: 18} 1804 }, 1805 1806 nrs: { 1807 title: 'Neonatal Resuscitation & Stabilization/NRP-equivalent', 1808 subhead: 'Neonatal resuscitation principles: assessment, ventilation, airway support, and coordinated response during the critical first minutes of life.', 1809 stars: 'â â â â â ', score: '4.9 / 5', reviews: '(620 reviews)', 1810 image: '/public/images/cert-nrs.webp', 1811 imageAlt: 'Neonatal Resuscitation Certificate', 1812wallet: '/public/images/nrs-card-image.webp', 1813 pricing: { train: '$0', certify: '$139' }, 1814 bullets: ['â Neonatal algorithms','â Ventilation & airway focus','â Instant cert & eCard'], 1815 tags: [ 1816 'Initial Newborn Assessment', 1817 'Airway & Ventilation', 1818 'Oxygenation', 1819 'Heart Rate Evaluation', 1820 'Ventilation', 1821 'Medication Overview', 1822 'Post-Resuscitation Stabilization', 1823 'Moreâ¦' 1824 ], 1825 stats: [ 1826 ['STANDARD','NRP-Equivalent'], 1827 ['COURSE LEVEL','Advanced'], 1828 ['TESTING','Free; Unlimited'], 1829 ['TIME TO COMPLETE','2â4 hrs. (self-paced)'] 1830 ], 1831 ctas: { 1832 primaryText:'Start Your NRS (NRP-equiv) Course Now', 1833 primaryHref:'/#cta', 1834 secondaryText:'Take Exam Only', 1835 secondaryHref:'/exam/nrs', 1836 course: 19 1837 } 1838 } 1839 }; 1840 1841 /** 1842 * MAIN APPLICATION CONTROLLER 1843 */ 1844 const CourseApp = { 1845 elements: {}, 1846 1847 init() { 1848 // 1. Cache DOM references for performance 1849 this.elements = { 1850 card: document.getElementById('courseCard'), 1851 pills: [...document.querySelectorAll('.switch-pill')], 1852 title: document.getElementById('c-title'), 1853 subhead: document.getElementById('c-subhead'), 1854 stars: document.getElementById('c-stars'), 1855 score: document.getElementById('c-score'), 1856 reviews: document.getElementById('c-reviews'), 1857 image: document.getElementById('c-image'), 1858 wallet: document.getElementById('c-wallet'), 1859 trainPrice: document.getElementById('c-train'), 1860 certPrice: document.getElementById('c-certify'), 1861 bullets: document.getElementById('c-bullets'), 1862 tags: document.getElementById('c-tags'), 1863 footer: document.getElementById('c-footer'), 1864 ctaPrim: document.getElementById('c-cta-primary'), 1865 ctaSec: document.getElementById('c-cta-secondary'), 1866 modal: document.getElementById('imgModal'), 1867 modalImg: document.getElementById('modalImg') 1868 }; 1869 1870 // 2. Determine if we need to filter courses based on URL 1871 this.applyURLFiltering(); 1872 1873 // 3. Set up Event Listeners 1874 this.bindEvents(); 1875 1876 // 4. Initial Render (based on URL hash) 1877 this.handleRouting(); 1878 }, 1879 1880 applyURLFiltering() { 1881 const path = location.pathname; 1882 const ADVANCED = ['acls', 'pals', 'nrs']; 1883 const BLS = ['cpr', 'hcp', 'acpr', 'bfa', 'bbp', 'bcls']; 1884 1885 let subset = null; 1886 if (path.includes('/advanced-courses')) subset = ADVANCED; 1887 else if (path.includes('/bls-courses')) subset = BLS; 1888 1889 if (subset) {
1890 this.elements.pills.forEach(p => { 1891 // Hide any pill that isn't in our subset 1892 if (!subset.includes(p.dataset.course)) { 1893 p.style.display = 'none'; 1894 p.setAttribute('aria-hidden', 'true'); 1895 } 1896 }); 1897 } 1898 }, 1899 1900 bindEvents() { 1901 // Course Pill Click 1902 this.elements.pills.forEach(p => { 1903 p.addEventListener('click', () => { 1904 this.setActiveState(p.dataset.course); 1905 }); 1906 }); 1907 1908 // Modal Open (clicking the certificate image) 1909 if (this.elements.image) { 1910 this.elements.image.addEventListener('click', () => this.openModal()); 1911 } 1912 1913 // Modal Close (clicking overlay or X button) 1914 if (this.elements.modal) { 1915 this.elements.modal.addEventListener('click', (e) => { 1916 if (e.target.hasAttribute('data-close')) this.closeModal(); 1917 }); 1918 } 1919 1920 // Keyboard: Escape key closes modal 1921 document.addEventListener('keydown', (e) => { 1922 if (e.key === 'Escape') this.closeModal(); 1923 }); 1924 1925 // Browser Navigation: Handle back/forward buttons 1926 window.addEventListener('hashchange', () => this.handleRouting()); 1927 }, 1928 1929 // Decide which course to show based on the URL hash (e.g. #acls) 1930 handleRouting() { 1931 let key = (location.hash || '').replace('#', ''); 1932 1933 // Fallback 1: If no hash, or invalid course key, default to 'cpr' 1934 if (!key || !COURSE_DATA[key]) key = 'cpr'; 1935 1936 // Fallback 2: If the requested key is currently hidden by our URL filter, pick the first visible one 1937 const pill = this.elements.pills.find(p => p.dataset.course === key); 1938 if (pill && pill.style.display === 'none') { 1939 const firstVisible = this.elements.pills.find(p => p.style.display !== 'none'); 1940 if (firstVisible) key = firstVisible.dataset.course; 1941 } 1942 1943 this.render(key); 1944 this.updatePills(key); 1945 }, 1946 1947 // Updates the active course without mutating the URL hash 1948 setActiveState(key) { 1949 if (!COURSE_DATA[key]) return; 1950 this.render(key); 1951 this.updatePills(key); 1952 }, 1953 1954 // Updates the visual state of the pills (blue vs white) 1955 updatePills(activeKey) { 1956 this.elements.pills.forEach(p => { 1957 const isActive = p.dataset.course === activeKey; 1958 p.classList.toggle('is-active', isActive); 1959 p.setAttribute('aria-checked', isActive); 1960 }); 1961 }, 1962 1963 // The Heavy Lifter: Swaps content in the card 1964 render(key) { 1965 const d = COURSE_DATA[key]; 1966 if (!d) return; 1967 1968 // 1. Start Fade Out 1969 if (this.elements.card) this.elements.card.classList.add('is-swapping'); 1970 1971 // 2. Update Text Content safely 1972 const setText = (el, val) => { if(el) el.textContent = val; }; 1973 setText(this.elements.title, d.title); 1974 setText(this.elements.subhead, d.subhead); 1975 setText(this.elements.stars, d.stars); 1976 setText(this.elements.score, d.score); 1977 setText(this.elements.reviews, d.reviews); 1978 setText(this.elements.trainPrice, d.pricing.train); 1979 setText(this.elements.certPrice, d.pricing.certify); 1980 1981 // 3. Update Image 1982 if (this.elements.image) { 1983 this.elements.image.src = d.image; 1984 this.elements.image.alt = d.imageAlt; 1985 } 1986 1987 if (this.elements.wallet) { 1988 this.elements.wallet.src = d.wallet; 1989 } 1990 1991 // 4. Render Bullet Points 1992 if (this.elements.bullets) { 1993 this.elements.bullets.innerHTML = d.bullets.map(b => `<p>${b}</p>`).join(''); 1994 } 1995 1996 // 5. Render Tags (remove duplicates) 1997 if (this.elements.tags) { 1998 const uniqueTags = [...new Set(d.tags)]; 1999 this.elements.tags.innerHTML = uniqueTags.map(t => `<span class="tag">${t}</span>`).join(''); 2000 } 2001 2002 // 6. Render Stats (in the footer) 2003 if (this.elements.footer) { 2004 // Remove old stats 2005 [...this.elements.footer.querySelectorAll('.stat')].forEach(n => n.remove()); 2006 // Add new stats
2007 d.stats.forEach(([label, value]) => { 2008 const s = document.createElement('div'); 2009 s.className = 'stat'; 2010 s.innerHTML = `<span class="label">${label}</span><span class="value">${value}</span>`; 2011 this.elements.footer.appendChild(s); 2012 }); 2013 } 2014 2015 // 7. Update Buttons 2016 if (this.elements.ctaPrim) { 2017 this.elements.ctaPrim.textContent = d.ctas.primaryText; 2018 this.elements.ctaPrim.href = d.ctas.primaryHref; 2019 this.elements.ctaPrim.dataset.course = d.ctas.course; 2020 this.elements.ctaPrim.onclick = (event) => { 2021 event.preventDefault(); 2022 if(d.ctas.course) { 2023 document.dispatchEvent(new CustomEvent("SignupConfigChange", { 2024 detail: { 2025 productid: d.ctas.course, 2026 } 2027 })) 2028 window.setTimeout(function(){ 2029 $([document.documentElement, document.body]).animate({ 2030 scrollTop: $("#cta").offset().top 2031 }, 0); 2032 }, 100); 2033 2034 } 2035 2036 } 2037 } 2038 if (this.elements.ctaSec) { 2039 this.elements.ctaSec.textContent = d.ctas.secondaryText; 2040 this.elements.ctaSec.href = d.ctas.secondaryHref; 2041 } 2042 2043 // 8. End Fade In (small delay for smooth transition) 2044 setTimeout(() => { 2045 if (this.elements.card) this.elements.card.classList.remove('is-swapping'); 2046 }, 140); 2047 }, 2048 2049 // Modal: Show 2050 openModal() { 2051 if (!this.elements.modal || !this.elements.modalImg || !this.elements.image) return; 2052 this.elements.modalImg.src = this.elements.image.src; 2053 this.elements.modal.classList.add('active'); 2054 this.elements.modal.setAttribute('aria-hidden', 'false'); 2055 document.body.style.overflow = 'hidden'; // Prevent background scrolling 2056 }, 2057 2058 // Modal: Hide 2059 closeModal() { 2060 if (!this.elements.modal) return; 2061 this.elements.modal.classList.remove('active'); 2062 this.elements.modal.setAttribute('aria-hidden', 'true'); 2063 document.body.style.overflow = ''; // Restore scrolling 2064 } 2065 }; 2066 2067 // OPTIMIZATION: Preload all images so they appear instantly on click 2068 window.addEventListener('load', () => { 2069 Object.values(COURSE_DATA).forEach(c => { new Image().src = c.image; }); 2070 }); 2071 2072 // START THE APP 2073 document.addEventListener('DOMContentLoaded', () => CourseApp.init()); 2074})(); 2075</script>
2075 2076 2077
2078<script> 2079(() => { 2080 const rails = document.querySelectorAll('.pill-scroll'); 2081 2082 rails.forEach(rail => { 2083 const bar = rail.closest('.pillbar'); 2084 if (!bar) return; 2085 2086 let isDown = false; 2087 let startX; 2088 let scrollLeft; 2089 2090 /* ===================== 2091 DRAG TO SCROLL 2092 ===================== */ 2093 rail.addEventListener('mousedown', e => { 2094 if (e.button !== 0) return; 2095 2096 isDown = true; 2097 rail.classList.add('is-dragging'); 2098 startX = e.pageX - rail.offsetLeft; 2099 scrollLeft = rail.scrollLeft; 2100 rail.style.userSelect = 'none'; 2101 }); 2102 2103 document.addEventListener('mouseup', () => { 2104 if (!isDown) return; 2105 isDown = false; 2106 rail.classList.remove('is-dragging'); 2107 rail.style.userSelect = ''; 2108 }); 2109 2110 document.addEventListener('mousemove', e => { 2111 if (!isDown) return; 2112 e.preventDefault(); 2113 2114 const x = e.pageX - rail.offsetLeft; 2115 const walk = (x - startX) * 1.2; 2116 rail.scrollLeft = scrollLeft - walk; 2117 }); 2118 2119 rail.addEventListener('mouseleave', () => { 2120 if (!isDown) return; 2121 isDown = false; 2122 rail.classList.remove('is-dragging'); 2123 rail.style.userSelect = ''; 2124 }); 2125 2126 /* ===================== 2127 FADE VISIBILITY LOGIC 2128 ===================== */ 2129 const updateFades = () => { 2130 const atStart = rail.scrollLeft <= 1; 2131 const atEnd = 2132 rail.scrollLeft + rail.clientWidth >= rail.scrollWidth - 1; 2133 2134 bar.classList.toggle('at-start', atStart); 2135 bar.classList.toggle('at-end', atEnd); 2136 }; 2137 2138 rail.addEventListener('scroll', updateFades); 2139 updateFades(); // initial state 2140 }); 2141})(); 2142</script>
2142 2143
2144<script> 2145(() => { 2146 2147 const centerActive = (rail) => { 2148 const active = rail.querySelector('.is-active'); 2149 syncTierFromActivePill(); 2150 if (!active) return; 2151 2152 const railRect = rail.getBoundingClientRect(); 2153 const pillRect = active.getBoundingClientRect(); 2154 const delta = 2155 (pillRect.left + pillRect.width / 2) - 2156 (railRect.left + railRect.width / 2); 2157 2158 rail.scrollLeft += delta; 2159 }; 2160 2161 const run = () => { 2162 document.querySelectorAll('.pill-scroll').forEach(rail => { 2163 centerActive(rail); 2164 requestAnimationFrame(() => centerActive(rail)); 2165 }); 2166 }; 2167 2168 window.addEventListener('load', run); 2169 window.addEventListener('resize', run); 2170 2171 /* recenter after pill change */ 2172 document.addEventListener('click', e => { 2173 const pill = e.target.closest('.switch-pill'); 2174 if (!pill) return; 2175 const rail = pill.closest('.pill-scroll'); 2176 if (!rail) return; 2177 requestAnimationFrame(() => centerActive(rail)); 2178 }); 2179 2180})(); 2181</script>
2181 2182 2183
2184<script> 2185(function () { 2186 2187 function applyIntro(key) { 2188 const course = window.COURSE_DATA[key]; 2189 if (!course) return; 2190 2191 const t = document.getElementById('intro-title'); 2192 const b = document.getElementById('intro-body'); 2193 if (!t || !b) return; 2194 2195 b.style.opacity = 0; 2196 2197 setTimeout(() => { 2198 t.textContent = course.title; 2199 b.innerHTML = course.intro; 2200 b.style.opacity = 1; 2201 }, 120); 2202 } 2203 2204 function syncTierFromActivePill() { 2205 const activePill = document.querySelector('.switch-pill.is-active'); 2206 if (!activePill) return; 2207 2208 const tier = activePill.dataset.tier; 2209 if (!tier) return; 2210 2211 document.querySelectorAll('.tier-link').forEach(link => { 2212 link.classList.toggle( 2213 'is-active', 2214 link.getAttribute('href') === `#${tier}` 2215 ); 2216 }); 2217 } 2218 2219 document.addEventListener('DOMContentLoaded', () => { 2220 2221 // ð¹ Wire pill clicks 2222 document.querySelectorAll('.switch-pill').forEach(pill => { 2223 pill.addEventListener('click', () => { 2224 document.querySelectorAll('.switch-pill') 2225 .forEach(p => p.classList.remove('is-active')); 2226 2227 pill.classList.add('is-active'); 2228 2229 applyIntro(pill.dataset.course); 2230 syncTierFromActivePill(); 2231 }); 2232 }); 2233 2234 // ð¹ Initial activation (single source of truth) 2235 const hashCourse = location.hash.replace('#', ''); 2236 const initialCourse = 2237 (hashCourse && window.COURSE_DATA?.[hashCourse] ? hashCourse : '') || 2238 document.querySelector('.switch-pill.is-active')?.dataset.course || 2239 'cpr'; 2240 2241 if (!initialCourse) return; 2242 2243 const initialPill = document.querySelector( 2244 `.switch-pill[data-course="${initialCourse}"]` 2245 ); 2246 2247 if (initialPill) { 2248 initialPill.click(); 2249 } 2250 2251 }); 2252 2253})(); 2254</script>
2254 2255 2256
2257<script> 2258function syncTierFromActivePill() { 2259 const activePill = document.querySelector(".switch-pill.is-active"); 2260 if (!activePill) return; 2261 2262 const tier = activePill.dataset.tier; 2263 if (!tier) return; 2264 2265 document.querySelectorAll(".tier-link").forEach(link => { 2266 link.classList.toggle( 2267 "is-active", 2268 link.getAttribute("href") === `#${tier}` 2269 ); 2270 }); 2271} 2272 2273document.querySelectorAll(".tier-link").forEach(link => { 2274 link.addEventListener("click", e => { 2275 e.preventDefault(); 2276 2277 const tier = link.getAttribute("href").replace("#", ""); 2278 2279 // find the first pill belonging to this tier 2280 const firstPill = document.querySelector( 2281 `.switch-pill[data-tier="${tier}"]` 2282 ); 2283 2284 if (!firstPill) return; 2285 2286 // activate it using EXISTING behavior 2287 firstPill.click(); 2288 2289 // ensure pill is visible in scroll container 2290 firstPill.scrollIntoView({ 2291 behavior: "smooth", 2292 inline: "start", 2293 block: "nearest" 2294 }); 2295 }); 2296}); 2297 2298</script>
2298 2299
2300<script> 2301(() => { 2302 const pills = [...document.querySelectorAll('.switch-pill')]; 2303 if (!pills.length) return; 2304 2305 const getActiveIndex = () => 2306 pills.findIndex(p => p.classList.contains('is-active')); 2307 2308 const go = dir => { 2309 const i = getActiveIndex(); 2310 if (i === -1) return; 2311 2312 const next = pills[i + dir]; 2313 if (next) next.click(); 2314 }; 2315 2316 document.querySelector('.card-nav.next') 2317 ?.addEventListener('click', () => go(1)); 2318 2319 document.querySelector('.card-nav.prev') 2320 ?.addEventListener('click', () => go(-1)); 2321})(); 2322</script>
2322 2323 </div> 2324 2325 <center> 2326 <p class="course-help" style="font-size: 14px; color: #475569;"> 2327 Not sure which one you need? 2328 <!--button class="launch" data-choose-wizard type="button"> 2329 Find the Right Certification 2330</button--> 2331 <a href="#" data-choose-wizard style="margin-left: 4px; font-weight: 600; color: #0067d8; text-decoration: none;">Help me choose</a> 2332 </p> 2333 </center> 2334 2335 2336 2337 </div> 2338</section> 2339 2340 2341 2342 2343 2344<section class="video-background-container"> 2345 <div class="white-watermark"></div> 2346 2347 <div class="video-content-container"> 2348 2349 <div class="hiw-header"> 2350 <h2>Trusted by millions since 1999</h2> 2351 <p class="hiw-subhead"> 2352 Approved by media. Preferred by professionals. 2353 </p> 2354 </div> 2355 2356 <figure class="trust-video"> 2357 2358 <video 2359 controls 2360 preload="none" 2361 poster="/public/images/cnn-thumbnail.webp" 2362 data-src="/public/images/cnn3.mp4" 2363 > 2364 Your browser does not support the video tag. 2365 </video> 2366 2367<!--div class="video-caption"> 2368 CNN Anderson Cooper 360 â CPRToday featured segment 2369</div--> 2370 2371 <div class="video-play-overlay"> 2372 <img src="/public/images/play-button2.webp" alt="" aria-hidden="true" loading="lazy" decoding="async"> 2373 </div> 2374 2375 <figcaption class="video-pull-quote editorial"> 2376 <!--img src="/public/images/quoteOpen.webp" class="quote-mark quote-left" alt="" aria-hidden="true"--> 2377 2378 <blockquote> 2379 The <!--span class="quote-emphasis"-->best<!--/span--> I found is CPRToday. 2380 <!--span class="quote-link">www.cprtoday.com"</span--> 2381 </blockquote> 2382 2383 <!--img src="/public/images/quoteOpen.webp" class="quote-mark quote-right" alt="" aria-hidden="true"--> 2384 </figcaption> 2385 2386 </figure> 2387 2388 </div> 2389 2390 <!-- LOGO ROW --> 2391 <div class="trust-logos" style="max-width: 1000px; margin-left: auto; margin-right: auto;"> 2392 2393 <img src="/public/images/logo_ncg.webp" alt="" width="267" height="112" loading="lazy" decoding="async"> 2394 2395 <img src="/public/images/seal_san-juan-usd2.webp" alt="" width="116" height="144" loading="lazy" decoding="async"> 2396 2397 <img src="/public/images/logo_bartlett.svg" alt="" width="119" height="50" loading="lazy" decoding="async"> 2398 2399 <img src="/public/images/gphainc_logo.svg" alt="" width="170" height="135" loading="lazy" decoding="async"> 2400 2401 <img src="/public/images/stjohns_logoHorz.webp" alt="" width="219" height="112" loading="lazy" decoding="async"> 2402 2403<img src="/public/images/amergis-logo.svg" alt="" width="154" height="63" loading="lazy" decoding="async"> 2404 2405 <img src="/public/images/logo_sonc.svg" alt="" width="293" height="70" loading="lazy" decoding="async"> 2406 2407<img src="/public/images/seal_soledad-usd.webp" alt="" width="515" height="485" loading="lazy" decoding="async"> 2408<img src="/public/images/logo_sero.webp" alt="" width="240" height="80" loading="lazy" decoding="async"> 2409<img src="/public/images/seal_new-season_logoVert.webp" alt="" width="138" height="94" loading="lazy" decoding="async"> 2410 2411<img src="/public/images/seal_bep.svg" alt="" width="282" height="282" loading="lazy" decoding="async"> 2412<img src="/public/images/seal_duncanville.webp" alt="" width="144" height="144" loading="lazy" decoding="async"> 2413 2414<img src="/public/images/logo_pres-senior.webp" alt="" width="434" height="130" loading="lazy" decoding="async"> 2415<img src="/public/images/logo_south-bay.webp" alt="" width="152" height="112" loading="lazy" decoding="async"> 2416 2417<img src="/public/images/fight_logo.webp" alt="" width="413" height="112" loading="lazy" decoding="async"> 2418 <img src="/public/images/logo_doubletree.svg" alt="" width="44" height="21" loading="lazy" decoding="async"> 2419<!--img src="/public/images/logo_xpo.webp"--> 2420 2421 </div> 2422 2423<div class="trust-meta"> 2424 A small sample of organizations we support nationwide 2425</div> 2426 2427 2428</section> 2429 2430<section class="hiw-scroll" style="display: none"> 2431 2432 <div class="hiw-header"> 2433 <h2>How it works</h2> 2434 <p class="hiw-subhead"> 2435 Start when youâre ready. Take your time. Pay only when you pass. 2436 </p> 2437 </div> 2438 2439 <div class="hiw-timeline"> 2440 2441 <!-- Vertical dotted connector --> 2442 <div class="hiw-line"></div> 2443 2444 <!-- STEP 1 --> 2445 <div class="hiw-step hiw-left"> 2446<div class="hiw-step-label"> 2447 <span>S</span> 2448 <span>t</span> 2449 <span>a</span> 2450 <span>r</span> 2451 <span>t</span> 2452</div> 2453 <div class="hiw-photo"> 2454 <img src="/public/images/hiw-nurse.webp" alt="Starting CPR training online" width="360" height="360" loading="lazy" decoding="async"> 2455 </div> 2456 <div class="hiw-copy"> 2457 <h3>Start your course</h3> 2458 <p> 2459 Choose a course and begin immediately. No appointments. No scheduling. 2460 </p> 2461 </div> 2462 </div> 2463 2464 <!-- STEP 2 --> 2465 <div class="hiw-step hiw-right" data-step="Learn"> 2466 <div class="hiw-photo"> 2467 <img src="/public/images/hiw-nurse.webp" alt="Learning CPR at home" width="360" height="360" loading="lazy" decoding="async"> 2468 </div> 2469 <div class="hiw-copy"> 2470 <h3>Learn at your pace</h3> 2471 <p> 2472 Complete the training on your schedule. Pause, resume, and review anytime. 2473 </p> 2474 </div> 2475 </div> 2476 2477 <!-- STEP 3 --> 2478 <div class="hiw-step hiw-left" data-step="Pass"> 2479 <div class="hiw-photo"> 2480 <img src="/public/images/hiw-nurse.webp" alt="Taking CPR exam online" width="360" height="360" loading="lazy" decoding="async"> 2481 </div> 2482 <div class="hiw-copy"> 2483 <h3>Take the exam</h3> 2484 <p> 2485 When youâre ready, take the final exam. Unlimited retakes included. 2486 </p> 2487 </div> 2488 </div> 2489 2490 <!-- STEP 4 --> 2491 <div class="hiw-step hiw-right" data-step="Done"> 2492 <div class="hiw-photo"> 2493 <img src="/public/images/hiw-nurse.webp" alt="Receiving CPR certification" width="360" height="360" loading="lazy" decoding="async"> 2494 </div> 2495 <div class="hiw-copy"> 2496 <h3>
2496Get certified</h3> 2497 <p> 2498 Receive your certification instantly after passing. Accepted nationwide. 2499 </p> 2500 </div> 2501 </div> 2502 2503 </div> 2504 2505</section> 2506 2507 2508 2509 2510 2511<section id="hiw" class="hiw-section"> 2512 2513 <div class="hiw-header"> 2514 <h2>How it works</h2> 2515 <p class="hiw-subhead"> 2516 Start when youâre ready. Take your time. Pay only when you pass. 2517 </p> 2518 </div> 2519 2520<div class="steps-inner steps-with-image"> 2521 2522<!-- CONNECTOR --> 2523<svg 2524 class="hiw-connector" style="display: none;" 2525 viewBox="0 0 100 1200" 2526 preserveAspectRatio="none" 2527> 2528 <path 2529 d="M100 0 C100 140, 0 260, 0 360 C0 500, 100 620, 100 720 C100 860, 0 980, 0 1080 C0 1140, 100 1180, 100 1200" 2530 fill="none" 2531 stroke="#ff8700" 2532 stroke-width="1" 2533 stroke-linecap="round" 2534 /> 2535</svg> 2536 2537 2538 2539 <!-- Row 1 --> 2540 <div class="left-block step-block"> 2541 <div class="trigger-step" id="trigger-step-1"></div> 2542 <div class="hiw-step hiw-left" data-step="â±"> 2543 <div class="step" data-step="1"> 2544 <div class="hiw-icon" style="display: none"> 2545 â± 2546 </div> 2547 <h3>Learn at your pace</h3> 2548 <p>Complete the online training on your schedule. Pause, resume, and review anytime.</p> 2549 </div> 2550 </div> 2551 </div> 2552 2553 <div class="right-block step-image step-block"> 2554 <div class="image-block image-bg-blue"> 2555 <img class="image-bg browser-bg" 2556 src="/public/images/browser2.webp" 2557 alt="" 2558 aria-hidden="true" 2559 width="500" height="500" 2560 loading="lazy" 2561 decoding="async"> 2562 2563 <img class="image-foreground" 2564 src="/public/images/step1-ani.webp" 2565 alt="course" 2566 width="400" height="187" 2567 loading="lazy" 2568 decoding="async"> 2569 </div> 2570 </div> 2571 2572 <!-- Row 2 --> 2573 <div class="left-block step-image step-block"> 2574 <div class="trigger-step" id="trigger-step-2"></div> 2575 <div class="image-block image-bg-peach"> 2576 <img class="image-bg browser-bg" 2577 src="/public/images/browser2.webp" 2578 alt="" 2579 aria-hidden="true" 2580 width="500" height="500" 2581 loading="lazy" 2582 decoding="async"> 2583 2584 <img class="image-foreground" 2585 src="/public/images/step2-ani.webp" 2586 alt="exam" 2587 width="400" height="177" 2588 loading="lazy" 2589 decoding="async"> 2590 </div> 2591 </div> 2592 2593 <div class="right-block step-block"> 2594 <div class="hiw-step hiw-right" data-step="â"> 2595 <div class="step" data-step="2"> 2596 <div class="hiw-icon" style="display: none"> 2597 â 2598 </div> 2599 <h3>Pass the exam</h3> 2600 <p>Take the final exam when youâre ready. Retake it as many times as you need.</p> 2601 </div> 2602 </div> 2603 </div> 2604 2605 <!-- Row 3 --> 2606 <div class="left-block step-block"> 2607 <div class="trigger-step" id="trigger-step-3"></div> 2608 <div class="hiw-step hiw-left" data-step="âª"> 2609 2610 <div class="step" data-step="3"> 2611 <div class="hiw-icon" style="display: none"> 2612 ⪠2613 </div> 2614 <h3>Get certified</h3> 2615 <p>Buy and receive your wall certificate <u>and</u> wallet card instantly after passing. Guaranteed accepted or your money back.</p> 2616 </div> 2617 </div> 2618 </div> 2619 2620 <div class="right-block step-image step-block"> 2621 <div class="image-block image-bg-mint"> 2622 <img class="image-bg printer-bg" 2623 src="/public/images/printer2.webp" 2624 alt="" 2625 aria-hidden="true" 2626 width="512" height="512" 2627 loading="lazy" 2628 decoding="async"> 2629 2630 <img class="image-foreground cert" 2631 src="/public/images/cert-step3A-ani.webp" 2632 alt="certificate" 2633 width="260" height="376" 2634 loading="lazy" 2635 decoding="async"> 2636 </div> 2637 </div> 2638 2639</div> 2640</section> 2641 2642 2643 2644 2645 2646 2647 2648<section class="dashboard-spotlight"> 2649 <div class="dashboard-spotlight__wrap"> 2650 2651 <span class="dashboard-eyebrow dashboard-eyebrow--value"> 2652 INCLUDED WITH YOUR CERTIFICATION 2653 </span> 2654 2655 <h2 class="dashboard-title dashboard-title--full"> 2656 Get Certified. Stay Compliant. Weâll Handle the Deadlines. 2657 </h2> 2658 2659 <div class="dashboard-spotlight__content" style="margin-top: 32px;"> 2660 2661 <!--p class="dashboard-lead"> 2662 Expired certification means missing work and losing pay. Maybe worse... 2663 </p--> 2664 2665 <p class="dashboard-lead"> 2666 Take control of all your CPR, Basic Life Support (BLS), and Advanced Life Support (ALS) certification needs with your Personal Certification Hubâ¢: 2667 </p> 2668 2669 <ul class="dashboard-points"> 2670 <li>Get Free Lifetime Access To All Training Courses</li> 2671 <li>Complete Courses and Take & Re-take Final Exams</li> 2672 <li>Enroll In Additional Certification Courses</li> 2673 <li>Download Certificates Instantly, Anytime</li> 2674 <li>Receive Reminders Exactly When You Need Them</li> 2675 <li>Share Your Certification Instantly When Needed</li> 2676 <li>Store Everything Secure and Organized in One Place</li> 2677 </ul> 2678 2679 <p class="dashboard-closer"> 2680 Donât just get certified â get certified with CPRToday! and get a complete system that keeps you compliant at <strong>no extra cost</strong>. 2681 </p> 2682 2683 </div> 2684 2685 <div class="dashboard-spotlight__visual"> 2686 2687 <div class="dashboard-mock"> 2688 <img 2689 src="/public/images/my-dashboard.webp" 2690 alt="CPRToday Personal Compliance Dashboard" 2691 class="dashboard-mock__img" 2692 width="1200" 2693 height="675" 2694 loading="lazy" 2695 decoding="async" 2696 /> 2697 </div> 2698 2699 </div> 2700 2701 </div> 2702</section> 2703 2704<div id="cta" class="home-introX" style="margin: 100px auto 280px auto; "> 2705 <!--div class="cert-watermark" aria-hidden="true"></div--> 2706 <section class="individual-enroll"> 2707 2708 2709<div class="enroll-step-header"> 2710 <h2>Get Certified Today</h2> 2711 <div> 2712 Registration is free for life. You can add more courses later from your dashboard. 2713 </div> 2714</div> 2715 <div class="new-signup-form" data-redirect="" data-productid="" data-coupon="" data-noguest="true"></div> 2716 2717 <!-- Shown until the React signup form mounts. Auto-hides when .new-signup-form is populated. --> 2718 <div class="new-signup-form-skeleton" aria-hidden="true"> 2719 <div class="nsfs-card"> 2720 <div class="nsfs-line nsfs-line-title"></div> 2721 <div class="nsfs-line nsfs-line-short"></div> 2722 <div class="nsfs-divider"></div> 2723 <div class="nsfs-line nsfs-line-subtitle"></div> 2724 <div class="nsfs-line"></div> 2725 <div class="nsfs-toggle"></div> 2726 <div class="nsfs-toggle"></div> 2727 <div class="nsfs-toggle"></div> 2728 <div class="nsfs-divider"></div> 2729 <div class="nsfs-line nsfs-line-subtitle"></div> 2730 <div class="nsfs-line"></div> 2731 <div class="nsfs-grid"> 2732 <div class="nsfs-toggle nsfs-toggle-sm"></div> 2733 <div class="nsfs-toggle nsfs-toggle-sm"></div> 2734 <div class="nsfs-toggle nsfs-toggle-sm"></div> 2735 <div class="nsfs-toggle nsfs-toggle-sm"></div> 2736 </div> 2737 </div> 2738 <div class="nsfs-card"> 2739 <div class="nsfs-line nsfs-line-title"></div> 2740 <div class="nsfs-line nsfs-line-short"></div> 2741 <div class="nsfs-btn"></div> 2742 <div class="nsfs-btn"></div> 2743 <div class="nsfs-or"></div> 2744 <div class="nsfs-grid2"> 2745 <div class="nsfs-input"></div> 2746 <div class="nsfs-input"></div> 2747 <div class="nsfs-input"></div> 2748 <div class="nsfs-input"></div> 2749 </div> 2750 <div class="nsfs-btn nsfs-btn-primary"></div> 2751 </div> 2752 </div> 2753</section> 2754 2755<style> 2756/* === LAYOUT & STRUCTURE === */ 2757.individual-enroll { 2758 background: 2759 /* Primary indigo light (top-left) */ 2760 radial-gradient( 2761 1800px 1200px at 6% 10%, 2762 rgba(90, 120, 255, 0.42), 2763 rgba(40, 60, 160, 0.22) 40%, 2764 rgba(10, 15, 40, 0.94) 72% 2765 ), 2766 2767 /* COUNTER ACCENT â deep steel / slate */ 2768/* radial-gradient( 2769 1400px 900px at 92% 78%, 2770 rgba(80, 130, 160, 0.9), 2771 rgba(40, 70, 100, 0.9) 38%, 2772 rgba(10, 20, 30, 0.00) 70% 2773 ), 2774*/ 2775 /* BASE DEPTH */ 2776 linear-gradient( 2777 180deg, 2778 #040612 0%, 2779 #06081d 55%, 2780 #090b26 100% 2781 ); 2782 2783 background:none; 2784 2785 padding: 40px 0px; 2786 font-family: "Poppins", sans-serif; 2787} 2788 2789 2790.enroll-step-header { 2791 max-width: 1100px; 2792 margin: 0 auto 48px; 2793 text-align: center; 2794} 2795 2796.enroll-step-header h2 { 2797 font-size: 48px; 2798 font-weight: 700; 2799 margin-bottom: 12px; 2800 color: #0b2fa3; 2801} 2802 2803.enroll-step-header div { 2804 font-size: 18px; 2805 color: rgba(60, 45, 30, 0.75); 2806} 2807 2808 2809</style></div> 2810 2811 2812<div class="faq-index" style="margin-top: 200px; width: 100%; padding-bottom: 80px; background-color: #eff4ff; box-shadow: 0 4px 32px rgba(0, 0, 0, 0.1)" > 2813 2814 2815 2816 2817 2818<section id="cta-testimonial" style="max-width: 740px; padding: 140px 0px; margin: 0 auto;"> 2819 <div style="margin: -320px auto; text-align: center;"> 2820 2821 <div style=" 2822 background: 2823 radial-gradient( 2824 1200px 800px at 15% 20%, 2825 rgba(80, 150, 255, 0.35), 2826 rgba(30, 90, 200, 0.25) 40%, 2827 rgba(10, 30, 90, 0.9) 75% 2828 ), 2829 linear-gradient( 2830 180deg, 2831 #0b4fb3 0%, 2832 #0a3f9e 45%, 2833 #072f7a 100% 2834 ); 2835 2836 background-blend-mode: screen; 2837 2838 padding: 40px 30px; 2839 border-radius: 12px; 2840 box-shadow: 0 8px 40px rgba(0,0,0,0.25); 2841 position: relative; 2842 "> 2843 2844 <!-- Profile Image --> 2845 <img 2846 src="https://yt3.googleusercontent.com/ytc/AIdro_kUyu1JeOr4RzRpYptKIbPsfK96SP5mODHnMxGn6kKlgWE=s160-c-k-c0x00ffffff-no-rj" 2847 alt="Dr. John P. DeMann" 2848 width="100" height="100" 2849 loading="lazy" 2850 decoding="async" 2851 referrerpolicy="no-referrer" 2852 style="width: 100px; height: 100px; border-radius: 50%; object-fit: cover; margin-bottom: 24px; filter: grayscale(100%); transition: filter 0.3s ease;" 2853 onmouseover="this.style.filter='grayscale(0)';" 2854 onmouseout="this.style.filter='grayscale(100%)';" 2855 /> 2856 2857 <!-- Quote Excerpt --> 2858 <blockquote id="quoteExcerpt"> 2859 My daughter saved her brotherâs life â my son â using the techniques you teach⦠2860 </blockquote> 2861 2862 <!-- Full Quote (Hidden Initially) --> 2863 <blockquote id="quoteFull" style=" 2864 display: none; 2865 margin: 24px auto 0; 2866 "> 2867 Of all the first aid measures, this is by far the most important, and I would be happy to place my words on the testimonials. 2868 <br><br> 2869 I also do a lot of athletic training, so I know how important this is for coaches. In fact, I have made it a requirement for all my football, basketball, and baseball coaches to get certified on your site. 2870 <br><br> 2871 I have it now in my pack for corporate training and the like. 2872 <br><br> 2873 Keep up the great work â you are saving lives every day.â 2874 </blockquote> 2875 2876 <!-- Author + Location --> 2877 <div class="author" style="margin-top: 24px; "> 2878 Dr. John P. DeMann â Mason, OH 2879 </div> 2880 <!--div style="font-size: 0.85rem; color: #777; margin-top: 4px;"> 2881 Image sourced from a public profile 2882 </div--> 2883 2884 2885 <!-- CTA Buttons --> 2886 <div style="margin-top: 32px; display: flex; justify-content: center; gap: 24px;"> 2887 <button id="btnReadMore" style=" 2888 padding: 10px 20px; 2889 background-color: #5f7ad6; 2890 color: white; 2891 border: none; 2892 border-radius: 6px; 2893 font-weight: 600; 2894 cursor: pointer; 2895 transition: background-color 0.3s; 2896 ">Read More</button> 2897 2898 <a href="/community" style=" 2899 padding: 10px 20px; 2900 background: none; 2901 color: rgba(255, 255, 255, 0.8); 2902 border: 2px solid #5f7ad6; 2903 border-radius: 6px; 2904 text-decoration: none; 2905 font-weight: 600; 2906 transition: background-color 0.3s, color 0.3s; 2907 " 2908 onmouseover="this.style.backgroundColor='#5f7ad6'; this.style.color='white';" 2909 onmouseout="this.style.backgroundColor='transparent'; this.style.color='rgba(255, 255, 255, 0.8)';"> 2910 See All Testimonials 2911 </a> 2912 </div> 2913 2914 </div> 2915 2916 </div> 2917</section> 2918 2919 2920 2921<div class="faq-divider"></div> 2922 2923 2924<div id="faqs" style="margin: 0 auto; display: flex; flex-direction: column; justify-content: flex-stretch; text-align: left; 2925 align-items: flex-start; max-width: 1100px; padding: 100px 0 ; "> 2926 2927 <div id="faq" class="course-guide-label" style="font-size: 40px; 2928 font-weight: 700; 2929 margin: 0 auto 12px; 2930 color: #0b2fa3; 2931 scroll-margin-top: 80px;">FAQ: Questions, Meet Answers. 2932 </div> 2933 2934 <!-- Search Bar --> 2935 <div style="width: 50%; margin: 50px auto;"> 2936 <input class="form-control" id="faqSearch" type="text" placeholder="Start typing to search..."> 2937 </div> 2938 2939 <div id="noResultsMessage" style="display: none; position: relative;" class="text-center my-4" style="width: 80%; margin: auto;"> 2940 <button id="closeNoResults">×</button> 2941 <h4>Oops!</h4> 2942 <p>We couldn't find anything for "<span id="searchTerm"></span>". Maybe try another word?</p> 2943 <img src="https://media.giphy.com/media/l2JHRhAtnJSDNJ2py/giphy.gif" alt="No results" width="150" loading="lazy" decoding="async" referrerpolicy="no-referrer"> 2944 </div> 2945 2946 2947 <!-- Tabs for Categories --> 2948 <div class="nav-container" style="margin-top: 0px; font-family: Figtree, Poppins, arial; color: #4971aa; font-size:16px;"> 2949 <ul class="nav nav-tabs" id="faqTabs" role="tablist" > 2950 <li class="nav-item" role="presentation"> 2951 <button class="nav-link active" id="pre-enrollment-tab" data-bs-toggle="tab" data-bs-target="#pre-enrollment" type="button" role="tab" aria-controls="pre-enrollment" aria-selected="true">Pre-Enrollment</button> 2952 </li> 2953 <li class="nav-item" role="presentation"> 2954 <button class="nav-link" id="free-courses-tab" data-bs-toggle="tab" data-bs-target="#free-courses" type="button" role="tab" aria-controls="free-courses" aria-selected="false">Courses</button> 2955 </li> 2956 <li class="nav-item" role="presentation"> 2957 <button class="nav-link" id="certification-tab" data-bs-toggle="tab" data-bs-target="#certification" type="button" role="tab" aria-controls="certification" aria-selected="false">Certification</button> 2958 </li> 2959 <li class="nav-item" role="presentation"> 2960 <button class="nav-link" id="pricing-tab" data-bs-toggle="tab" data-bs-target="#pricing" t
2960ype="button" role="tab" aria-controls="pricing" aria-selected="false">Pricing</button> 2961 </li> 2962 <li class="nav-item" role="presentation"> 2963 <button class="nav-link" id="payment-tab" data-bs-toggle="tab" data-bs-target="#payment" type="button" role="tab" aria-controls="payment" aria-selected="false">Payments</button> 2964 </li> 2965 <li class="nav-item" role="presentation"> 2966 <button class="nav-link" id="money-back-tab" data-bs-toggle="tab" data-bs-target="#money-back" type="button" role="tab" aria-controls="money-back" aria-selected="false">Money Back Guarantee</button> 2967 </li> 2968 <li class="nav-item" role="presentation"> 2969 <button class="nav-link" id="technical-tab" data-bs-toggle="tab" data-bs-target="#technical" type="button" role="tab" aria-controls="technical" aria-selected="false">Technical & Compatibility</button> 2970 </li> 2971 </ul> 2972 2973 </div> 2974 2975 <!-- Tab Content for each category --> 2976 <div class="tab-content" id="faqTabsContent" style="margin: 0px auto;"> 2977 2978 <!-- Pre-Enrollment FAQs Category --> 2979<div class="tab-pane fade show active" id="pre-enrollment" role="tabpanel" aria-labelledby="pre-enrollment-tab" > 2980 <div class="accordion" id="preEnrollmentAccordion"> 2981 2982 <!-- Q1 in Pre-Enrollment --> 2983 <div class="accordion-item"> 2984 <h2 class="accordion-header" id="preEnrollmentHeadingOne"> 2985 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseOne" aria-expanded="false" aria-controls="preEnrollmentCollapseOne"> 2986 Do I need prior CPR or BLS knowledge or experience to take the course? 2987 </button> 2988 </h2> 2989 <div id="preEnrollmentCollapseOne" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingOne" data-bs-parent="#preEnrollmentAccordion"> 2990 <div class="accordion-body"> 2991 Our courses are designed for both first-time learners and those renewing their certification - no prior training is required! 2992 </div> 2993 </div> 2994 </div> 2995 2996 <!-- Q2 in Pre-Enrollment --> 2997 <div class="accordion-item"> 2998 <h2 class="accordion-header" id="preEnrollmentHeadingTwo"> 2999 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseTwo" aria-expanded="false" aria-controls="preEnrollmentCollapseTwo"> 3000 Are the courses self-paced? 3001 </button> 3002 </h2> 3003 <div id="preEnrollmentCollapseTwo" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingTwo" data-bs-parent="#preEnrollmentAccordion"> 3004 <div class="accordion-body"> 3005 Yes, all our courses are self-paced, allowing you to complete them at your convenience. 3006 </div> 3007 </div> 3008 </div> 3009 3010 <!-- Q3 in Pre-Enrollment --> 3011 <div class="accordion-item"> 3012 <h2 class="accordion-header" id="preEnrollmentHeadingThree"> 3013 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseThree" aria-expanded="false" aria-controls="preEnrollmentCollapseThree"> 3014 How long does it take to complete the course? 3015 </button> 3016 </h2> 3017 <div id="preEnrollmentCollapseThree" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingThree" data-bs-parent="#preEnrollmentAccordion"> 3018 <div class="accordion-body"> 3019 Generally, our courses can be completed in as little as 30 minutes to about 2 hours. The exact time depends on the course you choose and your familiarity 3020 with the material. For more detailed information on individual course durations, please visit our <a href="/#bls">Courses page</a>. 3021 </div> 3022 </div> 3023 </div> 3024 3025 <!-- Q4 in Pre-Enrollment --> 3026 <div class="accordion-item"> 3027 <h2 class="accordion-header" id="preEnrollmentHeadingFour"> 3028 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseFour" aria-expanded="false" aria-controls="preEnrollmentCollapseFour"> 3029 What BLS certification courses do you offer? 3030 </button> 3031 </h2> 3032 <div id="preEnrollmentCollapseFour" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingFour" data-bs-parent="#preEnrollmentAccordion"> 3033 <div class="accordion-body"> 3034 Currently our courses are Adult CPR, Adult, Child and Infant CPR, Emergency First Aid, Bloodborne Pathogens, Healthcare Providers BLS, 3035 and all-inclusive BLS bundle. 3036 </div> 3037 </div> 3038 </div> 3039 3040 <!-- Q5 in Pre-Enrollment --> 3041 <div class="accordion-item"> 3042 <h2 class="accordion-header" id="preEnrollmentHeadingFive"> 3043 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseFive" aria-expanded="false" aria-controls="preEnrollmentCollapseFive"> 3044 Can I access the courses from my phone or tablet? 3045 </button> 3046 </h2> 3047 <div id="preEnrollmentCollapseFive" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingFive" data-bs-parent="#preEnrollmentAccordion"> 3048 <div class="accordion-body"> 3049 Yes, you can access our courses from your phone, tablet, or any device with an internet connection. However, for the best learning experience, 3050 we recommend using a larger screen, like a tablet or desktop, to ensure optimal viewing of the course materials and videos. 3051 </div> 3052 </div> 3053 </div> 3054 3055 <!-- Q6 in Pre-Enrollment --> 3056 <div class="accordion-item"> 3057 <h2 class="accordion-header" id="preEnrollmentHeadingSix"> 3058 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseSix" aria-expanded="false" aria-controls="preEnrollmentCollapseSix"> 3059 Are there any prerequisites to enrolling in a course? 3060 </button> 3061 </h2> 3062 <div id="preEnrollmentCollapseSix" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingSix" data-bs-parent="#preEnrollmentAccordion"> 3063 <div class="accordion-body"> 3064 All are welcome! Because are designed for both beginners and those looking to renew their certification, no prerequisites are required to enroll in our CPR or BLS courses. 3065 Simply sign up, and you can start learning at your own pace! 3066 </div> 3067 </div> 3068 </div> 3069 3070 <!-- Q7 in Pre-Enrollment --> 3071 <div class="accordion-item"> 3072 <h2 class="accordion-header" id="preEnrollmentHeadingSeven"> 3073 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseSeven" aria-expanded="false" aria-controls="preEnrollmentCollapseSeven"> 3074 How can I tell if this certification meets my employer'
3074s requirements? 3075 </button> 3076 </h2> 3077 <div id="preEnrollmentCollapseSeven" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingSeven" data-bs-parent="#preEnrollmentAccordion"> 3078 <div class="accordion-body"> 3079 CPRToday! certification comes with unprecedented 99.8% acceptance rate, and is considered the Gold Standard of distance learning BLS. We are so confident that 3080 certification will meet your needs that we back it with our unconditional 60-day Money Back Guarantee. 3081 </div> 3082 </div> 3083 </div> 3084 3085 <!-- Q8 in Pre-Enrollment --> 3086 <div class="accordion-item"> 3087 <h2 class="accordion-header" id="preEnrollmentHeadingEight"> 3088 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseEight" aria-expanded="false" aria-controls="preEnrollmentCollapseEight"> 3089 What additional materials will I need to complete the course? 3090 </button> 3091 </h2> 3092 <div id="preEnrollmentCollapseEight" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingEight" data-bs-parent="#preEnrollmentAccordion"> 3093 <div class="accordion-body"> 3094 None - all you need is your connected device and desire to learn. 3095 </div> 3096 </div> 3097 </div> 3098 3099 <!-- Q9 in Pre-Enrollment --> 3100 <div class="accordion-item"> 3101 <h2 class="accordion-header" id="preEnrollmentHeadingNine"> 3102 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseNine" aria-expanded="false" aria-controls="preEnrollmentCollapseNine"> 3103 Do I need to take a hands-on skills test? 3104 </button> 3105 </h2> 3106 <div id="preEnrollmentCollapseNine" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingNine" data-bs-parent="#preEnrollmentAccordion"> 3107 <div class="accordion-body"> 3108 For most courses, a hands-on skills test is not required. Our courses are fully online, and youâll be tested through quizzes and assessments. However, some employers may require an in-person skills test, so itâs a good idea to check with your organization if this is needed. 3109 </div> 3110 </div> 3111 </div> 3112 3113 <!-- Q10 in Pre-Enrollment --> 3114 <div class="accordion-item"> 3115 <h2 class="accordion-header" id="preEnrollmentHeadingTen"> 3116 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#preEnrollmentCollapseTen" aria-expanded="false" aria-controls="preEnrollmentCollapseTen"> 3117 How do I register for a course, and whatâs the process after signing up? 3118 </button> 3119 </h2> 3120 <div id="preEnrollmentCollapseTen" class="accordion-collapse collapse" aria-labelledby="preEnrollmentHeadingTen" data-bs-parent="#preEnrollmentAccordion"> 3121 <div class="accordion-body"> 3122 Pick your course and click "Register" - youâll have immediate access to the course materials and can begin learning right away. 3123 </div> 3124 </div> 3125 </div> 3126 3127 </div> 3128 </div> 3129 3130 <!-- Free Courses FAQs Category --> 3131 <div class="tab-pane fade" id="free-courses" role="tabpanel" aria-labelledby="free-courses-tab"> 3132 <div class="accordion" id="freeCoursesAccordion"> 3133 3134 <!-- Q1 in Free Courses --> 3135 <div class="accordion-item"> 3136 <h2 class="accordion-header" id="freeCoursesHeadingOne"> 3137 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseOne" aria-expanded="false" aria-controls="freeCoursesCollapseOne"> 3138 Are your free courses really "free"? 3139 </button> 3140 </h2> 3141 <div id="freeCoursesCollapseOne" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingOne" data-bs-parent="#freeCoursesAccordion"> 3142 <div class="accordion-body"> 3143 Yes, all our BLS courses are completely free. All course materials, all exams, all free for ever. However, if you would like to receive certification upon completion, you can purchase one for a modest fee. 3144 </div> 3145 </div> 3146 </div> 3147 3148 <!-- Q2 in Free Courses --> 3149 <div class="accordion-item"> 3150 <h2 class="accordion-header" id="freeCoursesHeadingTwo"> 3151 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseTwo" aria-expanded="false" aria-controls="freeCoursesCollapseTwo"> 3152 Whatâs included in the course? 3153 </button> 3154 </h2> 3155 <div id="freeCoursesCollapseTwo" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingTwo" data-bs-parent="#freeCoursesAccordion"> 3156 <div class="accordion-body"> 3157 All courses include access to all training materials and all exams - no additional materials are needed. 3158 </div> 3159 </div> 3160 </div> 3161 3162 <!-- Q3 in Free Courses --> 3163 <div class="accordion-item"> 3164 <h2 class="accordion-header" id="freeCoursesHeadingThree"> 3165 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseThree" aria-expanded="false" aria-controls="freeCoursesCollapseThree"> 3166 Can I receive a certificate after completing my course and passing the exam? 3167 </button> 3168 </h2> 3169 <div id="freeCoursesCollapseThree" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingThree" data-bs-parent="#freeCoursesAccordion"> 3170 <div class="accordion-body"> 3171 Absolutely! Professional Certification of Course Completion is <a href="/#bls">available for purchase</a>. 3172 </div> 3173 </div> 3174 </div> 3175 3176 <!-- Q4 in Free Courses --> 3177 <div class="accordion-item"> 3178 <h2 class="accordion-header" id="freeCoursesHeadingFour"> 3179 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseFour" aria-expanded="false" aria-controls="freeCoursesCollapseFour"> 3180 How long does it take to complete a course? 3181 </button> 3182 </h2> 3183 <div id="freeCoursesCollapseFour" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingFour" data-bs-parent="#freeCoursesAccordion"> 3184 <div class="accordion-body"> 3185 Depending on your familiarity with the material and level of commitment, our online course can typically be completed in 1 to 2 hours. 3186 You can progress at your own pace and revisit any sections if needed. 3187 </div> 3188 </div> 3189 </div> 3190 3191 <!-- Q5 in Free Courses --> 3192 <div class="accordion-item"> 3193 <h2 class="accordion-header" id="freeCoursesHeadingFive"> 3194 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseFive" aria-expanded="false" aria-controls="freeCoursesCollapseFive"> 3195 Can I take my free course on my phone? 3196 </button> 3197 </h2> 3198 <div id="freeCoursesCollapseFive" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingFive" data-bs-parent="#freeCoursesAccordion"> 3199 <div class="accordion-body"> 3200 Yes, you can access all CPRToday! courses from any connected device. However, for the user best experience, we recommend a larger screen such as a tablet or desktop. 3201 </div> 3202 </div> 3203 </div> 3204 3205 <!-- Q6 in Free Courses --> 3206 <div class="accordion-item"> 3207 <h2 class="accordion-header" id="freeCoursesHeadingSix"> 3208 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseSix" aria-expanded="false" aria-controls="freeCoursesCollapseSix"> 3209 Are there any restrictions or paywalls in the free course? 3210 </button> 3211 </h2> 3212 <div id="freeCoursesCollapseSix" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingSix" data-bs-parent="#freeCoursesAccordion"> 3213 <div class="accordion-body"> 3214 Nope! All course materials, exams, future updates, etc are completely free - for life. However, if you wish to receive Certificate of Course Completion, you may purchase it after successfully completing your course. 3215 </div> 3216 </div> 3217 </div> 3218 3219 <!-- Q7 in Free Courses --> 3220 <div class="accordion-item"> 3221 <h2 class="accordion-header" id="freeCoursesHeadingSeven"> 3222 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseSeven" aria-expanded="false" aria-controls="freeCoursesCollapseSeven"> 3223 Can I rely on the skills I learn in here, in real-life situations? 3224 </button> 3225 </h2> 3226 <div id="freeCoursesCollapseSeven" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingSeven" data-bs-parent="#freeCoursesAccordion"> 3227 <div class="accordion-body"> 3228 We have trained hundreds of clients since 1999, and in turn these life-savers saved thous
3228ands of lives. 3229 </div> 3230 </div> 3231 </div> 3232 3233 <!-- Q8 in Free Courses --> 3234 <div class="accordion-item"> 3235 <h2 class="accordion-header" id="freeCoursesHeadingEight"> 3236 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseEight" aria-expanded="false" aria-controls="freeCoursesCollapseEight"> 3237 Do you offer courses for groups or employers? 3238 </button> 3239 </h2> 3240 <div id="freeCoursesCollapseEight" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingEight" data-bs-parent="#freeCoursesAccordion"> 3241 <div class="accordion-body"> 3242 Yes, our group solutions program can accommodate a group of any size, located anywhere in the world :) 3243 </div> 3244 </div> 3245 </div> 3246 3247 <!-- Q9 in Free Courses --> 3248 <div class="accordion-item"> 3249 <h2 class="accordion-header" id="freeCoursesHeadingNine"> 3250 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseNine" aria-expanded="false" aria-controls="freeCoursesCollapseNine"> 3251 Can I upgrade to a paid course after completing the free version? 3252 </button> 3253 </h2> 3254 <div id="freeCoursesCollapseNine" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingNine" data-bs-parent="#freeCoursesAccordion"> 3255 <div class="accordion-body"> 3256 No, you can't because there is not paid version - all our courses are completely free. 3257 </div> 3258 </div> 3259 </div> 3260 3261 <!-- Q10 in Free Courses --> 3262 <div class="accordion-item"> 3263 <h2 class="accordion-header" id="freeCoursesHeadingTen"> 3264 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#freeCoursesCollapseTen" aria-expanded="false" aria-controls="freeCoursesCollapseTen"> 3265 How long do I have access to my free course? 3266 </button> 3267 </h2> 3268 <div id="freeCoursesCollapseTen" class="accordion-collapse collapse" aria-labelledby="freeCoursesHeadingTen" data-bs-parent="#freeCoursesAccordion"> 3269 <div class="accordion-body"> 3270 Forever. You will have unlimited access to the free course materials for life so that you may return any time. 3271 </div> 3272 </div> 3273 </div> 3274 3275 </div> 3276 </div> 3277 3278 <!-- Certification FAQs Category --> 3279 <div class="tab-pane fade" id="certification" role="tabpanel" aria-labelledby="certification-tab"> 3280 <div class="accordion" id="certificationAccordion"> 3281 3282 <!-- Q1 in Certification --> 3283 <div class="accordion-item"> 3284 <h2 class="accordion-header" id="certificationHeadingOne"> 3285 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseOne" aria-expanded="false" aria-controls="certificationCollapseOne"> 3286 Can I get certificate when I finish the course? 3287 </button> 3288 </h2> 3289 <div id="certificationCollapseOne" class="accordion-collapse collapse" aria-labelledby="certificationHeadingOne" data-bs-parent="#certificationAccordion"> 3290 <div class="accordion-body"> 3291 Yes, upon successful completion of the course and demonstrating proficiency by passing your final exam, you can purchase a downloadable certificate, valid for 2 years. 3292 You can print this certificate or save it for future reference. 3293 </div> 3294 </div> 3295 </div> 3296 3297 <!-- Q2 in Certification --> 3298 <div class="accordion-item"> 3299 <h2 class="accordion-header" id="certificationHeadingTwo"> 3300 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseTwo" aria-expanded="false" aria-controls="certificationCollapseTwo"> 3301 Is CPRToday! certificate recognized by my employer or professional organizations? 3302 </button> 3303 </h2> 3304 <div id="certificationCollapseTwo" class="accordion-collapse collapse" aria-labelledby="certificationHeadingTwo" data-bs-parent="#certificationAccordion"> 3305 <div class="accordion-body"> 3306 Yes, our certificates are widely recognized by healthcare facilities, academic institutions, government agencies, and various businesses. They adhere to the latest guidelines, making them suitable for professional and personal use. 3307 </div> 3308 </div> 3309 </div> 3310 3311 <!-- Q3 in Certification --> 3312 <div class="accordion-item"> 3313 <h2 class="accordion-header" id="certificationHeadingThree"> 3314 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseThree" aria-expanded="false" aria-controls="certificationCollapseThree"> 3315 How long is my certification valid for? 3316 </button> 3317 </h2> 3318 <div id="certificationCollapseThree" class="accordion-collapse collapse" aria-labelledby="certificationHeadingThree" data-bs-parent="#certificationAccordion"> 3319 <div class="accordion-body"> 3320 Your certification is valid for 2 years from the date of issue. And if you want we can even remind you ahead of your re-certification date. 3321 </div> 3322 </div> 3323 </div> 3324 3325 <!-- Q4 in Certification --> 3326 <div class="accordion-item"> 3327 <h2 class="accordion-header" id="certificationHeadingFour"> 3328 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseFour" aria-expanded="false" aria-controls="certificationCollapseFour"> 3329 Can I order a physical copy of my certificate? 3330 </button> 3331 </h2> 3332 <div id="certificationCollapseFour" class="accordion-collapse collapse" aria-labelledby="certificationHeadingFour" data-bs-parent="#certificationAccordion"> 3333 <div class="accordion-body"> 3334 Yes, in addition to the digital certificate, you can order a physical copy of your certification for an additional fee. Weâll print and mail the certificate to your desired address. 3335 </div> 3336 </div> 3337 </div> 3338 3339 <!-- Q5 in Certification --> 3340 <div class="accordion-item"> 3341 <h2 class="accordion-header" id="certificationHeadingFive"> 3342 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseFive" aria-expanded="false" aria-controls="certificationCollapseFive"> 3343 What happens if I lose my certificate? 3344 </button> 3345 </h2> 3346 <div id="certificationCollapseFive" class="accordion-collapse collapse" aria-labelledby="certificationHeadingFive" data-bs-parent="#certificationAccordion"> 3347 <div class="accordion-body"> 3348 Donât worry! You can always download a copy of your certificate from your account. 3349 </div> 3350 </div> 3351 </div> 3352 3353 <!-- Q6 in Certification --> 3354 <div class="accordion-item"> 3355 <h2 class="accordion-header" id="certificationHeadingSix"> 3356 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseSix" aria-expanded="false" aria-controls="certificationCollapseSix"> 3357 Can I get a refund if my certificate is not accepted? 3358 </button> 3359 </h2> 3360 <div id="certificationCollapseSix" class="accordion-collapse collapse" aria-labelledby="certificationHeadingSix" data-bs-parent="#certificationAccordion"> 3361 <div class="accordion-body"> 3362 Yes! We offer a 100% Money Back Guarantee. If your certificate is not accepted by your employer or organization, just send us your replacement 3363 certification card from another facility within 60 days of your CPRToday! purchaseâno hassle. 3364 </div> 3365 </div> 3366 </div> 3367 3368 <!-- Q7 in Certification --> 3369 <div class="accordion-item"> 3370 <h2 class="accordion-header" id="certificationHeadingSeven"> 3371 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseSeven" aria-expanded="false" aria-controls="certificationCollapseSeven"> 3372 Will I be able to verify my certificate online? 3373 </button> 3374 </h2> 3375 <div id="certificationCollapseSeven" class="accordion-collapse collapse" aria-labelledby="certificationHeadingSeven" data-bs-parent="#certificationAccordion"> 3376 <div class="accordion-body"> 3377 Absolutely! Your certificate will be assigned a unique Certification Number which can be verified online through our platform. 3378 </div> 3379 </div> 3380 </div> 3381 3382 <!-- Q8 in Certification --> 3383 <div class="accordion-item"> 3384 <h2 class="accordion-header" id="certificationHeadingEight"> 3385 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseEight" aria-expanded="false" aria-controls="certificationCollapseEight"> 3386 Does the certification require a hands-on skills test? 3387 </button> 3388 </h2> 3389 <div id="certificationCollapseEight" class="accordion-collapse collapse" aria-labelledby="certificationHeadingEight" data-bs-parent="#certificationAccordion"> 3390 <div class="accordion-body"> 3391 The course includes assessment exams to evaluate your proficiency of the course material and for most of our clients, hands-on portion is not required. 3392 </div> 3393 </div> 3394 </div> 3395 3396 <!-- Q9 in Certification --> 3397 <div class="accordion-item"> 3398 <h2 class="accordion-header" id="certificationHeadingNine"> 3399 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseNine" aria-expanded="false" aria-controls="certificationCollapseNine"> 3400 How can I purchase a certificate after completing a free course? 3401 </button> 3402 </h2> 3403 <div id="certificationCollapseNine" class="accordion-collapse collapse" aria-labelledby="certificationHeadingNine" data-bs-parent="#certificationAccordion"> 3404 <div class="accordion-body"> 3405 After youâve successfully completed your free course you can purchase Certificate of Course Completion. Simply click on "Certification" tab and follow onscreen prompts. 3406 </div> 3407 </div> 3408 </div> 3409 3410 <!-- Q10 in Certification --> 3411 <div class="accordion-item"> 3412 <h2 class="accordion-header" id="certificationHeadingTen"> 3413 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#certificationCollapseTen" aria-expanded="false" aria-controls="certificationCollapseTen"> 3414 What format is the certificate provided in? 3415 </button> 3416 </h2> 3417 <div id="certificationCollapseTen" class="accordion-collapse collapse" aria-labelledby="certificationHeadingTen" data-bs-parent="#certificationAccordion"> 3418 <div class="accordion-body"> 3419 The certificate is provided in a digital PDF format, making it easy to download, print, and share with employers or organizations. 3420 The PDF is high quality and includes all necessary details such as your name, course title, and date of completion. 3421 </div> 3422 </div> 3423 </div> 3424 3425 </div> 3426 </div> 3427 3428 <!-- Pricing FAQs Category --> 3429 <div class="tab-pane fade" id="pricing" role="tabpanel" aria-labelledby="pricing-tab"> 3430 <div class="accordion" id="pricingAccordion"> 3431 3432 <!-- Q1 in Pricing --> 3433 <div class="accordion-item"> 3434 <h2 class="accordion-header" id="pricingHeadingOne"> 3435 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseOne" aria-expanded="false" aria-controls="pricingCollapseOne"> 3436 How much does the certification cost? 3437 </button> 3438 </h2> 3439 <div id="pricingCollapseOne" class="accordion-collapse collapse" aria-labelledby="pricingHeadingOne" data-bs-parent="#pricingAccordion"> 3440 <div class="accordion-body"> 3441 The cost of certification depends on the type of course you choose. Please visit our <a href="/#bls">Courses Page</a> for detailed information 3442 on certification prices. 3443 </div> 3444 </div> 3445 </div> 3446 3447 <!-- Q2 in Pricing --> 3448 <div class="accordion-item"> 3449 <h2 class="accordion-header" id="pricingHeadingTwo"> 3450 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseTwo" aria-expanded="false" aria-controls="pricingCollapseTwo"> 3451 Are there any additional fees beyond the certification cost? 3452 </button> 3453 </h2> 3454 <div id="pricingCollapseTwo" class="accordion-collapse collapse" aria-labelledby="pricingHeadingTwo" data-bs-parent="#pricingAccordion"> 3455 <div class="accordion-body"> 3456 There are no hidden fees for the course, training materials, or assessment exams. 3457 </div> 3458 </div> 3459 </div> 3460 3461 <!-- Q3 in Pricing --> 3462 <div class="accordion-item"> 3463 <h2 class="accordion-header" id="pricingHeadingThree"> 3464 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseThree" aria-expanded="false" aria-controls="pricingCollapseThree"> 3465 Do you offer discounts for group certifications? 3466 </button> 3467 </h2> 3468 <div id="pricingCollapseThree" class="accordion-collapse collapse" aria-labelledby="pricingHeadingThree" data-bs-parent="#pricingAccordion"> 3469 <div class="accordion-body"> 3470 Yes, we offer discounts for groups as small as 5 and enterprise discounts for larger groups. For details on group rates, please visit our <a href="/corporate-hub/">Group Pricing page</a> or contact us directly for custom pricing options. 3471 </div> 3472 </div> 3473 </div> 3474 3475 <!-- Q4 in Pricing --> 3476 <div class="accordion-item"> 3477 <h2 class="accordion-header" id="pricingHeadingFour"> 3478 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseFour" aria-expanded="false" aria-controls="pricingCollapseFour"> 3479 Can I pay for the certification after completing the course? 3480 </button> 3481 </h2> 3482 <div id="pricingCollapseFour" class="accordion-collapse collapse" aria-labelledby="pricingHeadingFour" data-bs-parent="#pricingAccordion"> 3483 <div class="accordion-body"> 3484 Of course! Unlike others we will never force you to pay for something sight unseen. Register and complete the course at your convenience. And when doen, you can buy your certification. 3485 </div> 3486 </div> 3487 </div> 3488 3489 <!-- Q5 in Pricing --> 3490 <div class="accordion-item"> 3491 <h2 class="accordion-header" id="pricingHeadingFive"> 3492 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseFive" aria-expanded="false" aria-controls="pricingCollapseFive"> 3493 What payment methods do you accept? 3494 </button> 3495 </h2> 3496 <div id="pricingCollapseFive" class="accordion-collapse collapse" aria-labelledby="pricingHeadingFive" data-bs-parent="#pricingAccordion"> 3497 <div class="accordion-body"> 3498 We accept all major credit cards. 3499 </di
3499v> 3500 </div> 3501 </div> 3502 3503 <!-- Q6 in Pricing --> 3504 <div class="accordion-item"> 3505 <h2 class="accordion-header" id="pricingHeadingSix"> 3506 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseSix" aria-expanded="false" aria-controls="pricingCollapseSix"> 3507 Will I get a receipt for my certification payment? 3508 </button> 3509 </h2> 3510 <div id="pricingCollapseSix" class="accordion-collapse collapse" aria-labelledby="pricingHeadingSix" data-bs-parent="#pricingAccordion"> 3511 <div class="accordion-body"> 3512 Yes, once your payment is processed, you will receive a confirmation email with your receipt. If you need a duplicate or additional receipt, you can always access it in your account. 3513 </div> 3514 </div> 3515 </div> 3516 3517 <!-- Q7 in Pricing --> 3518 <div class="accordion-item"> 3519 <h2 class="accordion-header" id="pricingHeadingSeven"> 3520 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseSeven" aria-expanded="false" aria-controls="pricingCollapseSeven"> 3521 Is there a money-back guarantee if my certificate is not accepted? 3522 </button> 3523 </h2> 3524 <div id="pricingCollapseSeven" class="accordion-collapse collapse" aria-labelledby="pricingHeadingSeven" data-bs-parent="#pricingAccordion"> 3525 <div class="accordion-body"> 3526 Absolutely! We offer a 100% money-back guarantee. If your certificate is not accepted by your employer or organization, simply send us a copy of 3527 your replacement certification card within 60 days, and weâll provide a full refundâno questions asked. 3528 </div> 3529 </div> 3530 </div> 3531 3532 <!-- Q8 in Pricing --> 3533 <div class="accordion-item"> 3534 <h2 class="accordion-header" id="pricingHeadingEight"> 3535 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseEight" aria-expanded="false" aria-controls="pricingCollapseEight"> 3536 Can I apply a promotional discount code when purchasing certification? 3537 </button> 3538 </h2> 3539 <div id="pricingCollapseEight" class="accordion-collapse collapse" aria-labelledby="pricingHeadingEight" data-bs-parent="#pricingAccordion"> 3540 <div class="accordion-body"> 3541 Yes, you can apply any valid discount code at checkout. If you have a discount code, simply enter it during the payment process to receive your discount. Make sure to check our website regularly for promotional offers! 3542 </div> 3543 </div> 3544 </div> 3545 3546 <!-- Q9 in Pricing --> 3547 <div class="accordion-item"> 3548 <h2 class="accordion-header" id="pricingHeadingNine"> 3549 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseNine" aria-expanded="false" aria-controls="pricingCollapseNine"> 3550 Do you offer discount pricing for companies or organizations? 3551 </button> 3552 </h2> 3553 <div id="pricingCollapseNine" class="accordion-collapse collapse" aria-labelledby="pricingHeadingNine" data-bs-parent="#pricingAccordion"> 3554 <div class="accordion-body"> 3555 Yes, we offer special pricing for organizational and commercial clients. Contact our customer service team to learn more about our group rates and to get a personalized quote for your team. 3556 </div> 3557 </div> 3558 </div> 3559 3560 <!-- Q10 in Pricing --> 3561 <div class="accordion-item"> 3562 <h2 class="accordion-header" id="pricingHeadingTen"> 3563 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#pricingCollapseTen" aria-expanded="false" aria-controls="pricingCollapseTen"> 3564 How long do I have to purchase a certificate after completing the course? 3565 </button> 3566 </h2> 3567 <div id="pricingCollapseTen" class="accordion-collapse collapse" aria-labelledby="pricingHeadingTen" data-bs-parent="#pricingAccordion"> 3568 <div class="accordion-body"> 3569 After completing your course, youâll have 30 days to purchase your certificate. 3570 </div> 3571 </div> 3572 </div> 3573 3574 </div> 3575 </div> 3576 3577 <!-- Payment FAQs Category --> 3578 <div class="tab-pane fade" id="payment" role="tabpanel" aria-labelledby="payment-tab"> 3579 <div class="accordion" id="paymentAccordion"> 3580 3581 <!-- Q1 in Payment --> 3582 <div class="accordion-item"> 3583 <h2 class="accordion-header" id="paymentHeadingOne"> 3584 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseOne" aria-expanded="false" aria-controls="paymentCollapseOne"> 3585 What payment methods do you accept? 3586 </button> 3587 </h2> 3588 <div id="paymentCollapseOne" class="accordion-collapse collapse" aria-labelledby="paymentHeadingOne" data-bs-parent="#paymentAccordion"> 3589 <div class="accordion-body"> 3590 We currently accept all major credit cards, ensuring that you can complete your enrollment quickly and securely. 3591 Using a credit card allows for instant access to your course materials, so you can start learning right away! 3592 </div> 3593 </div> 3594 </div> 3595 3596 <!-- Q2 in Payment --> 3597 <div class="accordion-item"> 3598 <h2 class="accordion-header" id="paymentHeadingTwo"> 3599 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseTwo" aria-expanded="false" aria-controls="paymentCollapseTwo"> 3600 Is my payment information secure? 3601 </button> 3602 </h2> 3603 <div id="paymentCollapseTwo" class="accordion-collapse collapse" aria-labelledby="paymentHeadingTwo" data-bs-parent="#paymentAccordion"> 3604 <div class="accordion-body"> 3605 Absolutely. We partner with Authorize.net, a leader in secure payment processing, to handle all transactions. Your payment is protected with 3606 advanced 256-bit SSL encryption, the same industry-standard technology trusted by banks and government agencies. 3607 </div> 3608 </div> 3609 </div> 3610 3611 <!-- Q3 in Payment --> 3612 <div class="accordion-item"> 3613 <h2 class="accordion-header" id="paymentHeadingThree"> 3614 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseThree" aria-expanded="false" aria-controls="paymentCollapseThree"> 3615 My payment was declined - what should I do? 3616 </button> 3617 </h2> 3618 <div id="paymentCollapseThree" class="accordion-collapse collapse" aria-labelledby="paymentHeadingThree" data-bs-parent="#paymentAccordion"> 3619 <div class="accordion-body"> 3620 If your payment is declined, itâs usually because the information you entered doesnât match what your bank has on file. Contact your bank or 3621 card issuer to resolve the issue. 3622 </div> 3623 </div> 3624 </div> 3625 3626 <!-- Q4 in Payment --> 3627 <div class="accordion-item"> 3628 <h2 class="accordion-header" id="paymentHeadingFour"> 3629 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseFour" aria-expanded="false" aria-controls="paymentCollapseFour"> 3630 Can I pay by phone or mail? 3631 </button> 3632 </h2> 3633 <div id="paymentCollapseFour" class="accordion-collapse collapse" aria-labelledby="paymentHeadingFour" data-bs-parent="#paymentAccordion"> 3634 <div class="accordion-body"> 3635 While we donât currently accept payments by phone or mail, paying by credit card is fast, secure, and convenient! 3636 </div> 3637 </div> 3638 </div> 3639 3640 <!-- Q5 in Payment --> 3641 <div class="accordion-item"> 3642 <h2 class="accordion-header" id="paymentHeadingFive"> 3643 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseFive" aria-expanded="false" aria-controls="paymentCollapseFive"> 3644 Will I receive a receipt for my payment? 3645 </button> 3646 </h2> 3647 <div id="paymentCollapseFive" class="accordion-collapse collapse" aria-labelledby="paymentHeadingFive" data-bs-parent="#paymentAccordion"> 3648 <div class="accordion-body"> 3649 Yes, you will receive an email confirmation with your receipt immediately after your payment is processed. Be sure to check your spam folder if you donât see it right away. 3650 </div> 3651 </div> 3652 </div> 3653 3654 <!-- Q6 in Payment --> 3655 <div class="accordion-item"> 3656 <h2 class="accordion-header" id="paymentHeadingSix"> 3657 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseSix" aria-expanded="false" aria-controls="paymentCollapseSix"> 3658 Can I pay with PayPal? 3659 </button> 3660 </h2> 3661 <div id="paymentCollapseSix" class="accordion-collapse collapse" aria-labelledby="paymentHeadingSix" data-bs-parent="#paymentAccordion"> 3662 <div class="accordion-body"> 3663 Currently we accept only credit card payments. 3664 </div> 3665 </div> 3666 </div> 3667 3668 <!-- Q7 in Payment --> 3669 <div class="accordion-item"> 3670 <h2 class="accordion-header" id="paymentHeadingSeven"> 3671 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseSeven" aria-expanded="false" aria-controls="paymentCollapseSeven"> 3672 Do you offer any payment plans or financing options? 3673 </button> 3674 </h2> 3675 <div id="paymentCollapseSeven" class="accordion-collapse collapse" aria-labelledby="paymentHeadingSeven" data-bs-parent="#paymentAccordion"> 3676 <div class="accordion-body"> 3677 Currently, we do not offer payment plans or financing options. However, our courses are competitively priced to offer you the best value for your money. 3678 </div> 3679 </div> 3680 </div> 3681 3682 <!-- Q8 in Payment --> 3683 <div class="accordion-item"> 3684 <h2 class="accordion-header" id="paymentHeadingEight"> 3685 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseEight" aria-expanded="false" aria-controls="paymentCollapseEight"> 3686 What should I do if my employer is supposed to pay but Iâm being charged? 3687 </button> 3688 </h2> 3689 <div id="paymentCollapseEight" class="accordion-collapse collapse" aria-labelledby="paymentHeadingEight" data-bs-parent="#paymentAccordion"> 3690 <div class="accordion-body"> 3691 If your employer is pre-paying for your certification, please contact your administrator for your corporate code and registration instructions. 3692 </div> 3693 </div> 3694 </div> 3695 3696 <!-- Q9 in Payment --> 3697 <div class="accordion-item"> 3698 <h2 class="accordion-header" id="paymentHeadingNine"> 3699 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseNine" aria-expanded="false" aria-controls="paymentCollapseNine"> 3700 Do you offer group payment options or discounts? 3701 </button> 3702 </h2> 3703 <div id="paymentCollapseNine" class="accordion-collapse collapse" aria-labelledby="paymentHeadingNine" data-bs-parent="#paymentAccordion"> 3704 <div class="accordion-body"> 3705 Yes! We offer discounts for group enrollments. If you're enrolling multiple people, please contact us for details on available group rates and discounts. 3706 </div> 3707 </div> 3708 </div> 3709 3710 <!-- Q10 in Payment --> 3711 <div class="accordion-item"> 3712 <h2 class="accordion-header" id="paymentHeadingTen"> 3713 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#paymentCollapseTen" aria-expanded="false" aria-controls="paymentCollapseTen"> 3714 How do I get a refund if my certification isnât accepted? 3715 </button> 3716 </h2> 3717 <div id="paymentCollapseTen" class="accordion-collapse collapse" aria-labelledby="paymentHeadingTen" data-bs-parent="#paymentAccordion"> 3718 <div class="accordion-body">
3719 Weâre confident in our certification, but if it doesnât meet your employerâs requirements, you can request a full refund. Our 100% Money Back Guarantee ensures youâll be refunded within 60 days, with no hidden fees. 3720 </div> 3721 </div> 3722 </div> 3723 3724 </div> 3725 </div> 3726 3727 <!-- Money Back Guarantee FAQs Category --> 3728 <div class="tab-pane fade" id="money-back" role="tabpanel" aria-labelledby="money-back-tab"> 3729 <div class="accordion" id="moneyBackAccordion"> 3730 3731 <!-- Q1 in Money Back Guarantee --> 3732 <div class="accordion-item"> 3733 <h2 class="accordion-header" id="moneyBackHeadingOne"> 3734 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseOne" aria-expanded="false" aria-controls="moneyBackCollapseOne"> 3735 What is your money-back guarantee policy? 3736 </button> 3737 </h2> 3738 <div id="moneyBackCollapseOne" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingOne" data-bs-parent="#moneyBackAccordion"> 3739 <div class="accordion-body"> 3740 We offer best-in-industry, 60-day, unconditional 100% Money-Back Guarantee. If your certification doesnât meet your requirements, simply email us a copy 3741 of your replacement certification from another provider, we will issue a full refundâno questions asked. 3742 </div> 3743 </div> 3744 </div> 3745 3746 <!-- Q2 in Money Back Guarantee --> 3747 <div class="accordion-item"> 3748 <h2 class="accordion-header" id="moneyBackHeadingTwo"> 3749 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseTwo" aria-expanded="false" aria-controls="moneyBackCollapseTwo"> 3750 How long do I have to request a refund? 3751 </button> 3752 </h2> 3753 <div id="moneyBackCollapseTwo" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingTwo" data-bs-parent="#moneyBackAccordion"> 3754 <div class="accordion-body"> 3755 You can request a refund within 60 days from the date of your CPRToday! certification. 3756 </div> 3757 </div> 3758 </div> 3759 3760 <!-- Q3 in Money Back Guarantee --> 3761 <div class="accordion-item"> 3762 <h2 class="accordion-header" id="moneyBackHeadingThree"> 3763 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseThree" aria-expanded="false" aria-controls="moneyBackCollapseThree"> 3764 Are there any "processing" charges associated with the refund? 3765 </button> 3766 </h2> 3767 <div id="moneyBackCollapseThree" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingThree" data-bs-parent="#moneyBackAccordion"> 3768 <div class="accordion-body"> 3769 No. There are no hidden fees when you request a refund. You will receive the full amount you paid for your certification, refunded directly to your credit card. 3770 </div> 3771 </div> 3772 </div> 3773 3774 <!-- Q4 in Money Back Guarantee --> 3775 <div class="accordion-item"> 3776 <h2 class="accordion-header" id="moneyBackHeadingFour"> 3777 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseFour" aria-expanded="false" aria-controls="moneyBackCollapseFour"> 3778 How long does it take to process a refund? 3779 </button> 3780 </h2> 3781 <div id="moneyBackCollapseFour" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingFour" data-bs-parent="#moneyBackAccordion"> 3782 <div class="accordion-body"> 3783 Refunds are typically processed within 5 business days. You will receive a confirmation email once your refund has been issued. 3784 </div> 3785 </div> 3786 </div> 3787 3788 <!-- Q5 in Money Back Guarantee --> 3789 <div class="accordion-item"> 3790 <h2 class="accordion-header" id="moneyBackHeadingFive"> 3791 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseFive" aria-expanded="false" aria-controls="moneyBackCollapseFive"> 3792 What if my certification is rejected after the refund period? 3793 </button> 3794 </h2> 3795 <div id="moneyBackCollapseFive" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingFive" data-bs-parent="#moneyBackAccordion"> 3796 <div class="accordion-body"> 3797 We offer an unprecedented 60 days refund period which should provide you with more than enough time to submit your certification. We recommend submitting your certification within this time frame. 3798 </div> 3799 </div> 3800 </div> 3801 3802 <!-- Q6 in Money Back Guarantee --> 3803 <div class="accordion-item"> 3804 <h2 class="accordion-header" id="moneyBackHeadingSix"> 3805 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseSix" aria-expanded="false" aria-controls="moneyBackCollapseSix"> 3806 What if I changed my mind after purchasing certification? 3807 </button> 3808 </h2> 3809 <div id="moneyBackCollapseSix" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingSix" data-bs-parent="#moneyBackAccordion"> 3810 <div class="accordion-body">
3811 Don't download it! But if you have and you wish to receive a refund, please follow our Money Back Guarante requirements. 3812 </div> 3813 </div> 3814 </div> 3815 3816 <!-- Q7 in Money Back Guarantee --> 3817 <div class="accordion-item"> 3818 <h2 class="accordion-header" id="moneyBackHeadingSeven"> 3819 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseSeven" aria-expanded="false" aria-controls="moneyBackCollapseSeven"> 3820 How will my refund be issued? 3821 </button> 3822 </h2> 3823 <div id="moneyBackCollapseSeven" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingSeven" data-bs-parent="#moneyBackAccordion"> 3824 <div class="accordion-body"> 3825 Your full payment will be refunded to your original credit card. 3826 </div> 3827 </div> 3828 </div> 3829 3830 <!-- Q8 in Money Back Guarantee --> 3831 <div class="accordion-item"> 3832 <h2 class="accordion-header" id="moneyBackHeadingEight"> 3833 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseEight" aria-expanded="false" aria-controls="moneyBackCollapseEight"> 3834 How do I request a refund? 3835 </button> 3836 </h2> 3837 <div id="moneyBackCollapseEight" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingEight" data-bs-parent="#moneyBackAccordion"> 3838 <div class="accordion-body"> 3839 Simply <a href="#" class="contact-us">shoot us an email</a></li> within 60 days of your order and let us know! Once you email us a copy of your 3840 replacement certification, we will process and issue your full refund. 3841 </div> 3842 </div> 3843 </div> 3844 3845 <!-- Q9 in Money Back Guarantee --> 3846 <div class="accordion-item"> 3847 <h2 class="accordion-header" id="moneyBackHeadingNine"> 3848 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseNine" aria-expanded="false" aria-controls="moneyBackCollapseNine"> 3849 Is there a limit to the number of refunds I can request? 3850 </button> 3851 </h2> 3852 <div id="moneyBackCollapseNine" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingNine" data-bs-parent="#moneyBackAccordion"> 3853 <div class="accordion-body"> 3854 Our money-back guarantee applies to all of your orders within the 60-day period. 3855 </div> 3856 </div> 3857 </div> 3858 3859 <!-- Q10 in Money Back Guarantee --> 3860 <div class="accordion-item"> 3861 <h2 class="accordion-header" id="moneyBackHeadingTen"> 3862 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#moneyBackCollapseTen" aria-expanded="false" aria-controls="moneyBackCollapseTen"> 3863 Will I still have access to the course materials if I request a refund? 3864 </button> 3865 </h2> 3866 <div id="moneyBackCollapseTen" class="accordion-collapse collapse" aria-labelledby="moneyBackHeadingTen" data-bs-parent="#moneyBackAccordion"> 3867 <div class="accordion-body"> 3868 Of course! Your course registration and all underlying materials are yours for ever :) 3869 </div> 3870 </div> 3871 </div> 3872 3873 </div> 3874 </div> 3875 3876 <!-- Technical & Compatibility FAQs Category --> 3877 <div class="tab-pane fade" id="technical" role="tabpanel" aria-labelledby="technical-tab"> 3878 <div class="accordion" id="technicalAccordion"> 3879 3880 <!-- Q1 in Technical --> 3881 <div class="accordion-item"> 3882 <h2 class="accordion-header" id="technicalHeadingOne"> 3883 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#technicalCollapseOne" aria-expanded="false" aria-controls="technicalCollapseOne"> 3884 What devices can I use to take the courses? 3885 </button> 3886 </h2>
3887 <div id="technicalCollapseOne" class="accordion-collapse collapse" aria-labelledby="technicalHeadingOne" data-bs-parent="#technicalAccordion"> 3888 <div class="accordion-body"> 3889 Our courses work on any internet-connected device, including desktops, laptops, tablets, and smartphones. However, For optimal user experience, 3890 we recommend devices with larger screens, such as a laptop or tablet. 3891 </div> 3892 </div> 3893 </div> 3894 3895 <!-- Q2 in Technical --> 3896 <div class="accordion-item"> 3897 <h2 class="accordion-header" id="technicalHeadingTwo"> 3898 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#technicalCollapseTwo" aria-expanded="false" aria-controls="technicalCollapseTwo"> 3899 What web browsers are supported? 3900 </button> 3901 </h2> 3902 <div id="technicalCollapseTwo" class="accordion-collapse collapse" aria-labelledby="technicalHeadingTwo" data-bs-parent="#technicalAccordion"> 3903 <div class="accordion-body"> 3904 Our courses are designed to run on the latest versions of popular web browsers like Chrome, Firefox, Microsoft Edge, and Safari, and are backwards compatible. 3905 Be sure to keep your browser up to date for the best performance. 3906 </div> 3907 </div> 3908 </div> 3909 3910 <!-- Q3 in Technical --> 3911 <div class="accordion-item"> 3912 <h2 class="accordion-header" id="technicalHeadingThree"> 3913 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#technicalCollapseThree" aria-expanded="false" aria-controls="technicalCollapseThree"> 3914 Do I need any special software to take the course? 3915 </button> 3916 </h2> 3917 <div id="technicalCollapseThree" class="accordion-collapse collapse" aria-labelledby="technicalHeadingThree" data-bs-parent="#technicalAccordion"> 3918 <div class="accordion-body"> 3919 All courses are accessed directly on your browser so you will not need to install any plug-ins or extensions. 3920 </div> 3921 </div> 3922 </div> 3923 3924 <!-- Q4 in Technical --> 3925 <div class="accordion-item"> 3926 <h2 class="accordion-header" id="technicalHeadingFour"> 3927 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#technicalCollapseFour" aria-expanded="false" aria-controls="technicalCollapseFour"> 3928 What should I do if Iâm having trouble accessing my course? 3929 </button> 3930 </h2> 3931 <div id="technicalCollapseFour" class="accordion-collapse collapse" aria-labelledby="technicalHeadingFour" data-bs-parent="#technicalAccordion"> 3932 <div class="accordion-body"> 3933 Make sure you are entering correct sign-in credentials (username and password). Try refreshing your browser, and clear your cache 3934 and cookies of any lingering junk. If the issue persists, reach out to our support team for prompt assistance. 3935 </div> 3936 </div> 3937 </div> 3938 3939 <!-- Q5 in Technical --> 3940 <div class="accordion-item"> 3941 <h2 class="accordion-header" id="technicalHeadingFive"> 3942 <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#technicalCollapseFive" aria-expanded="false" aria-controls="technicalCollapseFive"> 3943 Can I access courses offline? 3944 </button> 3945 </h2> 3946 <div id="technicalCollapseFive" class="accordion-collapse collapse" aria-labelledby="technicalHeadingFive" data-bs-parent="#technicalAccordion"> 3947 <div class="accordion-body"> 3948 Currently our courses are available only with an active internet connection. 3949 </div> 3950 </div> 3951 </div> 3952 3953 </div> 3954 </div> 3955 3956 </div> 3957</div> 3958
3959<script src="/public/js/faq-search.1775308220.js"></script>
3959 3960</div> 3961 3962 3963 3964 3965<section class="final-cta-band"> 3966 <div class="final-cta"> 3967 <div class="final-cta-card"> 3968 <h3>Get certified today.</h3> 3969 <p>Train for free â pay only after you pass.</p> 3970 3971 <div class="final-cta-actions"> 3972 <a class="hero-take-course-button" onclick="document.location.href='#cta';"> 3973 Start Training Now 3974 </a> 3975 </div> 3976 </div> 3977 </div> 3978</section> 3979 3980 3981<!-- CPRToday No-Enshittification Pledge --> 3982<div class="cprt-pledge" data-cprt-pledge> 3983 <button class="cprt-pledge__badge" type="button" aria-expanded="false" aria-controls="cprt-pledge-panel"> 3984 <span class="cprt-pledge__badge-mark">â </span> 3985 <span class="cprt-pledge__badge-text">NO-ENSHITTIFICATION<br>PLEDGE</span> 3986 </button> 3987 3988<aside class="cprt-pledge__panel" id="cprt-pledge-panel" aria-hidden="true"> 3989 <button class="cprt-pledge__close" type="button" aria-label="Close pledge">Ã</button> 3990 3991 <div class="cprt-pledge__stamp">CPRTODAY NOTICE</div> 3992 3993 <h2>No-Enshittification Pledge</h2> 3994 3995 <!--p class="cprt-pledge__line"> 3996 Everything feels like itâs getting worse by design. 3997 </p> 3998 3999 <p class="cprt-pledge__line cprt-pledge__line--bold"> 4000 Not here. 4001 </p--> 4002 4003 <div class="cprt-pledge__rules"> 4004 <span>No subscriptions.</span> 4005 <span>No dynamic pricing.</span> 4006 <span>No hidden fees.</span> 4007 <span>No dark patterns.</span> 4008 <span>No data lock-in.</span> 4009 <span>No bait-and-switches.</span> 4010 <span>No ads. Ever.</span> 4011 <span>No tracking.</span> 4012 <span>No harvesting your data.</span> 4013 <span>No corporate gaslighting.</span> 4014 </div> 4015 4016 <div class="cprt-pledge__dates"> 4017 <span>Effective Dates</span> 4018 <strong>1999âEVER</strong> 4019 </div> 4020</aside> 4021</div> 4022 4023<style> 4024.cprt-pledge { 4025 position: fixed; 4026 right: 20px; 4027 bottom: 18px; 4028 z-index: 99999; 4029 font-family: inherit; 4030} 4031
4032/* Small elegant floating badge */ 4033 4034.cprt-pledge__badge { 4035 display: inline-flex; 4036 align-items: center; 4037 gap: 8px; 4038 border: 1px solid rgba(7, 87, 200, 0.22); 4039 background: rgba(255, 255, 255, 0.92); 4040 color: #0757c8; 4041 border-radius: 999px; 4042 padding: 9px 13px; 4043 box-shadow: 0 12px 34px rgba(7, 35, 95, 0.18); 4044 backdrop-filter: blur(10px); 4045 -webkit-backdrop-filter: blur(10px); 4046 cursor: pointer; 4047 transform: none; 4048 transition: 4049 transform 180ms ease, 4050 box-shadow 180ms ease, 4051 border-color 180ms ease, 4052 background 180ms ease; 4053} 4054 4055.cprt-pledge__badge:hover { 4056 transform: translateY(-2px); 4057 border-color: rgba(7, 87, 200, 0.38); 4058 background: #ffffff; 4059 box-shadow: 0 16px 42px rgba(7, 35, 95, 0.24); 4060} 4061 4062.cprt-pledge__badge-mark { 4063 display: inline-flex; 4064 align-items: center; 4065 justify-content: center; 4066 width: 19px; 4067 height: 19px; 4068 border-radius: 999px; 4069 background: #ffb323; 4070 color: #111f4a; 4071 font-size: 12px; 4072 line-height: 1; 4073 font-weight: 900; 4074} 4075 4076.cprt-pledge__badge-text { 4077 font-size: 10px; 4078 line-height: 1.05; 4079 font-weight: 900; 4080 letter-spacing: 0.055em; 4081 text-align: left; 4082 text-transform: uppercase; 4083} 4084 4085/* Elegant compact panel */ 4086 4087.cprt-pledge__panel { 4088 position: fixed; 4089 right: 20px; 4090 bottom: 76px; 4091 width: min(340px, calc(100vw - 40px)); 4092 max-height: none; 4093 overflow: visible; 4094 background: rgba(255, 255, 255, 0.96); 4095 color: #111f4a; 4096 border: 1px solid rgba(7, 87, 200, 0.16); 4097 border-radius: 24px; 4098 box-shadow: 0 28px 80px rgba(7, 35, 95, 0.26); 4099 backdrop-filter: blur(14px); 4100 -webkit-backdrop-filter: blur(14px); 4101 padding: 22px; 4102 opacity: 0; 4103 pointer-events: none; 4104 transform: translateY(10px) scale(0.98); 4105 transition: 4106 opacity 180ms ease, 4107 transform 180ms ease; 4108} 4109 4110.cprt-pledge.is-open .cprt-pledge__panel { 4111 opacity: 1; 4112 pointer-events: auto; 4113 transform: translateY(0) scale(1); 4114} 4115 4116.cprt-pledge__close { 4117 position: absolute; 4118 top: 14px; 4119 right: 14px; 4120 width: 28px; 4121 height: 28px; 4122 border: 0; 4123 border-radius: 999px; 4124 background: #f4f7fb; 4125 color: #4b5f86; 4126 font-size: 21px; 4127 line-height: 26px; 4128 cursor: pointer; 4129 z-index: 2; 4130} 4131 4132.cprt-pledge__close:hover { 4133 background: #eaf1fb; 4134 color: #0757c8; 4135} 4136 4137.cprt-pledge__stamp { 4138 display: inline-flex; 4139 margin: 0 34px 14px 0; 4140 padding: 6px 10px; 4141 border-radius: 999px; 4142 background: #eef5ff; 4143 color: #0757c8; 4144 font-size: 10px; 4145 font-weight: 900; 4146 letter-spacing: 0.08em; 4147 text-transform: uppercase; 4148} 4149 4150.cprt-pledge__panel h2 { 4151 margin: 0 0 10px; 4152 color: #111f4a; 4153 font-size: 25px; 4154 line-height: 1.02; 4155 font-weight: 950; 4156 letter-spacing: -0.045em; 4157} 4158 4159.cprt-pledge__line { 4160 margin: 0 0 8px; 4161 color: #405170; 4162 font-size: 14px; 4163 line-height: 1.42; 4164 font-weight: 600; 4165} 4166 4167.cprt-pledge__line--bold { 4168 display: inline-flex; 4169 margin: 6px 0 14px; 4170 padding: 6px 11px; 4171 background: rgba(255, 179, 35, 0.18); 4172 color: #111f4a; 4173 border: 1px solid rgba(255, 179, 35, 0.38); 4174 border-radius: 999px; 4175 font-size: 14px; 4176 font-weight: 900; 4177} 4178 4179/* Compact promise list */ 4180 4181.cprt-pledge__rules { 4182 display: grid; 4183 gap: 7px; 4184 margin: 0; 4185} 4186 4187.cprt-pledge__rules span { 4188 display: block; 4189 position: relative; 4190 padding: 7px 10px 7px 27px; 4191 background: #ffffff; 4192 color: #111f4a; 4193 border: 1px solid rgba(7, 87, 200, 0.12); 4194 border-radius: 12px; 4195 box-shadow: 0 4px 12px rgba(7, 35, 95, 0.045); 4196 font-size: 13px; 4197 line-height: 1.1; 4198 font-weight: 800; 4199} 4200 4201.cprt-pledge__rules span::before { 4202 content: "â"; 4203 position: absolute; 4204 left: 10px; 4205 top: 7px; 4206 color: #0757c8; 4207 font-size: 12px; 4208 font-weight: 950; 4209} 4210 4211/* Date footer */ 4212 4213.cprt-pledge__dates { 4214 display: flex; 4215 align-items: center; 4216 justify-content: space-between; 4217 4218 margin-top: 14px; 4219 padding: 11px 12px; 4220 4221 border-left: 4px solid #ffb323; 4222 border-radius: 14px; 4223 4224 background: #f4f7fb; 4225} 4226 4227.cprt-pledge__dates span { 4228 color: #5b6b86; 4229 font-size: 10px; 4230 font-weight: 900; 4231 letter-spacing: .08em; 4232 text-transform: uppercase; 4233} 4234 4235.cprt-pledge__dates strong { 4236 color: #0757c8; 4237 font-size: 16px; 4238 font-weight: 750; 4239 letter-spacing: -.03em; 4240} 4241 4242@media (max-width: 520px) { 4243 .cprt-pledge { 4244 right: 12px; 4245 bottom: 12px; 4246 } 4247 4248 .cprt-pledge__badge { 4249 padding: 8px 11px; 4250 } 4251 4252 .cprt-pledge__badge-text { 4253 font-size: 9px; 4254 } 4255 4256 .cprt-pledge__panel { 4257 right: 12px; 4258 bottom: 66px; 4259 width: calc(100vw - 24px); 4260 padding: 20px; 4261 } 4262} 4263</style> 4264
4265<script> 4266 (function () { 4267 const root = document.querySelector('[data-cprt-pledge]'); 4268 if (!root) return; 4269 4270 const badge = root.querySelector('.cprt-pledge__badge'); 4271 const panel = root.querySelector('.cprt-pledge__panel'); 4272 const close = root.querySelector('.cprt-pledge__close'); 4273 4274 function openPanel() { 4275 root.classList.add('is-open'); 4276 badge.setAttribute('aria-expanded', 'true'); 4277 panel.setAttribute('aria-hidden', 'false'); 4278 } 4279 4280 function closePanel() { 4281 root.classList.remove('is-open'); 4282 badge.setAttribute('aria-expanded', 'false'); 4283 panel.setAttribute('aria-hidden', 'true'); 4284 } 4285 4286 badge.addEventListener('click', function (event) { 4287 event.stopPropagation(); 4288 root.classList.contains('is-open') ? closePanel() : openPanel(); 4289 }); 4290 4291 close.addEventListener('click', function (event) { 4292 event.stopPropagation(); 4293 closePanel(); 4294 }); 4295 4296 panel.addEventListener('click', function (event) { 4297 event.stopPropagation(); 4298 }); 4299 4300 document.addEventListener('keydown', function (event) { 4301 if (event.key === 'Escape') closePanel(); 4302 }); 4303 4304 document.addEventListener('click', closePanel); 4305 })(); 4306</script>
4306 <!-- <div class="vertical-button-container"> 4307 <button class="vertical-button">Report a problem</button> 4308</div> --> 4309 4310<footer class="footer-shell"> 4311 <div class="footer-container"> 4312 <!-- Column 1: Quick Links --> 4313 <div class="footer-links"> 4314 <div> 4315 <h3>Quick Links</h3> 4316 <ul class="footer-links-list"> 4317 <li><a href="/">Home</a></li> 4318 <li><a href="/#bls">Courses and Pricing</a></li> 4319 <li><a href="/corporate">Certification For Groups</a></li> 4320 <li><a href="/amember/signup">Login/Registration</a></li> 4321 </ul> 4322 </div> 4323 <div> 4324 <h3>Support</h3> 4325 <ul class="footer-links-list"> 4326 <li><a href="/preview-certification">Preview Your Certification</a></li> 4327 <li><a href="/verify-certification" class="certificate-verify">Certification Verification</a></li> 4328 <li><a href="/#faq">FAQ</a></li> 4329 <li><a href="/community">Community Love</a></li> 4330 <li><a href="/about-us">The CPRToday! Story</a></li> 4331 </ul> 4332 </div> 4333 4334 <div> 4335 <h3>Contact Us</h3> 4336 <p><a href="mailto:[email protected]" class="contact-us">[email protected]</a></p> 4337 <h3>Connect With Us</h3> 4338 <div class="social-icons footer-social-icons"> 4339 <a href="https://www.x.com" target="_blank"> 4340 <img src="/public/images/xIcon.svg" alt="X" loading="lazy" decoding="async"> 4341 </a> 4342 <a href="https://www.facebook.com" target="_blank"> 4343 <img src="/public/images/facebookIcon.svg" alt="Facebook" loading="lazy" decoding="async"> 4344 </a> 4345 <a href="https://www.linkedin.com" target="_blank"> 4346 <img src="/public/images/linkedinIcon.svg" alt="LinkedIn" loading="lazy" decoding="async"> 4347 </a> 4348 <a href="https://www.instagram.com" target="_blank"> 4349 <img src="/public/images/igIcon.svg" alt="Instagram" loading="lazy" decoding="async"> 4350 </a> 4351 </div> 4352 4353 </div> 4354 </div> 4355 4356 <div class="footer-copyright"> 4357 <div>© 1999-2026 CPRToday! Inc. All Rights Reserved.</div> 4358 <div class="footer-legal-links"> 4359 <a href="/terms#privacy-policy">Privacy Policy</a> 4360 <a href="/terms">Terms of Use</a> 4361 </div> 4362 </div> 4363 <div class="footer-copyright"> 4364 <div class="footer-recaptcha-copy"> 4365 This site is protected by reCAPTCHA and the Google 4366 <a href="https://policies.google.com/privacy">Privacy Policy</a> and 4367 <a href="https://policies.google.com/terms">Terms of Service</a> apply. 4368 </div> 4369 4370 </div> 4371 4372 </div> 4373</footer> 4374 4375<!-- TikTok Pixel Code Start -->
4376<script> 4377!function (w, d, t) { 4378 w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for( 4379var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script") 4380;n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)}; 4381 4382 ttq.load('D757LERC77U0IM2CULMG'); 4383 ttq.page(); 4384}(window, document, 'ttq'); 4385</script>
4385 4386<!-- TikTok Pixel Code End --> 4387 </div> 4388 4389 <!-- Old flash blocks removed on purpose --> 4390 <div id="cprtoday-user"></div> <!-- Help-Me-Choose Wizard Dialog --> 4391<link rel="stylesheet" href="/public/css/choose-wizard.1773741982.css"/> 4392 4393<div class="choose-overlay" id="chooseOverlay"> 4394 <div class="choose-wizard"> 4395 4396 <button class="choose-close" aria-label="Close">×</button> 4397 4398 <div class="choose-progress-wrap"> 4399 <div class="choose-step-label" id="chooseStepLabel"></div> 4400 <div class="choose-progress"><div class="choose-progress-bar" id="chooseProgressBar"></div></div> 4401 </div> 4402 4403 <div class="choose-selections" id="chooseSelections"></div> 4404 4405 <div id="chooseQuestionArea"></div> 4406 4407 <div class="choose-nav"> 4408 <button class="choose-prev" id="chooseBackBtn">Back</button> 4409 </div> 4410 4411 </div> 4412</div> 4413
4414<script src="/public/js/choose-wizard.1773741982.js"></script>
4414 4415 <img src="https://backend.cprtoday.com/log.php?u=Lw==" width="0" height="0" class="request-log-pixel"/> 4416 4417<!-- ========= ALS + BLS + SUPPORT Mega (index) ========= --> 4418 4419 4420<!-- ALS mega --> 4421<div id="alsMega" hidden> 4422 <div class="als-head"> 4423 <div class="als-title">ADVANCED LIFE SUPPORT COURSES</div> 4424 <a class="als-seeall" href="/#acls">See all â</a> 4425 </div> 4426 <div class="als-grid"> 4427 <a class="als-card" href="/#acls"> 4428 <span class="als-ico"><img src="/public/images/icon-family.webp" alt="" loading="lazy" decoding="async"></span> 4429 <h4 class="als-h">Advanced Cardiovascular Life Support (ACLS)</h4> 4430 <div class="als-cta">Explore â</div> 4431 <p class="als-d">For advanced resuscitation teams and providers.</p> 4432 </a> 4433 <a class="als-card" href="/#pals"> 4434 <span class="als-ico"><img src="/public/images/icon-kids.webp" alt="" loading="lazy" decoding="async"></span> 4435 <h4 class="als-h">Pediatric Advanced Life Support (PALS)</h4> 4436 <div class="als-cta">Explore â</div> 4437 <p class="als-d">Pediatric emergencies & advanced interventions.</p> 4438 </a> 4439 <a class="als-card" href="/#nrs"> 4440 <span class="als-ico"> 4441 <img src="/public/images/icon-infant.webp" alt="" loading="lazy" decoding="async"> 4442 </span> 4443 <h4 class="als-h">Neonatal Resuscitation & Stabilization (NRP-Equivalent)</h4> 4444 <p class="als-d"> 4445 Newborn resuscitation principles for delivery-room emergencies, 4446 ventilation, and post-birth stabilization. 4447 </p> 4448 </a> 4449 </div> 4450</div> 4451 4452<!-- BLS mega --> 4453<div id="blsMega" hidden> 4454 <div class="bls-head"> 4455 <div class="bls-title">Basic Life Support Courses</div> 4456 <a class="bls-seeall" href="/#cpr">See all â</a> 4457 </div> 4458 <div class="bls-grid"> 4459 <a class="bls-card" href="/#cpr"> 4460 <span class="bls-ico"><img src="/public/images/icon-family.webp" alt="" loading="lazy" decoding="async"></span> 4461 <h4 class="bls-h">Adult & Pediatric CPR + AED</h4> 4462 <div class="bls-cta">Explore â</div> 4463 <p class="bls-d">Full CPR coverage for infants, children & adults, with AED.</p> 4464 </a> 4465 <a class="bls-card" href="/#acpr"> 4466 <span class="bls-ico"><img src="/public/images/icon-old-man.webp" alt="" loading="lazy" decoding="async"></span> 4467 <h4 class="bls-h">Adult CPR + AED</h4> 4468 <div class="bls-cta">Explore â</div> 4469 <p class="bls-d">Focused adult-only CPR with AED use.</p> 4470 </a> 4471 <a class="bls-card" href="/#hcp"> 4472 <span class="bls-ico"><img src="/public/images/icon-doctor1.webp" alt="" loading="lazy" decoding="async"></span> 4473 <h4 class="bls-h">Healthcare Provider BLS</h4> 4474 <div class="bls-cta">Explore â</div> 4475 <p class="bls-d">For clinical settings. AHA guidelineâaligned.</p> 4476 </a> 4477 <a class="bls-card" href="/#bfa"> 4478 <span class="bls-ico"><img src="/public/images/icon-wound.webp" alt="" loading="lazy" decoding="async"></span> 4479 <h4 class="bls-h">First Aid</h4> 4480 <div class="bls-cta">Explore â</div> 4481 <p class="bls-d">Everyday emergencies: assess, respond, stabilize.</p> 4482 </a> 4483 <a class="bls-card" href="/#bbp"> 4484 <span class="bls-ico"><img src="/public/images/icon-lab.webp" alt="" loading="lazy" decoding="async"></span> 4485 <h4 class="bls-h">Bloodborne Pathogens</h4> 4486 <div class="bls-cta">Explore â</div> 4487 <p class="bls-d">OSHA-oriented exposure prevention & response.</p> 4488 </a> 4489 <a class="bls-card" href="/#bcls"> 4490 <span class="bls-ico"><img src="/public/images/icon-hand-heart.webp" alt="" loading="lazy" decoding="async"></span> 4491 <h4 class="bls-h">Comprehensive BLS BUNDLE</h4> 4492 <div class="bls-cta">Explore â</div> 4493 <p class="bls-d">Best Value: multi-course package.</p> 4494 </a> 4495 </div> 4496</div> 4497 4498<!-- SUPPORT mega --> 4499<div id="supMega" hidden> 4500 <div class="sup-head"> 4501 <div class="sup-title">Support</div> 4502 <a class="sup-seeall" style="visibility: hidden;" href="/support">See all â</a> 4503 </div> 4504 4505<div class="sup-grid"> 4506 4507<!-- FIRST ROW / SPANS 2 COLUMNS --> 4508<a class="sup-card sup-featured" href="/verify-certification"> 4509 <span class="sup-ico"><img src="/public/images/verify.webp" alt="" loading="lazy" decoding="async"></span> 4510 <h4 class="sup-h">Certification Verification</h4> 4511 <div class="sup-cta">Verify â</div> 4512 <p class="sup-d">Check a CPRToday! certificate by last name and eCertification number.</p> 4513</a> 4514 4515 <!-- EVERYTHING ELSE = NORMAL CELLS --> 4516 <a class="sup-card certificate-demo" href="#" data-product-id="7"> 4517 <span class="sup-ico"><img src="/public/images/preview.webp" alt="" loading="lazy" decoding="async"></span> 4518 <h4 class="sup-h">Preview Your Certification</h4> 4519 <div class="sup-cta">Open â</div> 4520 <p class="sup-d">See exactly what your digital card will look like.</p> 4521 </a> 4522 4523 <a class="sup-card" href="/#faq"> 4524 <span class="sup-ico"><img src="/public/images/faq.webp" alt="" loading="lazy" decoding="async"></span> 4525 <h4 class="sup-h">FAQ</h4> 4526 <div class="sup-cta">Read â</div> 4527 <p class="sup-d">Answers to the most common questions.</p> 4528 </a> 4529 4530 <a class="sup-card" href="/community"> 4531 <span class="sup-ico"><img src="/public/images/hand-heart.webp" alt="" loading="lazy" decoding="async"></span> 4532 <h4 class="sup-h">Community Love</h4> 4533 <div class="sup-cta">Explore â</div> 4534 <p class="sup-d">Stories and shout-outs from the field.</p> 4535 </a> 4536 4537 <a class="sup-card contact-us" href="#"> 4538 <span class="sup-ico"><img src="/public/images/support.webp" alt="" loading="lazy" decoding="async"></span> 4539 <h4 class="sup-h">Contact Us</h4> 4540 <div class="sup-cta">Reach out â</div> 4541 <p class="sup-d">Get help from a real human â fast.</p> 4542 </a> 4543 4544 <!--a class="sup-card" href="/about-us"> 4545 <span class="sup-ico"><img src="/public/images/hello.webp" alt=""></span> 4546 <h4 class="sup-h">The CPRToday! Story</h4> 4547 <div class="sup-cta">Learn â</div> 4548 <p class="sup-d">Who we are and why we do this.</p> 4549 </a--> 4550 4551</div> 4552 4553</div> 4554 4555 4556<!-- Shared scrim --> 4557<div id="navScrim" hidden></div> 4558 4559 4560 4561<!-- ===== /ALS + BLS + SUPPORT Mega (index) ===== --> 4562</body> 4563</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.