How LLC Owners Save on Taxes in 2026

Content Creator Find more write-offs — search your profession or a specific deduction
Try:
Others Also Use These Strategies
Business Expenses IRC §162 / IRC §179

Camera Gear & Production Equipment Deduction

Photographers, videographers, and content creators can deduct the full cost of cameras, lenses, tripods, lighting equipment, microphones, audio recorders, drones, gimbals, memory cards, hard drives, and any other production equipment used in their business. Under Section 179, the full cost can be expensed in Year 1 instead of depreciated over 5 years.

Eligibility Requirements
  • Equipment used for business photography, video, or content creation
  • Self-employed photographer, videographer, or content creator
  • Business use percentage must be documented for mixed-use equipment
Example Savings Scenario

A photographer purchasing a $3,500 camera body and $1,200 in lenses expenses the full $4,700 under Section 179, saving $1,410–$1,880 in taxes.

MERNA Strategy Notes

For equipment used for both business and personal purposes, only the business-use percentage is deductible. A camera used 80% for client work is 80% deductible.

Common Mistake: Keep a usage log for equipment used for both business and personal purposes — the IRS may ask for documentation of the business-use percentage.
Business Expenses IRC §162

Internet & Broadband Deduction

Your home internet bill is deductible to the extent it is used for business. For most self-employed professionals who work from home, this is 50–100% of the monthly cost. A dedicated business internet line is 100% deductible.

Eligibility Requirements
  • Self-employed, freelancer, or business owner
  • Internet used for business purposes
  • Allocate business vs personal use if mixed
Example Savings Scenario

A self-employed consultant paying $80/month for internet and using it 80% for business deducts $768/year, saving $230–$307 in taxes.

MERNA Strategy Notes

If you have a home office, the internet deduction stacks on top of the home office deduction — they are separate line items. A dedicated business fiber line is 100% deductible with no allocation.

Common Mistake: Do not double-count internet costs if you are also claiming them as part of a home office deduction — allocate carefully.
Business IRC §162, §179

Vehicle & Mileage Deduction

Deduct business vehicle expenses using the standard mileage rate or actual expenses (depreciation, gas, insurance, repairs). Section 179 and 100% bonus depreciation allow full expensing of heavy SUVs and trucks in Year 1.

Eligibility Requirements
  • Vehicle used for business purposes
  • Mileage log maintained for standard rate method
  • Heavy SUV (6,000+ lbs GVWR) for Section 179 bonus
Example Savings Scenario

Driving 20,000 business miles at 72.5¢/mile = $14,500 deduction. A $80,000 SUV over 6,000 lbs can be fully expensed under 100% bonus depreciation, saving $29,600 at 37%.

MERNA Strategy Notes

Must choose standard mileage or actual expenses in the first year — you cannot switch back. Heavy SUVs and trucks are the most powerful vehicle deduction available.

Common Mistake: Personal use of the vehicle must be tracked and excluded from the deduction.
UNK Client Win Self-Employed / Real Estate Agent

How a Real Estate Agent Deducted $16,800 in Vehicle Expenses Without Keeping Gas Receipts

A UNK client drove 28,000 business miles per year showing properties, attending closings, and meeting with clients. She had been deducting nothing because she thought she needed to track every gas receipt. Uncle Kam introduced the standard mileage rate method: 28,000 miles × $0.725/mile (2026 rate) = $20,300 in deductions. At her 24% rate, that was $4,872 in tax savings — from a mileage log she started keeping on her phone.

Result: $4,502 in annual tax savings from a simple mileage log. The client also deducted tolls and parking separately, adding another $840 in deductions.

Drive for business? Every mile you don't track is money you're giving to the IRS. Book a call to set up a proper mileage tracking system.

Be the Next Win — Book a Call
Common Questions About Vehicle & Mileage Deduction
Business IRC §280A

Home Office Deduction

Deduct a portion of your home expenses (mortgage interest, rent, utilities, insurance, depreciation) based on the percentage of your home used exclusively and regularly for business.

Eligibility Requirements
  • Self-employed, freelancer, or business owner
  • Space used exclusively and regularly for business
  • Principal place of business or where clients are met
Example Savings Scenario

A 200 sq ft office in a 2,000 sq ft home = 10% allocation. $30,000 in home expenses × 10% = $3,000 deduction, saving $1,110 at a 37% rate.

MERNA Strategy Notes

Actual expense method typically beats the simplified $5/sq ft method. S-Corp owners should use an accountable plan reimbursement instead of the home office deduction.

Common Mistake: W-2 employees cannot claim home office deductions under current tax law.
UNK Client Win Remote Worker / Freelancer

How a Remote Marketing Director Turned Her Spare Bedroom Into a $4,800 Annual Deduction

