/* ============================================================
   HomeWatch HQ — Editorial Conversion Landing Page
   Long-form sales letter with 4 distributed pricing touchpoints,
   sticky scroll bar, audience selector, FAQ accordion
   ============================================================ */

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { font-size: 16px; -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
body { font-family: 'Source Sans 3', sans-serif; color: #e2e8f0; background: #0c1220; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
img { max-width: 100%; display: block; }
.container { max-width: 1060px; margin: 0 auto; padding: 0 24px; }

/* --- Animations --- */
@keyframes fadeInUp { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
[data-animate] { opacity:0; will-change:opacity,transform; }
[data-animate].visible { animation: fadeInUp 0.7s cubic-bezier(.22,1,.36,1) both; }

/* --- Nav --- */
.nav { position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(12,18,32,.84); backdrop-filter:blur(14px) saturate(1.2); border-bottom:1px solid rgba(51,65,85,.3); }
.nav-inner { max-width:1060px; margin:0 auto; padding:0 24px; height:56px; display:flex; align-items:center; justify-content:space-between; }
.nav-brand { display:flex; align-items:center; gap:8px; font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.05rem; color:#f1f5f9; }
.brand-accent { color:#06b6d4; }
.nav-links { display:flex; align-items:center; gap:24px; font-family:'Source Sans 3',sans-serif; font-weight:500; font-size:.85rem; color:#94a3b8; }
.nav-links a { transition:color .2s; }
.nav-links a:hover { color:#e2e8f0; }
.nav-cta { padding:7px 18px; background:linear-gradient(135deg,#06b6d4,#0891b2); color:#0f172a !important; border-radius:7px; font-family:'DM Sans',sans-serif; font-weight:600; font-size:.82rem; transition:box-shadow .3s; }
.nav-cta:hover { box-shadow:0 0 16px rgba(6,182,212,.3); }
.mobile-menu-btn { display:none; background:none; border:none; color:#94a3b8; cursor:pointer; }
.mobile-menu { display:none; flex-direction:column; max-width:1060px; margin:0 auto; padding:0 24px 16px; }
.mobile-menu a { display:block; padding:10px 0; font-size:.9rem; color:#94a3b8; border-bottom:1px solid rgba(51,65,85,.25); }
.mobile-menu a:last-child { border-bottom:none; }
.mobile-menu .nav-cta { display:inline-block; text-align:center; margin-top:8px; border-bottom:none; }
.mobile-menu.open { display:flex; }

/* --- Buttons --- */
.btn { display:inline-flex; align-items:center; justify-content:center; font-family:'DM Sans',sans-serif; font-weight:600; border:none; border-radius:9px; cursor:pointer; text-decoration:none; transition:transform .15s,box-shadow .3s; }
.btn:active { transform:scale(.97); }
.btn-primary { background:linear-gradient(135deg,#06b6d4,#0891b2,#0e7490); background-size:200% 200%; color:#0f172a; box-shadow:0 4px 20px rgba(6,182,212,.2); }
.btn-primary:hover { box-shadow:0 6px 28px rgba(6,182,212,.4); transform:translateY(-2px); }
.btn-primary.submitted { background:linear-gradient(135deg,#10b981,#059669); color:#f8fafc; }
.btn-lg { padding:13px 26px; font-size:.95rem; }
.btn-full { width:100%; }
.btn-ghost { background:rgba(30,41,59,.4); color:#e2e8f0; border:1px solid #334155; }
.btn-ghost:hover { background:rgba(51,65,85,.4); border-color:#475569; }

/* --- Sticky Scroll Bar --- */
.sticky-bar { position:fixed; bottom:0; left:0; right:0; z-index:99; background:rgba(12,18,32,.92); backdrop-filter:blur(12px); border-top:1px solid rgba(6,182,212,.15); padding:10px 24px; display:flex; align-items:center; justify-content:center; gap:20px; transform:translateY(100%); transition:transform .35s cubic-bezier(.22,1,.36,1); }
.sticky-bar.show { transform:translateY(0); }
.sticky-bar-text { font-family:'Source Sans 3',sans-serif; font-size:.88rem; color:#94a3b8; }
.sticky-bar-text strong { color:#f8fafc; font-family:'DM Sans',sans-serif; }
.sticky-bar-text em { color:#10b981; font-style:normal; font-weight:600; }
.sticky-bar .btn { padding:8px 20px; font-size:.82rem; }

/* ============================================================
   HERO — compact, inline capture
   ============================================================ */
.hero { padding:120px 0 48px; text-align:center; position:relative; overflow:hidden; }
.glow-hero { position:absolute; top:-5%; left:50%; transform:translateX(-50%); width:1000px; height:600px; background:radial-gradient(ellipse at 30% 20%,rgba(6,182,212,.1) 0%,transparent 50%),radial-gradient(ellipse at 70% 30%,rgba(139,92,246,.07) 0%,transparent 50%); pointer-events:none; }
.hero .container { position:relative; z-index:1; }
.hero-reading-time { font-family:'Source Sans 3',sans-serif; font-size:.8rem; color:#64748b; margin-bottom:16px; }
.hero-headline { font-family:'DM Sans',sans-serif; font-weight:700; font-size:3rem; line-height:1.1; color:#f8fafc; letter-spacing:-.03em; margin-bottom:16px; max-width:720px; margin-left:auto; margin-right:auto; }
.hero-headline em { font-style:normal; background:linear-gradient(135deg,#06b6d4,#22d3ee,#a78bfa,#06b6d4); background-size:200% auto; -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hero-sub { font-size:1.15rem; color:#94a3b8; max-width:560px; margin:0 auto 28px; line-height:1.6; }
.hero-form { display:flex; gap:8px; max-width:440px; margin:0 auto; }
.hero-form input { flex:1; padding:12px 14px; font-family:'Source Sans 3',sans-serif; font-size:.9rem; color:#f1f5f9; background:rgba(15,23,42,.6); border:1px solid rgba(51,65,85,.4); border-radius:9px; outline:none; transition:border-color .2s; }
.hero-form input::placeholder { color:#64748b; }
.hero-form input:focus { border-color:#06b6d4; }
.hero-note { font-size:.78rem; color:#64748b; text-align:center; margin-top:10px; }

/* ============================================================
   PRICING BLOCKS
   ============================================================ */

/* Full pricing block (Touchpoints #1 and #4) */
.pricing-full { padding:64px 0; }
.pricing-full-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:32px; align-items:start; }

.pricing-card-main { padding:32px 28px; background:rgba(20,30,50,.6); border-radius:16px; border:1px solid rgba(6,182,212,.15); position:relative; }
.pricing-card-main::before { content:''; position:absolute; inset:-1px; border-radius:17px; padding:1px; background:conic-gradient(from 180deg,rgba(6,182,212,.35),rgba(139,92,246,.15),rgba(245,158,11,.1),rgba(6,182,212,.35)); -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }

.pricing-toggle-row { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.pricing-toggle-label { font-size:.85rem; color:#94a3b8; font-weight:500; }
.pricing-toggle-label.active { color:#f1f5f9; }
.save-tag { padding:2px 8px; background:rgba(16,185,129,.12); border:1px solid rgba(16,185,129,.25); border-radius:100px; font-size:.68rem; font-weight:700; color:#10b981; text-transform:uppercase; }
.toggle-sw { position:relative; width:42px; height:22px; background:#334155; border:1px solid #475569; border-radius:100px; cursor:pointer; transition:all .3s; padding:0; }
.toggle-sw.active { background:#06b6d4; border-color:#06b6d4; }
.toggle-sw .knob { position:absolute; top:2px; left:2px; width:16px; height:16px; background:#f8fafc; border-radius:50%; transition:transform .25s cubic-bezier(.22,1,.36,1); }
.toggle-sw.active .knob { transform:translateX(20px); }

.price-display { display:flex; align-items:baseline; gap:2px; margin-bottom:6px; }
.price-dollar { font-family:'DM Sans',sans-serif; font-weight:600; font-size:1.4rem; color:#f8fafc; }
.price-amount { font-family:'DM Sans',sans-serif; font-weight:700; font-size:3rem; line-height:1; color:#f8fafc; letter-spacing:-.02em; }
.price-period { font-size:1rem; color:#64748b; }
.price-note { font-size:.82rem; color:#64748b; margin-bottom:20px; }
.price-note-annual { display:none; font-size:.82rem; color:#10b981; font-weight:500; margin-bottom:20px; }
.price-note-annual .strikethrough { text-decoration:line-through; color:#64748b; font-weight:400; }
.pricing-trial { font-size:.75rem; color:#64748b; margin-top:10px; text-align:center; }

.pricing-checks { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:20px; }
.pc { display:flex; align-items:center; gap:7px; font-size:.82rem; color:#cbd5e1; }
.pc svg { flex-shrink:0; }
.pc strong { color:#f1f5f9; }

/* Comparison table */
.comparison-card { background:rgba(15,23,42,.4); border:1px solid rgba(51,65,85,.25); border-radius:16px; overflow:hidden; }
.comparison-card h3 { font-family:'DM Sans',sans-serif; font-size:1rem; font-weight:600; color:#f1f5f9; padding:16px 20px; border-bottom:1px solid rgba(51,65,85,.25); }
.cmp-table { width:100%; border-collapse:collapse; font-size:.8rem; }
.cmp-table th { padding:10px 14px; text-align:left; font-family:'DM Sans',sans-serif; font-weight:600; font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:#64748b; background:rgba(30,41,59,.3); border-bottom:1px solid rgba(51,65,85,.2); }
.cmp-table td { padding:10px 14px; color:#94a3b8; border-bottom:1px solid rgba(51,65,85,.15); }
.cmp-table tr:last-child td { border-bottom:none; }
.cmp-table .you td { background:rgba(6,182,212,.06); color:#f1f5f9; font-weight:600; }
.cmp-table .you td:first-child { color:#06b6d4; }
.cmp-table .red { color:#f43f5e; }
.cmp-table .green { color:#10b981; }
.cmp-sub { font-size:.78rem; color:#64748b; padding:12px 20px; text-align:center; border-top:1px solid rgba(51,65,85,.15); }

/* Compact pricing band (Touchpoint #2) */
.pricing-band { padding:28px 24px; text-align:center; background:linear-gradient(135deg,rgba(6,182,212,.05),rgba(139,92,246,.03)); border-top:1px solid rgba(6,182,212,.1); border-bottom:1px solid rgba(6,182,212,.1); }
.pricing-band p { font-family:'Source Sans 3',sans-serif; font-size:1.05rem; color:#94a3b8; margin-bottom:14px; }
.pricing-band p strong { color:#f8fafc; }
.pricing-band-prices { font-family:'DM Sans',sans-serif; font-size:.88rem; color:#64748b; margin-bottom:14px; }
.pricing-band-prices strong { color:#06b6d4; font-size:1rem; }

/* Compact pricing card (Touchpoint #3) */
.pricing-compact { max-width:400px; margin:0 auto; padding:28px 24px; background:rgba(20,30,50,.6); border:1px solid rgba(6,182,212,.15); border-radius:14px; text-align:center; }
.pricing-compact .price-display { justify-content:center; margin-bottom:4px; }
.pricing-compact .price-sub { font-size:.82rem; color:#64748b; margin-bottom:16px; }

/* ============================================================
   AUDIENCE SELECTOR
   ============================================================ */
.audience-selector { padding:48px 0; }
.audience-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.audience-card { padding:24px; background:rgba(20,30,50,.4); border:1px solid rgba(51,65,85,.3); border-radius:14px; cursor:pointer; transition:border-color .3s,box-shadow .3s; }
.audience-card:hover, .audience-card.selected { border-color:rgba(6,182,212,.3); box-shadow:0 0 24px rgba(6,182,212,.06); }
.audience-card h3 { font-family:'DM Sans',sans-serif; font-size:1.05rem; font-weight:600; color:#f1f5f9; margin-bottom:8px; }
.audience-card p { font-size:.88rem; color:#94a3b8; line-height:1.5; }

/* ============================================================
   EDITORIAL SECTIONS
   ============================================================ */
.editorial { padding:64px 0; }
.editorial-narrow { max-width:720px; margin:0 auto; }

.ed-eyebrow { font-family:'DM Sans',sans-serif; font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:#06b6d4; margin-bottom:10px; }
.ed-headline { font-family:'DM Sans',sans-serif; font-weight:700; font-size:2rem; line-height:1.2; color:#f8fafc; letter-spacing:-.02em; margin-bottom:16px; }
.ed-body { font-size:1.02rem; color:#94a3b8; line-height:1.75; margin-bottom:16px; }
.ed-body strong { color:#e2e8f0; }
.ed-zinger { font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.25rem; color:#f8fafc; margin:24px 0; line-height:1.3; }
.ed-zinger em { font-style:normal; color:#06b6d4; }
.ed-inline-cta { font-size:.9rem; color:#06b6d4; font-weight:500; transition:color .2s; }
.ed-inline-cta:hover { color:#22d3ee; }

/* Pull quotes */
.pull-quote { padding:56px 24px; text-align:center; }
.pull-quote-text { font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.85rem; line-height:1.3; color:#f8fafc; max-width:700px; margin:0 auto; letter-spacing:-.02em; }
.pull-quote-text em { font-style:normal; color:#06b6d4; }

/* Story blocks (stakes) */
.story-block { position:relative; min-height:360px; display:flex; align-items:center; overflow:hidden; }
.story-block-bg { position:absolute; inset:0; }
.story-block-bg img { width:100%; height:100%; object-fit:cover; -webkit-mask-image:linear-gradient(to right,transparent 0%,black 10%,black 90%,transparent 100%); mask-image:linear-gradient(to right,transparent 0%,black 10%,black 90%,transparent 100%); }
.story-block-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,18,32,.92) 0%,rgba(12,18,32,.6) 50%,rgba(12,18,32,.92) 100%); }
.story-block-content { position:relative; z-index:1; max-width:580px; padding:48px 24px; }
.story-block:nth-child(odd) .story-block-content { margin-left:8%; }
.story-block:nth-child(even) .story-block-content { margin-left:auto; margin-right:8%; }
.story-block-text { font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.6rem; line-height:1.3; color:#f8fafc; }
.story-block-text .highlight { color:#f43f5e; }
.story-block-detail { font-size:.9rem; color:#94a3b8; margin-top:10px; line-height:1.5; }

/* Dual-audience split */
.split-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.split-card { padding:28px; background:rgba(20,30,50,.4); border:1px solid rgba(51,65,85,.3); border-radius:14px; }
.split-card h3 { font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.15rem; color:#f1f5f9; margin-bottom:10px; }
.split-card p { font-size:.92rem; color:#94a3b8; line-height:1.6; margin-bottom:14px; }

/* Product proof / editorial rows */
.proof-row { display:grid; grid-template-columns:1.1fr 1fr; gap:0; align-items:center; margin-bottom:48px; }
.proof-row:last-child { margin-bottom:0; }
.proof-row.reverse { grid-template-columns:1fr 1.1fr; }
.proof-row.reverse .proof-image { order:2; }
.proof-row.reverse .proof-text { order:1; }
.proof-image img { width:100%; height:340px; object-fit:cover; border-radius:14px; box-shadow:0 16px 48px rgba(0,0,0,.25); }
.proof-text { padding:32px 40px; position:relative; z-index:2; margin-left:-40px; background:rgba(12,18,32,.75); backdrop-filter:blur(10px); border-radius:12px; border:1px solid rgba(51,65,85,.2); }
.proof-row.reverse .proof-text { margin-left:0; margin-right:-40px; }
.proof-label { font-family:'DM Sans',sans-serif; font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:#06b6d4; margin-bottom:8px; }
.proof-text h3 { font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.3rem; color:#f8fafc; margin-bottom:10px; line-height:1.25; }
.proof-text p { font-size:.9rem; color:#94a3b8; line-height:1.6; }

/* Homeowner full-bleed */
.homeowner-block { position:relative; min-height:420px; display:flex; align-items:center; overflow:hidden; }
.homeowner-block .story-block-bg { position:absolute; inset:0; }
.homeowner-block .story-block-overlay { background:linear-gradient(90deg,rgba(12,18,32,.9) 0%,rgba(12,18,32,.65) 50%,rgba(12,18,32,.35) 100%); }
.homeowner-inner { position:relative; z-index:1; max-width:520px; padding:56px 24px 56px 8%; }
.homeowner-inner h2 { font-family:'DM Sans',sans-serif; font-weight:700; font-size:2rem; color:#f8fafc; margin-bottom:12px; line-height:1.2; }
.homeowner-inner > p { font-size:1rem; color:#94a3b8; line-height:1.6; margin-bottom:20px; }
.hb-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.hb { display:flex; align-items:center; gap:7px; font-size:.88rem; color:#cbd5e1; }
.hb svg { flex-shrink:0; }

/* Founder */
.founder { padding:64px 0; }
.founder-inner { max-width:680px; margin:0 auto; text-align:center; }
.founder-inner h2 { font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.5rem; color:#f8fafc; margin-bottom:12px; }
.founder-inner p { font-size:.95rem; color:#94a3b8; line-height:1.7; margin-bottom:12px; }
.founder-inner .founder-email { color:#06b6d4; font-weight:500; }

/* FAQ */
.faq { padding:64px 0; }
.faq h2 { font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.75rem; color:#f8fafc; text-align:center; margin-bottom:36px; }
.faq-list { max-width:720px; margin:0 auto; }
.faq-item { border-bottom:1px solid rgba(51,65,85,.2); }
.faq-q { display:flex; justify-content:space-between; align-items:center; padding:18px 0; cursor:pointer; font-family:'DM Sans',sans-serif; font-weight:600; font-size:.95rem; color:#f1f5f9; }
.faq-q svg { flex-shrink:0; transition:transform .3s; color:#64748b; }
.faq-item.open .faq-q svg { transform:rotate(180deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.faq-a-inner { padding:0 0 18px; font-size:.9rem; color:#94a3b8; line-height:1.6; }

/* Final CTA */
.final-cta { padding:80px 0; text-align:center; position:relative; overflow:hidden; }
.final-cta .glow-hero { top:50%; }
.final-cta h2 { font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.75rem; color:#f8fafc; margin-bottom:12px; }
.final-cta .ed-body { text-align:center; max-width:540px; margin:0 auto 20px; }
.final-ps { font-size:.85rem; color:#64748b; max-width:480px; margin:20px auto 0; line-height:1.5; }
.final-ps a { color:#06b6d4; }

/* Signup forms */
.signup-form { display:flex; gap:8px; max-width:440px; margin:0 auto 10px; }
.email-input { flex:1; padding:12px 14px; font-family:'Source Sans 3',sans-serif; font-size:.9rem; color:#f1f5f9; background:rgba(15,23,42,.6); border:1px solid rgba(51,65,85,.4); border-radius:9px; outline:none; transition:border-color .2s; }
.email-input::placeholder { color:#64748b; }
.email-input:focus { border-color:#06b6d4; }
.email-input:disabled { opacity:.6; }
.form-note { font-size:.75rem; color:#64748b; text-align:center; }

/* Footer */
.footer { padding:48px 0 28px; border-top:1px solid rgba(51,65,85,.2); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; margin-bottom:32px; }
.footer-brand { display:flex; align-items:center; gap:8px; font-family:'DM Sans',sans-serif; font-weight:700; font-size:.95rem; color:#f1f5f9; margin-bottom:10px; }
.footer-desc { font-size:.82rem; color:#64748b; line-height:1.5; max-width:280px; }
.footer-links h4 { font-family:'DM Sans',sans-serif; font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:#64748b; margin-bottom:8px; }
.footer-links a { display:block; font-size:.82rem; color:#94a3b8; margin-bottom:6px; transition:color .2s; }
.footer-links a:hover { color:#e2e8f0; }
.footer-bottom { padding-top:20px; border-top:1px solid rgba(51,65,85,.12); font-size:.75rem; color:#475569; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px) {
  .pricing-full-grid { grid-template-columns:1fr; }
  .split-grid { grid-template-columns:1fr; }
  .audience-grid { grid-template-columns:1fr; }
  .proof-row, .proof-row.reverse { grid-template-columns:1fr; }
  .proof-image img { height:220px; border-radius:14px 14px 0 0; }
  .proof-text { margin-left:0 !important; margin-right:0 !important; border-radius:0 0 14px 14px; padding:24px 20px; }
  .proof-row.reverse .proof-image { order:0; }
  .proof-row.reverse .proof-text { order:0; }
}
@media (max-width:768px) {
  .nav-links { display:none; }
  .mobile-menu-btn { display:flex; }
  .hero { padding:96px 0 40px; }
  .hero-headline { font-size:2rem; }
  .hero-form { flex-direction:column; }
  .ed-headline { font-size:1.5rem; }
  .pull-quote-text { font-size:1.35rem; }
  .story-block { min-height:280px; }
  .story-block-text { font-size:1.25rem; }
  .story-block:nth-child(odd) .story-block-content,
  .story-block:nth-child(even) .story-block-content { margin:0 auto; }
  .pricing-checks { grid-template-columns:1fr; }
  .homeowner-inner { padding-left:24px; }
  .homeowner-inner h2 { font-size:1.5rem; }
  .hb-grid { grid-template-columns:1fr; }
  .signup-form { flex-direction:column; }
  .footer-grid { grid-template-columns:1fr; gap:24px; text-align:center; }
  .footer-desc { max-width:none; }
  .footer-brand { justify-content:center; }
  .footer-bottom { text-align:center; }
  .sticky-bar { gap:12px; flex-wrap:wrap; justify-content:center; }
}
@media (max-width:480px) {
  .hero-headline { font-size:1.7rem; }
  .price-amount { font-size:2.5rem; }
}
