// Features + Upsell sections
const FEATURES = [
{ icon: 'chat', title: 'Linguagem natural, sem botões', desc: 'Conversa como um concierge faria. Em PT, EN, ES, FR, IT e mais 12 idiomas — alternando no meio da frase se preciso.' },
{ icon: 'bed', title: 'Reserva ponta a ponta', desc: 'Verifica disponibilidade, apresenta opções com fotos e tarifas, conduz ao fechamento, envia link de pagamento e dispara voucher por e-mail.' },
{ icon: 'spa', title: 'Upsells autônomos', desc: 'Oferece spa, restaurante e experiências com inteligência de momento. Agenda direto na agenda do terapeuta ou do maître.' },
{ icon: 'globe', title: 'Multilíngue nativo', desc: 'Não traduz: pensa em cada idioma. Hóspede internacional sente que está falando com alguém da casa.' },
{ icon: 'clock', title: 'Disponível 24/7', desc: 'Madrugada, feriado, alta temporada. Nunca cansa, nunca repete o tom, nunca perde a paciência.' },
{ icon: 'user', title: 'Handoff humano fluido', desc: 'Sua equipe acompanha em tempo real e assume qualquer conversa em um clique. Sem fricção, sem o hóspede perceber.' },
];
const FeaturesSection = () => (
O QUE O CHAT HOTEL FAZ
Um maître d'hôtel
digital. Sem o uniforme.
Não é um chatbot, não é um SAC automatizado. É hospitalidade fina escrita em texto —
treinada na sua marca, no seu tom, nos seus rituais.
{FEATURES.map((f, i) => (
e.currentTarget.style.background = 'var(--surface)'}
onMouseLeave={e => e.currentTarget.style.background = 'var(--bg)'}>
{f.title}
{f.desc}
))}
);
const UPSELL_SCRIPT = [
{ side: 'agent', text: 'Helena, posso sugerir? Reservei já a Suíte Panorâmica. Para coroar a estadia, temos um ritual de spa de 80 minutos com aromaterapia. Tenho dois horários ideais para você no domingo.', time: '14:38', delay: 800 },
{ side: 'guest', text: 'Você lê pensamentos. Quais horários?', time: '14:39', delay: 4500 },
{ side: 'agent', text: '11:00 com a terapeuta Júlia, ou 16:30 com o Marcos. Qual combina?', time: '14:39', delay: 6500 },
{ side: 'guest', text: '16:30 — vou aproveitar a manhã na piscina 🌿', time: '14:40', delay: 9500 },
{ side: 'typing', delay: 11200 },
{ side: 'agent', text: 'Reservado. Coloquei na agenda do Marcos e adicionei ao seu itinerário. Posso reservar uma mesa no restaurante para o jantar de domingo também?', time: '14:40', delay: 12500 },
];
const UpsellSection = () => {
const [ref, inView] = useInView(0.2);
const [step, setStep] = React.useState(0);
React.useEffect(() => {
if (!inView) return;
let timers = [];
const run = () => {
setStep(0);
timers = UPSELL_SCRIPT.map((m, i) => setTimeout(() => setStep(i + 1), m.delay));
};
run();
const loop = setInterval(run, 17000);
return () => { timers.forEach(clearTimeout); clearInterval(loop); };
}, [inView]);
return (
UPSELLS AUTÔNOMOS
Spa agendado.
Mesa reservada. Sem ninguém levantar.
Identifica o momento certo, oferece o serviço, fecha a venda e
agenda direto na agenda do terapeuta ou do maître. Receita a mais sem custo operacional.
Helena Vasconcelos
hóspede · suíte 412
UPSELL ATIVO
{UPSELL_SCRIPT.slice(0, step).map((msg, i) => {
if (msg.side === 'typing') return
;
return
;
})}
= 6}/>
);
};
const TherapistAgenda = ({ activeBooking }) => {
const slots = [
{ time: '09:00', label: 'Yoga matinal · Sra. Ribeiro', booked: true },
{ time: '10:30', label: 'Massagem relaxante · Sr. Tanaka', booked: true },
{ time: '11:00', label: '', booked: false },
{ time: '12:30', label: 'Almoço', booked: false, locked: true },
{ time: '14:00', label: 'Aromaterapia · Sra. Mendes', booked: true },
{ time: '15:30', label: '', booked: false },
{ time: '16:30', label: '', booked: false, target: true },
{ time: '18:00', label: '', booked: false },
];
return (
M
Marcos Faria
terapeuta · spa
DOM · 18 mai
{slots.map((s, i) => {
const isTargetActive = s.target && activeBooking;
return (
{s.time}
{isTargetActive ? 'Helena Vasconcelos · Aromaterapia 80min' : (s.label || (s.locked ? 'Pausa' : 'Disponível'))}
{s.booked &&
}
{isTargetActive &&
← agora
}
);
})}
R$ 4.280 reservado hoje
+ R$ 480 agora
);
};
window.FeaturesSection = FeaturesSection;
window.UpsellSection = UpsellSection;