/* ============================================================
   BHARATPAYE — design tokens
   Brand: blue #4071C6 + rust-orange #DE5B20 (from logo), toll-green #2E9E4F (FASTag)
   ============================================================ */
:root{
  --bg: #0A0E17;
  --bg-soft: #0E1422;
  --surface: #121A2B;
  --surface-2: #1A2336;
  --border: #23304A;
  --text: #F3F5FA;
  --text-muted: #92A0BD;
  --text-faint: #5C6A89;

  --blue: #4F86E8;
  --blue-deep: #2A4E96;
  --orange: #FF7A3D;
  --orange-deep: #DE5B20;
  --green: #36C26B;
  --green-deep: #1F8A4C;

  --grad-brand: linear-gradient(135deg, var(--blue) 0%, var(--orange) 100%);
  --grad-soft: linear-gradient(180deg, rgba(79,134,232,0.14), rgba(255,122,61,0.05));
  --grad-fintech: linear-gradient(135deg, #1F8A4C 0%, #4F86E8 100%);

  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-sm: 10px;

  --display: 'Sora', system-ui, sans-serif;
  --body: 'Inter', system-ui, sans-serif;
  --mono: 'JetBrains Mono', monospace;

  --shadow-glow: 0 0 0 1px rgba(255,255,255,0.04), 0 20px 60px -20px rgba(0,0,0,0.6);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--body);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}

.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}

/* background ambience */
.bg-glow{
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(700px 500px at 12% -8%, rgba(79,134,232,0.18), transparent 60%),
    radial-gradient(700px 500px at 92% 8%, rgba(255,122,61,0.14), transparent 60%),
    var(--bg);
}

/* ---------------- NAV ---------------- */
header.nav{
  position:sticky; top:0; z-index:50;
  backdrop-filter:blur(14px);
  background:rgba(10,14,23,0.72);
  border-bottom:1px solid var(--border);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 24px; max-width:1180px; margin:0 auto;
}
.brand{display:flex; align-items:center; gap:10px; font-family:var(--display); font-weight:700; font-size:19px;}
.brand img{height:30px;width:auto;}
.brand .name span{color:var(--orange);}
.nav-links{display:flex; gap:28px; align-items:center; font-size:14.5px; color:var(--text-muted);}
.nav-links a:hover{color:var(--text);}
.nav-actions{display:flex; align-items:center; gap:10px;}
.nav-login{
  font-weight:600; font-size:14px; color:var(--text-muted);
  padding:10px 18px; border-radius:999px; border:1px solid var(--border);
  transition:color .15s, border-color .15s;
  white-space:nowrap;
}
.nav-login:hover{color:var(--text); border-color:var(--blue);}
.nav-cta{
  background:var(--grad-brand); color:#0A0E17; font-weight:700; font-size:14px;
  padding:10px 20px; border-radius:999px; border:none; letter-spacing:0.2px;
  box-shadow:0 8px 24px -8px rgba(79,134,232,0.5);
  white-space:nowrap;
}
.nav-burger{display:none; background:none; border:none; color:var(--text);}

@media (max-width: 880px){
  .nav-links{display:none;}
  .nav-burger{display:block;}
}

/* ---------------- HERO ---------------- */
.hero{padding:84px 0 40px; position:relative;}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:48px; align-items:center;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--green); background:rgba(54,194,107,0.1); border:1px solid rgba(54,194,107,0.3);
  padding:6px 14px; border-radius:999px; margin-bottom:22px;
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--green); box-shadow:0 0 8px var(--green); animation:pulse 1.6s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.35;}}

