/* global React */
// Sections — Integrations / Savings calculator / Testimonials / Pricing

const { useState, useMemo } = React;

/* ───────────────────── INTEGRAÇÕES ───────────────────── */
function Integrations() {
  useReveal();
  const items = [
    { name: 'Vindi',     role: 'Assinatura recorrente',  glyph: 'V' },
    { name: 'WhatsApp',  role: 'Business API + ZAP',     glyph: 'W' },
    { name: 'Twilio',    role: 'SMS marketing',          glyph: 'T' },
    { name: 'Resend',    role: 'E-mail transacional',    glyph: 'R' },
    { name: 'Sefaz',     role: 'NFC-e / NFS-e',          glyph: '§' },
    { name: 'PagSeguro', role: 'Maquininha + Pix',       glyph: 'P' },
    { name: 'Google',    role: 'Calendar + Auth',        glyph: 'G' },
    { name: 'Stripe',    role: 'Cartão internacional',   glyph: 'S' },
  ];
  return (
    <section id="integrations" className="ints">
      <div className="container">
        <div className="ints-head reveal">
          <span className="eyebrow">Integrações</span>
          <h2>Funciona com as ferramentas que sua barbearia já usa.</h2>
          <p className="ints-lede">Pluga no seu Vindi, no seu WhatsApp, na sua maquininha. Você mantém suas contas; o Gorilla só adiciona a camada de gestão.</p>
        </div>

        <div className="ints-grid reveal">
          {items.map((it, i) => (
            <div key={i} className="int-card" style={{transitionDelay: `${i*40}ms`}}>
              <div className="int-glyph">{it.glyph}</div>
              <div className="int-text">
                <div className="int-name">{it.name}</div>
                <div className="int-role">{it.role}</div>
              </div>
              <div className="int-status">
                <span className="int-dot" />
                <span>conectado</span>
              </div>
            </div>
          ))}
        </div>
      </div>

      <style>{`
        .ints-head { max-width: 720px; }
        .ints-head h2 { margin-top: 18px; }
        .ints-lede { margin-top: 16px; }

        .ints-grid {
          margin-top: 56px;
          display: grid;
          grid-template-columns: repeat(4, 1fr);
          gap: 12px;
        }
        .int-card {
          background: var(--bg-card);
          border: 1px solid var(--line-soft);
          border-radius: 14px;
          padding: 20px;
          display: grid;
          grid-template-columns: 56px 1fr;
          gap: 16px;
          align-items: center;
          transition: border-color .2s ease, transform .2s ease;
          position: relative;
        }
        .int-card:hover { border-color: var(--accent); transform: translateY(-2px); }
        .int-glyph {
          width: 56px; height: 56px;
          border-radius: 12px;
          background: linear-gradient(135deg, rgba(255,65,3,.18), rgba(255,65,3,.04));
          border: 1px solid rgba(255,65,3,.25);
          color: var(--accent);
          font-family: var(--font-display);
          font-weight: 700;
          font-size: 26px;
          display:flex; align-items:center; justify-content:center;
        }
        .int-name { font-size: 15px; font-weight: 600; color: var(--ink); }
        .int-role { font-size: 12.5px; color: var(--ink-mute); margin-top: 3px; font-family: var(--font-mono); }
        .int-status {
          position: absolute;
          top: 14px; right: 16px;
          display:flex; align-items:center; gap: 5px;
          font-family: var(--font-mono);
          font-size: 10px;
          color: var(--ink-mute);
          text-transform: uppercase;
          letter-spacing: .1em;
        }
        .int-dot {
          width: 6px; height: 6px; border-radius: 50%;
          background: #4ade80;
          box-shadow: 0 0 0 2px rgba(74,222,128,.18);
        }

        @media (max-width: 900px) { .ints-grid { grid-template-columns: repeat(2, 1fr); } }
        @media (max-width: 540px) { .ints-grid { grid-template-columns: 1fr; } }
      `}</style>
    </section>
  );
}

