/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"src/app/layout.js","import":"Inter","arguments":[{"subsets":["latin"],"variable":"--font-inter","display":"swap"}],"variableName":"inter"} ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/ba9851c3c22cd980-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/21350d82a1f187e9-s.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/df0a9ae256c0569c-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/8e9860b6e62d6359-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: '__Inter_f367f3';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: '__Inter_Fallback_f367f3';src: local("Arial");ascent-override: 90.49%;descent-override: 22.56%;line-gap-override: 0.00%;size-adjust: 107.06%
}.__className_f367f3 {font-family: '__Inter_f367f3', '__Inter_Fallback_f367f3';font-style: normal
}.__variable_f367f3 {--font-inter: '__Inter_f367f3', '__Inter_Fallback_f367f3'
}

/*!*****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./src/app/globals.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************/
:root {
  /* Base Colors - HSL */
  --background: 0 0% 100%;
  --foreground: 222 47% 11%;

  /* Brand Colors */
  --primary: 221 83% 53%; /* Electric Blue */
  --primary-foreground: 210 40% 98%;
  
  --muted: 210 40% 96.1%;
  --muted-foreground: 215.4 16.3% 46.9%;

  --card: 0 0% 100%;
  --card-foreground: 222 47% 11%;
  
  --border: 214 32% 91%;
  --input: 214 32% 91%;
  
  --radius: 0.5rem;
}

@media (prefers-color-scheme: dark) {
  :root {
    --background: 222 47% 11%;
    --foreground: 210 40% 98%;
    
    --primary: 217 91% 60%;
    --primary-foreground: 222 47% 11%;
    
    --muted: 217 33% 17%;
    --muted-foreground: 215 20.2% 65.1%;
    
    --card: 217 33% 17%;
    --card-foreground: 210 40% 98%;
    
    --border: 217 33% 17%;
    --input: 217 33% 17%;
  }
}

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html,
body {
  max-width: 100vw;
  overflow-x: hidden;
}

body {
  color: hsl(var(--foreground));
  background: hsl(var(--background));
  font-family: var(--font-inter), sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: inherit;
  text-decoration: none;
}

/* Utility Classes */
.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius);
  font-weight: 500;
  transition: all 0.2s ease;
  cursor: pointer;
  border: none;
  outline: none;
}

.btn-primary {
  background-color: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
}

