1import{r as o,j as e,g as s,A as n,L as d}from"./index-a9db3765.js";import{S as l}from"./HomePage-e2efe0ff.js";import{C as c}from"./clipboard-check-f8d4e0bc.js";import{S as f}from"./scale-a83c394d.js";import"./index-da0747ee.js";import"./useStates-611fbf30.js";import"./useQuery-6fefbac0.js";import"./PropertyDocumentCard-d04a6a8e.js";import"./sparkles-c7f98271.js";import"./Divider-52c88025.js";import"./dividerClasses-07928e34.js";import"./map-pin-8192f3ac.js";import"./chevron-down-5c01a0da.js";import"./search-96295409.js";import"./users-946abc1b.js";import"./landmark-faad4c98.js";import"./shield-check-e5caee76.js";import"./trending-up-d7642243.js";import"./circle-check-fc7df41c.js";/* empty css */const x=[{key:"audit",badge:"JaaGa Audit Report",Icon:c,soon:!1,cardTitle:"Is this property safe to buy?",cardDesc:"40+ government records checked. Every risk flagged. One clear verdict.",chips:["Title Clarity","EC Check","RERA Compliance","Tax Dues"],detailTitle:"Get your property audit report in minutes",detailDesc:"Before you commit to a property, make sure everything checks out. JaaGa verifies 40+ government records (Sale Deed, EC, Property Tax, RERA) and delivers one comprehensive report with every risk flagged and a buy/sell/wait verdict.",ctas:[{label:"Get My Audit Report",to:"/states",primary:!0},{label:"View Sample",sample:!0}]},{key:"maps",badge:"JaaGa Maps",Icon:s,soon:!0,cardTitle:"See every plot",cardDesc:"Precisely locate and measure any land on a live, survey-backed map.",chips:["Boundaries","Area Measurement","EMI Calculator","Registration Cost"],detailTitle:"See every property on the map",detailDesc:"Search any village, survey number, or location to explore property boundaries, parcel details, and land measurements on an interactive map. All the tools you need (measurement, EMI, registration cost) in one place.",ctas:[{label:"Explore Maps",to:"/maps",primary:!0}]},{key:"legal",badge:"Legal Module",Icon:f,soon:!1,cardTitle:"Automated due diligence, bank-ready",cardDesc:"From document fetch to signed report, fully automated, zero manual effort.",chips:["EC Auto-fetch","Prohibitory Check","AI Summary","Bank Template"],detailTitle:"From documents to bank-ready report in minutes",detailDesc:"JaaGa automatically fetches EC and Prohibitory Check, analyses and highlights risks, generates an AI summary of all uploaded and fetched documents, then populates a bank-approved template, ready to sign. No manual steps, no back and forth.",ctas:[{label:"Explore Legal Module",href:"https://partner.jaaga.ai/",primary:!0}]}],h=({Icon:a,children:p})=>e.jsxs("span",{className:"fp-badge",children:[e.jsx(a,{className:"fp-badge-icon",size:15,strokeWidth:2.2,"aria-hidden":"true"}),p]}),m=({cta:a,onSample:p})=>{const r=a.primary?"fp-btn fp-btn--primary":"fp-btn fp-btn--ghost",t=e.jsxs(e.Fragment,{children:[a.label,a.primary&&e.jsx(n,{size:17,strokeWidth:2.4,"aria-hidden":"true"})]});return a.sample?e.jsx("button",{type:"button",onClick:p,className:r,children:t}):a.href?e.jsx("a",{href:a.href,target:"_blank",rel:"noopener noreferrer",className:r,children:t}):e.jsx(d,{to:a.to,onClick:()=>window.scrollTo(0,0),className:r,children:t})},g=({p:a})=>e.jsxs("div",{className:"fp-card jh-feature-card",children:[e.jsx(h,{Icon:a.Icon,children:a.badge}),e.jsx("h3",{className:"fp-card-title",children:a.cardTitle}),e.jsx("p",{className:"fp-card-desc",children:a.cardDesc}),e.jsx("ul",{className:"fp-chips","aria-label":`${a.badge} highlights`,children:a.chips.map(p=>e.jsxs("li",{className:"fp-chip",children:[e.jsx("span",{className:"fp-chip-dot","aria-hidden":"true"}),p]},p))})]}),b=({p:a,onSample:p})=>e.jsxs("div",{className:"fp-detail",children:[e.jsx("p",{className:"fp-detail-eyebrow",children:a.badge}),e.jsx("h3",{className:"fp-detail-title",children:a.detailTitle}),e.jsx("p",{className:"fp-detail-desc",children:a.detailDesc}),e.jsx("div",{className:"fp-detail-cta",children:a.ctas.map(r=>e.jsx(m,{cta:r,onSample:p},r.label))})]}),G=()=>{const[a,p]=o.useState(!1);return e.jsxs("section",{className:"fp-section","aria-labelledby":"fp-heading",children:[e.jsxs("div",{className:"fp-wrap",children:[e.jsxs("header",{className:"fp-header",children:[e.jsxs("p",{className:"fp-eyebrow",children:[e.jsx("span",{className:"fp-eyebrow-rule","aria-hidden":"true"}),"Featured Products",e.jsx("span",{className:"fp-eyebrow-rule","aria-hidden":"true"})]}),e.jsxs("h2",{id:"fp-heading",className:"fp-display",children:["Everything you need for a ",e.jsx("span",{className:"fp-accent",children:"confident property decision"})]}),e.jsx("p",{className:"fp-sub",children:"All your property records, checks, and reports, in one simple place."})]}),e.jsx("div",{className:"fp-rows",children:x.map((r,t)=>{const i=t%2===0;return e.jsxs("div",{className:"fp-row",children:[e.jsx("div",{className:`fp-col ${i?"fp-col--card-l":"fp-col--card-r"}`,children:e.jsx(g,{p:r})}),e.jsx("div",{className:`fp-col ${i?"fp-col--detail-r":"fp-col--detail-l"}`,children:e.jsx(b,{p:r,onSample:()=>p(!0)})})]},r.key)})})]}),e.jsx(l,{open:a,onClose:()=>p(!1)}),e.jsx("style",{children:` 2 .fp-section { padding: 72px 0 84px; background: #fff; } 3 .fp-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; } 4 5 /* ââ Header ââ */ 6 .fp-header { text-align: center; max-width: 760px; margin: 0 auto 56px; } 7 .fp-eyebrow { 8 display: inline-flex; align-items: center; gap: 14px; 9 font-size: 13px; font-weight: 700; letter-spacing: 0.22em; 10 text-transform: uppercase; color: #8a93a6; margin: 0 0 14px; 11 } 12 .fp-eyebrow-rule { display: block; width: 34px; height: 1px; background: #c7cedb; } 13 .fp-display { 14 font-size: clamp(30px, 4.4vw, 46px); line-height: 1.08; 15 font-weight: 800; letter-spacing: -0.02em; color: #14306b; margin: 0; 16 } 17 .fp-accent { color: #f0a500; } 18 .fp-sub { 19 margin: 18px auto 0; max-width: 560px; 20 font-size: 17px; line-height: 1.6; color: #6b7488; 21 }
22 /* Keep the heading + sub each on a single line from tablet up */ 23 @media (min-width: 768px) { 24 .fp-header { max-width: none; } 25 .fp-display, .fp-sub { white-space: nowrap; } 26 .fp-sub { max-width: none; } 27 } 28 29 /* ââ Rows ââ */ 30 .fp-rows { display: flex; flex-direction: column; gap: 56px; } 31 .fp-row { 32 display: grid; grid-template-columns: 1fr 1fr; 33 gap: 56px; align-items: center; 34 } 35 .fp-col { min-width: 0; } 36 /* Desktop ordering, card on left or right per row */ 37 .fp-col--card-l { order: 1; } 38 .fp-col--detail-r { order: 2; } 39 .fp-col--detail-l { order: 1; } 40 .fp-col--card-r { order: 2; } 41 42 /* ââ Teaser card ââ */ 43 .fp-card { 44 position: relative; 45 background: linear-gradient(150deg, #f3f6fb 0%, #eef2f9 100%); 46 border: 1px solid #e6ebf3; 47 border-radius: 24px; 48 padding: 34px 36px 36px; 49 box-shadow: 0 30px 60px -44px rgba(20, 48, 107, 0.4); 50 } 51 .fp-soon { 52 position: absolute; top: 22px; right: 22px; 53 background: linear-gradient(90deg, #f0a500, #ffc247); 54 color: #4a3000; font-size: 11px; font-weight: 800; 55 letter-spacing: 0.08em; text-transform: uppercase; 56 padding: 5px 12px; border-radius: 999px; 57 box-shadow: 0 6px 16px -6px rgba(240, 165, 0, 0.6); 58 } 59 .fp-badge { 60 display: inline-flex; align-items: center; gap: 8px; 61 background: #fff; border: 1px solid #e3e8f1; border-radius: 999px; 62 padding: 7px 15px 7px 13px; 63 font-size: 12.5px; font-weight: 800; letter-spacing: 0.07em; 64 text-transform: uppercase; color: #b07400; 65 box-shadow: 0 2px 8px -4px rgba(20, 48, 107, 0.25); 66 } 67 .fp-badge-icon { color: #c98a00; } 68 .fp-card-title { 69 margin: 22px 0 0; font-size: clamp(23px, 2.6vw, 29px); 70 font-weight: 800; letter-spacing: -0.015em; line-height: 1.18; color: #14306b; 71 } 72 .fp-card-desc { 73 margin: 14px 0 0; font-size: 16.5px; line-height: 1.6; color: #56607a; 74 } 75 .fp-chips { 76 list-style: none; margin: 24px 0 0; padding: 0; 77 display: flex; flex-wrap: wrap; gap: 10px; 78 } 79 .fp-chip { 80 display: inline-flex; align-items: center; gap: 8px; 81 background: #fff; border: 1px solid #e3e8f1; border-radius: 999px; 82 padding: 8px 15px; font-size: 14px; font-weight: 700; color: #14306b; 83 box-shadow: 0 2px 6px -4px rgba(20, 48, 107, 0.22); 84 } 85 .fp-chip-dot { 86 width: 6px; height: 6px; border-radius: 50%; 87 background: #c98a00; flex-shrink: 0; 88 } 89 90 /* ââ Detail block ââ */ 91 .fp-detail { padding: 4px 8px; } 92 .fp-detail-eyebrow { 93 margin: 0 0 14px; font-size: 13px; font-weight: 800; 94 letter-spacing: 0.14em; text-transform: uppercase; color: #c98a00; 95 } 96 .fp-detail-title { 97 margin: 0; font-size: clamp(28px, 3.4vw, 40px); 98 font-weight: 800; letter-spacing: -0.02em; line-height: 1.12; color: #14306b; 99 } 100 .fp-detail-desc { 101 margin: 22px 0 0; font-size: 17px; line-height: 1.72; color: #5a6379; 102 max-width: 520px; 103 } 104 .fp-detail-cta { 105 margin: 30px 0 0; display: flex; flex-wrap: wrap; gap: 14px; 106 } 107 .fp-btn { 108 display: inline-flex; align-items: center; gap: 9px; 109 padding: 15px 26px; border-radius: 14px; 110 font-size: 16px; font-weight: 700; text-decoration: none; 111 transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease; 112 cursor: pointer; 113 } 114 .fp-btn--primary { 115 background: #14306b; color: #fff; 116 box-shadow: 0 18px 34px -18px rgba(20, 48, 107, 0.7); 117 } 118 .fp-btn--primary:hover { 119 transform: translateY(-2px); background: #0f2657; 120 box-shadow: 0 22px 40px -16px rgba(20, 48, 107, 0.75); 121 } 122 .fp-btn--ghost { 123 background: #fff; color: #14306b; border: 1.5px solid #d8deea; 124 } 125 .fp-btn--ghost:hover { 126 transform: translateY(-2px); border-color: #14306b; 127 } 128 129 /* ââ Tablet / mobile ââ */ 130 @media (max-width: 880px) { 131 .fp-section { padding: 56px 0 64px; } 132 .fp-header { margin-bottom: 40px; } 133 .fp-rows { gap: 40px; } 134 .fp-row { grid-template-columns: 1fr; gap: 24px; } 135 /* Stack with the detail first, the card beneath it, for every row */ 136 .fp-col--card-l, .fp-col--card-r { order: 2; } 137 .fp-col--detail-l, .fp-col--detail-r { order: 1; } 138 .fp-detail { padding: 0; } 139 .fp-detail-desc, .fp-sub { max-width: none; } 140 .fp-card { padding: 28px 24px 30px; } 141 } 142 @media (prefers-reduced-motion: reduce) { 143 .fp-btn { transition: none; } 144 } 145 146 /* ââ Mobile header: tighter, and always exactly two lines ââ */ 147 @media (max-width: 640px) { 148 .fp-header { margin-bottom: 28px; } 149 .fp-eyebrow { gap: 10px; margin-bottom: 10px; font-size: 11.5px; } 150 .fp-display { 151 font-size: clamp(20px, 6.4vw, 26px); 152 letter-spacing: -0.01em; 153 } 154 /* Forces the accent phrase onto its own line, so the heading is 155 always exactly two lines regardless of how it would naturally 156 wrap at a given width. */ 157 .fp-accent { display: block; margin-top: 2px; } 158 .fp-sub { margin-top: 12px; font-size: 15px; line-height: 1.55; } 159 } 160 161 /* ââ Mobile body: scale + align âââââââââââââââââââââââââââââââââââ 162 Below 640px the body kept its desktop metrics, which produced two 163 visible problems: the CTAs sized to their own labels (a 244px 164 primary above a 153px ghost â a ragged right edge), and the chips 165 wrapped to whatever fitted, so each row ended at a different x 166 (297px vs 334px). Both are pinned to a shared grid here, and the
167 type comes down a step so a product isn't two screens tall. */ 168 @media (max-width: 640px) { 169 .fp-section { padding: 44px 0 52px; } 170 .fp-wrap { padding: 0 18px; } 171 .fp-rows { gap: 34px; } 172 .fp-row { gap: 20px; } 173 174 /* Detail column */ 175 .fp-detail-eyebrow { margin-bottom: 10px; font-size: 11.5px; letter-spacing: 0.12em; } 176 .fp-detail-title { 177 font-size: clamp(21px, 5.8vw, 26px); 178 line-height: 1.18; letter-spacing: -0.015em; 179 } 180 .fp-detail-desc { margin-top: 12px; font-size: 15px; line-height: 1.62; } 181 182 /* CTAs: one column, both full width â edges line up with the card. */ 183 .fp-detail-cta { margin-top: 18px; flex-direction: column; gap: 10px; } 184 .fp-btn { 185 width: 100%; justify-content: center; 186 padding: 13px 20px; font-size: 15px; border-radius: 12px; 187 } 188 189 /* Teaser card */ 190 .fp-card { padding: 22px 18px 24px; border-radius: 20px; } 191 .fp-soon { top: 16px; right: 16px; font-size: 10px; padding: 4px 10px; } 192 .fp-badge { padding: 6px 12px 6px 10px; font-size: 11px; letter-spacing: 0.05em; } 193 .fp-card-title { margin-top: 16px; font-size: 19px; line-height: 1.24; } 194 .fp-card-desc { margin-top: 10px; font-size: 14.5px; line-height: 1.55; } 195 196 /* Chips: a real 2-up grid instead of free wrapping, so every chip 197 shares a column edge and the rows end flush with the card. */ 198 .fp-chips { 199 margin-top: 18px; 200 display: grid; grid-template-columns: 1fr 1fr; gap: 8px; 201 } 202 .fp-chip { 203 padding: 8px 12px; font-size: 12.5px; gap: 7px; 204 min-width: 0; /* allow the grid cell to shrink below content width */ 205 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 206 } 207 /* An odd final chip spans the full width instead of leaving a hole. 208 (All five products ship 4 chips today, so this is just a guard.) */ 209 .fp-chip:last-child:nth-child(odd) { grid-column: 1 / -1; } 210 } 211 /* The longest label ("RERA Compliance") clipped at 360px, so trim the 212 chip's own metrics one more step on the narrowest phones rather than 213 shipping a visible ellipsis. */ 214 @media (max-width: 375px) { 215 .fp-chips { gap: 7px; } 216 .fp-chip { padding: 7px 10px; font-size: 11.5px; gap: 6px; } 217 .fp-chip-dot { width: 5px; height: 5px; } 218 } 219 `})]})};export{G as default}; 220//# sourceMappingURL=FeaturedProducts-ea2e53ef.js.map
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.