24/7 AI Real Estate Leads: Capture Every Inquiry

24/7 lead response real estate
A potential buyer finds your listing at 11:47 PM, fills out a form, and waits. By morning, they’ve already spoken to another agent. This is the hidden leak in modern real estate lead generation missed or delayed responses, especially after hours. And in a market where speed is everything, slow follow-up kills deals. This is where after-hours real estate lead capture powered by AI changes the game. With 24/7 lead response in real estate, agents can instantly engage, qualify, and convert leads even while they sleep. Let’s break down exactly how it works and how you can implement it.
real estate lead generation

Why Real Estate Agents Lose Leads After Hours

The Speed-to-Lead Problem

In real estate, timing isn’t just important—it’s everything.
  • 78% of buyers go with the first agent who responds
  • Lead response after 5 minutes drops conversion rates drastically
  • Nights and weekends generate a large portion of inquiries
Yet most agents:
  • Rely on manual callbacks
  • Miss late-night inquiries
  • Respond hours too late

The Cost of Missed Opportunities

Every missed call, form, or message is:
  • A lost commission
  • A lost relationship
  • A win for your competitor
If your business isn’t built for 24/7 lead response in real estate, you’re leaving serious money on the table.

How AI Solves After-Hours Lead Capture

Always-On Lead Engagement

AI real estate leads systems act as a 24/7 front desk for your business.
They instantly:
  • Respond to website inquiries
  • Answer calls and texts
  • Engage leads via chat
No delays. No missed connections.

Human-Like Conversations

Modern AI doesn’t feel robotic.
It:
  • Understands buyer/seller intent
  • Asks relevant questions
  • Adapts responses naturally
Example:
“Are you looking to buy soon, or just exploring options right now?”
This creates a smooth, conversational experience that keeps leads engaged.

What Happens When a Lead Comes In at Night

Step-by-Step AI Workflow

Here’s how after-hours real estate lead capture works in real time:
  1. A lead submits a form or calls at 10 PM
  2. AI responds instantly (chat, SMS, or voice)
  3. It asks qualifying questions
  4. Captures key details (budget, timeline, location)
  5. Schedules a call or property visit
  6. Logs everything into your CRM
  7. Notifies you with a summary
All within minutes.

Key Features of AI for Real Estate Lead Generation

Instant Lead Response

Speed is the biggest advantage.
AI ensures:
  • Zero delay in first response
  • Higher engagement rates
  • Better conversion potential

Intelligent Lead Qualification

AI filters serious buyers from casual browsers.
It collects:
  • Budget range
  • Buying/selling timeline
  • Property preferences
  • Financing status
This saves agents hours of manual work.

Multi-Channel Communication

AI works across:
  • Website chat
  • SMS and WhatsApp
  • Phone calls
  • Facebook and Instagram messages
This creates a seamless experience across all touchpoints.

AI Answering Service for Realtors

Handling Calls 24/7

An AI answering service for realtors ensures you never miss a call—even at midnight.
It can:
  • Answer inquiries about listings
  • Capture contact details
  • Schedule appointments
  • Route urgent calls
Example Scenario
A buyer calls at 1 AM about a listing.
Instead of voicemail:
  • AI answers instantly
  • Provides property details
  • Books a showing
  • Sends confirmation
That’s a lead captured while you sleep.

Benefits of 24/7 Lead Response in Real Estate

Higher Conversion Rates

Faster response = higher conversions.
With AI:
  • Leads stay engaged
  • Drop-offs reduce
  • Booking rates increase

Better Client Experience

Today’s buyers expect instant replies.
AI delivers:
  • Immediate answers
  • Consistent communication
  • Personalized interaction

Scalability Without Hiring

Instead of adding staff, AI scales effortlessly.
You can:
  • Handle unlimited inquiries
  • Operate across time zones
  • Grow without increasing overhead

How to Implement AI for Your Real Estate Business

Step 1: Identify Lead Sources

Start with:
  • Website forms
  • Listing portals
  • Social media
  • Call inquiries

Step 2: Choose the Right AI Tool

Look for:
  • CRM integration
  • Voice + chat capabilities
  • Custom workflows
  • Real estate-specific training

Step 3: Customize Conversations

Train AI to:
  • Reflect your brand tone
  • Ask relevant questions
  • Handle common objections

Step 4: Set Follow-Up Workflows

Ensure:
  • Instant notifications
  • Daily summaries
  • Easy handoff to human agents

Best Practices to Never Lose a Real Estate Lead After Hours

  • Respond within seconds, not minutes
  • Use AI to qualify before human follow-up
  • Personalize communication wherever possible
  • Track and optimize conversion metrics
  • Combine AI automation with human expertise

Future of AI Real Estate Leads

The shift is already happening.
By 2026, top-performing agents are:
  • Using AI for first-touch engagement
  • Automating lead qualification
  • Prioritizing high-intent prospects
Those who adopt early gain a massive competitive edge.

Conclusion

Real estate success isn’t just about generating leads it’s about responding faster than everyone else. With after-hours real estate lead capture and AI-powered 24/7 lead response in real estate, you can engage every inquiry instantly, qualify smarter, and convert more deals without burning out. If you want to scale your business and never lose a real estate lead after hours, AI isn’t optional anymore it’s your competitive advantage.

Frequently Asked Questions

What is after-hours real estate lead capture?

It’s the process of capturing and responding to leads outside business hours using tools like AI, ensuring no opportunity is missed.

How do AI real estate leads systems work?

They use chat, voice, and messaging automation to instantly engage, qualify, and schedule leads without human intervention.

Can AI replace real estate agents?

No. AI handles initial engagement and qualification, while agents focus on closing deals and building relationships.

Is 24/7 lead response really necessary?

Yes. Many high-intent buyers search and inquire outside traditional hours.

How quickly should I respond to a real estate lead?

Ideally within seconds. The faster the response, the higher the chance of conversion.
/* ============================================================ 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); } }