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

html {
    scroll-behavior: smooth;
    font-family: 'Inter', sans-serif;
}

h1, h2, h3, h4, h5, h6, .font-heading {
    font-family: 'Outfit', sans-serif;
}

body {
    background-color: #F8FAFC;
    background-image: 
        radial-gradient(circle at 10% 20%, rgba(57, 255, 20, 0.05) 0%, transparent 50%),
        radial-gradient(circle at 90% 80%, rgba(0, 0, 0, 0.02) 0%, transparent 50%);
    background-attachment: fixed;
    color: #0F172A;
    overflow-x: hidden;
}

/* ─── Glass Panel ─────────────────────────────────────────── */
.glass-panel {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid rgba(0, 0, 0, 0.05);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.glass-panel:hover {
    border-color: rgba(57, 255, 20, 0.5);
}

/* ─── Animations ──────────────────────────────────────────── */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in-up {
    opacity: 0;
    animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes fadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}

.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }

/* ─── Scroll Triggered Animations ─────────────────────────── */
.scroll-animate {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.scroll-animate.scroll-visible {
    opacity: 1;
    transform: translateY(0);
}

.scroll-animate.scroll-delay-1 { transition-delay: 0.1s; }
.scroll-animate.scroll-delay-2 { transition-delay: 0.2s; }
.scroll-animate.scroll-delay-3 { transition-delay: 0.3s; }
.scroll-animate.scroll-delay-4 { transition-delay: 0.4s; }

/* ─── Hero Text Rotation ──────────────────────────────────── */
.hero-word {
    display: inline-block;
    opacity: 0;
    transform: translateY(100%);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    position: absolute;
    left: 0;
    right: 0;
}

.hero-word.active {
    opacity: 1;
    transform: translateY(0);
}

.hero-word.exit {
    opacity: 0;
    transform: translateY(-100%);
}

.hero-words-container {
    position: relative;
    display: inline-block;
    min-width: 300px;
    height: 1.1em;
    overflow: hidden;
    vertical-align: bottom;
}

/* ─── Elite Custom Inputs ─────────────────────────────────── */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.form-input {
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    color: #0F172A;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.form-input:focus {
    outline: none;
    border-color: #39ff14;
    background: #FFFFFF;
    box-shadow: 0 0 15px rgba(57, 255, 20, 0.15);
}

/* ─── WhatsApp Floating Button ────────────────────────────── */
#whatsapp-fab {
    animation: whatsappPulse 2s ease-in-out infinite;
}

#whatsapp-fab:hover {
    animation: none;
}

@keyframes whatsappPulse {
    0%, 100% { box-shadow: 0 4px 15px rgba(37, 211, 102, 0.4); }
    50% { box-shadow: 0 4px 30px rgba(37, 211, 102, 0.7); }
}

/* ─── Mobile Menu Transition ──────────────────────────────── */
#mobile-menu {
    transition: opacity 0.3s ease;
}

/* ─── Elite Scrollbar ─────────────────────────────────────── */
::-webkit-scrollbar {
    width: 6px;
}
::-webkit-scrollbar-track {
    background: #F8FAFC;
}
::-webkit-scrollbar-thumb {
    background: #CBD5E1;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #94A3B8;
}

/* ─── Utilities ───────────────────────────────────────────── */
.tracking-widest-extra {
    letter-spacing: 0.15em;
}

.glow-text {
    text-shadow: 0 0 20px rgba(57, 255, 20, 0.4);
}

#main-navbar.scrolled {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* ─── Dark Mode Styles ────────────────────────────────────── */
html.dark body {
    background-color: #050505 !important;
    background-image: 
        radial-gradient(circle at 10% 20%, rgba(57, 255, 20, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 90% 80%, rgba(255, 255, 255, 0.01) 0%, transparent 50%) !important;
    color: #f3f4f6 !important;
}

html.dark .bg-white {
    background-color: #111111 !important;
    color: #ffffff !important;
    border-color: #222222 !important;
}

html.dark .text-black, html.dark h1, html.dark h2, html.dark h3, html.dark h4, html.dark h5, html.dark h6 {
    color: #ffffff !important;
}

html.dark .text-gray-900 {
    color: #f3f4f6 !important;
}

html.dark .text-gray-600 {
    color: #9ca3af !important;
}

html.dark .text-gray-500 {
    color: #d1d5db !important;
}

html.dark .border-gray-100 {
    border-color: #222222 !important;
}

html.dark .border-gray-200 {
    border-color: #333333 !important;
}

html.dark .bg-gray-50 {
    background-color: #0c0c0c !important;
    border-color: #222222 !important;
}

html.dark .bg-gray-100 {
    background-color: #1a1a1a !important;
}

html.dark .bg-amber-50 {
    background-color: #1c150c !important;
    border-color: #f59e0b40 !important;
}

html.dark .text-amber-800 {
    color: #fef3c7 !important;
}

html.dark .text-amber-700 {
    color: #fcd34d !important;
}

html.dark #progress-chart {
    background-color: #111111 !important;
}

html.dark .border-t {
    border-color: #222222 !important;
}

/* ─── PWA App-Like Behaviors ─── */
body {
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    overscroll-behavior: none;
}

/* Re-allow text selection in forms */
input, textarea, select {
    -webkit-user-select: text;
    user-select: text;
}

/* iOS Notched Devices Status Bar Spacing */
#main-navbar {
    padding-top: calc(1rem + env(safe-area-inset-top));
}

/* Hide scrollbars for cleaner mobile UX */
.scrollbar-none::-webkit-scrollbar {
    display: none;
}
.scrollbar-none {
    -ms-overflow-style: none;
    scrollbar-width: none;
}


/* ─── Marquee Animations ─── */
.marquee-container {
    display: flex;
    overflow: hidden;
    position: relative;
    width: 100%;
    /* Gradient masks for smooth fading on edges */
    -webkit-mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);
    mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);
}
.marquee-track {
    display: flex;
    width: max-content;
    animation: marqueeRight 45s linear infinite;
}
.marquee-track:hover {
    animation-play-state: paused;
}
@keyframes marqueeRight {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0%); }
}
