/* ── Tokens ─────────────────────────────────────────────────────── */ :root{ --navy: #1a2744; --navy-deep: #0f1a2e; --blue: #2563d4; --blue-2: #3b7ef8; --white: #ffffff; --off: #f7f8fc; --off-2: #eef1f8; --muted: #6b7a99; --text-2: #3d4f6e; --bdr: rgba(26,39,68,0.09); --bdr-2: rgba(26,39,68,0.16); --bdr-blue: rgba(37,99,212,0.25); --sh-1: 0 2px 8px rgba(26,39,68,0.07); --sh-2: 0 4px 20px rgba(37,99,212,0.10); --sh-3: 0 8px 40px rgba(37,99,212,0.14); --sh-blue: 0 4px 20px rgba(37,99,212,0.32); --nav-h: 68px; --max-w: 1180px; } /* ── Navigation ─────────────────────────────────────────────────── */ .nav{ position:fixed; top:0;left:0;right:0; z-index:1000; height:var(--nav-h); display:flex; align-items:center; background:rgba(255,255,255,0.95); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-bottom:1px solid var(--bdr); transition:box-shadow 200ms ease; } .nav.scrolled{box-shadow:var(--sh-2);} .nav-inner{ width:100%;max-width:var(--max-w); margin:0 auto; padding:0 2.5rem; display:flex;align-items:center; justify-content:space-between; gap:1rem; } .nav-logo{display:flex;align-items:center;gap:12px;flex-shrink:0} .nav-logo img{width:40px;height:40px;object-fit:contain;border-radius:10px} .nav-logo-text{display:flex;flex-direction:column;line-height:1} .nav-logo-name{ font-family:'Playfair Display',serif; font-size:18px;font-weight:700; color:var(--navy);letter-spacing:-0.02em; } .nav-logo-sub{font-size:10px;font-weight:500;color:var(--blue);margin-top:2px} .nav-links{ display:flex;align-items:center;gap:4px;list-style:none; } .nav-links a{ display:flex;align-items:center;height:36px;padding:0 14px; font-size:13px;font-weight:500;color:var(--muted); border-radius:10px;transition:all 140ms ease; } .nav-links a:hover{color:var(--navy);background:var(--off)} .nav-auth{display:flex;align-items:center;gap:8px;flex-shrink:0} .btn-ghost-nav{ background:transparent;color:var(--navy); border:1.5px solid var(--bdr-2);padding:8px 20px; border-radius:9999px;font-size:13px;font-weight:600; cursor:pointer;font-family:'DM Sans',sans-serif; transition:all 150ms ease;min-height:38px; } .btn-ghost-nav:hover{border-color:var(--blue);color:var(--blue)} .btn-nav-primary{ background:var(--blue);color:#fff;border:none; padding:9px 22px;border-radius:9999px;font-size:13px; font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif; box-shadow:var(--sh-blue);transition:all 150ms ease;min-height:38px; } .btn-nav-primary:hover{background:var(--navy);transform:translateY(-1px)} /* User button (logged in) */ .nav-user-btn{ display:none;align-items:center;gap:8px; background:var(--off);border:1.5px solid var(--bdr-2); border-radius:9999px;padding:6px 16px 6px 6px; cursor:pointer;font-size:13px;font-weight:600;color:var(--navy); font-family:'DM Sans',sans-serif;min-height:40px; transition:border-color 150ms ease; } .nav-user-btn:hover{border-color:var(--blue)} .nav-av{ width:28px;height:28px;border-radius:50%; background:rgba(37,99,212,0.12); border:2px solid var(--bdr-blue); display:flex;align-items:center;justify-content:center; font-size:12px;font-weight:700;color:var(--blue); } /* Hamburger */ .nav-ham{ display:none;width:44px;height:44px; flex-direction:column;align-items:center;justify-content:center; gap:5px;border:none;background:none;cursor:pointer; border-radius:10px;transition:background 140ms ease; } .nav-ham:hover{background:var(--off)} .nav-ham span{ display:block;width:22px;height:2px; background:var(--navy);border-radius:2px; transition:all 200ms ease;transform-origin:center; } .nav-ham[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg) translate(5px,5px)} .nav-ham[aria-expanded="true"] span:nth-child(2){opacity:0} .nav-ham[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)} /* Mobile drawer */ .nav-drawer{ display:none;position:fixed; inset:var(--nav-h) 0 0 0; background:#fff;z-index:999; flex-direction:column;padding:1.5rem;gap:4px; overflow-y:auto; transform:translateX(-100%); transition:transform 300ms ease; border-top:1px solid var(--bdr); } .nav-drawer.open{transform:translateX(0)} .nav-drawer a{ display:flex;align-items:center;min-height:52px; padding:12px 16px;font-size:16px;font-weight:500; color:var(--navy);border-radius:14px; border:1px solid transparent; transition:all 140ms ease; } .nav-drawer a:hover{background:var(--off);border-color:var(--bdr)} .nav-drawer-div{height:1px;background:var(--bdr);margin:10px 0} .nav-drawer-btns{display:flex;flex-direction:column;gap:10px;margin-top:auto;padding-top:1rem} /* ── HERO ───────────────────────────────────────────────────────── */ .hero{ padding-top:calc(var(--nav-h) + 80px); padding-bottom:80px; padding-inline:2.5rem; max-width:var(--max-w); margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; min-height:calc(100svh - var(--nav-h)); } .hero-left{} .hero-eyebrow{ display:inline-flex;align-items:center;gap:8px; background:rgba(37,99,212,0.08); border:1px solid rgba(37,99,212,0.20); border-radius:9999px;padding:6px 16px; font-size:11px;font-weight:700;color:var(--blue); letter-spacing:0.06em;text-transform:uppercase; margin-bottom:1.5rem; } .hero-eyebrow::before{ content:'';width:6px;height:6px; border-radius:50%;background:var(--blue);flex-shrink:0; } .hero h1{ font-family:'Playfair Display',serif; font-size:clamp(2.75rem,5.5vw,4.25rem); font-weight:900;line-height:1.08; letter-spacing:-0.03em;color:var(--navy); margin-bottom:1.25rem; } .hero h1 em{color:var(--blue);font-style:normal} .hero-desc{ font-size:16px;color:var(--text-2); max-width:420px;line-height:1.7;margin-bottom:1rem; } .hero-badges{display:flex;flex-direction:column;gap:6px;margin-bottom:2rem} .hero-badge{ display:inline-flex;align-items:center;gap:8px; font-size:13px;font-weight:500;color:var(--text-2); } .hero-ctas{display:flex;gap:12px;flex-wrap:wrap} .btn-primary{ background:var(--blue);color:#fff;border:none; padding:14px 30px;border-radius:9999px; font-size:15px;font-weight:600;cursor:pointer; font-family:'DM Sans',sans-serif; box-shadow:var(--sh-blue); transition:all 200ms ease; min-height:50px;display:inline-flex; align-items:center;gap:8px; } .btn-primary:hover{background:var(--navy);transform:translateY(-2px);box-shadow:0 8px 32px rgba(37,99,212,0.42)} .btn-secondary{ background:#fff;color:var(--navy); border:1.5px solid var(--bdr-2); padding:14px 30px;border-radius:9999px; font-size:15px;font-weight:500;cursor:pointer; font-family:'DM Sans',sans-serif; transition:all 200ms ease;min-height:50px; display:inline-flex;align-items:center;gap:8px; } .btn-secondary:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-1px)} /* Hero right — logo display */ .hero-right{ display:flex;flex-direction:column; align-items:center;justify-content:center;gap:20px; position:relative; } .hero-logo-wrap{ position:relative; width:220px;height:220px; display:flex;align-items:center;justify-content:center; } .hero-logo-glow{ position:absolute;inset:-30px; background:radial-gradient(circle,rgba(37,99,212,0.12) 0%,transparent 70%); border-radius:50%;animation:pulse-glow 3s ease-in-out infinite; } @keyframes pulse-glow{ 0%,100%{opacity:0.6;transform:scale(1)} 50%{opacity:1;transform:scale(1.08)} } .hero-logo-img{ width:180px;height:180px; border-radius:40px;object-fit:contain; box-shadow:0 20px 60px rgba(37,99,212,0.25),0 4px 16px rgba(26,39,68,0.10); animation:float 4s ease-in-out infinite; position:relative;z-index:1; } @keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}} .hero-brand{text-align:center} .hero-brand-name{ font-family:'Playfair Display',serif; font-size:28px;font-weight:700;color:var(--navy); letter-spacing:-0.02em; } .hero-brand-sub{ font-size:13px;font-weight:500;color:var(--blue); margin-top:4px;letter-spacing:0.02em; } .hero-brand-tag{ font-size:12px;color:var(--muted);margin-top:3px; font-style:italic; } /* Floating trust pills */ .hero-trust{ display:flex;gap:10px;flex-wrap:wrap;justify-content:center; margin-top:4px; } .trust-pill{ display:inline-flex;align-items:center;gap:6px; background:#fff;border:1px solid var(--bdr-2); border-radius:9999px;padding:6px 14px; font-size:12px;font-weight:500;color:var(--text-2); box-shadow:var(--sh-1); } /* ── STATS BAR ──────────────────────────────────────────────────── */ .stats-bar{background:var(--navy-deep);padding:48px 2.5rem} .stats-inner{ max-width:var(--max-w);margin:0 auto; display:flex;justify-content:space-around; gap:2rem;flex-wrap:wrap; } .stat-item{text-align:center} .stat-num{ font-family:'Playfair Display',serif; font-size:2.5rem;font-weight:700;color:#fff; display:block;line-height:1; } .stat-lbl{ font-size:11px;color:rgba(255,255,255,0.45); margin-top:8px;letter-spacing:0.05em;text-transform:uppercase; } /* ── HOW IT WORKS ───────────────────────────────────────────────── */ .how-section{ background:var(--off); padding:80px 2.5rem; } .how-inner{max-width:var(--max-w);margin:0 auto} .section-eyebrow{ display:block;text-align:center; font-size:11px;font-weight:700;color:var(--blue); letter-spacing:0.08em;text-transform:uppercase; margin-bottom:12px; } .section-title{ font-family:'Playfair Display',serif; font-size:clamp(1.75rem,3vw,2.5rem); font-weight:700;color:var(--navy); text-align:center;margin-bottom:4px; } .section-sub{ font-size:15px;color:var(--muted); text-align:center;margin-bottom:3.5rem; max-width:480px;margin-inline:auto; line-height:1.7; } .steps-grid{ display:grid;grid-template-columns:repeat(3,1fr); gap:24px; } .step-card{ background:#fff;border:1px solid var(--bdr); border-radius:22px;padding:32px 28px; box-shadow:var(--sh-1); transition:transform 200ms ease,box-shadow 200ms ease,border-color 200ms ease; } .step-card:hover{ transform:translateY(-4px); box-shadow:var(--sh-3); border-color:var(--bdr-blue); } .step-num{ width:44px;height:44px;border-radius:50%; background:rgba(37,99,212,0.10); border:2px solid rgba(37,99,212,0.20); display:flex;align-items:center;justify-content:center; font-family:'Playfair Display',serif; font-size:18px;font-weight:700;color:var(--blue); margin-bottom:16px; } .step-title{ font-family:'Playfair Display',serif; font-size:17px;font-weight:700;color:var(--navy); margin-bottom:10px; } .step-desc{font-size:14px;color:var(--muted);line-height:1.65} /* ── SEARCH + SERVICES ──────────────────────────────────────────── */ .services-section{padding:80px 2.5rem} .services-inner{max-width:var(--max-w);margin:0 auto} .search-wrap{ display:flex;align-items:center;gap:8px; background:#fff;border:1.5px solid var(--bdr-2); border-radius:18px;padding:8px; box-shadow:var(--sh-2); margin-bottom:20px; transition:border-color 150ms ease,box-shadow 150ms ease; } .search-wrap:focus-within{ border-color:var(--blue); box-shadow:0 0 0 3px rgba(37,99,212,0.10),var(--sh-2); } .search-wrap input{ flex:1;border:none;background:transparent;outline:none; font-family:'DM Sans',sans-serif;font-size:15px; color:var(--navy);padding:8px 12px;min-height:40px; } .search-wrap input::placeholder{color:#9aa3bc} .search-wrap select{ background:var(--off);border:1px solid var(--bdr); border-radius:12px;padding:8px 14px; font-family:'DM Sans',sans-serif;font-size:13px; color:var(--text-2);outline:none;cursor:pointer;min-height:40px; } .search-wrap button{ background:var(--blue);color:#fff;border:none; padding:10px 24px;border-radius:12px;font-size:13px; font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif; transition:background 150ms ease;white-space:nowrap;min-height:40px; } .search-wrap button:hover{background:var(--navy)} .cat-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:2rem} .cat-pill{ display:inline-flex;align-items:center;gap:6px; padding:7px 16px;border-radius:9999px; border:1.5px solid var(--bdr);background:#fff; font-size:12px;font-weight:600;color:var(--muted); cursor:pointer;min-height:38px;flex-shrink:0; transition:all 140ms ease;user-select:none; } .cat-pill:hover,.cat-pill.on{ background:rgba(37,99,212,0.09); border-color:var(--bdr-blue);color:var(--blue); } /* Services grid */ .svc-grid-header{ display:flex;justify-content:space-between; align-items:center;margin-bottom:1.5rem; } .svc-grid-title{ font-family:'Playfair Display',serif; font-size:20px;font-weight:700;color:var(--navy); } .view-all-link{font-size:13px;font-weight:500;color:var(--blue)} .view-all-link:hover{text-decoration:underline} .svc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:18px; } .svc-card{ display:flex;flex-direction:column; background:#fff;border:1px solid var(--bdr); border-radius:22px;overflow:hidden;cursor:pointer; box-shadow:var(--sh-1); transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease; } .svc-card:hover{ transform:translateY(-5px); box-shadow:0 12px 48px rgba(37,99,212,0.14); border-color:var(--bdr-blue); } .svc-media{ position:relative;height:168px; background:linear-gradient(135deg,var(--off),var(--off-2)); display:flex;align-items:center;justify-content:center; font-size:46px;overflow:hidden; } .svc-badge-row{ position:absolute;top:12px;inset-inline:12px; display:flex;justify-content:space-between;align-items:flex-start; } .badge{ display:inline-flex;align-items:center;gap:4px; font-size:10px;font-weight:600; padding:3px 10px;border-radius:9999px;border:1px solid transparent; } .badge-cat{ background:#fff;border-color:var(--bdr-2);color:var(--muted); box-shadow:var(--sh-1); } .badge-online{ background:rgba(37,99,212,0.09);border-color:var(--bdr-blue); color:var(--blue); } .badge-trust{ background:rgba(22,163,74,0.08);border-color:rgba(22,163,74,0.20); color:#16a34a; } .svc-body{flex:1;padding:16px 18px;display:flex;flex-direction:column;gap:8px} .svc-title{ font-family:'Playfair Display',serif; font-size:16px;font-weight:700;color:var(--navy); line-height:1.3;display:-webkit-box; -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; } .svc-desc{ font-size:12px;color:var(--muted);line-height:1.55; display:-webkit-box;-webkit-line-clamp:2; -webkit-box-orient:vertical;overflow:hidden; } .svc-stars{font-size:11px;color:#f59e0b} .svc-footer{ display:flex;align-items:center;justify-content:space-between; padding:12px 18px 14px;border-top:1px solid var(--bdr); margin-top:auto; } .svc-prov{display:flex;align-items:center;gap:8px} .prov-av{ width:28px;height:28px;border-radius:50%; background:rgba(37,99,212,0.10); border:1.5px solid var(--bdr-blue); display:flex;align-items:center;justify-content:center; font-size:11px;font-weight:700;color:var(--blue);flex-shrink:0; } .prov-name{font-size:12px;color:var(--muted);font-weight:500} .svc-price{ font-family:'Playfair Display',serif; font-size:21px;font-weight:700;color:var(--blue);line-height:1; } /* Loading skeletons */ @keyframes shimmer{ 0%{background-position:-600px 0}100%{background-position:600px 0} } .skeleton{ background:linear-gradient(90deg,var(--off-2) 25%,var(--off) 50%,var(--off-2) 75%); background-size:1200px 100%; animation:shimmer 1.4s ease-in-out infinite; border-radius:10px; } /* ── AI GENERATOR — contained card ─────────────────────────────── */ .ai-section{ background:linear-gradient(135deg,#f0f4ff,#e8f0fe); padding:80px 2.5rem; border-top:1px solid var(--bdr); border-bottom:1px solid var(--bdr); } .ai-inner{max-width:680px;margin:0 auto} .ai-card{ background:#fff;border:1px solid var(--bdr-2); border-radius:28px;padding:44px; box-shadow:0 8px 40px rgba(37,99,212,0.10); } .ai-card-head{text-align:center;margin-bottom:2rem} .ai-icon{font-size:44px;margin-bottom:12px} .ai-card-title{ font-family:'Playfair Display',serif; font-size:1.75rem;font-weight:700;color:var(--navy); margin-bottom:8px; } .ai-card-sub{font-size:14px;color:var(--muted);line-height:1.65} .ai-form{display:flex;flex-direction:column;gap:14px} .ai-input{ width:100%;background:var(--off); border:1.5px solid var(--bdr);border-radius:14px; padding:13px 16px;font-family:'DM Sans',sans-serif; font-size:15px;color:var(--navy);outline:none; transition:border-color 150ms,box-shadow 150ms;min-height:50px; } .ai-input::placeholder{color:#9aa3bc} .ai-input:focus{ border-color:var(--blue);background:#fff; box-shadow:0 0 0 3px rgba(37,99,212,0.10); } .ai-btn{ width:100%;background:var(--blue);color:#fff;border:none; padding:14px;border-radius:14px;font-size:15px;font-weight:600; cursor:pointer;font-family:'DM Sans',sans-serif; box-shadow:var(--sh-blue);transition:all 200ms ease;min-height:50px; display:flex;align-items:center;justify-content:center;gap:8px; } .ai-btn:hover{background:var(--navy);transform:translateY(-1px)} .ai-results{margin-top:1.5rem} .ai-result-title{ font-family:'Playfair Display',serif; font-size:16px;font-weight:700;color:var(--navy); margin-bottom:12px;display:flex;align-items:center;gap:8px; } .ai-result-btns{display:flex;gap:10px;margin-top:1rem} .ai-result-btn{ display:inline-flex;align-items:center;gap:6px; padding:10px 20px;border-radius:9999px; font-size:13px;font-weight:600;cursor:pointer; font-family:'DM Sans',sans-serif;transition:all 150ms ease; min-height:42px; } .ai-result-btn.primary{ background:var(--blue);color:#fff;border:none; box-shadow:var(--sh-blue); } .ai-result-btn.primary:hover{background:var(--navy)} .ai-result-btn.ghost{ background:transparent;color:var(--navy); border:1.5px solid var(--bdr-2); } .ai-result-btn.ghost:hover{border-color:var(--blue);color:var(--blue)} .ai-loading{ display:flex;align-items:center;gap:10px; font-size:13px;color:var(--muted);padding:12px 0; } .ai-spinner{ width:18px;height:18px;border:2px solid var(--bdr-2); border-top-color:var(--blue);border-radius:50%; animation:spin 0.65s linear infinite;flex-shrink:0; } @keyframes spin{to{transform:rotate(360deg)}} /* ── FOOTER ─────────────────────────────────────────────────────── */ footer{background:var(--navy-deep);color:rgba(255,255,255,0.45);padding-bottom:0} .foot-grid{ max-width:var(--max-w);margin:0 auto; display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3.5rem; padding:4.5rem 2.5rem 3rem; } .foot-logo-row{display:flex;align-items:center;gap:12px;margin-bottom:14px} .foot-logo-row img{width:40px;height:40px;object-fit:contain;border-radius:10px} .foot-brand-name{ font-family:'Playfair Display',serif; font-size:18px;font-weight:700;color:#fff; } .foot-brand-sub{font-size:10px;color:#3b7ef8;font-weight:500;margin-top:2px} .foot-desc{font-size:13px;line-height:1.7;margin-bottom:1.5rem} .foot-email{ display:inline-flex;align-items:center;gap:8px; font-size:13px;color:rgba(255,255,255,0.55); margin-bottom:1.25rem; transition:color 140ms ease; } .foot-email:hover{color:#fff} .foot-socials{display:flex;gap:8px;flex-wrap:wrap} .social-btn{ width:36px;height:36px;border-radius:10px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.09); display:flex;align-items:center;justify-content:center; transition:all 140ms ease;text-decoration:none; } .social-btn:hover{ background:rgba(37,99,212,0.38); border-color:rgba(37,99,212,0.55); transform:translateY(-2px); } .foot-col-title{ font-family:'Playfair Display',serif; font-size:14px;font-weight:700; color:rgba(255,255,255,0.85);margin-bottom:1.1rem; } .foot-links{list-style:none;display:flex;flex-direction:column;gap:10px} .foot-links a{ font-size:13px;color:rgba(255,255,255,0.40); transition:color 140ms ease; } .foot-links a:hover{color:rgba(255,255,255,0.88)} .foot-bottom{ border-top:1px solid rgba(255,255,255,0.07); padding:1.25rem 2.5rem; max-width:var(--max-w);margin:0 auto; display:flex;justify-content:space-between;align-items:center; flex-wrap:wrap;gap:10px;font-size:12px; } /* ── TOAST ──────────────────────────────────────────────────────── */ #toast{ position:fixed;bottom:2rem;right:1.5rem;z-index:9999; display:flex;align-items:center;gap:10px; background:var(--navy);color:#fff; padding:14px 18px;border-radius:18px; font-size:13px;font-weight:500;max-width:320px; box-shadow:0 8px 32px rgba(26,39,68,0.25); transform:translateY(110%) scale(0.94);opacity:0; transition:transform 350ms cubic-bezier(0.175,0.885,0.32,1.275),opacity 280ms ease; pointer-events:none; } #toast.show{transform:translateY(0) scale(1);opacity:1} #toast.er{background:var(--red,#dc2626)} .toast-icon{ width:22px;height:22px;border-radius:50%; background:#16a34a;display:flex; align-items:center;justify-content:center; font-size:11px;flex-shrink:0; } /* ── MODALS ─────────────────────────────────────────────────────── */ .modal-bg{ display:none;position:fixed;inset:0;z-index:2000; background:rgba(10,18,38,0.65); backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px); align-items:center;justify-content:center;padding:1rem; } .modal-bg.open{display:flex} .modal-box{ background:#fff;border-radius:28px;width:100%; max-width:460px;max-height:92dvh;overflow-y:auto; box-shadow:0 24px 80px rgba(37,99,212,0.18); animation:scale-in 350ms cubic-bezier(0.175,0.885,0.32,1.275); } @keyframes scale-in{from{opacity:0;transform:scale(0.93)}to{opacity:1;transform:scale(1)}} .modal-head{ display:flex;align-items:center;justify-content:space-between; padding:1.4rem 1.75rem;border-bottom:1px solid var(--bdr); position:sticky;top:0;background:#fff;z-index:1; border-radius:28px 28px 0 0; } .modal-logo-row{display:flex;align-items:center;gap:10px} .modal-logo-row img{width:30px;height:30px;object-fit:contain;border-radius:8px} .modal-title{ font-family:'Playfair Display',serif; font-size:19px;font-weight:700;color:var(--navy); } .modal-close{ width:34px;height:34px;border-radius:50%; background:var(--off);border:1px solid var(--bdr); display:flex;align-items:center;justify-content:center; cursor:pointer;color:var(--muted);font-size:17px; transition:all 140ms ease;flex-shrink:0; } .modal-close:hover{background:var(--off-2);color:var(--navy)} .modal-body{padding:1.75rem} .form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:14px} .form-label{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:0.03em;text-transform:uppercase} .form-input{ width:100%;background:var(--off);border:1.5px solid var(--bdr); border-radius:12px;padding:11px 14px; font-family:'DM Sans',sans-serif;font-size:15px; color:var(--navy);outline:none;min-height:46px; transition:border-color 140ms,box-shadow 140ms,background 140ms; } .form-input::placeholder{color:#9aa3bc} .form-input:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(37,99,212,0.10)} .form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px} .form-err{ display:none;background:rgba(220,38,38,0.07); border:1px solid rgba(220,38,38,0.20); border-radius:10px;padding:10px 14px; font-size:13px;color:#dc2626;margin-bottom:12px; } .form-err.show{display:block} .form-switch{text-align:center;margin-top:12px;font-size:13px;color:var(--muted)} .form-switch a{color:var(--blue);cursor:pointer;font-weight:500} /* Role toggle */ .role-toggle{display:flex;background:var(--off);border-radius:12px;padding:4px;gap:4px;margin-bottom:14px} .role-btn{ flex:1;padding:9px;border-radius:10px;border:none; background:transparent;font-family:'DM Sans',sans-serif; font-size:13px;font-weight:500;color:var(--muted);cursor:pointer; transition:all 140ms ease;min-height:40px; } .role-btn.on{background:#fff;color:var(--navy);font-weight:600;box-shadow:var(--sh-1)} /* ── RESPONSIVE ─────────────────────────────────────────────────── */ @media(max-width:960px){ .hero{grid-template-columns:1fr;gap:2.5rem;text-align:center;padding-top:calc(var(--nav-h)+60px)} .hero-right{order:-1} .hero-logo-img{width:130px;height:130px} .hero-logo-wrap{width:150px;height:150px} .hero h1{font-size:clamp(2.25rem,8vw,3rem)} .hero-desc{max-width:100%;margin-inline:auto} .hero-ctas{justify-content:center} .hero-eyebrow{margin:0 auto} .steps-grid{grid-template-columns:1fr 1fr} .foot-grid{grid-template-columns:1fr 1fr;gap:2.5rem} } @media(max-width:640px){ .hero{padding-inline:1.25rem;gap:2rem;padding-top:calc(var(--nav-h)+48px)} .hero-ctas{flex-direction:column;align-items:stretch} .hero-ctas button{width:100%} .hero h1{font-size:clamp(2rem,9vw,2.75rem)} .steps-grid{grid-template-columns:1fr} .how-section,.services-section,.ai-section{padding:60px 1.25rem} .stats-bar{padding:36px 1.25rem} .svc-grid{grid-template-columns:1fr} .foot-grid{grid-template-columns:1fr;gap:2rem;padding:3rem 1.5rem 2rem} .foot-bottom{flex-direction:column;text-align:center;padding:1rem 1.5rem} .nav-inner{padding:0 1.25rem} .nav-links{display:none} .nav-ham{display:flex} .nav-drawer{display:flex} .form-row{grid-template-columns:1fr} .ai-card{padding:28px 22px} .modal-box{border-radius:24px 24px 0 0;max-width:100%} .modal-bg{align-items:flex-end;padding:0} #toast{left:1rem;right:1rem;max-width:none;bottom:1.25rem} } @media(max-width:480px){ .search-wrap select{display:none} .cat-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:4px} .cat-row::-webkit-scrollbar{display:none} .cat-pill{flex-shrink:0;white-space:nowrap} .stat-num{font-size:2rem} } @media(min-width:641px)and(max-width:960px){ .nav-links{display:flex} .nav-ham{display:none} } /* Touch improvements */ *{-webkit-tap-highlight-color:transparent;touch-action:manipulation} input,textarea,select,button{font-size:16px !important} body{overscroll-behavior-y:contain} .btn-primary:active,.btn-secondary:active,.svc-card:active{transform:scale(0.97)}
The Human Services Marketplace

Book People.
Not Places.

Connect directly with real, verified people offering real skills — from coaching and tutoring to fitness and local expertise.

⚡ Limited early access — first 100 users only
✨ Already used by 50+ early users
OnPurpose
OnPurpose
Connection, not dating
"Book People, Not Places"
✓ Verified providers
🔒 Secure payments
⭐ Reviewed sessions
Verified Providers
Services Listed
Bookings Made
100%
Real People
How it works

Three steps to your session

From discovery to completion in minutes. No middlemen. No guesswork.

1
Browse & discover

Search verified providers by category, location, availability, and price. Read real reviews from real people.

2
Book & pay securely

Select your time slot and pay safely through Stripe. Card or Cash App Pay accepted. Your money is protected.

3
Connect & review

Meet your provider, get what you came for, and leave an honest review. Every session builds trust on both sides.

Available now

Find your person

Browse services from verified providers in your city.

All
💼 Career
🗺️ Local
🎨 Cultural
📈 Marketing
💪 Fitness
📚 Tutoring
🌟 Life
Available now
View all →
💡

AI Service Idea Generator

Tell us your skills and interests. We'll create personalized service ideas you can list on OnPurpose today.