AutoDeal Pro — Car Deal Negotiation Experts :root { –black: #0a0a0a; –carbon: #111318; –steel: #1c2130; –chrome: #c8cdd8; –silver: #e8eaed; –white: #f5f6f8; –red: #c0392b; –red-hot: #e84040; –gold: #b8962e; –gold-light: #d4aa44; –text-muted: #7a8294; –radius: 3px; –nav-h: 72px; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: ‘DM Sans’, sans-serif; background: var(–black); color: var(–silver); overflow-x: hidden; } /* ── NAV ─────────────────────────────────────── */ nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; height: var(–nav-h); display: flex; align-items: center; justify-content: space-between; padding: 0 48px; background: rgba(10,10,10,0.92); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(200,205,216,0.08); transition: background 0.3s; } .logo { display: flex; align-items: center; gap: 12px; text-decoration: none; } .logo-mark { width: 38px; height: 38px; background: var(–red); clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); display: flex; align-items: center; justify-content: center; font-family: ‘Bebas Neue’, sans-serif; font-size: 18px; color: #fff; letter-spacing: 0.5px; } .logo-text { font-family: ‘Bebas Neue’, sans-serif; font-size: 22px; letter-spacing: 2px; color: var(–white); } .logo-text span { color: var(–red); } .nav-links { display: flex; gap: 36px; list-style: none; } .nav-links a { font-size: 13px; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: var(–chrome); text-decoration: none; transition: color 0.2s; } .nav-links a:hover { color: var(–white); } .nav-cta { background: var(–red); color: #fff; padding: 10px 24px; border-radius: var(–radius); font-size: 13px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; transition: background 0.2s, transform 0.15s; } .nav-cta:hover { background: var(–red-hot); transform: translateY(-1px); } /* ── HERO ────────────────────────────────────── */ .hero { min-height: 100vh; display: flex; align-items: center; position: relative; overflow: hidden; padding: calc(var(–nav-h) + 40px) 48px 80px; } .hero-bg { position: absolute; inset: 0; z-index: 0; background: radial-gradient(ellipse 80% 60% at 70% 40%, rgba(192,57,43,0.12) 0%, transparent 60%), radial-gradient(ellipse 60% 80% at 20% 80%, rgba(184,150,46,0.07) 0%, transparent 50%), linear-gradient(160deg, #0a0a0a 0%, #111318 50%, #0d1018 100%); } .hero-grid { position: absolute; inset: 0; z-index: 0; background-image: linear-gradient(rgba(200,205,216,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(200,205,216,0.03) 1px, transparent 1px); background-size: 60px 60px; mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 30%, transparent 100%); } .hero-content { position: relative; z-index: 1; max-width: 700px; } .hero-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(–gold-light); font-weight: 500; margin-bottom: 28px; } .hero-eyebrow::before { content: ”; display: block; width: 32px; height: 1px; background: var(–gold-light); } .hero h1 { font-family: ‘Bebas Neue’, sans-serif; font-size: clamp(64px, 9vw, 120px); line-height: 0.92; letter-spacing: 2px; color: var(–white); margin-bottom: 32px; } .hero h1 em { font-style: normal; color: var(–red); display: block; } .hero-sub { font-size: 18px; font-weight: 300; line-height: 1.65; color: var(–chrome); max-width: 520px; margin-bottom: 48px; } .hero-actions { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; } .btn-primary { background: var(–red); color: #fff; padding: 16px 36px; border-radius: var(–radius); font-size: 14px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; transition: background 0.2s, transform 0.15s; display: inline-block; } .btn-primary:hover { background: var(–red-hot); transform: translateY(-2px); } .btn-ghost { border: 1px solid rgba(200,205,216,0.25); color: var(–chrome); padding: 15px 32px; border-radius: var(–radius); font-size: 14px; font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; transition: border-color 0.2s, color 0.2s; display: inline-block; } .btn-ghost:hover { border-color: var(–chrome); color: var(–white); } .hero-stats { position: absolute; right: 48px; bottom: 80px; z-index: 1; display: flex; flex-direction: column; gap: 32px; text-align: right; } .hero-stat-num { font-family: ‘Bebas Neue’, sans-serif; font-size: 52px; letter-spacing: 2px; line-height: 1; color: var(–white); } .hero-stat-num span { color: var(–red); } .hero-stat-label { font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: var(–text-muted); margin-top: 4px; } .scroll-indicator { position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%); z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; opacity: 0.4; animation: bounce 2s ease-in-out infinite; } .scroll-indicator span { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(–chrome); } .scroll-line { width: 1px; height: 48px; background: linear-gradient(to bottom, var(–chrome), transparent); } @keyframes bounce { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(8px); } } /* ── TRUST BAR ───────────────────────────────── */ .trust-bar { border-top: 1px solid rgba(200,205,216,0.08); border-bottom: 1px solid rgba(200,205,216,0.08); background: var(–carbon); padding: 28px 48px; display: flex; align-items: center; justify-content: center; gap: 60px; flex-wrap: wrap; } .trust-item { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(–text-muted); letter-spacing: 0.04em; } .trust-icon { font-size: 18px; } .trust-item strong { color: var(–chrome); font-weight: 500; } /* ── SECTION WRAPPER ─────────────────────────── */ section { padding: 100px 48px; } .section-inner { max-width: 1200px; margin: 0 auto; } .section-tag { font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: var(–red); font-weight: 500; margin-bottom: 16px; display: flex; align-items: center; gap: 10px; } .section-tag::after { content: ”; display: block; height: 1px; width: 40px; background: var(–red); } .section-title { font-family: ‘Bebas Neue’, sans-serif; font-size: clamp(40px, 5vw, 64px); letter-spacing: 2px; line-height: 1; color: var(–white); margin-bottom: 20px; } .section-sub { font-size: 16px; font-weight: 300; line-height: 1.7; color: var(–chrome); max-width: 560px; } /* ── HOW IT WORKS ────────────────────────────── */ .how-section { background: var(–carbon); } .steps-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2px; margin-top: 64px; } .step-card { background: var(–steel); padding: 40px 32px; position: relative; transition: background 0.2s; } .step-card:hover { background: #1e2638; } .step-num { font-family: ‘Bebas Neue’, sans-serif; font-size: 72px; letter-spacing: 2px; line-height: 1; color: rgba(192,57,43,0.15); position: absolute; top: 24px; right: 24px; } .step-icon { font-size: 28px; margin-bottom: 20px; } .step-title { font-family: ‘DM Serif Display’, serif; font-size: 22px; color: var(–white); margin-bottom: 12px; line-height: 1.2; } .step-desc { font-size: 14px; font-weight: 300; line-height: 1.7; color: var(–chrome); } /* ── SERVICES / PRICING ──────────────────────── */ .pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2px; margin-top: 64px; } .pricing-card { background: var(–carbon); border: 1px solid rgba(200,205,216,0.07); padding: 48px 36px; position: relative; transition: border-color 0.3s, transform 0.2s; display: flex; flex-direction: column; } .pricing-card:hover { border-color: rgba(192,57,43,0.3); transform: translateY(-4px); } .pricing-card.featured { background: var(–steel); border-color: var(–red); transform: scale(1.02); } .pricing-card.featured:hover { transform: scale(1.02) translateY(-4px); } .featured-badge { position: absolute; top: -1px; left: 50%; transform: translateX(-50%); background: var(–red); color: #fff; font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; padding: 5px 16px; } .pricing-tier { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(–text-muted); margin-bottom: 16px; } .pricing-name { font-family: ‘Bebas Neue’, sans-serif; font-size: 32px; letter-spacing: 2px; color: var(–white); margin-bottom: 8px; } .pricing-price { display: flex; align-items: baseline; gap: 4px; margin-bottom: 8px; } .price-dollar { font-family: ‘DM Serif Display’, serif; font-size: 48px; color: var(–white); } .price-note { font-size: 13px; color: var(–text-muted); } .pricing-desc { font-size: 14px; font-weight: 300; line-height: 1.6; color: var(–chrome); margin-bottom: 32px; padding-bottom: 32px; border-bottom: 1px solid rgba(200,205,216,0.08); } .pricing-features { list-style: none; flex: 1; display: flex; flex-direction: column; gap: 14px; margin-bottom: 36px; } .pricing-features li { font-size: 14px; color: var(–chrome); display: flex; align-items: flex-start; gap: 10px; line-height: 1.4; } .pricing-features li::before { content: ‘✓’; color: var(–gold-light); flex-shrink: 0; font-weight: 500; margin-top: 1px; } .pricing-cta { display: block; text-align: center; padding: 14px; border-radius: var(–radius); font-size: 13px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; transition: all 0.2s; } .pricing-cta.outline { border: 1px solid rgba(200,205,216,0.2); color: var(–chrome); } .pricing-cta.outline:hover { border-color: var(–chrome); color: var(–white); } .pricing-cta.solid { background: var(–red); color: #fff; } .pricing-cta.solid:hover { background: var(–red-hot); } /* ── WHY US ──────────────────────────────────── */ .why-section { background: var(–black); } .why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; margin-top: 64px; } .why-visual { position: relative; } .savings-card { background: var(–steel); border: 1px solid rgba(200,205,216,0.08); padding: 36px; border-radius: var(–radius); } .savings-header { font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: var(–text-muted); margin-bottom: 24px; } .savings-row { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(200,205,216,0.06); } .savings-row:last-child { border-bottom: none; } .savings-label { font-size: 14px; color: var(–chrome); } .savings-val { font-family: ‘Bebas Neue’, sans-serif; font-size: 22px; letter-spacing: 1px; } .savings-val.green { color: #4caf72; } .savings-val.red { color: var(–red); } .savings-val.gold { color: var(–gold-light); } .savings-total { margin-top: 24px; padding: 20px; background: rgba(192,57,43,0.1); border: 1px solid rgba(192,57,43,0.2); border-radius: var(–radius); display: flex; justify-content: space-between; align-items: center; } .savings-total-label { font-size: 13px; color: var(–chrome); letter-spacing: 0.05em; } .savings-total-val { font-family: ‘Bebas Neue’, sans-serif; font-size: 36px; letter-spacing: 2px; color: var(–gold-light); } .floating-tag { position: absolute; top: -24px; right: -20px; background: var(–red); color: #fff; padding: 10px 20px; font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 500; border-radius: var(–radius); } .why-points { display: flex; flex-direction: column; gap: 36px; } .why-point { display: flex; gap: 20px; } .why-point-num { font-family: ‘Bebas Neue’, sans-serif; font-size: 32px; letter-spacing: 1px; color: var(–red); line-height: 1; flex-shrink: 0; width: 32px; } .why-point-title { font-family: ‘DM Serif Display’, serif; font-size: 20px; color: var(–white); margin-bottom: 8px; } .why-point-desc { font-size: 14px; font-weight: 300; line-height: 1.7; color: var(–chrome); } /* ── TESTIMONIALS ────────────────────────────── */ .testimonials-section { background: var(–carbon); } .testi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2px; margin-top: 64px; } .testi-card { background: var(–steel); padding: 40px 36px; } .stars { display: flex; gap: 3px; margin-bottom: 20px; } .star { color: var(–gold-light); font-size: 14px; } .testi-quote { font-family: ‘DM Serif Display’, serif; font-size: 18px; line-height: 1.5; color: var(–white); margin-bottom: 28px; font-style: italic; } .testi-meta { display: flex; align-items: center; gap: 14px; } .testi-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(–red); display: flex; align-items: center; justify-content: center; font-family: ‘Bebas Neue’, sans-serif; font-size: 16px; color: #fff; letter-spacing: 1px; flex-shrink: 0; } .testi-name { font-size: 14px; font-weight: 500; color: var(–white); } .testi-role { font-size: 12px; color: var(–text-muted); margin-top: 2px; } .testi-saved { margin-left: auto; text-align: right; font-family: ‘Bebas Neue’, sans-serif; font-size: 22px; letter-spacing: 1px; color: var(–gold-light); } .testi-saved-label { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(–text-muted); font-family: ‘DM Sans’, sans-serif; font-weight: 400; } /* ── FAQ ─────────────────────────────────────── */ .faq-section { background: var(–black); } .faq-list { max-width: 780px; margin-top: 64px; display: flex; flex-direction: column; gap: 2px; } .faq-item { background: var(–carbon); border: 1px solid rgba(200,205,216,0.06); overflow: hidden; } .faq-q { width: 100%; background: none; border: none; cursor: pointer; padding: 24px 28px; display: flex; justify-content: space-between; align-items: center; text-align: left; } .faq-q-text { font-family: ‘DM Serif Display’, serif; font-size: 18px; color: var(–white); line-height: 1.3; } .faq-chevron { color: var(–red); font-size: 20px; flex-shrink: 0; transition: transform 0.3s; margin-left: 20px; } .faq-item.open .faq-chevron { transform: rotate(45deg); } .faq-a { max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.35s; font-size: 15px; font-weight: 300; line-height: 1.7; color: var(–chrome); padding: 0 28px; } .faq-item.open .faq-a { max-height: 300px; padding: 0 28px 24px; } /* ── CTA ─────────────────────────────────────── */ .cta-section { background: var(–carbon); text-align: center; position: relative; overflow: hidden; } .cta-bg { position: absolute; inset: 0; z-index: 0; background: radial-gradient(ellipse 70% 100% at 50% 50%, rgba(192,57,43,0.15) 0%, transparent 65%); } .cta-section .section-inner { position: relative; z-index: 1; } .cta-section .section-title { font-size: clamp(48px, 7vw, 96px); } .cta-section .section-sub { max-width: 640px; margin: 0 auto 48px; font-size: 18px; } .cta-form { display: flex; gap: 12px; max-width: 520px; margin: 0 auto; flex-wrap: wrap; justify-content: center; } .cta-input { flex: 1; min-width: 220px; background: rgba(255,255,255,0.06); border: 1px solid rgba(200,205,216,0.15); border-radius: var(–radius); padding: 14px 20px; font-size: 15px; color: var(–white); font-family: ‘DM Sans’, sans-serif; outline: none; transition: border-color 0.2s; } .cta-input::placeholder { color: var(–text-muted); } .cta-input:focus { border-color: rgba(192,57,43,0.5); } .cta-submit { background: var(–red); color: #fff; border: none; cursor: pointer; padding: 14px 32px; border-radius: var(–radius); font-size: 14px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; font-family: ‘DM Sans’, sans-serif; transition: background 0.2s; } .cta-submit:hover { background: var(–red-hot); } .cta-fine { font-size: 12px; color: var(–text-muted); margin-top: 16px; letter-spacing: 0.04em; } /* ── FOOTER ──────────────────────────────────── */ footer { background: var(–black); border-top: 1px solid rgba(200,205,216,0.06); padding: 64px 48px 40px; } .footer-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 56px; } .footer-brand { } .footer-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; margin-bottom: 20px; } .footer-brand-desc { font-size: 14px; font-weight: 300; line-height: 1.7; color: var(–text-muted); max-width: 280px; } .footer-col-title { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(–chrome); font-weight: 500; margin-bottom: 20px; } .footer-links { list-style: none; display: flex; flex-direction: column; gap: 12px; } .footer-links a { font-size: 14px; color: var(–text-muted); text-decoration: none; transition: color 0.2s; } .footer-links a:hover { color: var(–chrome); } .footer-bottom { max-width: 1200px; margin: 0 auto; padding-top: 28px; border-top: 1px solid rgba(200,205,216,0.06); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; } .footer-copy { font-size: 13px; color: var(–text-muted); } .footer-legal { display: flex; gap: 24px; } .footer-legal a { font-size: 13px; color: var(–text-muted); text-decoration: none; transition: color 0.2s; } .footer-legal a:hover { color: var(–chrome); } /* ── MOBILE ──────────────────────────────────── */ @media (max-width: 900px) { nav { padding: 0 24px; } .nav-links { display: none; } section { padding: 72px 24px; } .hero { padding: calc(var(–nav-h) + 20px) 24px 120px; } .hero-stats { display: none; } .why-grid { grid-template-columns: 1fr; } .footer-grid { grid-template-columns: 1fr 1fr; } .trust-bar { padding: 24px; gap: 32px; } } /* ── ANIMATIONS ──────────────────────────────── */ .fade-up { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease, transform 0.6s ease; } .fade-up.visible { opacity: 1; transform: translateY(0); }
Automotive Consulting Experts

Stop GettingRipped OffAt The Dealership

We negotiate your next car deal on your behalf — leveraging insider knowledge, dealer relationships, and proven tactics to save you thousands.

$4,200
Avg. customer savings
98%
Client satisfaction
1,400+
Deals negotiated
Scroll
🔒No Deal, No Fee — risk-free guarantee
24–48 hr turnaround
🏆15 years industry experience
📍Nationwide dealer network
4.9 / 5 from 600+ reviews

How It Works

Four simple steps from telling us what you want to driving off the lot — without ever sitting across a sales desk.

01
📋

Tell Us What You Want

Fill out our quick intake form — make, model, trim, color preferences, trade-in details, and your target budget. The more context, the sharper our strategy.

02
🔍

We Research the Market

We pull dealer invoice prices, factory incentives, regional inventory data, and comparable recent transactions. We know what dealers actually paid before we touch the phone.

03
📞

We Negotiate for You

Our experts contact multiple dealers simultaneously, creating competitive pressure. We handle every back-and-forth, counter, and upsell attempt so you never have to.

04
🚗

You Just Show Up & Sign

We deliver a final deal sheet with all terms locked in. You review, approve, and walk into the dealership knowing exactly what to sign — nothing more, nothing less.

Choose Your Package

Flat fees, no commissions, no surprises. Our fee is a fraction of what we save you.

Starter
Deal Scout
$199 flat fee

Perfect for buyers who want expert guidance and a negotiation script to use themselves.

  • Market analysis report
  • Dealer invoice pricing
  • Custom negotiation script
  • Email support (3 days)
  • Trade-in value assessment
Get Started
Premium
Fleet & VIP
$799 per deal

For high-value purchases, exotic vehicles, or clients who want dedicated white-glove service.

  • Everything in Deal Closer
  • Dedicated senior negotiator
  • Luxury & exotic specialist access
  • Multi-vehicle & fleet pricing
  • Transport & delivery coordination
  • Post-purchase warranty review
Contact Us

🛡️ No Deal, No Fee guarantee — if we can’t beat your best quote, you pay nothing.

Why Dealers Fear Our Clients

Real Deal Example
2024 Toyota Camry XSE — Typical Deal Breakdown
Sticker price (MSRP) $38,450
Dealer invoice price $35,100
What average buyer pays $37,200
Our negotiated price $34,600
Factory incentives captured — $750
F&I add-ons removed — $1,400
Client total savings vs avg buyer $4,750
01
We Know What Dealers Won’t Tell You

Dealer invoice prices, holdback amounts, factory-to-dealer incentives, regional advertising fees — we have access to the real numbers that dealers hide behind “we’re already losing money.”

02
Emotion-Free Negotiation

Dealers are trained to make you fall in love before you negotiate. We eliminate that leverage entirely. We never fall in love with a car — we just close deals.

03
Competitive Bidding Between Dealers

We contact 5–8 dealers simultaneously and create an auction for your business. Most buyers visit one or two dealerships. We make 20 dealers compete for your sale.

04
Finance & Warranty Expertise

The F&I office is where dealers make most of their profit. We review every line item — interest rate, GAP insurance, extended warranty, paint protection — and kill what you don’t need.

Real People, Real Savings

★★★★★

“I was about to sign at $2,000 over MSRP because ‘that’s just the market right now.’ AutoDeal Pro got me $3,800 under what the dealer quoted. I was speechless.”

MR
Marcus R.
2024 F-150 Lariat
$5,800
saved
★★★★★

“As a woman buying alone, I always felt targeted at dealerships. Having a professional in my corner completely changed the dynamic. Best $499 I ever spent.”

SL
Sarah L.
2023 Honda CR-V EX-L
$3,200
saved
★★★★★

“They found a dealer 40 miles away offering the exact car for $4,100 less than my local guy. Then they negotiated it down another $800. Absolutely insane value.”

DK
David K.
2024 Kia Telluride SX
$4,900
saved

Questions Answered

If we’re unable to secure a deal that beats your best existing quote by at least our service fee, you owe us nothing. We’ll refund your payment in full. We’re confident enough in our results to put our money where our mouth is — in 5 years, we’ve triggered this guarantee fewer than 12 times.
No. We work with all franchised new-car dealerships across the US for any make or model — domestic, import, or luxury. We also assist with certified pre-owned vehicles at franchise dealers. We do not currently cover private-party or auction purchases.
Most clients receive a final negotiated deal sheet within 24–48 business hours of submitting their intake form. Complex situations — rare trims, specific color/option combinations, or low-inventory vehicles — may take 3–5 days. We’ll give you a realistic timeline upfront.
Absolutely — and this is actually where we shine. Send us your quote sheet and we’ll tell you immediately if it’s solid or if we think we can do better. In most cases, we can beat “good” deals by an additional $800–$2,500 through factory incentive stacking and competitive counter-offers.
We handle both. Lease negotiation is actually more complex — money factor, residual value, acquisition fees, and cap cost reductions all matter. We’re fluent in lease math and know how to get a fair deal whether you’re buying or leasing.
We get all terms confirmed in writing before you step foot in the dealership. In the rare event a dealer attempts to change terms at signing, call us immediately — we’ll intervene directly or help you walk away and close a deal elsewhere, at no additional charge.

Your Best Deal
Starts Here

Tell us what you’re looking for and a negotiator will reach out within 2 hours.

No spam. No obligation. Just better deals.

$4,200
Average savings per client
1,400+
Deals negotiated
4.9★
Average review score
// FAQ accordion document.querySelectorAll(‘.faq-q’).forEach(btn => { btn.addEventListener(‘click’, () => { const item = btn.closest(‘.faq-item’); const isOpen = item.classList.contains(‘open’); document.querySelectorAll(‘.faq-item.open’).forEach(i => { i.classList.remove(‘open’); i.querySelector(‘.faq-q’).setAttribute(‘aria-expanded’, ‘false’); }); if (!isOpen) { item.classList.add(‘open’); btn.setAttribute(‘aria-expanded’, ‘true’); } }); }); // Intersection observer for fade-up const obs = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add(‘visible’); obs.unobserve(e.target); } }); }, { threshold: 0.1, rootMargin: ‘0px 0px -40px 0px’ }); document.querySelectorAll(‘.fade-up’).forEach(el => obs.observe(el)); // CTA form function handleSubmit(e) { e.preventDefault(); const input = e.target.querySelector(‘input’); const btn = e.target.querySelector(‘button’); btn.textContent = ‘✓ We\’ll be in touch!’; btn.style.background = ‘#2d7d46’; input.value = ”; input.placeholder = ‘Check your inbox!’; input.disabled = true; btn.disabled = true; } // Smooth highlight active nav on scroll const sections = document.querySelectorAll(‘section[id], div[id=”contact”]’); window.addEventListener(‘scroll’, () => { const scrollY = window.scrollY + 100; sections.forEach(s => { const top = s.offsetTop; const h = s.offsetHeight; const id = s.getAttribute(‘id’); const link = document.querySelector(`.nav-links a[href=”#${id}”]`); if (link) { if (scrollY >= top && scrollY < top + h) link.style.color = 'var(–white)'; else link.style.color = ''; } }); }, { passive: true });