/* TripToJapan - Tailwind Overrides Only */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Inter', system-ui, sans-serif; }

/* Animations */
@keyframes fadeUp { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
@keyframes slideDown { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:translateY(0); } }
@keyframes slideInRight { from { transform:translateX(120%); opacity:0; } to { transform:translateX(0); opacity:1; } }
@keyframes slideOutRight { to { transform:translateX(120%); opacity:0; } }
@keyframes scaleIn { from { opacity:0; transform:scale(0.95); } to { opacity:1; transform:scale(1); } }
@keyframes float { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-8px); } }
@keyframes pulse { 0%,100%{ opacity:1; } 50%{ opacity:0.5; } }

.fade-up { animation: fadeUp 0.6s ease-out forwards; }
.toast-in { animation: slideInRight 0.4s cubic-bezier(0.68,-0.55,0.265,1.55); }
.toast-out { animation: slideOutRight 0.3s ease forwards; }

/* Scroll reveal */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: all 0.6s cubic-bezier(0.16,1,0.3,1); }
[data-reveal].revealed { opacity: 1; transform: translateY(0); }

/* FAQ */
.faq-body { max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.35s ease; }
.faq-open .faq-body { max-height: 600px; }
.faq-open .faq-chevron { transform: rotate(180deg); }

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #dc2626; }
