Real Estate Speed to Lead: The 5-Minute Advantage

Voice Ai for real estate
In real estate, timing isn’t just important it’s everything. The difference between closing a deal and losing it often comes down to minutes. Studies consistently show that responding within 5 minutes dramatically increases conversion rates. Yet most agents take hours or worse, respond the next day. That gap is exactly where deals are lost. This is where real estate lead follow-up automation changes the game. Combined with a Real Estate Virtual Assistant, you can respond instantly, qualify leads, and book showings without lifting a finger. Let’s break down why speed matters and how to win with it.

Why Speed to Lead Matters in Real Estate
The 5-Minute Rule

The concept of Speed to Lead Real Estate is simple:
The faster you respond, the higher your chances of conversion.
Data insights show:
  • Responding within 5 minutes can increase conversion rates by up to 8–10x
  • After 30 minutes, lead quality drops significantly
  • After 24 hours, most leads are gone

Buyer Behavior Has Changed

Today’s buyers:
  • Submit inquiries to multiple agents
  • Expect instant responses
  • Move on quickly if ignored
If you’re not first, you’re forgotten. The Real Problem: Slow Follow-Ups

Manual Processes Kill Speed

Most agents rely on:
  • Checking emails manually
  • Calling back later
  • Managing leads across multiple platforms
This creates delays and missed opportunities.

After-Hours Lead Loss

One of the biggest gaps: nights and weekends. That’s when serious buyers browse listings but most agents are offline. Without systems in place, you never lose a real estate lead after hours you just never see them again.

What Is Real Estate Lead Follow-Up Automation?

It’s a system that instantly responds to new leads across channels—calls, forms, ads, or listings.

What It Does

  • Sends instant replies via SMS, call, or email
  • Qualifies leads automatically
  • Books appointments
  • Routes hot prospects to agents
  • Nurtures cold leads over time
Think of it as a 24/7 conversion engine.

How a Real Estate Virtual Assistant Helps

A Real Estate Virtual Assistant powered by AI can handle the entire first interaction.

Key Capabilities

  • Respond within seconds of inquiry
  • Ask qualifying questions (budget, timeline, location)
  • Schedule showings directly on your calendar
  • Follow up multiple times automatically

Example

A buyer submits a Zillow inquiry at 9:30 PM:
  • AI responds in 10 seconds
  • Asks 3 qualifying questions
  • Books a showing for the next day
  • Sends confirmation
No delay. No missed opportunity.

Step-by-Step: How to Automate Lead Follow-Up

Step 1: Capture Leads from All Sources

Integrate with:
  • Zillow, Realtor.com
  • Facebook/Google Ads
  • Website forms
  • CRM systems

Step 2: Set Instant Response Triggers

Every new lead should trigger:
  • SMS reply
  • AI call (optional)
  • Email follow-up

Step 3: Qualify Leads Automatically

Ask key questions:
  • Budget range
  • Buying timeline
  • Property type
  • Financing status

Step 4: Schedule Appointments

Sync with your calendar to:
  • Offer available slots
  • Confirm bookings instantly

Step 5: Nurture Long-Term Leads

Not every lead is ready now. Automate follow-ups like:
  • Weekly check-ins
  • New property alerts
  • Price drop notifications

Real Impact: Faster Response = More Deals

Conversion Lift

Agents using automation see:
  • 2–4x increase in response speed
  • 30–50% more qualified appointments
  • Higher close rates

Better Lead Experience

Customers feel:
  • Heard instantly
  • Guided professionally
  • More likely to trust you

How to Follow Up with Real Estate Leads Automatically

Build a Multi-Touch System

Use a mix of:
  • Instant SMS
  • Follow-up calls
  • Email sequences

Example Follow-Up Flow

  • Minute 0: Instant SMS reply
  • Minute 2: AI call attempt
  • Hour 1: Reminder message
  • Day 1: Personalized follow-up
  • Day 3+: Nurture sequence
Consistency wins deals.

Never Lose a Real Estate Lead After Hours

The Hidden Revenue Window

Over 40% of property inquiries happen outside business hours.
Without automation:
  • Leads go cold overnight
  • Competitors respond first