A UNK client worked fully remote as a freelance marketing director from a dedicated home office in her 1,800 sq ft Atlanta home. Her office was 180 sq ft — 10% of the home. Uncle Kam helped her calculate the actual expense method: $18,000 in rent × 10% = $1,800 in rent deduction, plus 10% of utilities ($480), internet ($180), and renter's insurance ($60). Total deduction: $2,520/year. After switching to a larger office space (240 sq ft = 13.3%), the deduction grew to $3,360. Combined with the simplified method comparison, the actual expense method won by $840/year.

Result: $3,360/year in home office deductions — $840 more per year than the simplified method. The client also deducted her desk, monitor, and office chair as equipment.

Work from home? You may be leaving thousands in home office deductions on the table. Book a call to calculate your exact deduction.

Be the Next Win — Book a Call
Common Questions About Home Office Deduction
Business Expenses IRC §162 / IRC §179

Computer, Laptop & Hardware Deduction

Computers, laptops, tablets, monitors, keyboards, mice, external hard drives, and other hardware used in your business are fully deductible. Under Section 179, you can expense the full cost in Year 1 instead of depreciating over 5 years. For mixed business/personal use, only the business-use percentage is deductible.

Eligibility Requirements
  • Computer or hardware used for business purposes
  • Self-employed, freelancer, or business owner
  • Business-use percentage documented for mixed-use devices
Example Savings Scenario

A freelance software engineer purchasing a $2,500 laptop used 95% for work expenses $2,375 under Section 179, saving $713–$950 in taxes.

MERNA Strategy Notes

A second monitor, external keyboard, and docking station are all deductible as business hardware. Track purchases throughout the year — hardware costs add up.

Common Mistake: W-2 employees cannot deduct unreimbursed computer costs — ask your employer about an accountable plan reimbursement instead.
Business IRC §199A Uncle Kam Clients Only 2026 Law Update

Qualified Business Income (QBI) Deduction

Pass-through business owners (sole props, partnerships, S-Corps, LLCs) can deduct up to 23% of qualified business income starting in 2026, permanently under the OBBBA. The deduction reduces effective tax rates significantly.

Eligibility Requirements
  • Income from a pass-through entity or sole proprietorship
  • Taxable income below income thresholds for full deduction (consult advisor for 2026 inflation-adjusted limits)
  • Specified service trades may be phased out above thresholds
  • New minimum deduction of $400 for taxpayers with at least $1,000 of active QBI
Example Savings Scenario

A consultant earning $200,000 in QBI deducts $46,000 (23%), saving $17,020 at a 37% rate — $2,220 more than under the old 20% rule.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §162 Uncle Kam Clients Only

Business Travel Deduction

Deduct ordinary and necessary travel expenses when traveling away from home for business, including transportation, lodging, and 50% of meals.

Eligibility Requirements
  • Travel away from your tax home for business
  • Travel requires sleep or rest (overnight trip)
  • Primary purpose of the trip is business
Example Savings Scenario

A business owner spending $15,000/year on travel (flights, hotels, meals) deducts $13,500 (meals at 50%), saving $4,995 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Retirement IRC §408(k) Uncle Kam Clients Only

SEP-IRA Contribution

Self-employed individuals and small business owners can contribute up to 25% of net self-employment income (maximum $72,000 in 2026) to a SEP-IRA with minimal administrative requirements.

Eligibility Requirements
  • Self-employed or small business owner
  • Net self-employment income
  • Can be established and funded up to tax filing deadline including extensions
Example Savings Scenario

A freelancer earning $150,000 contributes $27,500 (25% × $110,000 net SE income) to a SEP-IRA, saving $10,175 in taxes at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Self-Employed IRC §164(f) Uncle Kam Clients Only

Self-Employment Tax Deduction

Self-employed individuals can deduct 50% of the self-employment tax they pay (the employer-equivalent portion) as an above-the-line deduction, reducing adjusted gross income.

Eligibility Requirements
  • Net self-employment income
  • Filed Schedule SE
  • Available to all self-employed individuals regardless of itemizing
Example Savings Scenario

A freelancer with $100,000 in net SE income pays $14,130 in SE tax. The 50% deduction ($7,065) saves $2,614 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Self-Employed IRC §162(l) Uncle Kam Clients Only

Self-Employed Health Insurance Deduction

Self-employed individuals can deduct 100% of health insurance premiums paid for themselves, their spouse, and dependents as an above-the-line deduction.

Eligibility Requirements
  • Self-employed with net profit
  • Not eligible for employer-sponsored health insurance
  • Includes medical, dental, and long-term care premiums
Example Savings Scenario

Paying $18,000/year in family health insurance premiums deducts the full amount, saving $6,660 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §199A Uncle Kam Clients Only

QBI Deduction — Section 199A (20% Pass-Through Deduction)

Pass-through business owners (sole props, S-Corps, LLCs, partnerships) can deduct up to 20% of qualified business income from taxable income. This is one of the largest tax breaks available to small business owners.

