PageSourceSearch

https://cprtoday.com/

html cprtoday.com collected 2026-10-05 11:06:10 UTC 195,963 bytes, 4,563 lines download raw bytes

1<!DOCTYPE html>
2<html>
3<head>
4  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5  <title>Online CPR Certification &amp; Online First Aid Certification :: CPRToday! CPR Course &amp; 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">&nbsp;</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">&nbsp;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">&nbsp;Courses</span>
377      </a>
378    </li>
379
380    <!-- Group Solutions -->
381    <li class="">
382      <a href="/corporate-hub">Group<span class="hide-1200">&nbsp;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>&nbsp;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">&nbsp;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&nbsp;<span style="letter-spacing: -0.01em;">Certified</span>&nbsp;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&mdash;or shoes&mdash;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 &amp; Pediatric CPR</span>
684		  </div>
685
686		  <span class="pcs-meta">
687			Caregivers · Educators · Workplace &amp; 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 &amp; 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 &amp; 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">&times;</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>&copy; 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">&times;</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.