/* Vitafoam - Custom App Styles */
/* Most styling is handled by Tailwind CSS classes in the views */

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

/* Line clamp utility for older browsers */
.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;
}

/* Hide scrollbar on cart panel but allow scrolling */
#cart-items::-webkit-scrollbar {
    width: 4px;
}

#cart-items::-webkit-scrollbar-track {
    background: transparent;
}

#cart-items::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 2px;
}

/* Select styling */
select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 40px;
}

/* Prose styles for blog content */
.prose p {
    margin-bottom: 1em;
}

.prose h2 {
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    font-weight: 700;
    font-size: 1.25em;
}

.prose ul {
    list-style-type: disc;
    padding-left: 1.5em;
    margin-bottom: 1em;
}

.prose ol {
    list-style-type: decimal;
    padding-left: 1.5em;
    margin-bottom: 1em;
}

/* Hero slider transitions */
.hero-slide {
    transition: opacity 700ms ease-in-out;
}

/* Cart panel slide transition */
#cart-panel {
    transition: transform 300ms ease-in-out;
}

/* Mobile nav transition */
#mobile-nav {
    transition: transform 300ms ease-in-out;
}

/* Loading spinner for AJAX calls */
.spinner {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Prevent body scroll when panels are open */
body.overflow-hidden {
    overflow: hidden;
}

/* Print styles */
@media print {
    header, footer, #cart-panel, #cart-overlay, #mobile-nav, #mobile-overlay {
        display: none !important;
    }
    main { margin: 0; padding: 0; }
}

/* Lucide icon sizing defaults */
[data-lucide] {
    width: 24px;
    height: 24px;
}