Eligibility Requirements
  • Own a pass-through business
  • Taxable income under $197,300 (single) or $394,600 (married) for full deduction
  • Specified service businesses (law, consulting, finance) phase out above these thresholds
Example Savings Scenario

A business owner with $200,000 in QBI at a 24% rate: 20% deduction = $40,000 reduction in taxable income = $9,600 in tax savings.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business Expenses IRC §162 Uncle Kam Clients Only

Software & Subscription Deduction

Any software subscription or SaaS tool you pay for and use in your business is fully deductible in the year paid. This includes accounting software (QuickBooks, FreshBooks), design tools (Adobe Creative Cloud, Figma, Canva), communication tools (Zoom, Slack, Microsoft 365), project management tools (Asana, Monday.com), and any other business application.

Eligibility Requirements
  • Software used for business purposes
  • Self-employed, freelancer, or business owner
  • Annual or monthly subscription fees qualify
Example Savings Scenario

A freelance designer paying $600/year for Adobe Creative Cloud, $150 for Figma, and $200 for project management tools deducts $950/year, saving $285–$380.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business Expenses IRC §162 / IRC §280A Uncle Kam Clients Only

Studio Space & Creative Workspace Deduction

If you rent a separate studio space for your creative work, the full cost of rent, utilities, and equipment for that space is deductible. If you use a dedicated room in your home exclusively as a studio, it qualifies for the home office deduction. This applies to photography studios, podcast recording studios, video production spaces, and any other dedicated creative workspace.

Eligibility Requirements
  • Dedicated space used exclusively for business creative work
  • Rented studio: full cost deductible; home studio: home office deduction rules apply
  • Self-employed creative professional
Example Savings Scenario

A photographer renting a studio for $1,500/month deducts $18,000/year in rent, saving $5,400–$7,200 in taxes.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §179 Uncle Kam Clients Only

Section 179 Expensing

Immediately expense the full cost of qualifying business equipment, software, and certain vehicles in the year of purchase instead of depreciating over multiple years.

Eligibility Requirements
  • Business equipment, machinery, or software
  • Property placed in service during the tax year
  • Business income must be sufficient (cannot create a loss with §179)
Example Savings Scenario

Purchasing $500,000 in equipment. Full §179 deduction saves $185,000 in taxes at a 37% rate in Year 1 vs. spreading over 5–7 years.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §168(k) Uncle Kam Clients Only 2026 Law Update

Bonus Depreciation

Deduct 100% of the cost of qualifying new or used property in the first year it is placed in service. The OBBBA permanently restored 100% bonus depreciation for property with a recovery period of 20 years or less.

Eligibility Requirements
  • New or used qualifying property
  • Property with recovery period of 20 years or less
  • Placed in service after January 19, 2025
Example Savings Scenario

A $1M equipment purchase at 100% bonus depreciation generates a $1M Year 1 deduction, saving $370,000 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §274 Uncle Kam Clients Only

Business Meals Deduction

Deduct 50% of the cost of business meals where there is a genuine business discussion. The meal must not be lavish, and the business purpose must be documented.

Eligibility Requirements
  • Meal has a bona fide business purpose
  • Business is discussed before, during, or after the meal
  • Document: who, what business discussed, date, amount
Example Savings Scenario

Spending $20,000/year on business meals = $10,000 deduction, saving $3,700 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Retirement IRC §401(k) Uncle Kam Clients Only

Solo 401(k) Contribution

Self-employed individuals can contribute both as employee ($24,500 in 2026, or $31,000 if 50+) and employer (up to 25% of compensation), for a combined maximum of approximately $70,000.

Eligibility Requirements
  • Self-employed with no full-time employees (other than spouse)
  • Net self-employment income
  • Roth option available for after-tax contributions
Example Savings Scenario

A self-employed consultant earning $200,000 contributes ~$70,000 to a Solo 401(k), reducing taxable income to $130,000 and saving $25,900 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Self-Employed IRC §401, §408 Uncle Kam Clients Only

Retirement Plan Contributions (Self-Employed)

Self-employed individuals have access to powerful retirement plans — Solo 401(k), SEP-IRA, SIMPLE IRA — with contribution limits far exceeding W-2 employee options.

Eligibility Requirements
  • Net self-employment income
  • Plan established by December 31 (Solo 401k) or tax deadline (SEP-IRA)
  • No full-time employees for Solo 401(k)
Example Savings Scenario

Maximizing a Solo 401(k) at ~$70,000 in 2026 saves $25,900 at a 37% rate — the equivalent of a $25,900 tax refund.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Self-Employed IRC §162 Uncle Kam Clients Only

Education & Professional Development Deduction

Deduct education expenses that maintain or improve skills required in your current trade or business, including courses, books, subscriptions, and professional conferences.