With AI + Automation

  • Every lead gets immediate attention
  • Urgent buyers are captured instantly
  • Appointments are booked while you sleep
This is where top agents pull ahead.

Common Mistakes to Avoid

  • Responding manually to every lead
  • Ignoring after-hours inquiries
  • Not qualifying leads early
  • Delayed follow-ups beyond 10 minutes
  • Using generic, non-personalized responses
Speed matters—but relevance matters too.

Conclusion

In real estate, the first agent to respond usually wins. Waiting even 30 minutes can cost you a deal. By using real estate lead follow-up automation and a Real Estate Virtual Assistant, you ensure every lead is contacted instantly, qualified efficiently, and converted faster. If you want to stop losing deals to faster competitors, the solution is simple: respond in minutes or lose the lead. Start by automating your first response. That alone can transform your pipeline.
Read More : AI Real Estate Marketing Virtual Assistant: Automating Property Listings

FAQ

What is the ideal real estate lead response time?

Under 5 minutes. Faster responses significantly increase conversion chances.

Can automation replace a real estate agent?

No. It handles initial engagement, but agents close deals. It enhances efficiency, not replaces expertise.

Is real estate lead follow-up automation expensive?

No. It’s often more cost-effective than hiring additional staff and delivers higher ROI.

How does a Real Estate Virtual Assistant qualify leads?

By asking structured questions about budget, timeline, and preferences, then scoring lead intent.

Does this work for small teams?

Yes. In fact, small teams benefit the most by competing with larger agencies on speed.


