/* ========================================
   Channon's BBQ — Custom Styles
   ======================================== */

/* Color System */
:root {
    --plum-50: #f5f0ff;
    --plum-100: #ede5ff;
    --plum-200: #dccffd;
    --plum-300: #c4a8f8;
    --plum-400: #a878f0;
    --plum-500: #8b4fe0;
    --plum-600: #7735c8;
    --plum-700: #642aab;
    --plum-800: #53228f;
    --plum-900: #431c73;
    --plum-950: #240a40;
    
    --amber-50: #fffbeb;
    --amber-100: #fef3c7;
    --amber-200: #fde68a;
    --amber-300: #fcd34d;
    --amber-400: #fbbf24;
    --amber-500: #f59e0b;
    --amber-600: #d97706;
    --amber-700: #b45309;
    --amber-800: #92400e;
    --amber-900: #78350f;
}

/* Tailwind Config */
@tailwind base;
@tailwind components;
@tailwind utilities;

@layer utilities {
    .font-inter { font-family: 'Inter', sans-serif; }
    .font-playfair { font-family: 'Playfair Display', serif; }
}

/* Custom Color Classes */
.text-plum-50 { color: var(--plum-50); }
.text-plum-100 { color: var(--plum-100); }
.text-plum-200 { color: var(--plum-200); }
.text-plum-300 { color: var(--plum-300); }
.text-plum-400 { color: var(--plum-400); }
.text-plum-500 { color: var(--plum-500); }
.text-plum-600 { color: var(--plum-600); }
.text-plum-700 { color: var(--plum-700); }
.text-plum-800 { color: var(--plum-800); }
.text-plum-900 { color: var(--plum-900); }
.text-plum-950 { color: var(--plum-950); }

.bg-plum-50 { background-color: var(--plum-50); }
.bg-plum-100 { background-color: var(--plum-100); }
.bg-plum-200 { background-color: var(--plum-200); }
.bg-plum-300 { background-color: var(--plum-300); }
.bg-plum-400 { background-color: var(--plum-400); }
.bg-plum-500 { background-color: var(--plum-500); }
.bg-plum-600 { background-color: var(--plum-600); }
.bg-plum-700 { background-color: var(--plum-700); }
.bg-plum-800 { background-color: var(--plum-800); }
.bg-plum-900 { background-color: var(--plum-900); }
.bg-plum-950 { background-color: var(--plum-950); }

.text-amber-50 { color: var(--amber-50); }
.text-amber-100 { color: var(--amber-100); }
.text-amber-200 { color: var(--amber-200); }
.text-amber-300 { color: var(--amber-300); }
.text-amber-400 { color: var(--amber-400); }
.text-amber-500 { color: var(--amber-500); }
.text-amber-600 { color: var(--amber-600); }
.text-amber-700 { color: var(--amber-700); }
.text-amber-800 { color: var(--amber-800); }
.text-amber-900 { color: var(--amber-900); }

.bg-amber-50 { background-color: var(--amber-50); }
.bg-amber-100 { background-color: var(--amber-100); }
.bg-amber-200 { background-color: var(--amber-200); }
.bg-amber-300 { background-color: var(--amber-300); }
.bg-amber-400 { background-color: var(--amber-400); }
.bg-amber-500 { background-color: var(--amber-500); }
.bg-amber-600 { background-color: var(--amber-600); }
.bg-amber-700 { background-color: var(--amber-700); }
.bg-amber-800 { background-color: var(--amber-800); }
.bg-amber-900 { background-color: var(--amber-900); }

/* Scroll Reveal Animations */
.reveal {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 0;
        transform: translateY(30px);
        transition: opacity 0.7s ease, transform 0.7s ease;
    }
    
    .reveal.revealed {
        opacity: 1;
        transform: translateY(0);
    }
}

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

/* Spinner Animation */
@keyframes spin {
    to { transform: rotate(360deg); }
}

.animate-spin {
    animation: spin 0.8s linear infinite;
}

/* Dash Animation for spinner circle */
@keyframes dash {
    to { stroke-dashoffset: 0; }
}

.animate-dash {
    animation: dash 0.8s linear infinite;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--plum-50);
}

::-webkit-scrollbar-thumb {
    background: var(--plum-300);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--plum-500);
}

/* Selection Color */
::selection {
    background-color: var(--plum-200);
    color: var(--plum-900);
}

/* Focus styles */
:focus-visible {
    outline: 2px solid var(--plum-500);
    outline-offset: 2px;
}