Eligibility Requirements
  • Education maintains or improves skills in current trade
  • Not required to meet minimum educational requirements for a new profession
  • Self-employed, freelancer, or business owner
Example Savings Scenario

Spending $5,000 on courses, conferences, and books deducts the full amount, saving $1,850 at a 37% rate.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Travel IRC §162 Uncle Kam Clients Only

YouTuber Research, Travel & Content Topic Deduction

YouTubers can deduct travel expenses when the primary purpose of the trip is content creation — visiting locations for videos, attending industry events, or filming on location. A travel YouTuber spending $8,000 on a content trip (flights, hotels, activities) can deduct the full amount if the primary purpose is content creation. Keep a content calendar showing planned videos for each trip.

Eligibility Requirements
  • Travel must have a primary business purpose (creating YouTube content)
  • Must document the videos created at each location
  • Meals are 50% deductible; lodging and transportation are 100% deductible
  • Must have a monetized channel to establish business purpose
Example Savings Scenario

A travel YouTuber spending $20,000/year on flights, hotels, and experiences for video content deducts $20,000 (plus 50% of $5,000 in meals = $2,500), saving $8,325 at 37%.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business Expenses IRC §162 Uncle Kam Clients Only

Office Supplies & Materials Deduction

Any supplies you purchase and use in your business are fully deductible in the year purchased. This includes paper, pens, printer ink and toner, folders, binders, postage, envelopes, labels, staples, tape, and any other consumable materials used in your work.

Eligibility Requirements
  • Self-employed, freelancer, or business owner
  • Supplies used for business purposes
  • Consumed or used up within the tax year
Example Savings Scenario

A small business owner spending $1,200/year on office supplies saves $360–$480 in taxes depending on their bracket.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business Expenses IRC §162 Uncle Kam Clients Only

Coworking Space & Office Rent Deduction

If you rent a coworking space, shared office, or dedicated office for your business, the full cost is deductible. This includes WeWork, Regus, local coworking memberships, and any other office rental. Monthly membership fees, day passes, and dedicated desk or private office costs all qualify.

Eligibility Requirements
  • Coworking space or office used for business purposes
  • Self-employed, freelancer, or business owner
  • Monthly or annual fees paid for the space
Example Savings Scenario

A freelancer paying $400/month for a coworking membership deducts $4,800/year, saving $1,440–$1,920 in taxes.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Equipment IRC §179 Uncle Kam Clients Only

Photographer Camera Gear & Equipment Section 179 Deduction

Photographers can deduct all camera equipment under Section 179 in the year purchased: camera bodies, lenses, flashes, tripods, drones, and lighting equipment. A photographer purchasing a $5,000 camera body, $3,000 lens, and $2,000 lighting kit deducts the full $10,000 in year one. Equipment used for both personal and business purposes must be allocated by business-use percentage.

Eligibility Requirements
  • Must use camera equipment for photography that generates income
  • Must use equipment more than 50% for business purposes
  • Can deduct full cost in year of purchase under Section 179
  • Must report income on Schedule C
Example Savings Scenario

A photographer buying a $4,500 Sony A7 IV, $2,800 lens, $1,200 lighting kit, $600 tripod, and $400 in accessories deducts the full $9,500 in year one, saving $3,515 at 37%.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
Business IRC §162 Uncle Kam Clients Only

YouTuber AdSense Income Structure & S-Corp Strategy

YouTubers earning AdSense income are self-employed and can deduct all channel-related expenses: equipment, editing software (Adobe Premiere, Final Cut Pro), music licensing (Epidemic Sound), stock footage, thumbnails (Canva), and channel management tools. Structuring as an S-Corp above $50,000 in net income saves $5,000–$15,000 in self-employment taxes annually.

Eligibility Requirements
  • Must have monetized YouTube channel (AdSense, memberships, Super Chat)
  • Must report YouTube income as self-employment income on Schedule C
  • Must have an LLC or business entity for larger channels
  • Income includes AdSense, channel memberships, Super Chat, and merchandise
Example Savings Scenario

A YouTuber with $100,000 in AdSense income structured through an S-Corp saves $7,650 in SE tax by taking $50,000 as salary and $50,000 as distributions.

Unlock the Full Strategy Breakdown — Free

Enter your email for instant access to MERNA strategy notes, IRS red flag warnings, action steps, and implementation guide.

No spam · No obligation · Instant access
What Most Content Creators Don't Know

Your home studio qualifies as a home office — but only if used exclusively for content creation.

Equipment, software, and subscriptions are 100% deductible as business expenses.

Travel to film content is fully deductible — document the business purpose for every trip.

Who Uses This Strategy

This write-off is commonly used by the following taxpayer profiles. Click to see all strategies for your situation.

Common Questions for Content Creators

Get answers to the most frequently asked tax questions for your profession.

