/* Global Styles */
:root {
    --brand-blue: #2563eb;
    --brand-green: #10b981;
}

* {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

/* Improve touch targets for mobile */
button,
a,
input,
select,
textarea {
    min-height: 44px;
}

input[type="checkbox"],
input[type="radio"] {
    min-height: auto;
}

/* Prevent horizontal scroll on all sections */
section {
    overflow-x: hidden;
}

/* Smooth active state for mobile */
.active-press {
    transform: scale(0.97);
    transition: transform 0.1s ease;
}

/* Glassmorphism utility */
.glass {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.dark .glass {
    background: rgba(15, 23, 42, 0.7);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 10px;
}

.dark ::-webkit-scrollbar-thumb {
    background: #334155;
}

/* Carousel snap alignment */
.snap-x {
    scroll-snap-type: x mandatory;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.snap-x::-webkit-scrollbar {
    display: none;
}

.snap-center {
    scroll-snap-align: center;
}

/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-in {
    animation: fadeIn 0.5s ease forwards;
}

/* Profile Image Hover Effect */
.profile-hover {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.profile-hover:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}

/* Infinite Logo Slide */
@keyframes slide {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

.logo-slide-container {
    display: flex;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
    padding: 20px 0;
    min-height: 160px;
    align-items: center;
}

.logo-slide-track {
    display: flex;
    width: max-content;
    animation: slide 40s linear infinite;
}

.logo-slide {
    width: 350px;
    height: 120px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
}

@media (max-width: 480px) {
    .logo-slide {
        width: 150px;
        height: 60px;
        padding: 0 20px;
    }
}

/* Mobile-specific improvements */
@media (max-width: 768px) {

    /* Ensure proper spacing on mobile */
    .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    /* Prevent text overflow */
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    p {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    /* Ensure tables are readable on small screens */
    table {
        min-width: 600px;
    }

    .overflow-x-auto {
        -webkit-overflow-scrolling: touch;
    }

    /* Adjust animations for performance */
    .animate-in {
        animation-duration: 0.4s;
    }
}