/* ARES Technology — sample industry website mockups
 *
 * Each mock is a distinct mini-website preview for a specific local trade.
 * They share BrowserChrome (top bar) and SampleMeta (bottom card meta),
 * but each industry body has its own visual identity AND animated logo.
 *
 * Compliance:
 * - All names are clearly illustrative (location + trade), not real CRM clients.
 * - No fake testimonials, fake reviews, fake awards, fake certifications.
 * - Browser chrome carries a "Sample preview only" badge.
 * - Card meta carries "Illustrative sample, not a real client." caption.
 */

function SampleCard({ sample }) {
  const mocks = {
    plumber: PlumberMock,
    roofer: RooferMock,
    cleaning: CleaningMock,
    painter: PainterMock,
    removal: RemovalMock,
    electrician: ElectricianMock,
    landscaper: LandscaperMock,
    builder: BuilderMock,
    treesurgeon: TreeSurgeonMock,
  };
  const Mock = mocks[sample.id];

  return (
    <article
      className="lift"
      style={{
        background: 'white',
        border: '1px solid var(--line)',
        borderRadius: 18,
        overflow: 'hidden',
        display: 'flex',
        flexDirection: 'column',
        boxShadow: 'var(--shadow-card)',
      }}
    >
      <BrowserChrome sample={sample} />
      {Mock ? <Mock /> : <div style={{ padding: 16, color: 'var(--muted)' }}>—</div>}
      <SampleMeta sample={sample} />
    </article>
  );
}

/* Shared: mini browser chrome with traffic-light dots + URL + sample badge */
function BrowserChrome({ sample }) {
  return (
    <div
      style={{
        padding: '10px 12px',
        borderBottom: '1px solid var(--line)',
        background: 'white',
        display: 'flex',
        alignItems: 'center',
        gap: 8,
      }}
    >
      <span style={{ display: 'flex', gap: 5 }}>
        <i style={{ width: 8, height: 8, borderRadius: 99, background: '#FF6E5E' }} />
        <i style={{ width: 8, height: 8, borderRadius: 99, background: '#F0C24A' }} />
        <i style={{ width: 8, height: 8, borderRadius: 99, background: '#7BC68E' }} />
      </span>
      <span
        className="mono"
        style={{
          fontSize: 10.5,
          color: 'var(--muted)',
          marginLeft: 4,
          overflow: 'hidden',
          textOverflow: 'ellipsis',
          whiteSpace: 'nowrap',
        }}
      >
        preview.ares.tech/{sample.id}-sample
      </span>
      <span
        className="mono"
        style={{
          marginLeft: 'auto',
          fontSize: 9.5,
          letterSpacing: '0.06em',
          textTransform: 'uppercase',
          color: 'var(--accent-ink)',
          background: 'var(--accent-soft)',
          border: '1px solid var(--accent)',
          padding: '2px 6px',
          borderRadius: 4,
          whiteSpace: 'nowrap',
        }}
      >
        Sample preview only
      </span>
    </div>
  );
}

/* Shared: card meta footer */
function SampleMeta({ sample }) {
  return (
    <div
      style={{
        padding: '16px 18px 18px',
        borderTop: '1px solid var(--line)',
        display: 'flex',
        flexDirection: 'column',
        gap: 10,
        background: 'white',
      }}
    >
      <div style={{ display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 12 }}>
        <h3 style={{ fontSize: 17, letterSpacing: '-0.015em', fontWeight: 600 }}>{sample.title}</h3>
        <span
          className="mono"
          style={{
            fontSize: 10.5,
            color: 'var(--accent-ink)',
            background: 'var(--accent-soft)',
            padding: '3px 8px',
            borderRadius: 5,
            whiteSpace: 'nowrap',
            flexShrink: 0,
          }}
        >
          {sample.category}
        </span>
      </div>
      <p style={{ fontSize: 13.5, color: 'var(--muted)', lineHeight: 1.45 }}>{sample.copy}</p>
      <p className="mono" style={{ fontSize: 11, color: 'var(--muted)', letterSpacing: '0.02em' }}>
        Illustrative sample, not a real client.
      </p>
      <ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexWrap: 'wrap', gap: 4 }}>
        {sample.elements.map((el) => (
          <li
            key={el}
            style={{
              fontSize: 11.5,
              padding: '3px 8px',
              border: '1px solid var(--line)',
              borderRadius: 99,
              color: 'var(--ink-2)',
              background: 'var(--paper)',
              whiteSpace: 'nowrap',
            }}
          >
            {el}
          </li>
        ))}
      </ul>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   INDUSTRY LOGOS — each rendered as a tiny animated SVG
   ───────────────────────────────────────────────────────── */

function PlumberLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 7 }}>
      <span style={{
        width: 22, height: 22, borderRadius: 5, background: '#3B82F6',
        display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
      }}>
        <svg width="14" height="14" viewBox="0 0 14 14" fill="none">
          {/* Pipe wrench + water drop */}
          <path d="M2 12 L5 9 M5 9 L4 7 L7 4 L9 6 L6 9 L8 11 M5 9 L7 11" stroke="white" strokeWidth="1.4" strokeLinecap="round" strokeLinejoin="round" fill="none" />
          <path className="drop-bob" d="M10.5 1.5 C10.5 1.5 12.5 4 12.5 5.3 C12.5 6.5 11.6 7.2 10.5 7.2 C9.4 7.2 8.5 6.5 8.5 5.3 C8.5 4 10.5 1.5 10.5 1.5 Z" fill="white" />
        </svg>
      </span>
      <span style={{ color: 'white', fontSize: 12, fontWeight: 700, letterSpacing: '-0.005em' }}>
        Kingston Plumbing Co.
      </span>
    </span>
  );
}

function RooferLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 8 }}>
      <svg width="24" height="22" viewBox="0 0 24 22" fill="none">
        {/* House silhouette with shimmering roof tiles */}
        <path d="M2 11 L12 2 L22 11 L20 11 L12 3.5 L4 11 Z" fill="#0F172A" />
        <rect x="4" y="11" width="16" height="9" fill="#0F172A" />
        <rect className="tile-glint" x="6"  y="6.5" width="1.5" height="1" fill="#FCA5A5" style={{'--glint-delay':'0s'}} />
        <rect className="tile-glint" x="10" y="4.5" width="1.5" height="1" fill="#FCA5A5" style={{'--glint-delay':'0.3s'}} />
        <rect className="tile-glint" x="14" y="6"   width="1.5" height="1" fill="#FCA5A5" style={{'--glint-delay':'0.7s'}} />
        {/* Chimney */}
        <rect x="16" y="5" width="2" height="3" fill="#0F172A" />
      </svg>
      <span style={{ color: '#0F172A', fontSize: 12.5, fontWeight: 700, letterSpacing: '0.04em' }}>
        EPSOM ROOFING
      </span>
    </span>
  );
}

function CleaningLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 6, position: 'relative' }}>
      <span style={{ position: 'relative', width: 22, height: 22 }}>
        {/* Animated bubbles */}
        <span className="bubble" style={{ left: -4, bottom: 18, width: 4, height: 4, '--bubble-delay': '0s' }} />
        <span className="bubble" style={{ left: 6, bottom: 22, width: 3, height: 3, '--bubble-delay': '0.6s' }} />
        <span className="bubble" style={{ left: -2, bottom: 14, width: 2.5, height: 2.5, '--bubble-delay': '1.2s' }} />
        <svg width="22" height="22" viewBox="0 0 22 22">
          <circle cx="11" cy="11" r="10" fill="#10B981" />
          {/* Sparkle */}
          <g className="spin-slow" style={{ transformOrigin: '11px 11px' }}>
            <path d="M11 4 L11.8 9.5 L17 11 L11.8 12.5 L11 18 L10.2 12.5 L5 11 L10.2 9.5 Z" fill="white" />
          </g>
        </svg>
      </span>
      <span style={{ color: '#064E3B', fontSize: 12.5, fontWeight: 700, letterSpacing: '-0.005em' }}>
        SurbitonClean
      </span>
    </span>
  );
}

function PainterLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 7 }}>
      <svg width="20" height="22" viewBox="0 0 20 22" fill="none">
        {/* Paint brush + animated stroke */}
        <rect x="9" y="1" width="3" height="7" fill="#A8997F" rx="0.4" />
        <path d="M7 8 L13 8 L14 12 L6 12 Z" fill="#1F1611" />
        <rect x="9" y="12" width="3" height="2" fill="#1F1611" />
        <path className="brush-stroke" d="M10.5 14 Q 8 17 6 18 Q 10 19 12 18 Q 13 19 14 18 Q 11 20 10.5 14" stroke="#C2542A" strokeWidth="1.4" fill="none" strokeLinecap="round" />
      </svg>
      <span className="serif" style={{
        color: '#1F1611', fontSize: 17,
        letterSpacing: '-0.01em', fontStyle: 'italic',
      }}>
        Sutton &amp; Co.
      </span>
    </span>
  );
}

function RemovalLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 7 }}>
      <svg width="32" height="20" viewBox="0 0 32 20" fill="none" className="truck-drive">
        {/* Box truck — wheels spin */}
        <rect x="0" y="4" width="18" height="11" fill="#1F2937" rx="1" />
        <rect x="18" y="7" width="9" height="8" fill="#1F2937" rx="1" />
        <rect x="20" y="9" width="5" height="3" fill="#F59E0B" rx="0.5" />
        {/* Speed lines */}
        <path d="M0 4 L-3 4 M0 7 L-4 7 M0 10 L-2 10" stroke="#1F2937" strokeWidth="0.8" opacity="0.4" />
        {/* Wheels */}
        <g className="wheel-spin" style={{ transformOrigin: '5.5px 16px' }}>
          <circle cx="5.5" cy="16" r="3" fill="#0F172A" />
          <rect x="5.2" y="13.5" width="0.6" height="5" fill="#F59E0B" />
          <rect x="3" y="15.7" width="5" height="0.6" fill="#F59E0B" />
        </g>
        <g className="wheel-spin" style={{ transformOrigin: '22.5px 16px' }}>
          <circle cx="22.5" cy="16" r="3" fill="#0F172A" />
          <rect x="22.2" y="13.5" width="0.6" height="5" fill="#F59E0B" />
          <rect x="20" y="15.7" width="5" height="0.6" fill="#F59E0B" />
        </g>
      </svg>
      <span style={{
        color: '#1F2937', fontSize: 12, fontWeight: 700,
        letterSpacing: '-0.005em',
      }}>
        WIMBLEDON MOVES
      </span>
    </span>
  );
}

function ElectricianLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 7 }}>
      <span style={{
        width: 22, height: 22, borderRadius: 5, background: '#0F172A',
        display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
        position: 'relative', overflow: 'hidden',
      }}>
        {/* Yellow lightning bolt with pulse */}
        <svg width="12" height="14" viewBox="0 0 12 14" fill="none">
          <path className="pulse-cta" d="M7 0 L1 8 L5 8 L3 14 L11 5 L7 5 Z"
            fill="#FACC15" stroke="#EAB308" strokeWidth="0.5" strokeLinejoin="round" />
        </svg>
      </span>
      <span style={{
        color: '#0F172A', fontSize: 12, fontWeight: 700,
        letterSpacing: '0.02em',
      }}>
        VOLT &amp; CO.
      </span>
    </span>
  );
}

function LandscaperLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 7 }}>
      <svg width="26" height="22" viewBox="0 0 26 22" fill="none">
        {/* Leaf cluster — gently sways */}
        <g className="drop-bob" style={{ transformOrigin: '13px 18px' }}>
          {/* Stem */}
          <path d="M13 21 L13 8" stroke="#3E5D2D" strokeWidth="1.4" strokeLinecap="round" />
          {/* Left leaf */}
          <path d="M13 12 Q 7 12 5 8 Q 9 7 13 10 Z" fill="#5B8A3C" />
          {/* Right leaf */}
          <path d="M13 10 Q 19 10 21 6 Q 17 5 13 8 Z" fill="#7AAF52" />
          {/* Top leaf */}
          <path d="M13 8 Q 11 4 13 1 Q 15 4 13 8 Z" fill="#A3C76B" />
        </g>
      </svg>
      <span style={{
        color: '#1A2E14', fontSize: 12.5, fontWeight: 700,
        letterSpacing: '-0.005em', fontFamily: '"Geist", sans-serif',
      }}>
        Guildford Gardens
      </span>
    </span>
  );
}

function BuilderLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 7 }}>
      <span style={{
        width: 22, height: 22, borderRadius: 5, background: '#FACC15',
        display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
        position: 'relative', overflow: 'hidden',
      }}>
        {/* Claw hammer — T-shape: head across the top, handle down the middle */}
        <svg width="18" height="18" viewBox="0 0 24 24" fill="none"
             className="drop-bob" style={{ transformOrigin: '12px 20px' }}>
          {/* HEAD — horizontal block across the top */}
          {/* Striking face (right side) */}
          <rect x="13" y="3" width="6" height="6" rx="0.6"
                fill="#3A3D44" stroke="#1F2329" strokeWidth="0.4" />
          {/* Neck connecting head to handle */}
          <rect x="10" y="4" width="4" height="4" fill="#3A3D44" />
          {/* Claw (left side) — curved upward, with V notch */}
          <path d="M10 4
                   L 6 3
                   Q 3 4 4 7
                   L 6 8
                   L 8 7
                   Q 7 5.5 9 5
                   L 10 8 Z"
                fill="#3A3D44" stroke="#1F2329" strokeWidth="0.4" strokeLinejoin="round" />
          {/* V split inside the claw */}
          <path d="M5.5 5 Q 6.5 6 7.5 6.4"
                stroke="#FACC15" strokeWidth="0.9" fill="none" strokeLinecap="round" />
          {/* Metallic glint on striking face */}
          <rect className="tile-glint" x="14" y="4.5" width="3.5" height="0.6"
                rx="0.3" fill="#9CA3AF" />
          {/* HANDLE — wooden brown, vertical down from head */}
          <rect x="11" y="8" width="2" height="13" rx="0.5" fill="#8B5A2B" />
          {/* Handle grain lines */}
          <rect x="11" y="11" width="2" height="0.4" fill="#5C3A1E" />
          <rect x="11" y="15" width="2" height="0.4" fill="#5C3A1E" />
          <rect x="11" y="19" width="2" height="0.4" fill="#5C3A1E" />
          {/* End cap */}
          <rect x="10.7" y="20.5" width="2.6" height="1" rx="0.4" fill="#5C3A1E" />
        </svg>
      </span>
      <span style={{
        color: '#1F2937', fontSize: 12, fontWeight: 700,
        letterSpacing: '0.04em',
      }}>
        WOKING BUILDERS
      </span>
    </span>
  );
}

function TreeSurgeonLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 7 }}>
      <svg width="22" height="22" viewBox="0 0 22 22" fill="none">
        {/* Tree silhouette — canopy sways */}
        <rect x="9.5" y="14" width="3" height="7" fill="#5C3A1E" />
        <g className="drop-bob" style={{ transformOrigin: '11px 14px' }}>
          <circle cx="11" cy="9" r="6" fill="#2F5D2E" />
          <circle cx="7"  cy="12" r="4" fill="#3E7C3D" />
          <circle cx="15" cy="12" r="4" fill="#3E7C3D" />
          <circle cx="11" cy="6"  r="3.5" fill="#5BA15A" />
        </g>
      </svg>
      <span style={{
        color: '#1F2C1B', fontSize: 12, fontWeight: 700,
        letterSpacing: '-0.005em',
      }}>
        RICHMOND TREE CARE
      </span>
    </span>
  );
}

/* ─────────────────────────────────────────────────────────
   1. Plumber — bold dark navy with emergency red CTA
   ───────────────────────────────────────────────────────── */