/* ───────────────────── CALCULADORA DE ECONOMIA ───────────────────── */
function Calculator() {
  useReveal();
  const [barbers, setBarbers]   = useState(3);
  const [tickets, setTickets]   = useState(400);
  const [ticket,  setTicket]    = useState(75);
  const [defrate, setDefrate]   = useState(8); // % de inadimplência

  const monthlyRevenue = tickets * ticket;
  const defaultedMonthly = monthlyRevenue * defrate / 100;
  // Recovery rate: ~45% of defaulted
  const recoveryGain = defaultedMonthly * 0.45;
  // Commission recalc: ~2.5% extra margin recovered
  const commissionGain = monthlyRevenue * 0.025;
  // Subscription: assume 8% of clients become subscribers @ R$ 89 saving recurring ~R$ 30 in attrition
  const subscriptionGain = barbers * 180;
  // Replace AppBarber + ZAP cost saved
  const stackSaved = 280;

  const total = recoveryGain + commissionGain + subscriptionGain + stackSaved;
  const annual = total * 12;

  const fmt = (v) => 'R$ ' + Math.round(v).toLocaleString('pt-BR');

  return (
    <section id="calc" className="calc">
      <div className="container">
        <div className="calc-head reveal">
          <span className="eyebrow">Calculadora</span>
          <h2>Quanto sua barbearia economizaria com o Gorilla?</h2>
          <p className="calc-lede">Ajuste os controles e veja a estimativa em tempo real. Os percentuais vêm da média das primeiras 50 barbearias que migraram.</p>
        </div>

        <div className="calc-shell reveal">
          <div className="calc-form">
            <div className="calc-row">
              <label>
                <span className="calc-label">Colaboradores</span>
                <span className="calc-val">{barbers}</span>
              </label>
              <input type="range" min="1" max="20" value={barbers} onChange={e=>setBarbers(+e.target.value)} />
              <div className="calc-hint">1–20 barbeiros</div>
            </div>
            <div className="calc-row">
              <label>
                <span className="calc-label">Atendimentos por mês</span>
                <span className="calc-val">{tickets}</span>
              </label>
              <input type="range" min="50" max="2000" step="50" value={tickets} onChange={e=>setTickets(+e.target.value)} />
              <div className="calc-hint">somando todos os colaboradores</div>
            </div>
            <div className="calc-row">
              <label>
                <span className="calc-label">Ticket médio</span>
                <span className="calc-val">{fmt(ticket).replace('R$ ','R$')}</span>
              </label>
              <input type="range" min="25" max="250" step="5" value={ticket} onChange={e=>setTicket(+e.target.value)} />
              <div className="calc-hint">por atendimento</div>
            </div>
            <div className="calc-row">
              <label>
                <span className="calc-label">Inadimplência atual</span>
                <span className="calc-val">{defrate}%</span>
              </label>
              <input type="range" min="0" max="25" value={defrate} onChange={e=>setDefrate(+e.target.value)} />
              <div className="calc-hint">% do faturamento que não entra</div>
            </div>
          </div>

          <div className="calc-result">
            <div className="calc-result-head">
              <span className="eyebrow">Sua estimativa</span>
              <span className="calc-live mono"><span className="hero-live">●</span> ao vivo</span>
            </div>
            <div className="calc-big">{fmt(total)}<span className="calc-unit">/mês</span></div>
            <div className="calc-annual">≈ {fmt(annual)} por ano</div>

            <div className="calc-breakdown">
              <div className="calc-bk">
                <span>Recovery de inadimplência (45%)</span>
                <span className="mono">{fmt(recoveryGain)}</span>
              </div>
              <div className="calc-bk">
                <span>Comissão recalculada (margem +2,5%)</span>
                <span className="mono">{fmt(commissionGain)}</span>
              </div>
              <div className="calc-bk">
                <span>Receita de assinatura</span>
                <span className="mono">{fmt(subscriptionGain)}</span>
              </div>
              <div className="calc-bk">
                <span>Stack consolidado (sem ZAP, AppBarber)</span>
                <span className="mono">{fmt(stackSaved)}</span>
              </div>
            </div>

            <div className="calc-roi">
              <span className="calc-roi-l">ROI vs Plano Equipe (R$ 199)</span>
              <span className="calc-roi-v">{Math.round(total/199)}× </span>
            </div>

            <a href="#trial" className="btn btn-primary calc-cta">
              Começar trial grátis →
            </a>
            <p className="calc-disclaimer">Estimativa baseada na média de barbearias com perfil similar. Valores reais variam.</p>
          </div>
        </div>
      </div>

      <style>{`
        .calc-head { max-width: 720px; }
        .calc-head h2 { margin-top: 18px; }
        .calc-lede { margin-top: 16px; }

        .calc-shell {
          margin-top: 56px;
          display: grid;
          grid-template-columns: 1fr 1.1fr;
          gap: 16px;
        }
        .calc-form {
          background: var(--bg-card);
          border: 1px solid var(--line-soft);
          border-radius: var(--r-lg);
          padding: 28px;
          display: flex; flex-direction: column; gap: 22px;
        }
        .calc-row label {
          display: flex; justify-content: space-between; align-items: baseline;
          margin-bottom: 10px;
        }
        .calc-label { font-size: 13px; font-weight: 500; color: var(--ink-soft); font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .08em; }
        .calc-val   { font-family: var(--font-display); font-weight: 700; font-size: 22px; color: var(--accent); letter-spacing: -0.02em; }

        .calc-row input[type="range"] {
          width: 100%;
          -webkit-appearance: none; appearance: none;
          height: 4px;
          background: var(--bg-elev);
          border-radius: 999px;
          outline: none;
        }
        .calc-row input[type="range"]::-webkit-slider-thumb {
          -webkit-appearance: none; appearance: none;
          width: 18px; height: 18px; border-radius: 50%;
          background: var(--accent);
          border: 3px solid #fff;
          cursor: pointer;
          box-shadow: 0 4px 12px rgba(255,65,3,.4);
        }
        .calc-row input[type="range"]::-moz-range-thumb {
          width: 18px; height: 18px; border-radius: 50%;
          background: var(--accent);
          border: 3px solid #fff;
          cursor: pointer;
          box-shadow: 0 4px 12px rgba(255,65,3,.4);
        }
        .calc-hint { margin-top: 8px; font-size: 11.5px; color: var(--ink-mute); font-family: var(--font-mono); }

        .calc-result {
          background: linear-gradient(180deg, rgba(255,65,3,.07) 0%, transparent 80%), var(--bg-card);
          border: 1px solid rgba(255,65,3,.3);
          border-radius: var(--r-lg);
          padding: 28px;
          position: relative;
          overflow: hidden;
        }
        .calc-result::before {
          content:"";
          position: absolute; top: -100px; right: -100px;
          width: 300px; height: 300px;
          background: radial-gradient(closest-side, rgba(255,65,3,.15), transparent 70%);
        }
        .calc-result-head { display:flex; justify-content: space-between; align-items: center; }
        .calc-live { font-size: 11px; color: #86efac; display:inline-flex; align-items:center; gap: 6px; }
        .calc-big {
          font-family: var(--font-display);
          font-weight: 800;
          font-size: clamp(48px, 6vw, 76px);
          line-height: 1;
          letter-spacing: -0.04em;
          color: var(--ink);
          margin-top: 16px;
        }
        .calc-unit { font-size: 0.4em; font-weight: 500; color: var(--ink-mute); margin-left: 6px; }
        .calc-annual { font-size: 14px; color: var(--accent); margin-top: 6px; font-family: var(--font-mono); }

        .calc-breakdown {
          margin-top: 28px;
          padding-top: 20px;
          border-top: 1px solid var(--line-soft);
          display: flex; flex-direction: column; gap: 10px;
        }
        .calc-bk { display: flex; justify-content: space-between; font-size: 13.5px; color: var(--ink-soft); }
        .calc-bk .mono { color: var(--ink); }

        .calc-roi {
          margin-top: 20px;
          padding: 14px 18px;
          background: var(--bg-soft);
          border: 1px solid var(--line);
          border-radius: 12px;
          display:flex; justify-content: space-between; align-items: center;
        }
        .calc-roi-l { font-size: 12.5px; color: var(--ink-soft); font-family: var(--font-mono); }
        .calc-roi-v { font-family: var(--font-display); font-weight: 800; font-size: 28px; color: var(--accent); letter-spacing: -0.02em; }

        .calc-cta { width: 100%; margin-top: 20px; }
        .calc-disclaimer { margin-top: 12px; font-size: 11px; color: var(--ink-mute); font-family: var(--font-mono); text-align: center; }

        @media (max-width: 880px) {
          .calc-shell { grid-template-columns: 1fr; }
        }
      `}</style>
    </section>
  );
}

