1<!DOCTYPE html> 2<html lang="en-IN"> 3<head> 4<meta charset="UTF-8" /> 5<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 6-7
6 7<script async src="https://www.googletagmanager.com/gtag/js?id=
7G-7E0J9Z32FK
vendor: 12 bytes, line 7
7"></script>
8<script> 9
vendor: 133 bytes, lines 9-12
9window.dataLayer = window.dataLayer || []; 10 function gtag(){dataLayer.push(arguments);} 11 gtag('js', new Date()); 12 gtag('config', '
12G-7E0J9Z32FK
vendor: 4 bytes, line 12
12');
13</script>
13 14<!-- Microsoft Clarity -->
15<script type="text/javascript"> 16 (function(c,l,a,r,i,t,y){ 17 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 18 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 19 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 20 })(window, document, "clarity", "script", "wxqctfoy9c"); 21 // Session tags + download-conversion mirror for Clarity filtering. 22 // Route-derived screen name only â never file names or query strings. 23 (function(){ 24 try{ 25 var p = location.pathname.replace(/^\/+|\/+$/g,'').replace(/\.html$/,''); 26 clarity('set','screen', p ? p.replace(/[^a-z0-9/-]/gi,'').replace(/\//g,'-') : 'home'); 27 clarity('set','surface','website'); 28 }catch(_){} 29 document.addEventListener('click', function(e){ 30 var el = e.target && e.target.closest ? e.target.closest('a') : null; 31 if (!el) return; 32 var h = el.getAttribute('href')||''; 33 if (h.indexOf('/api/download')>-1 || h.indexOf('apps.microsoft.com')>-1){ 34 try{ clarity('event','trial_download'); }catch(_){} 35 } 36 }, true); 37 })(); 38</script>
38 39<title>PDFSign.in â Sign PDF with DSC Token, 100% Offline | India</title> 40<meta name="description" content="Digitally sign any PDF with your USB DSC token or signature stamp image. Bulk sign multiple PDFs in one click â 100+ PDFs in 60 seconds, 100% offline, no Java, no cloud uploads. Free to download with a free evaluation â up to 30 days or 100 signed PDFs. PDF security, optional RFC 3161 timestamp. Built for GeM, CPPP and Indian e-procurement filings â signed files verified on GeM on 18 July 2026." /> 41<meta name="keywords" content="digitally sign PDF, sign PDF online, digital signature PDF, PDF digital signature, sign PDF with DSC token, digital signature online, electronic signature PDF, DSC token PDF signer, sign PDF Windows, digital signature software India, PDF signer India, HyperPKI PDF signer, ePass PDF signing, Proxkey PDF sign, bulk PDF signing, sign multiple PDFs, batch PDF signing, batch PDF signer, bulk sign PDFs, sign PDF in bulk, sign hundreds of PDFs, automated PDF signing, free PDF signer, free bulk PDF signer, free PDF digital sign, sign PDF without Java, offline PDF signer, GeM portal digital signature, CPPP PDF signing, e-procurement PDF signer India, Class 3 DSC PDF, signature stamp PDF, wet signature PDF, PDF security restrict print, RFC 3161 timestamp PDF" /> 42<meta name="robots" content="index, follow" /> 43<meta name="author" content="PDFSign.in" /> 44<link rel="canonical" href="https://pdfsign.in/" /> 45<link rel="sitemap" type="application/xml" href="/sitemap.xml" /> 46 47<!-- Geo targeting â India --> 48<meta name="geo.region" content="IN" /> 49<meta name="geo.country" content="India" /> 50<meta name="language" content="en-IN" /> 51<meta name="target" content="all" /> 52<meta name="audience" content="all" /> 53<meta name="coverage" content="India" /> 54<meta name="distribution" content="India" /> 55 56<!-- hreflang â India + diaspora --> 57<link rel="alternate" hreflang="en-in" href="https://pdfsign.in/" /> 58<link rel="alternate" hreflang="en-us" href="https://pdfsign.in/global" /> 59<link rel="alternate" hreflang="en-gb" href="https://pdfsign.in/global" /> 60<link rel="alternate" hreflang="en-ae" href="https://pdfsign.in/global" /> 61<link rel="alternate" hreflang="en-au" href="https://pdfsign.in/global" /> 62<link rel="alternate" hreflang="en-ca" href="https://pdfsign.in/global" /> 63<link rel="alternate" hreflang="en" href="https://pdfsign.in/global" /> 64<link rel="alternate" hreflang="x-default" href="https://pdfsign.in/global" /> 65<link rel="preload" as="style" href="https://cdn.jsdelivr.net/npm/[email protected]/css/flag-icons.min.css" /> 66<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/flag-icons.min.css" media="print" onload="this.media='all'" /> 67<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/flag-icons.min.css" /></noscript> 68 69<!-- Open Graph --> 70<meta property="og:type" content="website" /> 71<meta property="og:site_name" content="PDFSign.in" /> 72<meta property="og:url" content="https://pdfsign.in/" /> 73<meta property="og:title" content="PDFSign.in â Sign PDFs with Your DSC Token" /> 74<meta property="og:description" content="Digitally sign PDFs on Windows using your USB DSC token. Offline, private, and built for Indian government e-procurement filings." /> 75<meta property="og:image" content="https://pdfsign.in/og-image.png" /> 76<meta property="og:locale" content="en_IN" /> 77 78<!-- Twitter Card --> 79<meta name="twitter:card" content="summary_large_image" /> 80<meta name="twitter:title" content="PDFSign.in â Sign PDFs with Your DSC Token" /> 81<meta name="twitter:description" content="Sign PDFs on Windows using your USB DSC token. Built for GeM, CPPP and Indian e-procurement filings â signed files verified on GeM on 18 July 2026." /> 82<meta name="twitter:image" content="https://pdfsign.in/og-image.png" /> 83 84<!-- Favicon --> 85<link rel="icon" href="/favicon.ico" sizes="any" /> 86<link rel="icon" type="image/svg+xml" href="/favicon.svg" /> 87<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" /> 88<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" /> 89<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" /> 90<link rel="manifest" href="/site.webmanifest" /> 91<meta name="theme-color" content="#1b2a47" />
92<link rel="preconnect" href="https://fonts.googleapis.com" /> 93<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 94<link rel="preconnect" href="https://www.google-analytics.com" /> 95<link rel="preconnect" href="https://api.pdfsign.in" /> 96<!-- Non-blocking font load: printâall swap prevents render-blocking on slow connections --> 97<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Outfit:wght@300;400;500;600&display=swap" /> 98<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Outfit:wght@300;400;500;600&display=swap" rel="stylesheet" media="print" onload="this.media='all'" /> 99<noscript><link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Outfit:wght@300;400;500;600&display=swap" rel="stylesheet" /></noscript> 100<!-- Geo class applied at <head> parse time â intl LCP element visible from first paint. 101 Eliminates the ~2.8s render delay on slow 4G caused by waiting for bottom-of-body JS. -->
102<script> 103(function(){ 104 if (window.__GEO_COUNTRY__ !== undefined && window.__GEO_COUNTRY__ !== 'IN') { 105 document.documentElement.classList.add('intl-user'); 106 } 107})(); 108</script>
108 109<style> 110 *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } 111 112 :root { 113 --navy: #1B2A47; 114 --navy-dark: #111C30; 115 --navy-light: #243558; 116 --green: #16A34A; 117 --green-light: #22C55E; 118 --green-pale: #DCFCE7; 119 --blue: #93C5FD; 120 --blue-pale: #EFF6FF; 121 --white: #FFFFFF; 122 --off-white: #F8FAFC; 123 --gray-50: #F8FAFC; 124 --gray-100: #F1F5F9; 125 --gray-200: #E2E8F0; 126 --gray-400: #94A3B8; 127 --gray-600: #475569; 128 --gray-800: #1E293B; 129 --text: #1E293B; 130 --muted: #64748B; 131 --font-display: 'DM Serif Display', serif; 132 --font-body: 'Outfit', sans-serif; 133 --max: 1140px; 134 --r: 10px; 135 --r-lg: 16px; 136 --r-xl: 24px; 137 } 138 139 html { scroll-behavior: smooth; } 140 141 body { 142 font-family: var(--font-body); 143 font-size: 16px; 144 color: var(--text); 145 background: var(--white); 146 line-height: 1.6; 147 -webkit-font-smoothing: antialiased; 148 } 149 150 /* âââ NAV âââ */ 151 nav { 152 position: sticky; 153 top: 0; 154 z-index: 100; 155 background: rgba(27, 42, 71, 0.97); 156 backdrop-filter: blur(12px); 157 border-bottom: 1px solid rgba(147, 197, 253, 0.1); 158 } 159 160 .nav-inner { 161 max-width: var(--max); 162 margin: 0 auto; 163 padding: 0 24px; 164 height: 64px; 165 display: flex; 166 align-items: center; 167 justify-content: space-between; 168 } 169 170 .logo { 171 display: flex; 172 align-items: center; 173 gap: 10px; 174 text-decoration: none; 175 } 176 177 .logo-mark { 178 width: 38px; 179 height: 38px; 180 display: flex; 181 align-items: center; 182 justify-content: center; 183 flex-shrink: 0; 184 } 185 186 .logo-mark span { 187 font-family: var(--font-body); 188 font-weight: 600; 189 font-size: 10px; 190 letter-spacing: 0.08em; 191 line-height: 1.1; 192 color: var(--white); 193 } 194 195 .logo-mark .divider-line { 196 width: 22px; 197 height: 1.5px; 198 background: var(--green); 199 margin: 2px 0; 200 } 201 202 .logo-mark .sign-text { 203 color: var(--blue); 204 } 205 206 .logo-name { 207 font-family: var(--font-display); 208 font-size: 20px; 209 color: var(--white); 210 letter-spacing: -0.01em; 211 } 212 213 .logo-name em { 214 font-style: normal; 215 color: var(--green-light); 216 } 217 218 .nav-links { 219 display: flex; 220 align-items: center; 221 gap: 32px; 222 list-style: none; 223 } 224 225 .nav-links a { 226 text-decoration: none; 227 color: rgba(255,255,255,0.75); 228 font-size: 14px; 229 font-weight: 400; 230 transition: color 0.2s; 231 } 232 233 .nav-links a:hover { color: var(--white); } 234 235 .nav-cta { 236 background: var(--green); 237 color: var(--white) !important; 238 padding: 8px 20px; 239 border-radius: var(--r); 240 font-weight: 500 !important; 241 transition: background 0.2s !important; 242 } 243 244 .nav-cta:hover { background: var(--green-light) !important; } 245 246 /* âââ BURGER MENU âââ */ 247 .nav-burger { 248 display: none; 249 flex-direction: column; 250 gap: 5px; 251 cursor: pointer; 252 padding: 6px; 253 background: none; 254 border: none; 255 } 256 .nav-burger span { 257 display: block; 258 width: 22px; 259 height: 2px; 260 background: rgba(255,255,255,0.8); 261 border-radius: 2px; 262 transition: all 0.25s; 263 } 264 .nav-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); } 265 .nav-burger.open span:nth-child(2) { opacity: 0; } 266 .nav-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } 267 268 @media(max-width:768px) { 269 .nav-burger { display: flex; } 270 .made-in-india { display: none; } 271 .nav-links { 272 display: none; 273 flex-direction: column; 274 align-items: flex-start; 275 gap: 0; 276 position: absolute; 277 top: 64px; 278 left: 0; right: 0; 279 background: rgba(17,28,48,0.98); 280 backdrop-filter: blur(12px); 281 padding: 16px 24px 24px; 282 border-bottom: 1px solid rgba(147,197,253,0.12); 283 z-index: 200; 284 } 285 .nav-links.open { display: flex; } 286 .nav-links li { width: 100%; } 287 .nav-links a { display: block; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.05); font-size: 15px; } 288 .nav-links li:last-child a { border-bottom: none; } 289 .nav-cta { margin-top: 8px; display: inline-block; } 290 } 291 292 293 .hero-badges { 294 display: flex; 295 flex-wrap: nowrap; 296 gap: 14px; 297 margin-top: 22px; 298 margin-bottom: 20px; 299 } 300 .hero-badge-item { 301 display: flex; 302 align-items: center; 303 gap: 5px; 304 font-size: 12px; 305 color: rgba(255,255,255,0.65); 306 white-space: nowrap; 307 } 308 .hero-badge-item svg { flex-shrink: 0; } 309 @media (max-width: 900px) { 310 .hero-badges { flex-wrap: wrap; } /* single line on desktop only */ 311 } 312 313 /* âââ HERO âââ */ 314 .hero { 315 background: var(--navy-dark); 316 position: relative; 317 overflow: hidden; 318 padding: 96px 24px 80px; 319 } 320 321 .hero-bg { 322 position: absolute; 323 inset: 0; 324 pointer-events: none; 325 } 326 327 /* Subtle geometric grid */ 328 .hero-bg::before { 329 content: ''; 330 position: absolute; 331 inset: 0; 332 background-image: 333 linear-gradient(rgba(147,197,253,0.04) 1px, transparent 1px), 334 linear-gradient(90deg, rgba(147,197,253,0.04) 1px, transparent 1px); 335 background-size: 60px 60px; 336 } 337 338 /* Glow orbs */ 339 .hero-bg::after { 340 content: ''; 341 position: absolute; 342 top: -120px; 343 right: -80px; 344 width: 600px; 345 height: 600px; 346 background: radial-gradient(circle, rgba(22,163,74,0.12) 0%, transparent 70%); 347 border-radius: 50%; 348 } 349 350 .hero-glow2 { 351 position: absolute; 352 bottom: -200px; 353 left: -100px; 354 width: 500px; 355 height: 500px; 356 background: radial-gradient(circle, rgba(147,197,253,0.08) 0%, transparent 70%); 357 border-radius: 50%; 358 } 359 360 .hero-inner { 361 max-width: var(--max); 362 margin: 0 auto; 363 position: relative; 364 display: grid; 365 grid-template-columns: 1fr 1fr; 366 gap: 80px; 367 align-items: center; 368 } 369 370 .hero-badge { 371 display: inline-flex; 372 align-items: center; 373 gap: 6px; 374 background: rgba(22,163,74,0.15); 375 border: 1px solid rgba(22,163,74,0.35); 376 color: #4ADE80; 377 font-size: 12px; 378 font-weight: 500; 379 letter-spacing: 0.06em; 380 text-transform: uppercase; 381 padding: 5px 12px; 382 border-radius: 100px; 383 margin-bottom: 24px; 384 } 385 386 .hero-badge::before { 387 content: ''; 388 width: 6px; 389 height: 6px; 390 border-radius: 50%; 391 background: #4ADE80; 392 animation: pulse-dot 2s infinite; 393 } 394 395 @keyframes pulse-dot { 396 0%, 100% { opacity: 1; } 397 50% { opacity: 0.4; } 398 } 399 400 .hero h1, .hero .hero-alt-h1 { 401 font-family: var(--font-display); 402 font-size: clamp(28px, 3.5vw, 44px); 403 line-height: 1.15; 404 color: var(--white); 405 letter-spacing: -0.02em; 406 margin-bottom: 20px; 407 } 408 409 .hero h1 em { 410 font-style: italic; 411 color: var(--blue); 412 } 413 414 .hero-sub { 415 font-size: 17px; 416 color: rgba(255,255,255,0.65); 417 line-height: 1.7; 418 margin-bottom: 12px; 419 max-width: 480px; 420 } 421 422 .hero-urgency { 423 font-size: 15px; 424 color: #4ade80; 425 margin-bottom: 28px; 426 max-width: 480px; 427 } 428 429 .hero-actions { 430 display: flex; 431 align-items: center; 432 gap: 16px; 433 flex-wrap: wrap; 434 } 435 436 .btn-primary { 437 display: inline-flex; 438 align-items: center; 439 gap: 8px; 440 background: var(--green); 441 color: var(--white); 442 text-decoration: none; 443 font-family: var(--font-body); 444 font-size: 15px; 445 font-weight: 600; 446 padding: 13px 28px; 447 border-radius: var(--r); 448 border: none; 449 cursor: pointer; 450 transition: background 0.2s, transform 0.15s; 451 } 452 453 .btn-primary:hover { background: var(--green-light); transform: translateY(-1px); } 454 455 .btn-ghost { 456 display: inline-flex; 457 align-items: center; 458 gap: 8px; 459 color: rgba(255,255,255,0.75); 460 text-decoration: none; 461 font-size: 15px; 462 font-weight: 400; 463 transition: color 0.2s; 464 } 465 466 .btn-ghost:hover { color: var(--white); } 467 468 .btn-ghost svg { opacity: 0.6; } 469 470 .hero-trust { 471 margin-top: 40px; 472 display: flex; 473 align-items: center; 474 gap: 12px; 475 } 476 477 .trust-avatars { 478 display: flex; 479 } 480 481 .trust-avatars span { 482 width: 28px; 483 height: 28px; 484 border-radius: 50%; 485 background: var(--navy-light); 486 border: 2px solid var(--navy-dark); 487 display: flex; 488 align-items: center; 489 justify-content: center; 490 font-size: 10px; 491 font-weight: 600; 492 color: var(--blue); 493 margin-left: -8px; 494 } 495 496 .trust-avatars span:first-child { margin-left: 0; } 497 498 .trust-text { 499 font-size: 13px; 500 color: rgba(255,255,255,0.5); 501 } 502 503 .trust-text strong { color: rgba(255,255,255,0.8); font-weight: 500; } 504 505 /* Hero visual â PDF mockup */ 506 .hero-visual { 507 position: relative; 508 padding-top: 24px; 509 } 510 511 /* Layered hero proof â signed PDF (outcome) in front, app render behind */ 512 .hero-stack { position: relative; padding: 12px 0 0 0; } 513 514 .hero-app-behind { 515 position: absolute; 516 top: 0; 517 right: -20px; 518 width: 74%; 519 overflow: hidden; 520 border-radius: var(--r-lg); 521 border: 1px solid rgba(147,197,253,0.18); 522 transform: rotate(2deg); 523 box-shadow: 0 24px 48px -24px rgba(0,0,0,0.5); 524 opacity: 0.92; 525 background: #1E2E4A; 526 } 527 .hero-app-behind img { display: block; width: 100%; height: auto; } 528 529 .pdf-proof { 530 position: relative; 531 z-index: 2; 532 width: 88%; 533 margin-top: 72px; 534 background: #fff; 535 border-radius: 10px; 536 overflow: hidden; 537 box-shadow: 0 32px 64px -24px rgba(0,0,0,0.55), 0 10px 24px -12px rgba(0,0,0,0.35); 538 } 539 .pdf-proof-banner { 540 display: flex; 541 align-items: center; 542 gap: 8px; 543 background: #E8F1FD; 544 color: #1E3A5F; 545 font-size: 11.5px; 546 font-weight: 600; 547 padding: 8px 14px; 548 border-bottom: 1px solid #D6E4F7; 549 } 550 .pdf-proof-page { padding: 26px 30px 30px; } 551 .pp-line { 552 height: 7px; 553 background: #E5E7EB; 554 border-radius: 4px; 555 margin-bottom: 8px; 556 } 557 .pp-line.full { width: 100%; } 558 .pp-line.med { width: 82%; } 559 .pp-line.short { width: 62%; } 560 .pp-line.xs { width: 40%; } 561 .pp-gap { height: 10px; } 562 563 .dsc-stamp { 564 position: relative; 565 margin: 18px 0 0 auto; 566 width: fit-content; 567 max-width: 100%; 568 background: #fff; 569 border: 1px solid #CBD5E1; 570 padding: 8px 12px; 571 text-align: left; 572 } 573 .dsc-stamp-title { 574 color: #16A34A; 575 font-size: 15px; 576 font-weight: 700; 577 margin-bottom: 4px; 578 } 579 .dsc-stamp-line { 580 font-size: 11.5px; 581 color: #1F2937; 582 line-height: 1.55; 583 white-space: nowrap; 584 } 585 .dsc-stamp-line strong { font-weight: 700; } 586 .dsc-stamp-check { 587 position: absolute; 588 right: 10px; 589 top: 50%; 590 transform: translateY(-46%); 591 pointer-events: none; 592 } 593 @media (max-width: 900px) { 594 .pdf-proof { width: 88%; } 595 .hero-app-behind { right: 0; width: 58%; } 596 /* Sit the token widget below the card so it never covers the stamp */ 597 .token-widget { left: 0; bottom: -42px; } 598 .hero-stack { margin-bottom: 42px; } 599 } 600 601 /* Region spans inside the stamp are inline, not block (geo JS sets inline 602 styles â beat the intl 'block' with !important, scope-limited here). */ 603 .dsc-stamp .india-only { display: inline; } 604 .dsc-stamp .intl-only { display: none; } 605 html.intl-user .dsc-stamp .india-only { display: none !important; } 606 html.intl-user .dsc-stamp .intl-only { display: inline !important; } 607 608 .pdf-card { 609 background: #1E2E4A; 610 border: 1px solid rgba(147,197,253,0.15);
611 border-radius: var(--r-xl); 612 padding: 28px; 613 position: relative; 614 } 615 616 .pdf-header { 617 display: flex; 618 align-items: center; 619 gap: 10px; 620 margin-bottom: 20px; 621 padding-bottom: 16px; 622 border-bottom: 1px solid rgba(255,255,255,0.07); 623 } 624 625 .pdf-icon { 626 width: 36px; 627 height: 36px; 628 background: rgba(239,68,68,0.15); 629 border: 1px solid rgba(239,68,68,0.3); 630 border-radius: 8px; 631 display: flex; 632 align-items: center; 633 justify-content: center; 634 font-size: 14px; 635 font-weight: 700; 636 color: #FCA5A5; 637 letter-spacing: -0.03em; 638 } 639 640 .pdf-name { 641 color: rgba(255,255,255,0.85); 642 font-size: 14px; 643 font-weight: 500; 644 } 645 646 .pdf-size { 647 font-size: 12px; 648 color: rgba(255,255,255,0.35); 649 } 650 651 .pdf-lines { 652 display: flex; 653 flex-direction: column; 654 gap: 8px; 655 margin-bottom: 20px; 656 } 657 658 .pdf-line { 659 height: 8px; 660 background: rgba(255,255,255,0.06); 661 border-radius: 4px; 662 } 663 664 .pdf-line.short { width: 60%; } 665 .pdf-line.med { width: 80%; } 666 .pdf-line.full { width: 100%; } 667 .pdf-line.xs { width: 40%; } 668 669 .pdf-sig-area { 670 background: rgba(22,163,74,0.08); 671 border: 1.5px dashed rgba(22,163,74,0.4); 672 border-radius: var(--r); 673 padding: 16px; 674 display: flex; 675 align-items: center; 676 gap: 12px; 677 } 678 679 .sig-stamp { 680 width: 44px; 681 height: 44px; 682 background: rgba(22,163,74,0.15); 683 border: 1.5px solid rgba(22,163,74,0.5); 684 border-radius: 8px; 685 display: flex; 686 align-items: center; 687 justify-content: center; 688 flex-shrink: 0; 689 } 690 691 .sig-stamp svg { width: 22px; height: 22px; } 692 693 .sig-info { flex: 1; } 694 .sig-name { font-size: 13px; font-weight: 600; color: #4ADE80; } 695 .sig-meta { font-size: 11px; color: rgba(255,255,255,0.4); margin-top: 2px; } 696 697 .sig-verified { 698 display: flex; 699 align-items: center; 700 gap: 4px; 701 font-size: 11px; 702 font-weight: 500; 703 color: #4ADE80; 704 background: rgba(22,163,74,0.15); 705 padding: 4px 10px; 706 border-radius: 100px; 707 border: 1px solid rgba(22,163,74,0.3); 708 } 709 710 /* Token widget */ 711 .token-widget { 712 position: absolute; 713 z-index: 3; 714 bottom: -24px; 715 left: -32px; 716 background: #243558; 717 border: 1px solid rgba(147,197,253,0.2); 718 border-radius: var(--r-lg); 719 padding: 12px 16px; 720 display: flex; 721 align-items: center; 722 gap: 10px; 723 box-shadow: 0 8px 32px rgba(0,0,0,0.3); 724 min-width: 200px; 725 } 726 727 .token-icon { 728 width: 32px; 729 height: 32px; 730 background: rgba(147,197,253,0.12); 731 border: 1px solid rgba(147,197,253,0.25); 732 border-radius: 8px; 733 display: flex; 734 align-items: center; 735 justify-content: center; 736 } 737 738 .token-label { font-size: 12px; color: rgba(255,255,255,0.5); } 739 .token-value { font-size: 13px; font-weight: 600; color: var(--blue); } 740 741 .step-badge { 742 display: inline-flex; 743 align-items: center; 744 gap: 5px; 745 background: var(--green); 746 color: white; 747 font-size: 12px; 748 font-weight: 600; 749 padding: 5px 12px; 750 border-radius: 100px; 751 margin-bottom: 12px; 752 } 753 754 /* âââ SECTION COMMON âââ */ 755 section { padding: 88px 24px; } 756 757 .container { max-width: var(--max); margin: 0 auto; } 758 759 .section-tag { 760 font-size: 12px; 761 font-weight: 600; 762 letter-spacing: 0.1em; 763 text-transform: uppercase; 764 color: var(--green); 765 margin-bottom: 12px; 766 } 767 768 .section-title { 769 font-family: var(--font-display); 770 font-size: clamp(28px, 3.5vw, 40px); 771 line-height: 1.15; 772 letter-spacing: -0.02em; 773 color: var(--navy); 774 margin-bottom: 16px; 775 } 776 777 .section-sub { 778 font-size: 17px; 779 color: var(--muted); 780 max-width: 640px; 781 line-height: 1.7; 782 } 783 784 /* âââ LOGOS STRIP âââ */ 785 .logos-strip { 786 padding: 32px 24px; 787 background: var(--gray-50); 788 border-top: 1px solid var(--gray-200); 789 border-bottom: 1px solid var(--gray-200); 790 } 791 792 .logos-strip-inner { 793 max-width: var(--max); 794 margin: 0 auto; 795 display: flex; 796 align-items: center; 797 gap: 24px; 798 flex-wrap: wrap; 799 } 800 801 .logos-label { 802 font-size: 12px; 803 font-weight: 500; 804 color: var(--gray-400); 805 letter-spacing: 0.06em; 806 text-transform: uppercase; 807 white-space: nowrap; 808 flex-shrink: 0; 809 } 810 811 .logos-items { 812 display: flex; 813 align-items: center; 814 gap: 32px; 815 flex-wrap: wrap; 816 } 817 818 .logo-pill { 819 font-size: 13px; 820 font-weight: 600; 821 color: var(--gray-400); 822 letter-spacing: 0.02em; 823 padding: 6px 16px; 824 border: 1px solid var(--gray-200); 825 border-radius: 100px; 826 background: white; 827 } 828 829 /* âââ FEATURES âââ */ 830 .features { background: var(--white); } 831 832 .features-grid { 833 display: grid; 834 grid-template-columns: repeat(4, 1fr); 835 gap: 24px; 836 margin-top: 56px; 837 } 838 839 .feature-card { 840 padding: 28px; 841 background: var(--white); 842 border: 1px solid var(--gray-200); 843 border-radius: var(--r-lg); 844 transition: border-color 0.2s, transform 0.2s; 845 position: relative; 846 overflow: hidden; 847 } 848 849 .feature-card::before { 850 content: ''; 851 position: absolute; 852 top: 0; left: 0; right: 0; 853 height: 3px; 854 background: var(--green); 855 transform: scaleX(0); 856 transform-origin: left; 857 transition: transform 0.3s; 858 border-radius: 0 0 4px 4px; 859 } 860 861 .feature-card:hover { 862 border-color: var(--gray-200); 863 transform: translateY(-2px); 864 } 865 866 .feature-card:hover::before { transform: scaleX(1); } 867 868 .feature-icon { 869 width: 44px; 870 height: 44px; 871 background: var(--green-pale); 872 border-radius: 10px; 873 display: flex; 874 align-items: center; 875 justify-content: center; 876 margin-bottom: 16px; 877 } 878 879 .feature-icon svg { width: 22px; height: 22px; color: var(--green); } 880 881 .feature-card h3 { 882 font-family: var(--font-display); 883 font-size: 19px; 884 color: var(--navy); 885 margin-bottom: 8px; 886 font-weight: 400; 887 } 888 889 .feature-card p { 890 font-size: 14.5px; 891 color: var(--muted); 892 line-height: 1.65; 893 } 894 895 /* âââ HOW IT WORKS âââ */ 896 .how { background: var(--gray-50); } 897 898 .how-steps { 899 display: grid; 900 grid-template-columns: repeat(4, 1fr); 901 gap: 32px; 902 margin-top: 56px; 903 position: relative; 904 } 905 906 .how-steps::before { 907 content: ''; 908 position: absolute; 909 top: 28px; 910 left: calc(12.5% + 20px); 911 right: calc(12.5% + 20px); 912 height: 1px; 913 background: linear-gradient(90deg, var(--green), rgba(22,163,74,0.2)); 914 z-index: 0; 915 } 916 917 .how-step { 918 text-align: center; 919 position: relative; 920 z-index: 1; 921 } 922 923 .step-num { 924 width: 56px; 925 height: 56px; 926 background: var(--white); 927 border: 2px solid var(--green); 928 border-radius: 50%; 929 display: flex; 930 align-items: center; 931 justify-content: center; 932 font-family: var(--font-display); 933 font-size: 22px; 934 color: var(--green); 935 margin: 0 auto 16px; 936 } 937 938 .how-step h4 { 939 font-size: 16px; 940 font-weight: 600; 941 color: var(--navy); 942 margin-bottom: 8px; 943 } 944 945 .how-step p { 946 font-size: 14px; 947 color: var(--muted); 948 line-height: 1.6; 949 } 950 951 /* âââ PRICING âââ */ 952 .pricing { background: var(--white); } 953 954 .pricing-header { 955 text-align: center; 956 margin-bottom: 56px; 957 } 958 959 .pricing-header .section-sub { 960 margin: 0 auto; 961 text-align: center; 962 } 963 964 .pricing-grid { 965 display: grid; 966 grid-template-columns: repeat(3, 1fr); 967 gap: 24px; 968 align-items: start; 969 } 970 971 .plan-card { 972 padding: 32px; 973 background: var(--white); 974 border: 1px solid var(--gray-200);
975 border-radius: var(--r-xl); 976 position: relative; 977 } 978 979 .plan-card.featured { 980 background: var(--navy); 981 border-color: var(--navy); 982 box-shadow: 0 12px 40px rgba(27,42,71,0.30); 983 } 984 985 .plan-badge { 986 position: absolute; 987 top: -14px; 988 left: 50%; 989 transform: translateX(-50%); 990 background: var(--green); 991 color: white; 992 font-size: 11px; 993 font-weight: 700; 994 letter-spacing: 0.08em; 995 text-transform: uppercase; 996 padding: 4px 14px; 997 border-radius: 100px; 998 white-space: nowrap; 999 } 1000 1001 .plan-name { 1002 font-size: 13px; 1003 font-weight: 600; 1004 letter-spacing: 0.08em; 1005 text-transform: uppercase; 1006 color: var(--muted); 1007 margin-bottom: 12px; 1008 } 1009 1010 .plan-card.featured .plan-name { color: rgba(255,255,255,0.5); } 1011 1012 .plan-price { 1013 display: flex; 1014 align-items: baseline; 1015 gap: 4px; 1016 margin-bottom: 6px; 1017 } 1018 1019 .plan-currency { 1020 font-size: 22px; 1021 font-weight: 600; 1022 color: var(--navy); 1023 font-family: var(--font-body); 1024 } 1025 1026 .plan-card.featured .plan-currency { color: white; } 1027 1028 .plan-amount { 1029 font-family: var(--font-display); 1030 font-size: 48px; 1031 line-height: 1; 1032 color: var(--navy); 1033 letter-spacing: -0.03em; 1034 } 1035 1036 .plan-card.featured .plan-amount { color: white; } 1037 1038 .plan-period { 1039 font-size: 14px; 1040 color: var(--muted); 1041 align-self: end; 1042 padding-bottom: 4px; 1043 } 1044 1045 .plan-card.featured .plan-period { color: rgba(255,255,255,0.5); } 1046 1047 .plan-desc { 1048 font-size: 13px; 1049 color: var(--muted); 1050 margin-bottom: 24px; 1051 line-height: 1.5; 1052 } 1053 1054 .plan-card.featured .plan-desc { color: rgba(255,255,255,0.5); } 1055 1056 .plan-divider { 1057 height: 1px; 1058 background: var(--gray-200); 1059 margin-bottom: 24px; 1060 } 1061 1062 .plan-card.featured .plan-divider { background: rgba(255,255,255,0.1); } 1063 1064 .plan-features { 1065 list-style: none; 1066 display: flex; 1067 flex-direction: column; 1068 gap: 10px; 1069 margin-bottom: 28px; 1070 } 1071 1072 .plan-features li { 1073 display: flex; 1074 align-items: flex-start; 1075 gap: 10px; 1076 font-size: 14px; 1077 color: var(--text); 1078 line-height: 1.4; 1079 } 1080 1081 .plan-card.featured .plan-features li { color: rgba(255,255,255,0.85); } 1082 1083 .check { 1084 width: 18px; 1085 height: 18px; 1086 border-radius: 50%; 1087 background: var(--green-pale); 1088 display: flex; 1089 align-items: center; 1090 justify-content: center; 1091 flex-shrink: 0;
1092 margin-top: 1px; 1093 } 1094 1095 .plan-card.featured .check { background: rgba(22,163,74,0.25); } 1096 1097 .check svg { width: 10px; height: 10px; color: var(--green); } 1098 1099 .plan-btn { 1100 display: block; 1101 text-align: center; 1102 padding: 13px; 1103 border-radius: var(--r); 1104 font-family: var(--font-body); 1105 font-size: 15px; 1106 font-weight: 600; 1107 text-decoration: none; 1108 cursor: pointer; 1109 transition: all 0.2s; 1110 border: none; 1111 width: 100%; 1112 } 1113 1114 .plan-btn-outline { 1115 background: transparent; 1116 border: 1.5px solid var(--gray-200); 1117 color: var(--navy); 1118 } 1119 1120 .plan-btn-outline:hover { border-color: var(--green); color: var(--green); } 1121 1122 .plan-btn-solid { 1123 background: var(--green); 1124 color: white; 1125 } 1126 1127 .plan-btn-solid:hover { background: var(--green-light); } 1128 1129 .plan-btn-white { 1130 background: white; 1131 color: var(--navy); 1132 } 1133 1134 .plan-btn-white:hover { background: var(--blue-pale); } 1135 1136 /* Payment link spinner â shown while generating link on click */ 1137 .plan-btn-loading { pointer-events: none !important; opacity: 0.85; } 1138 .plan-btn-loading::after { 1139 content: ''; 1140 display: inline-block; 1141 width: 16px; height: 16px; 1142 border: 2px solid rgba(255,255,255,0.45); 1143 border-top-color: #fff; 1144 border-radius: 50%; 1145 animation: btn-spin .65s linear infinite; 1146 vertical-align: middle; 1147 } 1148 .plan-btn-outline.plan-btn-loading::after { 1149 border-color: rgba(0,0,0,0.2); 1150 border-top-color: currentColor; 1151 } 1152 @keyframes btn-spin { to { transform: rotate(360deg); } } 1153 1154 .pricing-note { 1155 text-align: center; 1156 margin-top: 32px; 1157 font-size: 13px; 1158 color: var(--gray-400); 1159 } 1160 1161 .pricing-note a { color: var(--green); text-decoration: none; } 1162 1163 /* âââ TESTIMONIALS âââ */ 1164 .testimonials { background: var(--gray-50); } 1165 1166 .testimonials-header { 1167 text-align: center; 1168 margin-bottom: 48px; 1169 } 1170 1171 .testimonials-grid { 1172 display: grid; 1173 grid-template-columns: repeat(3, 1fr); 1174 gap: 24px; 1175 } 1176 1177 .testimonial { 1178 background: var(--white); 1179 border: 1px solid var(--gray-200); 1180 border-radius: var(--r-lg); 1181 padding: 28px; 1182 } 1183 1184 .t-stars { 1185 display: flex; 1186 gap: 3px; 1187 margin-bottom: 14px; 1188 } 1189 1190 .t-star { width: 14px; height: 14px; color: #F59E0B; } 1191 1192 .t-quote { 1193 font-size: 15px; 1194 color: var(--text); 1195 line-height: 1.65; 1196 margin-bottom: 20px; 1197 font-style: italic; 1198 } 1199 1200 .t-author { 1201 display: flex; 1202 align-items: center; 1203 gap: 10px; 1204 padding-top: 16px; 1205 border-top: 1px solid var(--gray-100); 1206 } 1207 1208 .t-avatar { 1209 width: 36px; 1210 height: 36px; 1211 border-radius: 50%; 1212 background: var(--navy); 1213 display: flex; 1214 align-items: center; 1215 justify-content: center; 1216 font-size: 13px; 1217 font-weight: 700; 1218 color: var(--blue); 1219 flex-shrink: 0; 1220 } 1221 1222 .t-name { font-size: 13px; font-weight: 600; color: var(--navy); } 1223 .t-role { font-size: 12px; color: var(--muted); } 1224 1225 /* âââ FAQ ACCORDION âââ */ 1226 .faq { background: var(--white); } 1227 1228 .faq-header { text-align: center; margin-bottom: 48px; } 1229 1230 .faq-grid { 1231 max-width: 820px; 1232 margin: 0 auto; 1233 display: flex; 1234 flex-direction: column; 1235 gap: 0; 1236 border: 1px solid var(--gray-200); 1237 border-radius: var(--r-lg); 1238 overflow: hidden; 1239 } 1240 1241 .faq-item { 1242 border-bottom: 1px solid var(--gray-200); 1243 background: var(--white); 1244 } 1245 .faq-item:last-child { border-bottom: none; } 1246 1247 .faq-q { 1248 font-size: 15px; 1249 font-weight: 600; 1250 color: var(--navy); 1251 display: flex; 1252 align-items: center; 1253 gap: 12px; 1254 padding: 20px 24px; 1255 cursor: pointer; 1256 user-select: none; 1257 background: none; 1258 border: none; 1259 width: 100%; 1260 text-align: left; 1261 transition: background 0.15s; 1262 } 1263 .faq-q:hover { background: var(--gray-50); } 1264 .faq-item.open .faq-q { background: var(--gray-50); color: var(--green); } 1265 1266 .faq-q-icon { 1267 width: 22px; 1268 height: 22px; 1269 border-radius: 50%; 1270 background: var(--green); 1271 color: white; 1272 font-size: 11px; 1273 font-weight: 700; 1274 display: flex; 1275 align-items: center; 1276 justify-content: center; 1277 flex-shrink: 0; 1278 } 1279 .faq-item.open .faq-q-icon { background: var(--green); } 1280 1281 .faq-q-text { flex: 1; line-height: 1.4; } 1282 1283 .faq-toggle-icon { 1284 flex-shrink: 0; 1285 width: 22px; 1286 height: 22px; 1287 border-radius: 50%; 1288 background: var(--gray-100); 1289 display: flex; 1290 align-items: center; 1291 justify-content: center; 1292 font-size: 14px; 1293 color: var(--muted); 1294 transition: transform 0.25s, background 0.2s; 1295 line-height: 1; 1296 } 1297 .faq-item.open .faq-toggle-icon { 1298 transform: rotate(45deg); 1299 background: var(--green-pale); 1300 color: var(--green); 1301 } 1302 1303 .faq-a-wrap { 1304 max-height: 0; 1305 overflow: hidden; 1306 transition: max-height 0.3s ease, padding 0.3s ease; 1307 padding: 0 24px 0 58px; 1308 } 1309 .faq-item.open .faq-a-wrap { 1310 max-height: 600px; 1311 padding: 0 24px 20px 58px; 1312 } 1313 1314 .faq-a { 1315 font-size: 14px; 1316 color: var(--muted); 1317 line-height: 1.7; 1318 margin: 0; 1319 } 1320 1321 /* âââ CTA BAND âââ */ 1322 .cta-band { 1323 background: var(--navy); 1324 padding: 80px 24px; 1325 position: relative; 1326 overflow: hidden; 1327 } 1328 1329 .cta-band::before { 1330 content: ''; 1331 position: absolute; 1332 top: -100px; right: -80px; 1333 width: 400px; height: 400px; 1334 background: radial-gradient(circle, rgba(22,163,74,0.15) 0%, transparent 70%); 1335 border-radius: 50%; 1336 } 1337 1338 .cta-band-inner { 1339 max-width: 700px; 1340 margin: 0 auto; 1341 text-align: center; 1342 position: relative; 1343 } 1344 1345 .cta-band h2 { 1346 font-family: var(--font-display); 1347 font-size: clamp(28px, 3.5vw, 42px); 1348 color: var(--white); 1349 margin-bottom: 16px; 1350 letter-spacing: -0.02em; 1351 } 1352 1353 .cta-band p { 1354 font-size: 17px; 1355 color: rgba(255,255,255,0.6); 1356 margin-bottom: 36px; 1357 line-height: 1.6; 1358 } 1359 1360 .cta-actions { 1361 display: flex; 1362 align-items: center; 1363 justify-content: center; 1364 gap: 16px; 1365 flex-wrap: wrap; 1366 } 1367 1368 .btn-primary-lg { 1369 display: inline-flex; 1370 align-items: center; 1371 gap: 8px; 1372 background: var(--green); 1373 color: white; 1374 text-decoration: none; 1375 font-size: 16px; 1376 font-weight: 600; 1377 padding: 15px 32px; 1378 border-radius: var(--r); 1379 transition: all 0.2s; 1380 } 1381 1382 .btn-primary-lg:hover { background: var(--green-light); transform: translateY(-1px); } 1383 1384 .btn-secondary-lg { 1385 display: inline-flex; 1386 align-items: center; 1387 gap: 8px; 1388 background: transparent; 1389 color: rgba(255,255,255,0.75); 1390 text-decoration: none; 1391 font-size: 16px; 1392 font-weight: 400; 1393 padding: 15px 28px; 1394 border: 1px solid rgba(255,255,255,0.2); 1395 border-radius: var(--r); 1396 transition: all 0.2s; 1397 } 1398 1399 .btn-secondary-lg:hover { color: white; border-color: rgba(255,255,255,0.4); } 1400 1401 .cta-footnote { 1402 margin-top: 20px; 1403 font-size: 13px; 1404 color: rgba(255,255,255,0.3); 1405 } 1406 1407 /* âââ FEEDBACK STRIP âââ */ 1408 .feedback-strip { 1409 background: #0F1E35; 1410 border-top: 1px solid rgba(147,197,253,0.12); 1411 padding: 48px 24px; 1412 text-align: center; 1413 } 1414 .feedback-strip h3 { 1415 font-family: var(--font-display); 1416 font-size: clamp(20px, 2.5vw, 28px); 1417 color: #fff; 1418 margin: 0 0 8px; 1419 } 1420 .feedback-strip p { 1421 font-size: 15px; 1422 color: rgba(255,255,255,0.5); 1423 margin: 0 0 28px; 1424 } 1425 .feedback-actions { 1426 display: flex; 1427 gap: 14px; 1428 justify-content: center; 1429 flex-wrap: wrap; 1430 } 1431 .btn-feedback-wa { 1432 display: inline-flex; 1433 align-items: center; 1434 gap: 8px; 1435 background: #25D366; 1436 color: #fff; 1437 font-weight: 600; 1438 font-size: 15px; 1439 padding: 13px 24px; 1440 border-radius: 10px; 1441 text-decoration: none; 1442 transition: opacity .18s; 1443 } 1444 .btn-feedback-wa:hover { opacity: .88; } 1445 .btn-feedback-email { 1446 display: inline-flex; 1447 align-items: center; 1448 gap: 8px; 1449 background: rgba(255,255,255,0.07); 1450 color: rgba(255,255,255,0.75); 1451 font-size: 15px; 1452 padding: 13px 24px; 1453 border-radius: 10px; 1454 text-decoration: none; 1455 border: 1px solid rgba(255,255,255,0.12); 1456 transition: background .18s; 1457 } 1458 .btn-feedback-email:hover { background: rgba(255,255,255,0.13); } 1459 1460 /* âââ FOOTER âââ */ 1461 footer { 1462 background: var(--navy-dark); 1463 padding: 64px 24px 32px; 1464 color: rgba(255,255,255,0.5); 1465 border-top: 1px solid rgba(255,255,255,0.07); 1466 } 1467 1468 .footer-inner { 1469 max-width: var(--max); 1470 margin: 0 auto; 1471 } 1472 1473 .footer-top { 1474 display: grid; 1475 grid-template-columns: 2fr 1fr 1fr 1fr; 1476 gap: 48px; 1477 margin-bottom: 48px; 1478 } 1479 1480 .footer-brand p { 1481 font-size: 14px; 1482 line-height: 1.7; 1483 margin-top: 12px; 1484 max-width: 280px; 1485 } 1486 1487 .footer-col h5 { 1488 font-size: 12px; 1489 font-weight: 700; 1490 letter-spacing: 0.1em; 1491 text-transform: uppercase; 1492 color: rgba(255,255,255,0.85); 1493 margin-bottom: 16px; 1494 } 1495 1496 .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; } 1497 1498 .footer-col a { 1499 color: rgba(255,255,255,0.45); 1500 text-decoration: none; 1501 font-size: 14px; 1502 transition: color 0.2s; 1503 } 1504 1505 .footer-col a:hover { color: rgba(255,255,255,0.85); } 1506 1507 .footer-bottom { 1508 padding-top: 24px; 1509 border-top: 1px solid rgba(255,255,255,0.07); 1510 display: flex; 1511 align-items: center; 1512 justify-content: space-between; 1513 flex-wrap: wrap; 1514 gap: 16px; 1515 } 1516 1517 .footer-bottom p { font-size: 13px; } 1518 1519 .footer-bottom-links { 1520 display: flex; 1521 gap: 24px; 1522 } 1523 1524 .footer-bottom-links a { 1525 font-size: 13px; 1526 color: rgba(255,255,255,0.35); 1527 text-decoration: none; 1528 transition: color 0.2s; 1529 } 1530 1531 .footer-bottom-links a:hover { color: rgba(255,255,255,0.7); } 1532 1533 1534 /* Made in India badge */ 1535 .made-in-india { 1536 display: flex; 1537 align-items: center; 1538 gap: 6px; 1539 padding: 5px 12px; 1540 border: 1px solid rgba(255,255,255,0.15); 1541 border-radius: 100px; 1542 background: rgba(255,255,255,0.05); 1543 } 1544 .made-in-india span { 1545 font-size: 11px; 1546 font-weight: 600; 1547 color: rgba(255,255,255,0.75); 1548 letter-spacing: 0.05em; 1549 white-space: nowrap; 1550 } 1551 .made-in-india svg { 1552 border-radius: 2px; 1553 flex-shrink: 0; 1554 } 1555 @media (max-width: 900px) { 1556 .made-in-india { display: none; } 1557 } 1558 1559 1560 /* âââ WHO IS IT FOR âââ */ 1561 .who-for { background: var(--navy-dark); padding: 88px 24px; } 1562 .who-for .section-tag { color: #4ADE80; } 1563 .who-for .section-title { color: var(--white); } 1564 .who-for .section-sub { color: rgba(255,255,255,0.55); } 1565 1566 .who-grid { 1567 display: grid; 1568 grid-template-columns: repeat(3, 1fr); 1569 gap: 20px; 1570 margin-top: 48px; 1571 } 1572 1573 .who-card { 1574 background: rgba(255,255,255,0.04); 1575 border: 1px solid rgba(147,197,253,0.12); 1576 border-radius: var(--r-lg); 1577 padding: 24px; 1578 transition: border-color 0.2s, transform 0.2s; 1579 } 1580 1581 .who-card:hover { 1582 border-color: rgba(22,163,74,0.4); 1583 transform: translateY(-2px); 1584 } 1585 1586 .who-icon { 1587 font-size: 28px; 1588 margin-bottom: 12px; 1589 display: block; 1590 } 1591 1592 .who-card h3 { 1593 font-size: 16px; 1594 font-weight: 700; 1595 color: var(--white); 1596 margin-bottom: 8px; 1597 } 1598 1599 .who-card p { 1600 font-size: 13px; 1601 color: rgba(255,255,255,0.5); 1602 line-height: 1.65; 1603 } 1604 1605 .who-card ul { 1606 list-style: none; 1607 margin-top: 10px; 1608 display: flex; 1609 flex-direction: column; 1610 gap: 5px; 1611 } 1612 1613 .who-card ul li { 1614 font-size: 12px; 1615 color: rgba(255,255,255,0.45); 1616 display: flex; 1617 align-items: center; 1618 gap: 6px; 1619 } 1620 1621 .who-card ul li::before { 1622 content: ''; 1623 width: 5px; 1624 height: 5px; 1625 border-radius: 50%; 1626 background: var(--green); 1627 flex-shrink: 0; 1628 } 1629 1630 /* âââ ROADMAP âââ */ 1631 /* âââ TUTORIALS âââ */ 1632 .tutorials { background: var(--gray-50); padding: 88px 24px; } 1633 .tutorials-header { text-align: center; margin-bottom: 48px; } 1634 .tutorials-grid { 1635 display: grid; 1636 grid-template-columns: 1fr 1fr; 1637 gap: 24px; 1638 max-width: var(--max); 1639 margin: 0 auto; 1640 } 1641 @media (max-width: 700px) { 1642 .tutorials-grid { grid-template-columns: 1fr; gap: 32px; } 1643 } 1644 .tutorial-card-wrap { display: flex; flex-direction: column; } 1645 .tutorial-card { 1646 background: var(--white); 1647 border-radius: 14px; 1648 overflow: hidden; 1649 border: 1px solid var(--border); 1650 text-decoration: none; 1651 color: inherit; 1652 transition: box-shadow 0.2s, transform 0.2s; 1653 display: block; 1654 } 1655 .tutorial-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,0.10); transform: translateY(-2px); } 1656 .tutorial-thumb { 1657 background: linear-gradient(135deg, #1B2A47 0%, #2563EB 100%); 1658 height: 160px; 1659 display: flex; 1660 align-items: center; 1661 justify-content: center; 1662 position: relative; 1663 } 1664 .tutorial-thumb-dsc { 1665 background: linear-gradient(135deg, #0F4C2A 0%, #16A34A 100%); 1666 } 1667 .tutorial-play { 1668 width: 52px; height: 52px; 1669 background: rgba(255,255,255,0.18); 1670 border: 2px solid rgba(255,255,255,0.5); 1671 border-radius: 50%; 1672 display: flex; align-items: center; justify-content: center; 1673 font-size: 18px; color: white; 1674 padding-left: 4px; 1675 } 1676 .tutorial-tag { 1677 position: absolute; bottom: 10px; left: 12px; 1678 background: rgba(0,0,0,0.45); 1679 color: white; font-size: 11px; font-weight: 600; 1680 padding: 3px 8px; border-radius: 4px; 1681 letter-spacing: 0.03em; 1682 } 1683 .tutorial-body { padding: 16px 18px 18px; } 1684 .tutorial-title { font-weight: 600; font-size: 14px; color: var(--navy-dark); margin-bottom: 6px; } 1685 .tutorial-meta { font-size: 12px; color: var(--text-muted); } 1686 1687 /* ââ YouTube facade â zero YouTube JS until user clicks play ââ */ 1688 .yt-facade { 1689 position: absolute; inset: 0; 1690 cursor: pointer; 1691 background: #0e1828; 1692 border-radius: 8px; 1693 overflow: hidden; 1694 } 1695 .yt-facade img { 1696 width: 100%; height: 100%; 1697 object-fit: cover; display: block; 1698 transition: transform 0.3s; 1699 } 1700 .yt-facade:hover img { transform: scale(1.02); } 1701 .yt-facade-play { 1702 position: absolute; inset: 0; 1703 display: flex; align-items: center; justify-content: center; 1704 background: rgba(10,18,35,0.45); 1705 transition: background 0.2s; 1706 } 1707 .yt-facade:hover .yt-facade-play { background: rgba(10,18,35,0.25); } 1708 .yt-facade-btn { 1709 width: 64px; height: 64px; 1710 border-radius: 50%; 1711 background: #16A34A; 1712 display: flex; align-items: center; justify-content: center; 1713 padding-left: 5px; 1714 box-shadow: 0 4px 24px rgba(22,163,74,0.5); 1715 transition: transform 0.2s; 1716 } 1717 .yt-facade:hover .yt-facade-btn { transform: scale(1.12); } 1718 1719 .roadmap { background: var(--gray-50); padding: 88px 24px; } 1720
1721 .roadmap-grid { 1722 display: grid; 1723 grid-template-columns: repeat(2, 1fr); 1724 gap: 20px; 1725 margin-top: 48px; 1726 } 1727 1728 .roadmap-item { 1729 background: var(--white); 1730 border: 1px solid var(--gray-200); 1731 border-radius: var(--r-lg); 1732 padding: 22px 24px; 1733 display: flex; 1734 align-items: flex-start; 1735 gap: 16px; 1736 position: relative; 1737 overflow: hidden; 1738 } 1739 1740 .roadmap-item::before { 1741 content: ''; 1742 position: absolute; 1743 top: 0; left: 0; 1744 width: 3px; height: 100%; 1745 background: var(--green); 1746 } 1747 1748 .roadmap-item.soon::before { background: var(--blue); } 1749 1750 .roadmap-icon-wrap { 1751 width: 40px; height: 40px; 1752 border-radius: 10px; 1753 background: var(--green-pale); 1754 display: flex; 1755 align-items: center; 1756 justify-content: center; 1757 flex-shrink: 0; 1758 font-size: 18px; 1759 } 1760 1761 .roadmap-item.soon .roadmap-icon-wrap { 1762 background: var(--blue-pale); 1763 } 1764 1765 .roadmap-text h4 { 1766 font-size: 15px; 1767 font-weight: 700; 1768 color: var(--navy); 1769 margin-bottom: 4px; 1770 } 1771 1772 .roadmap-text p { 1773 font-size: 13px; 1774 color: var(--muted); 1775 line-height: 1.55; 1776 } 1777 1778 .roadmap-badge { 1779 position: absolute; 1780 top: 12px; right: 14px; 1781 font-size: 10px; 1782 font-weight: 700; 1783 letter-spacing: 0.06em; 1784 text-transform: uppercase; 1785 padding: 3px 9px; 1786 border-radius: 100px; 1787 } 1788 1789 .badge-live { 1790 background: var(--green-pale); 1791 color: var(--green); 1792 } 1793 1794 .badge-soon { 1795 background: var(--blue-pale); 1796 color: #2563EB; 1797 } 1798 1799 @media (max-width: 900px) { 1800 .who-grid { grid-template-columns: repeat(2, 1fr); } 1801 .roadmap-grid { grid-template-columns: 1fr; } 1802 } 1803 1804 @media (max-width: 600px) { 1805 .who-grid { grid-template-columns: 1fr; } 1806 } 1807 1808 /* âââ RESPONSIVE âââ */ 1809 @media (max-width: 900px) { 1810 .hero-inner { grid-template-columns: 1fr; gap: 48px; } 1811 .features-grid { grid-template-columns: repeat(2, 1fr); } 1812 .how-steps { grid-template-columns: repeat(2, 1fr); } 1813 .how-steps::before { display: none; } 1814 .pricing-grid { grid-template-columns: 1fr; max-width: 440px; margin: 0 auto; } 1815 .testimonials-grid { grid-template-columns: 1fr; } 1816 .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; } 1817 .nav-links { display: none; } 1818 .trust-grid { grid-template-columns: repeat(2, 1fr); } 1819 .intl-grid { grid-template-columns: repeat(2, 1fr); } 1820 } 1821 1822 @media (max-width: 600px) { 1823 .trust-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } 1824 .intl-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } 1825 .trust-card { padding: 16px 14px; gap: 12px; } 1826 .trust-icon-wrap { width: 40px; height: 40px; font-size: 20px; border-radius: 10px; } 1827 } 1828 1829 /* âââ VIDEO SECTION âââ */ 1830 .video-section { 1831 background: var(--navy-dark); 1832 padding: 88px 24px; 1833 } 1834 1835 .video-section .section-tag { color: #4ADE80; } 1836 .video-section .section-title { color: var(--white); text-align: center; } 1837 .video-section-header { text-align: center; margin-bottom: 48px; } 1838 .video-section .section-sub { color: rgba(255,255,255,0.55); } 1839 1840 .video-wrapper { max-width: 860px; margin: 0 auto; } 1841 1842 .video-frame { 1843 width: 100%; 1844 aspect-ratio: 16/9; 1845 border-radius: 16px; 1846 overflow: hidden; 1847 border: 1px solid rgba(147,197,253,0.15); 1848 position: relative; 1849 background: #0E1828; 1850 } 1851 1852 .video-thumbnail { 1853 width: 100%; height: 100%; 1854 cursor: pointer; 1855 position: relative; 1856 display: flex; 1857 align-items: center; 1858 justify-content: center; 1859 transition: opacity 0.2s; 1860 } 1861 1862 .video-thumbnail:hover .play-btn { transform: scale(1.1); } 1863 1864 /* App mockup inside thumbnail */ 1865 .video-app-mock { 1866 position: absolute; 1867 inset: 0; 1868 display: flex; 1869 flex-direction: column; 1870 background: #1A2540; 1871 } 1872 1873 .app-titlebar { 1874 height: 36px; 1875 background: #111C30; 1876 display: flex; 1877 align-items: center; 1878 padding: 0 16px; 1879 gap: 12px; 1880 border-bottom: 1px solid rgba(255,255,255,0.06); 1881 } 1882 1883 .app-dots { display: flex; gap: 6px; } 1884 .app-dots span { 1885 width: 10px; height: 10px; border-radius: 50%; 1886 background: rgba(255,255,255,0.15); 1887 } 1888 1889 .app-title { 1890 font-size: 12px; 1891 font-weight: 600; 1892 color: rgba(255,255,255,0.5); 1893 letter-spacing: 0.04em; 1894 margin-left: 8px; 1895 } 1896 1897 .app-body { flex: 1; display: flex; overflow: hidden; } 1898 1899 .app-sidebar { 1900 width: 130px; 1901 background: #111C30; 1902 border-right: 1px solid rgba(255,255,255,0.06); 1903 padding: 16px 0; 1904 flex-shrink: 0; 1905 display: flex; 1906 flex-direction: column; 1907 gap: 2px; 1908 } 1909 1910 .app-sidebar-item { 1911 padding: 8px 16px; 1912 font-size: 12px; 1913 color: rgba(255,255,255,0.4); 1914 cursor: pointer; 1915 } 1916 1917 .app-sidebar-item.active { 1918 background: rgba(22,163,74,0.15); 1919 color: #4ADE80; 1920 border-left: 2px solid #16A34A; 1921 } 1922 1923 .app-main { 1924 flex: 1; 1925 padding: 24px; 1926 display: flex; 1927 flex-direction: column; 1928 gap: 16px; 1929 } 1930 1931 .app-dropzone { 1932 flex: 1; 1933 border: 1.5px dashed rgba(147,197,253,0.2); 1934 border-radius: 10px; 1935 display: flex; 1936 flex-direction: column; 1937 align-items: center; 1938 justify-content: center; 1939 gap: 8px; 1940 background: rgba(147,197,253,0.04); 1941 } 1942 1943 .app-dropzone span { 1944 font-size: 12px; 1945 color: rgba(147,197,253,0.6); 1946 font-weight: 500; 1947 } 1948 1949 .app-token-bar { 1950 display: flex; 1951 align-items: center; 1952 gap: 8px; 1953 padding: 10px 14px; 1954 background: rgba(22,163,74,0.08); 1955 border: 1px solid rgba(22,163,74,0.2); 1956 border-radius: 8px; 1957 font-size: 11px; 1958 color: #4ADE80; 1959 } 1960 1961 .app-token-dot { 1962 width: 7px; height: 7px; 1963 border-radius: 50%; 1964 background: #4ADE80; 1965 flex-shrink: 0; 1966 animation: pulse-dot 2s infinite; 1967 } 1968 1969 .app-sign-btn { 1970 background: #16A34A; 1971 color: white; 1972 font-size: 13px; 1973 font-weight: 600; 1974 text-align: center; 1975 padding: 10px; 1976 border-radius: 8px; 1977 } 1978 1979 .play-overlay { 1980 position: absolute; 1981 inset: 0; 1982 background: rgba(10,18,35,0.6); 1983 display: flex; 1984 flex-direction: column; 1985 align-items: center; 1986 justify-content: center; 1987 gap: 14px; 1988 z-index: 2; 1989 } 1990 1991 .play-btn { 1992 width: 72px; height: 72px; 1993 border-radius: 50%; 1994 background: var(--green); 1995 display: flex; 1996 align-items: center; 1997 justify-content: center; 1998 transition: transform 0.2s; 1999 padding-left: 4px; 2000 } 2001 2002 .play-label { 2003 font-size: 13px; 2004 font-weight: 500; 2005 color: rgba(255,255,255,0.75); 2006 letter-spacing: 0.03em; 2007 } 2008 2009 .video-stats { 2010 display: flex; 2011 align-items: center; 2012 justify-content: center; 2013 gap: 0; 2014 margin-top: 32px; 2015 background: var(--navy-dark); 2016 border: 1px solid rgba(147,197,253,0.1); 2017 border-radius: 14px; 2018 overflow: hidden; 2019 } 2020 2021 .video-stat { 2022 flex: 1; 2023 padding: 22px 24px; 2024 text-align: center; 2025 } 2026 2027 .vs-divider { 2028 width: 1px; 2029 height: 44px; 2030 background: rgba(255,255,255,0.08); 2031 flex-shrink: 0; 2032 } 2033 2034 .vs-num { 2035 display: block; 2036 font-family: var(--font-display); 2037 font-size: 30px; 2038 color: var(--white); 2039 margin-bottom: 5px; 2040 letter-spacing: -0.02em; 2041 } 2042 2043 .vs-label { 2044 font-size: 11px; 2045 color: rgba(255,255,255,0.45); 2046 text-transform: uppercase; 2047 letter-spacing: 0.07em; 2048 } 2049 2050 /* âââ LIVE CHAT WIDGET âââ */ 2051 .chat-fab { 2052 position: fixed; 2053 bottom: 28px; 2054 right: 28px; 2055 z-index: 999; 2056 width: 56px; height: 56px; 2057 border-radius: 50%; 2058 background: var(--green); 2059 border: none; 2060 cursor: pointer; 2061 display: flex; 2062 align-items: center; 2063 justify-content: center; 2064 box-shadow: 0 4px 24px rgba(22,163,74,0.4); 2065 transition: transform 0.2s, background 0.2s; 2066 text-decoration: none; 2067 } 2068 2069 .chat-fab:hover { transform: scale(1.08); background: var(--green-light); } 2070 2071 .chat-fab svg { width: 24px; height: 24px; } 2072 2073 .chat-tooltip { 2074 position: fixed; 2075 bottom: 96px; 2076 right: 28px; 2077 z-index: 998; 2078 background: var(--navy); 2079 color: white; 2080 font-size: 13px; 2081 font-weight: 500; 2082 padding: 8px 14px; 2083 border-radius: 8px; 2084 white-space: nowrap; 2085 opacity: 0; 2086 transform: translateY(8px); 2087 transition: all 0.2s; 2088 pointer-events: none; 2089 border: 1px solid rgba(147,197,253,0.15); 2090 } 2091 2092 .chat-fab:hover + .chat-tooltip, 2093 .chat-tooltip:hover { 2094 opacity: 1; 2095 transform: translateY(0); 2096 } 2097 2098 @media (max-width: 600px) { 2099 .app-sidebar { display: none; } 2100 .video-stats { flex-wrap: wrap; } 2101 .vs-divider { display: none; } 2102 .video-stat { flex: 0 0 50%; } 2103 } 2104 /* ââ INTERACTIVE DEMO ââ */ 2105 .demo-wrap { position: relative; margin-bottom: 32px; } 2106 2107 .d-overlay { 2108 position: absolute; inset: 0; 2109 background: rgba(0,0,0,0.5); 2110 display: flex; align-items: center; justify-content: center; 2111 z-index: 50; 2112 opacity: 0; pointer-events: none; 2113 transition: opacity 0.25s; 2114 border-radius: 10px; 2115 } 2116 .d-overlay.show { opacity: 1; pointer-events: all; } 2117 2118 .d-pin-dialog { 2119 background: white; border-radius: 10px; padding: 24px 28px; 2120 width: 300px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); 2121 transform: scale(0.9); transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1); 2122 } 2123 .d-overlay.show .d-pin-dialog, .d-overlay.show .d-success-dialog { transform: scale(1); } 2124 2125 .d-pin-title { font-size: 15px; font-weight: 700; color: #1E293B; margin-bottom: 3px; } 2126 .d-pin-sub { font-size: 12px; color: #64748B; margin-bottom: 14px; } 2127 .d-token-row { 2128 display: flex; align-items: center; gap: 8px; 2129 padding: 8px 10px; background: #F0FDF4; 2130 border: 1px solid #BBF7D0; border-radius: 7px; margin-bottom: 14px; 2131 } 2132 .d-token-dot { width: 7px; height: 7px; border-radius: 50%; background: #16A34A; flex-shrink: 0; animation: dblink 1.5s infinite; } 2133 @keyframes dblink { 0%,100%{opacity:1} 50%{opacity:0.4} } 2134 .d-token-name { font-size: 12px; font-weight: 600; color: #15803D; } 2135 .d-token-sub { font-size: 10px; color: #4ADE80; } 2136 .d-pin-label { font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #8892A4; margin-bottom: 7px; } 2137 .d-pin-dots-row { display: flex; gap: 7px; margin-bottom: 16px; } 2138 .d-pdot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid #DDE0E8; transition: all 0.15s; } 2139 .d-pdot.filled { background: #1B2A47; border-color: #1B2A47; } 2140 .d-pin-btns { display: flex; gap: 7px; } 2141 .d-btn-cancel { flex: 1; height: 36px; background: #F1F5F9; border: 1px solid #DDE0E8; border-radius: 7px; font-size: 13px; font-weight: 600; color: #475569; cursor: pointer; font-family: var(--font-body); } 2142 .d-btn-ok { flex: 1; height: 36px; background: #16A34A; border: none; border-radius: 7px; font-size: 13px; font-weight: 700; color: white; cursor: pointer; font-family: var(--font-body); display: flex; align-items: center; justify-content: center; gap: 5px; }
2143 .d-btn-ok:hover { background: #15803D; } 2144 2145 .d-success-dialog { 2146 background: white; border-radius: 12px; padding: 30px; 2147 width: 360px; text-align: center; box-shadow: 0 24px 64px rgba(0,0,0,0.3); 2148 transform: scale(0.85); transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1); 2149 } 2150 .d-success-check { width: 64px; height: 64px; border-radius: 50%; background: #F0FDF4; border: 2px solid #16A34A; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; } 2151 .d-success-title { font-size: 18px; font-weight: 800; color: #1E293B; margin-bottom: 6px; } 2152 .d-success-p { font-size: 12px; color: #64748B; margin-bottom: 16px; line-height: 1.6; } 2153 .d-success-file { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: #F0FDF4; border: 1px solid #BBF7D0; border-radius: 8px; text-align: left; margin-bottom: 16px; } 2154 .d-sfi { width: 32px; height: 32px; background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.3); border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 8px; font-weight: 800; color: #EF4444; flex-shrink: 0; } 2155 .d-sfn { font-size: 11px; font-weight: 600; color: #1E293B; } 2156 .d-sfm { font-size: 10px; color: #16A34A; margin-top: 2px; } 2157 .d-valid-badge { margin-left: auto; padding: 3px 8px; background: #16A34A; color: white; border-radius: 100px; font-size: 10px; font-weight: 700; flex-shrink: 0; } 2158 .d-restart-btn { width: 100%; height: 40px; background: #1B2A47; color: white; border: none; border-radius: 8px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: var(--font-body); } 2159 .d-restart-btn:hover { background: #243558; } 2160 2161 .d-window { background: #F0F2F5; border-radius: 10px; border: 1px solid #CDD0D8; overflow: hidden; box-shadow: 0 4px 24px rgba(0,0,0,0.12); } 2162 2163 .d-titlebar { height: 30px; background: #1B2A47; display: flex; align-items: center; padding: 0 12px; gap: 8px; } 2164 .d-win-icon { width: 14px; height: 14px; background: rgba(255,255,255,0.1); border-radius: 3px; display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; } 2165 .d-wi-pdf, .d-wi-sign { font-size: 4px; font-weight: 800; color: white; line-height: 1; letter-spacing: 0.04em; } 2166 .d-wi-sign { color: #93C5FD; } 2167 .d-wi-div { width: 9px; height: 1px; background: #16A34A; margin: 1px 0; } 2168 .d-win-title { font-size: 11px; color: rgba(255,255,255,0.6); flex: 1; } 2169 .d-win-controls { display: flex; gap: 14px; font-size: 11px; color: rgba(255,255,255,0.4); } 2170 2171 .d-app-header { background: #1B2A47; padding: 0 16px; height: 48px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(255,255,255,0.06); } 2172 .d-header-logo { width: 32px; height: 32px; background: rgba(255,255,255,0.08); border: 1px solid rgba(147,197,253,0.2); border-radius: 7px; display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; } 2173 .d-header-logo span { font-size: 6px; font-weight: 800; color: white; line-height: 1.1; letter-spacing: 0.05em; } 2174 .d-hl-div { width: 18px; height: 1.5px; background: #16A34A; margin: 1.5px 0; } 2175 .d-hl-blue { color: #93C5FD !important; } 2176 .d-header-titles { flex: 1; } 2177 .d-header-name { font-size: 15px; font-weight: 700; color: white; line-height: 1; } 2178 .d-header-sub { font-size: 10px; color: #16A34A; margin-top: 2px; } 2179 .d-plan-badge { background: #16A34A; color: white; font-size: 11px; font-weight: 600; padding: 5px 12px; border-radius: 7px; white-space: nowrap; } 2180 2181 .d-grid { padding: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } 2182 .d-card { background: white; border-radius: 8px; border: 1px solid #DDE0E8; padding: 14px; } 2183 .d-card-label { font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #8892A4; margin-bottom: 10px; } 2184 2185 .d-cert-row { display: flex; gap: 6px; margin-bottom: 10px; } 2186 .d-cert-dropdown { flex: 1; height: 32px; border: 1px solid #CDD0D8; border-radius: 6px; padding: 0 8px; display: flex; align-items: center; justify-content: space-between; transition: border-color 0.3s; } 2187 .d-cert-dropdown.loaded { border-color: #16A34A; } 2188 .d-cert-text { font-size: 11px; color: #94A3B8; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } 2189 .d-cert-text.loaded { color: #1E293B; } 2190 .d-cert-arrow { font-size: 9px; color: #94A3B8; } 2191 .d-refresh-btn { height: 32px; padding: 0 12px; background: #2D3F5E; color: white; border-radius: 6px; font-size: 11px; font-weight: 600; display: flex; align-items: center; gap: 4px; cursor: default; white-space: nowrap; flex-shrink: 0; } 2192 .d-cert-info { border: 1px solid #DDE0E8; border-radius: 6px; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; opacity: 0; transform: translateY(4px); transition: all 0.4s; } 2193 .d-cert-info.show { opacity: 1; transform: translateY(0); } 2194 .d-cert-person { font-size: 13px; font-weight: 700; color: #1E293B; } 2195 .d-cert-issuer-lbl { font-size: 9px; color: #94A3B8; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; margin-top: 4px; } 2196 .d-cert-issuer { font-size: 11px; color: #475569; margin-top: 2px; } 2197 .d-cert-right { text-align: right; } 2198 .d-cert-valid-lbl { font-size: 9px; color: #94A3B8; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; } 2199 .d-cert-valid-date { font-size: 13px; font-weight: 700; color: #16A34A; margin-top: 2px; } 2200 2201 .d-doc-tabs { display: flex; align-items: center; gap: 0; margin-bottom: 10px; } 2202 .d-doc-tab-label { font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #8892A4; margin-right: 10px; } 2203 .d-tab { padding: 5px 12px; font-size: 11px; font-weight: 600; border: 1px solid #DDE0E8; color: #475569; background: white; cursor: default; font-family: var(--font-body); } 2204 .d-tab:first-of-type { border-radius: 5px 0 0 5px;
2204 border-right: none; } 2205 .d-tab:last-of-type { border-radius: 0 5px 5px 0; } 2206 .d-tab.active { background: #2563EB; color: white; border-color: #2563EB; } 2207 .d-field-group { margin-bottom: 8px; } 2208 .d-field-lbl { font-size: 9px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #8892A4; margin-bottom: 4px; } 2209 .d-field-row { display: flex; gap: 5px; } 2210 .d-field-input { flex: 1; height: 30px; border: 1px solid #DDE0E8; border-radius: 6px; padding: 0 8px; font-size: 11px; display: flex; align-items: center; transition: border-color 0.3s; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } 2211 .d-field-input.filled { border-color: #16A34A; color: #1E293B !important; } 2212 .d-browse-btn { height: 30px; padding: 0 10px; background: #F1F5F9; border: 1px solid #DDE0E8; border-radius: 6px; font-size: 11px; font-weight: 600; color: #475569; cursor: pointer; display: flex; align-items: center; white-space: nowrap; } 2213 .d-browse-btn:hover { background: #E2E8F0; } 2214 .d-checkbox-row { display: flex; align-items: center; gap: 6px; margin-top: 6px; } 2215 .d-checkbox { width: 12px; height: 12px; border: 1.5px solid #CDD0D8; border-radius: 2px; flex-shrink: 0; } 2216 .d-checkbox-lbl { font-size: 11px; color: #475569; } 2217 2218 .d-sig-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } 2219 .d-sig-input { height: 30px; border: 1px solid #DDE0E8; border-radius: 6px; padding: 0 8px; font-size: 11px; display: flex; align-items: center; } 2220 .d-sig-select { height: 30px; border: 1px solid #DDE0E8; border-radius: 6px; padding: 0 8px; font-size: 11px; color: #1E293B; display: flex; align-items: center; justify-content: space-between; } 2221 2222 .d-pos-content { display: flex; gap: 16px; align-items: flex-start; } 2223 .d-pos-grid { display: grid; grid-template-columns: repeat(3,30px); grid-template-rows: repeat(3,30px); gap: 3px; flex-shrink: 0; } 2224 .d-pos-cell { border: 1.5px solid #DDE0E8; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 10px; color: #94A3B8; cursor: pointer; background: #F8FAFC; transition: all 0.15s; } 2225 .d-pos-cell:hover { border-color: #94A3B8; } 2226 .d-pos-cell.selected { background: #1B2A47; border-color: #1B2A47; color: white; } 2227 .d-pos-info { flex: 1; } 2228 .d-pos-lbl { font-size: 9px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #8892A4; margin-bottom: 3px; } 2229 .d-pos-val { font-size: 13px; font-weight: 700; color: #1E293B; margin-bottom: 10px; } 2230 .d-pos-field-row { display: flex; align-items: center; gap: 5px; font-size: 11px; color: #475569; margin-bottom: 4px; } 2231 .d-mini { width: 40px; height: 24px; border: 1px solid #DDE0E8; border-radius: 5px; font-size: 11px; font-weight: 600; color: #1E293B; background: white; display: flex; align-items: center; justify-content: center; } 2232 .d-unit { font-size: 10px; color: #94A3B8; } 2233 2234 .d-footer { padding: 0 12px 12px; display: flex; justify-content: center; gap: 10px; } 2235 .d-btn-sign { height: 44px; padding: 0 32px; background: #16A34A; color: white; border: none; border-radius: 8px; font-size: 14px; font-weight: 700; font-family: var(--font-body); cursor: pointer; display: flex; align-items: center; gap: 7px; transition: background 0.2s; } 2236 .d-btn-sign:hover { background: #15803D; } 2237 .d-btn-verify { height: 44px; padding: 0 32px; background: #2563EB; color: white; border: none; border-radius: 8px; font-size: 14px; font-weight: 700; font-family: var(--font-body); cursor: pointer; display: flex; align-items: center; gap: 7px; } 2238 .d-btn-verify:hover { background: #1D4ED8; } 2239 2240 .d-status { padding: 7px 16px; background: #F8FAFC; border-top: 1px solid #DDE0E8; font-size: 11px; color: #475569; } 2241 .d-status.success { color: #16A34A; } 2242 .d-status.progress { color: #2563EB; } 2243 2244 /* âââ PAIN SECTION âââ */ 2245 .pain { background: var(--gray-50); padding: 60px 0; border-top: 1px solid var(--gray-200); border-bottom: 1px solid var(--gray-200); } 2246 .pain-inner { display: grid; grid-template-columns: 1fr auto 1fr; gap: 40px; align-items: center; max-width: 900px; margin: 0 auto; } 2247 .pain-col-label { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 18px; } 2248 .pain-label-bad { color: #DC2626; } 2249 .pain-label-good { color: var(--green); } 2250 .pain-list { list-style: none; display: flex; flex-direction: column; gap: 12px; } 2251 .pain-list li { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; line-height: 1.5; color: var(--text); } 2252 .pain-x { color: #DC2626; font-weight: 700; font-size: 15px; flex-shrink: 0;
2252 margin-top: 1px; } 2253 .pain-check { color: var(--green); font-weight: 700; font-size: 15px; flex-shrink: 0; margin-top: 1px; } 2254 .pain-divider { display: flex; align-items: center; justify-content: center; } 2255 .pain-vs { width: 44px; height: 44px; border-radius: 50%; background: var(--navy); color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; } 2256 @media(max-width:700px){ .pain-inner { grid-template-columns: 1fr; } .pain-divider { display: none; } } 2257 2258 /* âââ COMPARE TABLE âââ */ 2259 .compare { padding: 80px 0; background: var(--white); } 2260 .compare-table-wrap { overflow-x: auto; margin-top: 40px; } 2261 .compare-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 600px; } 2262 .compare-table th { padding: 12px 16px; text-align: center; font-weight: 600; font-size: 13px; border-bottom: 2px solid var(--gray-200); } 2263 .compare-table th:first-child { text-align: left; } 2264 .compare-table th.our-col { background: rgba(22,163,74,0.07); color: var(--green); border-bottom: 2px solid var(--green); } 2265 .compare-table td { padding: 11px 16px; text-align: center; border-bottom: 1px solid var(--gray-100); vertical-align: middle; } 2266 .compare-table td:first-child { text-align: left; font-weight: 500; color: var(--text); } 2267 .compare-table tr:hover td { background: var(--gray-50); } 2268 .compare-table .our-col { background: rgba(22,163,74,0.04); } 2269 .cmp-yes { color: var(--green); font-size: 16px; font-weight: 700; } 2270 .cmp-no { color: #CBD5E1; font-size: 16px; } 2271 .cmp-part { color: #F59E0B; font-size: 13px; font-weight: 500; } 2272 .cmp-price { font-size: 13px; font-weight: 600; color: var(--text); } 2273 2274 /* âââ INTERNATIONAL âââ */ 2275 .intl { padding: 80px 0; background: linear-gradient(135deg, #0F1E36 0%, #1B2A47 60%, #243558 100%); color: #fff; } 2276 .intl .section-tag { color: var(--blue); border-color: rgba(147,197,253,0.3); } 2277 .intl .section-title { color: #fff; } 2278 .intl .section-sub { color: rgba(255,255,255,0.7); } 2279 .intl-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 40px; } 2280 .intl-card { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--r-lg); padding: 22px 20px; } 2281 .intl-flag { margin-bottom: 14px; line-height: 1; } 2282 .intl-flag .fi { width: 52px; height: 39px; border-radius: 5px; display: inline-block; background-size: cover; box-shadow: 0 2px 8px rgba(0,0,0,0.35); } 2283 .intl-flag-globe { font-size: 38px; display: inline-block; line-height: 1; } 2284 .intl-card h4 { font-size: 15px; font-weight: 600; margin-bottom: 6px; color: #fff; } 2285 .intl-card p { font-size: 13px; color: rgba(255,255,255,0.65); line-height: 1.5; } 2286 .intl-note { margin-top: 32px; text-align: center; font-size: 14px; color: rgba(255,255,255,0.6); } 2287 .intl-note strong { color: var(--blue); } 2288 2289 /* âââ TRUST STRIP (replaces testimonials) âââ */ 2290 .trust-strip { padding: 72px 0; background: var(--off-white); } 2291 .trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 40px; } 2292 .trust-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--r-lg); padding: 24px 20px 22px; display: flex; align-items: flex-start; gap: 16px; transition: box-shadow .2s, transform .15s; } 2293 .trust-card:hover { box-shadow: 0 6px 24px rgba(27,42,71,.08); transform: translateY(-2px); } 2294 .trust-icon-wrap { flex-shrink: 0; width: 48px; height: 48px; border-radius: 12px; background: #EEF2FF; display: flex; align-items: center; justify-content: center; font-size: 24px; } 2295 .trust-card-body { flex: 1; min-width: 0; } 2296 .trust-card h4 { font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 5px; line-height: 1.3; } 2297 .trust-card p { font-size: 13px; color: var(--muted); line-height: 1.55; margin: 0; } 2298 .trust-capability { margin-top: 48px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; } 2299 .trust-pill { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; background: var(--white); border: 1px solid var(--gray-200); border-radius: 999px; font-size: 13px; color: var(--text); font-weight: 500; } 2300 .trust-pill-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); flex-shrink: 0; } 2301 2302 /* âââ PLAN TOGGLE (team/solo) âââ */ 2303 .plan-toggle-row { display: flex; justify-content: center; gap: 0; margin: 0 auto 40px; width: fit-content; border: 1px solid var(--gray-200); border-radius: 999px; overflow: hidden; background: var(--gray-50); position: relative; z-index: 50; } 2304 .pricing-header { position: relative; z-index: 40; } 2305 /* ââ Geo-conditional content ââ */ 2306 .intl-only { display:none; } /* shown only for non-India visitors via JS */ 2307 .india-only { display:block; } /* hidden for non-India visitors via JS â inline elements use display:inline */ 2308 /* Immediate geo switching â applied before body renders via inline <head> script. 2309 Prevents 5.4s mobile LCP caused by intl content being hidden until JS runs at 2310 the bottom of a 198KB page on slow 4G connections. */ 2311 html.intl-user .india-only { display: none !important; } 2312 html.intl-user .intl-only { display: block; } 2313 html.intl-user .intl-only.trust-grid { display: grid !important; } 2314 html.intl-user .intl-only.trust-capability { display: flex !important; } 2315 /* ââ International checkout modal ââ */ 2316 #intlCheckoutModal { display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:9999;
2316 align-items:center; justify-content:center; padding:1rem; } 2317 #intlCheckoutModal.open { display:flex; } 2318 .intl-modal-box { background:#fff; border-radius:20px; padding:2.5rem 2rem; max-width:420px; width:100%; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.25); } 2319 .intl-modal-box h3 { font-family:'DM Serif Display',serif; font-size:1.4rem; color:var(--navy); margin-bottom:.5rem; } 2320 .intl-modal-box p { color:#64748b; font-size:.9rem; line-height:1.6; margin-bottom:1.25rem; } 2321 .intl-modal-box input { width:100%; padding:.7rem 1rem; border:1px solid var(--gray-200); border-radius:8px; font-size:.95rem; font-family:'Outfit',sans-serif; margin-bottom:.75rem; outline:none; } 2322 .intl-modal-box input:focus { border-color:var(--green); } 2323 .intl-modal-pay-btn { width:100%; background:var(--green); color:#fff; border:none; padding:.8rem; border-radius:8px; font-weight:700; font-size:1rem; cursor:pointer; font-family:'Outfit',sans-serif; } 2324 .intl-modal-pay-btn:hover { background:var(--green-light); } 2325 .intl-modal-pay-btn:disabled { opacity:.6; cursor:not-allowed; } 2326 .intl-modal-close-link { display:block; margin-top:.75rem; font-size:.82rem; color:#94a3b8; cursor:pointer; } 2327 .intl-modal-close-link:hover { color:var(--navy); } 2328 .intl-modal-err { color:#ef4444; font-size:.85rem; margin-bottom:.5rem; display:none; } 2329 .plan-toggle-btn { padding: 8px 22px; font-size: 14px; font-weight: 500; cursor: pointer; border: none; background: none; color: var(--muted); font-family: var(--font-body); transition: all .2s; } 2330 .plan-toggle-btn.active { background: var(--navy); color: #fff; border-radius: 999px; } 2331 .plan-seats-note { text-align: center; font-size: 13px; color: var(--muted); margin-top: -28px; margin-bottom: 20px; } 2332 .plan-team-note { display: none; } 2333 .plan-team-note.show { display: block; } 2334 .plan-card.featured { position: relative; } 2335 2336 2337/* âââ LIVE STATS STRIP âââ */ 2338.stats-strip { background:#0F172A; border-top:1px solid rgba(255,255,255,0.06); border-bottom:1px solid rgba(255,255,255,0.06); padding:28px 0; } 2339.stats-strip-inner { max-width:900px; margin:0 auto; padding:0 24px; display:flex; flex-direction:column; align-items:center; gap:12px; } 2340.stats-live-badge { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; color:#94A3B8; letter-spacing:0.06em; text-transform:uppercase; } 2341.stats-live-dot { width:7px; height:7px; border-radius:50%; background:#22C55E; animation:pulse-dot 2s ease-in-out infinite; flex-shrink:0; } 2342@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(0.8)} } 2343.stats-counters { display:flex; gap:48px; align-items:center; justify-content:center; flex-wrap:wrap; } 2344.stats-counter { text-align:center; } 2345.stats-counter-val { font-size:2.6rem; font-weight:800; color:#F1F5F9; letter-spacing:-0.02em; line-height:1; font-variant-numeric:tabular-nums; min-width:80px; display:inline-block; } 2346.stats-counter-label { font-size:12px; color:#64748B; margin-top:5px; font-weight:500; } 2347.stats-divider { width:1px; height:48px; background:rgba(255,255,255,0.1); } 2348.stats-totals { font-size:12px; color:#475569; text-align:center; } 2349.stats-totals strong { color:#94A3B8; } 2350@media(max-width:480px){ .stats-counters{gap:24px} .stats-counter-val{font-size:2rem} .stats-divider{display:none} }</style>
2351<script type="application/ld+json"> 2352{ 2353 "@context": "https://schema.org", 2354 "@type": "SoftwareApplication", 2355 "name": "PDFSign.in", 2356 "operatingSystem": "Windows 10, Windows 11", 2357 "applicationCategory": "BusinessApplication", 2358 "description": "Digitally sign any PDF with your USB DSC token or signature stamp image. 100% offline, no Java, no browser plugins. Bulk signing, PDF security, optional RFC 3161 timestamp. Built for GeM, CPPP and Indian e-procurement filings â signed files verified on GeM on 18 July 2026.", 2359 "featureList": [ 2360 "USB DSC token signing (HyperPKI, ePass, Proxkey, Feitian, WD Pro, Watchdata)", 2361 "Signature and stamp image embedding", 2362 "Batch PDF signing", 2363 "PDF security â restrict print, edit, copy", 2364 "Click-to-place signature position on PDF", 2365 "RFC 3161 trusted timestamp", 2366 "100% offline â no cloud upload", 2367 "Adobe detached PKCS#7 signatures, SHA-256", 2368 "Signed files verified on GeM, July 2026", 2369 "Team licence (5 seats)" 2370 ], 2371 "offers": [ 2372 { 2373 "@type": "Offer", 2374 "name": "Monthly Solo Plan", 2375 "price": "99", 2376 "priceCurrency": "INR", 2377 "description": "Monthly solo subscription â 1 Windows device" 2378 }, 2379 { 2380 "@type": "Offer", 2381 "name": "Annual Solo Plan", 2382 "price": "999", 2383 "priceCurrency": "INR", 2384 "description": "Annual solo subscription â 1 Windows device" 2385 }, 2386 { 2387 "@type": "Offer", 2388 "name": "Annual Team Plan", 2389 "price": "3499", 2390 "priceCurrency": "INR", 2391 "description": "Annual team plan â 5 Windows devices" 2392 }, 2393 { 2394 "@type": "Offer", 2395 "name": "Lifetime Solo Plan", 2396 "price": "4999", 2397 "priceCurrency": "INR", 2398 "description": "Lifetime solo licence â 1 Windows device" 2399 }, 2400 { 2401 "@type": "Offer", 2402 "name": "Lifetime Team Plan", 2403 "price": "13999", 2404 "priceCurrency": "INR", 2405 "description": "Lifetime team licence â 5 Windows devices" 2406 } 2407 ], 2408 "url": "https://pdfsign.in", 2409 "downloadUrl": "https://apps.microsoft.com/detail/9PBCQ9ZM5G2X", 2410 "softwareVersion": "3.0.0", 2411 "screenshot": "https://pdfsign.in/screenshot.png", 2412 "mainEntityOfPage": { 2413 "@type": "WebPage", 2414 "@id": "https://pdfsign.in/" 2415 }, 2416 "author": { 2417 "@type": "Organization", 2418 "name": "PDFSign.in", 2419 "url": "https://pdfsign.in" 2420 }, 2421 "brand": { 2422 "@type": "Brand", 2423 "name": "PDFSign" 2424 } 2425} 2426</script>
vendor: 1 bytes, line 2426
2426
2427<script type="application/ld+json"> 2428{ 2429 "@context": "https://schema.org", 2430 "@type": "FAQPage", 2431 "mainEntity": [ 2432 {"@type":"Question","name":"Are my PDFs uploaded when I sign with PDFSign.in?","acceptedAnswer":{"@type":"Answer","text":"No. Signing happens 100% on your machine. Your documents never leave your computer. We have no access to your files or DSC token private key."}}, 2433 {"@type":"Question","name":"Will signed PDFs be accepted on government portals like GeM and CPPP?","acceptedAnswer":{"@type":"Answer","text":"PDFSign writes a standard Adobe detached PKCS#7 signature (SHA-256) with your CCA-issued DSC â the format Adobe Acrobat and Indian portals read. Signed files were verified on GeM on 18 July 2026. We have not run dated portal-by-portal tests on CPPP, NIC e-Procurement, MCA21, Income Tax or DGFT, so if a portal rejects a signed file, contact us and we will fix it."}}, 2434 {"@type":"Question","name":"Which DSC token brands does PDFSign.in support?","acceptedAnswer":{"@type":"Answer","text":"PDFSign.in supports HyperPKI HYP2003, ePass 2003, ePass 3003, Proxkey, Feitian, WD Pro, Watchdata, and any USB DSC token from a CCA-licensed Indian CA whose Windows driver is installed."}}, 2435 {"@type":"Question","name":"Do I need Java or browser plugins to use PDFSign.in?","acceptedA
2435nswer":{"@type":"Answer","text":"No. PDFSign.in is a native Windows desktop app. It requires no Java, no browser plugin, no admin rights, and no internet connection to sign PDFs."}}, 2436 {"@type":"Question","name":"Can I sign PDFs without a DSC token using a signature or stamp image?","acceptedAnswer":{"@type":"Answer","text":"Yes. PDFSign.in includes a Signature and Stamp Image mode. Upload a PNG or JPG of your handwritten signature or company stamp and embed it on any PDF page without a USB DSC token."}}, 2437 {"@type":"Question","name":"How does batch PDF signing work?","acceptedAnswer":{"@type":"Answer","text":"Point PDFSign.in at a folder, enter your PIN once, and it signs every PDF in that folder automatically with the same settings. Signed copies are saved to your output folder."}}, 2438 {"@type":"Question","name":"Can I restrict printing, editing, or copying of the signed PDF?","acceptedAnswer":{"@type":"Answer","text":"Yes. PDFSign.in lets you set PDF permissions to restrict printing, editing, and content copying, with an optional document open password. Enforced by Adobe Acrobat and compatible viewers."}}, 2439 {"@type":"Question","name":"What is RFC 3161 timestamp and why does it matter?","acceptedA
2439nswer":{"@type":"Answer","text":"An optional RFC 3161 timestamp embeds cryptographic proof of when the document was signed, from a trusted Timestamp Authority server, so a reader can tell the signature was made while your certificate was still valid. It is not long-term validation (LTV): PDFSign does not embed revocation data (OCSP/CRL) in the file, so a verifier still checks revocation itself."}}, 2440 {"@type":"Question","name":"Can I use PDFSign.in from outside India?","acceptedAnswer":{"@type":"Answer","text":"Yes. PDFSign.in works on any Windows PC worldwide with no geo-restriction. Indian DSC token holders in UAE, UK, USA, Canada, Australia, or anywhere can sign Indian government documents remotely."}}, 2441 {"@type":"Question","name":"What is the team plan?","acceptedAnswer":{"@type":"Answer","text":"The team plan covers 5 Windows PCs under one shared licence key. Annual team plan is Rs. 3,499 per year; Lifetime team plan is Rs. 13,999 one-time. Ideal for CA firms, law offices, and tender-filing teams."}},
2442 {"@type":"Question","name":"Is PDFSign free?","acceptedAnswer":{"@type":"Answer","text":"Yes. Every download includes a free evaluation. You can evaluate PDFSign for up to 30 days or 100 signed PDFs (whichever comes first) before choosing a subscription."}}, 2443 {"@type":"Question","name":"Why is the evaluation limited?","acceptedAnswer":{"@type":"Answer","text":"The purpose of the free evaluation is to let you verify that PDFSign works perfectly with your USB DSC token, PDF documents and signing workflow. If you regularly sign large numbers of PDFs, you can continue without interruption by upgrading to a paid plan."}}, 2444 {"@type":"Question","name":"What happens when my evaluation ends?","acceptedAnswer":{"@type":"Answer","text":"Your documents, settings, saved signatures and templates remain safely stored on your computer. Only new PDF signing requires an active subscription."}}, 2445 {"@type":"Question","name":"What is your refund policy?","acceptedAnswer":{"@type":"Answer","text":"PDFSign includes a free evaluation â up to 30 days or 100 signed PDFs â so you can fully evaluate it before buying. Because of that, all licence purchases are final and n
2445on-refundable, except where required by applicable law. See our Refund Policy for details."}} 2446 ] 2447} 2448</script>
vendor: 1 bytes, line 2448
2448
2449<script type="application/ld+json"> 2450{ 2451 "@context": "https://schema.org", 2452 "@type": "LocalBusiness", 2453 "name": "PDFSign.in", 2454 "description": "Windows desktop application for signing PDFs using USB DSC tokens. Built for GeM, CPPP and Indian e-procurement filings; signed files verified on GeM on 18 July 2026.", 2455 "url": "https://pdfsign.in", 2456 "email": "[email protected]", 2457 "telephone": "+917057413999", 2458 "address": { 2459 "@type": "PostalAddress", 2460 "addressCountry": "IN" 2461 }, 2462 "areaServed": { 2463 "@type": "Country", 2464 "name": "India" 2465 }, 2466 "priceRange": "â¹99 - â¹13,999", 2467 "sameAs": ["https://pdfsign.in"] 2468} 2469</script>
vendor: 1 bytes, line 2469
2469
2470<script type="application/ld+json"> 2471{ 2472 "@context": "https://schema.org", 2473 "@type": "WebSite", 2474 "name": "PDFSign.in", 2475 "alternateName": "PDFSign", 2476 "url": "https://pdfsign.in", 2477 "description": "Sign PDFs with USB DSC token or signature stamp. 100% offline Windows app. Built for GeM, CPPP and Indian e-procurement filings; signed files verified on GeM on 18 July 2026.", 2478 "inLanguage": "en-IN", 2479 "potentialAction": { 2480 "@type": "SearchAction", 2481 "target": { 2482 "@type": "EntryPoint", 2483 "urlTemplate": "https://pdfsign.in/blog/?q={search_term_string}" 2484 }, 2485 "query-input": "required name=search_term_string" 2486 } 2487} 2488</script>
vendor: 1 bytes, line 2488
2488
2489<script type="application/ld+json"> 2490{ 2491 "@context": "https://schema.org", 2492 "@type": "Organization", 2493 "name": "PDFSign.in", 2494 "alternateName": ["PDFSign", "PDFSign India"], 2495 "url": "https://pdfsign.in", 2496 "logo": { "@type": "ImageObject", "url": "https://pdfsign.in/og-image.png", "width": 1200, "height": 630 }, 2497 "email": "[email protected]", 2498 "telephone": "+917057413999", 2499 "foundingDate": "2023", 2500 "address": { 2501 "@type": "PostalAddress", 2502 "addressCountry": "IN" 2503 }, 2504 "sameAs": [ 2505 "https://apps.microsoft.com/detail/9PBCQ9ZM5G2X", 2506 "https://pdfsign.in" 2507 ], 2508 "contactPoint": { 2509 "@type": "ContactPoint", 2510 "contactType": "customer support", 2511 "email": "[email protected]", 2512 "availableLanguage": ["English", "Hindi"] 2513 } 2514} 2515</script>
2515 2516</head> 2517<body> 2518 2519<!-- âââ NAV âââ --> 2520<nav> 2521 <div class="nav-inner"> 2522 <a href="#" class="logo"> 2523 <svg class="logo-mark" width="38" height="38" viewBox="0 0 64 64" fill="none" aria-hidden="true"><rect width="64" height="64" rx="12" fill="#243558"/><text x="32" y="23" font-family="system-ui,-apple-system,sans-serif" font-weight="700" font-size="14" letter-spacing="1.5" fill="#FFFFFF" text-anchor="middle" dominant-baseline="middle">PDF</text><rect x="10" y="31" width="44" height="2.5" rx="1.25" fill="#16A34A"/><text x="32" y="46" font-family="system-ui,-apple-system,sans-serif" font-weight="700" font-size="12" letter-spacing="1.5" fill="#93C5FD" text-anchor="middle" dominant-baseline="middle">SIGN</text></svg> 2524 <span class="logo-name">PDF<em>Sign</em></span> 2525 </a> 2526 <div class="made-in-india"> 2527 <svg width="28" height="18" viewBox="0 0 280 180" xmlns="http://www.w3.org/2000/svg"> 2528 <!-- Tricolour stripes --> 2529 <rect width="280" height="60" fill="#FF9933"/> 2530 <rect y="60" width="280" height="60" fill="#FFFFFF"/> 2531 <rect y="120" width="280" height="60" fill="#138808"/> 2532 <!-- Ashoka Chakra --> 2533 <circle cx="140" cy="90" r="26" fill="none" stroke="#000080" stroke-width="4"/> 2534 <circle cx="140" cy="90" r="3" fill="#000080"/> 2535 <g stroke="#000080" stroke-width="1.2"> 2536 <line x1="140" y1="64" x2="140" y2="116"/> 2537 <line x1="114" y1="90" x2="166" y2="90"/> 2538 <line x1="121.6" y1="71.6" x2="158.4" y2="108.4"/> 2539 <line x1="158.4" y1="71.6" x2="121.6" y2="108.4"/> 2540 <line x1="114.4" y1="78" x2="165.6" y2="102"/> 2541 <line x1="114.4" y1="102" x2="165.6" y2="78"/> 2542 <line x1="128" y1="65.2" x2="152" y2="114.8"/> 2543 <line x1="152" y1="65.2" x2="128" y2="114.8"/> 2544 </g> 2545 <g fill="#000080"> 2546 <circle cx="140" cy="64" r="2"/> 2547 <circle cx="153.7" cy="67.3" r="2"/> 2548 <circle cx="163.8" cy="76.2" r="2"/> 2549 <circle cx="166.4" cy="90" r="2"/> 2550 <circle cx="163.8" cy="103.8" r="2"/> 2551 <circle cx="153.7" cy="112.7" r="2"/> 2552 <circle cx="140" cy="116" r="2"/> 2553 <circle cx="126.3" cy="112.7" r="2"/> 2554 <circle cx="116.2" cy="103.8" r="2"/> 2555 <circle cx="113.6" cy="90" r="2"/> 2556 <circle cx="116.2" cy="76.2" r="2"/> 2557 <circle cx="126.3" cy="67.3" r="2"/> 2558 </g> 2559 <!-- Lion silhouette (gear-style, simplified) --> 2560 <g transform="translate(175,55) scale(0.42)"> 2561 <!-- Body --> 2562 <ellipse cx="120" cy="110" rx="65" ry="40" fill="rgba(255,153,51,0.9)"/> 2563 <!-- Head --> 2564 <circle cx="195" cy="80" r="32" fill="rgba(255,153,51,0.9)"/> 2565 <!-- Mane --> 2566 <circle cx="195" cy="80" r="42" fill="none" stroke="rgba(180,80,0,0.8)" stroke-width="10" stroke-dasharray="8,6"/> 2567 <!-- Legs --> 2568 <rect x="80" y="138" width="14" height="32" rx="4" fill="rgba(255,153,51,0.9)"/> 2569 <rect x="104" y="142" width="14" height="28" rx="4" fill="rgba(255,153,51,0.9)"/> 2570 <rect x="148" y="138" width="14" height="32" rx="4" fill="rgba(255,153,51,0.9)"/> 2571 <rect x="168" y="142" width="14" height="28" rx="4" fill="rgba(255,153,51,0.9)"/> 2572 <!-- Tail --> 2573 <path d="M 60 100 Q 30 80 40 60 Q 50 45 55 55" stroke="rgba(255,153,51,0.9)" stroke-width="8" fill="none" stroke-linecap="round"/> 2574 <circle cx="55" cy="55" r="7" fill="rgba(180,80,0,0.8)"/> 2575 <!-- Gear overlays on body --> 2576 <circle cx="120" cy="108" r="18" fill="none" stroke="rgba(100,50,0,0.5)" stroke-width="4" stroke-dasharray="6,4"/> 2577 <circle cx="145" cy="118" r="12" fill="none" stroke="rgba(100,50,0,0.4)" stroke-width="3" stroke-dasharray="4,3"/> 2578 </g> 2579 </svg> 2580 <span>Made in India</span> 2581 </div> 2582 <button class="nav-burger" id="navBurger" aria-label="Open menu" onclick="toggleNav()"> 2583 <span></span><span></span><span></span> 2584 </button> 2585 <ul class="nav-links" id="navLinks"> 2586 <li><a href="#features">Features</a></li> 2587 <li><a href="#how">How it works</a></li> 2588 <li><a href="#compare">Compare</a></li> 2589 <li><a href="#pricing">Pricing</a></li> 2590 <li><a href="#faq">FAQ</a></li> 2591 <li><a href="/blog/">Blog</a></li> 2592 <li class="intl-only"><a href="/web">Sign Online â Free</a></li> 2593 <li><a href="https://api.pdfsign.in/api/download" class="nav-cta">Download Now</a></li> 2594 </ul> 2595 </div> 2596</nav> 2597 2598<!-- âââ HERO âââ --> 2599<section class="hero"> 2600 <div class="hero-bg"> 2601 <div class="hero-glow2"></div> 2602 </div> 2603 <div class="hero-inner"> 2604 <div class="hero-content"> 2605 <div class="hero-badge">For Windows · Free Evaluation · No Credit Card Required</div> 2606 2607 <!-- India hero --> 2608 <h1 class="india-only">Sign any PDF in seconds.<br /><em>DSC token or stamp image.</em><br />100% offline.</h1> 2609 <p class="hero-sub india-only"> 2610 Open the app, load your PDF, sign. Done in under 60 seconds. Works with your USB DSC token or a signature stamp image â no Java, no browser plugin, no cloud upload. 2611 </p> 2612 <p class="hero-urgency india-only"><em>Never miss a tender deadline again.</em></p> 2613 2614 <!-- International hero --> 2615 <h2 class="intl-only hero-alt-h1">Sign PDFs with your USB token, signature, or company stamp.</h2> 2616 <p class="hero-sub intl-only"><em>Fully offline. Nothing uploaded.</em></p> 2617 <p class="hero-sub intl-only"> 2618 Add a digital signature, handwritten signature, or company stamp to any PDF in under 60 seconds. Works with SafeNet, Thales, HID, Gemalto and Feitian tokens â any DSC USB token whose Windows driver is installed. No Java. No browser plugins. No cloud. 2619 </p> 2620 <p class="hero-urgency intl-only"><em>Your documents stay on your device â always.</em></p> 2621 <div class="hero-actions"> 2622 <a href="https://api.pdfsign.in/api/download" class="btn-primary"> 2623 <svg width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
2623<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7,10 12,15 17,10"/><line x1="12" y1="15" x2="12" y2="3"/></svg> 2624 Download Free Evaluation 2625 </a> 2626 <!-- International: prominent secondary CTA to no-install web tool --> 2627 <a href="/web" class="btn-ghost intl-only" style="font-size:14px;opacity:0.85;"> 2628 âï¸ Or sign free online 2629 </a> 2630 </div> 2631 <p style="font-size:13px;color:rgba(255,255,255,0.65);margin-top:10px;"> 2632 Verify that PDFSign works with your USB DSC token, PDFs and workflow before you buy. 2633 </p> 2634 <p style="font-size:11.5px;color:rgba(255,255,255,0.45);margin-top:4px;"> 2635 Includes up to 30 days or 100 signed PDFs (whichever comes first). 2636 </p> 2637 <div class="hero-badges"> 2638 <div class="hero-badge-item"> 2639 <svg width="14" height="14" fill="none" stroke="#4ADE80" stroke-width="2" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> 2640 Free evaluation 2641 </div> 2642 <div class="hero-badge-item"> 2643 <svg width="14" height="14" fill="none" stroke="#4ADE80" stroke-width="2" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> 2644 No credit card needed 2645 </div> 2646 <div class="hero-badge-item"> 2647 <svg width="14" height="14" fill="none" stroke="#4ADE80" stroke-width="2" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> 2648 Works offline 2649 </div> 2650 <div class="hero-badge-item india-only"> 2651 <svg width="14" height="14" fill="none" stroke="#4ADE80" stroke-width="2" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> 2652 Legal under IT Act 2000 2653 </div> 2654 <div class="hero-badge-item intl-only"> 2655 <svg width="14" height="14" fill="none" stroke="#4ADE80" stroke-width="2" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> 2656 SHA-256 PKI signature, verifiable in Adobe 2657 </div> 2658 </div> 2659 <div class="hero-trust"> 2660 <div class="trust-avatars"> 2661 <span>CA</span><span>LW</span><span>GC</span><span>EX</span> 2662 </div> 2663 <p class="trust-text india-only">Trusted by <strong>procurement professionals, CA firms, and company secretaries</strong> across India</p> 2664 <p class="trust-text intl-only">Trusted by <strong>lawyers, accountants, compliance teams, and procurement professionals</strong> worldwide</p> 2665 </div> 2666 </div> 2667 2668 <!-- Layered proof: signed PDF (outcome) in front, real app render behind --> 2669 <div class="hero-visual"> 2670 <div class="step-badge"> 2671 <svg width="12" height="12" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg> 2672 Signed & Verified 2673 </div> 2674 <div class="hero-stack"> 2675 <div class="hero-app-behind"> 2676 <img src="/img/hero-app.png" alt="The PDFSign desktop app signing a PDF with a digital certificate â fully offline on Windows" width="1272" height="1158" loading="eager" fetchpriority="high" /> 2677 </div> 2678 <div class="pdf-proof" aria-label="A digitally signed PDF verified as valid"> 2679 <div class="pdf-proof-banner"> 2680 <svg width="14" height="14" fill="none" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" fill="#16A34A"/><polyline points="17,9 10.5,15.5 7,12" stroke="#fff" stroke-width="2.2" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg> 2681 Signed and all signatures are valid. 2682 </div> 2683 <div class="pdf-proof-page"> 2684 <div class="pp-line full"></div> 2685 <div class="pp-line full"></div> 2686 <div class="pp-line med"></div> 2687 <div class="pp-gap"></div> 2688 <div class="pp-line full"></div> 2689 <div class="pp-line full"></div> 2690 <div class="pp-line short"></div> 2691 <div class="pp-gap"></div> 2692 <div class="pp-line med"></div> 2693 <div class="pp-line xs"></div> 2694 <div class="dsc-stamp"> 2695 <div class="dsc-stamp-title">Signature valid</div> 2696 <div class="dsc-stamp-line">Digitally signed by <strong class="india-only">RAJESH KUMAR</strong><strong class="intl-only">DAVID MILLER</strong></div> 2697 <div class="dsc-stamp-line">Date: 2026.07.18 14:32 IST</div> 2698 <div class="dsc-stamp-line">Designation: <span class="india-only">Proprietor</span><span class="intl-only">Authorised Signatory</span></div> 2699 <div class="dsc-stamp-line">Reason: <span class="india-only">Tender</span><span class="intl-only">Contract</span></div> 2700 <div class="dsc-stamp-line">Location: <span class="india-only">Pune</span><span class="intl-only">London</span></div> 2701 <svg class="dsc-stamp-check" width="52" height="52" viewBox="0 0 24 24" fill="none"> 2702 <path d="M20 6 9 17l-5-5" stroke="#0F172A" stroke-width="5.5" stroke-linecap="round" stroke-linejoin="round"/> 2703 <path d="M20 6 9 17l-5-5" stroke="#16A34A" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/> 2704 </svg> 2705 </div> 2706 </div> 2707 </div> 2708 </div> 2709 <div class="token-widget"> 2710 <div class="token-icon"> 2711 <svg width="18" height="18" fill="none" stroke="#93C5FD" stroke-width="1.5" viewB
2711ox="0 0 24 24"><rect x="2" y="11" width="20" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg> 2712 </div> 2713 <div> 2714 <div class="token-label">DSC Token Connected</div> 2715 <div class="token-value">HyperPKI HYP2003 · Ready</div> 2716 </div> 2717 </div> 2718 </div> 2719 </div> 2720</section> 2721 2722 2723<!-- âââ LIVE STATS STRIP âââ --> 2724<div class="stats-strip"> 2725 <div class="stats-strip-inner"> 2726 <div class="stats-live-badge"><span class="stats-live-dot"></span>Live · Updated in real time</div> 2727 <div class="stats-counters"> 2728 <div class="stats-counter"> 2729 <div class="stats-counter-val" id="stat-dl-today">â</div> 2730 <div class="stats-counter-label">ð¥ Downloads today</div> 2731 </div> 2732 <div class="stats-divider"></div> 2733 <div class="stats-counter"> 2734 <div class="stats-counter-val" id="stat-dl-total">â</div> 2735 <div class="stats-counter-label">ð¢ Total downloads</div> 2736 </div> 2737 </div> 2738 </div> 2739</div> 2740<!-- âââ LOGOS STRIP âââ --> 2741<div class="logos-strip"> 2742 <div class="logos-strip-inner"> 2743 <span class="logos-label">Trusted by</span> 2744 <div class="logos-items"> 2745 <span class="logo-pill">CA Firms</span> 2746 <span class="logo-pill">Law Offices</span> 2747 <span class="logo-pill">Govt. Contractors</span> 2748 <span class="logo-pill">MSME Exporters</span> 2749 <span class="logo-pill">Tender Filers</span> 2750 <span class="logo-pill">Chartered Engineers</span> 2751 </div> 2752 </div> 2753</div> 2754 2755<!-- âââ HOW IT WORKS âââ --> 2756<section class="how" id="how"> 2757 <div class="container"> 2758 <div style="text-align:center;"> 2759 <div class="section-tag">Simple Process</div> 2760 <h2 class="section-title">From PDF to signed document in under 60 seconds</h2> 2761 <p class="section-sub" style="margin:0 auto;">Designed to be as fast as possible, with no learning curve for existing DSC users.</p> 2762 </div> 2763 2764 <div class="how-steps"> 2765 <div class="how-step"> 2766 <div class="step-num">1</div> 2767 <h4>Open PDFSign</h4> 2768 <p>Install and open PDFSign for Windows 10 or 11. No Java, no extra setup needed.</p> 2769 </div> 2770 <div class="how-step"> 2771 <div class="step-num">2</div> 2772 <h4>Select your PDF</h4> 2773 <p>Drag and drop a PDF or pick from file. For bulk signing, add an entire folder.</p> 2774 </div> 2775 <div class="how-step"> 2776 <div class="step-num">3</div> 2777 <h4>Choose DSC token or stamp image</h4> 2778 <p>Insert your USB DSC token or upload a signature/stamp image â whichever you have.</p> 2779 </div> 2780 <div class="how-step"> 2781 <div class="step-num">4</div> 2782 <h4>Click Sign</h4> 2783 <p>Enter your token PIN if using DSC, choose placement, and sign. Saved instantly.</p> 2784 </div> 2785 </div> 2786 </div> 2787</section> 2788 2789<!-- âââ SEE IT IN ACTION âââ --> 2790<section class="tutorials" id="demo"> 2791 <div class="container"> 2792 <div class="tutorials-header" style="text-align:center;"> 2793 <div class="section-tag">See It In Action</div> 2794 <h2 class="section-title">See how you can sign any PDF in under 60 seconds</h2> 2795 <p class="section-sub" style="margin:0 auto;">Step-by-step video walkthroughs showing exactly how PDFSign works</p> 2796 </div> 2797 <div class="tutorials-grid"> 2798 <div class="tutorial-card-wrap"> 2799 <div class="tutorial-method-label" style="text-align:center;margin-bottom:18px;"> 2800 <span style="background:#1e293b;border:1px solid #334155;color:#94a3b8;padding:10px 28px;border-radius:100px;font-size:16px;font-weight:600;">No DSC? â Use stamp image</span> 2801 </div> 2802 <div class="tutorial-card" style="cursor:default;"> 2803 <div style="position:relative;width:100%;aspect-ratio:16/9;"> 2804 <div class="yt-facade" onclick="loadYT(this,'0wBNYxzgqWU','?si=Oa38T0DRhPwtSI1E')" role="button" aria-label="Play: How to sign PDF with stamp or signature image"> 2805 <img src="https://i.ytimg.com/vi/0wBNYxzgqWU/hqdefault.jpg" alt="How to sign PDF with stamp or signature image â PDFSign.in" loading="lazy" width="480" height="360" /> 2806 <div class="yt-facade-play"> 2807 <div class="yt-facade-btn"> 2808 <svg width="24" height="24" viewBox="0 0 24 24" fill="white"><path d="M8 5v14l11-7z"/></svg> 2809 </div> 2810 </div> 2811 </div> 2812 </div> 2813 <div class="tutorial-body"> 2814 <div class="tutorial-title">How to sign PDF with a signature or stamp image</div> 2815 <div class="tutorial-meta">YouTube · PDFSign</div> 2816 </div> 2817 </div> 2818 </div> 2819 <div class="tutorial-card-wrap"> 2820 <div class="tutorial-method-label" style="text-align:center;margin-bottom:18px;">
2821 <span style="background:#16a34a22;border:1px solid #16a34a55;color:#4ade80;padding:10px 28px;border-radius:100px;font-size:16px;font-weight:600;">DSC token? â Do Digital Signature</span> 2822 </div> 2823 <div class="tutorial-card" style="cursor:default;"> 2824 <div style="position:relative;width:100%;aspect-ratio:16/9;"> 2825 <div class="yt-facade" onclick="loadYT(this,'_AdgghQ95M0','?si=ntz_9s8nFfSot-3H')" role="button" aria-label="Play: How to digitally sign PDF with USB DSC token"> 2826 <img src="https://i.ytimg.com/vi/_AdgghQ95M0/hqdefault.jpg" alt="How to digitally sign PDF with USB DSC token â PDFSign.in" loading="lazy" width="480" height="360" /> 2827 <div class="yt-facade-play"> 2828 <div class="yt-facade-btn"> 2829 <svg width="24" height="24" viewBox="0 0 24 24" fill="white"><path d="M8 5v14l11-7z"/></svg> 2830 </div> 2831 </div> 2832 </div> 2833 </div> 2834 <div class="tutorial-body"> 2835 <div class="tutorial-title">How to digitally sign PDF with USB DSC token (HYP2003, ePass)</div> 2836 <div class="tutorial-meta">YouTube · PDFSign</div> 2837 </div> 2838 </div> 2839 </div> 2840 </div> 2841 <!-- Stats strip below videos --> 2842 <div class="video-stats" style="max-width:900px;margin:40px auto 0;"> 2843 <div class="video-stat"><span class="vs-num"><60s</span><span class="vs-label">Sign in under 60 seconds</span></div> 2844 <div class="vs-divider"></div> 2845 <div class="video-stat"><span class="vs-num">100%</span><span class="vs-label">100% offline & secure</span></div> 2846 <div class="vs-divider"></div> 2847 <div class="video-stat"><span class="vs-num">Zero</span><span class="vs-label">Zero Java or browser dependency</span></div> 2848 <div class="vs-divider"></div> 2849 <div class="video-stat"><span class="vs-num">All</span><span class="vs-label">Supports all PDF workflows</span></div> 2850 </div> 2851 </div> 2852</section> 2853 2854<!-- âââ PAIN SECTION âââ --> 2855<section class="pain india-only" id="pain"> 2856 <div class="container"> 2857 <div style="text-align:center;margin-bottom:32px;"> 2858 <p style="font-size:15px;color:#94a3b8;font-style:italic;margin-bottom:10px;">If you've ever struggled with DSC signing, this will feel familiarâ¦</p> 2859 <h2 class="section-title" style="font-size:clamp(20px,3vw,28px);">Why most DSC signing tools fail â and how PDFSign fixes it</h2> 2860 </div> 2861 <div class="pain-inner"> 2862 <div class="pain-col pain-old"> 2863 <div class="pain-col-label pain-label-bad">The old way</div> 2864 <ul class="pain-list"> 2865 <li><span class="pain-x">â</span> Install Java, fight with browser plugins</li> 2866 <li><span class="pain-x">â</span> Upload your confidential PDF to a stranger's server</li> 2867 <li><span class="pain-x">â</span> Error: "Token not detected" â restart, try again</li> 2868 <li><span class="pain-x">â</span> Different tool for every government portal</li> 2869 <li><span class="pain-x">â</span> Sign one file at a time â manually, every time</li> 2870 <li><span class="pain-x">â</span> Expired certificate? No warning â signing fails silently</li> 2871 </ul> 2872 </div> 2873 <div class="pain-divider"> 2874 <div class="pain-vs">VS</div> 2875 </div> 2876 <div class="pain-col pain-new"> 2877 <div class="pain-col-label pain-label-good">The PDFSign way</div> 2878 <ul class="pain-list"> 2879 <li><span class="pain-check">â</span> Open app â load PDF â sign. Done in 10 seconds</li> 2880 <li><span class="pain-check">â</span> 100% offline â your files never leave your PC</li> 2881 <li><span class="pain-check">â</span> Auto-detects all major DSC tokens instantly</li> 2882 <li><span class="pain-check">â</span> One tool for GeM, CPPP, Income Tax and MCA21 filings</li> 2883 <li><span class="pain-check">â</span> Bulk sign hundreds of PDFs in one click</li> 2884 <li><span class="pain-check">â</span> Expired cert warning before you sign â no surprises</li> 2885 </ul> 2886 </div> 2887 </div> 2888 </div> 2889</section> 2890 2891<!-- âââ PAIN (INTL) âââ --> 2892<section class="pain intl-only" id="pain-intl"> 2893 <div class="container"> 2894 <div style="text-align:center;margin-bottom:32px;"> 2895 <p style="font-size:15px;color:#94a3b8;font-style:italic;margin-bottom:10px;">If you've ever worried about sending confidential documents to a cloud service, you're not aloneâ¦</p> 2896 <h2 class="section-title" style="font-size:clamp(20px,3vw,28px);">Why cloud PDF signing tools put your documents at risk â and how PDFSign fixes it</h2> 2897 </div> 2898 <div class="pain-inner"> 2899 <div class="pain-col pain-old"> 2900 <div class="pain-col-label pain-label-bad">The cloud way</div> 2901 <ul class="pain-list"> 2902 <li><span class="pain-x">â</span> Upload confidential documents to unknown cloud servers</li> 2903 <li><span class="pain-x">â</span> No real PKI signature â just an image stamp, legally weak</li> 2904 <li><span class="pain-x">â</span> Per-document or per-seat pricing â costs spiral fast</li> 2905 <li><span class="pain-x">â</span> Session expires mid-signing â no offline fallback</li> 2906 <li><span class="pain-x">â</span> GDPR exposure: vendor stores your documents indefinitely</li> 2907 <li><span class="pain-x">â</span> Browser extension breaks after every update</li> 2908 </ul> 2909 </div> 2910 <div class="pain-divider"> 2911 <div class="pain-vs">VS</div> 2912 </div> 2913 <div class="pain-col pain-new"> 2914 <div class="pain-col-label pain-label-good">The PDFSign way</div> 2915 <ul class="pain-list"> 2916 <li><span class="pain-check">â</span> 100% offline â your documents never leave your PC. Ever.</li> 2917 <li><span class="pain-check">â</span> Real PKI digital signature â cryptographically verifiable</li> 2918 <li><span class="pain-check">â</span> One-time purchase â no per-document fees, ever</li> 2919 <li><span class="pain-check">â</span> Works without internet â sign anywhere, anytime</li> 2920 <li><span class="pain-check">â</span> Air-gap secure â zero cloud exposure, GDPR-friendly</li> 2921 <li><span class="pain-check">â</span> Desktop app â stable, fast, no browser dependency</li> 2922 </ul> 2923 </div> 2924 </div> 2925 </div> 2926</section> 2927 2928<!-- âââ FEATURES âââ --> 2929<section class="features" id="features"> 2930 <div class="container"> 2931 <div style="text-align:center;"> 2932 <div class="section-tag">Why PDFSign</div> 2933 <h2 class="section-title">Built for real-world DSC signing<br />(not theory)</h2> 2934 <p class="section-sub" style="margin:0 auto;">Built for Indian professionals â CA firms, lawyers, contractors, exporters, and businesses â who need fast, dependable DSC signing on any document.</p> 2935 </div> 2936 2937 <div class="features-grid"> 2938 2939 <div class="feature-card"> 2940 <div class="feature-icon"> 2941 <svg fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><rect x="2" y="11" width="20" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg> 2942 </div> 2943 <h3>All DSC Tokens Supported</h3> 2944 <p>Works with HyperPKI HYP2003, ePass 2003/3003, Proxkey, WD Pro, Feitian, Watchdata â any token from a CCA-licensed CA whose Windows driver is installed.</p> 2945 </div> 2946 2947 <div class="feature-card"> 2948 <div class="feature-icon"> 2949 <svg fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M8 12h8M12 8v8"/><circle cx="12" cy="12" r="3"/></svg> 2950 </div> 2951 <h3>Sign without DSC using stamp image</h3> 2952 <p>Upload your handwritten signature or company stamp as an image and embed it visually on any PDF â no DSC token required for this mode.</p> 2953 </div> 2954 2955 <div class="feature-card"> 2956 <div class="feature-icon"> 2957 <svg fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24">
2957<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14,2 14,8 20,8"/><path d="M16 13H8M16 17H8M10 9H8"/></svg> 2958 </div> 2959 <h3>Bulk PDF Signing</h3> 2960 <p>Sign multiple PDFs at once â sign hundreds of PDFs in one click. Perfect for tender submissions, GST invoices, certificates, and bulk document workflows. <a href="/bulk-pdf-signing" style="color:#16A34A;font-weight:600;">Learn about bulk PDF signing â</a></p> 2961 </div> 2962 2963 <div class="feature-card"> 2964 <div class="feature-icon"> 2965 <svg fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/><line x1="8" y1="15" x2="10" y2="15"/><line x1="8" y1="18" x2="16" y2="18"/></svg> 2966 </div> 2967 <h3>PDF Security</h3> 2968 <p>Restrict printing, editing, and copying of your signed PDF. Set a document open password or owner permissions â enforced by Adobe Acrobat.</p> 2969 </div> 2970 2971 <div class="feature-card"> 2972 <div class="feature-icon"> 2973 <svg fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><polyline points="15,3 12,3 9,3"/><circle cx="12" cy="14" r="3"/><path d="M12 11V9"/></svg> 2974 </div> 2975 <h3>Click exactly where you want your signature</h3> 2976 <p>Click anywhere on the PDF page preview to place your signature exactly where you want it â no guessing row/column positions.</p> 2977 </div> 2978 2979 <div class="feature-card"> 2980 <div class="feature-icon"> 2981 <svg fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><polyline points="12,6 12,12 16,14"/></svg> 2982 </div> 2983 <h3>RFC 3161 Timestamp</h3> 2984 <p>Embed a trusted timestamp from a government-recognised TSA server â proves the document was signed at a specific point in time, even after cert expiry.</p> 2985 </div> 2986 2987 <div class="feature-card"> 2988 <div class="feature-icon"> 2989 <svg fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><path d="M20 7H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z"/><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/></svg> 2990 </div> 2991 <h3>Offline & Private</h3> 2992 <p>Your documents never leave your PC. Signing happens entirely on your machine â no uploads, no cloud, no third-party server sees your files.</p> 2993 </div> 2994 2995 <div class="feature-card"> 2996 <div class="feature-icon"> 2997 <svg fill="none" stroke="currentColor" stroke-width="1.8" viewBox="0 0 24 24"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="M9 12l2 2 4-4"/></svg> 2998 </div> 2999 <h3>Government Compliant</h3> 3000 <p>Standard Adobe PKCS#7 signatures for GeM, CPPP, NIC e-Procurement, MCA21, Income Tax and DGFT filings. Signed files verified on GeM on 18 July 2026.</p> 3001 </div> 3002 3003 </div> 3004 </div> 3005</section> 3006 3007<!-- âââ COMPARE âââ --> 3008<section class="compare india-only" id="compare"> 3009 <div class="container"> 3010 <div style="text-align:center;"> 3011 <div class="section-tag">How We Compare</div> 3012 <h2 class="section-title">PDFSign vs other DSC signing tools</h2> 3013 <p class="section-sub" style="margin:0 auto;">Not all PDF signing tools are equal â especially when your documents must be accepted on Indian government portals.</p> 3014 </div> 3015 <div class="compare-table-wrap"> 3016 <table class="compare-table"> 3017 <thead> 3018 <tr> 3019 <th>Feature</th> 3020 <th class="our-col">PDFSign</th> 3021 <th>SignFiles.com</th> 3022 <th>eMudhra SignX</th> 3023 <th>Online tools<br/><small style="font-weight:400;font-size:11px;">(DocuSign, SmallPDF etc.)</small></th> 3024 </tr> 3025 </thead> 3026 <tbody> 3027 <tr> 3028 <td>Works fully offline</td> 3029 <td class="our-col"><span class="cmp-yes">â</span></td> 3030 <td><span class="cmp-yes">â</span></td> 3031 <td><span class="cmp-part">
3031Partial</span></td> 3032 <td><span class="cmp-no">â</span></td> 3033 </tr> 3034 <tr> 3035 <td>USB DSC token signing</td> 3036 <td class="our-col"><span class="cmp-yes">â</span></td> 3037 <td><span class="cmp-yes">â</span></td> 3038 <td><span class="cmp-yes">â</span></td> 3039 <td><span class="cmp-no">â</span></td> 3040 </tr> 3041 <tr> 3042 <td>Signature & stamp image mode</td> 3043 <td class="our-col"><span class="cmp-yes">â</span></td> 3044 <td><span class="cmp-no">â</span></td> 3045 <td><span class="cmp-part">Limited</span></td> 3046 <td><span class="cmp-yes">â</span></td> 3047 </tr> 3048 <tr> 3049 <td>Bulk signing (folder)</td> 3050 <td class="our-col"><span class="cmp-yes">â</span></td> 3051 <td><span class="cmp-yes">â</span></td> 3052 <td><span class="cmp-part">Paid add-on</span></td> 3053 <td><span class="cmp-no">â</span></td> 3054 </tr> 3055 <tr> 3056 <td>PDF security & permissions</td> 3057 <td class="our-col"><span class="cmp-yes">â</span></td> 3058 <td><span class="cmp-no">â</span></td> 3059 <td><span class="cmp-no">â</span></td> 3060 <td><span class="cmp-part">Paid plans</span></td> 3061 </tr> 3062 <tr> 3063 <td>Pick position on PDF</td> 3064 <td class="our-col"><span class="cmp-yes">â</span></td> 3065 <td><span class="cmp-part">Grid only</span></td> 3066 <td><span class="cmp-part">Limited</span></td> 3067 <td><span class="cmp-yes">â</span></td> 3068 </tr> 3069 <tr> 3070 <td>RFC 3161 trusted timestamp</td> 3071 <td class="our-col"><span class="cmp-yes">â</span></td> 3072 <td><span class="cmp-no">â</span></td> 3073 <td><span class="cmp-yes">â</span></td> 3074 <td><span class="cmp-part">Some plans</span></td> 3075 </tr> 3076 <tr> 3077 <td>No Java / no browser plugin</td> 3078 <td class="our-col"><span class="cmp-yes">â</span></td> 3079 <td><span class="cmp-yes">â</span></td> 3080 <td><span class="cmp-no">â</span></td> 3081 <td><span class="cmp-yes">â</span></td> 3082 </tr> 3083 <tr> 3084 <td>Team licence (multi-seat)</td> 3085 <td class="our-col"><span class="cmp-yes">â</span></td> 3086 <td><span class="cmp-no">â</span></td> 3087 <td><span class="cmp-yes">â</span></td> 3088 <td><span class="cmp-yes">â</span></td> 3089 </tr> 3090 <tr> 3091 <td>For GeM / CPPP / NIC filings</td> 3092 <td class="our-col"><span class="cmp-yes">â</span></td> 3093 <td><span class="cmp-yes">â</span></td> 3094 <td><span class="cmp-yes">â</span></td> 3095 <td><span class="cmp-no">â</span></td> 3096 </tr> 3097 <tr> 3098 <td>Expired cert warning</td> 3099 <td class="our-col"><span class="cmp-yes">â</span></td> 3100 <td><span class="cmp-no">â</span></td> 3101 <td><span class="cmp-no">â</span></td> 3102 <td><span class="cmp-no">â</span></td> 3103 </tr> 3104 <tr> 3105 <td>Indian payment (UPI / Razorpay)</td> 3106 <td class="our-col"><span class="cmp-yes">â</span></td> 3107 <td><span class="cmp-no">â PayPal / card only</span></td> 3108 <td><span class="cmp-part">Varies</span></td> 3109 <td><span class="cmp-no">â USD only</span></td> 3110 </tr> 3111 <tr> 3112 <td>Free evaluation</td> 3113 <td class="our-col"><span class="cmp-yes">Yes</span></td> 3114 <td><span class="cmp-yes">30 days</span></td> 3115 <td><span class="cmp-part">Limited</span></td> 3116 <td><span class="cmp-yes">Free tier</span></td> 3117 </tr> 3118 <tr> 3119 <td>India-specific support & onboarding</td> 3120 <td class="our-col"><span class="cmp-yes">â WhatsApp + email</span></td> 3121 <td><span class="cmp-no">â Email only · EU-based</span></td> 3122 <td><span class="cmp-part">Varies</span></td> 3123 <td><span class="cmp-no">â</span></td> 3124 </tr> 3125 </tbody> 3126 </table> 3127 </div> 3128 <p style="text-align:center;font-size:13px;color:var(--muted);margin-top:20px;">Comparison based on publicly available information. Features subject to change. Last updated April 2026.</p> 3129 </div> 3130</section> 3131 3132<!-- âââ COMPARE (INTL) âââ --> 3133<section class="compare intl-only" id="compare-intl"> 3134 <div class="container"> 3135 <div style="text-align:center;"> 3136 <div class="section-tag">
3136How We Compare</div> 3137 <h2 class="section-title">PDFSign vs other PDF signing tools</h2> 3138 <p class="section-sub" style="margin:0 auto;">Cloud tools upload your documents to their servers. We don't. Here's how PDFSign stacks up.</p> 3139 </div> 3140 <div class="compare-table-wrap"> 3141 <table class="compare-table"> 3142 <thead> 3143 <tr> 3144 <th>Feature</th> 3145 <th class="our-col">PDFSign</th> 3146 <th>DocuSign</th> 3147 <th>Adobe Acrobat</th> 3148 <th>Smallpdf / Online tools</th> 3149 </tr> 3150 </thead> 3151 <tbody> 3152 <tr> 3153 <td>Works fully offline</td> 3154 <td class="our-col"><span class="cmp-yes">â</span></td> 3155 <td><span class="cmp-no">â</span></td> 3156 <td><span class="cmp-part">Partial</span></td> 3157 <td><span class="cmp-no">â</span></td> 3158 </tr> 3159 <tr> 3160 <td>Documents never uploaded to cloud</td> 3161 <td class="our-col"><span class="cmp-yes">â</span></td> 3162 <td><span class="cmp-no">â</span></td> 3163 <td><span class="cmp-no">â</span></td> 3164 <td><span class="cmp-no">â</span></td> 3165 </tr> 3166 <tr> 3167 <td>USB hardware token (Windows driver)</td> 3168 <td class="our-col"><span class="cmp-yes">â</span></td> 3169 <td><span class="cmp-no">â</span></td> 3170 <td><span class="cmp-part">Limited</span></td> 3171 <td><span class="cmp-no">â</span></td> 3172 </tr> 3173 <tr> 3174 <td>Bulk signing (folder)</td> 3175 <td class="our-col"><span class="cmp-yes">â</span></td> 3176 <td><span class="cmp-no">â</span></td> 3177 <td><span class="cmp-part">Paid add-on</span></td> 3178 <td><span class="cmp-no">â</span></td> 3179 </tr> 3180 <tr> 3181 <td>RFC 3161 trusted timestamp</td> 3182 <td class="our-col"><span class="cmp-yes">â</span></td> 3183 <td><span class="cmp-part">Some plans</span></td> 3184 <td><span class="cmp-yes">â</span></td> 3185 <td><span class="cmp-no">â</span></td> 3186 </tr> 3187 <tr> 3188 <td>One-time purchase option</td> 3189 <td class="our-col"><span class="cmp-yes">â</span></td> 3190 <td><span class="cmp-no">â Subscription only</span></td> 3191 <td><span class="cmp-no">â Subscription only</span></td> 3192 <td><span class="cmp-no">â Per-doc fees</span></td> 3193 </tr> 3194 <tr> 3195 <td>GDPR-friendly (no data stored)</td> 3196 <td class="our-col"><span class="cmp-yes">â</span></td> 3197 <td><span class="cmp-part">Partial</span></td> 3198 <td><span class="cmp-part">Partial</span></td> 3199 <td><span class="cmp-no">â</span></td> 3200 </tr> 3201 <tr> 3202 <td>Signature & stamp image mode</td> 3203 <td class="our-col"><span class="cmp-yes">â</span></td> 3204 <td><span class="cmp-yes">â</span></td> 3205 <td><span class="cmp-yes">â</span></td> 3206 <td><span class="cmp-yes">â</span></td> 3207 </tr> 3208 <tr> 3209 <td>Team licence (multi-seat)</td> 3210 <td class="our-col"><span class="cmp-yes">â</span></td> 3211 <td><span class="cmp-yes">â</span></td> 3212 <td><span class="cmp-yes">â</span></td> 3213 <td><span class="cmp-yes">â</span></td> 3214 </tr> 3215 <tr> 3216 <td>No Java / no browser plugin</td> 3217 <td class="our-col"><span class="cmp-yes">â</span></td> 3218 <td><span class="cmp-yes">â</span></td> 3219 <td><span class="cmp-yes">â</span></td> 3220 <td><span class="cmp-yes">â</span></td> 3221 </tr> 3222 <tr> 3223 <td>Free evaluation</td> 3224 <td class="our-col"><span class="cmp-yes">Yes</span></td> 3225 <td><span class="cmp-yes">30 days</span></td> 3226 <td><span class="cmp-yes">7 days</span></td> 3227 <td><span class="cmp-yes">Free tier</span></td> 3228 </tr> 3229 <tr> 3230 <td>Starting price</td> 3231 <td class="our-col"><span class="cmp-yes">$2.99 / month</span></td> 3232 <td><span class="cmp-no">$15+ / month</span></td> 3233 <td><span class="cmp-no">$23+ / month</span></td> 3234 <td><span class="cmp-part">$12+ / month</span></td> 3235 </tr> 3236 </tbody> 3237 </table> 3238 </div> 3239 <p style="text-align:center;font-size:13px;color:var(--muted);margin-top:20px;">Comparison based on publicly available information. Features subject to change. Last updated May 2026.</p> 3240 </div> 3241</section> 3242 3243<!-- âââ PRICING âââ --> 3244<section class="pricing" id="pricing"> 3245 <div class="container"> 3246 <div class="pricing-header"> 3247 <div class="section-tag">
3247Pricing</div> 3248 <h2 class="section-title">Simple, honest pricing</h2> 3249 <p class="section-sub">Start free. Upgrade only if it works for you.</p> 3250 <p class="section-sub" style="margin-top:6px;color:#64748b;font-size:14px;">Used by professionals who can't afford signing failures. No per-signature fees. No hidden charges.</p> 3251 <div class="plan-toggle-row" style="margin-top:28px;"> 3252 <button class="plan-toggle-btn active" id="btnSolo" onclick="setPlanMode('solo')">Solo</button> 3253 <button class="plan-toggle-btn" id="btnTeam" onclick="setPlanMode('team')">Team (5 seats)</button> 3254 </div> 3255 <p class="plan-seats-note plan-team-note" id="teamNote">5-seat licence for your firm or office â one shared key, 5 Windows PCs</p> 3256 </div><!-- /pricing-header --> 3257 3258 <div class="pricing-grid" id="pricingGrid"> 3259 3260 <!-- Monthly --> 3261 <div class="plan-card" id="cardMonthly"> 3262 <div class="plan-name">Monthly</div> 3263 <div class="plan-price"> 3264 <span class="plan-currency">â¹</span> 3265 <span class="plan-amount" id="priceMonthly">99</span> 3266 <span class="plan-period">/month</span> 3267 </div> 3268 <p class="plan-desc">
3268For occasional signers who need flexibility to start or stop any time.</p> 3269 <div class="plan-divider"></div> 3270 <ul class="plan-features"> 3271 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>Unlimited PDF signings</li> 3272 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>All DSC tokens supported</li> 3273 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>1 Windows device</li> 3274 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>Email support</li> 3275 </ul> 3276 <a href="#pricing" class="plan-btn plan-btn-outline" id="btnMonthly" onclick="return handlePlanClick(event,'monthly')">Get Monthly Plan</a> 3277 <p style="font-size:12px;color:var(--muted);text-align:center;margin-top:8px;" id="monthlyTeamNote" class="plan-team-note">Solo only â team not available monthly</p> 3278 </div> 3279 3280 <!-- Annual (Featured) --> 3281 <div class="plan-card featured"> 3282 <div class="plan-badge">ð¥ Most Popular</div> 3283 <div class="plan-name">Annual</div> 3284 <div class="plan-price"> 3285 <span class="plan-currency">â¹</span> 3286 <span class="plan-amount" id="priceAnnual">999</span> 3287 <span class="plan-period">/year</span> 3288 </div> 3289 <p class="plan-desc" id="descAnnual">Save â¹189 vs monthly. Best value for regular signers.</p> 3290 <div class="plan-divider"></div> 3291 <ul class="plan-features"> 3292 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>Unlimited PDF signings</li> 3293 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>All DSC tokens supported</li> 3294 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span><span id="devicesAnnual">1 Windows device</span></li> 3295 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>Priority email support</li> 3296 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>Free upgrades for 1 year</li> 3297 </ul> 3298 <a href="#pricing" class="plan-btn plan-btn-solid" id="btnAnnual" onclick="return handlePlanClick(event,'yearly')">Get Annual Plan</a> 3299 </div> 3300 3301 <!-- Lifetime --> 3302 <div class="plan-card"> 3303 <div class="plan-name">Lifetime</div> 3304 <div class="plan-price"> 3305 <span class="plan-currency">â¹</span> 3306 <span class="plan-amount" id="priceLifetime">4,999</span> 3307 <span class="plan-period">one-time</span> 3308 </div> 3309 <p class="plan-desc" id="descLifetime">Pay once, use forever. Ideal for firms and power users who sign daily.</p> 3310 <div class="plan-divider"></div> 3311 <ul class="plan-features"> 3312 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>Unlimited PDF signings</li> 3313 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>All DSC tokens supported</li> 3314 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span><span id="devicesLifetime">1 Windows device</span></li> 3315 <li><span class="check">
3315<svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>Lifetime upgrades</li> 3316 <li><span class="check"><svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><polyline points="20,6 9,17 4,12"/></svg></span>Priority + WhatsApp support</li> 3317 </ul> 3318 <a href="#pricing" class="plan-btn plan-btn-outline" id="btnLifetime" onclick="return handlePlanClick(event,'lifetime')">Get Lifetime Access</a> 3319 </div> 3320 3321 </div> 3322 3323 <p class="pricing-note" id="pricingNote"> 3324 All prices are inclusive of GST · Free evaluation included · Payments via Razorpay (UPI, Cards, Net Banking) · GST invoice sent automatically to your email 3325 </p> 3326 </div> 3327</section> 3328 3329<!-- ââ International Checkout Modal ââ --> 3330<div id="intlCheckoutModal" role="dialog" aria-modal="true" aria-labelledby="intlModalTitle"> 3331 <div class="intl-modal-box"> 3332 <div style="font-size:2.5rem;margin-bottom:.75rem;">ð</div> 3333 <h3 id="intlModalTitle">International Purchase</h3> 3334 <p>Enter your details and we'll send your license key right after payment. No account needed.</p> 3335 <div class="intl-modal-err" id="intlErr"></div> 3336 <input type="text" id="intlName" placeholder="Your name (optional)" autocomplete="name" /> 3337 <input type="email" id="intlEmail" placeholder="Email address (required)" autocomplete="email" /> 3338 <input type="tel" id="intlPhone" placeholder="Mobile with country code, e.g. +1 415 555 0123 (required)" autocomplete="tel" /> 3339 <button class="intl-modal-pay-btn" id="intlPayBtn" onclick="submitIntlCheckout()"> 3340 Continue to Payment 3341 </button> 3342 <a class="intl-modal-close-link" onclick="closeIntlModal()">Cancel</a> 3343 </div> 3344</div> 3345 3346<!-- âââ TRUST STRIP âââ --> 3347<section class="trust-strip" id="trust"> 3348 <div class="container"> 3349 <!-- India header --> 3350 <div style="text-align:center;" class="india-only"> 3351 <div class="section-tag">Built for Indian Professionals</div> 3352 <h2 class="section-title">What PDFSign handles for you</h2> 3353 <p class="section-sub" style="margin:0 auto;">Every feature is built around real signing workflows in India â tenders, audits, legal filings, GST, and export documents.</p> 3354 </div> 3355 <!-- International header --> 3356 <div style="text-align:center;" class="intl-only"> 3357 <div class="section-tag">Built for Privacy-Conscious Professionals</div> 3358 <h2 class="section-title">What PDFSign handles for you</h2> 3359 <p class="section-sub" style="margin:0 auto;">Built for professionals who handle sensitive documents â contracts, NDAs, filings, audits â and need PKI signatures without trusting a cloud server.</p> 3360 </div> 3361 3362 <!-- India trust cards --> 3363 <div class="trust-grid india-only"> 3364 <div class="trust-card"> 3365 <div class="trust-icon-wrap">ðï¸</div> 3366 <div class="trust-card-body"> 3367 <h4>Tender Submissions</h4> 3368 <p>Bulk sign all bid documents in one go â for GeM, CPPP and NIC e-Procurement submissions.</p> 3369 </div> 3370 </div> 3371 <div class="trust-card"> 3372 <div class="trust-icon-wrap">ð</div> 3373 <div class="trust-card-body"> 3374 <h4>CA & Audit Work</h4> 3375 <p>Sign audit reports, balance sheets, and ITR documents. Organisation DSC supported.</p> 3376 </div> 3377 </div> 3378 <div class="trust-card"> 3379 <div class="trust-icon-wrap">âï¸</div> 3380 <div class="trust-card-body"> 3381 <h4>Legal & Court Filings</h4> 3382 <p>Sign affidavits, plaints and agreements with your CCA-issued Class 3 DSC.</p> 3383 </div> 3384 </div> 3385 <div class="trust-card"> 3386 <div class="trust-icon-wrap">ð</div> 3387 <div class="trust-card-body"> 3388 <h4>GST & Export Docs</h4> 3389 <p>Sign GST invoices, LC documents, and DGFT filings. Batch mode saves hours.</p> 3390 </div> 3391 </div> 3392 <div class="trust-card"> 3393 <div class="trust-icon-wrap">ð¢</div> 3394 <div class="trust-card-body"> 3395 <h4>Corporate Agreements</h4> 3396 <p>Sign NDAs, vendor contracts, offer letters, and MoUs with signature stamp or DSC.</p> 3397 </div> 3398 </div> 3399 <div class="trust-card"> 3400 <div class="trust-icon-wrap">ðï¸</div> 3401 <div class="trust-card-body"> 3402 <h4>Government & PSU</h4> 3403 <p>Sign official orders and certificates. Fully offline â documents never leave your PC.</p> 3404 </div> 3405 </div> 3406 </div> 3407 3408 <!-- International trust cards --> 3409 <div class="trust-grid intl-only"> 3410 <div class="trust-card"> 3411 <div class="trust-icon-wrap">ð</div> 3412 <div class="trust-card-body"> 3413 <h4>Privacy & GDPR Compliance</h4> 3414 <p>Documents never leave your Windows PC. No cloud upload, no server â fully GDPR-safe for sensitive client files.</p> 3415 </div> 3416 </div> 3417 <div class="trust-card"> 3418 <div class="trust-icon-wrap">âï¸</div> 3419 <div class="trust-card-body"> 3420 <h4>Legal & Compliance Filings</h4> 3421 <p>Sign contracts, NDAs, court filings and affidavits with the PKI certificate on your own token. What legal weight a signature carries depen
3421ds on your certificate and the rules where you file â not on the software.</p> 3422 </div> 3423 </div> 3424 <div class="trust-card"> 3425 <div class="trust-icon-wrap">ð</div> 3426 <div class="trust-card-body"> 3427 <h4>Accounting & Audit Reports</h4> 3428 <p>Sign financial statements, audit reports, and tax filings with your USB token. Bulk sign entire folders at once.</p> 3429 </div> 3430 </div> 3431 <div class="trust-card"> 3432 <div class="trust-icon-wrap">ð¢</div> 3433 <div class="trust-card-body"> 3434 <h4>Corporate Agreements</h4> 3435 <p>Sign NDAs, vendor contracts, offer letters, and MoUs. Use your USB PKI token or a signature stamp image.</p> 3436 </div> 3437 </div> 3438 <div class="trust-card"> 3439 <div class="trust-icon-wrap">ð¡ï¸</div> 3440 <div class="trust-card-body"> 3441 <h4>Document Protection</h4> 3442 <p>Restrict printing, editing, and copying. Add open passwords. Lock down PDFs before sending to clients or courts.</p> 3443 </div> 3444 </div> 3445 <div class="trust-card"> 3446 <div class="trust-icon-wrap">ð</div> 3447 <div class="trust-card-body"> 3448 <h4>Any PKI Token, Any Country</h4> 3449 <p>Works with SafeNet iKey, Thales, HID ActivKey, Gemalto, WD Pro, Feitian, and any DSC USB token whose Windows driver is installed.</p> 3450 </div> 3451 </div> 3452 </div> 3453 3454 <!-- India trust pills --> 3455 <div class="trust-capability india-only"> 3456 <span class="trust-pill"><span class="trust-pill-dot"></span>Adobe PKCS#7 · SHA-256</span> 3457 <span class="trust-pill"><span class="trust-pill-dot"></span>RFC 3161 trusted timestamp</span> 3458 <span class="trust-pill"><span class="trust-pill-dot"></span>Signs with your CCA-issued DSC</span> 3459 <span class="trust-pill"><span class="trust-pill-dot"></span>100% offline â no upload</span> 3460 <span class="trust-pill"><span class="trust-pill-dot"></span>All CCA-licensed DSC tokens</span> 3461 <span class="trust-pill"><span class="trust-pill-dot"></span>PDF security & permissions</span> 3462 <span class="trust-pill"><span class="trust-pill-dot"></span>Free evaluation</span> 3463 </div> 3464 <!-- International trust pills --> 3465 <div class="trust-capability intl-only"> 3466 <span class="trust-pill"><span class="trust-pill-dot"></span>Adobe PKCS#7 · SHA-256</span> 3467 <span class="trust-pill"><span class="trust-pill-dot"></span>RFC 3161 trusted timestamp</span> 3468 <span class="trust-pill"><span class="trust-pill-dot"></span>SHA-256 PKI signature, verifiable in Adobe</span> 3469 <span class="trust-pill"><span class="trust-pill-dot"></span>100% offline â GDPR-safe</span> 3470 <span class="trust-pill"><span class="trust-pill-dot"></span>Any DSC USB token with a Windows driver</span> 3471 <span class="trust-pill"><span class="trust-pill-dot"></span>PDF security & permissions</span> 3472 <span class="trust-pill"><span class="trust-pill-dot"></span>Free evaluation</span> 3473 </div> 3474 </div> 3475</section> 3476 3477<!-- âââ FAQ âââ --> 3478<section class="faq" id="faq"> 3479 <div class="container"> 3480 <div class="faq-header"> 3481 <div class="section-tag">FAQ</div> 3482 <h2 class="section-title">Common questions</h2> 3483 <p class="section-sub" style="margin:0 auto;">Everything you need to know before you sign your first PDF.</p> 3484 </div> 3485 <div class="faq-grid"> 3486 3487 <div class="faq-item open"> 3488 <button class="faq-q" onclick="toggleFaq(this)"> 3489 <span class="faq-q-icon">Q</span> 3490 <span class="faq-q-text">Why does DSC fail in other tools but work in PDFSign?</span> 3491 <span class="faq-toggle-icon">+</span> 3492 </button> 3493 <div class="faq-a-wrap"><p class="faq-a">Most tools rely on Java applets, browser plugins, or cloud servers â all of which break with Windows updates, Chrome security changes, or internet issues. PDFSign reads your certificate straight from the Windows certificate store and signs through Windows' own crypto layer, with no browser or Java in the middle. That's why it works reliably.</p></div> 3494 </div> 3495 3496 <div class="faq-item open"> 3497 <button class="faq-q" onclick="toggleFaq(this)">
3498 <span class="faq-q-icon">Q</span> 3499 <span class="faq-q-text">Which Windows versions are supported?</span> 3500 <span class="faq-toggle-icon">+</span> 3501 </button> 3502 <div class="faq-a-wrap"><p class="faq-a">PDFSign runs on Windows 10 and Windows 11 (64-bit). It requires .NET 10 Runtime, which the installer downloads automatically if not already present on your machine.</p></div> 3503 </div> 3504 3505 <div class="faq-item open"> 3506 <button class="faq-q" onclick="toggleFaq(this)"> 3507 <span class="faq-q-icon">Q</span> 3508 <span class="faq-q-text">Are my PDFs uploaded to your servers?</span> 3509 <span class="faq-toggle-icon">+</span> 3510 </button> 3511 <div class="faq-a-wrap"><p class="faq-a">No. Signing happens 100% on your machine. Your documents never leave your computer. We have no access to your files, your DSC token, or its private key â ever.</p></div> 3512 </div> 3513 3514 <!-- India-specific FAQ: government portal acceptance --> 3515 <div class="faq-item open india-only"> 3516 <button class="faq-q" onclick="toggleFaq(this)"> 3517 <span class="faq-q-icon">Q</span> 3518 <span class="faq-q-text">Will my signed PDFs be accepted on government portals?</span> 3519 <span class="faq-toggle-icon">+</span> 3520 </button> 3521 <div class="faq-a-wrap"><p class="faq-a">PDFSign signs with your USB DSC token and writes a standard Adobe detached PKCS#7 signature (SHA-256) â the format Acrobat and Indian portals read. Signed files were verified on GeM on 18 July 2026; CPPP, NIC e-Procurement, MCA21, Income Tax and DGFT are what customers file with but we have no dated test result for them, so tell us if one ever rejects a file. Note: PDFs signed with only a stamp or handwritten image (without a DSC token) are <em>not</em> digitally signed and may not be accepted on government procurement portals that require a valid Class 2 or Class 3 DSC.</p></div> 3522 </div> 3523 3524 <!-- International FAQ: legal validity --> 3525 <div class="faq-item open intl-only"> 3526 <button class="faq-q" onclick="toggleFaq(this)"> 3527 <span class="faq-q-icon">Q</span> 3528 <span class="faq-q-text">Are the digital signatures legally valid outside India?</span> 3529 <span class="faq-toggle-icon">+</span> 3530 </button> 3531 <div class="faq-a-wrap"><p class="faq-a">PDFSign signs with the X.509 certificate on your USB token and writes a standard Adobe detached PKCS#7 signature (/adbe.pkcs7.detached, SHA-256) that Adobe Acrobat verifies anywhere in the world. The legal weight comes from your certificate and the law where you file, not from the software â so we don't claim eIDAS, E-SIGN or any other statute on PDFSign's behalf. Two specifics worth knowing: PDFSign does not add eIDAS or ICP-Brasil policy identifiers to the signature, and EU qualified signatures additionally need a Qualified Certificate from a Qualified Trust Service Provider (QTSP). Our dated compatibility testing is on GeM (18 July 2026); we have not tested non-Indian government portals, so ask us before you commit to one.</p></div> 3532 </div> 3533 3534 <!-- International FAQ: GDPR --> 3535 <div class="faq-item open intl-only"> 3536 <button class="faq-q" onclick="toggleFaq(this)"> 3537 <span class="faq-q-icon">Q</span> 3538 <span class="faq-q-text">Is PDFSign GDPR-compliant? Does it upload my documents?</span> 3539 <span class="faq-toggle-icon">+</span> 3540 </button> 3541 <div class="faq-a-wrap"><p class="faq-a">Completely GDPR-safe. All signing happens entirely on your local Windows PC â your PDF is never uploaded to any server. We have zero access to your documents, your private key, or your signing PIN. The only data we collect is optional: your email address (if you enter it during purchase) and anonymous download counts. No document content ever leaves your machine.</p></div> 3542 </div> 3543 3544 <!-- India: DSC token brands | International: USB token brands --> 3545 <div class="faq-item india-only"> 3546 <button class="faq-q" onclick="toggleFaq(this)">
3547 <span class="faq-q-icon">Q</span> 3548 <span class="faq-q-text">Which DSC token brands are supported?</span> 3549 <span class="faq-toggle-icon">+</span> 3550 </button> 3551 <div class="faq-a-wrap"><p class="faq-a">PDFSign works with all major USB DSC tokens used in India â HyperPKI (HYP2003), ePass 2003/3003, Proxkey, Feitian, WD Pro, Watchdata, and any token from a CCA-licensed Indian CA whose Windows driver is installed.</p></div> 3552 </div> 3553 <div class="faq-item intl-only"> 3554 <button class="faq-q" onclick="toggleFaq(this)"> 3555 <span class="faq-q-icon">Q</span> 3556 <span class="faq-q-text">Which USB signing tokens are supported?</span> 3557 <span class="faq-toggle-icon">+</span> 3558 </button> 3559 <div class="faq-a-wrap"><p class="faq-a">PDFSign works with USB tokens that install a Windows driver â including SafeNet iKey, Thales Luna USB, HID ActivKey, Gemalto IDPrime, Feitian ePass, WD Pro and WatchData, from CAs worldwide. Install your token's Windows driver; once its certificate shows up in the Windows certificate store, PDFSign detects and uses it.</p></div> 3560 </div> 3561 3562 <div class="faq-item"> 3563 <button class="faq-q" onclick="toggleFaq(this)"> 3564 <span class="faq-q-icon">Q</span> 3565 <span class="faq-q-text">Do I need Java or browser plugins to use it?</span> 3566 <span class="faq-toggle-icon">+</span> 3567 </button> 3568 <div class="faq-a-wrap"><p class="faq-a">No. PDFSign is a native Windows desktop app. It requires no Java, no browser plugin, no admin rights, and no internet connection to sign PDFs.</p></div> 3569 </div> 3570 3571 <div class="faq-item"> 3572 <button class="faq-q" onclick="toggleFaq(this)"> 3573 <span class="faq-q-icon">Q</span> 3574 <span class="faq-q-text">Can I sign on behalf of a company (organisation certificate)?</span> 3575 <span class="faq-toggle-icon">+</span> 3576 </button> 3577 <div class="faq-a-wrap"><p class="faq-a">Yes. If your DSC token has an organisation certificate, PDFSign shows it as a signing option alongside your personal certificate. The visible signature stamp on the PDF page shows your name and signing date. The organisation name is visible inside the signature certificate details â anyone who opens the Signatures panel in Adobe Acrobat Reader will see your name, organisation, and issuing CA in the validation panel.</p></div> 3578 </div> 3579 3580 <div class="faq-item"> 3581 <button class="faq-q" onclick="toggleFaq(this)"> 3582 <span class="faq-q-icon">Q</span> 3583 <span class="faq-q-text">Can I sign PDFs without a DSC token (just a stamp or signature image)?</span> 3584 <span class="faq-toggle-icon">+</span> 3585 </button> 3586 <div class="faq-a-wrap"><p class="faq-a">Yes. PDFSign includes a Signature & Stamp Image mode. You can upload a PNG/JPG of your handwritten signature or company rubber stamp and embed it visually on any PDF page â no USB token required for this mode.</p></div> 3587 </div> 3588 3589 <div class="faq-item"> 3590 <button class="faq-q" onclick="toggleFaq(this)"> 3591 <span class="faq-q-icon">Q</span> 3592 <span class="faq-q-text">How does bulk signing work?</span> 3593 <span class="faq-toggle-icon">+</span> 3594 </button> 3595 <div class="faq-a-wrap"><p class="faq-a">Point PDFSign at a folder, enter your PIN once, and it signs every PDF in that folder automatically â applying the same certificate, signature position, and settings to all files. Signed copies are saved to your chosen output folder.</p></div> 3596 </div> 3597 3598 <div class="faq-item"> 3599 <button class="faq-q" onclick="toggleFaq(this)"> 3600 <span class="faq-q-icon">Q</span> 3601 <span class="faq-q-text">Can I restrict printing, editing, or copying of the signed PDF?</span> 3602 <span class="faq-toggle-icon">+</span> 3603 </button> 3604 <div class="faq-a-wrap"><p class="faq-a">Yes. PDFSign lets you set PDF permissions â restrict printing, editing, and content copying â and optionally add a document open password. These restrictions are enforced by Adobe Acrobat and compatible viewers.</p></div> 3605 </div> 3606 3607 <div class="faq-item"> 3608 <button class="faq-q" onclick="toggleFaq(this)">
3609 <span class="faq-q-icon">Q</span> 3610 <span class="faq-q-text">What is RFC 3161 timestamp and why does it matter?</span> 3611 <span class="faq-toggle-icon">+</span> 3612 </button> 3613 <div class="faq-a-wrap"><p class="faq-a">An optional RFC 3161 timestamp embeds a cryptographic proof of <em>when</em> the document was signed, obtained from a trusted Timestamp Authority (TSA) server. That lets a reader see the signature was made while your certificate was still valid, instead of relying on the clock on your PC. It is <em>not</em> long-term validation (LTV): PDFSign does not embed revocation data (OCSP/CRL) or a /DSS dictionary, so a verifier still fetches revocation information itself. The timestamp is also best-effort â if the TSA is unreachable, PDFSign tells you and completes the signature without one.</p></div> 3614 </div> 3615 3616 <div class="faq-item"> 3617 <button class="faq-q" onclick="toggleFaq(this)"> 3618 <span class="faq-q-icon">Q</span> 3619 <span class="faq-q-text">Can I choose exactly where the signature appears on the PDF?</span> 3620 <span class="faq-toggle-icon">+</span> 3621 </button> 3622 <div class="faq-a-wrap"><p class="faq-a">Yes. PDFSign offers two placement modes: a 9-position grid (top-left to bottom-right) or click-anywhere on the PDF page preview to drop the signature stamp at a precise location.</p></div> 3623 </div> 3624 3625 <div class="faq-item"> 3626 <button class="faq-q" onclick="toggleFaq(this)"> 3627 <span class="faq-q-icon">Q</span> 3628 <span class="faq-q-text">Is the licence tied to one computer?</span> 3629 <span class="faq-toggle-icon">+</span> 3630 </button> 3631 <div class="faq-a-wrap"><p class="faq-a">Solo licences (Monthly, Annual, Lifetime) are for 1 Windows device. Team licences cover 5 PCs â ideal for CA firms, law offices, and corporate teams. You can transfer a solo licence to a new PC by contacting support.</p></div> 3632 </div> 3633 3634 <div class="faq-item"> 3635 <button class="faq-q" onclick="toggleFaq(this)"> 3636 <span class="faq-q-icon">Q</span> 3637 <span class="faq-q-text">
3637What is the team plan and how does it work?</span> 3638 <span class="faq-toggle-icon">+</span> 3639 </button> 3640 <div class="faq-a-wrap"><p class="faq-a">The team plan (Annual â¹3,499/yr or Lifetime â¹13,999) covers 5 Windows PCs under one shared licence key. Each user in your firm gets their own copy of the app, activated with the same key. Ideal for CA firms, law offices, and tender-filing teams.</p></div> 3641 </div> 3642 3643 <div class="faq-item"> 3644 <button class="faq-q" onclick="toggleFaq(this)"> 3645 <span class="faq-q-icon">Q</span> 3646 <span class="faq-q-text">Does the app work without an internet connection after purchase?</span> 3647 <span class="faq-toggle-icon">+</span> 3648 </button> 3649 <div class="faq-a-wrap"><p class="faq-a">Yes. After licence activation (which requires internet once), the app works fully offline. PDF signing, batch processing, stamp image mode â all work without any internet connection.</p></div> 3650 </div> 3651 3652 <div class="faq-item"> 3653 <button class="faq-q" onclick="toggleFaq(this)"> 3654 <span class="faq-q-icon">Q</span> 3655 <span class="faq-q-text">What happens when my DSC token certificate expires?</span> 3656 <span class="faq-toggle-icon">+</span> 3657 </button> 3658 <div class="faq-a-wrap"><p class="faq-a">PDFSign warns you before you sign if your certificate has expired, so you're never caught off guard. If you had RFC 3161 timestamps on previously signed documents, those signatures remain valid. You'll need to renew your DSC from your CA to sign new documents.</p></div> 3659 </div> 3660 3661 <div class="faq-item"> 3662 <button class="faq-q" onclick="toggleFaq(this)"> 3663 <span class="faq-q-icon">Q</span> 3664 <span class="faq-q-text">Can I use PDFSign if I live outside India?</span> 3665 <span class="faq-toggle-icon">+</span> 3666 </button> 3667 <div class="faq-a-wrap"><p class="faq-a">Yes. PDFSign works on any Windows PC worldwide. If you hold an Indian DSC token issued by a CCA-licensed CA, you can sign Indian government documents from anywhere â UAE, UK, USA, Canada, Australia, or any other country. The software has no geo-restriction.</p></div> 3668 </div> 3669 3670 <div class="faq-item"> 3671 <button class="faq-q" onclick="toggleFaq(this)"> 3672 <span class="faq-q-icon">Q</span> 3673 <span class="faq-q-text">How do I verify a digitally signed PDF?</span> 3674 <span class="faq-toggle-icon">+</span> 3675 </button> 3676 <div class="faq-a-wrap"><p class="faq-a">PDFSign has a built-in Verify function. You can also open the PDF in Adobe Acrobat Reader and check the Signatures panel â it will show the certificate chain, signing time, and validity status. Signed PDFs also display a blue ribbon in Adobe when the signature is valid.</p></div> 3677 </div> 3678 3679 <div class="faq-item"> 3680 <button class="faq-q" onclick="toggleFaq(this)"> 3681 <span class="faq-q-icon">Q</span> 3682 <span class="faq-q-text">Is PDFSign free?</span> 3683 <span class="faq-toggle-icon">+</span> 3684 </button> 3685 <div class="faq-a-wrap"><p class="faq-a">Yes. Every download includes a free evaluation. You can evaluate PDFSign for up to 30 days or 100 signed PDFs (whichever comes first) before choosing a subscription.</p></div> 3686 </div> 3687 3688 <div class="faq-item"> 3689 <button class="faq-q" onclick="toggleFaq(this)"> 3690 <span class="faq-q-icon">Q</span> 3691 <span class="faq-q-text">Why is the evaluation limited?</span> 3692 <span class="faq-toggle-icon">+</span> 3693 </button> 3694 <div class="faq-a-wrap"><p class="faq-a">The purpose of the free evaluation is to let you verify that PDFSign works perfectly with your USB DSC token, PDF documents and signing workflow. If you regularly sign large numbers of PDFs, you can continue without interruption by upgrading to a paid plan.</p></div> 3695 </div> 3696 3697 <div class="faq-item"> 3698 <button class="faq-q" onclick="toggleFaq(this)"> 3699 <span class="faq-q-icon">Q</span>
3700 <span class="faq-q-text">What happens when my evaluation ends?</span> 3701 <span class="faq-toggle-icon">+</span> 3702 </button> 3703 <div class="faq-a-wrap"><p class="faq-a">Your documents, settings, saved signatures and templates remain safely stored on your computer. Only new PDF signing requires an active subscription.</p></div> 3704 </div> 3705 3706 <div class="faq-item"> 3707 <button class="faq-q" onclick="toggleFaq(this)"> 3708 <span class="faq-q-icon">Q</span> 3709 <span class="faq-q-text">What is your refund policy?</span> 3710 <span class="faq-toggle-icon">+</span> 3711 </button> 3712 <div class="faq-a-wrap"><p class="faq-a">PDFSign includes a free evaluation â up to 30 days or 100 signed PDFs â so you can fully evaluate it before buying. Because of that, all licence purchases are final and non-refundable, except where required by applicable law. See our <a href="/refund">Refund Policy</a> for details.</p></div> 3713 </div> 3714 3715 </div> 3716 </div> 3717</section> 3718 3719 3720<!-- âââ WHO IS IT FOR âââ --> 3721<section class="who-for india-only" id="who"> 3722 <div class="container"> 3723 <div style="text-align:center;"> 3724 <div class="section-tag">Made for Every Indian Professional</div> 3725 <h2 class="section-title">What can you use PDFSign for?</h2> 3726 <p class="section-sub" style="margin:0 auto;">From CA firms in Mumbai to contractors in Patna â anyone who needs to sign a PDF legally in India.</p> 3727 </div> 3728 3729 <div class="who-grid"> 3730 3731 <div class="who-card"> 3732 <span class="who-icon">ð</span> 3733 <h3>CA Firms & Accountants</h3> 3734 <p>Sign audit reports, balance sheets, ITR acknowledgements, and client documents daily.</p> 3735 <ul> 3736 <li>Bulk sign 100s of client PDFs</li> 3737 <li>Organisation certificate support</li> 3738 <li>Income Tax & MCA21 compliant</li> 3739 </ul> 3740 </div> 3741 3742 <div class="who-card"> 3743 <span class="who-icon">âï¸</span> 3744 <h3>Lawyers & Law Firms</h3> 3745 <p>Sign affidavits, plaints, legal notices, power of attorney, court filings, and contracts.</p> 3746 <ul> 3747 <li>Signs with your CCA-issued DSC</li> 3748 <li>Optional timestamp on the filing date</li> 3749 <li>Client agreement signing</li> 3750 </ul> 3751 </div> 3752 3753 <div class="who-card"> 3754 <span class="who-icon">ðï¸</span> 3755 <h3>Contractors & Tender Filers</h3> 3756 <p>Sign tender documents, bid submissions, and project reports for GeM, CPPP, and state portals.</p> 3757 <ul> 3758 <li>Signed files verified on GeM</li> 3759 <li>Batch tender signing</li> 3760 <li>Classic PDF output portals can read</li> 3761 </ul> 3762 </div> 3763 3764 <div class="who-card"> 3765 <span class="who-icon">ð</span> 3766 <h3>MSMEs & Exporters</h3> 3767 <p>Sign GST invoices, export documents, LC documents, and compliance certificates.</p> 3768 <ul> 3769 <li>GST invoice signing</li> 3770 <li>Export documentation</li> 3771 <li>Bank & DGFT filings</li> 3772 </ul> 3773 </div> 3774 3775 <div class="who-card"> 3776 <span class="who-icon">ð¢</span> 3777 <h3>Corporate & HR Teams</h3> 3778 <p>Sign employment contracts, NDAs, vendor agreements, offer letters, and MoUs at scale.</p> 3779 <ul> 3780 <li>Contract & NDA signing</li> 3781 <li>Vendor onboarding docs</li> 3782 <li>Company stamp + signature</li> 3783 </ul> 3784 </div> 3785 3786 <div class="who-card"> 3787 <span class="who-icon">ðï¸</span> 3788 <h3>Government & PSU Staff</h3> 3789 <p>Sign official documents, orders, certificates, and reports for ministry and departmental use.</p> 3790 <ul> 3791 <li>All government portals</li> 3792 <li>NIC & NICSI compatible</li> 3793 <li>Offline â fully secure</li> 3794 </ul> 3795 </div> 3796 3797 </div> 3798 </div> 3799</section> 3800 3801<!-- âââ WHO FOR (INTL) âââ --> 3802<section class="who-for intl-only" id="who-intl"> 3803 <div class="container"> 3804 <div style="text-align:center;"> 3805 <div class="section-tag">For Professionals Worldwide</div> 3806 <h2 class="section-title">What can you use PDFSign for?</h2> 3807 <p class="section-sub" style="margin:0 auto;">From legal firms in London to accounting practices in Toronto â any professional who needs to sign PDFs with a hardware token, offline.</p> 3808 </div> 3809 3810 <div class="who-grid"> 3811 3812 <div class="who-card">
3813 <span class="who-icon">âï¸</span> 3814 <h3>Legal Professionals</h3> 3815 <p>Sign contracts, affidavits, court filings, NDAs, and legal notices with a cryptographically verifiable digital signature.</p> 3816 <ul> 3817 <li>Standard PKI signature, verifiable in Adobe Acrobat</li> 3818 <li>Optional RFC 3161 timestamp proving when you signed</li> 3819 <li>Offline â client documents never leave your office</li> 3820 </ul> 3821 </div> 3822 3823 <div class="who-card"> 3824 <span class="who-icon">ð</span> 3825 <h3>Accounting & CPA Firms</h3> 3826 <p>Bulk sign audit reports, financial statements, tax filings, and client documents at scale â without cloud upload.</p> 3827 <ul> 3828 <li>Sign hundreds of reports in one click</li> 3829 <li>Any USB PKI token supported</li> 3830 <li>100% offline â client data protected</li> 3831 </ul> 3832 </div> 3833 3834 <div class="who-card"> 3835 <span class="who-icon">ð¡ï¸</span> 3836 <h3>Compliance & Risk Teams</h3> 3837 <p>Sign regulatory submissions, compliance certificates, and audit evidence without cloud exposure.</p> 3838 <ul> 3839 <li>Air-gap secure â no documents uploaded</li> 3840 <li>GDPR-friendly by design</li> 3841 <li>Full audit trail via PKI signature</li> 3842 </ul> 3843 </div> 3844 3845 <div class="who-card"> 3846 <span class="who-icon">ð¥</span> 3847 <h3>Healthcare & Pharma</h3> 3848 <p>Sign patient consent forms, clinical trial documents, and regulatory submissions with a privacy-first approach.</p> 3849 <ul> 3850 <li>HIPAA-friendly â fully air-gapped</li> 3851 <li>No patient data ever leaves your network</li> 3852 <li>Bulk sign clinical documents instantly</li> 3853 </ul> 3854 </div> 3855 3856 <div class="who-card"> 3857 <span class="who-icon">ð¢</span> 3858 <h3>Corporate & M&A Teams</h3> 3859 <p>Sign board resolutions, shareholder agreements, vendor contracts, and merger documents securely.</p> 3860 <ul> 3861 <li>Company stamp + signature in one step</li> 3862 <li>Multi-signer team licences available</li> 3863 <li>Works with PKI hardware tokens that install a Windows driver</li> 3864 </ul> 3865 </div> 3866 3867 <div class="who-card"> 3868 <span class="who-icon">ð</span> 3869 <h3>IT & Security Professionals</h3> 3870 <p>Roll out token-based signing across your organisation with no cloud dependency and no browser plugins.</p> 3871 <ul> 3872 <li>Any DSC token with a Windows driver</li> 3873 <li>Zero cloud dependency</li> 3874 <li>Silent install for enterprise deployment</li> 3875 </ul> 3876 </div> 3877 3878 </div> 3879 </div> 3880</section> 3881 3882<!-- âââ INTERNATIONAL / DIASPORA âââ --> 3883<section class="intl india-only" id="international"> 3884 <div class="container"> 3885 <div style="text-align:center;"> 3886 <div class="section-tag">For Indians Abroad</div> 3887 <h2 class="section-title">Sign Indian documents from anywhere in the world</h2> 3888 <p class="section-sub" style="margin:0 auto;">If you hold an Indian DSC token, PDFSign works on your Windows PC â no matter which country you're in. Sign tender submissions, legal agreements, CA filings, and government documents from your office abroad.</p> 3889 </div> 3890 <div class="intl-grid"> 3891 <div class="intl-card"> 3892 <div class="intl-flag"><span class="fi fi-ae"></span></div> 3893 <h4>UAE & Gulf Region</h4> 3894 <p>NRI professionals filing documents for Indian property, business, or government portals.</p> 3895 </div> 3896 <div class="intl-card"> 3897 <div class="intl-flag"><span class="fi fi-gb"></span></div> 3898 <h4>United Kingdom</h4> 3899 <p>Indian diaspora submitting GeM bids, MCA filings, or legal documents back home.</p> 3900 </div> 3901 <div class="intl-card"> 3902 <div class="intl-flag"><span class="fi fi-us"></span></div> 3903 <h4>United States</h4> 3904 <p>Indian business owners and CA firms managing Indian corporate filings remotely.</p> 3905 </div> 3906 <div class="intl-card"> 3907 <div class="intl-flag"><span class="fi fi-ca"></span></div> 3908 <h4>Canada</h4> 3909 <p>NRI entrepreneurs and exporters who need to sign Indian trade and compliance documents.</p> 3910 </div> 3911 <div class="intl-card"> 3912 <div class="intl-flag"><span class="fi fi-au"></span></div> 3913 <h4>Australia</h4> 3914 <p>Indian professionals signing property, income tax, and business documents for India.</p> 3915 </div> 3916 <div class="intl-card"> 3917 <div class="intl-flag"><span class="intl-flag-globe">ð</span></div> 3918 <h4>Anywhere Else</h4> 3919 <p>PDFSign has no geo-restriction. If Windows runs on your PC, it works â fully offline.</p> 3920 </div> 3921 </div> 3922 <p class="intl-note">Your DSC token was issued in India â <strong>PDFSign makes it work wherever you are.</strong></p> 3923 </div> 3924</section> 3925 3926<!-- âââ ROADMAP âââ --> 3927<section class="roadmap india-only" id="roadmap">
3928 <div class="container"> 3929 <div style="text-align:center; margin-bottom: 48px;"> 3930 <div class="section-tag">What's Coming</div> 3931 <h2 class="section-title">Built for India. Growing with India.</h2> 3932 <p class="section-sub" style="margin: 0 auto; text-align: center;">We're on a mission to make digital signing accessible to every Indian professional. Here's what's live and what's coming.</p> 3933 </div> 3934 3935 <div class="roadmap-grid"> 3936 3937 <div class="roadmap-item"> 3938 <span class="roadmap-badge badge-live">Live Now</span> 3939 <div class="roadmap-icon-wrap">ð</div> 3940 <div class="roadmap-text"> 3941 <h4>Single & Batch PDF Signing</h4> 3942 <p>Sign one PDF or hundreds in a single click. Fully offline, standard Adobe PKCS#7 signature.</p> 3943 </div> 3944 </div> 3945 3946 <div class="roadmap-item"> 3947 <span class="roadmap-badge badge-live">Live Now</span> 3948 <div class="roadmap-icon-wrap">ð</div> 3949 <div class="roadmap-text"> 3950 <h4>All Major DSC Tokens Supported</h4> 3951 <p>HyperPKI, ePass, Proxkey, Feitian, WD Pro, Watchdata â plug in and sign instantly.</p> 3952 </div> 3953 </div> 3954 3955 <div class="roadmap-item soon"> 3956 <span class="roadmap-badge badge-soon">Coming Soon</span> 3957 <div class="roadmap-icon-wrap">ð®ð³</div> 3958 <div class="roadmap-text"> 3959 <h4>Hindi & Regional Language UI</h4> 3960 <p>Full Hindi interface for tier-2 and tier-3 city users. Marathi, Bengali, Tamil support planned.</p> 3961 </div> 3962 </div> 3963 3964 <div class="roadmap-item"> 3965 <span class="roadmap-badge badge-live">Live Now</span> 3966 <div class="roadmap-icon-wrap">ð¼ï¸</div> 3967 <div class="roadmap-text"> 3968 <h4>Signature & Stamp Image</h4> 3969 <p>Upload your handwritten signature or company rubber stamp image â embedded directly on any PDF page without a DSC token.</p> 3970 </div> 3971 </div> 3972 3973 <div class="roadmap-item"> 3974 <span class="roadmap-badge badge-live">Live Now</span> 3975 <div class="roadmap-icon-wrap">ð¥</div> 3976 <div class="roadmap-text"> 3977 <h4>Team Licences for Firms</h4> 3978 <p>5-seat team licences available for CA firms, law offices, and tender-filing teams â Annual â¹3,499 or Lifetime â¹13,999.</p> 3979 </div> 3980 </div> 3981 3982 <div class="roadmap-item soon"> 3983 <span class="roadmap-badge badge-soon">Coming Soon</span> 3984 <div class="roadmap-icon-wrap">ð¬</div> 3985 <div class="roadmap-text"> 3986 <h4>WhatsApp Licence Delivery</h4> 3987 <p>Get your licence key and renewal reminders directly on WhatsApp â no email needed.</p> 3988 </div> 3989 </div> 3990 3991 <div class="roadmap-item"> 3992 <span class="roadmap-badge badge-live">Live Now</span> 3993 <div class="roadmap-icon-wrap">ð¦</div> 3994 <div class="roadmap-text"> 3995 <h4>One-Click Install from Microsoft Store</h4> 3996 <p>Install in one click from the Microsoft Store â verified publisher, automatic updates. O
3996nce installed, signing runs entirely offline on your own PC. <a href="https://api.pdfsign.in/api/download" style="color:var(--green);text-decoration:underline;">Download now â</a></p> 3997 </div> 3998 </div> 3999 4000 <div class="roadmap-item"> 4001 <span class="roadmap-badge badge-live">Live Now</span> 4002 <div class="roadmap-icon-wrap">ð¤</div> 4003 <div class="roadmap-text"> 4004 <h4>DSC Reseller & Affiliate Programme</h4> 4005 <p>DSC token sellers, CA consultants, and IT professionals â partner with PDFSign and earn on every licence you refer. <a href="/reseller-portal" style="color:var(--green);text-decoration:underline;">Enquire now â</a></p> 4006 </div> 4007 </div> 4008 4009 </div> 4010 </div> 4011</section> 4012 4013<!-- âââ ROADMAP (INTL) âââ --> 4014<section class="roadmap intl-only" id="roadmap-intl"> 4015 <div class="container"> 4016 <div style="text-align:center; margin-bottom: 48px;"> 4017 <div class="section-tag">What's Coming</div> 4018 <h2 class="section-title">Built for privacy. Growing globally.</h2> 4019 <p class="section-sub" style="margin: 0 auto; text-align: center;">We're on a mission to make offline digital signing accessible to every professional worldwide. Here's what's live and what's coming.</p> 4020 </div> 4021 4022 <div class="roadmap-grid"> 4023 4024 <div class="roadmap-item"> 4025 <span class="roadmap-badge badge-live">Live Now</span> 4026 <div class="roadmap-icon-wrap">ð</div> 4027 <div class="roadmap-text"> 4028 <h4>Single & Batch PDF Signing</h4> 4029 <p>Sign one PDF or hundreds in a single click. Fully offline, standard Adobe PKCS#7 signature.</p> 4030 </div> 4031 </div> 4032 4033 <div class="roadmap-item"> 4034 <span class="roadmap-badge badge-live">Live Now</span> 4035 <div class="roadmap-icon-wrap">ð</div> 4036 <div class="roadmap-text"> 4037 <h4>Any DSC USB Token With a Windows Driver</h4> 4038 <p>HyperPKI, ePass, Feitian, SafeNet, Gemalto, Yubikey â plug in any hardware token and sign instantly.</p> 4039 </div> 4040 </div> 4041 4042 <div class="roadmap-item soon"> 4043 <span class="roadmap-badge badge-soon">Coming Soon</span> 4044 <div class="roadmap-icon-wrap">ð</div> 4045 <div class="roadmap-text"> 4046 <h4>Multi-language UI</h4> 4047 <p>German, French, Spanish, and Portuguese interface planned. Localised for European and global markets.</p> 4048 </div> 4049 </div> 4050 4051 <div class="roadmap-item"> 4052 <span class="roadmap-badge badge-live">Live Now</span> 4053 <div class="roadmap-icon-wrap">ð¼ï¸</div> 4054 <div class="roadmap-text"> 4055 <h4>Signature & Stamp Image</h4> 4056 <p>Upload your handwritten signature or company seal image â embedded directly on any PDF page without a hardware token.</p> 4057 </div> 4058 </div> 4059 4060 <div class="roadmap-item"> 4061 <span class="roadmap-badge badge-live">Live Now</span> 4062 <div class="roadmap-icon-wrap">ð¥</div> 4063 <div class="roadmap-text"> 4064 <h4>Team Licences for Firms</h4> 4065 <p>5-seat team licences for law firms, accounting practices, and compliance teams â billed annually or lifetime.</p> 4066 </div> 4067 </div> 4068 4069 <div class="roadmap-item soon"> 4070 <span class="roadmap-badge badge-soon">Coming Soon</span> 4071 <div class="roadmap-icon-wrap">ð</div> 4072 <div class="roadmap-text"> 4073 <h4>macOS Support</h4> 4074 <p>Native macOS app in development. Sign PDFs with your hardware token on Mac â fully offline, no cloud.</p> 4075 </div> 4076 </div> 4077 4078 <div class="roadmap-item"> 4079 <span class="roadmap-badge badge-live">Live Now</span> 4080 <div class="roadmap-icon-wrap">ð¦</div> 4081 <div class="roadmap-text"> 4082 <h4>One-Click Install from Microsoft Store</h4> 4083 <p>Install in one click from the Microsoft Store â Microsoft-verified publisher, automatic updates. O
4083nce installed, signing runs entirely offline; your documents never leave your computer. <a href="https://api.pdfsign.in/api/download" style="color:var(--green);text-decoration:underline;">Download now â</a></p> 4084 </div> 4085 </div> 4086 4087 <div class="roadmap-item"> 4088 <span class="roadmap-badge badge-live">Live Now</span> 4089 <div class="roadmap-icon-wrap">ð¤</div> 4090 <div class="roadmap-text"> 4091 <h4>Global Reseller Programme</h4> 4092 <p>Token resellers and IT consultants worldwide â partner with PDFSign and earn on every licence you refer. <a href="/reseller-portal" style="color:var(--green);text-decoration:underline;">Enquire now â</a></p> 4093 </div> 4094 </div> 4095 4096 </div> 4097 </div> 4098</section> 4099 4100<!-- âââ CTA BAND âââ --> 4101<section class="cta-band india-only"> 4102 <div class="cta-band-inner"> 4103 <h2>Stop struggling with DSC errors.<br>Start signing in seconds.</h2> 4104 <p>Download now and sign your first PDF in under 1 minute. No credit card required. Works with the DSC token you already have.</p> 4105 <div class="cta-actions"> 4106 <a href="https://api.pdfsign.in/api/download" class="btn-primary-lg"> 4107 <svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7,10 12,15 17,10"/><line x1="12" y1="15" x2="12" y2="3"/></svg> 4108 Download Now 4109 </a> 4110 <a href="/cdn-cgi/l/email-protection#e38b868f93a3938785908a848dcd8a8d" style="color:#ffffff;font-size:15px;font-weight:500;text-decoration:underline;opacity:0.9;"><span class="__cf_email__" data-cfemail="95fdf0f9e5d5e5f1f3e6fcf2fbbbfcfb">[email protected]</span></a> 4111 </div> 4112 <p class="cta-footnote">For Windows 10 & 11 · Free evaluation â up to 30 days or 100 signed PDFs · No credit card needed</p> 4113 </div> 4114</section> 4115 4116<!-- âââ CTA BAND (INTL) âââ --> 4117<section class="cta-band intl-only"> 4118 <div class="cta-band-inner"> 4119 <h2>Stop uploading confidential documents<br>to cloud servers.</h2> 4120 <p>Sign any PDF offline, in seconds. Your documents never leave your computer. Works with any USB security token worldwide.</p> 4121 <div class="cta-actions"> 4122 <a href="https://api.pdfsign.in/api/download" class="btn-primary-lg"> 4123 <svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7,10 12,15 17,10"/><line x1="12" y1="15" x2="12" y2="3"/></svg> 4124 Download Free Evaluation 4125 </a> 4126 <a href="mailto:[email protected]" style="color:#ffffff;font-size:15px;font-weight:500;text-decoration:underline;opacity:0.9;">[email protected]</a> 4127 </div> 4128 <p class="cta-footnote">For Windows 10 & 11 · Free evaluation â up to 30 days or 100 signed PDFs · No credit card needed</p> 4129 </div> 4130</section> 4131 4132<!-- âââ FEEDBACK STRIP âââ --> 4133<section class="feedback-strip"> 4134 <div style="max-width:600px;margin:0 auto;"> 4135 <h3>How is PDFSign working for you?</h3> 4136 <p>Your feedback helps us improve. Takes less than 1 minute.</p> 4137 <div class="feedback-actions"> 4138 <!-- Primary: WhatsApp (works today, no setup needed) --> 4139 <!-- Replace the wa.me link below with a Google Form URL when ready --> 4140 <a href="https://wa.me/917057413999?text=Feedback%20for%20PDFSign%3A%20" target="_blank" rel="noopener" class="btn-feedback-wa"> 4141 <svg width="18" height="18" fill="white" viewBox="0 0 24 24"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z"/><path d="M11.999 2C6.477 2 2 6.477 2 12c0 1.89.525 3.66 1.438 5.168L2 22l4.978-1.413A9.96 9.96 0 0 0 12 22c5.523 0 10-4.477 10-10S17.523 2 12 2z" fill="none" stroke="white" stroke-width="1.5"/></svg> 4142 Share Feedback on WhatsApp 4143 </a> 4144 <a href="mailto:[email protected]?subject=PDFSign%20Feedback" class="btn-feedback-email"> 4145 <svg width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
4145<path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg> 4146 Send an Email 4147 </a> 4148 </div> 4149 </div> 4150</section> 4151 4152<!-- âââ BLOG ARTICLES âââ --> 4153<section class="india-only" style="background:#f8fafc;padding:80px 0;"> 4154 <div class="container"> 4155 <div style="text-align:center;margin-bottom:48px;"> 4156 <div class="section-tag">Guides & Tutorials</div> 4157 <h2 class="section-title">Learn PDF signing with your DSC token</h2> 4158 <p class="section-sub" style="margin:0 auto;">Step-by-step guides covering every DSC token, portal, and signing scenario.</p> 4159 </div> 4160 <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:40px;"> 4161 4162 <a href="/blog/digitally-sign-pdf-dsc-token-step-by-step.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4163 <span style="font-size:11px;font-weight:700;color:#16A34A;text-transform:uppercase;letter-spacing:.5px;">Step-by-step Guide</span> 4164 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">How to Digitally Sign a PDF with DSC Token</span> 4165 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">Complete walkthrough â select certificate, place signature, verify. Works with all Indian DSC tokens.</span> 4166 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4167 </a> 4168 4169 <a href="/blog/dsc-token-not-detected-windows-11-fix.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4170 <span style="font-size:11px;font-weight:700;color:#2563EB;text-transform:uppercase;letter-spacing:.5px;">Troubleshooting</span> 4171 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">DSC Token Not Detected on Windows 11 â Fix</span> 4172 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">Driver issues, USB port conflicts, PKCS#11 errors â solved step by step for Windows 11.</span> 4173 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4174 </a> 4175 4176 <a href="/blog/how-to-sign-gem-portal-documents-dsc.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4177 <span style="font-size:11px;font-weight:700;color:#7C3AED;text-transform:uppercase;letter-spacing:.5px;">Government Portal</span> 4178 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">How to Sign GeM Portal Documents with DSC</span> 4179 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">Sign GeM bids, purchase orders, and supplier agreements using your DSC token on Windows.</span> 4180 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4181 </a> 4182 4183 <a href="/blog/bulk-sign-multiple-pdf-files-at-once.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4184 <span style="font-size:11px;font-weight:700;color:#EA580C;text-transform:uppercase;letter-spacing:.5px;">Productivity</span> 4185 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">Bulk Sign Multiple PDF Files at Once</span>
4186 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">Sign 10, 50, or 500 PDFs in one batch â ideal for CA firms, legal teams, and exporters.</span> 4187 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4188 </a> 4189 4190 <a href="/blog/best-pdf-signing-software-india-2026.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4191 <span style="font-size:11px;font-weight:700;color:#0891B2;text-transform:uppercase;letter-spacing:.5px;">Comparison</span> 4192 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">Best PDF Signing Software in India 2026</span> 4193 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">Honest comparison of eMudhra Signer, Capricorn, Adobe, and PDFSign â features, cost, and compliance.</span> 4194 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4195 </a> 4196 4197 <a href="/blog/digital-signature-valid-after-dsc-expiry.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4198 <span style="font-size:11px;font-weight:700;color:#16A34A;text-transform:uppercase;letter-spacing:.5px;">Legal & Compliance</span> 4199 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">Is a Digital Signature Valid After DSC Expiry?</span> 4200 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">What happens to documents signed before your certificate expired â legal status under IT Act 2000.</span> 4201 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4202 </a> 4203 4204 </div> 4205 <div style="text-align:center;"> 4206 <a href="/blog/" style="display:inline-flex;align-items:center;gap:8px;background:#1B2A47;color:#fff;padding:12px 28px;border-radius:8px;font-weight:600;font-size:.95rem;text-decoration:none;"> 4207 View all articles â 4208 </a> 4209 </div> 4210 </div> 4211</section> 4212 4213<!-- âââ LEARN (INTL) âââ --> 4214<section class="intl-only" style="background:#f8fafc;padding:80px 0;"> 4215 <div class="container"> 4216 <div style="text-align:center;margin-bottom:48px;"> 4217 <div class="section-tag">Guides & Tutorials</div> 4218 <h2 class="section-title">Learn offline PDF signing with a hardware token</h2> 4219 <p class="section-sub" style="margin:0 auto;">Step-by-step guides for legal, compliance, and accounting professionals who sign with USB tokens.</p> 4220 </div> 4221 <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:40px;"> 4222 4223 <a href="/blog/digitally-sign-pdf-dsc-token-step-by-step.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4224 <span style="font-size:11px;font-weight:700;color:#16A34A;text-transform:uppercase;letter-spacing:.5px;">Step-by-step Guide</span> 4225 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">How to Sign a PDF with a USB Hardware Token</span> 4226 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">Complete walkthrough â select certificate, place signature, verify. Works with DSC tokens worldwide once the Windows driver is installed.</span> 4227 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4228 </a> 4229 4230 <a href="/blog/sign-pdf-offline-without-cloud.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;
4230transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4231 <span style="font-size:11px;font-weight:700;color:#2563EB;text-transform:uppercase;letter-spacing:.5px;">Privacy & Security</span> 4232 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">How to Sign PDFs Offline Without Cloud Upload</span> 4233 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">Keep confidential documents off cloud servers â how offline signing works and why it matters for compliance.</span> 4234 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4235 </a> 4236 4237 <a href="/blog/bulk-sign-multiple-pdf-files-at-once.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4238 <span style="font-size:11px;font-weight:700;color:#EA580C;text-transform:uppercase;letter-spacing:.5px;">Productivity</span> 4239 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">Bulk Sign Multiple PDF Files at Once</span> 4240 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">Sign 10, 50, or 500 PDFs in one batch â ideal for accounting firms, legal teams, and compliance departments.</span> 4241 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4242 </a> 4243 4244 <a href="/blog/digital-signature-valid-after-dsc-expiry.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4245 <span style="font-size:11px;font-weight:700;color:#16A34A;text-transform:uppercase;letter-spacing:.5px;">Legal & Compliance</span> 4246 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">Is a Digital Signature Valid After Certificate Expiry?</span> 4247 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">How RFC 3161 timestamps preserve the legal validity of documents signed before your certificate expired.</span> 4248 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4249 </a> 4250 4251 <a href="/blog/rfc-3161-timestamp-pdf-india.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4252 <span style="font-size:11px;font-weight:700;color:#7C3AED;text-transform:uppercase;letter-spacing:.5px;">Technical</span> 4253 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">RFC 3161 Trusted Timestamps â What They Are & Why They Matter</span> 4254 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">How timestamps prove your document was signed at a specific point in time â essential for legal and regulatory validity.</span> 4255 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4256 </a> 4257 4258 <a href="/blog/digital-signature-vs-electronic-signature.html" style="text-decoration:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s;" onmouseover="this.style.boxShadow='0 4px 20px rgba(0,0,0,0.08)'" onmouseout="this.style.boxShadow='none'"> 4259 <span style="font-size:11px;font-weight:700;color:#0891B2;text-transform:uppercase;letter-spacing:.5px;">Legal</span> 4260 <span style="font-size:1rem;font-weight:700;color:#1B2A47;line-height:1.4;">Digital Signature vs Electronic Signature â What's the Difference?</span>
4261 <span style="font-size:.875rem;color:#64748b;line-height:1.5;">A clear breakdown of PKI digital signatures vs simple e-signatures â legal weight, verification, and when you need each.</span> 4262 <span style="font-size:.8rem;color:#16A34A;font-weight:600;margin-top:auto;">Read guide â</span> 4263 </a> 4264 4265 </div> 4266 <div style="text-align:center;"> 4267 <a href="/blog/" style="display:inline-flex;align-items:center;gap:8px;background:#1B2A47;color:#fff;padding:12px 28px;border-radius:8px;font-weight:600;font-size:.95rem;text-decoration:none;"> 4268 View all articles â 4269 </a> 4270 </div> 4271 </div> 4272</section> 4273 4274<!-- âââ FOOTER âââ --> 4275<footer> 4276 <div class="footer-inner"> 4277 <div class="footer-top"> 4278 <div class="footer-brand"> 4279 <a href="#" class="logo"> 4280 <svg class="logo-mark" width="38" height="38" viewBox="0 0 64 64" fill="none" aria-hidden="true"><rect width="64" height="64" rx="12" fill="#243558"/><text x="32" y="23" font-family="system-ui,-apple-system,sans-serif" font-weight="700" font-size="14" letter-spacing="1.5" fill="#FFFFFF" text-anchor="middle" dominant-baseline="middle">PDF</text><rect x="10" y="31" width="44" height="2.5" rx="1.25" fill="#16A34A"/><text x="32" y="46" font-family="system-ui,-apple-system,sans-serif" font-weight="700" font-size="12" letter-spacing="1.5" fill="#93C5FD" text-anchor="middle" dominant-baseline="middle">SIGN</text></svg> 4281 <span class="logo-name">PDF<em>Sign</em></span> 4282 </a> 4283 <p>Sign PDFs with your DSC token. Offline, private, and built for Indian filings.</p> 4284 </div> 4285 4286 <div class="footer-col"> 4287 <h5>Product</h5> 4288 <ul> 4289 <li><a href="#features">Features</a></li> 4290 <li><a href="#how">How it works</a></li> 4291 <li><a href="#pricing">Pricing</a></li> 4292 <li><a href="https://api.pdfsign.in/api/download">Download</a></li> 4293 <li><a href="https://pdfsign.in/changelog">Changelog</a></li> 4294 <li><a href="/reseller-portal">Reseller Programme</a></li> 4295 <li><a href="/web">Sign Online â Free</a></li> 4296 <li><a href="/bulk-pdf-signing">Bulk PDF Signing</a></li> 4297 <li><a href="/repair-pdf">Repair PDF for GeM</a></li> 4298 </ul> 4299 </div> 4300 4301 <div class="footer-col"> 4302 <h5>Support</h5> 4303 <ul> 4304 <li><a href="#faq">FAQ</a></li> 4305 <li><a href="/cdn-cgi/l/email-protection#9df5f8f1edddedf9fbeef4faf3b3f4f3"><span class="__cf_email__" data-cfemail="82eae7eef2c2f2e6e4f1ebe5ecacebec">[email protected]</span></a></li> 4306 <li><a href="https://wa.me/917057413999">WhatsApp Support</a></li> 4307 <li><a href="https://wa.me/917057413999?text=Feedback%20for%20PDFSign%3A%20" target="_blank" rel="noopener">Share Feedback</a></li> 4308 <li><a href="/verify">Verify PDF Signature</a></li> 4309 </ul> 4310 </div> 4311 4312 <div class="footer-col"> 4313 <h5>Legal</h5> 4314 <ul> 4315 <li><a href="/privacy">Privacy Policy</a></li> 4316 <li><a href="/terms">Terms of Service</a></li> 4317 <li><a href="/refund">Refund & Cancellation</a></li> 4318 <li><a href="/shipping">Shipping & Delivery</a></li> 4319 <li><a href="/contact">Contact Us</a></li> 4320 <li><a href="/eula">Software License Agreement</a></li> 4321 </ul> 4322 </div> 4323 </div> 4324 4325 <div class="footer-bottom"> 4326 <p>© 2026 PDFSign · All rights reserved · ð¦ Made in India · ð®ð³ Proud to be Indian</p> 4327 <div class="footer-bottom-links"> 4328 <a href="/global">ð Global Site</a> 4329 <a href="/privacy">Privacy</a> 4330 <a href="/terms">Terms</a> 4331 <a href="/cdn-cgi/l/email-protection#137b767f6353637775607a747d3d7a7d"><span class="__cf_email__" data-cfemail="c7afa2abb787b7a3a1b4aea0a9e9aea9">[email protected]</span></a> 4332 </div> 4333 </div> 4334 </div> 4335</footer> 4336 4337<!-- Live Chat FAB --> 4338<a href="https://wa.me/917057413999?text=Hi%21%20I%20have%20a%20question%20about%20PDFSign.in" target="_blank" rel="noopener" class="chat-fab" aria-label="Chat with support on WhatsApp"> 4339 <svg width="24" height="24" fill="white" viewBox="0 0 24 24"> 4340 <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.
4340198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z"/> 4341 <path d="M11.999 2C6.477 2 2 6.477 2 12c0 1.89.525 3.66 1.438 5.168L2 22l4.978-1.413A9.96 9.96 0 0 0 12 22c5.523 0 10-4.477 10-10S17.523 2 12 2z" fill="none" stroke="white" stroke-width="1.5"/> 4342 </svg> 4343</a> 4344<div class="chat-tooltip">Chat with us on WhatsApp</div>
vendor: 111 bytes, lines 4344-4347
4344 4345 4346 4347<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
4347<script> 4348// ââ FAQ accordion ââ 4349function toggleFaq(btn) { 4350 var item = btn.parentElement; 4351 var isOpen = item.classList.contains('open'); 4352 // Close all 4353 document.querySelectorAll('.faq-item.open').forEach(function(el) { 4354 el.classList.remove('open'); 4355 }); 4356 // If it wasn't open, open it 4357 if (!isOpen) { item.classList.add('open'); } 4358} 4359 4360// ââ Mobile burger nav ââ 4361function toggleNav() { 4362 var btn = document.getElementById('navBurger'); 4363 var nav = document.getElementById('navLinks'); 4364 btn.classList.toggle('open'); 4365 nav.classList.toggle('open'); 4366} 4367 4368// ââ Pricing & geo state ââââââââââââââââââââââââââââââââââââââââââââââââââââ 4369var _planMode = 'solo'; 4370var _currency = 'INR'; // set by geo detection on load 4371var _isIndia = true; // default to India until geo resolves 4372var _intlPlan = null; // plan selected for international checkout modal 4373var _livePrices = null; // keyed by plan, set after /api/pricing responds 4374 4375// Button href fallbacks. These used to be static Razorpay Payment-Page links 4376// (rzp.io/rzp/â¦), but those bypass create-link.js â they carry no plan/machineId 4377// notes and fire only `payment.captured`, so a payment through them could be 4378// taken with NO license/email issued. Every purchase now goes through the 4379// dynamic create-link path in handlePlanClick(); these hrefs are just a safe 4380// no-JS fallback that keeps the user on the pricing section (never an untracked 4381// Razorpay page). 4382var INR_LINKS = { 4383 monthly: '#pricing', 4384 yearly: '#pricing', 4385 'team-yearly': '#pricing', 4386 lifetime: '#pricing', 4387 'team-lifetime': '#pricing', 4388}; 4389 4390// Fallback prices in paise (INR) and cents (USD) â used until API responds 4391var FALLBACK_INR = { monthly: 9900, yearly: 99900, 'team-yearly': 349900, lifetime: 499900, 'team-lifetime': 1399900 }; 4392var FALLBACK_USD = { monthly: 199, yearly: 1199, 'team-yearly': 3999, lifetime: 5999, 'team-lifetime': 15999 }; 4393 4394// ââ Price helpers âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 4395function getInr(plan) { return (_livePrices && _livePrices[plan]) ? _livePrices[plan].price_inr : (FALLBACK_INR[plan] || 0); } 4396function getUsd(plan) { return (_livePrices && _livePrices[plan]) ? _livePrices[plan].price_usd : (FALLBACK_USD[plan] || 0); } 4397function fmtInr(paise) { return Math.round(paise / 100).toLocaleString('en-IN'); } 4398function fmtUsd(cents) { return (cents / 100).toFixed(2); } 4399// Returns "$X.XX" string for modal button labels 4400function dispUsd(plan) { return '$' + fmtUsd(getUsd(plan)); } 4401 4402// ââ Boot: geo and pricing run in parallel but are applied independently ââââ 4403// KEY PERF RULE: geo content visibility must NEVER wait for the pricing API. 4404// Pricing is applied in a separate .then() so a slow Vercel cold-start 4405// (~3s) cannot push LCP past 2.5s. 4406(function boot() { 4407 // ââ Fast-path: Cloudflare Worker injects window.__GEO_COUNTRY__ into HTML. 4408 // Apply geo IMMEDIATELY â zero async work â before body finishes parsing. 4409 if (window.__GEO_COUNTRY__ !== undefined) { 4410 _isIndia = (window.__GEO_COUNTRY__ === 'IN'); 4411 _currency = _isIndia ? 'INR' : 'USD'; 4412 applyGeo(); 4413 } 4414 4415 // ââ Geo promise: resolves as soon as country is known ââ 4416 // If CF injected __GEO_COUNTRY__, this resolves synchronously (via 4417 // Promise.resolve) â applyGeo() fires on the next microtask tick. 4418 // Otherwise falls back to /api/cf-geo (~300-400ms round-trip). 4419 var geoPromise = (window.__GEO_COUNTRY__ !== undefined) 4420 ? Promise.resolve({ isIndia: window.__GEO_COUNTRY__ === 'IN' }) 4421 : fetch('/api/cf-geo', { cache: 'no-store' }) 4422 .then(function(r) { return r.ok ? r.json() : null; }) 4423 .then(function(d) { return (d && typeof d.isIndia === 'boolean') ? d : { isIndia: true }; }) 4424 .catch(function() { return { isIndia: true }; }); 4425 4426 // ââ Pricing promise: runs in parallel, applied separately ââ 4427 // A slow cold-start here CANNOT delay geo content display. 4428 var pricingPromise = fetch('https://api.pdfsign.in/api/pricing', { cache: 'no-store' }) 4429 .then(function(r) { return r.ok ? r.json() : null; }) 4430 .catch(function() { return null; }); 4431 4432 // Apply geo content as soon as the country is known â never blocked by pricing 4433 geoPromise.then(function(geo) { 4434 _isIndia = geo.isIndia !== false; 4435 _currency = _isIndia ? 'INR' : 'USD'; 4436 applyGeo(); 4437 }); 4438 4439 // Apply live prices separately â only updates price numbers, never hides/shows content 4440 pricingPromise.then(function(prices) { 4441 if (prices && Array.isArray(prices) && prices.length) {
4442 _livePrices = {}; 4443 prices.forEach(function(p) { _livePrices[p.plan] = p; }); 4444 setPlanMode(_planMode, true); // re-render price display with live values 4445 } 4446 }); 4447})(); 4448 4449function applyGeo() { 4450 // Show/hide geo-conditional blocks 4451 document.querySelectorAll('.india-only').forEach(function(el) { 4452 // When hiding: always 'none'. When showing: must match the CSS display type of 4453 // each element â '.india-only { display:block }' would override 'display:grid/flex' 4454 // if we just set display='' and let CSS take over. 4455 el.style.display = _isIndia ? '' : 'none'; 4456 if (_isIndia) { 4457 if (el.classList.contains('trust-grid')) el.style.display = 'grid'; 4458 else if (el.classList.contains('trust-capability')) el.style.display = 'flex'; 4459 // everything else: display='' â CSS .india-only{display:block} applies correctly 4460 } 4461 }); 4462 // Must set an explicit value (not '') to override the CSS class rule '.intl-only { display:none }'. 4463 // Trust-grid is display:grid and trust-capability is display:flex; everything else is display:block. 4464 document.querySelectorAll('.intl-only').forEach(function(el) { 4465 el.style.display = _isIndia ? 'none' 4466 : el.classList.contains('trust-grid') ? 'grid' 4467 : el.classList.contains('trust-capability') ? 'flex' 4468 : 'block'; 4469 }); 4470 4471 // Update pricing note 4472 var note = document.getElementById('pricingNote'); 4473 if (note) { 4474 note.innerHTML = _isIndia 4475 ? 'All prices are inclusive of GST · Free evaluation included · Payments via Razorpay (UPI, Cards, Net Banking) · GST invoice sent automatically to your email' 4476 : 'Prices in USD · Free evaluation included · International card payments via Razorpay · Invoice sent to your email'; 4477 } 4478 4479 // Re-render plan prices in correct currency 4480 setPlanMode(_planMode, true); 4481 4482 // Wire hover-prefetch on plan buttons so Indian users get instant redirect on click 4483 if (_isIndia) { 4484 ['btnMonthly', 'btnAnnual', 'btnLifetime'].forEach(function(id) { 4485 var btn = document.getElementById(id); 4486 if (!btn) return; 4487 btn.addEventListener('mouseenter', function() { 4488 var planKey = id === 'btnMonthly' ? 'monthly' : id === 'btnAnnual' ? 'yearly' : 'lifetime'; 4489 prefetchINRLink(resolveActualPlan(planKey)); 4490 }); 4491 }); 4492 } 4493} 4494 4495// ââ Resolve actual plan key (solo/team) from the button's logical planKey ââ 4496function resolveActualPlan(planKey) { 4497 if (_planMode === 'team' && planKey !== 'monthly') { 4498 return planKey === 'yearly' ? 'team-yearly' : 'team-lifetime'; 4499 } 4500 return planKey; 4501} 4502 4503// ââ Plan click handler âââââââââââââââââââââââââââââââââââââââââââââââââââââ 4504// India: straight to Razorpay (INR links accept a partial/omitted customer). 4505// International: open the details modal FIRST â Razorpay's USD links REQUIRE a 4506// customer with name/email/CONTACT up front, otherwise the hosted page dead-ends 4507// with "customer details are required, please fill them in to continue". Going 4508// straight to Razorpay (the old generateIntlPaymentLink path) is exactly what 4509// caused that wall, so international now always collects details via the modal. 4510function handlePlanClick(e, planKey) { 4511 e.preventDefault(); 4512 var actualPlan = resolveActualPlan(planKey); 4513 var btnId = planKey === 'monthly' ? 'btnMonthly' : planKey === 'yearly' ? 'btnAnnual' : 'btnLifetime'; 4514 if (!_isIndia) { 4515 openIntlModal(actualPlan); 4516 } else { 4517 generateINRPaymentLink(actualPlan, btnId); 4518 } 4519 return false; 4520} 4521 4522// ââ Prefetch cache: plan â Promise<paymentUrl|null> ââââââââââââââââââââââââââ 4523var _prefetchCache = {}; 4524 4525function prefetchINRLink(plan) { 4526 if (_prefetchCache[plan]) return; // already in-flight or done 4527 _prefetchCache[plan] = fetch('https://api.pdfsign.in/api/payment/create-link', { 4528 method: 'POST', 4529 headers: { 'Content-Type': 'application/json' }, 4530 body: JSON.stringify({ plan: plan, customerCountry: 'IN' }), 4531 }) 4532 .then(function(r) { return r.ok ? r.json() : null; }) 4533 .then(function(d) { return (d && d.paymentUrl) ? d.paymentUrl : null; }) 4534 .catch(function() { return null; }); 4535} 4536 4537// ââ India: redirect to Razorpay â instant if hover-prefetch completed ââââââââ 4538async function generateINRPaymentLink(plan, btnId) { 4539 var btn = document.getElementById(btnId); 4540 var origTxt = btn ? btn.textContent : ''; 4541 4542 // Show spinner IMMEDIATELY â instant feedback + prevents double-click via pointer-events:none 4543 if (btn) { btn.classList.add('plan-btn-loading'); btn.textContent = ''; } 4544 4545 var url = null; 4546 if (_prefetchCache[plan]) { 4547 url = await _prefetchCache[plan]; 4548 delete _prefetchCache[plan]; // consume; next hover pre-fetches fresh link 4549 } 4550 4551 if (!url) { 4552 try { 4553 var resp = await fetch('https://api.pdfsign.in/api/payment/create-link', { 4554 method: 'POST', 4555 headers: { 'Content-Type': 'application/json' }, 4556 body: JSON.stringify({ plan: plan, customerCountry: 'IN' }), 4557 }); 4558 var data = await resp.json(); 4559 if (!resp.ok || !data.paymentUrl) throw new Error(data.error || 'Could not create payment link.'); 4560 url = data.paymentUrl; 4561 } catch (err) { 4562 if (btn) { btn.classList.remove('plan-btn-loading'); btn.textContent = origTxt; } 4563 var errDiv = document.createElement('p'); 4564 errDiv.style.cssText = 'color:#ef4444;font-size:13px;text-align:center;margin-top:8px'; 4565 errDiv.textContent = 'Could not open payment page â please try again.'; 4566 if (btn && btn.parentNode) { 4567 var old = btn.parentNode.querySelector('.dyn-link-err'); 4568 if (old) old.remove(); 4569 errDiv.className = 'dyn-link-err'; 4570 btn.parentNode.insertBefore(errDiv, btn.nextSibling); 4571 setTimeout(function() { errDiv.remove(); }, 6000); 4572 } 4573 return; 4574 } 4575 } 4576 4577 if (url) window.location.href = url; 4578} 4579 4580// Reset loading states when page is restored from bfcache (e.g. after pressing Back from Razorpay). 4581// Without this: a second concurrent async call (from a double-click) resumes mid-await and 4582// fires window.location.href again, auto-redirecting the user back to Razorpay. 4583window.addEventListener('pageshow', function(e) { 4584 if (!e.persisted) return; // normal page load â do nothing 4585 _prefetchCache = {}; // discard any in-flight or resolved prefetch promise 4586 document.querySelectorAll('.plan-btn-loading').forEach(function(el) { 4587 el.classList.remove('plan-btn-loading'); // restore button text via setPlanMode below 4588 }); 4589 setPlanMode(_planMode, true); // redraw button labels to their correct text 4590}); 4591 4592// ââ Solo/Team toggle ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 4593function setPlanMode(mode, forceRedraw) { 4594 if (!forceRedraw) _planMode = mode; 4595 else mode = _planMode; 4596 var isSolo = mode === 'solo'; 4597 document.getElementById('btnSolo').classList.toggle('active', isSolo); 4598 document.getElementById('btnTeam').classList.toggle('active', !isSolo); 4599 4600 var cardMonthly = document.getElementById('cardMonthly'); 4601 var pricingGrid = document.getElementById('pricingGrid'); 4602 if (cardMonthly) cardMonthly.style.display = isSolo ? '' : 'none'; 4603 if (pricingGrid) pricingGrid.style.gridTemplateColumns = isSolo ? '' : 'repeat(2, 1fr)'; 4604 4605 var teamNote = document.getElementById('teamNote'); 4606 if (teamNote) teamNote.classList.toggle('show', !isSolo); 4607 var monthlyTeamNote = document.getElementById('monthlyTeamNote'); 4608 if (monthlyTeamNote) monthlyTeamNote.classList.toggle('show', !isSolo); 4609 4610 var isUSD = (_currency === 'USD'); 4611 4612 // ââ Monthly (solo only) ââââââââââââââââââââââââââââââââââââââââââââââââ 4613 document.getElementById('priceMonthly').textContent = 4614 isUSD ? fmtUsd(getUsd('monthly')) : fmtInr(getInr('monthly')); 4615 document.querySelectorAll('#cardMonthly .plan-currency').forEach(function(el) { el.textContent = isUSD ? '$' : 'â¹'; }); 4616 var lnkMonthly = document.getElementById('btnMonthly'); 4617 if (lnkMonthly) { lnkMonthly.textContent = 'Get Monthly Plan'; lnkMonthly.href = INR_LINKS.monthly; } 4618 4619 // ââ Annual ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 4620 var annualPlan = isSolo ? 'yearly' : 'team-yearly'; 4621 document.getElementById('priceAnnual').textContent = 4622 isUSD ? fmtUsd(getUsd(annualPlan)) : fmtInr(getInr(annualPlan)); 4623 document.querySelectorAll('.plan-card.featured .plan-currency').forEach(function(el) { el.textContent = isUSD ? '$' : 'â¹'; }); 4624 4625 // Savings line â computed dynamically from live prices 4626 if (isSolo) { 4627 var savInr = Math.round((getInr('monthly') * 12 - getInr('yearly')) / 100); 4628 var savUsd = fmtUsd(getUsd('monthly') * 12 - getUsd('yearly')); 4629 document.getElementById('descAnnual').textContent = isUSD 4630 ? 'Save $' + savUsd + ' vs monthly. Best value for regular signers.'
4631 : 'Save â¹' + savInr.toLocaleString('en-IN') + ' vs monthly. Best value for regular signers.'; 4632 } else { 4633 var perSeatInr = Math.round(getInr('team-yearly') / 100 / 5); 4634 var perSeatUsd = fmtUsd(getUsd('team-yearly') / 5); 4635 document.getElementById('descAnnual').textContent = isUSD 4636 ? '5 seats · $' + perSeatUsd + '/seat per year. One key for your whole team.' 4637 : '5 seats · â¹' + perSeatInr.toLocaleString('en-IN') + ' per seat per year. One key for your whole team.'; 4638 } 4639 document.getElementById('devicesAnnual').textContent = isSolo ? '1 Windows device' : '5 Windows devices'; 4640 var lnkAnnual = document.getElementById('btnAnnual'); 4641 lnkAnnual.textContent = isSolo ? 'Get Annual Plan' : 'Get Team Annual Plan'; 4642 lnkAnnual.href = INR_LINKS[annualPlan]; 4643 4644 // ââ Lifetime ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 4645 var lifetimePlan = isSolo ? 'lifetime' : 'team-lifetime'; 4646 document.getElementById('priceLifetime').textContent = 4647 isUSD ? fmtUsd(getUsd(lifetimePlan)) : fmtInr(getInr(lifetimePlan)); 4648 document.querySelectorAll('.plan-card:not(.featured) .plan-currency').forEach(function(el) { el.textContent = isUSD ? '$' : 'â¹'; }); 4649 4650 if (isSolo) { 4651 document.getElementById('descLifetime').textContent = isUSD 4652 ? 'Pay once, use forever. One-time purchase, all future updates included.' 4653 : 'Pay once, use forever. Ideal for firms and power users who sign daily.'; 4654 } else { 4655 var ltSeatInr = Math.round(getInr('team-lifetime') / 100 / 5); 4656 var ltSeatUsd = fmtUsd(getUsd('team-lifetime') / 5); 4657 document.getElementById('descLifetime').textContent = isUSD 4658 ? '5 seats · $' + ltSeatUsd + '/seat â pay once, own forever.' 4659 : '5 seats · â¹' + ltSeatInr.toLocaleString('en-IN') + ' per seat â pay once, use forever for your entire team.'; 4660 } 4661 document.getElementById('devicesLifetime').textContent = isSolo ? '1 Windows device' : '5 Windows devices'; 4662 var lnkLifetime = document.getElementById('btnLifetime'); 4663 lnkLifetime.textContent = isSolo ? 'Get Lifetime Access' : 'Get Team Lifetime Access'; 4664 lnkLifetime.href = INR_LINKS[lifetimePlan]; 4665} 4666 4667// ââ International checkout modal âââââââââââââââââââââââââââââââââââââââââââ 4668function openIntlModal(plan) { 4669 _intlPlan = plan; 4670 document.getElementById('intlName').value = ''; 4671 document.getElementById('intlEmail').value = ''; 4672 document.getElementById('intlPhone').value = ''; 4673 document.getElementById('intlErr').style.display = 'none'; 4674 document.getElementById('intlPayBtn').disabled = false; 4675 document.getElementById('intlPayBtn').textContent = 'Continue to Payment â ' + (dispUsd(plan)); 4676 document.getElementById('intlCheckoutModal').classList.add('open'); 4677 document.getElementById('intlEmail').focus(); 4678} 4679 4680function closeIntlModal() { 4681 document.getElementById('intlCheckoutModal').classList.remove('open'); 4682 _intlPlan = null; 4683} 4684 4685// ââ International: go straight to Razorpay â no pre-payment modal âââââââââ 4686// Razorpay collects name/email/phone natively; we receive them via webhook. 4687async function generateIntlPaymentLink(plan, btnId) { 4688 var btn = document.getElementById(btnId); 4689 var origTxt = btn ? btn.textContent : ''; 4690 4691 // Show spinner immediately â instant feedback + prevents double-click 4692 if (btn) { btn.classList.add('plan-btn-loading'); btn.textContent = ''; } 4693 4694 // 25-second client timeout â resets button with a clear message if server is slow 4695 var controller = new AbortController(); 4696 var timeoutId = setTimeout(function() { controller.abort(); }, 25000); 4697 4698 try { 4699 var resp = await fetch('https://api.pdfsign.in/api/payment/create-link', { 4700 method: 'POST', 4701 headers: { 'Content-Type': 'application/json' }, 4702 body: JSON.stringify({ plan: plan, customerCountry: 'INTL' }), 4703 signal: controller.signal, 4704 }); 4705 clearTimeout(timeoutId); 4706 4707 var data; 4708 try { data = await resp.json(); } catch (e) { data = {}; } 4709 4710 if (!resp.ok || !data.paymentUrl) { 4711 throw new Error(data.error || ('Server error ' + resp.status + ' â please try again or c
4711ontact support.')); 4712 } 4713 window.location.href = data.paymentUrl; 4714 } catch (err) { 4715 clearTimeout(timeoutId); 4716 if (btn) { btn.classList.remove('plan-btn-loading'); btn.textContent = origTxt; } 4717 var msg = err.name === 'AbortError' 4718 ? 'Request timed out â please try again.' 4719 : (err.message || 'Could not open payment page â please try again.'); 4720 var errDiv = document.createElement('p'); 4721 errDiv.style.cssText = 'color:#ef4444;font-size:13px;text-align:center;margin-top:8px'; 4722 errDiv.textContent = msg; 4723 if (btn && btn.parentNode) { 4724 var old = btn.parentNode.querySelector('.dyn-link-err'); 4725 if (old) old.remove(); 4726 errDiv.className = 'dyn-link-err'; 4727 btn.parentNode.insertBefore(errDiv, btn.nextSibling); 4728 setTimeout(function() { errDiv.remove(); }, 8000); 4729 } 4730 } 4731} 4732 4733// Close on backdrop click 4734document.addEventListener('click', function(e) { 4735 if (e.target === document.getElementById('intlCheckoutModal')) closeIntlModal(); 4736}); 4737document.addEventListener('keydown', function(e) { 4738 if (e.key === 'Escape') closeIntlModal(); 4739}); 4740 4741async function submitIntlCheckout() { 4742 var email = (document.getElementById('intlEmail').value || '').trim(); 4743 var name = (document.getElementById('intlName').value || '').trim(); 4744 var phone = (document.getElementById('intlPhone').value || '').trim(); 4745 var errEl = document.getElementById('intlErr'); 4746 var btn = document.getElementById('intlPayBtn'); 4747 errEl.style.display = 'none'; 4748 4749 if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { 4750 errEl.textContent = 'Please enter a valid email address.'; 4751 errEl.style.display = 'block'; 4752 return; 4753 } 4754 // Razorpay REQUIRES a contact number on international (non-INR) links, or the 4755 // hosted page dead-ends with "customer details are required". Collect it here so 4756 // the link is created with full customer details. 4757 var phoneDigits = phone.replace(/[^\d]/g, ''); 4758 if (phoneDigits.length < 8) { 4759 errEl.textContent = 'Please enter your mobile number with country code (required for international cards).'; 4760 errEl.style.display = 'block'; 4761 return; 4762 } 4763 if (!_intlPlan) return; 4764 4765 btn.disabled = true; 4766 btn.textContent = 'Creating payment linkâ¦'; 4767 4768 try { 4769 var resp = await fetch('https://api.pdfsign.in/api/payment/create-link', { 4770 method: 'POST', 4771 headers: { 'Content-Type': 'application/json' }, 4772 body: JSON.stringify({ 4773 plan: _intlPlan, 4774 customerEmail: email, 4775 customerName: name || undefined, 4776 customerContact: phone, // required for USD links (see above) 4777 customerCountry: 'US', // international â triggers USD flow 4778 }), 4779 }); 4780 var data = await resp.json(); 4781 if (!resp.ok || !data.paymentUrl) { 4782 throw new Error(data.error || 'Could not create payment link. Please try again.'); 4783 } 4784 closeIntlModal(); 4785 window.location.href = data.paymentUrl; 4786 } catch (err) { 4787 errEl.textContent = err.message; 4788 errEl.style.display = 'block'; 4789 btn.disabled = false; 4790 btn.textContent = 'Continue to Payment â ' + (dispUsd(_intlPlan)); 4791 } 4792} 4793 4794function openWhatsApp() { 4795 var msg = encodeURIComponent("Hi! I have a question about PDFSign.in"); 4796 window.open("https://wa.me/917057413999?text=" + msg, "_blank"); 4797} 4798 4799// ââ Nav scroll highlight ââ 4800var sections = document.querySelectorAll("section[id]"); 4801var navLinks = document.querySelectorAll(".nav-links a[href^='#']"); 4802window.addEventListener("scroll", function() { 4803 var scrollY = window.scrollY + 80; 4804 sections.forEach(function(sec) { 4805 if (sec.offsetTop <= scrollY && sec.offsetTop + sec.offsetHeight > scrollY) { 4806 navLinks.forEach(function(a) { 4807 a.style.color = a.getAttribute("href") === "#" + sec.id ? "#fff" : "rgba(255,255,255,0.65)"; 4808 }); 4809 } 4810 }); 4811}); 4812 4813// ââ YouTube facade: load real iframe only on click (saves ~1MB of YouTube JS on page load) ââ 4814function loadYT(el, videoId, params) { 4815 var iframe = document.createElement('iframe'); 4816 iframe.src = 'https://www.youtube.com/embed/' + videoId + (params || '') + '&autoplay=1'; 4817 iframe.title = el.getAttribute('aria-label') || 'YouTube video player'; 4818 iframe.frameBorder = '0'; 4819 iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share'; 4820 iframe.allowFullscreen = true; 4821 iframe.referrerPolicy = 'strict-origin-when-cross-origin'; 4822 iframe.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;border-radius:8px;'; 4823 el.parentNode.replaceChild(iframe, el); 4824} 4825 4826// ââ Scroll entrance animations ââ 4827var observer = new IntersectionObserver(function(entries) {
4828 entries.forEach(function(e) { 4829 if (e.isIntersecting) { e.target.style.opacity="1"; e.target.style.transform="translateY(0)"; } 4830 }); 4831}, { threshold: 0.1 }); 4832document.querySelectorAll(".feature-card,.how-step,.plan-card,.testimonial").forEach(function(el) { 4833 el.style.opacity="0"; el.style.transform="translateY(20px)"; 4834 el.style.transition="opacity 0.5s ease, transform 0.5s ease"; 4835 observer.observe(el); 4836}); 4837 4838</script>
4838 4839
4840<script> 4841// ââ Live stats counter ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 4842(function() { 4843 var STATS_API = 'https://api.pdfsign.in/api/stats'; 4844 var _dlBase = 0, _optimistic = 0; 4845 4846 function fmt(n) { return Number(n).toLocaleString('en-IN'); } 4847 4848 function animateCount(el, from, to, dur) { 4849 if (!el || from === to) { if (el) el.textContent = fmt(to); return; } 4850 var start = null; 4851 (function step(ts) { 4852 if (!start) start = ts; 4853 var p = Math.min((ts - start) / dur, 1); 4854 var e = 1 - Math.pow(1 - p, 3); 4855 el.textContent = fmt(Math.round(from + (to - from) * e)); 4856 if (p < 1) requestAnimationFrame(step); 4857 })(performance.now()); 4858 } 4859 4860 function renderStats(dl, totalDl, animate) { 4861 var dlEl = document.getElementById('stat-dl-today'); 4862 if (!dlEl) return; 4863 var showDl = dl + _optimistic; 4864 var dlTotEl = document.getElementById('stat-dl-total'); 4865 if (animate) { 4866 animateCount(dlEl, Math.max(0, showDl - 18), showDl, 1400); 4867 if (dlTotEl) animateCount(dlTotEl, Math.max(0, totalDl - 200), totalDl, 1800); 4868 } else { 4869 dlEl.textContent = fmt(showDl); 4870 if (dlTotEl) dlTotEl.textContent = fmt(totalDl) + '+'; 4871 } 4872 } 4873 4874 function fetchStats(animate) { 4875 fetch(STATS_API) 4876 .then(function(r){ return r.ok ? r.json() : null; }) 4877 .then(function(d){ 4878 if (!d) return; 4879 _dlBase = d.downloads_today || 0; 4880 renderStats(_dlBase, d.total_downloads, animate); 4881 }) 4882 .catch(function(){}); 4883 } 4884 4885 // Fetched ONCE per page load / refresh. No polling, by decision (2026-10-02). 4886 // History: this ran every 60s in every open tab including backgrounded ones â 4887 // 117k calls to /api/stats, whose get_live_stats() full-scans usage_events and 4888 // downloads on every call, which ate the project's Supabase Disk IO budget 4889 // (Sep 2026). Gating on document.hidden and relaxing to 120s reduced it; this 4890 // removes it. A downloads counter is not a live feed, and a visitor reading the 4891 // page does not need it to tick. Do not reintroduce a timer here â if the number 4892 // ever has to refresh mid-session, denormalise the counter instead of polling. 4893 fetchStats(true); 4894 4895 // Optimistic increment on download click 4896 document.addEventListener('click', function(e) { 4897 if (!e.target.closest('a[href*="/api/download"]')) return; 4898 if (window.gtag) window.gtag('event', 'trial_download', { source: 'india' }); 4899 _optimistic++; 4900 var el = document.getElementById('stat-dl-today'); 4901 if (el) { var cur = parseInt(el.textContent.replace(/[^0-9]/g,''))||0; animateCount(el, cur, cur+1, 500); } 4902 }); 4903})(); 4904</script>
vendor: 1 bytes, line 4904
4904
4905<script src="/js/download-gate.js" defer></script>
vendor: 1 bytes, line 4905
4905
4906<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"e9a9f35d90804bae90456ee70a87b46c","r":1,"spa":2}' crossorigin="anonymous"></script>
4906 4907</body> 4908</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.