/* Scroll Animation Classes */
.scroll-fade-in { opacity: 0; transform: translateY(30px); transition: all 0.8s ease-out; }
.scroll-fade-in-left { opacity: 0; transform: translateX(-50px); transition: all 0.8s ease-out; }
.scroll-fade-in-right { opacity: 0; transform: translateX(50px); transition: all 0.8s ease-out; }
.scroll-fade-in-up { opacity: 0; transform: translateY(20px); transition: all 0.6s ease-out; }
.scroll-fade-in.animate, .scroll-fade-in-left.animate, .scroll-fade-in-right.animate, .scroll-fade-in-up.animate { opacity: 1; transform: translate(0,0); }

/* Chatbot follow-up animations */
.animate-slide-in { animation: slideInFromRight 0.5s ease-out forwards; }
.animate-fade-in-up { opacity: 0; transform: translateY(10px); animation: fadeInUp 0.4s ease-out forwards; }
@keyframes slideInFromRight { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* Chatbox show/hide */
.chatbox-enter { animation: chatboxSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; }
.chatbox-exit { animation: chatboxSlideOut 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }
.chatbox-hidden { opacity: 0; transform: translateY(20px) scale(0.95); pointer-events: none; }
.chatbox-visible { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
@keyframes chatboxSlideIn { 0% { opacity: 0; transform: translateY(30px) scale(0.9);} 50% { opacity:.8; transform: translateY(-5px) scale(1.02);} 100% { opacity:1; transform: translateY(0) scale(1);} }
@keyframes chatboxSlideOut { 0% { opacity:1; transform: translateY(0) scale(1);} 100% { opacity:0; transform: translateY(20px) scale(0.95);} }

/* Message entrance */
.message-enter { animation: messageSlideIn 0.3s ease-out forwards; }
@keyframes messageSlideIn { 0% { opacity:0; transform: translateX(-20px);} 100% { opacity:1; transform: translateX(0);} }

/* FAQ Accordion */
.faq-item { border-bottom: 1px solid #e5e7eb; }
.faq-question { transition: all 0.3s ease; }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.35s ease, opacity 0.35s ease; padding: 0 2rem; opacity: 0; }
.faq-answer.open { max-height: 1000px; padding: 0 2rem 1.5rem 2rem; opacity: 1; }
.faq-icon { transition: transform 0.3s ease; }
.faq-icon.rotated { transform: rotate(180deg); }

/* News helpers */
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-clamp: 2; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; line-clamp: 3; }