function PlumberMock() {
  return (
    <div style={{ background: '#0B1626', display: 'flex', flexDirection: 'column', position: 'relative' }}>
      <div style={{
        padding: '10px 14px', display: 'flex', justifyContent: 'space-between', alignItems: 'center',
        borderBottom: '1px solid rgba(255,255,255,0.06)',
      }}>
        <PlumberLogo />
        <span className="mono" style={{
          display: 'inline-flex', alignItems: 'center', gap: 5,
          fontSize: 9.5, color: '#FCA5A5', background: 'rgba(239,68,68,0.14)',
          padding: '3px 7px', borderRadius: 4, fontWeight: 600, letterSpacing: '0.04em',
        }}>
          <span className="pulse-dot" style={{ width: 5, height: 5, borderRadius: 99, background: '#EF4444', display: 'inline-block' }} />
          24/7
        </span>
      </div>
      <div style={{ position: 'relative', padding: '14px 14px 12px', display: 'flex', flexDirection: 'column', gap: 8 }}>
        <div className="sweep" style={{ '--sweep-delay': '2s' }} />
        <span className="mono" style={{
          color: '#7DD3FC', fontSize: 9, letterSpacing: '0.1em',
          textTransform: 'uppercase', fontWeight: 600,
        }}>
          Burst pipes · Leaks · Boilers
        </span>
        <span style={{
          color: 'white', fontSize: 18, lineHeight: 1.1,
          letterSpacing: '-0.02em', fontWeight: 700,
        }}>
          Burst pipe?<br />We’re 20 mins away.
        </span>
        <div style={{ display: 'flex', gap: 6, marginTop: 2, flexWrap: 'wrap' }}>
          <span className="pulse-cta mono" style={{
            background: '#EF4444', color: 'white', padding: '7px 12px',
            borderRadius: 6, fontSize: 10.5, fontWeight: 700,
            display: 'inline-flex', alignItems: 'center', gap: 5, whiteSpace: 'nowrap',
          }}>
            <Icon.phone /> Call now
          </span>
          <span style={{
            border: '1px solid rgba(255,255,255,0.18)', color: 'rgba(255,255,255,0.9)',
            padding: '6px 12px', borderRadius: 6, fontSize: 10.5,
            display: 'inline-flex', alignItems: 'center', whiteSpace: 'nowrap',
          }}>
            Get a quote
          </span>
        </div>
      </div>
      <div style={{
        background: 'rgba(255,255,255,0.03)', padding: '10px 14px',
        display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: 4,
      }}>
        {[
          { t: 'Boilers',   d: 'Service · fix' },
          { t: 'Bathrooms', d: 'Fit · refit' },
          { t: 'Leaks',     d: 'Find · fix' },
          { t: 'Call-outs', d: 'Same day' },
        ].map((s, i) => (
          <div key={s.t} className="float-y" style={{
            background: 'rgba(255,255,255,0.04)', borderRadius: 5,
            padding: '6px', display: 'flex', flexDirection: 'column', gap: 2,
            '--float-dur': '5s', '--float-delay': (i * 0.4) + 's',
          }}>
            <span style={{ width: 4, height: 4, borderRadius: 99, background: '#3B82F6' }} />
            <span style={{ color: 'white', fontSize: 10, fontWeight: 600 }}>{s.t}</span>
            <span style={{ color: '#64748B', fontSize: 8.5 }}>{s.d}</span>
          </div>
        ))}
      </div>
      <div style={{ padding: '8px 14px', textAlign: 'center' }}>
        <span className="mono" style={{ color: '#94A3B8', fontSize: 9 }}>
          Kingston · Surbiton · New Malden · Wimbledon
        </span>
      </div>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   2. Roofer — sturdy, masculine, dark slate
   ───────────────────────────────────────────────────────── */
function RooferMock() {
  return (
    <div style={{ background: '#F8FAFC', display: 'flex', flexDirection: 'column' }}>
      <div style={{
        padding: '12px 14px', display: 'flex', justifyContent: 'space-between',
        alignItems: 'center', borderBottom: '2px solid #0F172A',
      }}>
        <RooferLogo />
        <span className="mono pulse-cta" style={{
          fontSize: 10, color: 'white', fontWeight: 600,
          padding: '5px 10px', background: '#0F172A', borderRadius: 0,
        }}>
          FREE QUOTE
        </span>
      </div>
      <div style={{ position: 'relative', height: 112, overflow: 'hidden' }}>
        <div className="shimmer" style={{ position: 'absolute', inset: 0, '--shimmer-base': '#475569' }} />
        <div className="sweep" style={{ '--sweep-delay': '1s' }} />
        <div style={{
          position: 'absolute', inset: 0,
          background: 'linear-gradient(160deg, rgba(15,23,42,0.92) 0%, rgba(15,23,42,0.45) 100%)',
        }} />
        <div style={{
          position: 'absolute', inset: 0, padding: '14px',
          display: 'flex', flexDirection: 'column', justifyContent: 'flex-end', gap: 4,
        }}>
          <span className="mono" style={{
            color: 'rgba(255,255,255,0.6)', fontSize: 9,
            letterSpacing: '0.12em', textTransform: 'uppercase',
          }}>
            Family-run · Epsom
          </span>
          <span style={{
            color: 'white', fontSize: 18, lineHeight: 1.05,
            letterSpacing: '-0.02em', fontWeight: 700,
          }}>
            Roofing done<br />properly.
          </span>
        </div>
      </div>
      <div style={{
        padding: '12px 14px', display: 'grid',
        gridTemplateColumns: 'repeat(3, 1fr)', gap: 8,
      }}>
        {[
          { t: 'Repairs',    d: 'Tile · slate · felt' },
          { t: 'Re-roofing', d: 'Full strip & re-tile' },
          { t: 'Guttering',  d: 'Clear · fix · fit' },
        ].map((s, i) => (
          <div key={s.t} className="float-y" style={{
            borderTop: '2px solid #0F172A', paddingTop: 6,
            '--float-dur': '6s', '--float-delay': (i * 0.5) + 's',
          }}>
            <div style={{ color: '#0F172A', fontSize: 11, fontWeight: 700 }}>{s.t}</div>
            <div style={{ color: '#64748B', fontSize: 9, marginTop: 1 }}>{s.d}</div>
          </div>
        ))}
      </div>
      <div style={{
        background: '#0F172A', padding: '10px 14px',
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
      }}>
        <span style={{ color: 'white', fontSize: 11, fontWeight: 500 }}>Free roof inspection</span>
        <span className="mono" style={{
          display: 'inline-flex', alignItems: 'center', gap: 5,
          fontSize: 10, color: 'white', fontWeight: 600,
        }}>
          <Icon.phone /> 020 ···
        </span>
      </div>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   3. Cleaning company — bright, airy, soft mint
   ───────────────────────────────────────────────────────── */
function CleaningMock() {
  return (
    <div style={{ background: '#F0FDF4', display: 'flex', flexDirection: 'column', position: 'relative' }}>
      <div style={{
        padding: '11px 14px', display: 'flex',
        justifyContent: 'space-between', alignItems: 'center',
      }}>
        <CleaningLogo />
        <span className="pulse-cta mono" style={{
          background: '#10B981', color: 'white',
          padding: '5px 11px', borderRadius: 99, fontSize: 10, fontWeight: 600,
        }}>
          Book a clean
        </span>
      </div>
      <div style={{ padding: '6px 14px 14px', position: 'relative' }}>
        <span className="mono" style={{
          color: '#10B981', fontSize: 9,
          letterSpacing: '0.12em', textTransform: 'uppercase', fontWeight: 600,
        }}>
          Domestic · Commercial · Surbiton
        </span>
        <div style={{
          color: '#064E3B', fontSize: 17, lineHeight: 1.1,
          letterSpacing: '-0.02em', fontWeight: 600, marginTop: 6,
        }}>
          Sparkling clean homes &amp; offices, on schedule.
        </div>
      </div>
      <div style={{
        padding: '0 14px 10px', display: 'grid',
        gridTemplateColumns: 'repeat(4, 1fr)', gap: 6,
      }}>
        {[
          { t: 'Homes',   a: '#10B981' },
          { t: 'Tenancy', a: '#0EA5E9' },
          { t: 'Offices', a: '#8B5CF6' },
          { t: 'Deep',    a: '#F59E0B' },
        ].map((s, i) => (
          <div key={s.t} className="float-y lift" style={{
            background: 'white', borderRadius: 7,
            padding: '8px 4px', textAlign: 'center',
            border: '1px solid #D1FAE5',
            display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 4,
            '--float-dur': '5s', '--float-delay': (i * 0.35) + 's',
          }}>
            <span className="badge-breathe" style={{ width: 14, height: 14, borderRadius: 3, background: s.a, display: 'inline-block' }} />
            <span style={{ color: '#064E3B', fontSize: 9.5, fontWeight: 500 }}>{s.t}</span>
          </div>
        ))}
      </div>
      <div style={{
        padding: '0 14px 14px', display: 'grid',
        gridTemplateColumns: 'repeat(3, 1fr)', gap: 6,
      }}>
        {[
          { p: 'Weekly',  n: 'from £15/hr' },
          { p: 'Monthly', n: 'from £18/hr', featured: true },
          { p: 'One-off', n: 'from £22/hr' },
        ].map((s) => (
          <div key={s.p} style={{
            background: s.featured ? '#064E3B' : 'white',
            border: s.featured ? '1px solid #064E3B' : '1px solid #D1FAE5',
            borderRadius: 7, padding: '6px 4px',
            display: 'flex', flexDirection: 'column', gap: 1, alignItems: 'center',
          }}>
            <div style={{ color: s.featured ? 'white' : '#064E3B', fontSize: 10, fontWeight: 600 }}>{s.p}</div>
            <div className="mono" style={{ color: s.featured ? '#A7F3D0' : '#10B981', fontSize: 9 }}>{s.n}</div>
          </div>
        ))}
      </div>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   4. Painter & decorator — elegant editorial
   ───────────────────────────────────────────────────────── */
function PainterMock() {
  const swatches = [
    { name: 'Stone',    hex: '#D6CFC0' },
    { name: 'Clay',     hex: '#C2542A' },
    { name: 'Ink',      hex: '#1F1611' },
    { name: 'Sage',     hex: '#7E9579' },
    { name: 'Cream',    hex: '#F4EBDE' },
  ];
  return (
    <div style={{ background: '#FAF7F2', display: 'flex', flexDirection: 'column' }}>
      {/* Top bar */}
      <div style={{
        padding: '12px 14px', display: 'flex',
        justifyContent: 'space-between', alignItems: 'center',
        borderBottom: '1px solid #E7DDD0',
      }}>
        <PainterLogo />
        <span style={{ display: 'flex', gap: 12, fontSize: 9.5, color: '#6B5E50' }}>
          <span>Interior</span>
          <span>Exterior</span>
          <span style={{ color: '#1F1611', fontWeight: 600, borderBottom: '1.5px solid #1F1611', paddingBottom: 1 }}>Quote</span>
        </span>
      </div>

      {/* Editorial hero — coloured swatch panel + serif headline */}
      <div style={{ position: 'relative', display: 'grid', gridTemplateColumns: '1fr 1fr', minHeight: 130 }}>
        {/* Left: stacked colour blocks that gently breathe */}
        <div style={{ position: 'relative', overflow: 'hidden', background: '#1F1611' }}>
          <div className="badge-breathe" style={{
            position: 'absolute', left: '12%', top: '12%',
            width: '70%', height: '70%', borderRadius: 4,
            background: '#C2542A', boxShadow: '0 8px 20px -8px rgba(31,22,17,0.4)',
          }} />
          <div className="float-y" style={{
            position: 'absolute', right: '10%', top: '8%',
            width: '38%', height: '52%', borderRadius: 4,
            background: '#F4EBDE',
            '--float-dur': '6s', '--float-delay': '0.4s',
          }} />
          <div className="float-y" style={{
            position: 'absolute', left: '8%', bottom: '10%',
            width: '32%', height: '38%', borderRadius: 4,
            background: '#7E9579',
            '--float-dur': '7s', '--float-delay': '1.2s',
          }} />
          {/* Animated paint brush stroke arcing diagonally */}
          <svg viewBox="0 0 100 100" preserveAspectRatio="none" style={{
            position: 'absolute', inset: 0, width: '100%', height: '100%',
            pointerEvents: 'none',
          }}>
            <path
              className="brush-stroke"
              d="M 5 80 Q 35 55 55 60 Q 80 65 95 30"
              stroke="rgba(244,235,222,0.5)" strokeWidth="2.5"
              fill="none" strokeLinecap="round"
              style={{ strokeDasharray: 200, strokeDashoffset: 200, animationDuration: '5s' }}
            />
          </svg>
        </div>

        {/* Right: headline */}
        <div style={{
          padding: '16px 14px', display: 'flex', flexDirection: 'column',
          justifyContent: 'center', gap: 6,
        }}>
          <span className="mono" style={{
            fontSize: 9, letterSpacing: '0.12em',
            textTransform: 'uppercase', color: '#A8997F',
          }}>
            Est. Sutton · since 2019
          </span>
          <span className="serif" style={{
            fontSize: 19, lineHeight: 1.05,
            color: '#1F1611', fontStyle: 'italic',
          }}>
            Brushwork<br />done <span style={{ borderBottom: '2px solid #C2542A' }}>properly</span>.
          </span>
          <span style={{ fontSize: 10.5, color: '#6B5E50', marginTop: 2 }}>
            Interior · Exterior · Wallpaper · Rentals
          </span>
        </div>
      </div>

      {/* Colour swatch strip */}
      <div style={{
        padding: '12px 14px 6px',
        borderTop: '1px solid #E7DDD0',
      }}>
        <span className="mono" style={{
          fontSize: 9, color: '#A8997F',
          letterSpacing: '0.08em', textTransform: 'uppercase',
          display: 'block', marginBottom: 6,
        }}>
          Featured palette · Cottage Tones
        </span>
        <div style={{ display: 'flex', gap: 5 }}>
          {swatches.map((s, i) => (
            <div key={s.name} className="float-y lift" style={{
              flex: 1, display: 'flex', flexDirection: 'column', gap: 4,
              '--float-dur': '5s', '--float-delay': (i * 0.25) + 's',
            }}>
              <div style={{
                aspectRatio: '1.4 / 1',
                background: s.hex,
                borderRadius: 4,
                border: '1px solid rgba(31,22,17,0.08)',
              }} />
              <span className="mono" style={{
                fontSize: 8, color: '#6B5E50',
                letterSpacing: '0.04em', textAlign: 'center',
                textTransform: 'uppercase',
              }}>
                {s.name}
              </span>
            </div>
          ))}
        </div>
      </div>

      {/* Before / after */}
      <div style={{ padding: '8px 14px 12px' }}>
        <div style={{
          display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 4,
          position: 'relative',
        }}>
          <div style={{ position: 'relative' }}>
            <div className="shimmer" style={{
              aspectRatio: '16 / 9',
              borderRadius: 4,
              '--shimmer-base': '#D9C9B5',
            }} />
            <span className="mono" style={{
              position: 'absolute', top: 4, left: 4,
              fontSize: 8, padding: '2px 5px',
              background: 'rgba(255,255,255,0.92)',
              color: '#6B5E50', borderRadius: 3,
              letterSpacing: '0.08em', textTransform: 'uppercase',
            }}>Before</span>
          </div>
          <div style={{ position: 'relative' }}>
            <div className="shimmer" style={{
              aspectRatio: '16 / 9',
              borderRadius: 4,
              '--shimmer-base': '#C2542A',
              animationDelay: '0.4s',
            }} />
            <span className="mono" style={{
              position: 'absolute', top: 4, left: 4,
              fontSize: 8, padding: '2px 5px',
              background: '#1F1611', color: '#F4EBDE',
              borderRadius: 3,
              letterSpacing: '0.08em', textTransform: 'uppercase',
            }}>After</span>
          </div>
        </div>
      </div>

      {/* CTA bar */}
      <div style={{
        background: '#1F1611', padding: '10px 14px',
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
        position: 'relative', overflow: 'hidden',
      }}>
        <div className="sweep" style={{ '--sweep-delay': '3s' }} />
        <span style={{ color: 'white', fontSize: 11 }}>Free in-home quote · 24h reply</span>
        <span className="pulse-cta mono" style={{
          background: '#F4EBDE', color: '#1F1611',
          padding: '5px 11px', borderRadius: 99,
          fontSize: 10, fontWeight: 700, whiteSpace: 'nowrap',
        }}>
          Get a quote →
        </span>
      </div>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   5. Removal company — fast, practical, amber strip
   ───────────────────────────────────────────────────────── */
function RemovalMock() {
  return (
    <div style={{ background: 'white', display: 'flex', flexDirection: 'column' }}>
      <div style={{
        padding: '6px 14px', background: '#F59E0B',
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
      }}>
        <span className="mono" style={{
          fontSize: 9.5, color: '#1F2937', fontWeight: 600,
          display: 'inline-flex', alignItems: 'center', gap: 5,
        }}>
          <Icon.phone /> 020 ···
          <span style={{ margin: '0 4px', opacity: 0.5 }}>·</span>
          WhatsApp
        </span>
        <span className="mono" style={{ fontSize: 9.5, color: '#1F2937', fontWeight: 600 }}>
          Wimbledon based
        </span>
      </div>
      <div style={{
        padding: '10px 14px', display: 'flex',
        justifyContent: 'space-between', alignItems: 'center',
        borderBottom: '1px solid #F1F5F9',
      }}>
        <RemovalLogo />
        <span style={{ fontSize: 9.5, color: '#6B7280' }}>Quote · Book · Move</span>
      </div>
      <div style={{ padding: '14px', display: 'flex', flexDirection: 'column', gap: 8 }}>
        <span style={{
          color: '#1F2937', fontSize: 17, lineHeight: 1.08,
          letterSpacing: '-0.02em', fontWeight: 700,
        }}>
          Move in 24–48 hrs.<br />Local. Fair price.
        </span>
        <div style={{ display: 'flex', gap: 4 }}>
          <div style={{
            flex: 1, border: '1.5px solid #E5E7EB', borderRadius: 6,
            padding: '4px 9px', display: 'flex', flexDirection: 'column',
          }}>
            <span className="mono" style={{
              fontSize: 8, color: '#9CA3AF',
              letterSpacing: '0.08em', textTransform: 'uppercase',
            }}>From</span>
            <span style={{ fontSize: 11, color: '#6B7280' }}>SW19</span>
          </div>
          <div style={{
            flex: 1, border: '1.5px solid #E5E7EB', borderRadius: 6,
            padding: '4px 9px', display: 'flex', flexDirection: 'column',
          }}>
            <span className="mono" style={{
              fontSize: 8, color: '#9CA3AF',
              letterSpacing: '0.08em', textTransform: 'uppercase',
            }}>To</span>
            <span style={{ fontSize: 11, color: '#6B7280' }}>SW15</span>
          </div>
          <span className="pulse-cta" style={{
            background: '#1F2937', color: '#F59E0B',
            padding: '4px 11px', borderRadius: 6,
            fontSize: 11, fontWeight: 700,
            display: 'inline-flex', alignItems: 'center', whiteSpace: 'nowrap',
          }}>
            Quote →
          </span>
        </div>
      </div>
      <div style={{
        padding: '0 14px 14px', display: 'grid',
        gridTemplateColumns: 'repeat(3, 1fr)', gap: 6,
      }}>
        {[
          { t: 'Man & van',   d: '£35/hr' },
          { t: 'House moves', d: '2–4 movers' },
          { t: 'Student',     d: 'Flat rate' },
        ].map((s, i) => (
          <div key={s.t} className="float-y" style={{
            border: '1px solid #E5E7EB', borderRadius: 6, padding: '6px 9px',
            '--float-dur': '5s', '--float-delay': (i * 0.4) + 's',
          }}>
            <div style={{ fontSize: 10.5, color: '#1F2937', fontWeight: 600 }}>{s.t}</div>
            <div className="mono" style={{ fontSize: 9, color: '#F59E0B', marginTop: 2 }}>{s.d}</div>
          </div>
        ))}
      </div>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   6. Electrician — dark navy with electric yellow accents
   ───────────────────────────────────────────────────────── */
function ElectricianMock() {
  return (
    <div style={{ background: '#FAFAF7', display: 'flex', flexDirection: 'column', position: 'relative' }}>
      {/* Top bar — dark with thin yellow underline */}
      <div style={{
        padding: '10px 14px', display: 'flex',
        justifyContent: 'space-between', alignItems: 'center',
        background: '#0F172A', borderBottom: '2px solid #FACC15',
      }}>
        <span style={{ display: 'inline-flex', alignItems: 'center', gap: 7 }}>
          <span style={{
            width: 22, height: 22, borderRadius: 5, background: '#FACC15',
            display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
          }}>
            <svg width="12" height="14" viewBox="0 0 12 14" fill="none">
              <path className="pulse-cta" d="M7 0 L1 8 L5 8 L3 14 L11 5 L7 5 Z"
                fill="#0F172A" />
            </svg>
          </span>
          <span style={{ color: 'white', fontSize: 12, fontWeight: 700, letterSpacing: '0.02em' }}>
            VOLT &amp; CO.
          </span>
        </span>
        <span className="mono" style={{
          display: 'inline-flex', alignItems: 'center', gap: 5,
          fontSize: 9.5, color: '#FACC15', background: 'rgba(250,204,21,0.12)',
          padding: '3px 7px', borderRadius: 4, fontWeight: 600, letterSpacing: '0.04em',
        }}>
          <span className="pulse-dot" style={{ width: 5, height: 5, borderRadius: 99, background: '#FACC15', display: 'inline-block' }} />
          NICEIC
        </span>
      </div>

      {/* Hero panel */}
      <div style={{ position: 'relative', padding: '14px 14px 12px', display: 'flex', flexDirection: 'column', gap: 8 }}>
        <div className="sweep" style={{ '--sweep-delay': '2s' }} />
        <span className="mono" style={{
          color: '#475569', fontSize: 9, letterSpacing: '0.1em',
          textTransform: 'uppercase', fontWeight: 600,
        }}>
          Domestic · Commercial · Croydon
        </span>
        <span style={{
          color: '#0F172A', fontSize: 18, lineHeight: 1.1,
          letterSpacing: '-0.02em', fontWeight: 700,
        }}>
          Power back on.<br />Same day.
        </span>
        <div style={{ display: 'flex', gap: 6, marginTop: 2, flexWrap: 'wrap' }}>
          <span className="pulse-cta mono" style={{
            background: '#0F172A', color: '#FACC15', padding: '7px 12px',
            borderRadius: 6, fontSize: 10.5, fontWeight: 700,
            display: 'inline-flex', alignItems: 'center', gap: 5, whiteSpace: 'nowrap',
          }}>
            <Icon.phone /> Call electrician
          </span>
          <span style={{
            border: '1px solid #0F172A', color: '#0F172A',
            padding: '6px 12px', borderRadius: 6, fontSize: 10.5,
            display: 'inline-flex', alignItems: 'center', whiteSpace: 'nowrap',
          }}>
            Book a survey
          </span>
        </div>
      </div>

      {/* Services with circuit-styled top border */}
      <div style={{
        padding: '10px 14px',
        background: 'white',
        display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: 4,
        borderTop: '1px dashed #FACC15',
      }}>
        {[
          { t: 'Rewires',    d: 'Full house' },
          { t: 'Fuse box',   d: 'Trip · upgrade' },
          { t: 'Lighting',   d: 'Indoor · outdoor' },
          { t: 'EV chargers',d: 'Home install' },
        ].map((s, i) => (
          <div key={s.t} className="float-y" style={{
            background: '#FAFAF7', borderRadius: 5,
            padding: '6px', display: 'flex', flexDirection: 'column', gap: 2,
            border: '1px solid #E5E7EB',
            '--float-dur': '5s', '--float-delay': (i * 0.4) + 's',
          }}>
            <span style={{ width: 4, height: 4, borderRadius: 99, background: '#FACC15' }} />
            <span style={{ color: '#0F172A', fontSize: 10, fontWeight: 600 }}>{s.t}</span>
            <span style={{ color: '#64748B', fontSize: 8.5 }}>{s.d}</span>
          </div>
        ))}
      </div>

      {/* Trust strip with yellow accent */}
      <div style={{
        background: '#0F172A', padding: '9px 14px',
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
      }}>
        <span className="mono" style={{ color: '#94A3B8', fontSize: 9, letterSpacing: '0.06em' }}>
          24-hour emergency call-out
        </span>
        <span className="mono" style={{
          display: 'inline-flex', alignItems: 'center', gap: 5,
          fontSize: 10, color: '#FACC15', fontWeight: 600,
        }}>
          <Icon.phone /> 020 ···
        </span>
      </div>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   7. Landscaper / gardener — natural, earthy greens
   ───────────────────────────────────────────────────────── */
function LandscaperMock() {
  return (
    <div style={{ background: '#F4F7EF', display: 'flex', flexDirection: 'column' }}>
      {/* Top bar */}
      <div style={{
        padding: '11px 14px', display: 'flex',
        justifyContent: 'space-between', alignItems: 'center',
        background: 'white', borderBottom: '1px solid #DCE5CC',
      }}>
        <LandscaperLogo />
        <span style={{ display: 'flex', gap: 12, fontSize: 9.5, color: '#4D6438' }}>
          <span>Design</span>
          <span>Maintain</span>
          <span style={{ color: '#1A2E14', fontWeight: 600, borderBottom: '1.5px solid #5B8A3C', paddingBottom: 1 }}>
            Quote
          </span>
        </span>
      </div>

      {/* Editorial hero */}
      <div style={{ position: 'relative', display: 'grid', gridTemplateColumns: '1.1fr 0.9fr', minHeight: 120 }}>
        {/* Left: animated leafy backdrop */}
        <div style={{
          position: 'relative', overflow: 'hidden',
          background: 'linear-gradient(160deg, #5B8A3C 0%, #3E5D2D 100%)',
        }}>
          <div className="sweep" style={{ '--sweep-delay': '1.5s' }} />
          {/* Floating leaves */}
          {[
            { top: '10%', left: '12%', size: 16, rot: -20, dur: '7s', delay: '0s' },
            { top: '38%', left: '62%', size: 22, rot: 25,  dur: '8s', delay: '1s' },
            { top: '65%', left: '20%', size: 14, rot: 40,  dur: '6s', delay: '2s' },
            { top: '58%', left: '72%', size: 12, rot: -10, dur: '9s', delay: '0.5s' },
          ].map((leaf, i) => (
            <svg
              key={i}
              className="float-y"
              width={leaf.size}
              height={leaf.size}
              viewBox="0 0 16 16"
              style={{
                position: 'absolute',
                top: leaf.top, left: leaf.left,
                transform: 'rotate(' + leaf.rot + 'deg)',
                opacity: 0.7,
                '--float-dur': leaf.dur, '--float-delay': leaf.delay,
              }}
            >
              <path d="M8 1 Q 3 3 3 8 Q 3 13 8 15 Q 13 13 13 8 Q 13 3 8 1 Z M8 1 Q 8 8 8 15"
                fill="#A3C76B" stroke="#7AAF52" strokeWidth="0.6" />
            </svg>
          ))}
        </div>

        {/* Right: headline */}
        <div style={{
          padding: '16px 14px', display: 'flex', flexDirection: 'column',
          justifyContent: 'center', gap: 6,
        }}>
          <span className="mono" style={{
            fontSize: 9, letterSpacing: '0.12em',
            textTransform: 'uppercase', color: '#7AAF52', fontWeight: 600,
          }}>
            Guildford · est. 2014
          </span>
          <span style={{
            fontSize: 17, lineHeight: 1.05,
            color: '#1A2E14', fontWeight: 700, letterSpacing: '-0.02em',
          }}>
            Gardens that<br />grow with you.
          </span>
          <span style={{ fontSize: 10.5, color: '#4D6438' }}>
            Design · Build · Maintain
          </span>
        </div>
      </div>

      {/* Service tiles */}
      <div style={{
        padding: '12px 14px 8px',
        display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: 5,
      }}>
        {[
          { t: 'Lawns',      i: '🌱' },
          { t: 'Hedges',     i: '🌿' },
          { t: 'Patios',     i: '◼' },
          { t: 'Planting',   i: '🌸' },
        ].map((s, i) => (
          <div key={s.t} className="float-y lift" style={{
            background: 'white', borderRadius: 7,
            border: '1px solid #DCE5CC',
            padding: '8px 4px',
            display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 2,
            '--float-dur': '5s', '--float-delay': (i * 0.3) + 's',
          }}>
            <span style={{ fontSize: 12, lineHeight: 1 }}>{s.i}</span>
            <span style={{ color: '#1A2E14', fontSize: 9.5, fontWeight: 500 }}>{s.t}</span>
          </div>
        ))}
      </div>

      {/* Seasonal pricing strip */}
      <div style={{
        padding: '0 14px 12px',
        display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 5,
      }}>
        {[
          { p: 'One-off', n: 'from £80' },
          { p: 'Monthly', n: 'from £55', featured: true },
          { p: 'Seasonal',n: 'from £140' },
        ].map((s) => (
          <div key={s.p} style={{
            background: s.featured ? '#3E5D2D' : 'white',
            border: s.featured ? '1px solid #3E5D2D' : '1px solid #DCE5CC',
            borderRadius: 7, padding: '6px 4px',
            display: 'flex', flexDirection: 'column', gap: 1, alignItems: 'center',
          }}>
            <div style={{ color: s.featured ? 'white' : '#1A2E14', fontSize: 10, fontWeight: 600 }}>{s.p}</div>
            <div className="mono" style={{ color: s.featured ? '#A3C76B' : '#5B8A3C', fontSize: 9 }}>{s.n}</div>
          </div>
        ))}
      </div>

      {/* CTA */}
      <div style={{
        background: '#1A2E14', padding: '10px 14px',
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
      }}>
        <span style={{ color: 'white', fontSize: 11 }}>Free visit + estimate</span>
        <span className="pulse-cta mono" style={{
          background: '#A3C76B', color: '#1A2E14',
          padding: '5px 11px', borderRadius: 99,
          fontSize: 10, fontWeight: 700, whiteSpace: 'nowrap',
        }}>
          Get a quote →
        </span>
      </div>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   8. Builder — construction blueprint feel, hi-vis yellow
   ───────────────────────────────────────────────────────── */
function BuilderMock() {
  return (
    <div style={{ background: '#F5F6F7', display: 'flex', flexDirection: 'column', position: 'relative' }}>
      {/* Top bar */}
      <div style={{
        padding: '11px 14px', display: 'flex',
        justifyContent: 'space-between', alignItems: 'center',
        background: '#1F2937', borderBottom: '3px solid #FACC15',
      }}>
        <BuilderLogo />
        <span className="mono" style={{
          fontSize: 9.5, color: '#FACC15', fontWeight: 700,
          letterSpacing: '0.06em',
        }}>
          EST. 2008
        </span>
      </div>

      {/* Hero — blueprint grid backdrop */}
      <div style={{ position: 'relative', padding: '14px 14px 12px', overflow: 'hidden' }}>
        <div aria-hidden style={{
          position: 'absolute', inset: 0,
          backgroundImage:
            'linear-gradient(#1F293708 1px, transparent 1px), linear-gradient(90deg, #1F293708 1px, transparent 1px)',
          backgroundSize: '12px 12px',
          opacity: 0.7,
        }} />
        <div className="sweep" style={{ '--sweep-delay': '2s' }} />
        <span className="mono" style={{
          position: 'relative', color: '#6B7280', fontSize: 9,
          letterSpacing: '0.1em', textTransform: 'uppercase', fontWeight: 600,
        }}>
          Extensions · Renovations · Loft conversions
        </span>
        <div style={{
          position: 'relative', color: '#1F2937', fontSize: 18,
          lineHeight: 1.1, letterSpacing: '-0.02em',
          fontWeight: 700, marginTop: 6,
        }}>
          Built right.<br />Built on time.
        </div>
        <div style={{ position: 'relative', display: 'flex', gap: 6, marginTop: 8 }}>
          <span className="pulse-cta mono" style={{
            background: '#FACC15', color: '#1F2937',
            padding: '7px 12px', borderRadius: 6,
            fontSize: 10.5, fontWeight: 700, whiteSpace: 'nowrap',
          }}>
            Book site visit
          </span>
          <span style={{
            border: '1px solid #1F2937', color: '#1F2937',
            padding: '6px 12px', borderRadius: 6,
            fontSize: 10.5, whiteSpace: 'nowrap',
          }}>
            View work
          </span>
        </div>
      </div>

      {/* Project gallery */}
      <div style={{ padding: '0 14px 10px', display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 5 }}>
        {[0, 1, 2].map((i) => (
          <div key={i} className="shimmer" style={{
            aspectRatio: '4 / 3', borderRadius: 5,
            '--shimmer-base': '#CBD5E1',
            animationDelay: (i * 0.3) + 's',
          }} />
        ))}
      </div>

      {/* Services strip */}
      <div style={{
        padding: '8px 14px',
        display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: 4,
        background: 'white', borderTop: '1px dashed #FACC15',
      }}>
        {[
          { t: 'Extensions',  d: 'Single · double' },
          { t: 'Loft',        d: 'Conv. · dormer' },
          { t: 'Renovations', d: 'Full · partial' },
          { t: 'New builds',  d: 'Ground up' },
        ].map((s, i) => (
          <div key={s.t} className="float-y" style={{
            padding: '6px 4px', display: 'flex', flexDirection: 'column', gap: 2,
            '--float-dur': '5s', '--float-delay': (i * 0.4) + 's',
          }}>
            <span style={{ width: 4, height: 4, borderRadius: 99, background: '#FACC15' }} />
            <span style={{ color: '#1F2937', fontSize: 10, fontWeight: 600 }}>{s.t}</span>
            <span style={{ color: '#6B7280', fontSize: 8.5 }}>{s.d}</span>
          </div>
        ))}
      </div>

      <div style={{
        background: '#1F2937', padding: '9px 14px',
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
      }}>
        <span className="mono" style={{ color: '#9CA3AF', fontSize: 9, letterSpacing: '0.06em' }}>
          Free site visit · Woking area
        </span>
        <span className="mono" style={{
          display: 'inline-flex', alignItems: 'center', gap: 5,
          fontSize: 10, color: '#FACC15', fontWeight: 600,
        }}>
          <Icon.phone /> 01483 ···
        </span>
      </div>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   9. Tree surgeon — deep forest greens, organic
   ───────────────────────────────────────────────────────── */
function TreeSurgeonMock() {
  return (
    <div style={{ background: '#F2F5EE', display: 'flex', flexDirection: 'column' }}>
      <div style={{
        padding: '11px 14px', display: 'flex',
        justifyContent: 'space-between', alignItems: 'center',
        background: 'white', borderBottom: '1px solid #D6DDC9',
      }}>
        <TreeSurgeonLogo />
        <span className="mono pulse-cta" style={{
          fontSize: 9.5, color: 'white', fontWeight: 700,
          padding: '4px 10px', background: '#2F5D2E', borderRadius: 99,
          letterSpacing: '0.06em',
        }}>
          FREE SURVEY
        </span>
      </div>

      {/* Hero panel — dark forest tone */}
      <div style={{
        position: 'relative', padding: '16px 14px',
        background: 'linear-gradient(160deg, #2F5D2E 0%, #1F2C1B 100%)',
        overflow: 'hidden',
      }}>
        <div className="sweep" style={{ '--sweep-delay': '1.8s' }} />
        {/* Floating leaves */}
        {[
          { top: '12%', left: '78%', size: 14, rot: 30, dur: '7s', delay: '0s' },
          { top: '62%', left: '8%',  size: 10, rot: -20, dur: '8s', delay: '1s' },
          { top: '40%', left: '88%', size: 8,  rot: 60, dur: '6s', delay: '2s' },
        ].map((leaf, i) => (
          <svg key={i} className="float-y" width={leaf.size} height={leaf.size}
            viewBox="0 0 16 16"
            style={{
              position: 'absolute', top: leaf.top, left: leaf.left,
              transform: 'rotate(' + leaf.rot + 'deg)',
              opacity: 0.5,
              '--float-dur': leaf.dur, '--float-delay': leaf.delay,
            }}>
            <path d="M8 1 Q 3 3 3 8 Q 3 13 8 15 Q 13 13 13 8 Q 13 3 8 1 Z"
              fill="#A3C76B" />
          </svg>
        ))}
        <span className="mono" style={{
          position: 'relative', fontSize: 9, letterSpacing: '0.12em',
          textTransform: 'uppercase', color: '#A3C76B', fontWeight: 600,
        }}>
          NPTC qualified · fully insured
        </span>
        <div style={{
          position: 'relative', color: 'white', fontSize: 18,
          lineHeight: 1.08, letterSpacing: '-0.02em',
          fontWeight: 700, marginTop: 6,
        }}>
          Crown reductions.<br />Stump removals. Safely.
        </div>
        <div style={{ position: 'relative', display: 'flex', gap: 6, marginTop: 10 }}>
          <span className="pulse-cta mono" style={{
            background: '#A3C76B', color: '#1F2C1B',
            padding: '7px 12px', borderRadius: 6,
            fontSize: 10.5, fontWeight: 700, whiteSpace: 'nowrap',
            display: 'inline-flex', alignItems: 'center', gap: 5,
          }}>
            <Icon.phone /> Free quote
          </span>
          <span style={{
            border: '1px solid rgba(255,255,255,0.25)', color: 'white',
            padding: '6px 12px', borderRadius: 6, fontSize: 10.5,
            whiteSpace: 'nowrap',
          }}>
            Emergency
          </span>
        </div>
      </div>

      {/* Service tiles */}
      <div style={{
        padding: '12px 14px', display: 'grid',
        gridTemplateColumns: 'repeat(4, 1fr)', gap: 5,
      }}>
        {[
          { t: 'Felling',       d: 'Safe · clean' },
          { t: 'Crown reduce',  d: 'Prune · shape' },
          { t: 'Stump remove',  d: 'Grind · clear' },
          { t: 'Hedge work',    d: 'Trim · maintain' },
        ].map((s, i) => (
          <div key={s.t} className="float-y lift" style={{
            background: 'white', borderRadius: 7,
            border: '1px solid #D6DDC9',
            padding: '8px 4px', display: 'flex', flexDirection: 'column', gap: 2,
            '--float-dur': '5s', '--float-delay': (i * 0.35) + 's',
          }}>
            <span style={{ width: 5, height: 5, borderRadius: 99, background: '#5BA15A' }} />
            <span style={{ color: '#1F2C1B', fontSize: 10, fontWeight: 600 }}>{s.t}</span>
            <span style={{ color: '#6B7B5C', fontSize: 8.5 }}>{s.d}</span>
          </div>
        ))}
      </div>

      <div style={{
        background: '#1F2C1B', padding: '9px 14px',
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
      }}>
        <span className="mono" style={{ color: '#A3C76B', fontSize: 9, letterSpacing: '0.06em' }}>
          Richmond · Twickenham · Kingston
        </span>
        <span className="mono" style={{
          display: 'inline-flex', alignItems: 'center', gap: 5,
          fontSize: 10, color: 'white', fontWeight: 600,
        }}>
          <Icon.phone /> 020 ···
        </span>
      </div>
    </div>
  );
}

/* ─────────────────────────────────────────────────────────
   10. Driveway & paving — solid, premium, warm stone
   ───────────────────────────────────────────────────────── */
function DrivewayLogo() {
  return (
    <span style={{ display: 'inline-flex', alignItems: 'center', gap: 7 }}>
      <span style={{
        width: 22, height: 22, borderRadius: 5, background: '#1C1B1A',
        display: 'inline-flex', alignItems: 'center', justifyContent: 'center',
        position: 'relative', overflow: 'hidden',
      }}>
        {/* Offset paving blocks */}
        <svg width="14" height="14" viewBox="0 0 14 14">
          <g className="badge-breathe" style={{ transformOrigin: '7px 7px' }}>
            <rect x="1" y="1.2" width="5.5" height="2.6" rx="0.5" fill="#D98A3D" />
            <rect x="7.5" y="1.2" width="5.5" height="2.6" rx="0.5" fill="#8A7A66" />
            <rect x="1" y="4.6" width="3" height="2.6" rx="0.5" fill="#8A7A66" />
            <rect x="4.6" y="4.6" width="8.4" height="2.6" rx="0.5" fill="#D98A3D" />
            <rect x="1" y="8" width="5.5" height="2.6" rx="0.5" fill="#D98A3D" />
            <rect x="7.5" y="8" width="5.5" height="2.6" rx="0.5" fill="#8A7A66" />
          </g>
        </svg>
      </span>
      <span style={{ color: '#1C1B1A', fontSize: 12.5, fontWeight: 800, letterSpacing: '-0.01em' }}>
        COBHAM <span style={{ color: '#B5732A' }}>DRIVEWAYS</span>
      </span>
    </span>
  );
}

function DrivewayMock() {
  const finishes = [
    { name: 'Charcoal',  hex: '#3A3733' },
    { name: 'Brindle',   hex: '#8A5A3C' },
    { name: 'Sandstone', hex: '#CBB089' },
    { name: 'Silver',    hex: '#B9B7B1' },
    { name: 'Resin',     hex: '#C68A3E' },
  ];
  return (
    <div style={{ background: '#F5F1EA', display: 'flex', flexDirection: 'column' }}>
      {/* Top bar */}
      <div style={{
        padding: '12px 14px', display: 'flex',
        justifyContent: 'space-between', alignItems: 'center',
        borderBottom: '1px solid #E4DACB',
      }}>
        <DrivewayLogo />
        <span className="mono" style={{
          display: 'inline-flex', alignItems: 'center', gap: 5,
          fontSize: 9.5, color: '#8A6A2E', background: 'rgba(214,138,62,0.14)',
          padding: '3px 7px', borderRadius: 4, fontWeight: 600, letterSpacing: '0.04em',
        }}>
          <span className="pulse-dot" style={{ width: 5, height: 5, borderRadius: 99, background: '#D98A3D', display: 'inline-block' }} />
          10-yr guarantee
        </span>
      </div>

      {/* Hero — staggered block-paving pattern + headline */}
      <div style={{ position: 'relative', height: 124, overflow: 'hidden', background: '#262320' }}>
        <div style={{ position: 'absolute', inset: 0, padding: '4px 0' }}>
          {[0, 1, 2, 3, 4].map((r) => (
            <div key={r} style={{ display: 'flex', gap: 3, marginBottom: 3, marginLeft: r % 2 ? 18 : 0 }}>
              {[0, 1, 2, 3, 4, 5, 6].map((c) => (
                <div key={c} className="float-y" style={{
                  flex: 1, height: 18, borderRadius: 2,
                  background: (r + c) % 3 === 0 ? '#3A3733' : (r + c) % 3 === 1 ? '#5A4636' : '#4A453E',
                  '--float-dur': '7s', '--float-delay': ((r + c) * 0.18) + 's',
                }} />
              ))}
            </div>
          ))}
        </div>
        <div style={{ position: 'absolute', inset: 0, background: 'linear-gradient(180deg, rgba(20,18,16,0.15) 0%, rgba(20,18,16,0.86) 100%)' }} />
        <div className="sweep" style={{ '--sweep-delay': '1.5s' }} />
        <div style={{
          position: 'absolute', inset: 0, padding: 14,
          display: 'flex', flexDirection: 'column', justifyContent: 'flex-end', gap: 4,
        }}>
          <span className="mono" style={{
            color: 'rgba(255,255,255,0.65)', fontSize: 9,
            letterSpacing: '0.12em', textTransform: 'uppercase',
          }}>
            Block paving · Resin · Tarmac
          </span>
          <span style={{
            color: 'white', fontSize: 18, lineHeight: 1.05,
            letterSpacing: '-0.02em', fontWeight: 700,
          }}>
            Driveways<br />built to last.
          </span>
        </div>
      </div>

      {/* Service grid */}
      <div style={{ padding: '12px 14px', display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: 6 }}>
        {[
          { t: 'Block paving', d: 'Lay · re-lay' },
          { t: 'Resin bound',  d: 'Smooth · porous' },
          { t: 'Tarmac',       d: 'Drives · roads' },
          { t: 'Patios',       d: 'Slabs · stone' },
        ].map((s, i) => (
          <div key={s.t} className="float-y" style={{
            background: '#FFFFFF', border: '1px solid #E4DACB', borderRadius: 6,
            padding: '7px 8px', display: 'flex', flexDirection: 'column', gap: 2,
            '--float-dur': '5s', '--float-delay': (i * 0.3) + 's',
          }}>
            <span style={{ width: 4, height: 4, borderRadius: 99, background: '#D98A3D' }} />
            <span style={{ color: '#1C1B1A', fontSize: 10, fontWeight: 700 }}>{s.t}</span>
            <span style={{ color: '#8A7E6E', fontSize: 8.5 }}>{s.d}</span>
          </div>
        ))}
      </div>

      {/* Finishes swatch strip */}
      <div style={{ padding: '2px 14px 10px' }}>
        <span className="mono" style={{
          fontSize: 9, color: '#A8997F', letterSpacing: '0.08em',
          textTransform: 'uppercase', display: 'block', marginBottom: 6,
        }}>
          Finishes · choose your look
        </span>
        <div style={{ display: 'flex', gap: 5 }}>
          {finishes.map((s, i) => (
            <div key={s.name} className="float-y lift" style={{
              flex: 1, display: 'flex', flexDirection: 'column', gap: 4,
              '--float-dur': '5s', '--float-delay': (i * 0.25) + 's',
            }}>
              <div style={{
                aspectRatio: '1.4 / 1', background: s.hex,
                borderRadius: 4, border: '1px solid rgba(28,27,26,0.08)',
              }} />
              <span className="mono" style={{
                fontSize: 8, color: '#6B5E50', letterSpacing: '0.04em',
                textAlign: 'center', textTransform: 'uppercase',
              }}>
                {s.name}
              </span>
            </div>
          ))}
        </div>
      </div>

      {/* CTA bar */}
      <div style={{
        background: '#1C1B1A', padding: '10px 14px',
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
        position: 'relative', overflow: 'hidden',
      }}>
        <div className="sweep" style={{ '--sweep-delay': '3s' }} />
        <span style={{ color: 'white', fontSize: 11 }}>Free site survey · fixed quote</span>
        <span className="pulse-cta mono" style={{
          background: '#D98A3D', color: '#1C1B1A',
          padding: '5px 11px', borderRadius: 99,
          fontSize: 10, fontWeight: 700, whiteSpace: 'nowrap',
        }}>
          Get a quote →
        </span>
      </div>
    </div>
  );
}

Object.assign(window, {
  SampleCard, BrowserChrome, SampleMeta,
  PlumberMock, RooferMock, CleaningMock, PainterMock, RemovalMock,
  ElectricianMock, LandscaperMock, BuilderMock, TreeSurgeonMock, DrivewayMock,
  PlumberLogo, RooferLogo, CleaningLogo, PainterLogo, RemovalLogo,
  ElectricianLogo, LandscaperLogo, BuilderLogo, TreeSurgeonLogo, DrivewayLogo,
});
