/* SVG Icon System - Critical Path CSS
 * Replaces FontAwesome for performance optimization
 * Size: ~2KB vs 76KB FontAwesome CDN
 */

.icon-svg {
    width: 1em;
    height: 1em;
    display: inline-block;
    fill: currentColor;
    stroke: currentColor;
    vertical-align: middle;
    flex-shrink: 0;
}

/* Icon size variations */
.icon-sm { width: 0.875em; height: 0.875em; }
.icon-lg { width: 1.33em; height: 1.33em; }
.icon-xl { width: 1.5em; height: 1.5em; }
.icon-2x { width: 2em; height: 2em; }

/* Icon states */
.icon-spin {
    animation: icon-spin 2s infinite linear;
}

@keyframes icon-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Navigation icon styles */
.mobile-menu-toggle .icon-svg,
.mobile-menu-close .icon-svg {
    width: 24px;
    height: 24px;
    stroke-width: 2;
}

/* Cart icon wrapper */
.cart-icon-wrapper .icon-svg {
    width: 20px;
    height: 20px;
}

/* Search icon styles */
.search-icon.icon-svg {
    width: 18px;
    height: 18px;
    stroke-width: 2;
}

/* Form field icons */
.field-icon.icon-svg {
    width: 16px;
    height: 16px;
    margin-right: 8px;
    opacity: 0.7;
}

/* Button icons */
.btn .icon-svg {
    margin-right: 6px;
    vertical-align: -2px;
}

/* Dropdown arrow icons */
.arrow-icon.icon-svg {
    width: 12px;
    height: 12px;
    margin-left: 4px;
    transition: transform 0.2s ease;
}

.dropdown.open .arrow-icon.icon-svg {
    transform: rotate(180deg);
}

/* Mobile bottom nav icons */
.bottom-nav-item .icon-svg {
    width: 24px;
    height: 24px;
    margin-bottom: 4px;
}

/* Status icons */
.status-icon.icon-svg {
    width: 20px;
    height: 20px;
}

.status-icon.success { color: #10b981; }
.status-icon.error { color: #ef4444; }
.status-icon.warning { color: #f59e0b; }

/* Social icons (if needed) */
.social-link .icon-svg {
    width: 20px;
    height: 20px;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .mobile-menu-toggle .icon-svg {
        width: 20px;
        height: 20px;
    }
    
    .bottom-nav-item .icon-svg {
        width: 20px;
        height: 20px;
    }
}

/* Loading state for buttons */
.loading .icon-svg {
    opacity: 0.7;
}

/* Hover effects */
.icon-hover:hover .icon-svg {
    transform: scale(1.1);
    transition: transform 0.2s ease;
}

/* Focus states for accessibility */
button:focus .icon-svg,
a:focus .icon-svg {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
    border-radius: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .icon-svg {
        stroke-width: 3;
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .icon-spin {
        animation: none;
    }
    
    .arrow-icon.icon-svg,
    .icon-hover:hover .icon-svg {
        transition: none;
    }
}