h1.hero-title{
  font-family:var(--display); font-weight:700; font-size:clamp(38px,5.4vw,64px);
  line-height:1.04; letter-spacing:-0.01em; margin:0 0 22px;
}
h1.hero-title .grad{
  background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-sub{font-size:18px; line-height:1.6; color:var(--text-muted); max-width:480px; margin-bottom:32px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

.btn{
  display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:15px;
  padding:14px 26px; border-radius:999px; border:1px solid transparent; transition:transform .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--grad-brand); color:#0A0E17; box-shadow:0 10px 30px -10px rgba(79,134,232,0.55);}
.btn-ghost{background:transparent; border:1px solid var(--border); color:var(--text);}
.btn-ghost:hover{border-color:var(--blue);}
.btn-block{width:100%; justify-content:center;}

.hero-visual{position:relative;}
.hero-card{
  border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border);
  box-shadow:var(--shadow-glow); position:relative; background:var(--surface);
}
.hero-card video, .hero-card img{width:100%; display:block;}
.hero-card .ribbon{
  position:absolute; bottom:0; left:0; right:0; padding:16px 20px;
  background:linear-gradient(0deg, rgba(8,11,18,0.92), transparent);
  display:flex; justify-content:space-between; align-items:center; font-size:13px; color:var(--text-muted);
}
.hero-card .ribbon b{color:var(--text); font-family:var(--mono); font-weight:600;}

/* ---------------- TOLL TICKER (signature element) ---------------- */
.toll-strip{
  margin:56px 0 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  background:repeating-linear-gradient(90deg, rgba(255,255,255,0.025) 0 2px, transparent 2px 34px), var(--bg-soft);
}
.toll-inner{
  max-width:1180px; margin:0 auto; padding:30px 24px;
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
}
.toll-board{
  background:#070A11; border:1px solid #1C2740; border-radius:var(--radius-md);
  padding:18px 20px; position:relative; overflow:hidden;
}
.toll-board::before{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(0deg, rgba(54,194,107,0.05) 0 1px, transparent 1px 3px);
  pointer-events:none;
}
.toll-label{font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-faint); margin-bottom:8px;}
.toll-value{
  font-family:var(--mono); font-weight:700; font-size:clamp(26px,3.4vw,38px); color:var(--green);
  text-shadow:0 0 18px rgba(54,194,107,0.55); letter-spacing:0.02em;
}
.toll-value.alt{color:var(--orange); text-shadow:0 0 18px rgba(255,122,61,0.5);}
.toll-value.blue{color:var(--blue); text-shadow:0 0 18px rgba(79,134,232,0.5);}

@media (max-width:780px){ .toll-inner{grid-template-columns:1fr;} }

/* ---------------- SECTION HEADERS ---------------- */
.section{padding:96px 0;}
.section-tight{padding:64px 0;}
.section-head{max-width:640px; margin-bottom:48px;}
.section-tag{
  font-family:var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--blue); margin-bottom:14px; display:block;
}
.section-title{font-family:var(--display); font-weight:700; font-size:clamp(28px,3.6vw,40px); line-height:1.12; margin:0 0 14px;}
.section-desc{color:var(--text-muted); font-size:16.5px; line-height:1.65;}

/* ---------------- SERVICE CARDS ---------------- */
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
@media (max-width:980px){ .grid-4{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .grid-4, .grid-2{grid-template-columns:1fr;} }

.card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:28px; transition:border-color .2s ease, transform .2s ease;
}
.card:hover{border-color:var(--blue); transform:translateY(-4px);}
.card .icon{width:42px; height:42px; margin-bottom:18px;}
.card .icon img, .card .icon svg{width:100%;height:100%;}
.card h3{font-family:var(--display); font-size:18px; margin:0 0 10px;}
.card p{color:var(--text-muted); font-size:14.5px; line-height:1.6; margin:0;}