/* ============================================================ WEBFLOW CMS ARTICLE PAGE — ENHANCED STYLESHEET Mobile-first | Medium/HubSpot-inspired | SaaS-grade ============================================================ */ /* ─── DESIGN TOKENS ─────────────────────────────────────── */ :root { /* Typography */ --font-display: 'Lora', 'Georgia', serif; --font-body: 'Source Serif 4', 'Georgia', serif; --font-ui: 'DM Sans', 'Helvetica Neue', sans-serif; /* Scale (mobile-first) */ --text-xs: 0.75rem; /* 12px */ --text-sm: 0.875rem; /* 14px */ --text-base: 1.0625rem; /* 17px — optimal reading size */ --text-lg: 1.1875rem; /* 19px */ --text-xl: 1.375rem; /* 22px */ --text-2xl: 1.625rem; /* 26px */ --text-3xl: 2rem; /* 32px */ --text-4xl: 2.5rem; /* 40px */ --text-5xl: 3.25rem; /* 52px */ /* Line heights */ --leading-tight: 1.2; --leading-snug: 1.4; --leading-normal: 1.65; --leading-relaxed: 1.8; /* Colors */ --color-ink: #1a1a2e; --color-ink-2: #2d2d44; --color-ink-3: #4a4a6a; --color-muted: #6b6b8a; --color-subtle: #9898b2; --color-border: #e4e4f0; --color-border-2: #d0d0e8; --color-surface: #fafafa; --color-bg: #ffffff; /* Brand accent */ --color-accent: #2563eb; --color-accent-2: #1d4ed8; --color-accent-3: #dbeafe; --color-accent-4: #eff6ff; /* Highlight */ --color-highlight: #f59e0b; --color-highlight-2: #fef3c7; /* Layout */ --content-width: 740px; --wide-width: 900px; --full-width: 1200px; /* Spacing */ --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; /* Radii */ --radius-sm: 4px; --radius-md: 8px; --radius-lg: 12px; --radius-xl: 16px; --radius-2xl: 24px; /* Shadows */ --shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04); --shadow-md: 0 4px 16px rgba(0,0,0,.07), 0 1px 4px rgba(0,0,0,.04); --shadow-lg: 0 8px 32px rgba(0,0,0,.10), 0 2px 8px rgba(0,0,0,.05); --shadow-xl: 0 20px 60px rgba(0,0,0,.12), 0 4px 16px rgba(0,0,0,.06); /* Transitions */ --ease-out: cubic-bezier(0.16, 1, 0.3, 1); --ease-in: cubic-bezier(0.7, 0, 0.84, 0); --duration: 200ms; } /* ─── RESET & BASE ───────────────────────────────────────── */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 16px; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; } body { font-family: var(--font-body); font-size: var(--text-base); line-height: var(--leading-normal); color: var(--color-ink); background: var(--color-bg); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; } img, video, svg { max-width: 100%; height: auto; display: block; } /* ─── LAYOUT CONTAINER ───────────────────────────────────── */ /* Webflow CMS wrapper — add .article-wrapper or target your top-level div */ .article-wrapper, .w-container, [class*="post-container"], [class*="article-container"], [class*="blog-container"] { max-width: 100%; padding-left: var(--space-5); padding-right: var(--space-5); } /* Core article content column */ .article-content, .post-body, .blog-post-content, .rich-text-block, .w-richtext { width: 100%; max-width: var(--content-width); margin-left: auto; margin-right: auto; } /* ─── ARTICLE HEADER ─────────────────────────────────────── */ .article-header, .post-header, [class*="blog-header"], [class*="post-header"] { max-width: var(--content-width); margin: 0 auto var(--space-8); padding-top: var(--space-10); } /* Category / Tag pill */ .article-category, .post-category, .blog-category, [class*="category-label"], [class*="post-tag"] { display: inline-flex; align-items: center; font-family: var(--font-ui); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-accent); background: var(--color-accent-4); border: 1px solid var(--color-accent-3); padding: var(--space-1) var(--space-3); border-radius: 100px; margin-bottom: var(--space-5); text-decoration: none; transition: background var(--duration) var(--ease-out), color var(--duration) var(--ease-out); } .article-category:hover, .post-category:hover { background: var(--color-accent); color: #fff; } /* Article main headline */ .article-title, .post-title, [class*="blog-title"], [class*="post-heading-main"] { font-family: var(--font-display); font-size: var(--text-3xl); font-weight: 700; line-height: var(--leading-snug); color: var(--color-ink); letter-spacing: -0.02em; margin-bottom: var(--space-5); } /* Article subtitle / excerpt */ .article-subtitle, .post-subtitle, [class*="post-excerpt"], [class*="article-description"] { font-family: var(--font-body); font-size: var(--text-lg); line-height: var(--leading-relaxed); color: var(--color-muted); margin-bottom: var(--space-6); font-style: italic; } /* ─── AUTHOR / META BAR ──────────────────────────────────── */ .article-meta, .post-meta, [class*="author-meta"], [class*="post-info"] { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); padding: var(--space-4) 0; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); margin-bottom: var(--space-8); font-family: var(--font-ui); } .author-avatar, [class*="author-image"], [class*="author-photo"] { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 2px solid var(--color-border); } .author-name, [class*="author-name"] { font-size: var(--text-sm); font-weight: 600; color: var(--color-ink-2); } .post-date, .article-date, [class*="post-date"], [class*="publish-date"] { font-size: var(--text-sm); color: var(--color-muted); } .read-time, [class*="read-time"], [class*="reading-time"] { font-size: var(--text-sm); color: var(--color-subtle); } /* Dot separator */ .meta-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--color-border-2); flex-shrink: 0; } /* ─── FEATURED IMAGE ─────────────────────────────────────── */ .article-featured-image, .post-featured-image, [class*="featured-image"], [class*="hero-image"], [class*="post-thumbnail"] { width: 100%; max-width: var(--wide-width); margin: 0 auto var(--space-10); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); aspect-ratio: 16 / 9; } .article-featured-image img, .post-featured-image img, [class*="featured-image"] img, [class*="hero-image"] img, [class*="post-thumbnail"] img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; transition: transform 0.6s var(--ease-out); } .article-featured-image:hover img, .post-featured-image:hover img { transform: scale(1.02); } /* ─── RICH TEXT / BODY CONTENT ───────────────────────────── */ .w-richtext, .rich-text-block, .article-body, .post-body-content, [class*="article-body"], [class*="post-content"] { /* Global text defaults */ font-family: var(--font-body); font-size: var(--text-base); line-height: var(--leading-relaxed); color: var(--color-ink-2); } /* --- Headings --- */ .w-richtext h1, .w-richtext h2, .w-richtext h3, .w-richtext h4, .w-richtext h5, .w-richtext h6, [class*="article-body"] h1, [class*="article-body"] h2, [class*="article-body"] h3, [class*="article-body"] h4, [class*="article-body"] h5, [class*="article-body"] h6 { font-family: var(--font-display); font-weight: 700; line-height: var(--leading-tight); color: var(--color-ink); letter-spacing: -0.015em; margin-top: var(--space-12); margin-bottom: var(--space-4); } .w-richtext h1 { font-size: var(--text-3xl); } .w-richtext h2 { font-size: var(--text-2xl); } .w-richtext h3 { font-size: var(--text-xl); } .w-richtext h4 { font-size: var(--text-lg); font-weight: 600; } .w-richtext h5 { font-size: var(--text-base); font-weight: 600; } .w-richtext h6 { font-size: var(--text-sm); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-muted); } /* First heading after intro — less top space */ .w-richtext > h2:first-child, .w-richtext > h3:first-child { margin-top: 0; } /* --- Paragraphs --- */ .w-richtext p, [class*="article-body"] p { margin-bottom: var(--space-6); font-size: var(--text-base); line-height: var(--leading-relaxed); color: var(--color-ink-2); } .w-richtext p:last-child { margin-bottom: 0; } /* Lead paragraph */ .w-richtext p.lead, .w-richtext > p:first-of-type { font-size: var(--text-lg); color: var(--color-ink-3); line-height: 1.75; } /* --- Links --- */ .w-richtext a, [class*="article-body"] a { color: var(--color-accent); text-decoration: underline; text-decoration-color: var(--color-accent-3); text-underline-offset: 3px; transition: color var(--duration), text-decoration-color var(--duration); } .w-richtext a:hover { color: var(--color-accent-2); text-decoration-color: var(--color-accent-2); } /* --- Strong / Em --- */ .w-richtext strong { font-weight: 700; color: var(--color-ink); } .w-richtext em { font-style: italic; color: var(--color-ink-3); } /* --- Ordered & Unordered Lists --- */ .w-richtext ul, .w-richtext ol, [class*="article-body"] ul, [class*="article-body"] ol { margin: var(--space-2) 0 var(--space-6) var(--space-6); padding: 0; } .w-richtext li, [class*="article-body"] li { margin-bottom: var(--space-2); line-height: var(--leading-relaxed); color: var(--color-ink-2); padding-left: var(--space-2); } .w-richtext ul { list-style: none; } .w-richtext ul li::before { content: ''; display: inline-block; width: 6px; height: 6px; background: var(--color-accent); border-radius: 50%; margin-right: var(--space-3); margin-left: calc(-1 * var(--space-5)); vertical-align: middle; flex-shrink: 0; } .w-richtext ol { list-style: decimal; } .w-richtext ol li::marker { color: var(--color-accent); font-weight: 700; font-family: var(--font-ui); } /* Nested lists */ .w-richtext ul ul, .w-richtext ol ol, .w-richtext ul ol, .w-richtext ol ul { margin-top: var(--space-2); margin-bottom: 0; } /* --- Blockquote --- */ .w-richtext blockquote, [class*="article-body"] blockquote { position: relative; margin: var(--space-10) 0; padding: var(--space-6) var(--space-8); background: var(--color-accent-4); border-left: 4px solid var(--color-accent); border-radius: 0 var(--radius-md) var(--radius-md) 0; font-size: var(--text-xl); font-style: italic; line-height: var(--leading-snug); color: var(--color-ink-2); } .w-richtext blockquote::before { content: '\201C'; position: absolute; top: -0.1em; left: var(--space-4); font-size: 4rem; color: var(--color-accent-3); font-family: var(--font-display); line-height: 1; } .w-richtext blockquote p { margin-bottom: 0; font-size: inherit; } .w-richtext blockquote cite, .w-richtext blockquote footer { display: block; margin-top: var(--space-4); font-size: var(--text-sm); font-style: normal; font-family: var(--font-ui); color: var(--color-muted); font-weight: 600; } /* --- Inline Code --- */ .w-richtext code, [class*="article-body"] code { font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace; font-size: 0.875em; background: var(--color-surface); border: 1px solid var(--color-border); color: #d6336c; padding: 0.1em 0.4em; border-radius: var(--radius-sm); white-space: nowrap; } /* --- Code Block --- */ .w-richtext pre, [class*="article-body"] pre { margin: var(--space-8) 0; padding: var(--space-6); background: #1a1a2e; border-radius: var(--radius-lg); overflow-x: auto; box-shadow: var(--shadow-md); position: relative; } .w-richtext pre code { font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: var(--text-sm); line-height: 1.7; color: #e2e8f0; background: none; border: none; padding: 0; white-space: pre; } /* --- Horizontal Rule --- */ .w-richtext hr, [class*="article-body"] hr { border: none; height: 1px; background: linear-gradient( to right, transparent, var(--color-border-2) 20%, var(--color-border-2) 80%, transparent ); margin: var(--space-12) auto; max-width: 200px; } /* --- Inline Images in Body --- */ .w-richtext figure, [class*="article-body"] figure { margin: var(--space-10) 0; } .w-richtext figure img, [class*="article-body"] figure img { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); } .w-richtext figure figcaption, [class*="article-body"] figure figcaption { margin-top: var(--space-3); text-align: center; font-family: var(--font-ui); font-size: var(--text-sm); color: var(--color-subtle); font-style: italic; } /* Standalone images (no figure wrapper) */ .w-richtext img, [class*="article-body"] img { border-radius: var(--radius-lg); box-shadow: var(--shadow-md); margin: var(--space-8) auto; } /* --- Table --- */ .w-richtext table, [class*="article-body"] table { width: 100%; margin: var(--space-8) 0; border-collapse: collapse; font-family: var(--font-ui); font-size: var(--text-sm); overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; } .w-richtext th { background: var(--color-ink); color: #fff; font-weight: 600; padding: var(--space-3) var(--space-4); text-align: left; letter-spacing: 0.03em; } .w-richtext td { padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-border); color: var(--color-ink-2); } .w-richtext tr:last-child td { border-bottom: none; } .w-richtext tr:nth-child(even) td { background: var(--color-surface); } .w-richtext tr:hover td { background: var(--color-accent-4); } /* ─── PULL QUOTE / CALLOUT ───────────────────────────────── */ .callout, .info-box, .tip-box, [class*="callout"], [class*="tip-box"], [class*="info-block"] { display: flex; gap: var(--space-4); margin: var(--space-8) 0; padding: var(--space-5) var(--space-6); background: var(--color-highlight-2); border: 1px solid #fcd34d; border-left: 4px solid var(--color-highlight); border-radius: var(--radius-lg); font-family: var(--font-ui); font-size: var(--text-sm); line-height: var(--leading-normal); color: #78350f; } /* ─── CTA BUTTON ─────────────────────────────────────────── */ .w-button, .cta-button, .btn, [class*="btn-primary"], [class*="cta-btn"], [class*="article-cta"] { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); font-family: var(--font-ui); font-size: var(--text-sm); font-weight: 600; line-height: 1; letter-spacing: 0.02em; padding: 0.8125rem 1.625rem; background: var(--color-accent); color: #fff; border: 2px solid transparent; border-radius: var(--radius-md); cursor: pointer; text-decoration: none; transition: background var(--duration) var(--ease-out), transform var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out); white-space: nowrap; -webkit-user-select: none; user-select: none; } .w-button:hover, .cta-button:hover, .btn:hover { background: var(--color-accent-2); transform: translateY(-1px); box-shadow: 0 8px 24px rgba(37, 99, 235, 0.3); color: #fff; } .w-button:active, .cta-button:active { transform: translateY(0); box-shadow: none; } /* Secondary / Ghost variant */ .btn-secondary, [class*="btn-secondary"], [class*="btn-outline"] { background: transparent; color: var(--color-accent); border-color: var(--color-accent); } .btn-secondary:hover { background: var(--color-accent-4); transform: translateY(-1px); box-shadow: none; } /* Full-width CTA block */ .cta-block, [class*="cta-block"], [class*="article-cta-section"] { margin: var(--space-12) 0; padding: var(--space-10) var(--space-8); background: linear-gradient(135deg, var(--color-ink) 0%, var(--color-ink-2) 100%); border-radius: var(--radius-xl); text-align: center; box-shadow: var(--shadow-xl); } .cta-block h2, .cta-block h3 { font-family: var(--font-display); color: #fff; font-size: var(--text-2xl); margin-bottom: var(--space-4); } .cta-block p { color: rgba(255,255,255,.7); font-size: var(--text-base); margin-bottom: var(--space-6); font-family: var(--font-ui); } /* ─── TAGS / TOPICS ROW ──────────────────────────────────── */ .article-tags, .post-tags, [class*="tag-list"], [class*="article-topics"] { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-10); padding-top: var(--space-6); border-top: 1px solid var(--color-border); } .tag, [class*="tag-item"], [class*="topic-pill"] { font-family: var(--font-ui); font-size: var(--text-xs); font-weight: 500; color: var(--color-ink-3); background: var(--color-surface); border: 1px solid var(--color-border); padding: var(--space-1) var(--space-3); border-radius: 100px; text-decoration: none; transition: background var(--duration), border-color var(--duration), color var(--duration); } .tag:hover { background: var(--color-accent-4); border-color: var(--color-accent-3); color: var(--color-accent); } /* ─── SHARE BAR ──────────────────────────────────────────── */ .share-bar, [class*="share-bar"], [class*="social-share"] { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-8); padding: var(--space-5) var(--space-6); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); font-family: var(--font-ui); } .share-label { font-size: var(--text-sm); font-weight: 600; color: var(--color-muted); margin-right: var(--space-2); } .share-btn, [class*="share-btn"] { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); font-weight: 500; padding: var(--space-2) var(--space-4); border-radius: var(--radius-md); text-decoration: none; transition: background var(--duration), transform var(--duration); } .share-btn:hover { transform: translateY(-1px); } /* ─── AUTHOR BIO CARD ────────────────────────────────────── */ .author-bio, [class*="author-bio"], [class*="author-card"], [class*="writer-bio"] { display: flex; gap: var(--space-5); align-items: flex-start; margin-top: var(--space-12); padding: var(--space-6); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-xl); box-shadow: var(--shadow-sm); } .author-bio-avatar, [class*="author-bio"] img, [class*="author-card"] img:first-child { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 3px solid var(--color-border); } .author-bio-name { font-family: var(--font-ui); font-size: var(--text-base); font-weight: 700; color: var(--color-ink); margin-bottom: var(--space-1); } .author-bio-role { font-family: var(--font-ui); font-size: var(--text-sm); color: var(--color-accent); font-weight: 500; margin-bottom: var(--space-3); } .author-bio-text { font-size: var(--text-sm); line-height: var(--leading-normal); color: var(--color-ink-3); } /* ─── RELATED POSTS GRID ─────────────────────────────────── */ .related-posts, [class*="related-posts"], [class*="more-articles"], [class*="related-articles"] { margin-top: var(--space-16); padding-top: var(--space-10); border-top: 1px solid var(--color-border); } .related-posts-title, [class*="related-heading"] { font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 700; color: var(--color-ink); margin-bottom: var(--space-8); } .related-posts-grid, [class*="related-grid"] { display: grid; grid-template-columns: 1fr; gap: var(--space-6); } .related-post-card, [class*="related-card"], [class*="article-card"] { background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-xl); overflow: hidden; text-decoration: none; transition: transform var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out); display: block; } .related-post-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); } .related-post-image img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; transition: transform 0.4s var(--ease-out); } .related-post-card:hover .related-post-image img { transform: scale(1.04); } .related-post-body { padding: var(--space-5); } .related-post-category { font-family: var(--font-ui); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; color: var(--color-accent); margin-bottom: var(--space-2); } .related-post-title { font-family: var(--font-display); font-size: var(--text-lg); font-weight: 700; color: var(--color-ink); line-height: var(--leading-snug); margin-bottom: var(--space-2); } .related-post-excerpt { font-size: var(--text-sm); color: var(--color-muted); line-height: var(--leading-normal); } /* ─── PROGRESS BAR ───────────────────────────────────────── */ .reading-progress, [class*="reading-progress"], [class*="progress-bar"] { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(90deg, var(--color-accent), #818cf8); border-radius: 0 100px 100px 0; z-index: 9999; transition: width 0.1s linear; } /* ─── TABLE OF CONTENTS ──────────────────────────────────── */ .toc, [class*="table-of-contents"], [class*="toc-block"] { margin: var(--space-8) 0; padding: var(--space-6); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-xl); } .toc-title { font-family: var(--font-ui); font-size: var(--text-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-muted); margin-bottom: var(--space-4); } .toc ol, .toc ul { margin: 0; padding-left: var(--space-5); } .toc li { margin-bottom: var(--space-2); } .toc a { font-family: var(--font-ui); font-size: var(--text-sm); color: var(--color-accent); text-decoration: none; transition: color var(--duration); } .toc a:hover { color: var(--color-accent-2); text-decoration: underline; } /* ─── STICKY SIDEBAR (optional) ─────────────────────────── */ .article-sidebar, [class*="article-sidebar"], [class*="post-sidebar"] { display: none; /* Hidden on mobile, shown on large screens */ } /* ─── BREADCRUMBS ────────────────────────────────────────── */ .breadcrumbs, [class*="breadcrumbs"], [class*="breadcrumb"] { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); font-family: var(--font-ui); font-size: var(--text-sm); color: var(--color-muted); margin-bottom: var(--space-5); } .breadcrumbs a { color: var(--color-muted); text-decoration: none; transition: color var(--duration); } .breadcrumbs a:hover { color: var(--color-accent); } .breadcrumbs-sep { color: var(--color-border-2); } /* ─── NEWSLETTER / SUBSCRIBE BLOCK ──────────────────────── */ .newsletter-block, [class*="newsletter"], [class*="subscribe-block"] { margin: var(--space-12) 0; padding: var(--space-8) var(--space-6); background: linear-gradient(145deg, var(--color-accent-4) 0%, #f0f9ff 100%); border: 1px solid var(--color-accent-3); border-radius: var(--radius-2xl); text-align: center; } .newsletter-block h3 { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-ink); margin-bottom: var(--space-2); } .newsletter-block p { font-size: var(--text-sm); color: var(--color-muted); font-family: var(--font-ui); margin-bottom: var(--space-5); } .newsletter-form, [class*="subscribe-form"] { display: flex; gap: var(--space-2); max-width: 420px; margin: 0 auto; flex-wrap: wrap; } .newsletter-form input[type="email"], [class*="email-input"] { flex: 1; min-width: 0; font-family: var(--font-ui); font-size: var(--text-sm); padding: 0.75rem 1rem; background: #fff; border: 1.5px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-ink); outline: none; transition: border-color var(--duration); } .newsletter-form input[type="email"]:focus { border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(37,99,235,.12); } /* ─── WEBFLOW SPECIFIC OVERRIDES ─────────────────────────── */ /* Reset Webflow's aggressive defaults */ .w-richtext figure.w-richtext-align-center { margin-left: auto; margin-right: auto; } .w-richtext figure.w-richtext-align-fullwidth { max-width: 100%; margin-left: calc(-1 * var(--space-5)); margin-right: calc(-1 * var(--space-5)); border-radius: 0; } .w-richtext figure.w-richtext-align-fullwidth img { border-radius: 0; } /* Webflow collection list */ .w-dyn-list { width: 100%; } .w-dyn-item { display: block; } /* Fix Webflow default link underlines in rich text */ .w-richtext a { text-decoration: underline; } /* ============================================================ RESPONSIVE — TABLET (≥ 640px) ============================================================ */ @media (min-width: 640px) { :root { --text-base: 1.125rem; /* 18px */ --text-lg: 1.25rem; /* 20px */ --text-xl: 1.5rem; /* 24px */ --text-2xl: 1.875rem; /* 30px */ --text-3xl: 2.25rem; /* 36px */ } .article-wrapper, .w-container { padding-left: var(--space-8); padding-right: var(--space-8); } .article-title, .post-title { font-size: var(--text-4xl); } .related-posts-grid, [class*="related-grid"] { grid-template-columns: repeat(2, 1fr); } .newsletter-form { flex-wrap: nowrap; } } /* ============================================================ RESPONSIVE — DESKTOP (≥ 768px) ============================================================ */ @media (min-width: 768px) { .article-wrapper, .w-container { padding-left: var(--space-10); padding-right: var(--space-10); } .article-header, .post-header { padding-top: var(--space-16); margin-bottom: var(--space-10); } .article-featured-image, .post-featured-image { border-radius: var(--radius-xl); } .author-bio { padding: var(--space-8); } } /* ============================================================ RESPONSIVE — LARGE DESKTOP (≥ 1024px) ============================================================ */ @media (min-width: 1024px) { :root { --text-base: 1.125rem; --text-3xl: 2.5rem; --text-4xl: 3rem; --text-5xl: 3.75rem; } .article-wrapper, .w-container { max-width: var(--full-width); margin-left: auto; margin-right: auto; padding-left: var(--space-12); padding-right: var(--space-12); } /* Two-column layout with sidebar */ .article-layout, [class*="article-layout"], [class*="post-layout"] { display: grid; grid-template-columns: var(--content-width) 1fr; gap: var(--space-16); align-items: start; } .article-sidebar, [class*="article-sidebar"] { display: block; position: sticky; top: var(--space-8); } .article-title, .post-title { font-size: var(--text-5xl); } .related-posts-grid { grid-template-columns: repeat(3, 1fr); } .w-richtext h2 { font-size: var(--text-3xl); } .w-richtext h3 { font-size: var(--text-2xl); } .w-richtext h4 { font-size: var(--text-xl); } } /* ============================================================ RESPONSIVE — XL DESKTOP (≥ 1280px) ============================================================ */ @media (min-width: 1280px) { .article-wrapper, .w-container { padding-left: var(--space-16); padding-right: var(--space-16); } } /* ─── NO HORIZONTAL SCROLL GUARD ────────────────────────── */ html, body { max-width: 100%; overflow-x: hidden; } /* Prevent wide tables / code from breaking layout */ .w-richtext *, [class*="article-body"] * { max-width: 100%; } .w-richtext pre { white-space: pre; overflow-x: auto; } /* ─── FOCUS / ACCESSIBILITY ──────────────────────────────── */ :focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; border-radius: var(--radius-sm); } /* ─── PRINT ──────────────────────────────────────────────── */ @media print { .share-bar, .reading-progress, .newsletter-block, .article-sidebar, .related-posts { display: none !important; } body { font-size: 12pt; color: #000; } .w-richtext { max-width: 100%; } .w-richtext a::after { content: " (" attr(href) ")"; font-size: 0.8em; color: #666; } } /* ─── REDUCED MOTION ─────────────────────────────────────── */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } } /* ─── DARK MODE ──────────────────────────────────────────── */ @media (prefers-color-scheme: dark) { :root { --color-ink: #f0f0f8; --color-ink-2: #d8d8ec; --color-ink-3: #b0b0cc; --color-muted: #8888a8; --color-subtle: #6666a0; --color-border: #2a2a40; --color-border-2: #363650; --color-surface: #131320; --color-bg: #0d0d1a; --color-accent: #60a5fa; --color-accent-2: #93c5fd; --color-accent-3: #1e3a6e; --color-accent-4: #0f1e38; --shadow-sm: 0 1px 3px rgba(0,0,0,.4); --shadow-md: 0 4px 16px rgba(0,0,0,.5); --shadow-lg: 0 8px 32px rgba(0,0,0,.6); --shadow-xl: 0 20px 60px rgba(0,0,0,.7); } .w-richtext code { color: #f472b6; } .w-richtext pre { background: #0a0a18; } .newsletter-block { background: linear-gradient(145deg, var(--color-accent-4), #0a1628); } .cta-block { background: linear-gradient(135deg, #1e1e3a, #2a2a50); } .newsletter-form input[type="email"] { background: var(--color-surface); color: var(--color-ink); border-color: var(--color-border); } }