*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Roboto', sans-serif; overflow-x: hidden; background: #fdfaf8; }
img { display: block; max-width: 100%; }
input, textarea, select { font-family: 'Roboto', sans-serif; }
button { font-family: 'Raleway', sans-serif; }
a { text-decoration: none; }

@keyframes fadeUp   { from { opacity:0; transform:translateY(40px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes fadeLeft { from { opacity:0; transform:translateX(48px); } to { opacity:1; transform:translateX(0); } }
@keyframes fadeRight{ from { opacity:0; transform:translateX(-48px); } to { opacity:1; transform:translateX(0); } }
@keyframes scaleIn  { from { opacity:0; transform:scale(0.88); } to { opacity:1; transform:scale(1); } }
@keyframes pageIn   { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
@keyframes float    { 0%,100% { transform:translateY(0px); } 50% { transform:translateY(-10px); } }

.anim-ready     { opacity:0; }
.anim-fadeUp    { animation: fadeUp    0.7s cubic-bezier(.22,1,.36,1) forwards; }
.anim-fadeIn    { animation: fadeIn    0.6s ease forwards; }
.anim-fadeLeft  { animation: fadeLeft  0.7s cubic-bezier(.22,1,.36,1) forwards; }
.anim-fadeRight { animation: fadeRight 0.7s cubic-bezier(.22,1,.36,1) forwards; }
.anim-scaleIn   { animation: scaleIn   0.7s cubic-bezier(.22,1,.36,1) forwards; }
.page-enter     { animation: pageIn    0.55s cubic-bezier(.22,1,.36,1) forwards; }

.card-hover { transition: transform .25s ease, box-shadow .25s ease; }
.card-hover:hover { transform: translateY(-6px); box-shadow: 0 16px 48px rgba(85,134,190,0.18) !important; }
.float-anim { animation: float 5s ease-in-out infinite; }

@media (max-width: 768px) {
  .hero-grid   { grid-template-columns: 1fr !important; }
  .hero-grid .book-col { order: -1; }
  .two-col     { grid-template-columns: 1fr !important; }
  .three-col   { grid-template-columns: 1fr !important; }
  .form-grid   { grid-template-columns: 1fr !important; }
  .desktop-links { display: none !important; }
  .hamburger-btn { display: flex !important; }
  .footer-grid { grid-template-columns: 1fr !important; }
}