/* ───────────────────── DEPOIMENTOS ───────────────────── */
function Testimonials() {
  useReveal();
  const items = [
    {
      name: 'Diego Marques',
      role: 'Dono · Barbearia do Centro',
      city: 'São Paulo, SP',
      n: 4,
      initials: 'DM',
      tone: '#ec5a1c',
      quote: 'Saí do AppBarber em uma tarde. O CSV importou tudo e o pote da Vindi sincronizou na primeira tentativa. Em 30 dias recuperei R$ 2.300 que estavam dormindo na inadimplência.',
      kpi: '+R$ 2.300 recuperados',
    },
    {
      name: 'Renata Souza',
      role: 'Gerente · Old School Barber',
      city: 'Belo Horizonte, MG',
      n: 6,
      initials: 'RS',
      tone: '#7ab8ff',
      quote: 'A comissão em 12 categorias resolveu uma briga de 2 anos com meus barbeiros. Cada um vê exatamente o que entrou e por quê. Acabou auditoria de fim de mês.',
      kpi: '0 disputas de comissão',
    },
    {
      name: 'Caio Pereira',
      role: 'Sócio · Rede Macaco Velho',
      city: 'Curitiba, PR',
      n: 12,
      initials: 'CP',
      tone: '#a78bfa',
      quote: 'A IA respondendo SQL em linguagem natural mudou meu fim de semana. Antes eu rodava planilha. Agora pergunto e tenho gráfico em 2 segundos. Time inteiro usa.',
      kpi: '12 unidades · 1 login',
    },
  ];
  return (
    <section id="testimonials" className="tst">
      <div className="container">
        <div className="tst-head reveal">
          <span className="eyebrow">Quem já trocou</span>
          <h2>Barbearias que pararam de usar planilha.</h2>
        </div>

        <div className="tst-grid">
          {items.map((it, i) => (
            <figure key={i} className="tst-card reveal" style={{transitionDelay: `${i*80}ms`}}>
              <div className="tst-stars">
                {Array.from({length:5}).map((_,j) => (
                  <svg key={j} width="14" height="14" viewBox="0 0 24 24" fill="currentColor" style={{color:'var(--accent)'}}>
                    <polygon points="12,2 15.09,8.26 22,9.27 17,14.14 18.18,21.02 12,17.77 5.82,21.02 7,14.14 2,9.27 8.91,8.26" />
                  </svg>
                ))}
              </div>
              <blockquote>"{it.quote}"</blockquote>
              <div className="tst-kpi"><span className="tst-kpi-arrow">↗</span> {it.kpi}</div>
              <figcaption className="tst-cap">
                <span className="tst-avatar" style={{background: it.tone}}>{it.initials}</span>
                <span>
                  <span className="tst-name">{it.name}</span>
                  <span className="tst-role">{it.role} · {it.n} {it.n === 1 ? 'cadeira' : 'cadeiras'}</span>
                  <span className="tst-city">{it.city}</span>
                </span>
              </figcaption>
            </figure>
          ))}
        </div>
      </div>

      <style>{`
        .tst-head h2 { margin-top: 18px; }
        .tst-grid {
          margin-top: 56px;
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 16px;
        }
        .tst-card {
          background: var(--bg-card);
          border: 1px solid var(--line-soft);
          border-radius: var(--r-lg);
          padding: 28px;
          display: flex; flex-direction: column; gap: 16px;
          transition: border-color .2s, transform .2s;
        }
        .tst-card:hover { border-color: var(--line); transform: translateY(-3px); }
        .tst-stars { display:flex; gap: 2px; }
        .tst-card blockquote {
          margin: 0;
          font-family: var(--font-display);
          font-weight: 500;
          font-size: 18px;
          line-height: 1.45;
          color: var(--ink);
          letter-spacing: -0.01em;
          flex: 1;
          text-wrap: pretty;
        }
        .tst-kpi {
          display: inline-flex; align-self: flex-start;
          gap: 6px; align-items: center;
          font-family: var(--font-mono);
          font-size: 12px;
          color: var(--accent);
          background: rgba(255,65,3,.1);
          border: 1px solid rgba(255,65,3,.25);
          padding: 6px 12px;
          border-radius: 999px;
        }
        .tst-kpi-arrow { font-weight: 700; }
        .tst-cap {
          display: flex; gap: 12px; align-items: center;
          padding-top: 18px;
          border-top: 1px solid var(--line-soft);
        }
        .tst-avatar {
          width: 40px; height: 40px; border-radius: 50%;
          color: #0c0c0e; font-weight: 700; font-size: 13px;
          display:flex; align-items: center; justify-content: center;
        }
        .tst-cap span span { display: block; }
        .tst-name { font-weight: 600; font-size: 14px; color: var(--ink); }
        .tst-role { font-size: 12px; color: var(--ink-soft); margin-top: 1px; }
        .tst-city { font-size: 11px; color: var(--ink-mute); font-family: var(--font-mono); margin-top: 1px; }

        @media (max-width: 900px) { .tst-grid { grid-template-columns: 1fr; } }
      `}</style>
    </section>
  );
}

