PageSourceSearch

https://pdfsign.in/

html pdfsign.in collected 2026-10-03 20:08:38 UTC 215,861 bytes, 4,908 lines download raw bytes

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 &amp; 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 &nbsp;·&nbsp; 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">&lt;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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &nbsp;·&nbsp; Free evaluation included &nbsp;·&nbsp; Payments via Razorpay (UPI, Cards, Net Banking) &nbsp;·&nbsp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &middot; 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 &amp; 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 &middot; 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 &amp; 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 &amp; 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 &amp; 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 &amp; MCA21 compliant</li>
3739        </ul>
3740      </div>
3741
3742      <div class="who-card">
3743        <span class="who-icon">⚖️</span>
3744        <h3>Lawyers &amp; 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 &amp; 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 &amp; 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 &amp; DGFT filings</li>
3772        </ul>
3773      </div>
3774
3775      <div class="who-card">
3776        <span class="who-icon">🏢</span>
3777        <h3>Corporate &amp; HR Teams</h3>
3778        <p>Sign employment contracts, NDAs, vendor agreements, offer letters, and MoUs at scale.</p>
3779        <ul>
3780          <li>Contract &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; M&amp;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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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&#160;protected]</span></a>
4111    </div>
4112    <p class="cta-footnote">For Windows 10 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &nbsp;→
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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &nbsp;→
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&#160;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 &amp; Cancellation</a></li>
4318          <li><a href="/shipping">Shipping &amp; 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 &nbsp;·&nbsp; All rights reserved &nbsp;·&nbsp; 🦁 Made in India &nbsp;·&nbsp; 🇮🇳 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&#160;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 &nbsp;·&nbsp; Free evaluation included &nbsp;·&nbsp; Payments via Razorpay (UPI, Cards, Net Banking) &nbsp;·&nbsp; GST invoice sent automatically to your email'
4476      : 'Prices in USD &nbsp;·&nbsp; Free evaluation included &nbsp;·&nbsp; International card payments via Razorpay &nbsp;·&nbsp; 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.