/* ============================================
   PrivacyPulse Analytics - Landing Page CSS
   ============================================ */

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Font */
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Landing specific utilities */
.text-balance {
    text-wrap: balance;
}

/* Gradients */
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.bg-gradient-to-b { background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); }

.from-indigo-600 { --tw-gradient-from: #4f46e5; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(79, 70, 229, 0)); }
.from-violet-600 { --tw-gradient-from: #7c3aed; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(124, 58, 237, 0)); }
.from-purple-600 { --tw-gradient-from: #9333ea; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(147, 51, 234, 0)); }
.from-blue-600 { --tw-gradient-from: #2563eb; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(37, 99, 235, 0)); }
.from-green-600 { --tw-gradient-from: #16a34a; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(22, 163, 74, 0)); }
.from-pink-600 { --tw-gradient-from: #db2777; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(219, 39, 119, 0)); }
.from-cyan-600 { --tw-gradient-from: #0891b2; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(8, 145, 178, 0)); }
.from-amber-600 { --tw-gradient-from: #d97706; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(217, 119, 6, 0)); }
.from-gray-900 { --tw-gradient-from: #111827; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(17, 24, 39, 0)); }
.from-white { --tw-gradient-from: #ffffff; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(255, 255, 255, 0)); }

.via-indigo-600 { --tw-gradient-stops: var(--tw-gradient-from), #4f46e5, var(--tw-gradient-to, rgba(79, 70, 229, 0)); }
.via-violet-600 { --tw-gradient-stops: var(--tw-gradient-from), #7c3aed, var(--tw-gradient-to, rgba(124, 58, 237, 0)); }
.via-purple-600 { --tw-gradient-stops: var(--tw-gradient-from), #9333ea, var(--tw-gradient-to, rgba(147, 51, 234, 0)); }

.to-indigo-600 { --tw-gradient-to: #4f46e5; }
.to-violet-600 { --tw-gradient-to: #7c3aed; }
.to-purple-600 { --tw-gradient-to: #9333ea; }
.to-blue-600 { --tw-gradient-to: #2563eb; }
.to-cyan-600 { --tw-gradient-to: #0891b2; }
.to-pink-600 { --tw-gradient-to: #db2777; }
.to-green-600 { --tw-gradient-to: #16a34a; }
.to-amber-500 { --tw-gradient-to: #f59e0b; }
.to-gray-800 { --tw-gradient-to: #1f2937; }
.to-transparent { --tw-gradient-to: transparent; }

/* Background clip */
.bg-clip-text { -webkit-background-clip: text; background-clip: text; }
.text-transparent { color: transparent; }

/* Additional text colors */
.text-violet-500 { color: #8b5cf6; }
.text-violet-600 { color: #7c3aed; }
.text-violet-700 { color: #6d28d9; }
.text-violet-900 { color: #4c1d95; }
.text-cyan-500 { color: #06b6d4; }
.text-amber-500 { color: #f59e0b; }
.text-amber-600 { color: #d97706; }

/* Additional background colors */
.bg-violet-50 { background-color: #f5f3ff; }
.bg-violet-100 { background-color: #ede9fe; }
.bg-violet-500 { background-color: #8b5cf6; }
.bg-violet-600 { background-color: #7c3aed; }
.bg-cyan-50 { background-color: #ecfeff; }
.bg-cyan-100 { background-color: #cffafe; }
.bg-amber-50 { background-color: #fffbeb; }
.bg-amber-100 { background-color: #fef3c7; }

/* Additional border colors */
.border-violet-200 { border-color: #ddd6fe; }
.border-violet-500 { border-color: #8b5cf6; }
.border-cyan-500 { border-color: #06b6d4; }
.border-amber-500 { border-color: #f59e0b; }

/* Ring colors */
.ring-violet-500 { --tw-ring-color: #8b5cf6; }
.ring-violet-600 { --tw-ring-color: #7c3aed; }
.ring-violet-200 { --tw-ring-color: #ddd6fe; }
.ring-4 { box-shadow: 0 0 0 4px var(--tw-ring-color); }
.ring-offset-2 { --tw-ring-offset-width: 2px; }

/* Shadows */
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
.shadow-2xl { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.shadow-violet-500\/20 { box-shadow: 0 10px 40px rgba(139, 92, 246, 0.2); }
.shadow-indigo-500\/20 { box-shadow: 0 10px 40px rgba(99, 102, 241, 0.2); }

/* Additional spacing */
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.py-24 { padding-top: 6rem; padding-bottom: 6rem; }
.px-12 { padding-left: 3rem; padding-right: 3rem; }
.gap-12 { gap: 3rem; }
.gap-16 { gap: 4rem; }
.space-y-6 > * + * { margin-top: 1.5rem; }
.space-y-8 > * + * { margin-top: 2rem; }
.space-y-12 > * + * { margin-top: 3rem; }
.space-x-6 > * + * { margin-left: 1.5rem; }

/* Text sizes */
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-5xl { font-size: 3rem; line-height: 1; }
.text-6xl { font-size: 3.75rem; line-height: 1; }

/* Font weights */
.font-extrabold { font-weight: 800; }
.font-black { font-weight: 900; }

/* Width/height */
.w-72 { width: 18rem; }
.w-80 { width: 20rem; }
.w-96 { width: 24rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-6xl { max-width: 72rem; }

/* Aspect ratio */
.aspect-video { aspect-ratio: 16 / 9; }
.aspect-square { aspect-ratio: 1 / 1; }

/* Transforms */
.scale-100 { transform: scale(1); }
.scale-105 { transform: scale(1.05); }
.scale-110 { transform: scale(1.1); }
.hover\:scale-105:hover { transform: scale(1.05); }
.-translate-y-1 { transform: translateY(-0.25rem); }
.hover\:-translate-y-1:hover { transform: translateY(-0.25rem); }
.translate-x-1 { transform: translateX(0.25rem); }
.group:hover .group-hover\:translate-x-1 { transform: translateX(0.25rem); }

/* Opacity variations */
.opacity-50 { opacity: 0.5; }
.opacity-70 { opacity: 0.7; }
.opacity-80 { opacity: 0.8; }
.opacity-90 { opacity: 0.9; }
.bg-opacity-50 { --tw-bg-opacity: 0.5; }
.bg-opacity-80 { --tw-bg-opacity: 0.8; }
.bg-opacity-90 { --tw-bg-opacity: 0.9; }

/* Backdrop blur */
.backdrop-blur-sm { backdrop-filter: blur(4px); }
.backdrop-blur { backdrop-filter: blur(8px); }
.backdrop-blur-md { backdrop-filter: blur(12px); }
.backdrop-blur-lg { backdrop-filter: blur(16px); }
.backdrop-blur-xl { backdrop-filter: blur(24px); }

/* Additional border radius */
.rounded-3xl { border-radius: 1.5rem; }

/* Line clamp */
.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; }

/* Transitions */
.duration-500 { transition-duration: 500ms; }
.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }

/* Hover states */
.hover\:bg-violet-700:hover { background-color: #6d28d9; }
.hover\:bg-violet-50:hover { background-color: #f5f3ff; }
.hover\:text-violet-600:hover { color: #7c3aed; }
.hover\:border-violet-500:hover { border-color: #8b5cf6; }
.hover\:shadow-xl:hover { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }
.hover\:shadow-2xl:hover { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }

/* Focus states */
.focus\:ring-violet-500:focus { --tw-ring-color: #8b5cf6; }
.focus\:border-violet-500:focus { border-color: #8b5cf6; }

/* Group hover */
.group:hover .group-hover\:scale-110 { transform: scale(1.1); }
.group:hover .group-hover\:opacity-100 { opacity: 1; }
.group:hover .group-hover\:text-white { color: white; }

/* Prose styling for content */
.prose { max-width: 65ch; }
.prose p { margin-bottom: 1.25em; }
.prose h2 { font-size: 1.5em; font-weight: 700; margin-top: 2em; margin-bottom: 1em; }
.prose h3 { font-size: 1.25em; font-weight: 600; margin-top: 1.6em; margin-bottom: 0.6em; }
.prose ul { list-style-type: disc; padding-left: 1.625em; }
.prose li { margin-bottom: 0.5em; }
.prose a { color: #4f46e5; text-decoration: underline; }

/* Responsive - Small screens */
@media (min-width: 640px) {
    .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
    .sm\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
    .sm\:text-5xl { font-size: 3rem; line-height: 1; }
    .sm\:text-6xl { font-size: 3.75rem; line-height: 1; }
    .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Responsive - Medium screens */
@media (min-width: 768px) {
    .md\:px-8 { padding-left: 2rem; padding-right: 2rem; }
    .md\:py-24 { padding-top: 6rem; padding-bottom: 6rem; }
    .md\:text-6xl { font-size: 3.75rem; line-height: 1; }
    .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Responsive - Large screens */
@media (min-width: 1024px) {
    .lg\:px-12 { padding-left: 3rem; padding-right: 3rem; }
    .lg\:py-32 { padding-top: 8rem; padding-bottom: 8rem; }
    .lg\:text-7xl { font-size: 4.5rem; line-height: 1; }
    .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .lg\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .lg\:col-span-2 { grid-column: span 2 / span 2; }
    .lg\:gap-12 { gap: 3rem; }
    .lg\:space-y-0 > * + * { margin-top: 0; }
}

/* Responsive - XL screens */
@media (min-width: 1280px) {
    .xl\:px-16 { padding-left: 4rem; padding-right: 4rem; }
    .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Gradient backgrounds */
.gradient-bg {
    background: linear-gradient(135deg, var(--primary, #6366f1) 0%, var(--secondary, #8b5cf6) 100%);
}

.hero-pattern {
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

