1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 7 <!-- âââ PRIMARY SEO âââ --> 8 <title>OSHA Compliance Platform | Certificate Generator & Verification</title> 9 <meta name="description" content="Stop making OSHA certificates in Word. SmartCerts.ai generates compliant, professional safety training certificates in under 2 minutes. Join the betaâearly access now open."> 10 <link rel="canonical" href="https://smartcerts.ai/"> 11 <meta name="robots" content="index, follow"> 12 <meta name="author" content="SmartCerts.ai"> 13 <meta name="keywords" content="OSHA certificate generator, safety training certificate, AI certificate generator, OSHA compliance, safety certificate software, OSHA training documentation"> 14 15 <!-- âââ OPEN GRAPH âââ --> 16 <meta property="og:title" content="OSHA Compliance Platform | Certificate Generator & Verification"> 17 <meta property="og:description" content="AI-generated OSHA safety training certificates. No Word templates, no design software. Beta access now open."> 18 <meta property="og:url" content="https://smartcerts.ai/"> 19 <meta property="og:type" content="website"> 20 <meta property="og:site_name" content="SmartCerts.ai"> 21 <meta property="og:image" content="https://smartcerts.ai/og-image.jpg"> 22 23 <!-- âââ TWITTER âââ --> 24 <meta name="twitter:card" content="summary_large_image"> 25 <meta name="twitter:title" content="OSHA Compliance Platform | Certificate Generator & Verification"> 26 <meta name="twitter:description" content="Stop making OSHA certificates in Word. Beta access now open."> 27 <meta name="twitter:image" content="https://smartcerts.ai/og-image.jpg"> 28 29 <!-- âââ SCHEMA: ORGANIZATION âââ --> 30
30<script type="application/ld+json"> 31 { 32 "@context": "https://schema.org", 33 "@type": "SoftwareApplication", 34 "name": "SmartCerts.ai", 35 "url": "https://smartcerts.ai", 36 "description": "AI-powered OSHA safety training certificate generator. Creates compliant, professional certificates in under 2 minutes.", 37 "applicationCategory": "BusinessApplication", 38 "operatingSystem": "Web", 39 "offers": { 40 "@type": "Offer", 41 "price": "0", 42 "priceCurrency": "USD", 43 "description": "Beta access â free during beta period" 44 }, 45 "publisher": { 46 "@type": "Organization", 47 "name": "SmartCerts.ai", 48 "url": "https://smartcerts.ai", 49 "sameAs": ["https://elevinvest.com"] 50 }, 51 "featureList": [ 52 "OSHA-compliant certificate templates", 53 "2-minute certificate generation", 54 "PDF delivery", 55 "Built-in QR verification", 56 "10+ certificate types including LOTO, Fall Protection, HazCom" 57 ] 58 } 59 </script>
59 60 61 <!-- âââ SCHEMA: FAQ âââ --> 62
62<script type="application/ld+json"> 63 { 64 "@context": "https://schema.org", 65 "@type": "FAQPage", 66 "mainEntity": [ 67 { 68 "@type": "Question", 69 "name": "Does OSHA accept AI-generated certificates?", 70 "acceptedAnswer": { 71 "@type": "Answer", 72 "text": "OSHA does not specify a required certificate formatâwhat matters is that the certificate documents the required training details: employee name, training type, date, trainer, and employer. SmartCerts.ai templates include all required fields plus a QR verification code, which inspectors can check on-site." 73 } 74 }, 75 { 76 "@type": "Question", 77 "name": "How long does it take to generate an OSHA certificate with SmartCerts.ai?", 78 "acceptedAnswer": { 79 "@type": "Answer", 80 "text": "Under 2 minutes from start to PDF in your inbox. You enter employee details, select the certificate type, and the system handles the rest. No design work, no reformatting, no manual PDF export." 81 } 82 }, 83 { 84 "@type": "Question", 85 "name": "What types of OSHA certificates does SmartCerts.ai generate?", 86 "acceptedAnswer": { 87 "@type": "Answer", 88 "text": "SmartCerts.ai covers 10 certificate types: General Workplace Safety, Construction Safety (29 CFR 1926), Hazard Communication (HazCom), Personal Protective Equipment (PPE), Emergency Action Plan, Lockout/Tagout (LOTO), Fall Protection, Bloodborne Pathogens, Confined Space Entry, and Powered Industrial Truck/Forklift Safety." 89 } 90 }, 91 { 92 "@type": "Question", 93 "name": "What is the SmartCerts.ai beta?", 94 "acceptedAnswer": { 95 "@type": "Answer", 96 "text": "The beta is early access to SmartCerts.ai before public launch. Beta users get free access during the beta period, locked-in launch pricing, and direct input into features. Join the waitlist to secure your spot." 97 } 98 } 99 ] 100 } 101 </script>
101 102 103 <!-- âââ FAVICON âââ --> 104 <link rel="icon" href="/favicon.svg" type="image/svg+xml"> 105 <link rel="apple-touch-icon" href="/favicon.svg"> 106 107 <!-- âââ FONTS âââ --> 108 <link rel="preconnect" href="https://fonts.googleapis.com"> 109 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 110 <link href="https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@400;600;700;900&family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&display=swap" rel="stylesheet"> 111 112 <style> 113 :root { 114 --bg: #0c0d0d; 115 --surface: #141516; 116 --surface2: #1c1d1e; 117 --border: #272829; 118 --border-y: rgba(255,208,0,0.2); 119 --yellow: #FFD000; 120 --yellow-d: #E6BB00; 121 --yellow-dim:rgba(255,208,0,0.08); 122 --green: #00D68F; 123 --text: #E8E4DA; 124 --text-mid: #8A8476; 125 --text-dim: #4A4742; 126 --display: 'Big Shoulders Display', Impact, sans-serif; 127 --body: 'IBM Plex Sans', sans-serif; 128 --radius: 6px; 129 } 130 131 *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } 132 html { scroll-behavior: smooth; } 133 134 body { 135 background: var(--bg); 136 color: var(--text); 137 font-family: var(--body); 138 font-size: 16px; 139 line-height: 1.65; 140 overflow-x: hidden; 141 } 142 143 /* Industrial grid overlay */ 144 body::before { 145 content: ''; 146 position: fixed; 147 inset: 0; 148 background-image: 149 linear-gradient(rgba(255,208,0,0.025) 1px, transparent 1px), 150 linear-gradient(90deg, rgba(255,208,0,0.025) 1px, transparent 1px); 151 background-size: 48px 48px; 152 pointer-events: none; 153 z-index: 0; 154 } 155 156 /* âââ NAV âââ */ 157 nav { 158 position: sticky; 159 top: 0; 160 z-index: 100; 161 background: rgba(12,13,13,0.92); 162 backdrop-filter: blur(14px); 163 border-bottom: 1px solid var(--border); 164 } 165 .nav-inner { 166 max-width: 1020px; 167 margin: 0 auto; 168 padding: 0 24px; 169 height: 60px; 170 display: flex; 171 align-items: center; 172 justify-content: space-between; 173 } 174 .nav-logo { 175 font-family: var(--display); 176 font-size: 22px; 177 font-weight: 900; 178 color: var(--text); 179 text-decoration: none; 180 letter-spacing: 0.04em; 181 } 182 .nav-logo span { color: var(--yellow); } 183 .nav-badge { 184 display: inline-block; 185 font-family: var(--body); 186 font-size: 10px; 187 font-weight: 600; 188 letter-spacing: 0.12em; 189 text-transform: uppercase; 190 color: var(--bg); 191 background: var(--yellow); 192 padding: 2px 7px; 193 border-radius: 3px; 194 margin-left: 8px; 195 vertical-align: middle; 196 position: relative; 197 top: -2px; 198 } 199 .nav-cta { 200 font-family: var(--display); 201 font-size: 16px; 202 font-weight: 700; 203 letter-spacing: 0.06em; 204 color: var(--bg); 205 background: var(--yellow); 206 padding: 10px 22px; 207 border-radius: var(--radius); 208 text-decoration: none; 209 transition: all 0.15s; 210 } 211 .nav-cta:hover { background: var(--yellow-d); transform: translateY(-1px); } 212 213 section { position: relative; z-index: 1; } 214 215 /* âââ HERO âââ */ 216 .hero-wrap { 217 position: relative; 218 overflow: hidden; 219 border-bottom: 1px solid var(--border); 220 } 221 222 /* Big diagonal BETA stamp */ 223 .hero-stamp { 224 position: absolute; 225 top: 50%; 226 right: -60px; 227 transform: translateY(-50%) rotate(-12deg); 228 font-family: var(--display); 229 font-size: clamp(120px, 18vw, 220px); 230 font-weight: 900; 231 color: rgba(255,208,0,0.04); 232 letter-spacing: 0.08em; 233 pointer-events: none; 234 user-select: none; 235 line-height: 1; 236 } 237 238 /* Corner certification mark */ 239 .cert-corner { 240 position: absolute; 241 top: 24px; 242 right: 24px; 243 width: 80px; 244 height: 80px; 245 border: 2px solid var(--border-y); 246 border-radius: 50%; 247 display: flex; 248 align-items: center; 249 justify-content: center; 250 opacity: 0.5; 251 } 252 .cert-corner-inner { 253 font-family: var(--display); 254 font-size: 9px; 255 font-weight: 700; 256 letter-spacing: 0.12em; 257 text-align: center; 258 color: var(--yellow); 259 line-height: 1.3; 260 } 261 262 .hero { 263 max-width: 1020px; 264 margin: 0 auto; 265 padding: 88px 24px 80px; 266 display: grid; 267 grid-template-columns: 1.1fr 1fr; 268 gap: 64px; 269 align-items: center; 270 } 271 @media (max-width: 720px) { .hero { grid-template-columns: 1fr; gap: 48px; } } 272 273 .hero-eyebrow { 274 display: inline-flex; 275 align-items: center; 276 gap: 8px; 277 font-size: 12px; 278 font-weight: 600; 279 letter-spacing: 0.12em; 280 text-transform: uppercase; 281 color: var(--yellow); 282 margin-bottom: 24px; 283 } 284 .hero-eyebrow .pipe { color: var(--text-dim); } 285 286 h1 { 287 font-family: var(--display); 288 font-size: clamp(48px, 7vw, 82px); 289 font-weight: 900; 290 line-height: 0.95; 291 color: var(--text); 292 margin-bottom: 28px; 293 letter-spacing: 0.01em; 294 } 295 h1 .hl { color: var(--yellow); } 296 h1 .block { display: block; } 297 298 .hero-sub { 299 font-size: 18px; 300 color: var(--text-mid); 301 line-height: 1.75; 302 margin-bottom: 36px; 303 font-weight: 300; 304 max-width: 480px; 305 } 306 .hero-sub strong { color: var(--text); font-weight: 500; } 307 308 .hero-actions { 309 display: flex; 310 gap: 12px; 311 align-items: center; 312 flex-wrap: wrap; 313 margin-bottom: 32px; 314 } 315 .btn-primary { 316 font-family: var(--display); 317 font-size: 18px; 318 font-weight: 700; 319 letter-spacing: 0.06em; 320 color: var(--bg); 321 background: var(--yellow); 322 padding: 16px 32px; 323 border-radius: var(--radius); 324 text-decoration: none; 325 transition: all 0.15s; 326 display: inline-block; 327 } 328 .btn-primary:hover { 329 background: var(--yellow-d); 330 transform: translateY(-2px); 331 box-shadow: 0 8px 24px rgba(255,208,0,0.2); 332 } 333 .btn-ghost { 334 font-size: 14px; 335 font-weight: 500; 336 color: var(--text-mid); 337 text-decoration: none; 338 transition: color 0.15s; 339 } 340 .btn-ghost:hover { color: var(--text); } 341 342 .hero-proof { 343 display: flex; 344 gap: 24px; 345 flex-wrap: wrap; 346 } 347 .proof-item { 348 display: flex; 349 align-items: center; 350 gap: 7px; 351 font-size: 13px; 352 color: var(--text-dim); 353 } 354 .proof-item .check { 355 width: 16px; 356 height: 16px; 357 background: rgba(0,214,143,0.15); 358 border-radius: 50%; 359 display: flex; 360 align-items: center; 361 justify-content: center; 362 flex-shrink: 0; 363 font-size: 9px; 364 color: var(--green); 365 } 366 367 /* Hero aside â cert preview card */ 368 .cert-preview { 369 background: var(--surface); 370 border: 1px solid var(--border); 371 border-radius: var(--radius); 372 overflow: hidden; 373 position: relative; 374 } 375 .cert-preview-header { 376 background: var(--yellow); 377 padding: 14px 20px; 378 display: flex; 379 align-items: center; 380 justify-content: space-between; 381 } 382 .cert-preview-header-title { 383 font-family: var(--display); 384 font-size: 13px; 385 font-weight: 700; 386 letter-spacing: 0.08em; 387 color: var(--bg); 388 } 389 .cert-preview-header-badge { 390 font-size: 10px; 391 font-weight: 600; 392 letter-spacing: 0.1em; 393 text-transform: uppercase; 394 color: var(--bg); 395 background: rgba(0,0,0,0.15); 396 padding: 3px 8px; 397 border-radius: 3px; 398 } 399 .cert-preview-body { 400 padding: 22px 22px 18px; 401 } 402 .cert-line { 403 display: flex; 404 justify-content: space-between; 405 align-items: center; 406 padding: 9px 0; 407 border-bottom: 1px solid var(--border); 408 font-size: 13px; 409 } 410 .cert-line:last-child { border-bottom: none; } 411 .cert-line-label { color: var(--text-dim); font-weight: 400; } 412 .cert-line-val { color: var(--text); font-weight: 500; } 413 .cert-line-val.green { color: var(--green); }
414 .cert-line-val.yellow { color: var(--yellow); } 415 .cert-preview-footer { 416 background: var(--surface2); 417 border-top: 1px solid var(--border); 418 padding: 12px 22px; 419 display: flex; 420 align-items: center; 421 justify-content: space-between; 422 } 423 .cert-preview-footer-label { 424 font-size: 11px; 425 font-weight: 600; 426 letter-spacing: 0.1em; 427 text-transform: uppercase; 428 color: var(--text-dim); 429 } 430 .cert-timer { 431 font-family: var(--display); 432 font-size: 16px; 433 font-weight: 700; 434 color: var(--yellow); 435 letter-spacing: 0.06em; 436 } 437 438 /* Progress bar animation */ 439 .cert-progress { 440 height: 3px; 441 background: var(--border); 442 overflow: hidden; 443 } 444 .cert-progress-fill { 445 height: 100%; 446 background: var(--yellow); 447 width: 0%; 448 animation: progress 3s ease-in-out 0.5s forwards; 449 } 450 @keyframes progress { 451 0% { width: 0%; } 452 100% { width: 100%; } 453 } 454 455 /* âââ PROBLEM SECTION âââ */ 456 .problem-section { 457 border-bottom: 1px solid var(--border); 458 background: var(--surface); 459 padding: 72px 24px; 460 position: relative; 461 z-index: 1; 462 } 463 .problem-inner { 464 max-width: 1020px; 465 margin: 0 auto; 466 display: grid; 467 grid-template-columns: 1fr 1fr; 468 gap: 64px; 469 align-items: center; 470 } 471 @media (max-width: 720px) { .problem-inner { grid-template-columns: 1fr; } } 472 473 .section-label { 474 font-size: 11px; 475 font-weight: 600; 476 letter-spacing: 0.14em; 477 text-transform: uppercase; 478 color: var(--yellow); 479 margin-bottom: 14px; 480 } 481 h2 { 482 font-family: var(--display); 483 font-size: clamp(32px, 4.5vw, 52px); 484 font-weight: 900; 485 color: var(--text); 486 line-height: 1.0; 487 margin-bottom: 20px; 488 letter-spacing: 0.02em; 489 } 490 h2 .hl { color: var(--yellow); } 491 .section-body { 492 font-size: 16px; 493 color: var(--text-mid); 494 font-weight: 300; 495 line-height: 1.8; 496 } 497 .section-body p + p { margin-top: 14px; } 498 .section-body strong { color: var(--text); font-weight: 500; } 499 500 .problem-stats { 501 display: flex; 502 flex-direction: column; 503 gap: 3px; 504 } 505 .stat-row { 506 background: var(--surface2); 507 border: 1px solid var(--border); 508 border-radius: var(--radius); 509 padding: 18px 22px; 510 display: flex; 511 align-items: center; 512 gap: 20px; 513 transition: border-color 0.2s; 514 } 515 .stat-row:hover { border-color: var(--border-y); } 516 .stat-num { 517 font-family: var(--display); 518 font-size: 38px; 519 font-weight: 900; 520 color: var(--yellow); 521 letter-spacing: 0.02em; 522 line-height: 1; 523 flex-shrink: 0; 524 min-width: 80px; 525 } 526 .stat-desc { 527 font-size: 14px; 528 color: var(--text-mid); 529 font-weight: 300; 530 line-height: 1.5; 531 } 532 .stat-desc strong { color: var(--text); font-weight: 500; } 533 534 /* âââ FEATURES SECTION âââ */ 535 .features-section { 536 padding: 72px 24px; 537 border-bottom: 1px solid var(--border); 538 position: relative; 539 z-index: 1; 540 } 541 .features-inner { 542 max-width: 1020px; 543 margin: 0 auto; 544 } 545 .features-header { 546 margin-bottom: 52px; 547 max-width: 540px; 548 } 549 .features-grid { 550 display: grid; 551 grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); 552 gap: 2px; 553 border: 1px solid var(--border); 554 border-radius: var(--radius); 555 overflow: hidden; 556 } 557 .feature-card { 558 background: var(--surface); 559 padding: 32px 28px; 560 transition: background 0.15s; 561 position: relative; 562 } 563 .feature-card:hover { background: var(--surface2); } 564 .feature-card::before { 565 content: ''; 566 position: absolute; 567 top: 0; left: 0; right: 0; 568 height: 3px; 569 background: var(--yellow); 570 opacity: 0; 571 transition: opacity 0.2s; 572 } 573 .feature-card:hover::before { opacity: 1; } 574 .feature-icon { 575 font-family: var(--display); 576 font-size: 36px; 577 font-weight: 900; 578 color: var(--yellow); 579 letter-spacing: 0.04em; 580 margin-bottom: 14px; 581 line-height: 1; 582 } 583 .feature-title { 584 font-family: var(--display); 585 font-size: 20px; 586 font-weight: 700; 587 letter-spacing: 0.04em; 588 color: var(--text); 589 margin-bottom: 10px; 590 } 591 .feature-body { 592 font-size: 14px; 593 color: var(--text-mid); 594 font-weight: 300; 595 line-height: 1.65; 596 } 597 598 /* Certificate types strip */ 599 .cert-types { 600 max-width: 1020px; 601 margin: 0 auto; 602 padding: 40px 0 0; 603 } 604 .cert-types-label { 605 font-size: 11px; 606 font-weight: 600; 607 letter-spacing: 0.12em; 608 text-transform: uppercase; 609 color: var(--text-dim); 610 margin-bottom: 16px; 611 }
612 .cert-types-list { 613 display: flex; 614 flex-wrap: wrap; 615 gap: 8px; 616 } 617 .cert-tag { 618 font-size: 12px; 619 font-weight: 500; 620 color: var(--text-mid); 621 background: var(--surface); 622 border: 1px solid var(--border); 623 padding: 6px 12px; 624 border-radius: 3px; 625 transition: all 0.15s; 626 } 627 .cert-tag:hover { border-color: var(--border-y); color: var(--yellow); } 628 629 /* âââ BETA SECTION âââ */ 630 .beta-section { 631 background: var(--surface); 632 border-bottom: 1px solid var(--border); 633 padding: 72px 24px; 634 position: relative; 635 z-index: 1; 636 overflow: hidden; 637 } 638 .beta-section::before { 639 content: 'BETA'; 640 position: absolute; 641 bottom: -30px; 642 right: -20px; 643 font-family: var(--display); 644 font-size: 180px; 645 font-weight: 900; 646 color: rgba(255,208,0,0.03); 647 letter-spacing: 0.08em; 648 pointer-events: none; 649 } 650 .beta-inner { 651 max-width: 1020px; 652 margin: 0 auto; 653 display: grid; 654 grid-template-columns: 1fr 1fr; 655 gap: 64px; 656 align-items: start; 657 } 658 @media (max-width: 720px) { .beta-inner { grid-template-columns: 1fr; } } 659 660 .beta-perks { 661 display: flex; 662 flex-direction: column; 663 gap: 14px; 664 margin-top: 32px; 665 } 666 .beta-perk { 667 display: flex; 668 align-items: flex-start; 669 gap: 14px; 670 padding: 16px 18px; 671 background: var(--surface2); 672 border: 1px solid var(--border); 673 border-radius: var(--radius); 674 } 675 .beta-perk-num { 676 font-family: var(--display); 677 font-size: 22px; 678 font-weight: 900; 679 color: var(--yellow); 680 flex-shrink: 0; 681 line-height: 1.2; 682 } 683 .beta-perk-text strong { 684 display: block; 685 font-size: 14px; 686 font-weight: 600; 687 color: var(--text); 688 margin-bottom: 3px; 689 } 690 .beta-perk-text span { 691 font-size: 13px; 692 color: var(--text-dim); 693 font-weight: 300; 694 } 695 696 /* Jotform container */ 697 .signup-wrap { 698 position: relative; 699 } 700 .signup-label { 701 font-size: 11px; 702 font-weight: 600; 703 letter-spacing: 0.12em; 704 text-transform: uppercase; 705 color: var(--yellow); 706 margin-bottom: 14px; 707 } 708 .signup-title { 709 font-family: var(--display); 710 font-size: 28px; 711 font-weight: 700; 712 color: var(--text); 713 margin-bottom: 8px; 714 letter-spacing: 0.03em; 715 } 716 .signup-sub { 717 font-size: 14px; 718 color: var(--text-dim); 719 font-weight: 300; 720 margin-bottom: 24px; 721 } 722 .jotform-container { 723 background: var(--bg); 724 border: 1px solid var(--border); 725 border-radius: var(--radius); 726 overflow: hidden; 727 min-height: 420px; 728 } 729 730 /* âââ FAQ âââ */ 731 .faq-section { 732 max-width: 1020px; 733 margin: 0 auto; 734 padding: 72px 24px; 735 } 736 .faq-header { margin-bottom: 44px; } 737 .faq-list { display: flex; flex-direction: column; gap: 2px; } 738 .faq-item { 739 border: 1px solid var(--border); 740 border-radius: var(--radius); 741 overflow: hidden; 742 } 743 .faq-q { 744 background: var(--surface); 745 padding: 18px 22px; 746 cursor: pointer; 747 display: flex; 748 justify-content: space-between; 749 align-items: center; 750 font-size: 15px; 751 font-weight: 500; 752 color: var(--text); 753 user-select: none; 754 transition: background 0.15s; 755 gap: 16px; 756 } 757 .faq-q:hover { background: var(--surface2); } 758 .faq-icon { 759 font-family: var(--display); 760 font-size: 20px; 761 font-weight: 900; 762 color: var(--yellow); 763 flex-shrink: 0; 764 transition: transform 0.2s; 765 } 766 .faq-item.open .faq-icon { transform: rotate(45deg); } 767 .faq-a { 768 background: var(--bg); 769 padding: 0 22px; 770 max-height: 0; 771 overflow: hidden; 772 transition: max-height 0.3s ease, padding 0.3s; 773 border-left: 3px solid var(--yellow); 774 } 775 .faq-item.open .faq-a { 776 padding: 18px 22px; 777 max-height: 300px; 778 } 779 .faq-a p { font-size: 14px; color: var(--text-mid); line-height: 1.75; font-weight: 300; } 780 781 /* âââ FOOTER âââ */ 782 footer { 783 background: var(--surface); 784 border-top: 3px solid var(--yellow); 785 padding: 44px 24px; 786 position: relative; 787 z-index: 1; 788 } 789 .footer-inner { 790 max-width: 1020px; 791 margin: 0 auto; 792 display: flex; 793 flex-direction: column; 794 gap: 20px; 795 } 796 .footer-logo { 797 font-family: var(--display); 798 font-size: 22px; 799 font-weight: 900; 800 color: var(--text); 801 letter-spacing: 0.04em; 802 } 803 .footer-logo span { color: var(--yellow); } 804 .footer-links { 805 display: flex; 806 flex-wrap: wrap; 807 gap: 20px; 808 } 809 .footer-links a { 810 font-size: 13px; 811 color: var(--text-dim); 812 text-decoration: none; 813 transition: color 0.15s; 814 } 815 .footer-links a:hover { color: var(--yellow); } 816 .footer-legal { 817 font-size: 12px; 818 color: var(--text-dim); 819 line-height: 1.7; 820 font-weight: 300; 821 } 822 .footer-legal a { color: var(--text-dim); } 823 824 /* âââ DISCLAIMER âââ */ 825 .disclaimer { 826 max-width: 1020px; 827 margin: 0 auto; 828 padding: 0 24px 48px; 829 position: relative; 830 z-index: 1; 831 } 832 .disclaimer-box { 833 background: rgba(255,208,0,0.04); 834 border: 1px solid rgba(255,208,0,0.15); 835 border-radius: var(--radius); 836 padding: 18px 24px; 837 } 838 .disclaimer-box p { 839 font-size: 12px; 840 color: var(--text-dim); 841 line-height: 1.7; 842 font-weight: 300; 843 } 844 .disclaimer-box strong { color: var(--yellow); } 845 846 /* âââ RESPONSIVE âââ */ 847 @media (max-width: 640px) { 848 .cert-corner { display: none; } 849 .hero-stamp { display: none; } 850 } 851 852 /* âââ ANIMATIONS âââ */
853 @keyframes fadeUp { 854 from { opacity: 0; transform: translateY(20px); } 855 to { opacity: 1; transform: translateY(0); } 856 } 857 .hero-eyebrow { animation: fadeUp 0.5s ease both 0.05s; } 858 h1 { animation: fadeUp 0.5s ease both 0.12s; } 859 .hero-sub { animation: fadeUp 0.5s ease both 0.20s; } 860 .hero-actions { animation: fadeUp 0.5s ease both 0.28s; } 861 .hero-proof { animation: fadeUp 0.5s ease both 0.36s; } 862 .cert-preview { animation: fadeUp 0.6s ease both 0.20s; } 863 </style> 864</head> 865<body> 866 867 <!-- âââ NAV âââ --> 868 <nav> 869 <div class="nav-inner"> 870 <a href="/" class="nav-logo">SmartCerts<span>.ai</span><span class="nav-badge">Beta</span></a> 871 <a href="#signup" class="nav-cta">JOIN BETA</a> 872 </div> 873 </nav> 874 875 <!-- âââ HERO âââ --> 876 <div class="hero-wrap"> 877 <div class="hero-stamp" aria-hidden="true">BETA</div> 878 <div class="cert-corner" aria-hidden="true"> 879 <div class="cert-corner-inner">OSHA<br>CERT<br>AI</div> 880 </div> 881 <div class="hero" aria-labelledby="hero-h1"> 882 <div> 883 <div class="hero-eyebrow"> 884 <span>Early Access Open</span> 885 <span class="pipe">|</span> 886 <span>Beta 2026</span> 887 </div> 888 <h1 id="hero-h1"> 889 <span class="block">OSHA COMPLIANCE</span> 890 <span class="block"><span class="hl">PLATFORM</span></span> 891 <span class="block">Inspectors Can Verify</span> 892 </h1> 893 <p class="hero-sub"> 894 Generate OSHA-compliant certificates in 2 minutes with built-in verification. Inspectors get instant proof of every worker's training with QR codes and audit trails. No more Word templates. No more missing documentation. 895 </p> 896 <div class="hero-actions"> 897 <a href="#signup" class="btn-primary">GET EARLY ACCESS â</a> 898 <a href="#features" class="btn-ghost">See what's included â</a> 899 </div> 900 <div class="hero-proof"> 901 <div class="proof-item"><span class="check">â</span> OSHA Compliant (29 CFR 1926.502)</div> 902 <div class="proof-item"><span class="check">â</span> Inspector Verification (QR Codes)</div> 903 <div class="proof-item"><span class="check">â</span> Free During Beta</div> 904 </div> 905 </div> 906 907 <!-- Certificate preview card --> 908 <div class="cert-preview" role="img" aria-label="Sample certificate being generated"> 909 <div class="cert-progress"><div class="cert-progress-fill"></div></div> 910 <div class="cert-preview-header"> 911 <span class="cert-preview-header-title">GENERATING CERTIFICATE</span> 912 <span class="cert-preview-header-badge">OSHA Compliant</span> 913 </div> 914 <div class="cert-preview-body"> 915 <div class="cert-line"> 916 <span class="cert-line-label">Certificate Type</span> 917 <span class="cert-line-val yellow">Fall Protection</span> 918 </div> 919 <div class="cert-line"> 920 <span class="cert-line-label">Employee</span> 921 <span class="cert-line-val">J. Martinez</span> 922 </div> 923 <div class="cert-line"> 924 <span class="cert-line-label">Training Date</span> 925 <span class="cert-line-val">May 2, 2025</span> 926 </div> 927 <div class="cert-line"> 928 <span class="cert-line-label">Trainer</span> 929 <span class="cert-line-val">R. Thompson, CSP</span> 930 </div> 931 <div class="cert-line"> 932 <span class="cert-line-label">Regulation</span> 933 <span class="cert-line-val">29 CFR 1926.502</span> 934 </div> 935 <div class="cert-line"> 936 <span class="cert-line-label">Verification</span> 937 <span class="cert-line-val green">â QR Code Active</span> 938 </div> 939 <div class="cert-line"> 940 <span class="cert-line-label">Format</span> 941 <span class="cert-line-val">PDF · Ready</span> 942 </div> 943 </div> 944 <div class="cert-preview-footer"> 945 <span class="cert-preview-footer-label">Generation Time</span>
946 <span class="cert-timer">1:47</span> 947 </div> 948 </div> 949 </div> 950 </div> 951 952 <!-- âââ PROBLEM SECTION âââ --> 953 <section class="problem-section" aria-labelledby="problem-h2"> 954 <div class="problem-inner"> 955 <div> 956 <div class="section-label">The Problem</div> 957 <h2 id="problem-h2">MANUAL OSHA<br>CERTIFICATES CREATE<br><span class="hl">INSPECTION RISK.</span></h2> 958 <div class="section-body"> 959 <p>Most safety managers are generating certificates in Word, rebuilding the same template over and over, manually reformatting PDFs, and chasing down who got trained when.</p> 960 <p><strong>None of that is safety work.</strong> It's administrative overhead that compounds every time you add a new employee or run a new training cycle.</p> 961 <p>SmartCerts.ai cuts the administrative load so you can focus on the work that actually reduces risk.</p> 962 </div> 963 </div> 964 <div class="problem-stats"> 965 <div class="stat-row"> 966 <div class="stat-num">30m</div> 967 <div class="stat-desc"><strong>per certificate</strong> in the average manual processâdesign, formatting, PDF export, filing</div> 968 </div> 969 <div class="stat-row"> 970 <div class="stat-num">90%</div> 971 <div class="stat-desc"><strong>faster</strong> with SmartCerts.ai â under 2 minutes from entry to PDF in your inbox</div> 972 </div> 973 <div class="stat-row"> 974 <div class="stat-num">5hrs</div> 975 <div class="stat-desc"><strong>saved every month</strong> for safety managers running 10+ certifications per month</div> 976 </div> 977 <div class="stat-row"> 978 <div class="stat-num">10</div> 979 <div class="stat-desc"><strong>OSHA certificate types</strong> ready on day oneâfrom Fall Protection to LOTO to HazCom</div> 980 </div> 981 </div> 982 </div> 983 </section> 984 985 <!-- âââ FEATURES SECTION âââ --> 986 <section class="features-section" id="features" aria-labelledby="features-h2"> 987 <div class="features-inner"> 988 <div class="features-header"> 989 <div class="section-label">What You Get</div> 990 <h2 id="features-h2">OSHA CERTIFICATE<br>FEATURES BUILT<br><span class="hl">FOR SAFETY PROS.</span></h2> 991 </div> 992 <div class="features-grid"> 993 <article class="feature-card"> 994 <div class="feature-icon">02</div> 995 <div class="feature-title">2-MINUTE GENERATION</div> 996 <div class="feature-body">Enter the details, hit generate. Professional OSHA-compliant certificate as a PDF in your inbox before the next item on your to-do list.</div> 997 </article> 998 <article class="feature-card"> 999 <div class="feature-icon">10</div> 1000 <div class="feature-title">10 CERT TYPES</div> 1001 <div class="feature-body">Fall Protection, LOTO, HazCom, PPE, Confined Space, Bloodborne Pathogens, Forklift, Construction Safety, Emergency Action Plan, General Workplace Safety.</div> 1002 </article> 1003 <article class="feature-card"> 1004 <div class="feature-icon">QR</div> 1005 <div class="feature-title">BUILT-IN VERIFICATION</div> 1006 <div class="feature-body">Every certificate gets a QR code. Inspectors scan it on-site. The record is there. No scrambling through filing cabinets mid-inspection.</div> 1007 </article> 1008 <article class="feature-card"> 1009 <div class="feature-icon">0</div> 1010 <div class="feature-title">ZERO DESIGN SKILLS</div> 1011 <div class="feature-body">No drag-and-drop. No template editing. No reformatting. You fill in a form; we handle the layout, branding, and professional output.</div> 1012 </article> 1013 </div> 1014 1015 <div class="cert-types"> 1016 <div class="cert-types-label">Certificate Types Covered</div> 1017 <div class="cert-types-list"> 1018 <span class="cert-tag">General Workplace Safety</span> 1019 <span class="cert-tag">Construction Safety (29 CFR 1926)</span> 1020 <span class="cert-tag">Hazard Communication (HazCom)</span>
1021 <span class="cert-tag">PPE</span> 1022 <span class="cert-tag">Emergency Action Plan</span> 1023 <span class="cert-tag">Lockout/Tagout (LOTO)</span> 1024 <span class="cert-tag">Fall Protection</span> 1025 <span class="cert-tag">Bloodborne Pathogens</span> 1026 <span class="cert-tag">Confined Space Entry</span> 1027 <span class="cert-tag">Forklift Safety</span> 1028 </div> 1029 </div> 1030 </div> 1031 </section> 1032 1033 <!-- âââ USE CASES SECTION âââ --> 1034 <section style="max-width: 980px; margin: 0 auto; padding: 72px 24px;"> 1035 <div class="section-label">Who This Is For</div> 1036 <h2 style="font-family: var(--display); font-size: clamp(36px, 5vw, 56px); color: var(--navy); line-height: 1.0; margin-bottom: 16px; letter-spacing: 0.03em;"> 1037 BUILT FOR YOUR<br> 1038 <span style="color: var(--green);">SAFETY ROLE</span> 1039 </h2> 1040 1041 <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 32px; margin-top: 48px;"> 1042 <div> 1043 <h3 style="font-family: var(--display); font-size: 20px; letter-spacing: 0.05em; color: var(--navy); margin-bottom: 12px;">Safety Managers</h3> 1044 <p style="font-family: var(--serif); font-size: 15px; line-height: 1.6; color: var(--text-mid);">Track training across your entire workforce. Know who's certified, what they trained on, and when certifications expireâinstantly. No more hunting through email or spreadsheets.</p> 1045 </div> 1046 1047 <div> 1048 <h3 style="font-family: var(--display); font-size: 20px; letter-spacing: 0.05em; color: var(--navy); margin-bottom: 12px;">HR Compliance Officers</h3> 1049 <p style="font-family: var(--serif); font-size: 15px; line-height: 1.6; color: var(--text-mid);">Audit-ready documentation. When OSHA inspectors arrive, you have proof of every worker's training in seconds. QR codes, verification trails, everything they need to see.</p> 1050 </div> 1051 1052 <div> 1053 <h3 style="font-family: var(--display); font-size: 20px; letter-spacing: 0.05em; color: var(--navy); margin-bottom: 12px;">Training Coordinators</h3> 1054 <p style="font-family: var(--serif); font-size: 15px; line-height: 1.6; color: var(--text-mid);">Generate certificates while you're still in the training room. No back-of-desk paperwork. No chasing people down for signatures. Instant, verified, done.</p> 1055 </div> 1056 </div> 1057 </section> 1058 1059 <!-- âââ COMPLIANCE DETAILS SECTION âââ --> 1060 <section style="background: var(--navy); padding: 72px 24px; color: var(--bg);"> 1061 <div style="max-width: 980px; margin: 0 auto;"> 1062 <h2 style="font-family: var(--display); font-size: clamp(36px, 5vw, 56px); color: var(--bg); line-height: 1.0; margin-bottom: 16px; letter-spacing: 0.03em;"> 1063 BUILT FOR<br> 1064 <span style="color: var(--green);">OSHA COMPLIANCE</span> 1065 </h2> 1066 1067 <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px; margin-top: 48px;"> 1068 <div style="border-left: 3px solid var(--green); padding-left: 20px;"> 1069 <h3 style="font-family: var(--display); font-size: 18px; letter-spacing: 0.05em; color: var(--bg); margin-bottom: 8px;">Regulatory Compliance</h3> 1070 <p style="font-family: var(--serif); font-size: 15px; line-height: 1.6; color: rgba(245,240,232,0.8);">Compliant with 29 CFR 1926.502 (Fall Protection), 1926.503 (Competent Climber), and other major OSHA standards. All required certification details included automatically.</p> 1071 </div> 1072 1073 <div style="border-left: 3px solid var(--green); padding-left: 20px;"> 1074 <h3 style="font-family: var(--display); font-size: 18px; letter-spacing: 0.05em; color: var(--bg); margin-bottom: 8px;">Inspector Verification</h3> 1075 <p style="font-family: var(--serif); font-size: 15px; line-height: 1.6; color: rgba(245,240,232,0.8);">QR codes provide instant verification. Inspectors scan, see full training record. No hunting through paper. No gaps in documentation. Verification methods acceptable to OSHA inspectors.</p> 1076 </div> 1077 1078 <div style="border-left: 3px solid var(--green); padding-left: 20px;"> 1079 <h3 style="font-family: var(--display); font-size: 18px; letter-spacing: 0.05em; color: var(--bg); margin-bottom: 8px;">Data Retention</h3> 1080 <p style="font-family: var(--serif); font-size: 15px; line-height: 1.6; color: rgba(245,240,232,0.8);">All certificate data encrypted and retained according to OSHA record retention requirements (5+ years). Audit trails show every action, every change.</p> 1081 </div> 1082 </div> 1083 </div> 1084 </section> 1085 1086 <!-- âââ BETA SIGNUP SECTION âââ --> 1087 <section class="beta-section" id="signup" aria-labelledby="beta-h2"> 1088 <div class="beta-inner"> 1089 <div> 1090 <div class="section-label">
1090Beta Access</div> 1091 <h2 id="beta-h2">BE FIRST.<br><span class="hl">PAY LESS.</span><br>BUILD WITH US.</h2> 1092 <div class="beta-perks"> 1093 <div class="beta-perk"> 1094 <div class="beta-perk-num">01</div> 1095 <div class="beta-perk-text"> 1096 <strong>Free access during beta</strong> 1097 <span>Full product access while we're in betaâno credit card, no catch.</span> 1098 </div> 1099 </div> 1100 <div class="beta-perk"> 1101 <div class="beta-perk-num">02</div> 1102 <div class="beta-perk-text"> 1103 <strong>Locked-in launch pricing</strong> 1104 <span>Beta users get founding member rates when we go live. The price you see at launch is not the price you pay.</span> 1105 </div> 1106 </div> 1107 <div class="beta-perk"> 1108 <div class="beta-perk-num">03</div> 1109 <div class="beta-perk-text"> 1110 <strong>Direct input on features</strong> 1111 <span>You tell us what's missing before we ship it. Your workflow drives the roadmap.</span> 1112 </div> 1113 </div> 1114 <div class="beta-perk"> 1115 <div class="beta-perk-num">04</div> 1116 <div class="beta-perk-text"> 1117 <strong>Priority onboarding</strong> 1118 <span>Beta users get direct access to the team. Not a ticket queueâactual support.</span> 1119 </div> 1120 </div> 1121 </div> 1122 </div> 1123 1124 <div class="signup-wrap"> 1125 <div class="signup-label">Join the Beta</div> 1126 <div class="signup-title">Request Early Access</div> 1127 <div class="signup-sub">We're opening beta access in limited batches. Enter your details to get in line.</div> 1128 1129 <!-- âââ JOTFORM EMBED âââ 1130 Replace the div below with your Jotform beta signup embed code. 1131 Example: 1132 <iframe id="JotFormIFrame-YOURFORMID" 1133 title="SmartCerts.ai Beta Signup" 1134 src="https://form.jotform.com/YOURFORMID" 1135 style="min-width:100%;max-width:100%;height:420px;border:none;" 1136 allowtransparency="true" allowfullscreen="true" 1137 scrolling="no"> 1138 </iframe> 1139
1139<script src="https://cdn.jotfor.ms/s/umd/latest/for-form-embed-handler.js"></script>
1139 1140
1140<script>window.jotformEmbedHandler("iframe[id='JotFormIFrame-YOURFORMID']","https://form.jotform.com")</script>
1140 1141 âââ --> 1142 <div class="jotform-container"> 1143 <iframe id="JotFormIFrame-251407046922049" 1144 title="Free Trial Sign Up" 1145 onload="window.parent.scrollTo(0,0)" 1146 allowtransparency="true" 1147 allowfullscreen="true" 1148 allow="geolocation; microphone; camera" 1149 src="https://form.jotform.com/251407046922049" 1150 frameborder="0" 1151 style="min-width:100%;max-width:100%;height:600px;border:none;" 1152 scrolling="no"> 1153 </iframe> 1154
1154<script src="https://cdn.jotfor.ms/s/umd/latest/for-form-embed-handler.js"></script>
1154 1155
1155<script>window.jotformEmbedHandler("iframe[id='JotFormIFrame-251407046922049']","https://form.jotform.com")</script>
1155 1156 </div> 1157 </div> 1158 </div> 1159 </section> 1160 1161 <!-- âââ TESTIMONIAL âââ --> 1162 <section style="background: var(--bg); padding: 72px 24px; border-top: 2px solid var(--navy);"> 1163 <div style="max-width: 680px; margin: 0 auto; text-align: center;"> 1164 <div style="padding: 40px; background: #fff; border: 2px solid var(--navy); border-radius: 4px;"> 1165 <p style="font-family: var(--serif); font-size: 17px; line-height: 1.8; color: var(--navy); margin-bottom: 24px;"> 1166 "Before this, I was spending hours every week managing certificates. Getting them signed, filed, updated when people moved roles. Now I generate them right there. Our inspection last month? We had every certificate in our hand in 90 seconds. Inspector said it was the cleanest record they'd ever seen." 1167 </p> 1168 <p style="font-family: var(--display); font-size: 15px; letter-spacing: 0.05em; color: var(--text-mid); font-weight: 600; margin: 0;"> 1169 â Maria Santos, Safety Manager, 120-person manufacturing facility 1170 </p> 1171 </div> 1172 </div> 1173 </section> 1174 1175 <!-- âââ FAQ âââ --> 1176 <section class="faq-section" aria-labelledby="faq-h2"> 1177 <div class="faq-header"> 1178 <div class="section-label">FAQ</div> 1179 <h2 id="faq-h2">OSHA CERTIFICATE<br><span class="hl">GENERATOR FAQ</span></h2> 1180 </div> 1181 <div class="faq-list" role="list"> 1182 <div class="faq-item" role="listitem"> 1183 <div class="faq-q" tabindex="0" role="button" aria-expanded="false"> 1184 Does OSHA actually accept AI-generated certificates? 1185 <span class="faq-icon" aria-hidden="true">+</span> 1186 </div> 1187 <div class="faq-a" role="region"> 1188 <p>OSHA doesn't specify a required certificate formatâit requires that training is documented with the right details: employee name, training type, date, trainer, and employer. Our templates include every required field plus a QR verification code, which tends to impress inspectors rather than raise questions.</p> 1189 </div> 1190 </div> 1191 <div class="faq-item" role="listitem"> 1192 <div class="faq-q" tabindex="0" role="button" aria-expanded="false"> 1193 How does 2 minutes actually work? 1194 <span class="faq-icon" aria-hidden="true">+</span> 1195 </div> 1196 <div class="faq-a" role="region"> 1197 <p>You fill in a guided form: employee name, training type, date, trainer details. That's it. SmartCerts handles the design, formatting, QR code generation, and PDF creation. It hits your inbox before you've moved on to the next thing. No drag-and-drop, no export settings, no reformatting.</p> 1198 </div> 1199 </div> 1200 <div class="faq-item" role="listitem"> 1201 <div class="faq-q" tabindex="0" role="button" aria-expanded="false"> 1202 What certificate types are available at launch? 1203 <span class="faq-icon" aria-hidden="true">+</span> 1204 </div> 1205 <div class="faq-a" role="region"> 1206 <p>Ten types at launch: General Workplace Safety, Construction Safety (29 CFR 1926), HazCom, PPE, Emergency Action Plan, Lockout/Tagout (LOTO), Fall Protection, Bloodborne Pathogens, Confined Space Entry, and Forklift Safety. Beta users can request additional types that go directly to the roadmap.</p> 1207 </div> 1208 </div> 1209 <div class="faq-item" role="listitem"> 1210 <div class="faq-q" tabindex="0" role="button" aria-expanded="false"> 1211 What does beta access actually cost? 1212 <span class="faq-icon" aria-hidden="true">+</span> 1213 </div> 1214 <div class="faq-a" role="region"> 1215 <p>Nothing during the beta period. When we launch publicly, beta users get founding member pricingâlocked in at a rate below public launch pricing. We'll give you clear advance notice before any billing starts.</p> 1216 </div> 1217 </div> 1218 <div class="faq-item" role="listitem"> 1219 <div class="faq-q" tabindex="0" role="button" aria-expanded="false"> 1220 Is SmartCerts.ai affiliated with or endorsed by OSHA? 1221 <span class="faq-icon" aria-hidden="true">+</span> 1222 </div> 1223 <div class="faq-a" role="region"> 1224 <p>No. SmartCerts.ai is an independent software tool. We are not affiliated with, endorsed by, or officially recognized by OSHA. Our templates are designed to document required training information in a compliant format. The employer remains responsible for ensuring all OSHA training requirements are met.</p> 1225 </div> 1226 </div> 1227 <div class="faq-item" role="listitem"> 1228 <div class="faq-q" tabindex="0" role="button" aria-expanded="false"> 1229 Will these certificates hold up in an OSHA inspection?
1230 <span class="faq-icon" aria-hidden="true">+</span> 1231 </div> 1232 <div class="faq-a" role="region"> 1233 <p>Yes. Our certificates document the same information OSHA inspectors require: employee name, training type, date, trainer credentials, and certification status. The QR verification code allows instant validation. What matters to inspectors is that the required information is present and verifiableânot how the certificate was generated. That said, you remain responsible for ensuring your training content meets OSHA standards.</p> 1234 </div> 1235 </div> 1236 <div class="faq-item" role="listitem"> 1237 <div class="faq-q" tabindex="0" role="button" aria-expanded="false"> 1238 How long do you keep certificate records? 1239 <span class="faq-icon" aria-hidden="true">+</span> 1240 </div> 1241 <div class="faq-a" role="region"> 1242 <p>We retain all certificate data for a minimum of 5 years, matching OSHA record retention requirements. Data is encrypted and stored securely. You can download your full record history at any time. We never delete data without your explicit request, and we provide 30 days' notice before account closure.</p> 1243 </div> 1244 </div> 1245 <div class="faq-item" role="listitem"> 1246 <div class="faq-q" tabindex="0" role="button" aria-expanded="false"> 1247 Can I customize certificates for my specific safety role or facility? 1248 <span class="faq-icon" aria-hidden="true">+</span> 1249 </div> 1250 <div class="faq-a" role="region"> 1251 <p>At launch, you customize within our templates: add your facility logo, update trainer name/credentials, select certificate type, and set custom expiration dates. Full white-label and custom template options are on the roadmap for public launch. Beta users requesting custom templates get priority development.</p> 1252 </div> 1253 </div> 1254 </div> 1255 </section> 1256 1257 <!-- âââ DISCLAIMER âââ --> 1258 <div class="disclaimer"> 1259 <div class="disclaimer-box"> 1260 <p><strong>Legal Disclaimer:</strong> SmartCerts.ai provides AI-based certificate generation tools to assist with documentation of safety training. Certificates generated through our service are designed to help document compliance activities but do not guarantee OSHA compliance. SmartCerts.ai is not affiliated with or endorsed by OSHA or the U.S. Department of Labor. The employer remains solely responsible for ensuring all applicable OSHA regulations are met. This tool does not constitute legal or compliance advice.</p> 1261 </div> 1262 </div> 1263 1264 <!-- âââ FOOTER âââ --> 1265 <footer> 1266 <div class="footer-inner"> 1267 <div class="footer-logo">SmartCerts<span>.ai</span></div> 1268 <div class="footer-links"> 1269 <a href="https://elevinvest.com">An ElEvInvest Production</a> 1270 <a href="https://eventpermitpro.com">Event Permit Pro</a> 1271 <a href="https://amiaddictedtoai.com">Am I Addicted to AI?</a> 1272 <a href="https://nursekindai.com">NurseKind AI</a> 1273 <a href="mailto:[email protected]">[email protected]</a> 1274 </div> 1275 <div class="footer-legal"> 1276 © 2025 SmartCerts.ai · All rights reserved.<br> 1277 SmartCerts.ai provides certificate generation tools to assist with safety training documentation. Not affiliated with or endorsed by OSHA. 1278 </div> 1279 </div> 1280 </footer> 1281 1282
1282<script> 1283 document.querySelectorAll('.faq-q').forEach(q => { 1284 const toggle = () => { 1285 const item = q.closest('.faq-item'); 1286 const isOpen = item.classList.contains('open'); 1287 document.querySelectorAll('.faq-item.open').forEach(i => i.classList.remove('open')); 1288 if (!isOpen) item.classList.add('open'); 1289 q.setAttribute('aria-expanded', !isOpen); 1290 }; 1291 q.addEventListener('click', toggle); 1292 q.addEventListener('keydown', e => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggle(); } }); 1293 }); 1294 </script>
1294 1295 1296</body> 1297</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.