:root {
  --surface: #f9f9f9;
  --surface-dim: #dadada;
  --surface-bright: #f9f9f9;
  --surface-container-lowest: #ffffff;
  --surface-container-low: #f3f3f3;
  --surface-container: #eeeeee;
  --surface-container-high: #e8e8e8;
  --surface-container-highest: #e2e2e2;
  --on-surface: #1b1b1b;
  --on-surface-variant: #4c4546;
  --inverse-surface: #303030;
  --inverse-on-surface: #f1f1f1;
  --outline: #7e7576;
  --outline-variant: #cfc4c5;
  --primary: #000000;
  --on-primary: #ffffff;
  --primary-container: #1b1b1b;
  --on-primary-container: #848484;
  --secondary: #5d5f5f;
  --secondary-container: #dfe0e0;
  --error: #ba1a1a;
  --error-container: #ffdad6;
  --on-error-container: #93000a;
  --background: #f9f9f9;
  --on-background: #1b1b1b;
  --in-stock: #4CAF50;
  --sold-out: #F44336;
}

* { box-sizing: border-box; }

body {
  font-family: 'Inter', sans-serif;
  background: var(--background);
  color: var(--on-background);
  margin: 0;
}

.font-display-lg { font-size: 64px; font-weight: 700; line-height: 1.1; letter-spacing: -0.04em; }
.font-display-mobile { font-size: 40px; font-weight: 700; line-height: 1.1; letter-spacing: -0.03em; }
.font-headline-md { font-size: 32px; font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; }
.font-headline-sm { font-size: 24px; font-weight: 600; line-height: 1.3; }
.font-body-lg { font-size: 18px; font-weight: 400; line-height: 1.6; }
.font-body-md { font-size: 16px; font-weight: 400; line-height: 1.6; }
.font-label-caps { font-size: 12px; font-weight: 600; line-height: 1; letter-spacing: 0.1em; text-transform: uppercase; }

.sharp { border-radius: 0; }

.btn-primary {
  background: var(--primary);
  color: var(--on-primary);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 16px;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.btn-primary:hover { opacity: 0.8; }
.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }

.input-field {
  width: 100%;
  background: transparent;
  border: 1px solid var(--outline);
  color: var(--on-surface);
  font-size: 16px;
  padding: 14px 16px;
}
.input-field:focus { outline: none; border-color: var(--primary); }

.card {
  background: var(--surface-container-lowest);
  border: 1px solid var(--outline-variant);
}

.stock-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.stock-dot.in { background: var(--in-stock); }
.stock-dot.out { background: var(--sold-out); }

::-webkit-scrollbar { display: none; }
body { -ms-overflow-style: none; scrollbar-width: none; }

/* ---- Language switcher ---- */
.lang-switcher { display: flex; gap: 8px; }
.lang-btn {
  background: rgba(0,0,0,0.04); border: 1px solid var(--outline-variant); cursor: pointer;
  font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--on-surface); opacity: 1;
  padding: 7px 12px; transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.lang-btn:hover { border-color: var(--primary); }
.lang-btn.lang-active { color: var(--on-primary); background: var(--primary); border-color: var(--primary); }

/* White-text language buttons — dark pill so they stay legible on both
   photo backgrounds and the light drawer */
.lang-switcher.on-dark .lang-btn {
  color: #fff; background: rgba(0,0,0,0.55); border-color: rgba(255,255,255,0.55);
  backdrop-filter: blur(4px);
}
.lang-switcher.on-dark .lang-btn:hover { border-color: #fff; background: rgba(0,0,0,0.7); }
.lang-switcher.on-dark .lang-btn.lang-active { color: #000; background: #fff; border-color: #fff; }
