@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

/* =====================================
   DESIGN TOKENS - THEME VARIABLES
==================================== */

:root {
    /* Typography Scale */
    --font-family-base: "Montserrat", sans-serif;
    --font-size-xs: 0.75rem;      /* 12px */
    --font-size-sm: 0.875rem;     /* 14px */
    --font-size-base: 1rem;       /* 16px */
    --font-size-lg: 1.125rem;     /* 18px */
    --font-size-xl: 1.5rem;       /* 24px */
    --font-size-2xl: 2rem;        /* 32px */
    --font-size-3xl: 2.5rem;      /* 40px */
    --font-size-4xl: 3rem;        /* 48px */

    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-black: 900;

    --line-height-tight: 1.2;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.75;

    /* Spacing Scale (8px grid unit) */
    --space-xs: 0.25rem;   /* 4px */
    --space-sm: 0.5rem;    /* 8px */
    --space-md: 1rem;      /* 16px */
    --space-lg: 1.5rem;    /* 24px */
    --space-xl: 2rem;      /* 32px */
    --space-2xl: 3rem;     /* 48px */
    --space-3xl: 4rem;     /* 64px */
    --space-4xl: 6rem;     /* 96px */

    /* Border Radius */
    --radius-sm: 0.375rem;  /* 6px */
    --radius-md: 0.5rem;    /* 8px */
    --radius-lg: 1rem;      /* 16px */
    --radius-xl: 1.5rem;    /* 24px */

    /* Shadows */
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);

    /* Transitions */
    --transition-fast: 150ms ease-in-out;
    --transition-base: 300ms ease-in-out;
    --transition-slow: 500ms ease-in-out;

    /* Container width */
    --container-max-width: 1200px;
}

/* ===== LIGHT MODE THEME VARIABLES ===== */

@media (prefers-color-scheme: light) {
    :root {
        --color-primary: #413ff2;
        --color-secondary: #8281e7;
        --color-accent: #141394;
        --color-text: #1a1a2e;
        --color-background: #f0f0f5;
        --color-surface: #ffffff;
        --color-border: #d0d0d5;
        --color-success: #059669;
        --color-warning: #d97706;
        --color-error: #dc2626;
    }

    #basket-icon {
        content: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABzUlEQVR4nO2YvS4EURiGH0KClo4VanEHsmhwB6JClhsQV4AEBb2ICBXxUwlCXAAVofYftkBoKPwc2eQQOWY4M3vO5CvmSd7qJO/3vjObb2YHUlJSolIBjAHnwAegitS79hrV3l4pBfYchA7Trp7hjT6P4ZVWr88CRwkUOAZKfIRvNwa9AQ0OfOuBV8O7FQ+sG0NWHHqvGd6rOCboKmUd+rd5urvfTAb8Tl1zaMwYd2VcCdwZ5jncM2DMeACqXBgPGsb3rowtLlShlPPV6ezWBjDheqX6Wp2JrdR13+vN50pN7AFjsVIbsaATuEjgVaFYXeisvzgTEE5Z6jSowK2AYMpSN0EFlgUEU5ZaCiqQExBMWao/qECdgGDKUpmwTXQSwWQDqNXFNz2cqxAVMoYyHcGoMPiLjIdzFaKpvwp0RTAycX2uQtTx3xvhs+ACLzrjn+wILrCNBcOCCwzZFGgWXKAJS64EFriO8udmXmCBOSLQI7BAd5QCNfqrsZQH2TtQTUQO/jHd1CEKw7c8nKsf2icGY5abIQmNxCmQFRBcabXEKVAGPAoI/wSUE5NZAQVmKIKM5UPNly6NbRX7+9AikE8weB5Y0LNTUlJSkMsnfrLFFda1aLUAAAAASUVORK5CYII=');
    }
}

/* ===== DARK MODE THEME VARIABLES ===== */

@media (prefers-color-scheme: dark) {
    :root {
        --color-primary: #8281e7;
        --color-secondary: #141394;
        --color-accent: #413ff2;
        --color-text: #ebeaf8;
        --color-background: #060616;
        --color-surface: #0f0f1f;
        --color-border: #2a2a3e;
        --color-success: #10b981;
        --color-warning: #f59e0b;
        --color-error: #ef4444;
    }

    #basket-icon {
        content: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB3ElEQVR4nO2Zuy4FQRjHl5CgpeMItXgDcWnwBqJCzvEC4gmQoKAXEaEiLpUgxANQEWr3oEBoKFx+sskUa+xl9uzMMZvsr53s//t+u5tv9uI4GRkZsQCqgAngEvgmOV8ia9zNdkwClAMHmGPfrWFSYBDzDJgUOCmBwClQZqL5LqnQJ9CkIbcR+JCyO/R0/bvQplRkTWP2hpS9ris77Cy1a8zvNHF1vQWm5ftUW7gAOJZqTDo6AKqBRyk8ryXcA1CQajwDNU5SgGEp+ElLsNqJKpgYnXourX+tKa0j1dToLNlI5e/o1DveTI7Ukm0waiO12YkC6AGusJ8rt1c/gQvSw7mfwD3p4c5PYJX0sOInkCc9DPkJNJAeckGT6CxGyBZQL8S3DawHcRY2SmdRp8FzXM7AehAzYQK9KOJzrNb1ELqjngjfsFfg3e0xUEAE7VkssBvavAgatVhgREWg1WKBlkgBEXZjocCt8ssNsGihwIJS8yKs30KBvjgCdeKrsS0b2RdQqywgQo8iQrfFY4BbfMfAupfDWM0LAfcfgC2MFSPQjj20FSNQAbz8d+fAK1AZW0BIzP9398BcUc0LgZzKpmaQa++0SvJ9aBl4KGHjD8CSWztR8xkZGRmOaX4A2KYcdZOGuvEAAAAASUVORK5CYII=');
    }
}



/* =====================================
   BASE STYLES - TYPOGRAPHY & ELEMENTS
==================================== */

html {
    font-size: 16px;
    font-family: var(--font-family-base);
    line-height: var(--line-height-normal);
    background: var(--color-background);
    color: var(--color-text);
    scroll-behavior: smooth;
}

body {
    background: var(--color-background);
    color: var(--color-text);
}

/* Typography Base */
h1, h2, h3, h4, h5, h6 {
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    margin-bottom: var(--space-md);
}

h1 {
    font-size: var(--font-size-4xl);
    font-weight: var(--font-weight-black);
}

h2 {
    font-size: var(--font-size-3xl);
}

h3 {
    font-size: var(--font-size-2xl);
}

h4 {
    font-size: var(--font-size-xl);
}

h5 {
    font-size: var(--font-size-lg);
}

h6 {
    font-size: var(--font-size-base);
}

p {
    margin-bottom: var(--space-md);
    line-height: var(--line-height-relaxed);
}

a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--color-accent);
}

a:focus {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

