@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800&family=Poppins:wght@300;400;500;600;700;800&display=swap');

:root {
  --primary: #1E3A8A;
  --secondary: #0F766E;
  --accent: #EA580C;
  --dark: #0F172A;
  --light: #F8FAFC;
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  font-family: 'Poppins', sans-serif;
  color: var(--dark);
  background-color: var(--light);
  overflow-x: hidden;
  margin: 0;
  padding-top: 70px;
}

h1, h2, h3, h4, h5 { font-family: 'Playfair Display', serif; margin: 0; }
p { margin: 0 0 1rem; }
a { text-decoration: none; }
img { max-width: 100%; display: block; }
ul, ol { margin: 0; padding: 0; }

/* UTILITIES */
.container { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; }
.text-center { text-align: center; }
.text-white { color: white; }
.text-blue { color: #2563eb; }
.text-red { color: #ef4444; }
.text-amber { color: #f59e0b; }
.text-teal { color: #0f766e; }
.text-gray { color: #64748b; }
.text-dark { color: var(--dark); }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.italic { font-style: italic; }

.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.mb-16 { margin-bottom: 4rem; }
.mb-12 { margin-bottom: 3rem; }
.mb-8  { margin-bottom: 2rem; }
.mb-6  { margin-bottom: 1.5rem; }
.mb-4  { margin-bottom: 1rem; }
.mb-2  { margin-bottom: 0.5rem; }
.mt-12 { margin-top: 3rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-8  { margin-top: 2rem; }
.mx-auto { margin-left: auto; margin-right: auto; }

.bg-white  { background: white; }
.bg-gray   { background: #f8fafc; }
.bg-dark   { background: #0f172a; }

.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-5xl { max-width: 64rem; }

.flex { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-4 { gap: 1rem; }
.gap-3 { gap: 0.75rem; }
.gap-2 { gap: 0.5rem; }
.flex-shrink-0 { flex-shrink: 0; }

.relative { position: relative; }
.overflow-hidden { overflow: hidden; }
.z-10 { position: relative; z-index: 10; }

/* SECTION TAG */
.section-tag {
  display: inline-block;
  padding: 0.35rem 1rem;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.tag-blue   { background: #dbeafe; color: #1e40af; }
.tag-red    { background: #fee2e2; color: #b91c1c; }
.tag-amber  { background: #fef3c7; color: #92400e; }
.tag-teal   { background: #ccfbf1; color: #0f766e; }
.tag-green  { background: #dcfce7; color: #15803d; }
.tag-purple { background: #f3e8ff; color: #7e22ce; }

/* SECTION TITLE */
.section-title {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 1.25rem;
  color: var(--dark);
}
.section-subtitle {
  font-size: 1.0625rem;
  color: #475569;
  line-height: 1.7;
  margin: 0 0 2rem;
}

/* BADGE PULSE */
@keyframes badgePulse {
  0%   { box-shadow: 0 0 0 0 rgba(234,88,12,0.7); }
  70%  { box-shadow: 0 0 0 10px rgba(234,88,12,0); }
  100% { box-shadow: 0 0 0 0 rgba(234,88,12,0); }
}
.badge-pulse { animation: badgePulse 2s infinite; }

/* BLOB ANIMATION */
@keyframes blobMove {
  from { transform: translate(0,0); }
  to   { transform: translate(10px,-10px); }
}

/* SHIMMER */
@keyframes shimmer {
  100% { left: 100%; }
}