.btn-primary:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./src/components/commerce/CartSidebar.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
.CartSidebar_overlay__kNOJ9 {
    position: fixed;
    inset: 0;
    background: hsla(0, 0%, 0%, 0.5);
    -webkit-backdrop-filter: blur(4px);
            backdrop-filter: blur(4px);
    z-index: 99;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.CartSidebar_overlay__kNOJ9.CartSidebar_open__9Ouvb {
    opacity: 1;
    pointer-events: auto;
}

.CartSidebar_sidebar__Uaiqs {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: 100%;
    max-width: 400px;
    background: hsl(var(--background));
    border-left: 1px solid hsl(var(--border));
    z-index: 100;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
}

.CartSidebar_sidebar__Uaiqs.CartSidebar_open__9Ouvb {
    transform: translateX(0);
}

.CartSidebar_header__4jdS_ {
    padding: 1.5rem;
    border-bottom: 1px solid hsl(var(--border));
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.CartSidebar_title__KhDjy {
    font-size: 1.25rem;
    font-weight: 700;
}

.CartSidebar_closeBtn__Tcm5F {
    background: transparent;
    border: none;
    cursor: pointer;
    color: hsl(var(--foreground));
}

.CartSidebar_items__WVY5D {
    flex: 1 1;
    overflow-y: auto;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.CartSidebar_empty__5HXBl {
    text-align: center;
    color: hsl(var(--muted-foreground));
    margin-top: 3rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.CartSidebar_continueBtn__jAHAP {
    background: hsl(var(--primary));
    color: hsl(var(--primary-foreground));
    border: none;
    padding: 0.5rem 1rem;
    border-radius: var(--radius);
    cursor: pointer;
}

.CartSidebar_item__xTv_4 {
    display: flex;
    gap: 1rem;
}

.CartSidebar_imagePlaceholder__XmG7A {
    width: 80px;
    height: 80px;
    background: hsl(var(--muted));
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: hsl(var(--muted-foreground) / 0.5);
    font-size: 1.5rem;
}

.CartSidebar_itemContent__wXWvu {
    flex: 1 1;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.CartSidebar_itemName__5uR_c {
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.2;
}

.CartSidebar_itemPrice___m7Hm {
    color: hsl(var(--primary));
    font-weight: 600;
    font-size: 0.9rem;
}

.CartSidebar_controls__Em_WU {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
}

.CartSidebar_quantity__mvcT3 {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: hsl(var(--muted));
    border-radius: var(--radius);
    padding: 0.2rem;
}

.CartSidebar_quantity__mvcT3 button {
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    cursor: pointer;
    color: hsl(var(--foreground));
}

.CartSidebar_quantity__mvcT3 span {
    font-size: 0.85rem;
    font-weight: 600;
    min-width: 1rem;
    text-align: center;
}

.CartSidebar_removeBtn__CWLHT {
    background: transparent;
    border: none;
    color: hsl(var(--muted-foreground));
    cursor: pointer;
    transition: color 0.2s;
}

.CartSidebar_removeBtn__CWLHT:hover {
    color: red;
}

.CartSidebar_footer__mThfv {
    padding: 1.5rem;
    border-top: 1px solid hsl(var(--border));
    background: hsl(var(--card));
}

.CartSidebar_total__nYBDf {
    display: flex;
    justify-content: space-between;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 1rem;
}

.CartSidebar_checkoutBtn__frT_k {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    background: hsl(var(--primary));
    color: hsl(var(--primary-foreground));
    padding: 0.8rem;
    border-radius: var(--radius);
    font-weight: 600;
    transition: opacity 0.2s;
}

.CartSidebar_checkoutBtn__frT_k:hover {
    opacity: 0.9;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./src/components/ui/Toast.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************/
.Toast_toastContainer__NyhhO {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}

.Toast_toast__O7TdZ {
    pointer-events: all;
    background: white;
    border-radius: 8px;
    padding: 12px 16px;
    min-width: 300px;
    max-width: 400px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    animation: Toast_slideIn__n_n_j 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    border-left: 4px solid transparent;
    color: #1e293b;
}

.Toast_toast__O7TdZ.Toast_success__JwS_M {
    border-left-color: #22c55e;
}

.Toast_toast__O7TdZ.Toast_success__JwS_M .Toast_icon__71ttU {
    color: #22c55e;
}

.Toast_toast__O7TdZ.Toast_error__ALBo_ {
    border-left-color: #ef4444;
}

.Toast_toast__O7TdZ.Toast_error__ALBo_ .Toast_icon__71ttU {
    color: #ef4444;
}

.Toast_toast__O7TdZ.Toast_warning__BuYwh {
    border-left-color: #f59e0b;
}

.Toast_toast__O7TdZ.Toast_warning__BuYwh .Toast_icon__71ttU {
    color: #f59e0b;
}

.Toast_toast__O7TdZ.Toast_info__P3fqI {
    border-left-color: #3b82f6;
}

.Toast_toast__O7TdZ.Toast_info__P3fqI .Toast_icon__71ttU {
    color: #3b82f6;
}

.Toast_icon__71ttU {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
}

.Toast_message__Ndn3l {
    flex: 1 1;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 500;
}

.Toast_closeBtn__kWaYw {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #94a3b8;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
}

.Toast_closeBtn__kWaYw:hover {
    color: #64748b;
}

@keyframes Toast_slideIn__n_n_j {
    from {
        transform: translateX(100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@media (max-width: 640px) {
    .Toast_toastContainer__NyhhO {
        top: auto;
        bottom: 20px;
        left: 20px;
        right: 20px;
    }

    .Toast_toast__O7TdZ {
        width: 100%;
        min-width: auto;
    }
}