/* ---------------- FINTECH SOFTWARE SPOTLIGHT ---------------- */
.fintech-section{
  position:relative; border-radius:32px; overflow:hidden; margin:0 auto;
  background:var(--surface); border:1px solid rgba(54,194,107,0.25);
  padding:56px;
}
.fintech-section::before{
  content:""; position:absolute; inset:-2px; z-index:0; opacity:0.5;
  background:var(--grad-fintech); filter:blur(80px);
}
.fintech-inner{position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center;}
.fintech-pill{
  display:inline-block; font-family:var(--mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  color:#0A0E17; background:var(--grad-fintech); padding:6px 14px; border-radius:999px; margin-bottom:18px;
}
.fintech-section h2{font-family:var(--display); font-size:clamp(26px,3.2vw,34px); margin:0 0 14px; line-height:1.15;}
.fintech-section p.lead{color:var(--text-muted); font-size:16px; line-height:1.65; margin-bottom:22px;}
.feature-list{display:grid; gap:12px; margin-bottom:26px;}
.feature-list li{display:flex; gap:10px; align-items:flex-start; color:var(--text); font-size:14.5px; list-style:none;}
.feature-list li svg{flex-shrink:0; margin-top:2px;}
.fintech-visual{
  background:#070D14; border:1px solid #1C2740; border-radius:var(--radius-md); padding:24px;
  font-family:var(--mono); font-size:13px; color:var(--green);
}
.fintech-visual .line{display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px dashed #1C2740; color:var(--text-muted);}
.fintech-visual .line b{color:var(--text); font-weight:600;}
.fintech-visual .line:last-child{border-bottom:none;}

@media (max-width:880px){
  .fintech-section{padding:32px;}
  .fintech-inner{grid-template-columns:1fr;}
}

/* ---------------- BENEFITS ---------------- */
.benefit-row{display:flex; gap:16px; padding:22px 0; border-bottom:1px solid var(--border); align-items:flex-start;}
.benefit-row:last-child{border-bottom:none;}
.benefit-num{font-family:var(--mono); color:var(--text-faint); font-size:14px; padding-top:3px;}
.benefit-row h4{margin:0 0 6px; font-family:var(--display); font-size:17px;}
.benefit-row p{margin:0; color:var(--text-muted); font-size:14.5px; line-height:1.6;}

/* ---------------- CTA / REGISTER ---------------- */
.cta-section{
  border-radius:32px; padding:64px; text-align:center; position:relative; overflow:hidden;
  background:var(--surface-2); border:1px solid var(--border);
}
.cta-section::before{
  content:""; position:absolute; inset:0; background:var(--grad-soft); z-index:0;
}
.cta-section *{position:relative; z-index:1;}
.cta-section h2{font-family:var(--display); font-size:clamp(26px,3.6vw,38px); margin:0 0 14px;}
.cta-section p{color:var(--text-muted); max-width:520px; margin:0 auto 30px; font-size:16px;}

/* ---------------- MODAL ---------------- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(5,7,12,0.78); backdrop-filter:blur(4px);
  display:none; align-items:center; justify-content:center; z-index:200; padding:20px;
}
.modal-overlay.open{display:flex;}
.modal-box{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  max-width:440px; width:100%; padding:32px; position:relative; box-shadow:var(--shadow-glow);
}
.modal-close{position:absolute; top:18px; right:18px; background:none; border:none; color:var(--text-muted); font-size:20px;}
.modal-box h3{font-family:var(--display); font-size:22px; margin:0 0 6px;}
.modal-box .sub{color:var(--text-muted); font-size:14px; margin-bottom:22px;}
.field{margin-bottom:16px;}
.field label{display:block; font-size:13px; color:var(--text-muted); margin-bottom:6px;}
.field input, .field select{
  width:100%; background:var(--bg-soft); border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:12px 14px; color:var(--text); font-size:14.5px; font-family:inherit;
}
.field input:focus, .field select:focus{outline:none; border-color:var(--blue);}
.form-note{font-size:12.5px; color:var(--text-faint); margin-top:14px; text-align:center; line-height:1.5;}

/* ---------------- FOOTER ---------------- */
footer{border-top:1px solid var(--border); padding:64px 0 28px; background:var(--bg-soft);}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:32px; margin-bottom:40px;}
.footer-col h5{font-family:var(--display); font-size:14px; color:var(--text); margin:0 0 16px; letter-spacing:0.02em;}
.footer-col p, .footer-col a{display:block; color:var(--text-muted); font-size:13.5px; line-height:1.8; margin-bottom:8px;}
.footer-col a:hover{color:var(--blue);}
.footer-bottom{
  border-top:1px solid var(--border); padding-top:24px; display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:12px; font-size:12.5px; color:var(--text-faint);
}
@media (max-width:880px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} .hero-grid{grid-template-columns:1fr;} }

/* ---------------- POLICY PAGES ---------------- */
.policy-body{padding:64px 0 100px;}
.policy-body h1{font-family:var(--display); font-size:clamp(28px,4vw,42px); margin-bottom:8px;}
.policy-updated{color:var(--text-faint); font-size:13px; margin-bottom:40px; font-family:var(--mono);}
.policy-body h2{font-family:var(--display); font-size:20px; margin:36px 0 12px; color:var(--text);}
.policy-body p, .policy-body li{color:var(--text-muted); font-size:15.5px; line-height:1.75;}
.policy-body ul{padding-left:20px; margin-bottom:16px;}
.policy-toc{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:24px 28px; margin-bottom:40px;
}
.policy-toc a{display:block; color:var(--text-muted); font-size:14px; padding:6px 0;}
.policy-toc a:hover{color:var(--blue);}
.policy-card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:20px 24px; margin-bottom:20px;
}