/* ───────────────────── PRICING ───────────────────── */
function Pricing() {
  useReveal();
  const [billing, setBilling] = useState('annual'); // monthly | annual
  const discount = 0.20; // 20% off annual

  const plans = [
    {
      id: 'solo',
      name: 'Solo',
      price: 99,
      desc: 'Pra barbearia solo ou começando — todo o core operacional.',
      cta: 'Comece grátis',
      ctaStyle: 'ghost',
      units: '1 unidade',
      colabs: 'até 3 colaboradores',
      includes: [
        'Agenda + Comanda + Comissão',
        'Recovery + Régua',
        'Portal Cliente PWA',
        'GORILLA ZAP',
      ],
      excludes: [],
    },
    {
      id: 'team',
      name: 'Equipe',
      price: 199,
      desc: 'Pra barbearia em crescimento. Vindi nativo + BI completo.',
      cta: 'Comece grátis',
      ctaStyle: 'primary',
      units: '1 unidade',
      colabs: 'até 10 colaboradores',
      featured: true,
      includes: [
        'Tudo do Solo',
        'Assinatura Vindi + Pote real-time',
        'Cashback + Fidelidade',
        '32 Rankings + BI Analítico',
        'Audit Log',
      ],
      excludes: [],
    },
    {
      id: 'net',
      name: 'Rede',
      price: 399,
      desc: 'Multi-unidade com IA Assistente e reconciliação automática.',
      cta: 'Falar com vendas',
      ctaStyle: 'ghost',
      units: 'Unidades ilimitadas (+R$ 99/und)',
      colabs: 'colaboradores ilimitados',
      includes: [
        'Tudo do Equipe',
        'Cargos modulares avançados',
        'IA Assistente',
        'Reconciliação Vindi automática',
      ],
      excludes: [],
    },
  ];

  const addons = [
    {
      name: 'WhatsApp Business API',
      price: 49,
      when: '/mês',
      desc: 'Volume alto e selo verde oficial. Multi-atendente, templates HSM, métricas de entrega.',
      icon: (
        <svg viewBox="0 0 24 24" fill="currentColor"><path d="M17.6 6.3A8 8 0 0 0 4 14a8 8 0 0 0 1.2 4.3L4 22l3.8-1.2A8 8 0 0 0 12 22a8 8 0 0 0 5.6-13.7zM12 20.5a6.5 6.5 0 0 1-3.4-1l-.2-.1-2.4.8.8-2.3-.2-.3a6.5 6.5 0 1 1 5.4 2.9zm3.5-4.9-1.1-.5-.2.1c-.4.5-.7.8-1 .8h-.2c-.5-.2-1.5-.7-2.7-1.9-1-.9-1.6-2-1.8-2.4 0-.3.1-.4.3-.6l.4-.4c.1-.1.2-.2.2-.4l.1-.2c0-.1 0-.3-.1-.5l-.5-1.2c-.2-.5-.4-.4-.5-.4h-.5c-.2 0-.4.1-.7.3-.2.3-.9.9-.9 2.2 0 1.3.9 2.6 1.1 2.8.1.2 1.7 2.6 4.2 3.7l1.4.5c.6.2 1.2.2 1.6.1.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.1-1.2-.1-.1-.2-.2-.4-.3z"/></svg>
      ),
      tag: 'POPULAR',
    },
    {
      name: 'App Próprio (white-label)',
      price: 199,
      when: '/mês',
      desc: 'Seu app na App Store e Play Store, sua marca, suas cores. Gorilla cuida da publicação e atualização.',
      icon: (
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><rect x="5" y="2" width="14" height="20" rx="2"/><line x1="12" y1="18" x2="12.01" y2="18"/></svg>
      ),
      tag: 'PREMIUM',
    },
    {
      name: 'IA Assistente GA',
      price: 99,
      when: '/mês após beta',
      desc: 'Texto → SQL → gráfico. Após o GA, R$ 99/mês como add-on (incluso no plano Rede).',
      icon: (
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/></svg>
      ),
      tag: 'BETA GRÁTIS',
    },
    {
      name: 'Migração assistida',
      price: 499,
      when: 'one-time',
      desc: 'Nossa equipe roda o CSV, valida histórico, reconcilia comissões e treina seu time em videocall.',
      icon: (
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
      ),
      tag: 'CONCIERGE',
    },
  ];

  return (
    <section id="pricing" className="pri">
      <div className="container">
        <div className="pri-head reveal">
          <span className="eyebrow">Preços</span>
          <h2>Trial 90 dias <span className="pri-paint">sem cartão</span>.</h2>
          <p className="pri-lede">Cobramos por unidade e por features — não por colaborador. Sem letras miúdas.</p>

          <div className="pri-toggle" role="tablist">
            <button
              role="tab"
              aria-selected={billing === 'monthly'}
              className={"pri-toggle-btn " + (billing === 'monthly' ? 'is-active' : '')}
              onClick={() => setBilling('monthly')}
            >Mensal</button>
            <button
              role="tab"
              aria-selected={billing === 'annual'}
              className={"pri-toggle-btn " + (billing === 'annual' ? 'is-active' : '')}
              onClick={() => setBilling('annual')}
            >
              Anual <span className="pri-save">−20%</span>
            </button>
          </div>
        </div>

        <div className="pri-grid reveal">
          {plans.map((p) => {
            const monthly = billing === 'annual' ? p.price * (1 - discount) : p.price;
            return (
              <div key={p.id} className={"pri-card " + (p.featured ? 'is-featured' : '')}>
                {p.featured && <div className="pri-feat-tag">Mais popular</div>}
                <div className="pri-card-head">
                  <h3>{p.name}</h3>
                  <p className="pri-card-desc">{p.desc}</p>
                </div>
                <div className="pri-price">
                  <span className="pri-currency">R$</span>
                  <span className="pri-amount">{monthly.toFixed(0)}</span>
                  <span className="pri-period">/mês</span>
                </div>
                {billing === 'annual' && (
                  <p className="pri-billed">cobrado anualmente · {Math.round((monthly*12)).toLocaleString('pt-BR')}/ano</p>
                )}
                {billing === 'monthly' && (
                  <p className="pri-billed">cobrado mensalmente · sem fidelidade</p>
                )}

                <div className="pri-meta">
                  <div className="pri-meta-row"><span>●</span> {p.units}</div>
                  <div className="pri-meta-row"><span>●</span> {p.colabs}</div>
                </div>

                <a href="#trial" className={"btn btn-" + p.ctaStyle + " pri-cta"}>{p.cta}</a>

                <div className="pri-includes">
                  <div className="pri-inc-h">Inclui</div>
                  {p.includes.map((it, i) => (
                    <div key={i} className="pri-inc">
                      <span className="features-check">
                        <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="3" strokeLinecap="round" strokeLinejoin="round"><polyline points="20 6 9 17 4 12"/></svg>
                      </span>
                      {it}
                    </div>
                  ))}
                </div>
              </div>
            );
          })}
        </div>

        <div className="pri-addons reveal">
          <div className="pri-addons-head">
            <span className="eyebrow">Add-ons opcionais</span>
            <h3 className="pri-addons-h">Recursos premium <span className="pri-paint">por demanda</span>.</h3>
            <p className="pri-addons-sub">Cobre só o que sua barbearia realmente vai usar. Sem pacote inflado.</p>
          </div>
          <div className="pri-addons-grid">
            {addons.map((a, i) => (
              <div key={i} className="pri-addon" style={{transitionDelay: `${i*60}ms`}}>
                <div className="pri-addon-top">
                  <div className="pri-addon-icon">{a.icon}</div>
                  <span className="pri-addon-tag">{a.tag}</span>
                </div>
                <h4 className="pri-addon-name">{a.name}</h4>
                <p className="pri-addon-desc">{a.desc}</p>
                <div className="pri-addon-foot">
                  <div className="pri-addon-pricewrap">
                    <span className="pri-addon-currency">R$</span>
                    <span className="pri-addon-price">{a.price}</span>
                    <span className="pri-addon-when">{a.when}</span>
                  </div>
                  <a href="#trial" className="pri-addon-cta" aria-label={`Ativar ${a.name}`}>
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
                  </a>
                </div>
              </div>
            ))}
          </div>
        </div>
      </div>

      <style>{`
        .pri-head { max-width: 720px; }
        .pri-head h2 { margin-top: 18px; }
        .pri-paint {
          color: var(--accent);
          background: linear-gradient(180deg, var(--accent-soft), var(--accent-deep));
          -webkit-background-clip: text; background-clip: text;
          color: transparent;
        }
        .pri-lede { margin-top: 16px; }

        .pri-toggle {
          margin-top: 32px;
          display: inline-flex;
          padding: 4px;
          background: var(--bg-card);
          border: 1px solid var(--line);
          border-radius: 999px;
        }
        .pri-toggle-btn {
          padding: 10px 22px;
          font-size: 14px; font-weight: 500;
          color: var(--ink-soft);
          background: transparent; border: 0;
          border-radius: 999px;
          cursor: pointer;
          font-family: var(--font-body);
          display: inline-flex; align-items: center; gap: 8px;
          transition: color .15s, background .15s;
        }
        .pri-toggle-btn:hover { color: var(--ink); }
        .pri-toggle-btn.is-active {
          background: var(--accent);
          color: #fff;
        }
        .pri-save {
          font-family: var(--font-mono);
          font-size: 10.5px;
          padding: 2px 6px;
          background: rgba(255,255,255,.18);
          border-radius: 4px;
        }
        .pri-toggle-btn:not(.is-active) .pri-save {
          background: rgba(74,222,128,.12); color: #86efac;
        }

        .pri-grid {
          margin-top: 48px;
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 16px;
        }
        .pri-card {
          background: var(--bg-card);
          border: 1px solid var(--line-soft);
          border-radius: var(--r-lg);
          padding: 32px;
          position: relative;
          display: flex; flex-direction: column;
        }
        .pri-card.is-featured {
          background: linear-gradient(180deg, rgba(255,65,3,.06) 0%, transparent 100%), var(--bg-card);
          border-color: rgba(255,65,3,.4);
          box-shadow: 0 30px 80px -20px rgba(255,65,3,.15);
        }
        .pri-feat-tag {
          position: absolute; top: -1px; right: 24px;
          transform: translateY(-50%);
          background: var(--accent);
          color: #fff;
          font-family: var(--font-mono);
          font-size: 10px; font-weight: 600;
          padding: 5px 12px;
          border-radius: 999px;
          letter-spacing: .1em;
          text-transform: uppercase;
        }
        .pri-card h3 { margin: 0; font-size: 22px; }
        .pri-card-desc { margin-top: 8px; font-size: 13.5px; line-height: 1.45; min-height: 38px; }

        .pri-price {
          margin-top: 24px;
          display: flex; align-items: baseline; gap: 4px;
          font-family: var(--font-display);
        }
        .pri-currency { font-size: 22px; color: var(--ink-soft); font-weight: 600; }
        .pri-amount { font-size: 64px; font-weight: 800; color: var(--ink); letter-spacing: -0.04em; line-height: 1; }
        .pri-period { font-size: 16px; color: var(--ink-mute); margin-left: 4px; }
        .pri-billed { font-size: 11.5px; color: var(--ink-mute); font-family: var(--font-mono); margin-top: 4px; }

        .pri-meta {
          margin-top: 24px;
          padding-top: 20px;
          border-top: 1px solid var(--line-soft);
          display: flex; flex-direction: column; gap: 6px;
        }
        .pri-meta-row {
          display:flex; align-items:center; gap: 8px;
          font-size: 13px; color: var(--ink-soft);
        }
        .pri-meta-row span { color: var(--accent); font-size: 8px; }

        .pri-cta { width: 100%; margin-top: 24px; }

        .pri-includes {
          margin-top: 28px;
          padding-top: 24px;
          border-top: 1px solid var(--line-soft);
        }
        .pri-inc-h {
          font-family: var(--font-mono);
          font-size: 11px;
          color: var(--ink-mute);
          text-transform: uppercase;
          letter-spacing: .1em;
          margin-bottom: 14px;
        }
        .pri-inc {
          display: flex; align-items: center; gap: 10px;
          margin-bottom: 10px;
          font-size: 13.5px;
          color: var(--ink-soft);
        }

        .pri-addons {
          margin-top: 80px;
          padding: 48px 40px;
          background:
            radial-gradient(800px 300px at 50% 0%, rgba(255,65,3,.07), transparent 60%),
            var(--bg-card);
          border: 1px solid var(--line-soft);
          border-radius: var(--r-xl);
          position: relative;
          overflow: hidden;
        }
        .pri-addons::before {
          content: "";
          position: absolute; left: 0; right: 0; top: 0;
          height: 1px;
          background: linear-gradient(90deg, transparent 10%, var(--accent), transparent 90%);
          opacity: .6;
        }
        .pri-addons-head { text-align: center; max-width: 640px; margin: 0 auto 40px; }
        .pri-addons-h { margin-top: 14px; font-size: clamp(28px, 3vw, 40px); }
        .pri-addons-sub { margin-top: 12px; color: var(--ink-soft); }

        .pri-addons-grid {
          display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
        }
        .pri-addon {
          background: var(--bg-soft);
          border: 1px solid var(--line);
          border-radius: 16px;
          padding: 22px;
          display: flex; flex-direction: column; gap: 14px;
          transition: border-color .25s ease, transform .25s ease, background .25s ease;
        }
        .pri-addon:hover {
          border-color: var(--accent);
          transform: translateY(-3px);
          background: linear-gradient(180deg, rgba(255,65,3,.04), transparent), var(--bg-soft);
        }
        .pri-addon-top {
          display: flex; justify-content: space-between; align-items: flex-start;
        }
        .pri-addon-icon {
          width: 42px; height: 42px;
          padding: 10px;
          background: rgba(255,65,3,.1);
          border: 1px solid rgba(255,65,3,.25);
          color: var(--accent);
          border-radius: 12px;
        }
        .pri-addon-icon svg { width: 100%; height: 100%; }
        .pri-addon-tag {
          font-family: var(--font-mono);
          font-size: 9.5px;
          font-weight: 600;
          color: var(--accent);
          background: rgba(255,65,3,.08);
          padding: 4px 8px;
          border-radius: 4px;
          letter-spacing: .1em;
          border: 1px solid rgba(255,65,3,.2);
        }
        .pri-addon-name {
          font-family: var(--font-display);
          font-weight: 700;
          font-size: 18px;
          letter-spacing: -0.01em;
          line-height: 1.2;
          color: var(--ink);
          margin: 0;
        }
        .pri-addon-desc {
          font-size: 13px;
          line-height: 1.5;
          color: var(--ink-soft);
          flex: 1;
          margin: 0;
        }
        .pri-addon-foot {
          display: flex; justify-content: space-between; align-items: center;
          padding-top: 14px;
          border-top: 1px solid var(--line-soft);
        }
        .pri-addon-pricewrap {
          display: flex; align-items: baseline; gap: 4px;
        }
        .pri-addon-currency {
          font-family: var(--font-display); font-weight: 600;
          font-size: 13px;
          color: var(--ink-soft);
        }
        .pri-addon-price {
          font-family: var(--font-display); font-weight: 800;
          font-size: 28px;
          color: var(--ink);
          letter-spacing: -0.03em;
          line-height: 1;
        }
        .pri-addon-when {
          font-family: var(--font-mono);
          font-size: 11px;
          color: var(--ink-mute);
          margin-left: 4px;
        }
        .pri-addon-cta {
          width: 36px; height: 36px;
          border-radius: 50%;
          background: var(--bg-elev);
          border: 1px solid var(--line);
          color: var(--ink-soft);
          display: flex; align-items: center; justify-content: center;
          transition: background .2s, color .2s, border-color .2s, transform .2s;
        }
        .pri-addon:hover .pri-addon-cta {
          background: var(--accent);
          color: #fff;
          border-color: var(--accent);
          transform: translateX(2px);
        }

        @media (max-width: 1000px) {
          .pri-grid { grid-template-columns: 1fr; }
          .pri-addons-grid { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 540px) {
          .pri-addons-grid { grid-template-columns: 1fr; }
        }
      `}</style>
    </section>
  );
}

Object.assign(window, { Integrations, Calculator, Testimonials, Pricing });