What tax deductions can a content creator claim?
Content creators can deduct camera equipment, lighting, microphones, editing software, studio space (home office), props, costumes, subscriptions, internet, phone, and travel for content. Most creators miss $10,000\u2013$30,000 in deductions.
Can a YouTuber or influencer deduct their camera and equipment?
Yes. Under Section 179, content creators can deduct 100% of camera, lighting, audio equipment, computers, and editing hardware in the year of purchase. A $10,000 equipment setup is fully deductible in Year 1.
Do content creators need to pay self-employment tax?
Yes. AdSense, brand deals, and sponsorship income are self-employment income subject to 15.3% SE tax. Forming an S-Corp can save $5,000\u2013$20,000/year once income exceeds $60,000.
Can a content creator deduct travel for content creation?
Yes, if the primary purpose of travel is content creation. Flights, hotels, and 50% of meals are deductible. Keep documentation showing the business purpose of each trip (filming schedule, brand partnership requirements).
What is the home studio deduction for content creators?
A dedicated room used exclusively for filming and editing qualifies as a home office. You can deduct a proportional share of rent/mortgage, utilities, and internet. A 200 sq ft studio in a 2,000 sq ft home = 10% of housing costs deductible.
0
0 write-offs saved
Tap to view your list

Your Biggest Missed Deduction Is Probably Locked Above

Uncle Kam clients save an average of $6,000–$35,000/year. The strategies that make that possible are unlocked on a free strategy call.

