/* Global Icon System - Handcrafted Heritage SVGs */

/* ==================== BASE ICON STYLES ==================== */

.heritage-icon {
    display: inline-block;
    width: 24px;
    height: 24px;
    stroke: #333;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: all 0.3s ease;
}

.heritage-icon:hover {
    stroke: #007BFF;
    transform: scale(1.1);
}

.heritage-icon.active {
    stroke: #007BFF;
}

.heritage-icon.secondary:hover {
    stroke: #228B22;
}

/* Size variants */
.heritage-icon-sm {
    width: 16px;
    height: 16px;
}

.heritage-icon-md {
    width: 24px;
    height: 24px;
}

.heritage-icon-lg {
    width: 32px;
    height: 32px;
}

.heritage-icon-xl {
    width: 48px;
    height: 48px;
}

/* ==================== COLOR VARIANTS ==================== */

.heritage-icon-blue {
    stroke: #007BFF;
}

.heritage-icon-green {
    stroke: #228B22;
}

.heritage-icon-dark {
    stroke: #333;
}

.heritage-icon-light {
    stroke: #F5F5F5;
}

.heritage-icon-gray {
    stroke: #666;
}

/* ==================== INTERACTIVE STATES ==================== */

.heritage-icon-button {
    cursor: pointer;
    padding: 8px;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.heritage-icon-button:hover {
    background: rgba(0, 123, 255, 0.1);
}

.heritage-icon-button:active {
    transform: scale(0.95);
}

.heritage-icon-button.active {
    background: rgba(0, 123, 255, 0.15);
}

/* ==================== ANIMATIONS ==================== */

@keyframes iconDraw {
    from {
        stroke-dashoffset: 100;
    }

    to {
        stroke-dashoffset: 0;
    }
}

.heritage-icon-draw {
    stroke-dasharray: 100;
    animation: iconDraw 1s ease-out forwards;
}

@keyframes iconPulse {

    0%,
    100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.1);
        opacity: 0.8;
    }
}

.heritage-icon-pulse {
    animation: iconPulse 2s ease-in-out infinite;
}

@keyframes iconFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

.heritage-icon-float {
    animation: iconFloat 3s ease-in-out infinite;
}

/* ==================== SPECIFIC ICON STYLES ==================== */

/* Favorite heart */
.heritage-icon-heart {
    fill: transparent;
    transition: fill 0.3s ease, stroke 0.3s ease;
}

.heritage-icon-heart.favorited {
    fill: #007BFF;
    stroke: #007BFF;
}

.heritage-icon-heart:hover {
    fill: rgba(0, 123, 255, 0.2);
}

/* Navigation arrows */
.heritage-icon-arrow {
    stroke: #333;
}

.heritage-icon-arrow:hover {
    stroke: #007BFF;
    transform: translateX(3px);
}

.heritage-icon-arrow.left:hover {
    transform: translateX(-3px);
}

/* Social icons */
.heritage-icon-social {
    stroke: #666;
    fill: none;
}

.heritage-icon-social:hover {
    stroke: #007BFF;
    fill: rgba(0, 123, 255, 0.1);
}

/* Mood icons */
.heritage-icon-mood {
    stroke: #666;
    transition: all 0.3s ease;
}

.heritage-icon-mood:hover,
.heritage-icon-mood.active {
    stroke: #007BFF;
    transform: scale(1.15) rotate(5deg);
}

/* Donation tier icons */
.heritage-icon-tier {
    stroke: #007BFF;
    fill: rgba(0, 123, 255, 0.1);
}

.heritage-icon-tier.selected {
    fill: rgba(0, 123, 255, 0.3);
    stroke: #228B22;
}

/* Microphone icon */
.heritage-icon-mic {
    stroke: #333;
}

.heritage-icon-mic.recording {
    stroke: #E53E3E;
    animation: iconPulse 1.5s ease-in-out infinite;
}

/* ==================== ACCESSIBILITY ==================== */

.heritage-icon[aria-hidden="true"] {
    pointer-events: none;
}

.heritage-icon-button:focus {
    outline: 2px solid #007BFF;
    outline-offset: 2px;
}

.heritage-icon-button:focus:not(:focus-visible) {
    outline: none;
}

/* ==================== RESPONSIVE ==================== */

@media (max-width: 768px) {
    .heritage-icon {
        width: 20px;
        height: 20px;
    }

    .heritage-icon-lg {
        width: 28px;
        height: 28px;
    }

    .heritage-icon-xl {
        width: 40px;
        height: 40px;
    }
}

/* ==================== UTILITY CLASSES ==================== */

.icon-inline {
    display: inline-block;
    vertical-align: middle;
    margin: 0 4px;
}

.icon-center {
    display: block;
    margin: 0 auto;
}

.icon-rotate-90 {
    transform: rotate(90deg);
}

.icon-rotate-180 {
    transform: rotate(180deg);
}

.icon-rotate-270 {
    transform: rotate(270deg);
}

.icon-flip-h {
    transform: scaleX(-1);
}

.icon-flip-v {
    transform: scaleY(-1);
}