PageSourceSearch

https://ivfpulse.com/contact-us

html ivfpulse.com collected 2026-10-02 01:32:36 UTC 116,099 bytes, 1,553 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-IN"><head><meta charset="utf-8">
3<meta name="viewport" content="width=device-width, initial-scale=1">
4<title>Contact IVF Pulse | Talk to a fertility counsellor in Bengaluru</title>
5<meta name="description" content="Reach IVF Pulse on WhatsApp, phone or email. Fertility counsellors in Bengaluru, Monday to Saturday, 9am–6pm. Ask about a report, a quote or a clinic — no clinic pays to be listed, scored or ranked.">
6<link rel="canonical" href="https://ivfpulse.com/contact-us">
7<meta name="theme-color" content="#0A0A0B">
8<meta property="og:type" content="website">
9<meta property="og:title" content="Contact IVF Pulse">
10<meta property="og:description" content="WhatsApp, phone or email. Fertility counsellors in Bengaluru, Monday to Saturday, 9am–6pm.">
11<meta property="og:url" content="https://ivfpulse.com/contact-us">
12<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
13<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@200;300;400;500;600;700;800&family=Share+Tech+Mono&display=swap" rel="stylesheet">
14<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
vendor: 1 bytes, line 14
14
15<script>
16/* Turnstile calls these by name, so they must exist before the widget can
17   report anything. The state lives on window because the widget can render
18   and fail before the page's own script at the bottom has run. */
19window.__ivpCaptcha = {state: 'pending', token: ''};
20function ivpCaptchaOk(t)  { window.__ivpCaptcha = {state: 'success', token: t}; }
21function ivpCaptchaErr()  { window.__ivpCaptcha = {state: 'error',   token: ''}; }
22function ivpCaptchaExp()  { window.__ivpCaptcha = {state: 'expired', token: ''}; }
23</script>
23
24<style>
25/* ═══════════════════════════════════════════════════════════════════
26   IVF Pulse — contact page, August 2026.
27
28   Built in the language of /landing/reimagined/: ink ground, butter
29   accent, Manrope display, Share Tech Mono for instrument labels,
30   corner brackets and an LED dot field. Tokens and the nav/footer CSS
31   are lifted from that page rather than re-derived, so the two stay
32   identical as it changes.
33
34   Colour rules this page keeps to, because the source page does:
35     brand butter #F7F788 is action and emphasis, nothing else
36     text on butter is #151508, never white
37     everything muted is white at an opacity, never a grey hex
38   ═══════════════════════════════════════════════════════════════════ */
39:root{
40  --ivp-ink:#0A0A0B; --ivp-ink-2:#060607; --ivp-paper:#EDEDEB; --ivp-white:#FFFFFF;
41  --ivp-brand:#F7F788; --ivp-butter-700:#E3E35B; --ivp-on-brand:#151508;
42  --ivp-mut:rgba(255,255,255,0.62); --ivp-mut2:rgba(255,255,255,0.4);
43  --ivp-line:rgba(255,255,255,0.1); --ivp-line-2:rgba(255,255,255,0.07);
44  --ivp-pane:rgba(255,255,255,0.03);
45  --ivp-wa:#25D366;
46  --ivp-gut:clamp(20px,4vw,52px);
47  color-scheme:dark;
48}
49*{box-sizing:border-box}
50html{-webkit-text-size-adjust:100%}
51html,body{overflow-x:clip}
52/* `html body` (0,0,2), not `body` (0,0,1): inject-layout.js appends the site's
53   Tailwind build after this sheet, and it sets body{background-color;color;
54   padding:0}. A bare `body` rule loses that tie and the page ground goes white. */
55html body{margin:0;background:var(--ivp-ink);color:var(--ivp-white);
56  font-family:'Manrope',sans-serif;font-size:16px;line-height:1.6;
57  -webkit-font-smoothing:antialiased}
58img,svg{max-width:100%}
59::selection{background:var(--ivp-brand);color:var(--ivp-on-brand)}
60/* The injected preflight sets a{color:inherit} at (0,0,1). Nothing here relies
61   on inheriting: every anchor on this page — prose, chip, button, map pin —
62   carries its own colour from a class rule that outranks it. Do not add a
63   blanket `main a{...}` to "protect" them; at (0,1,1) it outranks .btn (0,1,0)
64   and repaints the butter CTAs white on yellow. */
65:focus-visible{outline:2px solid var(--ivp-brand);outline-offset:3px;border-radius:4px}
66[hidden]{display:none !important}
67.wrap{max-width:1180px;margin:0 auto;padding:0 var(--ivp-gut)}
68.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
69  clip:rect(0 0 0 0);white-space:nowrap;border:0}
70
71/* ── type system, from the source page ──────────────────────── */
72.disp{font-family:'Manrope',sans-serif;font-weight:800;letter-spacing:-0.025em;line-height:1.04}
73.mono{font-family:'Manrope',sans-serif;font-weight:800;letter-spacing:0.2em;text-transform:uppercase}
74.tech{font-family:'Share Tech Mono',monospace;letter-spacing:0.2em;text-transform:uppercase}
75h1,h2,h3{margin:0;text-wrap:balance}
76.sect-h{font-size:clamp(28px,3.4vw,46px);color:#fff;margin:0}
77.sect-h em{font-style:normal;color:var(--ivp-brand)}
78.lede{color:var(--ivp-mut);font-size:15.5px;font-weight:500;line-height:1.7;max-width:60ch;margin:0}
79.eyebrow{font-size:12px;letter-spacing:0.24em;color:var(--ivp-mut2);margin:0 0 16px;
80  display:flex;align-items:center;gap:10px}
81.eyebrow::before{content:'';width:5px;height:5px;border-radius:1px;background:var(--ivp-brand);flex:none}
82
83/* corner brackets — the source page's HUD mark, used here as a static
84   frame around things that are being "read" rather than as animated
85   instrumentation */
86.brk{position:relative}
87.brk::before,.brk::after{content:'';position:absolute;width:12px;height:12px;
88  border:1px solid rgba(214,226,244,0.35);pointer-events:none}
89.brk::before{left:-1px;top:-1px;border-right:0;border-bottom:0}
90.brk::after{right:-1px;bottom:-1px;border-left:0;border-top:0}
91
92/* ── buttons ──────────────────────────────────────────────────
93   One CTA on this page and it is WhatsApp, so butter fill means
94   WhatsApp and nothing else: the nav pill, the hero, the closing
95   block, the in-form alternative and the floating widget. The form's
96   own submit takes the paper fill so it reads as the quieter second
97   route rather than a rival call to action. Everything else — call,
98   location, maps — is a detail, set as text or an outline.
99   ─────────────────────────────────────────────────────────────── */
100.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
101  font-family:'Manrope',sans-serif;font-weight:700;font-size:13px;letter-spacing:0.12em;
102  text-transform:uppercase;color:var(--ivp-on-brand);background:var(--ivp-brand);border:0;
103  border-radius:999px;padding:15px 28px;cursor:pointer;text-decoration:none;
104  box-shadow:0 4px 14px rgba(247,247,136,0.22);transition:transform .2s ease,box-shadow .2s ease}
105.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(247,247,136,0.3)}
106.btn:active{transform:translateY(0)}
107.btn[disabled]{opacity:.55;cursor:default;transform:none}
108.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.26);
109  box-shadow:none}
110.btn-ghost:hover{background:rgba(255,255,255,0.06);box-shadow:none}
111/* the form's submit: present and pressable, but never butter */
112.btn-paper{background:var(--ivp-paper);color:var(--ivp-ink);box-shadow:none}
113.btn-paper:hover{background:#fff;box-shadow:0 6px 18px rgba(255,255,255,0.14)}
114.btn svg{width:16px;height:16px;fill:currentColor;flex:none}
115
116/* ═══ HERO ═══════════════════════════════════════════════════════ */
117/* No nav allowance here: inject-layout.js puts padding-top 91px (108px from
118   768px up) on the first body child that is not #next-header, which is this
119   element. Adding our own would double the gap. */
120.hero{position:relative;padding:clamp(40px,5vw,72px) 0 0;overflow:hidden}
121/* the LED dot field, at the source page's own spacing and weight */
122.hero::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
123  background-image:radial-gradient(circle,rgba(255,255,255,0.10) 1.1px,transparent 1.6px);
124  background-size:8px 8px;
125  -webkit-mask-image:radial-gradient(120% 80% at 50% 0%,#000,transparent 72%);
126  mask-image:radial-gradient(120% 80% at 50% 0%,#000,transparent 72%)}
127/* the butter glow the source page puts behind its closing CTA */
128.hero::after{content:'';position:absolute;left:50%;top:-46%;width:1100px;height:820px;
129  transform:translateX(-50%);pointer-events:none;z-index:0;
130  background:radial-gradient(50% 50% at 50% 50%,rgba(247,247,136,0.10),transparent 70%)}
131.hero .wrap{position:relative;z-index:2;padding-bottom:clamp(52px,6vw,86px)}
132.hero h1{font-size:clamp(40px,6.4vw,88px);color:#fff}
133.hero h1 em{font-style:normal;color:var(--ivp-brand)}
134.hero-sub{margin:22px 0 0;max-width:52ch;font-size:clamp(15px,1.5vw,17px);font-weight:500;
135  line-height:1.65;color:var(--ivp-mut)}
136.hero-sub b{color:#fff;font-weight:700}
137.hero-acts{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin:34px 0 0}
138.or{margin:0;font-size:13.5px;font-weight:500;color:var(--ivp-mut)}
139.or a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,0.28)}
140.or a:hover{border-bottom-color:var(--ivp-brand);color:var(--ivp-brand)}
141.fin-or{margin:20px auto 0;max-width:560px}
142/* the operating facts, as instrument readouts rather than badges */
143.readout{display:flex;flex-wrap:wrap;gap:0 44px;margin:44px 0 0;padding:22px 0 0;
144  border-top:1px solid var(--ivp-line)}
145.readout div{padding:6px 0}
146.readout .k{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:0.22em;
147  text-transform:uppercase;color:var(--ivp-mut2);margin:0 0 6px}
148.readout .v{margin:0;font-size:15px;font-weight:700;color:#fff}
149.readout .v em{font-style:normal;color:var(--ivp-brand)}
150
151/* the signal marquee, carried over — its content here is operational
152   fact, not marketing */
153.marq{position:relative;overflow:hidden;padding:15px 0;background:var(--ivp-brand)}
154.marq-in{display:flex;gap:52px;white-space:nowrap;animation:marq 38s linear infinite;
155  width:max-content}
156.marq .mono{font-size:11.5px;font-weight:700;letter-spacing:0.22em;color:var(--ivp-on-brand);
157  display:flex;align-items:center}
158.marq .mono::before{content:'';display:inline-block;width:4px;height:4px;border-radius:1px;
159  background:rgba(21,21,8,0.55);margin-right:12px}
160@keyframes marq{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
161
162/* ═══ CONTACT GRID ═══════════════════════════════════════════════ */
163.grid-sec{padding:clamp(56px,7vw,96px) 0}
164.cgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,470px);
165  gap:clamp(32px,4.5vw,68px);align-items:start}
166
167/* channels as instrument rows */
168.chan{margin:32px 0 0;padding:0;list-style:none}
169.chan li{display:flex;gap:18px;align-items:flex-start;padding:22px 0;
170  border-top:1px solid var(--ivp-line)}
171.chan li:last-child{border-bottom:1px solid var(--ivp-line)}
172.chan .ico{width:42px;height:42px;flex:none;border-radius:50%;display:flex;
173  align-items:center;justify-content:center;border:1px solid var(--ivp-line);
174  background:var(--ivp-pane)}
175.chan .ico svg{width:18px;height:18px;fill:#fff}
176.chan .ico.wa{border-color:rgba(247,247,136,0.4);background:rgba(247,247,136,0.08)}
177.chan .ico.wa svg{fill:var(--ivp-brand)}
178.chan .k{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:0.22em;
179  text-transform:uppercase;color:var(--ivp-mut2);margin:0 0 6px}
180.chan .v{margin:0;font-size:21px;font-weight:800;letter-spacing:-0.02em;line-height:1.25;
181  word-break:break-word}
182.chan .v a{color:#fff;text-decoration:none;border-bottom:2px solid rgba(247,247,136,0.5);
183  padding-bottom:2px;transition:border-color .2s,color .2s}
184.chan .v a:hover{color:var(--ivp-brand);border-bottom-color:var(--ivp-brand)}
185.chan .n{margin:8px 0 0;font-size:13.5px;line-height:1.6;color:var(--ivp-mut)}
186
187/* hours + address */
188.here{margin:34px 0 0}
189/* hours across the top, the two centres side by side beneath — three columns
190   was too tight for two postal addresses and a map button each */
191.here > div + div{margin-top:26px;padding-top:26px;border-top:1px solid var(--ivp-line)}
192.sites{margin:0;padding:0;list-style:none;display:grid;
193  grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 32px;align-items:start}
194.sites li{display:flex;flex-direction:column;height:100%}
195.sites .maplink{margin-top:auto;align-self:flex-start;padding-top:9px}
196.sites .addr{margin-bottom:14px}
197.site{margin:0 0 8px;font-size:13px;font-weight:800;letter-spacing:-0.01em;color:#fff}
198.site::before{content:'';display:inline-block;width:5px;height:5px;border-radius:1px;
199  background:var(--ivp-brand);margin-right:8px;vertical-align:2px}
200.here .k{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:0.22em;
201  text-transform:uppercase;color:var(--ivp-mut2);margin:0 0 10px}
202.hrs{margin:0;font-size:17px;font-weight:700;line-height:1.5;color:#fff}
203.hrs em{font-style:normal;color:var(--ivp-brand)}
204.hrs span{display:block;font-size:13.5px;font-weight:500;color:var(--ivp-mut2);margin-top:2px}
205.here .n{margin:10px 0 0;font-size:12.5px;line-height:1.6;color:var(--ivp-mut)}
206.addr{font-style:normal;font-size:14.5px;line-height:1.7;color:var(--ivp-mut);margin:0}
207.maplink{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:11px;
208  letter-spacing:0.12em;text-transform:uppercase;font-weight:700;color:#fff;white-space:nowrap;
209  text-decoration:none;padding:9px 15px;border-radius:999px;border:1px solid var(--ivp-line)}
210.maplink:hover{border-color:rgba(247,247,136,0.5);color:var(--ivp-brand)}
211.maplink svg{width:14px;height:14px;fill:var(--ivp-brand)}
212
213/* ── the form, in the source page's glass-pane idiom ─────────── */
214.pane{position:relative;border-radius:22px;padding:30px clamp(22px,2.4vw,32px);
215  background:linear-gradient(135deg,rgba(20,24,38,0.5),rgba(12,15,26,0.34));
216  border:1px solid rgba(255,255,255,0.16);
217  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow:hidden}
218.pane::before{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;
219  background:linear-gradient(115deg,rgba(255,255,255,0.10) 0%,rgba(255,255,255,0.02) 34%,
220    rgba(255,255,255,0) 55%)}
221.pane > *{position:relative;z-index:1}
222.pane h3{font-size:26px;font-weight:800;letter-spacing:-0.025em;line-height:1.1;color:#fff}
223.pane h3 em{font-style:normal;color:var(--ivp-brand)}
224.pane .sub{margin:10px 0 24px;font-size:13.5px;line-height:1.6;color:var(--ivp-mut)}
225.field{margin:0 0 14px}
226.field label,.flabel{display:block;font-family:'Share Tech Mono',monospace;font-size:10px;
227  letter-spacing:0.22em;text-transform:uppercase;color:var(--ivp-mut2);margin:0 0 8px}
228.field input,.field select,.field textarea{width:100%;font-family:'Manrope',sans-serif;
229  font-size:15px;font-weight:600;padding:14px 15px;color:#fff;
230  background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.16);border-radius:12px}
231.field textarea{min-height:82px;resize:vertical;line-height:1.55;font-weight:500}
232.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,0.34);
233  font-weight:500}
234.field select option{background:#14161F;color:#fff}
235.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ivp-brand);
236  background:rgba(247,247,136,0.06);outline:none;box-shadow:0 0 0 3px rgba(247,247,136,0.14)}
237.tel{display:flex;align-items:stretch;background:rgba(255,255,255,0.05);
238  border:1px solid rgba(255,255,255,0.16);border-radius:12px;overflow:hidden}
239.tel span{display:flex;align-items:center;padding:0 14px;font-size:15px;font-weight:700;
240  color:var(--ivp-mut);background:rgba(255,255,255,0.05);border-right:1px solid rgba(255,255,255,0.14)}
241.tel input{border:0;border-radius:0;background:transparent;flex:1 1 auto;min-width:0}
242.tel input:focus{box-shadow:none;background:transparent}
243.tel:focus-within{border-color:var(--ivp-brand);box-shadow:0 0 0 3px rgba(247,247,136,0.14)}
244.pref{display:flex;gap:9px}
245.pref button{flex:1 1 0;font-family:'Manrope',sans-serif;font-size:12px;font-weight:700;
246  letter-spacing:0.1em;text-transform:uppercase;padding:12px 10px;cursor:pointer;
247  border:1px solid rgba(255,255,255,0.16);background:rgba(255,255,255,0.04);color:var(--ivp-mut);
248  border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
249  transition:all .2s}
250.pref button:hover{color:#fff;border-color:rgba(255,255,255,0.4)}
251.pref button[aria-pressed=true]{background:var(--ivp-paper);border-color:var(--ivp-paper);
252  color:var(--ivp-ink)}
253.pref svg{width:14px;height:14px;flex:none;fill:currentColor}
254.consent{display:flex;gap:11px;align-items:flex-start;margin:16px 0 16px;
255  font-size:12.5px;line-height:1.55;color:var(--ivp-mut)}
256.consent input{flex:none;margin-top:2px;width:17px;height:17px;accent-color:var(--ivp-brand)}
257.cf-turnstile{margin:0 0 16px;min-height:65px}
258.pane .btn{width:100%}
259.alt{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin:11px 0 0;
260  padding:13px 18px;border:1px solid rgba(255,255,255,0.2);background:transparent;
261  font-size:12px;letter-spacing:0.12em;text-transform:uppercase;font-weight:700;color:#fff;
262  text-decoration:none;border-radius:999px}
263.alt:hover{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.34)}
264.alt svg{width:15px;height:15px;fill:currentColor}
265.err{margin:0 0 14px;font-size:13px;font-weight:600;color:var(--ivp-brand);
266  background:rgba(247,247,136,0.1);border-left:2px solid var(--ivp-brand);padding:11px 14px;
267  border-radius:0 8px 8px 0}
268.fine{margin:14px 0 0;font-size:11.5px;line-height:1.6;color:var(--ivp-mut2)}
269.fine a{color:var(--ivp-mut)}
270.pane-strip{margin:24px -32px -30px;padding:14px 20px;text-align:center;
271  background:rgba(255,255,255,0.04);border-top:1px solid var(--ivp-line);
272  font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:0.22em;
273  text-transform:uppercase;color:var(--ivp-mut2)}
274.thanks h3{margin:0 0 12px}
275.thanks p{margin:0 0 14px;font-size:14px;line-height:1.65;color:var(--ivp-mut)}
276.thanks p:last-child{margin-bottom:0}
277.thanks a{color:#fff}
278.thanks .btn{margin-top:2px}
279
280/* ═══ PROCESS ════════════════════════════════════════════════════ */
281.proc{padding:clamp(56px,7vw,96px) 0;border-top:1px solid var(--ivp-line);background:var(--ivp-ink-2)}
282.proc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);
283  gap:clamp(32px,4.5vw,68px);align-items:start}
284.steps{margin:34px 0 0;padding:0;list-style:none;counter-reset:s;display:grid;gap:2px}
285.steps li{position:relative;padding:22px 0 22px 60px;border-top:1px solid var(--ivp-line);
286  font-size:14.5px;line-height:1.65;color:var(--ivp-mut)}
287.steps li::before{counter-increment:s;content:"0" counter(s);position:absolute;left:0;top:22px;
288  font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:0.16em;
289  color:var(--ivp-brand)}
290.steps b{display:block;color:#fff;font-weight:800;font-size:16px;letter-spacing:-0.01em;
291  margin-bottom:5px}
292.promise{margin:0;padding:0;list-style:none}
293.promise li{position:relative;padding:15px 0 15px 26px;font-size:13.5px;line-height:1.55;
294  color:var(--ivp-mut);border-bottom:1px solid var(--ivp-line)}
295.promise li:last-child{border-bottom:0}
296.promise li::before{content:'';position:absolute;
296left:0;top:21px;width:5px;height:5px;
297  border-radius:1px;background:var(--ivp-brand)}
298.pbox{padding:26px;border:1px solid var(--ivp-line);border-radius:18px;background:var(--ivp-pane)}
299.pbox h3{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:0.22em;
300  text-transform:uppercase;color:var(--ivp-mut2);font-weight:400;margin:0 0 6px}
301.noNum{margin:18px 0 0;padding-top:18px;border-top:1px solid var(--ivp-line);font-size:12.5px;
302  line-height:1.6;color:var(--ivp-mut2)}
303.noNum a{color:var(--ivp-brand)}
304
305/* ═══ SCOPE ══════════════════════════════════════════════════════ */
306.scope{padding:clamp(56px,7vw,96px) 0;border-top:1px solid var(--ivp-line)}
307.scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
308  gap:clamp(26px,3.4vw,52px);margin-top:36px}
309.scope h3{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:0.22em;
310  text-transform:uppercase;font-weight:400;margin:0 0 6px}
311.scope .can h3{color:var(--ivp-brand)}
312.scope .cant h3{color:var(--ivp-mut2)}
313.slist{margin:0;padding:0;list-style:none}
314.slist li{position:relative;padding:16px 0 16px 30px;border-bottom:1px solid var(--ivp-line);
315  font-size:14px;line-height:1.6}
316.slist li:last-child{border-bottom:0}
317.slist li::before{position:absolute;left:0;top:16px;font-size:13px;font-weight:800}
318.can li{color:#fff}
319.can li::before{content:"+";color:var(--ivp-brand)}
320.cant li{color:var(--ivp-mut)}
321.cant li::before{content:"\2212";color:var(--ivp-mut2)}
322.slist a{color:var(--ivp-brand)}
323/* the one block on the page that must out-shout the CTA */
324.urgent{margin:38px 0 0;padding:20px 22px;border:1px solid rgba(247,247,136,0.4);
325  border-left:3px solid var(--ivp-brand);border-radius:0 14px 14px 0;
326  background:rgba(247,247,136,0.07);font-size:14px;line-height:1.65;color:#fff}
327.urgent b{color:var(--ivp-brand)}
328
329/* ═══ DESKS ══════════════════════════════════════════════════════ */
330.desks{padding:clamp(56px,7vw,96px) 0;border-top:1px solid var(--ivp-line);background:var(--ivp-ink-2)}
331.desk-list{margin:36px 0 0;padding:0;list-style:none;display:grid;
332  grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(26px,3.4vw,52px)}
333.desk-list li{padding:20px 0;border-bottom:1px solid var(--ivp-line)}
334.desk-list .dt{margin:0 0 7px;font-size:15px;font-weight:800;letter-spacing:-0.01em;color:#fff}
335.desk-list p{margin:0;font-size:13.5px;line-height:1.6;color:var(--ivp-mut)}
336.desk-list a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(247,247,136,0.45)}
337.desk-list a:hover{color:var(--ivp-brand)}
338.desk-list code{font-family:'Share Tech Mono',monospace;font-size:10.5px;letter-spacing:0.16em;
339  color:var(--ivp-brand);border:1px solid rgba(247,247,136,0.38);border-radius:999px;
340  padding:3px 11px;white-space:nowrap}
341
342/* ═══ FAQ ════════════════════════════════════════════════════════ */
343.faq{padding:clamp(56px,7vw,96px) 0;border-top:1px solid var(--ivp-line)}
344.faq dl{margin:36px 0 0}
345.faq dt{font-size:19px;font-weight:800;letter-spacing:-0.02em;color:#fff;padding-top:26px;
346  border-top:1px solid var(--ivp-line)}
347.faq dt:first-of-type{border-top:0;padding-top:0}
348.faq dd{margin:10px 0 28px;font-size:14.5px;line-height:1.75;color:var(--ivp-mut);max-width:74ch}
349.faq dd:last-of-type{margin-bottom:0}
350.faq dd a{color:var(--ivp-brand)}
351
352/* ═══ CLOSING ════════════════════════════════════════════════════ */
353.fin{position:relative;background:var(--ivp-ink);text-align:center;
354  padding:clamp(74px,9vw,130px) var(--ivp-gut) clamp(66px,8vw,110px);overflow:hidden;
355  border-top:1px solid var(--ivp-line)}
356.fin::before{content:'';position:absolute;left:50%;top:-40%;width:1100px;height:800px;
357  transform:translateX(-50%);pointer-events:none;
358  background:radial-gradient(50% 50% at 50% 50%,rgba(247,247,136,0.14),transparent 70%)}
359.fin > *{position:relative;z-index:1}
360.fin .mono{font-size:13px;color:var(--ivp-mut)}
361.fin h2{font-size:clamp(32px,4.4vw,64px);color:#fff;margin:18px auto 0;max-width:16ch}
362.fin h2 em{font-style:normal;color:var(--ivp-brand)}
363.fin p{max-width:520px;margin:18px auto 34px;font-size:15.5px;font-weight:500;line-height:1.65;
364  color:var(--ivp-mut)}
365.fin-acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
366/* the in-form WhatsApp alternative, full width under the submit */
367.alt-wa{width:100%;margin:11px 0 0}
368
369/* ═══ FLOATING WHATSAPP WIDGET ═══════════════════════════════════
370   Butter, not WhatsApp green: on this ground the brand colour is the
371   action colour, and the glyph already carries the recognition. Swap
372   background to var(--ivp-wa) with #fff glyph if you want the green back.
373   The reimagined pages are self-contained and carry no widget of their
374   own, so this page brings it — but if this ever becomes a route
375   inside the Next app, DELETE it or you ship two. */
376.wafloat{position:fixed;right:20px;bottom:20px;z-index:70;display:inline-flex;
377  align-items:center;gap:10px;padding:14px 22px;border-radius:999px;background:var(--ivp-brand);
378  color:var(--ivp-on-brand);font-family:'Manrope',sans-serif;font-weight:700;font-size:13px;
379  letter-spacing:0.02em;text-decoration:none;box-shadow:0 8px 26px rgba(247,247,136,0.28);
380  transition:transform .2s ease,box-shadow .2s ease}
381.wafloat:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(247,247,136,0.38)}
382.wafloat svg{width:21px;height:21px;
382fill:var(--ivp-on-brand);flex:none}
383
384/* ═══ RESPONSIVE ═════════════════════════════════════════════════ */
385@media (max-width:900px){
386  .cgrid,.proc-grid,.scope-grid{grid-template-columns:minmax(0,1fr)}
387  .desk-list{grid-template-columns:minmax(0,1fr)}
388  .readout{gap:0 30px}
389}
390@media (max-width:700px){
391  .here{grid-template-columns:minmax(0,1fr);gap:24px}
392  .sites{grid-template-columns:minmax(0,1fr);gap:22px}
393  .pane-strip{margin-left:-22px;margin-right:-22px}
394  /* the pill would sit on the form's submit button, so it becomes a disc */
395  .wafloat{right:14px;bottom:14px;padding:15px;border-radius:50%}
396  .wafloat span{display:none}
397  .wafloat svg{width:24px;height:24px}
398}
399@media (prefers-reduced-motion:reduce){
400  *{animation:none !important;transition:none !important}
401  .marq-in{animation:none !important}
402}
403
404</style>
405<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap">
406<style id="chrome-baked">
407:root{--font-poppins:'Poppins'}
408.NewLpHeader_glassNav__pU2Cj { border: 1px solid rgba(255, 255, 255, 0.1); background-color: rgba(255, 255, 255, 0.1); backdrop-filter: blur(26px) saturate(1.25); }
409.NewLpHeader_glassNav__pU2Cj::before { opacity: 0.1; background-image: url("/Noise.png"); background-size: 220px 220px; mix-blend-mode: overlay; }
410.NewLpHeader_glassNav__pU2Cj::after, .NewLpHeader_glassNav__pU2Cj::before { content: ""; position: absolute; inset: 0px; pointer-events: none; border-radius: inherit; }
411.NewLpHeader_glassNav__pU2Cj::after { background: rgba(255, 255, 255, 0.06); }
412.NewLpHeader_transparentNav__W5DHe { border: 1px solid rgba(0, 0, 0, 0); background: rgba(0, 0, 0, 0); box-shadow: none; backdrop-filter: none; }
413@media (max-width: 480px) {
414  .NewLpHeader_glassNav__pU2Cj { backdrop-filter: blur(18px) saturate(1.2); }
415}
416.bf { --brand: #f7f788; --foot: #2a2a2a; --fg: #ffffffa8; --fg-dim: #ffffff70; --fg-hair: #ffffff1f; --mono: ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace; background: var(--foot); color: var(--fg); padding: 72px 0px 40px; font-family: var(--font-manrope),ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
417.bf-in { max-width: 1180px; margin: 0px auto; padding: 0px 32px; }
418@media (max-width: 640px) {
419  .bf { padding: 52px 0px 32px; }
420  .bf-in { padding: 0px 20px; }
421}
422.bf a { color: var(--fg); text-decoration: none; }
423.bf a:hover { color: rgb(255, 255, 255); text-decoration: underline 1.5px; text-underline-offset: 3px; }
424.bf a:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: 2px; }
425.bf h2 { font-size: 15px; font-weight: 700; color: rgb(255, 255, 255); margin: 0px 0px 0.9rem; letter-spacing: -0.01em; }
426.bf .lbl { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--fg-dim); margin: 0px 0px 1rem; }
427.bf-read { border-bottom: 1px solid var(--fg-hair); padding-bottom: 40px; margin-bottom: 40px; }
428.bf-grid { display: grid; gap: 10px 28px; grid-template-columns: 1fr; }
429@media (min-width: 36rem) {
430  .bf-grid { grid-template-columns: 1fr 1fr; }
431}
432@media (min-width: 60rem) {
433  .bf-grid { grid-template-columns: 1fr 1fr 1fr; }
434}
435.bf-art { display: block; font-size: 14.5px; line-height: 1.45; padding: 7px 0px; border-bottom: 1px solid var(--fg-hair); }
436.bf-art:last-child { border-bottom: 0px; }
437.bf-topics { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; }
438.bf-topic { display: inline-flex; align-items: baseline; gap: 6px; border: 1px solid var(--fg-hair); border-radius: 999px; padding: 7px 14px; font-size: 14px; font-weight: 600; color: rgb(255, 255, 255); }
439.bf-topic:hover { background: rgba(255, 255, 255, 0.07); text-decoration: none; }
440.bf-topic span { font-size: 12px; color: var(--fg-dim); font-weight: 400; }
441.bf-dir { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; border: 1px solid var(--fg-hair); border-radius: 18px; padding: 20px 24px; margin-bottom: 44px; }
442.bf-dir .t { font-size: 16px; font-weight: 700; color: rgb(255, 255, 255); margin: 0px; }
443.bf-dir .s { font-size: 14px; color: var(--fg-dim); margin: 2px 0px 0px; max-width: 52ch; }
444.bf-dir .go { margin-left: auto; background: var(--brand); color: rgb(10, 10, 11); font-weight: 700; font-size: 14px; border-radius: 999px; padding: 10px 20px; white-space: nowrap; }
445.bf-dir .go:hover { opacity: 0.85; text-decoration: none; color: rgb(10, 10, 11); }
446@media (max-width: 44rem) {
447  .bf-dir .go { margin-left: 0px; }
448}
449.bf-cols { display: grid; gap: 34px 28px; grid-template-columns: repeat(2, 1fr); border-bottom: 1px solid var(--fg-hair); padding-bottom: 40px; }
450@media (min-width: 52rem) {
451  .bf-cols { grid-template-columns: repeat(4, 1fr) 1.3fr; }
452}
453.bf-cols ul { list-style: none; margin: 0px; padding: 0px; display: grid; gap: 9px; }
454.bf-cols li { font-size: 14.5px; }
455.bf-cols b { color: rgb(255, 255, 255); }
456.bf-social { display: flex; gap: 10px; margin-top: 2px; }
457.bf-social a { width: 38px; height: 38px; border-radius: 999px; background: rgba(255, 255, 255, 0.1); display: flex; align-items: center; justify-content: center; }
458.bf-social a:hover { background: rgba(255, 255, 255, 0.2); }
459.bf-social svg { width: 17px; height: 17px; fill: rgb(255, 255, 255); }
460.bf-legal { padding-top: 34px; font-size: 12.5px; line-height: 1.65; color: var(--fg-dim); display: grid; gap: 12px; max-width: 96ch; }
461.bf-legal b { color: rgba(255, 255, 255, 0.82); }
462.bf-base { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--fg-hair); font-size: 12.5px; }
463.bf-base .brand { font-weight: 800; color: rgb(255, 255, 255); letter-spacing: -0.02em; font-size: 15px; }
464.bf-base .brand .accent { color: var(--brand); }
465.bf-base .sp { margin-left: auto; }
466@media (max-width: 44rem) {
467  .bf-base .sp { margin-left: 0px; }
468}
469*, ::after, ::before { --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; }
470::backdrop { --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; }
471*, ::after, ::before { box-sizing: border-box; border: 0px solid rgb(229, 231, 235); }
472::after, ::before { }
473 h2 { font-size: inherit; font-weight: inherit; }
474a { color: inherit; text-decoration: inherit; }
475b { font-weight: bolder; }
476button { font-family: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; margin: 0px; padding: 0px; }
477button { text-transform: none; }
478button { appearance: button; background-color: initial; background-image: none; }
479::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; }
480::-webkit-search-decoration { appearance: none; }
481::-webkit-file-upload-button { appearance: button; font: inherit; }
482 h2, p { margin: 0px; }
483menu, ul { list-style: none; margin: 0px; padding: 0px; }
484dialog { padding: 0px; }
485 button { cursor: pointer; }
486 img, svg { display: block; vertical-align: middle; }
487img { max-width: 100%; height: auto; }
488:root { --border: 0 0% 89.8%; }
489* { border-color: hsl(var(--border)); }
490.pointer-events-none { pointer-events: none; }
491.pointer-events-auto { pointer-events: auto; }
492.fixed { position: fixed; }
493.absolute { position: absolute; }
494.relative { position: relative; }
495.inset-0 { inset: 0px; }
496.left-0 { left: 0px; }
497.left-1\/2 { left: 50%; }
498.right-0 { right: 0px; }
499.top-1\/2 { top: 50%; }
500.top-5 { top: 1.25rem; }
501.z-10 { z-index: 10; }
502.z-\[100\] { z-index: 100; }
503.z-\[80\] { z-index: 80; }
504.ml-auto { margin-left: auto; }
505.mt-3 { margin-top: 0.75rem; }
506.mt-6 { margin-top: 1.5rem; }
507.flex { display: flex; }
508.size-10 { width: 2.5rem; height: 2.5rem; }
509.h-12 { height: 3rem; }
510.h-\[28px\] { height: 28px; }
511.h-\[34px\] { height: 34px; }
512.h-\[56px\] { height: 56px; }
513.h-\[70px\] { height: 70px; }
514.h-full { height: 100%; }
515.h-px { height: 1px; }
516.w-\[100px\] { width: 100px; }
517.w-\[110px\] { width: 110px; }
518.w-\[120px\] { width: 120px; }
519.w-full { width: 100%; }
520.max-w-\[1200px\] { max-width: 1200px; }
521.flex-1 { flex: 1 1 0%; }
522.-translate-x-1\/2 { --tw-translate-x: -50%; }
523.-translate-x-1\/2, .-translate-x-3 { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
524.-translate-x-3 { --tw-translate-x: -0.75rem; }
525.-translate-x-\[50\%\] { --tw-translate-x: -50%; transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
526.-translate-y-1\/2, .-translate-y-\[50\%\] { --tw-translate-y: -50%; }
527.-translate-y-1\/2, .-translate-y-\[50\%\], .-translate-y-\[75\%\] { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
528.-translate-y-\[75\%\] { --tw-translate-y: -75%; }
529.-translate-y-\[90\%\] { --tw-translate-y: -90%; }
530.-translate-y-\[90\%\], .-translate-y-full { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
531.-translate-y-full { --tw-translate-y: -100%; }
532.translate-x-\[-50\%\] { --tw-translate-x: -50%; }
533.translate-x-\[-50\%\], .translate-y-0 { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
534.translate-y-0 { --tw-translate-y: 0px; }
535.translate-y-12 { --tw-translate-y: 3rem; }
536.translate-y-12, .translate-y-6 { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
537.translate-y-6 { --tw-translate-y: 1.5rem; }
538.translate-y-\[-50\%\] { --tw-translate-y: -50%; }
539.translate-y-\[-50\%\], .translate-y-\[1px\] { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
540.translate-y-\[1px\] { --tw-translate-y: 1px; }
541.translate-y-\[2px\] { --tw-translate-y: 2px; }
542.translate-y-\[2px\], .translate-y-\[4px\] { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
543.translate-y-\[4px\] { --tw-translate-y: 4px; }
544.translate-y-\[50\%\] { --tw-translate-y: 50%; }
545 .translate-y-\[50\%\] { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
546.cursor-pointer { cursor: pointer; }
547.flex-col { flex-direction: column; }
548.items-center { align-items: center; }
549.justify-center { justify-content: center; }
550.justify-between { justify-content: space-between; }
551.gap-4 { gap: 1rem; }
552.gap-6 { gap: 1.5rem; }
553.overflow-hidden { overflow: hidden; }
554.rounded-\[999px\] { border-radius: 999px; }
555.rounded-full { border-radius: 9999px; }
556.border-b { border-bottom-width: 1px; }
557.border-\[\#2A2A2A1A\] { border-color: rgba(42, 42, 42, 0.1); }
558.bg-\[\#2A2A2A1A\] { background-color: rgba(42, 42, 42, 0.1); }
559.bg-\[\#2A2A2A\] { --tw-bg-opacity: 1; background-color: rgb(42 42 42/var(--tw-bg-opacity,1)); }
560.bg-black\/20 { background-color: rgba(0, 0, 0, 0.2); }
561.bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255/var(--tw-bg-opacity,1)); }
562.bg-opacity-20 { --tw-bg-opacity: 0.2; }
563.bg-opacity-40 { --tw-bg-opacity: 0.4; }
564.bg-opacity-60 { --tw-bg-opacity: 0.6; }
565.object-contain { object-fit: contain; }
566.px-4 { padding-left: 1rem; padding-right: 1rem; }
567.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
568.px-8 { padding-left: 2rem; padding-right: 2rem; }
569.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
570.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
571.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
572.pb-10 { padding-bottom: 2.5rem; }
573.pt-4 { padding-top: 1rem; }
574.text-center { text-align: center; }
575.font-manrope { font-family: var(--font-manrope),sans-serif; }
576.font-plusjakarta { font-family: var(--font-plus-jakarta-sans),sans-serif; }
577.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
578.font-medium { font-weight: 500; }
579.font-semibold { font-weight: 600; }
580.text-\[\#2A2A2A\] { --tw-text-opacity: 1; color: rgb(42 42 42/var(--tw-text-opacity,1)); }
581.text-white { --tw-text-opacity: 1; color: rgb(255 255 255/var(--tw-text-opacity,1)); }
582.opacity-0 { opacity: 0; }
583.opacity-100 { opacity: 1; }
584.opacity-20 { opacity: 0.2; }
585.opacity-30 { opacity: 0.3; }
586.opacity-35 { opacity: 0.35; }
587.opacity-40 { opacity: 0.4; }
588.opacity-50 { opacity: 0.5; }
589.opacity-55 { opacity: 0.55; }
590.opacity-60 { opacity: 0.6; }
591.opacity-70 { opacity: 0.7; }
592.opacity-80 { opacity: 0.8; }
593.opacity-85 { opacity: 0.85; }
594.opacity-90 { opacity: 0.9; }
595.opacity-\[\.8\] { opacity: 0.8; }
596.opacity-\[0\.7\] { opacity: 0.7; }
597.shadow-\[0_12px_40px_rgba\(0\,0\,0\,0\.12\)\] { --tw-shadow: 0 12px 40px #0000001f; box-shadow: var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-sha
597dow); }
598.backdrop-blur-\[3px\] { --tw-backdrop-blur: blur(3px); }
599.backdrop-blur-\[3px\], .backdrop-blur-\[60px\] { backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
600.backdrop-blur-\[60px\] { --tw-backdrop-blur: blur(60px); }
601.backdrop-blur-md { --tw-backdrop-blur: blur(12px); }
602.backdrop-blur-md, .backdrop-blur-sm { backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
603.backdrop-blur-sm { --tw-backdrop-blur: blur(4px); }
604.backdrop-blur-xl { --tw-backdrop-blur: blur(24px); }
605.backdrop-blur-xl, .backdrop-saturate-150 { backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
606.backdrop-saturate-150 { --tw-backdrop-saturate: saturate(1.5); }
607.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.15s; }
608.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.15s; }
609.duration-300 { transition-duration: 0.3s; }
610.duration-300 { animation-duration: 0.3s; }
611.next-layout-reset { font-size: 16px !important; line-height: 1.5 !important; text-size-adjust: 100% !important; }
612.next-layout-reset, .next-layout-reset *, .next-layout-reset ::after, .next-layout-reset ::before { box-sizing: border-box !important; }
613.next-layout-reset .text-sm { font-size: 14px !important; }
614@media (min-width: 768px) {
615}
616@media (min-width: 1024px) {
617}
618.hover\:-translate-y-1:hover { --tw-translate-y: -0.25rem; }
619.hover\:-translate-y-1:hover { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
620.hover\:bg-opacity-80:hover { --tw-bg-opacity: 0.8; }
621.hover\:underline:hover { text-decoration-line: underline; }
622.hover\:opacity-0:hover { opacity: 0; }
623.hover\:opacity-100:hover { opacity: 1; }
624.hover\:opacity-90:hover { opacity: 0.9; }
625.disabled\:pointer-events-none:disabled { pointer-events: none; }
626.disabled\:opacity-50:disabled { opacity: 0.5; }
627.disabled\:opacity-60:disabled { opacity: 0.6; }
628.group:hover .group-hover\:-translate-x-0\.5 { --tw-translate-x: -0.125rem; }
629.group:hover .group-hover\:-translate-x-0\.5, .group:hover .group-hover\:translate-x-1 { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
630.group:hover .group-hover\:translate-x-1 { --tw-translate-x: 0.25rem; }
631@media not all and (min-width: 1024px) {
632  .max-lg\:-translate-x-1\/2 { --tw-translate-x: -50%; transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
633}
634@media not all and (min-width: 768px) {
635  .max-md\:-translate-x-1\/2 { --tw-translate-x: -50%; }
636  .max-md\:-translate-x-1\/2, .max-md\:-translate-y-5 { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
637  .max-md\:-translate-y-5 { --tw-translate-y: -1.25rem; }
638  .max-md\:-translate-y-\[32\%\] { --tw-translate-y: -32%; }
639  .max-md\:-translate-y-\[32\%\], .max-md\:-translate-y-\[50\%\] { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
640  .max-md\:-translate-y-\[50\%\] { --tw-translate-y: -50%; }
641  .max-md\:translate-x-1\/2 { --tw-translate-x: 50%; }
642   .max-md\:translate-x-1\/2 { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
643  .max-md\:hidden { display: none; }
644}
645@media not all and (min-width: 640px) {
646  .max-sm\:opacity-40 { opacity: 0.4; }
647}
648@media (min-width: 768px) {
649  .md\:hidden { display: none; }
650  .md\:-translate-x-1\/2 { --tw-translate-x: -50%; }
651  .md\:-translate-x-1\/2, .md\:-translate-y-1\/2 { transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
652  .md\:-translate-y-1\/2 { --tw-translate-y: -50%; }
653  .md\:-translate-y-\[70\%\] { --tw-translate-y: -70%; transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
654  .md\:opacity-\[50\%\] { opacity: 0.5; }
655  .md\:opacity-\[60\%\] { opacity: 0.6; }
656}
657@media (min-width: 1024px) {
658  .lg\:-translate-y-10 { --tw-translate-y: -2.5rem; transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
659}
660@media (min-width: 1280px) {
661  .xl\:translate-y-\[-50\%\] { --tw-translate-y: -50%; transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
662}
663.\[\&_input\:\:placeholder\]\:opacity-100 input::placeholder { opacity: 1; }
664.\[\&_svg\]\:pointer-events-none svg { pointer-events: none; }
665:root { color-scheme: dark; --brand: #F7F788; }
666* { box-sizing: border-box; }
667@media (prefers-reduced-motion: reduce) {
668  * { transition: none !important; }
669}
670:root { }
671.next-layout-reset { font-family: var(--font-poppins), system-ui, -apple-system, sans-serif !important; font-size: 16px !important; line-height: 1.5 !important; box-sizing: border-box !important; text-size-adjust: 100% !important; }
672.next-layout-reset *, .next-layout-reset ::before, .next-layout-reset ::after { box-sizing: border-box !important; }
673.next-layout-reset .text-sm { font-size: 14px !important; }
674.next-layout-reset footer div:has(> a[aria-label*="Pulse on"]) { display: flex !important; flex-direction: row !important; gap: 8px !important; max-width: none !important; }
675.next-glass-nav { border: 1px solid rgba(255, 255, 255, 0.1) !important; background-color: rgba(255, 255, 255, 0.15) !important; backdrop-filter: blur(26px) saturate(1.25) !important; }
676.next-light-header a, .next-light-header span { color: rgb(42, 42, 42) !important; }
677.next-light-header .next-glass-nav { border: 1px solid rgba(0, 0, 0, 0.08) !important; background-color: rgba(255, 255, 255, 0.75) !important; box-shadow: rgba(0, 0, 0, 0.03) 0px 4px 30px !important; backdrop-filter: blur(26px) saturate(1.25) !important; }
678
679/* Chrome override rules — ported from inject-layout.js injectResets().
680   These are NOT in the Tailwind bundle. They carry the scroll-glass /
681   transparency-on-scroll effect and the light-header variant. */
682.next-layout-reset{font-family:var(--font-poppins),system-ui,-apple-system,sans-serif !important;font-size:16px !important;line-height:1.5 !important;box-sizing:border-box !important;-webkit-text-size-adjust:100% !important}
683.next-layout-reset *,.next-layout-reset *::before,.next-layout-reset *::after{box-sizing:border-box !important}
684.next-layout-reset .text-xs{font-size:12px !important}
685.next-layout-reset .text-sm{font-size:14px !important}
686.next-layout-reset .text-base{font-size:16px !important}
687.next-layout-reset .text-lg{font-size:18px !important}
688.next-layout-reset .text-xl{font-size:20px !important}
689.next-layout-reset footer a[aria-label*="Pulse on"]{width:40px !important;height:40px !important}
690.next-layout-reset footer a[aria-label*="Pulse on"] svg{width:18px !important;height:18px !important}
691.next-layout-reset footer div:has(> a[aria-label*="Pulse on"]){display:flex !important;flex-direction:row !important;gap:8px !important;max-width:none !important}
692
693/* Scroll state: glass/frosted nav once the page is scrolled (toggled by chrome-inline.js) */
694.next-glass-nav{border:1px solid rgba(255,255,255,.1) !important;background-color:rgba(255,255,255,.15) !important;backdrop-filter:blur(26px) saturate(1.25) !important;-webkit-backdrop-filter:blur(26px) saturate(1.25) !important}
695
696/* Light-header variant (for light-background pages) */
697.next-light-header a,.next-light-header span{color:#2A2A2A !important}
698.next-light-header a[href="/book-appointment"]{background-color:#2A2A2A !important;color:#FFFFFF !important}
699.next-light-header [aria-label="Open menu"] svg{color:#2A2A2A !important;fill:#2A2A2A !important}
700.next-light-header .next-glass-nav{border:1px solid rgba(0,0,0,.08) !important;background-color:rgba(255,255,255,.75) !important;box-shadow:0 4px 30px rgba(0,0,0,.03) !important;backdrop-filter:blur(26px) saturate(1.25) !important;-webkit-backdrop-filter:blur(26px) saturate(1.25) !important}
701
702/* Reserve the fixed header's height so page content never sits under it (no shift) */
703body{padding-top:91px}
704@media(min-width:768px){body{padding-top:108px}}
705
706</style>
707</head>
708<body>
709
710<div id="next-header" class="next-layout-reset">
711<header class="md:hidden"><header class="pointer-events-none fixed left-0 right-0 top-5 z-[80] flex justify-center px-4 md:hidden"><nav class="pointer-events-auto relative flex h-[56px] w-full items-center justify-between overflow-hidden rounded-full px-4 font-manrope transition-all duration-300 NewLpHeader_transparentNav__W5DHe"><div class="absolute left-1/2 flex h-full -translate-x-1/2 items-center"><a class="relative z-10 h-[28px] w-[100px]" href="https://ivfpulse.com/"><img src="https://content-beta.ivfpulse.com/api/media/file/ivfpulse_text_logo-483x130.webp" alt="ivfpulse" class="object-contain" style="position:absolute;inset:0;width:100%;height:100%" loading="eager" decoding="async" fetchpriority="high"></a></div><div class="relative z-10 ml-auto flex items-center"><button type="button" aria-label="Open menu" class="flex size-10 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#FFFFFF" viewBox="0 0 256 256"><path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"></path></svg></button></div></nav></header><div id="mobile-menu-overlay" class="fixed inset-0 z-[100] transition-all duration-300 opacity-0 pointer-events-none" role="dialog" aria-modal="true"><div class="absolute inset-0 bg-black/20 backdrop-blur-md"></div><div class="relative bg-white pb-10 pt-4 shadow-[0_12px_40px_rgba(0,0,0,0.12)] transition-transform duration-300 -translate-y-full"><div class="relative flex h-12 items-center justify-center border-b border-[#2A2A2A1A] px-6 py-3"><div class="relative h-[28px] w-[110px]"><img src="https://content-beta.ivfpulse.com/api/media/file/ivfpulse_text_dark_logo-483x130.webp" alt="ivfpulse" class="object-contain" style="position:absolute;inset:0;width:100%;height:100%" loading="lazy" decoding="async"></div><button type="button" aria-label="Close menu" class="absolute right-0 top-1/2 flex size-10 -translate-y-1/2 items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#2A2A2A" viewBox="0 0 256 256"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"></path></svg></button></div><div class="mt-3 flex flex-col items-center px-6 font-plusjakarta"><a class="py-4 text-center text-sm font-medium text-[#2A2A2A]" href="https://ivfpulse.com/calculators">Calculators</a><div class="h-px w-full bg-[#2A2A2A1A]"></div><a class="py-4 text-center text-sm font-medium text-[#2A2A2A]" href="https://ivfpulse.com/blogs">IVF Reads</a><div class="h-px w-full bg-[#2A2A2A1A]"></div><a class="py-4 text-center text-sm font-medium text-[#2A2A2A]" href="https://ivfpulse.com/how-it-works">How it Works</a><div class="h-px w-full bg-[#2A2A2A1A]"></div><a class="py-4 text-center text-sm font-medium text-[#2A2A2A]" href="https://ivfpulse.com/second-opinion">2nd Opinion Now</a></div><div class="mt-6 flex justify-center px-6"><a class="cursor-pointer rounded-full bg-[#2A2A2A] px-6 py-3 font-manrope text-sm font-semibold text-white" href="https://ivfpulse.com/book-appointment">Book Free Consultation</a></div></div></div></header><header class="max-md:hidden"><header class="pointer-events-none fixed left-0 right-0 top-5 z-[80] flex justify-center px-4 max-md:hidden"><nav class="pointer-events-auto relative flex h-[70px] w-full max-w-[1200px] items-center justify-between overflow-hidden rounded-full px-8 font-manrope transition-all duration-300 NewLpHeader_transparentNav__W5DHe"><div class="flex items-center gap-6"><a class="relative z-10 text-sm font-semibold hover:underline text-white" href="https://ivfpulse.com/calculators">Calculators</a><a class="relative z-10 text-sm font-semibold hover:underline text-white" href="https://ivfpulse.com/blogs">IVF Reads</a><a class="relative z-10 text-sm font-semibold hover:underline text-white" href="https://ivfpulse.com/how-it-works">How it Works</a></div><a class="relative z-10 h-[34px] w-[120px] flex-1" href="https://ivfpulse.com/"><img src="https://content-beta.ivfpulse.com/api/media/file/ivfpulse_text_logo-483x130.webp" alt="ivfpulse" class="object-contain" style="position:absolute;inset:0;width:100%;height:100%" loading="eager" decoding="async" fetchpriority="high"></a><div class="relative z-10 flex items-center gap-4 font-manrope"><a class="text-sm font-semibold hover:underline text-white" href="https://ivfpulse.com/second-opinion">2nd Opinion Now</a><a class="cursor-pointer rounded-[999px] bg-[#2A2A2A] px-4 py-2 text-sm font-semibold text-white" href="https://ivfpulse.com/book-appointment">Book Free Consultation</a></div></nav></header></header>
712</div>
713<header class="hero">
714  <div class="wrap">
715    <p class="eyebrow tech">Contact &middot; Bengaluru</p>
716    <h1 class="disp">Talk to a human<em>.</em></h1>
717    <p class="hero-sub">A fertility counsellor, not a call centre script. Send us a report you
718      can&rsquo;
718t read, a quote that looks wrong, or the name of a clinic you&rsquo;re weighing
719      up &mdash; <b>including clinics we&rsquo;ve never listed</b>.</p>
720    <div class="hero-acts">
721      <a class="btn wa" href="#" data-wa hidden>
722        <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.6 14.2c-.2.7-1.3 1.3-1.9 1.4-.5.1-1.1.1-1.8-.1-.4-.1-1-.3-1.7-.6-3-1.3-4.9-4.3-5.1-4.5-.1-.2-1.2-1.5-1.2-2.9s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.3 0 .5l-.4.5-.3.3c-.1.1-.2.3 0 .5.2.3.8 1.3 1.7 2.1 1.1 1 2 1.3 2.3 1.4.2.1.4.1.5-.1l.8-.9c.2-.2.3-.2.5-.1l2 1c.2.1.4.2.4.3.1.2.1.7-.1 1.3Z"/></svg>
723        Message us on WhatsApp</a>
724      <p class="or">or <a href="tel:+918088365029">call +91 80883 65029</a>, Mon&ndash;Sat
725        9:00&ndash;18:00 &middot; <a href="#book">leave your number instead</a></p>
726    </div>
727    <div class="readout">
728      <div><p class="k">Hours</p><p class="v">Mon&ndash;Sat <em>9:00&ndash;18:00</em> IST</p></div>
729      <div><p class="k">First consultation</p><p class="v">Free</p></div>
730      <div><p class="k">Centres</p><p class="v"><em>Two</em> &mdash; Kalyan Nagar, RR Nagar</p></div>
731      <div><p class="k">Clinic influence</p><p class="v">None &mdash; <em>nobody pays to be listed</em></p></div>
732    </div>
733  </div>
734  <div class="marq" aria-hidden="true">
735    <div class="marq-in" id="marqIn">
736      <span class="mono">WhatsApp +91 96116 89081</span><span class="mono">Phone +91 80883 65029</span><span class="mono"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dba8aeababb4a9af9bb2adbdabaeb7a8bef5b8b4b6">[email&#160;protected]</a></span><span class="mono">Mon&ndash;Sat 9:00&ndash;18:00 IST</span><span class="mono">Kalyan Nagar &amp; RR Nagar &middot; Bengaluru</span><span class="mono">Free first consultation</span><span class="mono">Details never sold to clinics</span>
737    </div>
738  </div>
739</header>
740
741<main>
742
743<!-- ═══ CHANNELS + FORM ══════════════════════════════════════════ -->
744<section class="grid-sec" id="book" aria-labelledby="bookH">
745  <div class="wrap cgrid">
746    <div>
747      <p class="eyebrow tech">Three ways in</p>
748      <h2 class="sect-h disp" id="bookH">All of them answered<br>by a person<em>.</em></h2>
749      <p class="lede" style="margin-top:18px">WhatsApp is the fastest, and the only one you can
750        send a photo of a report into. Nothing you send is passed to a clinic.</p>
751
752      <ul class="chan">
753        <li>
754          <span class="ico wa">
755            <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.6 14.2c-.2.7-1.3 1.3-1.9 1.4-.5.1-1.1.1-1.8-.1-.4-.1-1-.3-1.7-.6-3-1.3-4.9-4.3-5.1-4.5-.1-.2-1.2-1.5-1.2-2.9s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.3 0 .5l-.4.5-.3.3c-.1.1-.2.3 0 .5.2.3.8 1.3 1.7 2.1 1.1 1 2 1.3 2.3 1.4.2.1.4.1.5-.1l.8-.9c.2-.2.3-.2.5-.1l2 1c.2.1.4.2.4.3.1.2.1.7-.1 1.3Z"/></svg>
756          </span>
757          <span>
758            <p class="k">WhatsApp</p>
759            <p class="v"><a href="#" data-wa hidden>+91 96116 89081</a><span data-wa-fallback>+91 96116 89081</span></p>
760            <p class="n">Reports, prescriptions, clinic quotes. Watched through office hours.</p>
761          </span>
762        </li>
763        <li>
764          <span class="ico">
765            <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.4c.6 0 1 .4 1 1 0 1.2.2 2.4.6 3.6.1.3 0 .7-.2 1l-2.2 2.2Z"/></svg>
766          </span>
767          <span>
768            <p class="k">Phone</p>
769            <p class="v"><a href="tel:+918088365029">+91 80883 65029</a></p>
770            <p class="n">Easier said than typed &mdash; a failed cycle, or choosing between
771              centres. Mon&ndash;Sat, 9:00&ndash;18:00 IST.</p>
772          </span>
773        </li>
774        <li>
775          <span class="ico">
776            <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Zm0 4-8 5-8-5V6l8 5 8-5v2Z"/></svg>
777          </span>
778          <span>
779            <p class="k">Email</p>
780            <p class="v"><a href="/cdn-cgi/l/email-protection#ff8c8a8f8f908d8bbf9689998f8a938c9ad19c9092"><span class="__cf_email__" data-cfemail="b9caccc9c9d6cbcdf9d0cfdfc9ccd5cadc97dad6d4">[email&#160;protected]</span></a></p>
781            <p class="n">Anything with attachments or a paper trail &mdash; records, billing,
782              data requests, corrections.</p>
783          </span>
784        </li>
785      </ul>
786
787      <div class="here">
788        <div>
789          <p class="k">Office hours</p>
790          <p class="hrs">Mon&ndash;Sat <em>9:00 &ndash; 18:00</em> IST<span>Sunday closed</span></p>
791          <p class="n">Anything that arrives outside these hours is read the next working
792            morning.</p>
793        </div>
794        <div>
795          <p class="k">Where we are</p>
796          <ul class="sites">
797            <li>
798              <p class="site">Kalyan Nagar</p>
799              <address class="addr">Wellspring Fertility by IVF Pulse<br>
800                #904, 5th A Cross, 1st Block<br>
801                HRBR Layout, Bengaluru 560043</address>
802              <a class="maplink" href="https://www.google.com/maps/search/?api=1&amp;query=13.0215%2C77.6434"
803                 target="_blank" rel="noopener"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z"/></svg>Open in Maps</a>
804            </li>
805            <li>
806              <p class="site">RR Nagar</p>
807              <address class="addr">Wellspring Fertility by IVF Pulse<br>
808                Sparsh Hospitals, 5th floor<br>
809                RR Nagar, Bengaluru</address>
810              <a class="maplink" href="https://www.google.com/maps/search/?api=1&amp;query=12.9296006%2C77.5192369"
811                 target="_blank" rel="noopener"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z"/></svg>Open in Maps</a>
812            </li>
813          </ul>
814        </div>
815      </div>
816    </div>
817
818    <div class="pane brk">
819      <form data-lead="contact" data-position="contact_page" novalidate>
820        <h3 class="disp">Free consultation<br>and tests<em>.</em></h3>
821        <p class="sub">Tell us how to reach you and a counsellor calls once &mdash; no card, no
822          deposit, no obligation to treat anywhere.</p>
823        <div class="field">
824          <label for="c-name">Your name</label>
825          <input id="c-name" name="name" type="text" autocomplete="name" placeholder="Full name">
826        </div>
827        <div class="field">
828          <label for="c-phone">Mobile number</label>
829          <div class="tel">
830            <span aria-hidden="true">+91</span>
831            <input id="c-phone" name="phone" type="tel" inputmode="numeric" autocomplete="tel"
832                   placeholder="10-digit mobile" aria-label="Mobile number, 10 digits, India">
833          </div>
834        </div>
835        <div class="field">
836          <label for="c-svc">What is this about?</label>
837          <select id="c-svc" name="service_interest">
838            <option value="unsure">Not sure yet &mdash; I need to talk it through</option>
839            <option value="second_opinion">A second opinion on my reports</option>
840            <option value="ivf">IVF</option>
841            <option value="icsi">IVF with ICSI</option>
842            <option value="iui">IUI</option>
843            <option value="fet">Frozen embryo transfer</option>
844            <option value="donor">Donor programme</option>
845            <option value="cost">Checking a cost or a quote</option>
846            <option value="clinic_choice">Choosing between clinics</option>
847            <option value="site">Something on this website</option>
848          </select>
849        </div>
850        <div class="field">
851          <label for="c-msg">Anything you want to add <span style="text-transform:none;letter-spacing:0">(optional)</span></label>
852          <textarea id="c-msg" name="message" rows="3" placeholder="e.g. AMH 0.8, one failed IVF cycle, quoted &#8377;2.4L in Whitefield"></textarea>
853        </div>
854        <div class="field" data-pref>
855          <span class="flabel" id="c-prefL">How should we reply?</span>
856          <div class="pref" role="group" aria-labelledby="c-prefL">
857            <button type="button" data-p="call" aria-pressed="true">Call me</button>
858            <button type="button" data-p="wa" aria-pressed="false">
859              <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.6 14.2c-.2.7-1.3 1.3-1.9 1.4-.5.1-1.1.1-1.8-.1-.4-.1-1-.3-1.7-.6-3-1.3-4.9-4.3-5.1-4.5-.1-.2-1.2-1.5-1.2-2.9s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.3 0 .5l-.4.5-.3.3c-.1.1-.2.3 0 .5.2.3.8 1.3 1.7 2.1 1.1 1 2 1.3 2.3 1.4.2.1.4.1.5-.1l.8-.9c.2-.2.3-.2.5-.1l2 1c.2.1.4.2.4.3.1.2.1.7-.1 1.3Z"/></svg>WhatsApp</button>
860          </div>
861        </div>
862        <label class="consent">
863          <input type="checkbox" name="consent" checked>
864          <span>I consent to IVF Pulse contacting me about this enquiry.</span>
865        </label>
866        <!-- Cloudflare Turnstile, the same widget and sitekey the site's own
867             lead form uses. If it cannot load, the script below switches the
868             form to the WhatsApp handoff rather than failing silently. -->
869        <div class="cf-turnstile" data-sitekey="0x4AAAAAAA7a5S9X1bfiUW5d" data-theme="dark"
870             data-size="flexible" data-retry="never" data-callback="ivpCaptchaOk"
871             data-error-callback="ivpCaptchaErr" data-expired-callback="ivpCaptchaExp"></div>
872        <p class="err" data-err hidden></p>
873        <button class="btn btn-paper" type="submit">Send my details</button>
874        <a class="btn wa alt-wa" href="#" data-wa hidden>
875          <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.6 14.2c-.2.7-1.3 1.3-1.9 1.4-.5.1-1.1.1-1.8-.1-.4-.1-1-.3-1.7-.6-3-1.3-4.9-4.3-5.1-4.5-.1-.2-1.2-1.5-1.2-2.9s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.3 0 .5l-.4.5-.3.3c-.1.1-.2.3 0 .5.2.3.8 1.3 1.7 2.1 1.1 1 2 1.3 2.3 1.4.2.1.4.1.5-.1l.8-.9c.2-.2.3-.2.5-.1l2 1c.2.1.4.2.4.3.1.2.1.7-.1 1.3Z"/></svg>
876          Or send it on WhatsApp</a>
877        <p class="fine">Your details go to IVF Pulse, never to a clinic.
878          <a href="https://ivfpulse.com/privacy-policy">Privacy policy</a>.</p>
879      </form>
880      <p class="pane-strip">0% interest EMI available</p>
881    </div>
882  </div>
883</section>
884
885<!-- ═══ PROCESS ══════════════════════════════════════════════════ -->
886<section class="proc" aria-labelledby="procH">
887  <div class="wrap proc-grid">
888    <div>
889      <p class="eyebrow tech">What happens next</p>
890      <h2 class="sect-h disp" id="procH">Tell us what you&rsquo;re facing. We&rsquo;ll tell you
891        what we&rsquo;d ask<em>.</em></h2>
892      <p class="lede" style="margin-top:18px">A first consultation with an IVF Pulse counsellor is
893        free. It is not a sales call for a cycle &mdash; it is half an hour spent working out what
894        your reports say, what your options are, and which questions to put to whichever clinic you
895        choose.</p>
896      <ol class="steps">
897        <li><b>You send the basics</b>Name, number, and roughly what you&rsquo;re dealing with. A
898          report photo helps but nothing is required.</li>
899        <li><b>
899A counsellor reads it before calling</b>So the first ten minutes aren&rsquo;t spent
900          repeating your history.</li>
901        <li><b>You get the comparison in writing</b>Costs, what&rsquo;s verified about each centre
902          and what isn&rsquo;t, and the questions worth asking all of them.</li>
903      </ol>
904    </div>
905    <div class="pbox">
906      <h3>What we promise</h3>
907      <ul class="promise">
908        <li>One call, one email &mdash; we don&rsquo;t chase you</li>
909        <li>We don&rsquo;t sell your details to clinics</li>
910        <li>No clinic pays to be listed, scored or ranked</li>
911      </ul>
912      <p class="noNum">Would rather not leave a number at all? Write to
913        <a href="/cdn-cgi/l/email-protection#f5868085859a8781b59c83938580998690db969a98"><span class="__cf_email__" data-cfemail="0c7f797c7c637e784c657a6a7c79607f69226f6361">[email&#160;protected]</span></a> &mdash; same people, same
914        answer, it just takes until the next working morning.</p>
915    </div>
916  </div>
917</section>
918
919<!-- ═══ SCOPE ════════════════════════════════════════════════════ -->
920<section class="scope" aria-labelledby="scopeH">
921  <div class="wrap">
922    <p class="eyebrow tech">Scope</p>
923    <h2 class="sect-h disp" id="scopeH">What we can help with &mdash; and what we can&rsquo;t<em>.</em></h2>
924    <div class="scope-grid">
925      <div class="can">
926        <h3>We can</h3>
927        <ul class="slist can">
928          <li>Read a report with you &mdash; AMH, FSH, a semen analysis, an embryo grading sheet</li>
929          <li>Get your file in front of a practising IVF doctor for a
930            <a href="https://ivfpulse.com/second-opinion">second opinion</a></li>
931          <li>Compare Bangalore centres on the same five signals, from the
932            <a href="https://ivfpulse.com/fertility-clinics-in-bangalore/">clinic directory</a></li>
933          <li>Sanity-check a quote against what centres here actually charge</li>
934          <li>Correct anything we&rsquo;ve published that&rsquo;s wrong about you or your clinic</li>
935        </ul>
936      </div>
937      <div class="cant">
938        <h3>We can&rsquo;t</h3>
939        <ul class="slist cant">
940          <li>Prescribe, change your protocol, or overrule your treating doctor</li>
941          <li>Promise an outcome &mdash; no one honestly can, and anyone who does is selling</li>
942          <li>Handle an emergency; we are not a clinic helpline</li>
943          <li>Perform or arrange sex determination of a foetus &mdash; prohibited under the
944            PC&amp;PNDT Act, 1994</li>
945          <li>Give you a clinic&rsquo;s own booking desk; consultations here are with IVF Pulse</li>
946        </ul>
947      </div>
948    </div>
949    <p class="urgent"><b>If this is urgent</b> &mdash; heavy bleeding, severe pain, fever after a
950      retrieval or transfer, or anything that frightens you &mdash; call your treating clinic or go
951      to the nearest hospital. Do not wait for us to reply.</p>
952  </div>
953</section>
954
955<!-- ═══ DESKS ════════════════════════════════════════════════════ -->
956<section class="desks" aria-labelledby="desksH">
957  <div class="wrap">
958    <p class="eyebrow tech">Routing</p>
959    <h2 class="sect-h disp" id="desksH">Reaching the right desk<em>.</em></h2>
960    <p class="lede" style="margin-top:18px">Two mailboxes cover everything. Put the subject line in
961      and it lands with the right person the same day.</p>
962    <ul class="desk-list">
963      <li>
964        <p class="dt">Something we published is wrong</p>
965        <p><a href="/cdn-cgi/l/email-protection#adcec2dfdfc8ced9c4c2c3deedc4dbcbddd8c1dec883cec2c0"><span class="__cf_email__" data-cfemail="44272b36362127302d2b2a37042d322234312837216a272b29">[email&#160;protected]</span></a> &mdash; subject
966          <code>CORRECTION</code>. A clinic detail, a fee, a registration number, a claim in an
967          article. Tell us what&rsquo;s wrong and how you know.</p>
968      </li>
969      <li>
970        <p class="dt">You run a clinic and want to be listed</p>
971        <p><a href="/cdn-cgi/l/email-protection#097a7c7979667b7d49607f6f797c657a6c276a6664"><span class="__cf_email__" data-cfemail="50232520203f22241039263620253c23357e333f3d">[email&#160;protected]</span></a> &mdash; subject
972          <code>CLINIC LISTING</code>. Listing is free. It does not move your IVY Score, and
973          nothing you pay for would.</p>
974      </li>
975      <li>
976        <p class="dt">Your data &mdash;
976 a copy, or deletion</p>
977        <p><a href="/cdn-cgi/l/email-protection#6a191f1a1a05181e2a031c0c1a1f06190f44090507"><span class="__cf_email__" data-cfemail="86f5f3f6f6e9f4f2c6eff0e0f6f3eaf5e3a8e5e9eb">[email&#160;protected]</span></a> &mdash; subject
978          <code>DATA REQUEST</code>. What we hold and why is set out in the
979          <a href="https://ivfpulse.com/privacy-policy">privacy policy</a>.</p>
980      </li>
981      <li>
982        <p class="dt">Press, research and partnerships</p>
983        <p><a href="/cdn-cgi/l/email-protection#087b7d7878677a7c48617e6e787d647b6d266b6765"><span class="__cf_email__" data-cfemail="7d0e080d0d120f093d140b1b0d08110e18531e1210">[email&#160;protected]</span></a> &mdash; subject
984          <code>PRESS</code>. Our scoring method and its sources are open to scrutiny; ask and
985          we&rsquo;ll walk you through it.</p>
986      </li>
987    </ul>
988  </div>
989</section>
990
991<!-- ═══ FAQ ══════════════════════════════════════════════════════ -->
992<section class="faq" aria-labelledby="faqH">
993  <div class="wrap">
994    <p class="eyebrow tech">Before you write in</p>
995    <h2 class="sect-h disp" id="faqH">Questions people ask<em>.</em></h2>
996    <dl>
997      <dt>Is the consultation actually free?</dt>
998      <dd>Yes. The first consultation with an IVF Pulse counsellor costs nothing and there is no
999        card, no deposit and no obligation to treat anywhere. What it buys us is the chance to be
1000        useful enough that you come back &mdash; that is the whole business model.</dd>
1001
1002      <dt>Will my number be passed to clinics?</dt>
1003      <dd>No. What you send goes to IVF Pulse and stays there. We don&rsquo;t sell enquiries to
1004        clinics, which is also why a clinic can&rsquo;t buy its way up the IVY Score. If you want a
1005        specific centre contacted, we&rsquo;ll do it only when you ask us to.</dd>
1006
1007      <dt>You run a fertility centre yourself. Doesn&rsquo;t that bias the advice?</dt>
1008      <dd>It would if we hid it. IVF Pulse operates its own fertility centre in Bangalore and it is
1009        scored on exactly the same five signals, from the same public sources, as every other centre
1010        in the directory &mdash; including where it falls short. Every clinic page carries that
1011        disclosure, and a consultation booked through this site is with IVF Pulse, not with a centre
1012        we&rsquo;ve written about.</dd>
1013
1014      <dt>How quickly will someone reply?</dt>
1015      <dd>WhatsApp is the fastest &mdash; it&rsquo;s watched through the day. The phone line and the
1016        support inbox are answered Monday to Saturday, 9:00&ndash;18:00 IST, and anything that
1017        arrives outside those hours is read the next working morning.</dd>
1018
1019      <dt>Can I speak to a doctor rather than a counsellor?</dt>
1020      <dd>For a report or a protocol, yes &mdash; that is what the
1021        <a href="https://ivfpulse.com/second-opinion">second-opinion service</a> is: your file read
1022        by practising IVF doctors. The counsellor call comes first because it&rsquo;s what gets your
1023        records and history into one place for the doctor to read.</dd>
1024    </dl>
1025  </div>
1026</section>
1027
1028</main>
1029
1030<section class="fin">
1031  <p class="mono">Bengaluru &middot; India</p>
1032  <h2 class="disp">One conversation, and no one chasing you<em>.</em></h2>
1033  <p>A counsellor reads what you send before they call. If all you want is a number checked or a
1034    quote sanity-tested, say so and that is all it will be.</p>
1035  <div class="fin-acts">
1036    <a class="btn wa" href="#" data-wa hidden>
1037      <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.6 14.2c-.2.7-1.3 1.3-1.9 1.4-.5.1-1.1.1-1.8-.1-.4-.1-1-.3-1.7-.6-3-1.3-4.9-4.3-5.1-4.5-.1-.2-1.2-1.5-1.2-2.9s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.3 0 .5l-.4.5-.3.3c-.1.1-.2.3 0 .5.2.3.8 1.3 1.7 2.1 1.1 1 2 1.3 2.3 1.4.2.1.4.1.5-.1l.8-.9c.2-.2.3-.2.5-.1l2 1c.2.1.4.2.4.3.1.2.1.7-.1 1.3Z"/></svg>
1038      Message us on WhatsApp</a>
1039  </div>
1040  <p class="or fin-or">Or <a href="tel:+918088365029">call +91 80883 65029</a> &middot;
1041    <a href="/cdn-cgi/l/email-protection#31424441415e43457158475741445d42541f525e5c"><span class="__cf_email__" data-cfemail="0774727777687573476e716177726b74622964686a">[email&#160;protected]</span></a> &middot; Mon&ndash;Sat,
1042    9:00&ndash;18:00 IST</p>
1043</section>
1044
1045<div id="next-footer" class="next-layout-reset">
1046<footer class="bf"><div class="bf-in"><section class="bf-read" aria-labelledby="ft-read"><p class="lbl">Keep reading</p><h2 id="ft-read">Evidence-based fertility guides</h2><div class="bf-grid"><a class="bf-art" href="https://ivfpulse.com/blogs/what-is-hypogonadism">What Is Hypogonadism?</a>
1046<a class="bf-art" href="https://ivfpulse.com/blogs/is-pms-linked-to-infertility">Is PMS Linked to Infertility?</a><a class="bf-art" href="https://ivfpulse.com/blogs/eat-your-way-to-better-sperm-quality-essential-foods">Eat Your Way to Better Sperm Quality: Essential Foods</a><a class="bf-art" href="https://ivfpulse.com/blogs/what-is-a-fertility-coach-and-should-you-get-one">What Is a Fertility Coach and Should You Get One?</a><a class="bf-art" href="https://ivfpulse.com/blogs/understanding-high-estrogen-in-males-causes-and-treatment-options">Understanding High Estrogen in Males: Causes and Treatment Options</a><a class="bf-art" href="https://ivfpulse.com/blogs/choose-right-ivf-doctor-and-clinic">Choosing an IVF Clinic in India: What Actually Matters</a><a class="bf-art" href="https://ivfpulse.com/blogs/preimplantation-genetic-testing-ivf-success">Preimplantation Genetic Testing (PGT): A Game-Changer in IVF Success</a><a class="bf-art" href="https://ivfpulse.com/blogs/infertility-mental-health-support">Infertility and Mental Health: How Common Distress Actually Is</a><a class="bf-art" href="https://ivfpulse.com/blogs/egg-and-sperm-synchronization-for-ivf">Egg and Sperm Synchronization for IVF</a></div></section><section class="bf-read" aria-labelledby="ft-centres"><p class="lbl">Top fertility centres</p><h2 id="ft-centres">ART-registered centres in Bangalore</h2><div class="bf-grid"><a class="bf-art" href="https://ivfpulse.com/fertility-clinics-in-bangalore/whitefield/archish-fertility-centre-whitefield">Archish Fertility Centre Whitefield</a><a class="bf-art" href="https://ivfpulse.com/fertility-clinics-in-bangalore/indiranagar/indira-ivf-fertility-centre-indiranagar">Indira IVF Fertility Centre Indiranagar</a><a class="bf-art" href="https://ivfpulse.com/fertility-clinics-in-bangalore/indiranagar/asthu-fertility-clinic-indiranagar">Asthu Fertility Clinic Indiranagar</a><a class="bf-art" href="https://ivfpulse.com/fertility-clinics-in-bangalore/jp-nagar/milann-jp-nagar-fertility-and-birthing-jp-nagar">Milann Jp Nagar Fertility And Birthing Jp Nagar</a><a class="bf-art" href="https://ivfpulse.com/fertility-clinics-in-bangalore/marathahalli/neo-fertility-clinic-marathahalli">Neo Fertility Clinic Marathahalli</a><a class="bf-art" href="https://ivfpulse.com/fertility-clinics-in-bangalore/kalyan-nagar/shishu-ivf-fertility-centre-kalyan-nagar">Shishu IVF Fertility Centre Kalyan Nagar</a><a class="bf-art" href="https://ivfpulse.com/fertility-clinics-in-bangalore/electronic-city/cloudnine-ivf-center-electronic-city">Cloudnine IVF Center Electronic City</a><a class="bf-art" href="https://ivfpulse.com/fertility-clinics-in-bangalore/jp-nagar/oasis-fertility-centre-jp-nagar">Oasis Fertility Centre Jp Nagar</a><a class="bf-art" href="https://ivfpulse.com/fertility-clinics-in-bangalore/hsr-layout/aspire-fertility-center-hsr-layout">Aspire Fertility Center Hsr Layout</a></div></section><p class="lbl">Browse by topic</p><nav class="bf-topics" aria-label="Article topics"><a class="bf-topic" href="https://ivfpulse.com/blogs/category/fertility">Fertility<!-- --> <span>229</span></a><a class="bf-topic" href="https://ivfpulse.com/blogs/category/ivf">IVF<!-- --> <span>35</span></a><a class="bf-topic" href="https://ivfpulse.com/blogs/category/treatment">Treatment<!-- --> <span>35</span></a><a class="bf-topic" href="https://ivfpulse.com/blogs/category/mental-health">Mental Health<!-- --> <span>31</span></a><a class="bf-topic" href="https://ivfpulse.com/blogs/category/pcod">PCOD<!-- --> <span>4</span></a><a class="bf-topic" href="https://ivfpulse.com/blogs/category/emotional">Emotional<!-- --> <span>1</span></a><a class="bf-topic" href="https://ivfpulse.com/blogs">All articles <span>327</span></a></nav><p class="lbl">Fertility treatments</p><nav class="bf-topics" aria-label="Fertility treatments and procedures"><a class="bf-topic" href="https://ivfpulse.com/ivf">IVF</a><a class="bf-topic" href="https://ivfpulse.com/iui">IUI</a><a class="bf-topic" href="https://ivfpulse.com/icsi">ICSI</a><a class="bf-topic" href="https://ivfpulse.com/egg-freezing">Egg freezing</a><a class="bf-topic" href="https://ivfpulse.com/semen-analysis">Semen analysis</a><a class="bf-topic" href="https://ivfpulse.com/pgt-a">PGT-A</a><a class="bf-topic" href="https://ivfpulse.com/infertility-workup">Infertility workup</a><a class="bf-topic" href="https://ivfpulse.com/hysteroscopy">Hysteroscopy</a><a class="bf-topic" href="https://ivfpulse.com/laparoscopy">Laparoscopy</a><a class="bf-topic" href="https://ivfpulse.com/sonography">Sonography</a></nav><p class="lbl">Top fertility locations</p>
1046<nav class="bf-topics" aria-label="Top fertility locations in Bangalore"><a class="bf-topic" href="https://ivfpulse.com/fertility-clinics-in-bangalore/electronic-city">Electronic City<!-- --> <span>6</span></a><a class="bf-topic" href="https://ivfpulse.com/fertility-clinics-in-bangalore/rajajinagar">Rajajinagar<!-- --> <span>5</span></a><a class="bf-topic" href="https://ivfpulse.com/fertility-clinics-in-bangalore/dasarahalli">Dasarahalli<!-- --> <span>2</span></a><a class="bf-topic" href="https://ivfpulse.com/fertility-clinics-in-bangalore/hsr-layout">Hsr Layout<!-- --> <span>5</span></a><a class="bf-topic" href="https://ivfpulse.com/fertility-clinics-in-bangalore/rr-nagar">Rr Nagar<!-- --> <span>1</span></a><a class="bf-topic" href="https://ivfpulse.com/fertility-clinics-in-bangalore/koramangala">Koramangala<!-- --> <span>6</span></a><a class="bf-topic" href="https://ivfpulse.com/fertility-clinics-in-bangalore/basavanagudi">Basavanagudi<!-- --> <span>2</span></a><a class="bf-topic" href="https://ivfpulse.com/fertility-clinics-in-bangalore/whitefield">Whitefield<!-- --> <span>8</span></a></nav><div class="bf-dir"><div><p class="t">Compare fertility centres in Bangalore</p><p class="s">138 ART-registered centres scored on the same five signals. No clinic pays to be listed or ranked.</p></div><a class="go" href="https://ivfpulse.com/fertility-clinics-in-bangalore">Browse the directory</a></div><div class="bf-cols"><div><p class="lbl">Company</p><ul><li><a href="https://ivfpulse.com/about-us">About us</a></li><li><a href="https://ivfpulse.com/faqs">FAQs</a></li><li><a href="https://ivfpulse.com/contact-us">Contact us</a></li><li><a href="https://ivfpulse.com/how-it-works">How it works</a></li></ul></div><div><p class="lbl">Read</p><ul><li><a href="https://ivfpulse.com/blogs">IVF Reads</a></li><li><a href="https://ivfpulse.com/fertility-clinics-in-bangalore">Clinic directory</a></li><li><a href="https://ivfpulse.com/second-opinion">Second opinion</a></li></ul></div><div><p class="lbl">Calculators</p><ul><li><a href="https://ivfpulse.com/calculators"><b>All calculators</b></a></li><li><a href="https://ivfpulse.com/calculators/cost-and-planning/ivf-cost-calculator">IVF cost</a></li><li><a href="https://ivfpulse.com/calculators/ivf-success-and-prediction/ivf-success-rate">IVF success rate</a></li><li><a href="https://ivfpulse.com/calculators/early-pregnancy/beta-hcg-doubling">HCG</a></li><li><a href="https://ivfpulse.com/calculators/early-pregnancy/ivf-due-date">Delivery date</a></li><li><a href="https://ivfpulse.com/calculators/cycle-and-ovulation/period-tracker">Period tracker</a></li><li><a href="https://ivfpulse.com/ivf-helper">IVF helper</a></li></ul></div><div><p class="lbl">Support</p><ul><li><a href="https://ivfpulse.com/book-appointment">Book a consultation</a></li><li><a href="https://ivfpulse.com/terms-and-conditions">Terms &amp; conditions</a></li><li><a href="https://ivfpulse.com/privacy-policy">Privacy policy</a></li></ul></div><div><p class="lbl">Follow</p><div class="bf-social"><a target="_blank" rel="noopener noreferrer" aria-label="IVFPulse on Instagram" href="https://www.instagram.com/ivfpulse"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" aria-hidden="true" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.00
10467-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077"></path></svg></a><a target="_blank" rel="noopener noreferrer" aria-label="IVFPulse on Facebook" href="https://www.facebook.com/profile.php?id=61568517396487"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" aria-hidden="true" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z"></path></svg></a><a target="_blank" rel="noopener noreferrer" aria-label="IVFPulse on X" href="https://x.com/IVFpulse"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" aria-hidden="true" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"></path></svg></a><a target="_blank" rel="noopener noreferrer" aria-label="IVFPulse on YouTube" href="https://www.youtube.com/channel/UC5widUvURmOX728CoQPvEUA"><svg stroke="currentColor" fill="currentColor" stroke-width="0" role="img" viewBox="0 0 24 24" aria-hidden="true" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"></path></svg></a></div></div></div><div class="bf-legal"><p><b>Informational only — not a substitute for medical advice.</b> <!-- -->Content on IVFPulse is general information and does not replace consultation with a qualified clinician. Outcomes vary between individuals and no treatment can be guaranteed.</p><p><b>We do not perform or permit sex determination of a foetus.</b> <!-- -->Pre-natal sex determination is prohibited under the Pre-Conception and Pre-Natal Diagnostic Techniques (PC&amp;PNDT) Act, 1994.</p><p>IVFPulse works with clinics registered under the Assisted Reproductive Technology (Regulation) Act 2021. IVFPulse also operates its own fertility centre, which is included in the directory and scored on the same basis as every other centre.</p></div><div class="bf-base"><span class="brand">ivf<span class="accent">pulse</span></span><span>© <!-- -->2026<!-- --> IVFPulse. All rights reserved. WELLSPRING HEALTHCARE SOLUTIONS.</span><span class="sp"><a href="https://ivfpulse.com/privacy-policy">Privacy</a></span><span><a href="https://ivfpulse.com/terms-and-conditions">Terms</a></span><span><a href="https://ivfpulse.com/contact-us">Contact</a></span></div></div></footer>
1047</div>
vendor: 110 bytes, lines 1047-1049
1047
1048
1049<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1049<script>
1050/* the marquee needs its content twice for the -50% loop to be seamless */
1051(function () {
1052  var el = document.getElementById('marqIn');
1053  if (el) el.innerHTML += el.innerHTML;
1054})();
1055</script>
1055
1056
1057<script>
1058/* ══ CONTACT PIPELINE ═══════════════════════════════════════════════
1059   The form submits for real, exactly the way the site's own lead form
1060   does — POST /api/leads with a Turnstile token, then the HealthPro
1061   webhook — and WhatsApp sits beside it as a second route rather than
1062   as the only one.
1063   ═════════════════════════════════════════════════════════════════ */
1064(function () {
1065  'use strict';
1066
1067  var CFG = {
1068    /* ─────────────────────────────────────────────────────────────
1069       THE FORM. These three are lifted from the live site's own lead
1070       form (chunk 6930-*.js) so a lead from this page lands in the
1071       same place, through the same captcha, as one from the current
1072       /contact-us. Change them only if that form changes.
1073       ───────────────────────────────────────────────────────────── */
1074    leadsApi : '/api/leads',
1075    turnstile: '0x4AAAAAAA7a5S9X1bfiUW5d',
1076    /* the contact page's own HealthPro webhook — note this is a
1077       DIFFERENT id from the one the /lp/ pages post to */
1078    webhook  : 'https://api.freecustomer.in/api/v1/webhook/incoming/general/e0e4dcaa-f3b4-4d96-9839-c733642c668b',
1079    bearer   : 'Bearer HWx2cIbzAUuX+3ac/A2SR0hAn7b4VFVjL+TGCZIzdhbZZ5lO3Pfz4M+TRVUvG6HYEicLB7jbHbTdtSDnv8JFlA==',
1080    timeoutMs: 12000,
1081
1082    /* ─────────────────────────────────────────────────────────────
1083       WHATSAPP. Two switches:
1084         whatsappEnabled — master toggle. false hides every WhatsApp
1085           control including the floating widget and the in-form
1086           preference toggle.
1087         whatsapp — country code + 10 digits. This is the number
1088           /shared/lead-popup.js and the current /contact-us already
1089           use in production. Anything that is not 12 digits starting
1090           91 is refused and the controls stay hidden, so nothing
1091           ever ships as a dead wa.me link.
1092       ───────────────────────────────────────────────────────────── */
1093    whatsappEnabled: true,
1094    whatsapp: '919611689081',
1095
1096    /* true = nothing is POSTed and the form shows its success state
1097       only. Set for design review, never in production. */
1098    reviewMode: false,
1099
1100    phone: '+918088365029'
1101  };
1102
1103  var $  = function (s, r) { return (r || document).querySelector(s); };
1104  var $$ = function (s, r) { return Array.prototype.slice.call((r || document).querySelectorAll(s)); };
1105  var esc = function (s) { return String(s).replace(/[&<>"']/g, function (c) {
1106    return {'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]; }); };
1107
1108  /* the site's own normaliser: strip spaces, a leading zero, a leading +91 */
1109  function tidyPhone(v) {
1110    var t = String(v).replace(/\s/g, '');
1111    if (t.charAt(0) === '0') t = t.slice(1);
1112    if (t.indexOf('+91') === 0) t = t.slice(3);
1113    return t.replace(/[^0-9]/g, '');
1114  }
1115
1116  var qs = new URLSearchParams(location.search);
1117  var ATTR = {
1118    utm_source  : qs.get('utm_source')   || 'site',
1119    utm_medium  : qs.get('utm_medium')   || 'internal',
1120    utm_campaign: qs.get('utm_campaign') || 'contact-page',
1121    utm_content : qs.get('utm_content')  || 'contact_form',
1122    utm_term    : qs.get('utm_term')     || '',
1123    click_id    : qs.get('gclid') || qs.get('fbclid') || qs.get('tblci') || '',
1124    referrer    : document.referrer || ''
1125  };
1126
1127  /* ── WhatsApp availability ──────────────────────────────────── */
1128  var wa   = String(CFG.whatsapp).replace(/\D/g, '');
1129  var waOn = CFG.whatsappEnabled !== false && wa.length === 12 && wa.indexOf('91') === 0;
1130  function waLink(text) { return 'https://wa.me/' + wa + '?text=' + encodeURIComponent(text); }
1131
1132  if (waOn) {
1133    var opener = waLink('Hi IVF Pulse — I have a question about fertility treatment.');
1134    $$('[data-wa]').forEach(function (el) {
1135      el.hidden = false;
1136      var form  = el.closest('form');
1137      var where = el.hasAttribute('data-wa-float') ? 'float' : form ? 'form' : 'details';
1138      if (el.tagName !== 'A') return;
1139      el.href = opener; el.target = '_blank'; el.rel = 'noopener';
1140      el.addEventListener('click', function (ev) {
1141        track('lead_whatsapp', {position: where});
1142        /* inside the form, send what they have actually typed — an empty
1143           greeting throws away the work they just did. Falls back to the
1144           greeting until there is a name and a number worth sending. */
1145        if (!form) return;
1146        var p = payload(form);
1147        if (p.name.length < 2 || p.phone.length < 10) return;
1148        ev.preventDefault();
1149        var href = waLink(compose(p));
1150        var win  = window.open(href, '_blank', 'noopener');
1151        succeedViaWhatsApp(form, p, href, !!win);
1152      });
1153    });
1154    $$('[data-wa-fallback]').forEach(function (el) { el.hidden = true; });
1155  } else {
1156    if (CFG.whatsappEnabled !== false && CFG.whatsapp) {
1157      console.warn('[ivp-contact] WhatsApp number "' + CFG.whatsapp + '" is ' + wa.length +
1158                   ' digits; expected 12 (91 + 10-digit mobile). WhatsApp controls stay hidden.');
1159    }
1160    $$('[data-pref]').forEach(function (el) { el.hidden = true; });
1161  }
1162
1163  /* ── Turnstile: present, or honestly absent ─────────────────────
1164     The widget is what /api/leads checks, so if the script is blocked
1165     — an ad blocker, an offline preview, a CSP — the form cannot post.
1166     Rather than fail on submit, it switches to the WhatsApp handoff,
1167     which needs no captcha. */
1168  var captchaDead = false;
1169  function captchaState() {
1170    return (window.__ivpCaptcha && window.__ivpCaptcha.state) || 'pending';
1171  }
1172  function captchaToken(form) {
1173    var el = form.querySelector('[name="cf-turnstile-response"]');
1174    if (el && el.value) return el.value;
1175    return (window.__ivpCaptcha && window.__ivpCaptcha.token) || '';
1176  }
1177  /* Two ways it can be unusable, and they need the same answer: the script
1178     never arrived, or it arrived and the widget reported an error (wrong
1179     domain, no network, a blocker part-way). Either way the form cannot post
1180     to /api/leads, so it says so and switches to WhatsApp. */
1181  function captchaGiveUp(why) {
1182    if (captchaDead) return;
1183    captchaDead = true;
1184    $$('.cf-turnstile').forEach(function (el) { el.hidden = true; });
1185    console.warn('[ivp-contact] Turnstile ' + why + '; the form falls back to WhatsApp.');
1186    $$('form[data-lead] button[type=submit]').forEach(function (b) {
1187      if (waOn) b.textContent = 'Continue on WhatsApp';
1188    });
1189  }
1190  setTimeout(function () {
1191    if (!window.turnstile) return captchaGiveUp('did not load');
1192    if (captchaState() === 'error') return captchaGiveUp('reported an error');
1193  }, 4000);
1194  /* the widget can also fail later than that */
1195  var captchaWatch = setInterval(function () {
1196    if (captchaDead) return clearInterval(captchaWatch);
1197    if (captchaState() === 'error') { clearInterval(captchaWatch); captchaGiveUp('reported an error'); }
1198  }, 1500);
1199
1200  function track(event, extra) {
1201    try {
1202      var d = Object.assign({event: event, page: 'contact'}, extra || {});
1203      if (window.dataLayer) window.dataLayer.push(d);
1204      if (typeof window.gtag === 'function') window.gtag('event', event, d);
1205    } catch (e) {}
1206  }
1207
1208  /* ── validation ─────────────────────────────────────────────── */
1209  function validate(form) {
1210    var E = form.elements;
1211    var name  = (E.name && E.name.value || '').trim();
1212    var phone = tidyPhone(E.phone && E.phone.value || '');
1213    var cons  = E.consent;
1214    if (name.length < 2)   return {el: E.name,  msg: 'Add your name so the counsellor knows who they are speaking to.'};
1215    if (phone.length < 10) return {el: E.phone, msg: 'Add a 10-digit mobile number we can reach you on.'};
1216    if (phone.length > 12) return {el: E.phone, msg: 'That number looks too long — 10 digits is all we need.'};
1217    if (cons && !cons.checked) return {el: cons, msg: 'We need your consent before a counsellor can reply.'};
1218    if (!captchaDead && captchaState() === 'expired') {
1219      return {el: null, msg: 'The “Verify you are human” check timed out. Tick it again and resend.'};
1220    }
1221    if (!captchaDead && !captchaToken(form)) {
1222      return {el: null, msg: 'Tick the “Verify you are human” box just above, then try again.'};
1223    }
1224    return null;
1225  }
1226
1227  function fail(form, f) {
1228    var box = $('[data-err]', form);
1229    if (box) { box.textContent = f.msg; box.hidden = false; }
1230    if (f.el && f.el.focus) f.el.focus();
1231  }
1232
1233  function payload(form) {
1234    var E   = form.elements;
1235    var sel = E.service_interest;
1236    var svc = sel ? sel.value : 'unsure';
1237    var lbl = sel ? sel.options[sel.selectedIndex].text : svc;
1238    var on       = form.querySelector('.pref button[aria-pressed=true]');
1239    var prefWrap = form.querySelector('[data-pref]');
1240    var pref     = (on && prefWrap && !prefWrap.hidden) ? on.dataset.p : 'call';
1241    var box      = E.consent;
1242    var consentText = box ? (box.closest('label') || {}).textContent : '';
1243    return {
1244      name : E.name.value.trim(),
1245      phone: tidyPhone(E.phone.value).slice(-10),
1246      email: '',
1247      message: (E.message && E.message.value || '').trim(),
1248      service_interest: svc,
1249      service_interest_label: lbl,
1250      contact_preference: pref,
1251      whatsapp_opt_in: pref === 'wa',
1252      enquiry_type: 'general_contact',
1253      funnel_stage: 'contact_page',
1254      offer: 'free_first_consultation',
1255      consent_given: box ? !!box.checked : true,
1256      consent_text : String(consentText).replace(/\s+/g, ' ').trim(),
1257      consent_timestamp: new Date().toISOString(),
1258      form_position: form.dataset.position || 'contact_page',
1259      page_variant : 'contact-2026-08',
1260      utm_source: ATTR.utm_source, utm_medium: ATTR.utm_medium, utm_campaign: ATTR.utm_campaign,
1261      utm_term: ATTR.utm_term, utm_content: ATTR.utm_content, click_id: ATTR.click_id,
1262      referrer: ATTR.referrer, slug: location.pathname, source_page: location.href
1263    };
1264  }
1265
1266  /* the message the visitor sends when they choose WhatsApp. Written in
1267     their voice, because they are the one pressing send. */
1268  function compose(p) {
1269    var lines = ['Hi IVF Pulse — I’m ' + p.name + '.'];
1270    lines.push('About: ' + p.service_interest_label);
1271    if (p.message) lines.push('Details: ' + p.message);
1272    lines.push(p.contact_preference === 'call'
1273      ? 'Please call me on +91 ' + p.phone + '.'
1274      : 'You can reply to me here, or on +91 ' + p.phone + '.');
1275    return lines.join('\n');
1276  }
1277
1278  /* POST /api/leads — the same route, the same four fields, the same
1279     FormData encoding as the site's own form. This is what actually
1280     records the lead. */
1281  function postLead(form, p) {
1282    if (CFG.reviewMode) return Promise.resolve();
1283    var fd = new FormData();
1284    fd.append('userFullName', p.name);
1285    fd.append('mobileNumber', p.phone);
1286    fd.append('pageUrl', location.href);
1287    fd.append('turnstileToken', captchaToken(form));
1288    var c = ('AbortController' in window) ? new AbortController() : null;
1289    var t = setTimeout(function () { if (c) c.abort(); }, CFG.timeoutMs);
1290    return fetch(CFG.leadsApi, {method: 'POST', body: fd, signal: c ? c.signal : undefined})
1291      .then(function (r) {
1292        clearTimeout(t);
1293        if (!r.ok) throw new Error('status ' + r.status);
1294      }, function (e) { clearTimeout(t); throw e; });
1295  }
1296
1297  /* the CRM copy. The site's own form sends {name, phone}; this sends
1298     the same two plus everything else the form collected, including
1299     form_position — the field the attribution dashboard has never had.
1300     Fire-and-forget: a lead is already recorded by /api/leads, so this
1301     failing must never show the visitor an error. */
1302  function postWebhook(p) {
1303    if (CFG.reviewMode) return;
1304    try {
1305      fetch(CFG.webhook, {
1306        method : 'POST',
1307        headers: {'Content-Type': 'application/json', 'Authorization': CFG.bearer},
1308        body   : JSON.stringify(Object.assign({}, p, {phone: '+91' + p.phone})),
1309        keepalive: true
1310      }).catch(function () {});
1311    } catch (e) {}
1312  }
1313
1314  /* someone who has just written in must not then be shown the site-wide
1315     popup — same storage contract as /shared/lead-popup.js */
1316  function suppressPopup() {
1317    try { localStorage.setItem('ivp_lead_popup_v1', String(Date.now() + 7 * 864e5)); } catch (e) {}
1318  }
1319
1320  function replaceCard(form, html) {
1321    var host = form.closest('.pane') || form.parentNode;
1322    host.innerHTML = '<div class="thanks">' + html + '</div>';
1323    suppressPopup();
1324  }
1325
1326  function succeed(form, p) {
1327    var first = esc(p.name.split(' ')[0]);
1328    var waBtn = waOn
1329      ? '<p><a class="btn" href="' + esc(waLink(compose(p))) + '" target="_blank" rel="noopener">' +
1330        'Send it on WhatsApp too</a></p>'
1331      : '';
1332    replaceCard(form,
1333      '<h3>' + first + ', we have your request</h3>' +
1334      '<p>A fertility counsellor will ' +
1335      (p.contact_preference === 'wa' ? 'message you on WhatsApp at ' : 'call you once on ') +
1336      '+91 ' + esc(p.phone) + ' — Mon–Sat, 9:00–18:00. One conversation, one email.</p>' +
1337      waBtn +
1338      '<p>Anything you’d rather send in writing: <a href="mailto:[email protected]">' +
1339      '[email protected]</a>.</p>');
1340    track('generate_lead', {form_position: p.form_position, service: p.service_interest,
1341                            contact_preference: p.contact_preference, lead_source: 'website'});
1342  }
1343
1344  /* no captcha, so no /api/leads — hand the enquiry to WhatsApp instead
1345     and say so plainly */
1346  function succeedViaWhatsApp(form, p, href, opened) {
1347    var first = esc(p.name.split(' ')[0]);
1348    replaceCard(form,
1349      '<h3>' + first + ', your message is written out</h3>' +
1350      (opened
1351        ? '<p>WhatsApp is open in another tab with your enquiry already in the box. <b>Press send</b> ' +
1352          'and a counsellor picks it up from there — nothing reaches us until you do.</p>'
1353        : '<p>Your browser blocked the new tab. Open the message yourself — everything is already ' +
1354          'written in it.</p>') +
1355      '<p><a class="btn" href="' + esc(href) + '" target="_blank" rel="noopener">Open WhatsApp' +
1356      (opened ? ' again' : '') + '</a></p>' +
1357      '<p>Would rather talk? Call <a href="tel:' + esc(CFG.phone) + '">+91 80883 65029</a>, ' +
1358      'Mon–Sat 9:00–18:00.</p>');
1359    track('lead_whatsapp_handoff', {form_position: p.form_position});
1360  }
1361
1362  /* neither route is available: never pretend anything was sent */
1363  function succeedNoRoute(form, p) {
1364    var first = esc(p.name.split(' ')[0]);
1365    replaceCard(form,
1366      '<h3>' + first + ', call us and we’ll pick it up</h3>' +
1367      '<p>This form could not be sent from your browser, so nothing was submitted. Call ' +
1368      '<a href="tel:' + esc(CFG.phone) + '">+91 80883 65029</a> (Mon–Sat, 9:00–18:00) or email ' +
1369      '<a href="mailto:[email protected]">[email protected]</a> and quote your number, ' +
1370      '+91 ' + esc(p.phone) + '.</p>');
1371    track('lead_fallback', {form_position: p.form_position});
1372  }
1373
1374  /* ── submit ─────────────────────────────────────────────────── */
1375  $$('form[data-lead]').forEach(function (form) {
1376    form.addEventListener('submit', function (ev) {
1377      ev.preventDefault();
1378      var box = $('[data-err]', form); if (box) box.hidden = true;
1379      var bad = validate(form); if (bad) return fail(form, bad);
1380
1381      var p = payload(form);
1382
1383      /* captcha never loaded → WhatsApp is the only honest route.
1384         window.open stays inside the handler so it keeps the user
1385         gesture and survives popup blockers. */
1386      if (captchaDead) {
1387        if (!waOn) return succeedNoRoute(form, p);
1388        var href = waLink(compose(p));
1389        var win  = window.open(href, '_blank', 'noopener');
1390        return succeedViaWhatsApp(form, p, href, !!win);
1391      }
1392
1393      var btn = $('button[type=submit]', form);
1394      var label = btn ? btn.textContent : '';
1395      if (btn) { btn.disabled = true; btn.textContent = 'Sending…'; }
1396
1397      postLead(form, p).then(function () {
1398        postWebhook(p);
1399        succeed(form, p);
1400      }, function () {
1401        if (btn) { btn.disabled = false; btn.textContent = label; }
1402        if (window.turnstile && window.turnstile.reset) { try { window.turnstile.reset(); } catch (e) {} }
1403        fail(form, {el: null, msg: waOn
1404          ? 'That didn’t go through. Try again, or send it on WhatsApp using the button below.'
1405          : 'That didn’t go through. Try again, or call us on +91 80883 65029.'});
1406      });
1407    });
1408  });
1409
1410  /* ── reply-preference toggle ────────────────────────────────── */
1411  $$('.pref').forEach(function (group) {
1412    group.addEventListener('click', function (ev) {
1413      var b = ev.target.closest('button'); if (!b) return;
1414      $$('button', group).forEach(function (x) {
1415        x.setAttribute('aria-pressed', x === b ? 'true' : 'false');
1416      });
1417      track('lead_pref', {choice: b.dataset.p});
1418    });
1419  });
1420})();
1421</script>
1421
1422
1423<script type="application/ld+json">
1424{"@context":"https://schema.org","@graph":[
1425{"@type":"ContactPage","@id":"https://ivfpulse.com/contact-us#contactpage",
1426 "url":"https://ivfpulse.com/contact-us",
1427 "name":"Contact IVF Pulse",
1428 "description":"Reach IVF Pulse on WhatsApp, phone or email. Fertility counsellors in Bengaluru, Monday to Saturday, 9am–6pm IST.",
1429 "inLanguage":"en-IN",
1430 "isPartOf":{"@id":"https://ivfpulse.com/#website"},
1431 "about":{"@id":"https://ivfpulse.com/#organization"},
1432 "mainEntity":{"@id":"https://ivfpulse.com/#organization"},
1433 "breadcrumb":{"@id":"https://ivfpulse.com/contact-us#breadcrumb"}},
1434
1435{"@type":"BreadcrumbList","@id":"https://ivfpulse.com/contact-us#breadcrumb","itemListElement":[
1436 {"@type":"ListItem","position":1,"name":"IVF Pulse","item":"https://ivfpulse.com/"},
1437 {"@type":"ListItem","position":2,"name":"Contact us","item":"https://ivfpulse.com/contact-us"}]},
1438
1439{"@type":"MedicalOrganization","@id":"https://ivfpulse.com/#organization",
1440 "url":"https://ivfpulse.com/","name":"IVF Pulse","alternateName":["IVFPulse","IVF Pulse India"],
1441 "logo":{"@type":"ImageObject","url":"https://ivfpulse.com/ivf-pulse-logo.svg"},
1442 "email":"[email protected]","telephone":"+91-8088365029",
1443 "address":{"@type":"PostalAddress","streetAddress":"#904, 5th A Cross, 1st Block, Kalyan Nagar, HRBR Layout","addressLocality":"Bengaluru","addressRegion":"Karnataka","addressCountry":"IN","postalCode":"560043"},
1444 "contactPoint":[
1445  {"@type":"ContactPoint","@id":"https://ivfpulse.com/#contact-support","telephone":"+91-8088365029","email":"[email protected]","contactType":"customer service","areaServed":"IN","availableLanguage":["en"],
1446   "hoursAvailable":{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"opens":"09:00","closes":"18:00"}},
1447  {"@type":"ContactPoint","@id":"https://ivfpulse.com/#contact-whatsapp","telephone":"+91-9611689081","contactType":"customer support","areaServed":"IN","availableLanguage":["en"],
1448   "url":"https://wa.me/919611689081"},
1449  {"@type":"ContactPoint","@id":"https://ivfpulse.com/#contact-corrections","email":"[email protected]","contactType":"editorial corrections","areaServed":"IN","availableLanguage":["en"]}],
1450 "location":[
1451  {"@type":"MedicalClinic","@id":"https://ivfpulse.com/#centre-kalyan-nagar",
1452   "name":"Wellspring Fertility by IVF Pulse — Kalyan Nagar",
1453   "address":{"@type":"PostalAddress","streetAddress":"#904, 5th A Cross, 1st Block, Kalyan Nagar, HRBR Layout","addressLocality":"Bengaluru","addressRegion":"Karnataka","addressCountry":"IN","postalCode":"560043"},
1454   "geo":{"@type":"GeoCoordinates","latitude":13.0215,"longitude":77.6434},
1455   "telephone":"+91-8088365029",
1456   "openingHoursSpecification":{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"opens":"09:00","closes":"18:00"}},
1457  {"@type":"MedicalClinic","@id":"https://ivfpulse.com/#centre-rr-nagar",
1458   "name":"Wellspring Fertility by IVF Pulse — RR Nagar",
1459   "address":{"@type":"PostalAddress","streetAddress":"Sparsh Hospitals, 5th floor, RR Nagar","addressLocality":"Bengaluru","addressRegion":"Karnataka","addressCountry":"IN"},
1460   "geo":{"@type":"GeoCoordinates","latitude":12.9296006,"longitude":77.5192369},
1461   "telephone":"+91-8088365029",
1462   "openingHoursSpecification":{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"opens":"09:00","closes":"18:00"}}],
1463 "sameAs":[
1464  "https://www.instagram.com/india.fwd?igsh=MTIzaGRpM3BoY3g2dA==",
1465  "https://www.facebook.com/profile.php?id=61568517396487",
1466  "https://www.youtube.com/channel/UC5widUvURmOX728CoQPvEUA",
1467  "https://x.com/IndiaFwd"]},
1468
1469{"@type":"FAQPage","@id":"https://ivfpulse.com/contact-us#faq","mainEntity":[
1470 {"@type":"Question","name":"Is the IVF Pulse consultation actually free?",
1471  "acceptedAnswer":{"@type":"Answer","text":"Yes. The first consultation with an IVF Pulse counsellor costs nothing, with no card, no deposit and no obligation to treat anywhere."}},
1472 {"@type":"Question","name":"Will my number be passed to clinics?",
1473  "acceptedAnswer":{"@type":"Answer","text":"No. What you send goes to IVF Pulse and stays there. IVF Pulse does not sell enquiries to clinics, and no clinic pays to be listed, scored or ranked. A specific centre is contacted only if you ask for it."}},
1474 {"@type":"Question","name":"IVF Pulse runs its own fertility centre — does that bias the advice?",
1475  "acceptedAnswer":{"@type":"Answer","text":"IVF Pulse operates its own fertility centre in Bangalore and it is scored on the same five signals, from the same public sources, as every other centre in the directory, including where it falls short. Every clinic page carries that disclosure, and a consultation booked through the site is with IVF Pulse rather than with a centre written about on it."}},
1476 {"@type":"Question","name":"How quickly does IVF Pulse reply?",
1477  "acceptedAnswer":{"@type":"Answer","text":"WhatsApp is watched through office hours and is the fastest route. The phone line and support inbox are answered Monday to Saturday, 9:00 to 18:00 IST; messages sent outside those hours are read the next working morning."}},
1478 {"@type":"Question","name":"Can I speak to a doctor rather than a counsellor?",
1479  "acceptedAnswer":{"@type":"Answer","text":"For a report or a treatment protocol, yes — the second-opinion service has your file read by practising IVF doctors. The counsellor call comes first so your records and history are in one place for the doctor to read."}}]}
1480]}
1481</script>
vendor: 1 bytes, line 1481
1481
1482<script id="chrome-inline">
1483/* chrome-inline.js — self-contained header/footer behavior for baked static pages.
1484 * Ported from public/shared/inject-layout.js with EVERY fetch()/DOMParser removed:
1485 * markup + styles are already in the page, so this only wires interactivity —
1486 * the transparency-on-scroll (glass nav) and the mobile menu. No network. */
1487(function () {
1488  "use strict";
1489
1490  // Scroll: toggle the frosted-glass class on the fixed nav once past 20px.
1491  function handleHeaderScroll() {
1492    var navs = document.querySelectorAll("#next-header nav");
1493    for (var i = 0; i < navs.length; i++) {
1494      if (window.scrollY > 20) navs[i].classList.add("next-glass-nav");
1495      else navs[i].classList.remove("next-glass-nav");
1496    }
1497  }
1498
1499  // Mobile menu open/close. Mirrors setupMobileMenu() in inject-layout.js.
1500  function setupMobileMenu() {
1501    var openBtn = document.querySelector('[aria-label="Open menu"]');
1502    var closeBtn = document.querySelector('[aria-label="Close menu"]');
1503    var overlay = document.getElementById("mobile-menu-overlay");
1504    if (!overlay) return;
1505
1506    var slide = overlay.querySelector("div:nth-child(2)");
1507    var backdrop = overlay.querySelector("div:nth-child(1)");
1508
1509    function open() {
1510      overlay.classList.remove("opacity-0", "pointer-events-none");
1511      overlay.classList.add("opacity-100", "pointer-events-auto");
1512      if (slide) {
1513        slide.classList.remove("-translate-y-full");
1514        slide.classList.add("translate-y-0");
1515      }
1516      document.body.style.overflow = "hidden";
1517    }
1518    function close() {
1519      overlay.classList.remove("opacity-100", "pointer-events-auto");
1520      overlay.classList.add("opacity-0", "pointer-events-none");
1521      if (slide) {
1522        slide.classList.remove("translate-y-0");
1523        slide.classList.add("-translate-y-full");
1524      }
1525      document.body.style.overflow = "";
1526    }
1527
1528    if (openBtn) openBtn.addEventListener("click", open);
1529    if (closeBtn) closeBtn.addEventListener("click", close);
1530    else {
1531      var btn = overlay.querySelector("button");
1532      if (btn) btn.addEventListener("click", close);
1533    }
1534    if (backdrop) backdrop.addEventListener("click", close);
1535  }
1536
1537  function init() {
1538    setupMobileMenu();
1539    handleHeaderScroll(); // set initial state
1540    window.addEventListener("scroll", handleHeaderScroll, { passive: true });
1541  }
1542
1543  if (document.readyState === "loading") {
1544    document.addEventListener("DOMContentLoaded", init);
1545  } else {
1546    init();
1547  }
1548})();
1549
1550</script>
vendor: 1 bytes, line 1550
1550
1551<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":"3f6042a1570749d7840dd99db4915418","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 1551
1551
1552<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":"3f6042a1570749d7840dd99db4915418","r":1,"spa":2}' crossorigin="anonymous"></script>
1552
1553</body></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.