@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;900&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy:  #0A2540;
  --blue:  #1B6FDB;
  --cyan:  #00B4D8;
  --white: #ffffff;
  --bg:    #F8FAFC;
}

html { scroll-behavior: smooth; }
body { font-family: 'Inter', system-ui, sans-serif; color: var(--navy); background: #fff; }

/* Hero grid */
.hero-grid {
  background-image: linear-gradient(rgba(10,37,64,.04) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(10,37,64,.04) 1px, transparent 1px);
  background-size: 48px 48px;
}

/* Gradient text */
.gradient-text {
  background: linear-gradient(135deg, #1B6FDB 0%, #00B4D8 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Glass card */
.glass-card {
  background: rgba(255,255,255,0.9);
  border: 1px solid rgba(10,37,64,.07);
  backdrop-filter: blur(8px);
}

/* Animations */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .4; }
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

.fade-up { animation: fadeUp .65s ease both; }
.fade-up-1 { animation: fadeUp .65s .1s ease both; }
.fade-up-2 { animation: fadeUp .65s .2s ease both; }
.fade-up-3 { animation: fadeUp .65s .3s ease both; }
.fade-up-4 { animation: fadeUp .65s .4s ease both; }
.fade-up-5 { animation: fadeUp .65s .5s ease both; }

.pulse-dot { animation: pulse 1.8s ease-in-out infinite; }

.observe-fade { opacity: 0; transform: translateY(28px); transition: opacity .6s ease, transform .6s ease; }
.observe-fade.visible { opacity: 1; transform: translateY(0); }

/* Navbar */
#navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 40;
  transition: all .3s;
}
#navbar.scrolled {
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(10,37,64,.08);
}

/* WhatsApp float */
.whatsapp-float {
  position: fixed; bottom: 2rem; right: 2rem; z-index: 50;
  width: 3.5rem; height: 3.5rem;
  background: #25D366; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 24px rgba(37,211,102,.35);
  transition: transform .2s, box-shadow .2s;
}
.whatsapp-float:hover { transform: scale(1.1); box-shadow: 0 12px 32px rgba(37,211,102,.45); }
.whatsapp-float svg { width: 1.75rem; height: 1.75rem; fill: #fff; }

/* Spinner */
.spinner {
  width: 2.5rem; height: 2.5rem;
  border: 4px solid rgba(27,111,219,.2);
  border-top-color: #1B6FDB;
  border-radius: 50%;
  animation: spin .8s linear infinite;
}

/* Blog card */
.blog-card { transition: transform .3s, box-shadow .3s; }
.blog-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(10,37,64,.1); }

/* Form inputs */
.form-input {
  width: 100%; padding: .75rem 1rem;
  border: 1px solid rgba(10,37,64,.15); border-radius: .75rem;
  background: #fff; color: var(--navy); font-size: .875rem;
  transition: border-color .2s, box-shadow .2s; outline: none;
}
.form-input:focus {
  border-color: rgba(27,111,219,.4);
  box-shadow: 0 0 0 3px rgba(27,111,219,.08);
}
.form-input::placeholder { color: rgba(10,37,64,.3); }

/* Prose */
.prose { color: rgba(10,37,64,.7); line-height: 1.75; }
.prose h2 { color: var(--navy); font-weight: 900; font-size: 1.5rem; margin: 2rem 0 .75rem; }
.prose h3 { color: var(--navy); font-weight: 700; font-size: 1.25rem; margin: 1.5rem 0 .5rem; }
.prose p { margin-bottom: 1rem; }
.prose ul { padding-left: 1.5rem; margin-bottom: 1rem; }
.prose ul li { margin-bottom: .35rem; }
.prose strong { color: var(--navy); }
.prose a { color: var(--blue); }

/* Utility */
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