Book A Free Strategy Call Free consultation. No obligation.
';// ── Open in a new window and print ─────────────────────────────── var win = window.open('', '_blank', 'width=850,height=700,scrollbars=yes,noopener=0'); if (!win) { // Fallback: inject an iframe for printing if popup is blocked var iframe = document.createElement('iframe'); iframe.style.cssText = 'position:fixed;top:-9999px;left:-9999px;width:850px;height:700px;border:0;'; document.body.appendChild(iframe); iframe.contentDocument.open(); iframe.contentDocument.write(html); iframe.contentDocument.close(); setTimeout(function() { iframe.contentWindow.focus(); iframe.contentWindow.print(); setTimeout(function() { document.body.removeChild(iframe); }, 2000); }, 600); return; } win.document.open(); win.document.write(html); win.document.close(); win.focus(); setTimeout(function() { win.print(); }, 600); }// ── Email Unlock: post to GHL silently, expand locked cards ────────────── function ukwfUnlockStrategies(e) { e.preventDefault(); // Support both the main wall form AND per-card gate forms var form = e ? e.target : null; var gateInput = form ? form.querySelector('.ukwf-gate-email-input') : null; var mainInput = document.getElementById('ukwf-unlock-email'); var emailInput = (gateInput && gateInput.value.trim()) ? gateInput : mainInput; var errorEl = document.getElementById('ukwf-unlock-error'); var email = emailInput ? emailInput.value.trim() : ''; // Also check the gate input if main is empty if (!email && gateInput) email = gateInput.value.trim(); // Basic email validation if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { if (errorEl) errorEl.style.display = 'block'; if (gateInput) { gateInput.style.borderColor = '#ff6b6b'; gateInput.focus(); } else if (emailInput) emailInput.focus(); return; } if (errorEl) errorEl.style.display = 'none'; if (gateInput) gateInput.style.borderColor = ''; // Disable all unlock buttons document.querySelectorAll('.ukwf-email-unlock-btn, .ukwf-gate-email-btn').forEach(function(b) { b.disabled = true; b.textContent = 'Unlocking...'; }); // Send lead to GHL via server-side PHP AJAX (bypasses webhook workflow) var professionEl = document.querySelector('.ukwf-profile-name'); var professionName = professionEl ? professionEl.textContent.trim().replace(/\s*Tax Write-Offs\s*&?\s*Deductions\s*$/i, '').trim() : ''; var nameParts = professionName.split('/'); var ghlFirstName = nameParts[0] ? nameParts[0].trim() : professionName; var ghlLastName = nameParts[1] ? nameParts[1].trim() : 'Tax Write-Off Finder'; var ajaxUrl = (typeof ukwfConfig !== 'undefined' && ukwfConfig.ajaxUrl) ? ukwfConfig.ajaxUrl : '/wp-admin/admin-ajax.php'; var nonce = (typeof ukwfConfig !== 'undefined' && ukwfConfig.leadNonce) ? ukwfConfig.leadNonce : ''; var formData = new FormData(); formData.append('action', 'ukwf_ghl_lead'); formData.append('nonce', nonce); formData.append('email', email); formData.append('firstName', ghlFirstName); formData.append('lastName', ghlLastName); formData.append('profession', professionName); formData.append('source', 'ukwf-unlock'); formData.append('page', window.location.pathname); fetch(ajaxUrl, { method: 'POST', body: formData }).catch(function() {}); // fire-and-forget // Expand all locked cards immediately ukwfDoUnlock(); } function ukwfDoUnlock() { // Hide the email wall var wall = document.getElementById('ukwf-email-unlock-wall'); if (wall) { wall.style.transition = 'opacity 0.3s ease'; wall.style.opacity = '0'; setTimeout(function() { wall.style.display = 'none'; }, 300); } // Unlock all locked cards instantly — no stagger (stagger caused 4+ second delay for 70+ cards) var lockedCards = document.querySelectorAll('.ukwf-result-card--locked'); lockedCards.forEach(function(card) { // Remove locked state — keep collapsed so user can open each card individually card.classList.remove('ukwf-result-card--locked'); card.classList.add('ukwf-result-card--open'); // Clear any inline styles that might block the toggle var body = card.querySelector('.ukwf-result-body'); if (body) { body.style.display = ''; body.style.maxHeight = ''; } // Remove lock badge var badge = card.querySelector('.ukwf-result-lock-badge'); if (badge) badge.style.display = 'none'; // Replace the locked gate with an unlocked badge var gate = card.querySelector('.ukwf-locked-strategy-gate'); if (gate) { gate.innerHTML = '
Unlocked — tap to expand
'; } }); // Show success banner var banner = document.getElementById('ukwf-unlock-banner'); if (banner) { banner.style.display = 'flex'; } // Persist unlock in localStorage so it survives refresh, tab close, and navigation // Uses the same ukwfSetUnlocked() that the book-call path uses, which sets // localStorage key 'ukwf_unlocked' = '1'. The main script block already checks // ukwfIsUnlocked() on page load and calls ukwfUnlockAll() automatically. if (typeof ukwfSetUnlocked === 'function') { ukwfSetUnlocked(); } else { try { localStorage.setItem('ukwf_unlocked', '1'); } catch(err) {} } // Also run the main unlock function to handle any card variants we might miss if (typeof ukwfUnlockAll === 'function') { ukwfUnlockAll(); } } // NOTE: Auto-unlock on page load is handled by the main script block which // checks ukwfIsUnlocked() and calls ukwfUnlockAll(). No DOMContentLoaded // listener needed here (it was broken anyway because LiteSpeed defers scripts // past DOMContentLoaded)./* ── Sticky Save Bar ───────────────────────────────────────────────── */ (function() { var SAVED_KEY = 'ukwf_saved_v2'; var bar = document.getElementById('ukwf-sticky-save-bar'); var countEl = document.getElementById('ukwf-sticky-save-count'); var badgeEl = document.getElementById('ukwf-sticky-cart-badge'); var savingsWrap = document.getElementById('ukwf-sticky-save-savings'); var savingsRange = document.getElementById('ukwf-sticky-savings-range'); if (!bar || !countEl) return;var _prevCount = 0;/* Parse a savings string like "$1,200–$4,500/year" -> {min, max} */ function parseSavings(str) { if (!str) return null; var nums = str.replace(/[^0-9]/g, ' ').trim().split(/\s+/).filter(Boolean); var vals = nums.map(function(n) { return parseInt(n, 10); }).filter(function(n) { return !isNaN(n) && n > 0; }); if (vals.length === 0) return null; if (vals.length === 1) return { min: vals[0], max: vals[0] }; return { min: Math.min.apply(null, vals), max: Math.max.apply(null, vals) }; }/* Format a number as $XK or $X.XM */ function fmtMoney(n) { if (n >= 1000000) return '$' + (n / 1000000).toFixed(1).replace(/\.0$/, '') + 'M'; if (n >= 1000) return '$' + Math.round(n / 1000) + 'K'; return '$' + n.toLocaleString(); }/* Animated count-up for a single element */ function animateCount(el, from, to, duration) { if (from === to) { el.textContent = to; return; } var start = null; function step(ts) { if (!start) start = ts; var progress = Math.min((ts - start) / duration, 1); var ease = 1 - Math.pow(1 - progress, 3); el.textContent = Math.round(from + (to - from) * ease); if (progress < 1) requestAnimationFrame(step); else el.textContent = to; } requestAnimationFrame(step); }function getSaved() { try { return JSON.parse(localStorage.getItem(SAVED_KEY) || '[]'); } catch(e) { return []; } }function updateBar() { var saved = getSaved(); var n = saved.length;/* Count-up animation when count changes */ if (n !== _prevCount) { animateCount(countEl, _prevCount, n, 600); if (badgeEl) animateCount(badgeEl, _prevCount, n, 600); /* Pop animation on bar when count increases */ if (n > _prevCount) { bar.classList.remove('ukwf-sticky-bar-pop'); void bar.offsetWidth; bar.classList.add('ukwf-sticky-bar-pop'); } _prevCount = n; }if (n > 0) { bar.classList.add('ukwf-sticky-save-bar--visible');/* Calculate total savings range */ var totalMin = 0, totalMax = 0, hasSavings = false; saved.forEach(function(item) { var p = parseSavings(item.savings || ''); if (p) { totalMin += p.min; totalMax += p.max; hasSavings = true; } });if (hasSavings && savingsWrap && savingsRange) { var rangeStr = totalMin === totalMax ? fmtMoney(totalMin) : fmtMoney(totalMin) + '–' + fmtMoney(totalMax); savingsRange.textContent = rangeStr; savingsWrap.style.display = ''; } else if (savingsWrap) { savingsWrap.style.display = 'none'; } } else { bar.classList.remove('ukwf-sticky-save-bar--visible'); if (savingsWrap) savingsWrap.style.display = 'none'; } }/* Update whenever a save/unsave happens */ window.addEventListener('ukwfSavedChanged', updateBar); /* Cross-tab sync */ window.addEventListener('storage', function(e) { if (e.key === SAVED_KEY) updateBar(); }); /* Expose globally */ window.ukwfStickyBarRefresh = updateBar; updateBar(); })();/* ── CART DRAWER ────────────────────────────────────────────────────── */ (function() { var SAVED_KEY = 'ukwf_saved_v2'; var drawer = document.getElementById('ukwf-cart-drawer'); var overlay = document.getElementById('ukwf-cart-overlay'); var itemsList = document.getElementById('ukwf-cart-items'); var emptyEl = document.getElementById('ukwf-cart-empty'); var footerEl = document.getElementById('ukwf-cart-footer'); var savingsStrip = document.getElementById('ukwf-cart-savings-strip'); var savingsAmount = document.getElementById('ukwf-cart-savings-amount'); var headerSub = document.getElementById('ukwf-cart-header-sub'); var footerCount = document.getElementById('ukwf-cart-footer-count'); if (!drawer) return;function getSaved() { try { return JSON.parse(localStorage.getItem(SAVED_KEY) || '[]'); } catch(e) { return []; } } function setSaved(arr) { localStorage.setItem(SAVED_KEY, JSON.stringify(arr)); window.dispatchEvent(new CustomEvent('ukwfSavedChanged')); if (typeof window.ukwfStickyBarRefresh === 'function') window.ukwfStickyBarRefresh(); if (typeof window.ukwfSavedBadgeRefresh === 'function') window.ukwfSavedBadgeRefresh(); } function parseSavings(str) { if (!str) return null; var nums = str.replace(/[^0-9]/g, ' ').trim().split(/\s+/).filter(Boolean); var vals = nums.map(function(n){ return parseInt(n,10); }).filter(function(n){ return !isNaN(n) && n > 0; }); if (!vals.length) return null; if (vals.length === 1) return { min: vals[0], max: vals[0] }; return { min: Math.min.apply(null,vals), max: Math.max.apply(null,vals) }; } function fmtMoney(n) { if (n >= 1000000) return '$' + (n/1000000).toFixed(1).replace(/\.0$/,'') + 'M'; if (n >= 1000) return '$' + Math.round(n/1000) + 'K'; return '$' + n.toLocaleString(); } function getCatIcon(cat) { var icons = { 'vehicle':'', 'home':'', 'travel':'', 'equipment':'', 'health':'', 'retirement':'', 'education':'', 'real estate':'' }; var k = (cat || '').toLowerCase(); for (var key in icons) { if (k.indexOf(key) !== -1) return icons[key]; } return ''; } function renderItems() { var saved = getSaved(); var n = saved.length; /* Update header sub */ if (headerSub) headerSub.textContent = n + ' deduction' + (n !== 1 ? 's' : '') + ' saved'; /* Show/hide empty state */ if (emptyEl) emptyEl.style.display = n === 0 ? '' : 'none'; if (footerEl) footerEl.style.display = n === 0 ? 'none' : ''; /* Savings strip */ var totalMin = 0, totalMax = 0, hasSavings = false; saved.forEach(function(item) { var p = parseSavings(item.savings || ''); if (p) { totalMin += p.min; totalMax += p.max; hasSavings = true; } }); if (hasSavings && savingsStrip) { savingsStrip.style.display = ''; var rangeStr = totalMin === totalMax ? fmtMoney(totalMin) : fmtMoney(totalMin) + ' – ' + fmtMoney(totalMax); if (savingsAmount) savingsAmount.textContent = rangeStr; } else if (savingsStrip) { savingsStrip.style.display = 'none'; } /* Footer count */ if (footerCount) footerCount.textContent = n > 0 ? n + ' write-off' + (n !== 1 ? 's' : '') + ' in your list' : ''; /* Remove existing items (keep empty state) */ var existing = itemsList ? itemsList.querySelectorAll('.ukwf-cart-item') : []; existing.forEach(function(el) { el.parentNode.removeChild(el); }); /* Render each item */ saved.forEach(function(item, idx) { var div = document.createElement('div'); div.className = 'ukwf-cart-item'; div.style.animationDelay = (idx * 0.04) + 's'; div.innerHTML = '
' + getCatIcon(item.category) + '
' + '
' + '
' + escHtml(item.name || item.slug) + '
' + (item.category ? '
' + escHtml(item.category) + '
' : '') + (item.savings ? '
' + escHtml(item.savings) + '/yr
' : '') + '
' + ''; /* Remove button handler */ div.querySelector('.ukwf-cart-item-remove').addEventListener('click', function() { var slug = this.getAttribute('data-slug'); var arr = getSaved().filter(function(i){ return i.slug !== slug; }); setSaved(arr); /* Animate out */ div.style.transition = 'opacity 0.18s, transform 0.18s'; div.style.opacity = '0'; div.style.transform = 'translateX(20px)'; setTimeout(function() { renderItems(); }, 180); /* Also update save buttons on page */ document.querySelectorAll('.ukwf-card-save-btn[data-slug="' + slug + '"]').forEach(function(btn) { btn.classList.remove('ukwf-card-save-btn--saved'); btn.setAttribute('aria-pressed','false'); var lbl = btn.querySelector('.ukwf-card-save-label'); if (lbl) lbl.textContent = 'Save'; }); }); if (itemsList) itemsList.appendChild(div); }); } function escHtml(s) { return String(s).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); } function escAttr(s) { return String(s).replace(/"/g,'"').replace(/'/g,'''); } /* Open / close */ window.ukwfCartDrawerOpen = function() { renderItems(); if (drawer) drawer.classList.add('ukwf-cart-drawer--open'); if (overlay) overlay.classList.add('ukwf-cart-overlay--open'); document.body.style.overflow = 'hidden'; }; window.ukwfCartDrawerClose = function() { if (drawer) drawer.classList.remove('ukwf-cart-drawer--open'); if (overlay) overlay.classList.remove('ukwf-cart-overlay--open'); document.body.style.overflow = ''; }; window.ukwfCartClearAll = function() { if (!confirm('Remove all saved write-offs?')) return; setSaved([]); renderItems(); }; /* Keyboard close */ document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && drawer && drawer.classList.contains('ukwf-cart-drawer--open')) { window.ukwfCartDrawerClose(); } }); /* Re-render when saves change */ window.addEventListener('ukwfSavedChanged', function() { if (drawer && drawer.classList.contains('ukwf-cart-drawer--open')) { renderItems(); } }); window.addEventListener('storage', function(e) { if (e.key === SAVED_KEY && drawer && drawer.classList.contains('ukwf-cart-drawer--open')) { renderItems(); } }); })();/* ── CARD SAVE BUTTONS ──────────────────────────────────────────────── */ (function() { var SAVED_KEY = 'ukwf_saved_v2';function getSaved() { try { return JSON.parse(localStorage.getItem(SAVED_KEY) || '[]'); } catch(e) { return []; } } function setSaved(arr) { localStorage.setItem(SAVED_KEY, JSON.stringify(arr)); } function isSaved(slug) { return getSaved().some(function(i) { return i.slug === slug; }); } function updateBtn(btn) { var slug = btn.getAttribute('data-slug'); var saved = isSaved(slug); btn.classList.toggle('ukwf-card-save-btn--saved', saved); btn.setAttribute('aria-pressed', saved ? 'true' : 'false'); var label = btn.querySelector('.ukwf-card-save-label'); if (label) label.textContent = saved ? 'Saved' : 'Save'; } function initAllBtns() { document.querySelectorAll('.ukwf-card-save-btn').forEach(function(btn) { updateBtn(btn); btn.addEventListener('click', function(e) { e.stopPropagation(); var slug = btn.getAttribute('data-slug'); var name = btn.getAttribute('data-name'); var cat = btn.getAttribute('data-category') || ''; var savings = btn.getAttribute('data-savings') || ''; var saved = getSaved(); var idx = saved.findIndex(function(i) { return i.slug === slug; }); if (idx === -1) { saved.push({ slug: slug, name: name, category: cat, savings: savings, savedAt: Date.now() }); } else { saved.splice(idx, 1); } setSaved(saved); updateBtn(btn); /* Sync badge and sticky bar */ window.dispatchEvent(new CustomEvent('ukwfSavedChanged')); if (typeof window.ukwfSavedBadgeRefresh === 'function') window.ukwfSavedBadgeRefresh(); if (typeof window.ukwfStickyBarRefresh === 'function') window.ukwfStickyBarRefresh(); }); }); } /* Init on load and re-sync on saved changes from autocomplete */ if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAllBtns); } else { initAllBtns(); } window.addEventListener('ukwfSavedChanged', function() { document.querySelectorAll('.ukwf-card-save-btn').forEach(updateBtn); }); })();