/* Dark mode contrast fixes */
[data-theme="dark"] .btn,
[data-theme="dark"] button,
[data-theme="dark"] input[type="submit"],
[data-theme="dark"] .button {
  background: var(--accent, #0ea5e9);
  color: #fff;
  border-color: transparent;
}

[data-theme="dark"] .btn:hover,
[data-theme="dark"] button:hover,
[data-theme="dark"] input[type="submit"]:hover,
[data-theme="dark"] .button:hover {
  background: #0284c7;
}

/* Override: keep gold CTAs in dark mode */
[data-theme="dark"] .btn.btn-primary,
[data-theme="dark"] .btn.add-to-cart {
  background: var(--gold) !important;
  color: #0b1220 !important;
  border-color: #e2c45b !important;
  box-shadow: 0 8px 22px -10px rgba(212, 175, 55, 0.35);
}

[data-theme="dark"] .btn.btn-primary:hover,
[data-theme="dark"] .btn.add-to-cart:hover {
  background: var(--gold-600) !important;
}

/* Outline/secondary buttons keep contrast */
[data-theme="dark"] .btn.secondary,
[data-theme="dark"] .btn.outline,
[data-theme="dark"] .button.outline {
  background: transparent;
  color: #e5e7eb;
  border: 1px solid #475569;
}

[data-theme="dark"] .btn.secondary:hover,
[data-theme="dark"] .btn.outline:hover,
[data-theme="dark"] .button.outline:hover {
  border-color: #94a3b8;
  color: #ffffff;
}

/* Cards and feature grid readability */
[data-theme="dark"] .feature-card {
  background: var(--card, #0b1220);
  border-color: var(--border, #1f2937);
}

[data-theme="dark"] .fc-title {
  color: var(--text, #e5e7eb);
}

[data-theme="dark"] .fc-price {
  color: var(--accent, #0ea5e9);
}

/* Links in dark mode should pop */
[data-theme="dark"] a {
  color: var(--accent, #0ea5e9);
}

[data-theme="dark"] a:hover {
  color: #38bdf8;
}

/* Keep brand gold in dark mode */
[data-theme="dark"] .brand {
  color: var(--gold);
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4), 0 0 10px rgba(255, 193, 37, 0.4);
}

[data-theme="dark"] .brand:hover {
  color: var(--gold-600);
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5), 0 0 14px rgba(255, 193, 37, 0.5);
}

[data-theme="dark"] .header-content .logo a {
  color: var(--gold);
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4), 0 0 10px rgba(255, 193, 37, 0.4);
}

[data-theme="dark"] .header-content .logo a:hover {
  color: var(--gold-600);
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5), 0 0 14px rgba(255, 193, 37, 0.5);
}

/* Form inputs readable in dark mode */
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
  background: #0b1220;
  color: #e5e7eb;
  border-color: #334155;
}

[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
  color: #94a3b8;
}

/* Remove hero wave decorative gap */
.hero-wave {
  display: none !important;
}

/* Feature panel replacing hero slider */
.feature-panel {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  display: grid;
  gap: 10px;
}

.feature-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.feature-head h3 {
  margin: 0;
  font-size: 1.05rem;
}

.feature-head .see-all {
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
}

.feature-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.feature-card {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 6px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}

.feature-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

.fc-media {
  aspect-ratio: 4 / 3;
  background: #f8fafc;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.fc-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.fc-meta {
  display: grid;
  gap: 2px;
  padding: 8px;
}

.fc-title {
  font-weight: 600;
  font-size: .95rem;
  line-height: 1.2;
}

.fc-price {
  color: var(--accent);
  font-weight: 700;
}

@media (max-width: 600px) {
  .feature-grid {
    grid-template-columns: 1fr;
  }
}

/* New carousel styling */
.carousel {
  position: relative;
  display: grid;
  grid-template-rows: auto auto;
  gap: 8px;
  height: auto;
}

.carousel-viewport {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: #000;
  border: 2px solid var(--gold, #FFC125);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
  aspect-ratio: 4 / 3;
  width: 100%;
  max-width: 520px;
  height: auto;
  margin: 0 auto;
}

.carousel-track {
  display: flex;
  height: 100%;
  will-change: transform;
  transition: transform 500ms ease;
}

.carousel-slide {
  min-width: 100%;
  height: 100%;
  position: relative;
  display: grid;
  place-items: center;
}

.carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

.carousel-viewport::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 36%;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.45) 80%);
  pointer-events: none;
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
}

.carousel-caption {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 10px;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: .9rem;
  max-width: calc(100% - 24px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  cursor: pointer;
  z-index: 3;
}

.carousel-arrow:hover {
  background: rgba(0, 0, 0, 0.6);
}

.carousel-arrow.prev {
  left: 12px;
}

.carousel-arrow.next {
  right: 12px;
}

.carousel-dots {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 8px;
  background: rgba(0, 0, 0, 0.35);
  padding: 6px 10px;
  border-radius: 999px;
}

.carousel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(0, 0, 0, 0.3);
  cursor: pointer;
}

[data-theme="dark"] .carousel-dot {
  background: rgba(255, 255, 255, 0.25);
  border-color: rgba(255, 255, 255, 0.35);
}

.carousel-dot.active {
  background: var(--accent, #0ea5e9);
  border-color: var(--accent, #0ea5e9);
}

.carousel-thumbs {
  display: grid;
  grid-auto-flow: column;
  gap: 8px;
  overflow-x: auto;
  padding: 8px 0 4px;
  justify-content: center;
}

@media (max-width: 600px) {
  .carousel-viewport {
    max-width: 360px;
  }
}

.carousel-thumb {
  width: 64px;
  height: 48px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border);
  cursor: pointer;
  opacity: .7;
}

.carousel-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.carousel-thumb.active {
  outline: 2px solid var(--accent, #0ea5e9);
  opacity: 1;
}

@media (max-width: 900px) {
  .carousel-thumb {
    width: 52px;
    height: 40px;
  }
}

.hero .right {
  padding: 0 !important;
  margin: 0 !important;
}

.hero .right>* {
  margin: 0 !important;
}

.hero .slide {
  border: 0;
  border-radius: 16px;
  overflow: hidden;
  background: transparent;
}

.hero .slide .caption {
  margin: 0;
  pointer-events: none;
}

.hero .dots {
  margin-top: 0 !important;
}

/* Layout fixes: prevent stray horizontal scroll and inner gaps */
html,
body {
  overflow-x: hidden;
}

/* Hero slider spacing fixes */
.hero {
  gap: 0 !important;
}

.hero .right,
.hero .slider,
.hero .slides,
.hero .slide {
  margin: 0;
  padding: 100;
}

.hero .slider {
  overflow: hidden;
  height: 100%;
}

.hero .slides {
  display: flex;
  gap: 0 !important;
  height: 100%;
}

.hero .slide {
  min-width: 100%;
  height: 100%;
  display: block;
  position: relative;
}

.hero .slide img {
  display: block;
  width: 30%;
  height: 74%;
  object-fit: cover;
}

/* Cart table responsiveness and spacing safeguards */
.cart-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
}

.cart-table th,
.cart-table td {
  white-space: nowrap;
}

@media (max-width: 700px) {
  .cart-table {
    display: block;
    width: 100%;
    overflow-x: auto;
  }
}

/* CSS Reset + Variables */
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

html {
  height: 100%;
  overflow-x: hidden !important;
  width: 100% !important;
  max-width: 100vw !important;
  box-sizing: border-box;
}

body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  margin: 0;
  padding: 0;
  overflow-x: hidden !important;
  width: 100% !important;
  max-width: 100vw !important;
  box-sizing: border-box;
  word-break: break-word;
  overflow-wrap: break-word;
}

* {
  box-sizing: border-box;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
}

:root {
  /* Theme: Gold, White, Electric Blue */
  --bg: #ffffff;
  --surface: #ffffff;
  --muted: #64748b;
  --text: #0f172a;
  --card: #ffffff;
  --border: #e5e7eb;
  --gold: #FFC125;
  --gold-600: #E6A800;
  --blue: #0ea5e9;
  --blue-600: #0284c7;
  --ring: rgba(14, 165, 233, 0.45);
  /* electric blue focus */
  --success: #22c55e;
  --header-bg: rgba(255, 255, 255, 0.85);
  --header-bg-scrolled: rgba(255, 255, 255, 0.95);
}

/* Dark theme */
[data-theme="dark"] {
  --bg: #0b1020;
  --surface: #0f172a;
  --muted: #94a3b8;
  --text: #e2e8f0;
  --card: #111827;
  --border: #1f2937;
  --header-bg: rgba(13, 18, 32, 0.78);
  --header-bg-scrolled: rgba(13, 18, 32, 0.88);
}

body {
  background:
    radial-gradient(800px 400px at 110% -10%, rgba(14, 165, 233, 0.08) 0%, transparent 50%),
    radial-gradient(700px 360px at -10% 0%, rgba(212, 175, 55, 0.10) 0%, transparent 55%),
    var(--bg);
  color: var(--text);
  font-family: 'Poppins', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
}

.container {
  width: min(1200px, 100%);
  margin-inline: auto;
  padding-inline: 4%;
  box-sizing: border-box;
  max-width: 100vw;
  overflow-x: hidden;
}

/* Header / Nav */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: saturate(150%) blur(10px);
  background: var(--header-bg);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 2px 10px -8px rgba(2, 6, 23, 0.35);
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
  overflow-y: visible;
  left: 0;
  right: 0;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.site-header.scrolled {
  background: var(--header-bg-scrolled);
  box-shadow: 0 8px 24px -18px rgb(252, 253, 255);
}

/* Header Search Bar - Only visible on homepage */
.header-search {
  display: none; /* Hidden by default */
  align-items: center;
  flex: 1;
  max-width: 600px;
  margin: 0 24px;
}

/* Show search bar only on homepage */
body.homepage .header-search {
  display: flex;
}

.search-input {
  flex: 1;
  padding: 12px 16px;
  border: 2px solid var(--border);
  border-right: none;
  border-radius: 8px 0 0 8px;
  font-size: 0.95rem;
  background: var(--surface);
  color: var(--text);
  transition: all 0.2s ease;
}

.search-input:focus {
  outline: none;
  border-color: #f57c00;
  box-shadow: 0 0 0 3px rgba(245, 124, 0, 0.1);
}

.search-input::placeholder {
  color: var(--text-muted);
  opacity: 0.6;
}

.search-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: #f57c00;
  color: white;
  border: none;
  border-radius: 0 8px 8px 0;
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  height: 48px;
}

.search-btn:hover {
  background: #e66700;
  transform: translateY(-1px);
}

.search-btn:active {
  transform: translateY(0);
}

.search-btn svg {
  flex-shrink: 0;
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  width: 100%;
  max-width: 100%;
  gap: 24px;
}
  max-width: 100%;
  gap: 8px;
  flex-wrap: nowrap;
  min-width: 0;
  box-sizing: border-box;
}

.brand {
  font-family: 'Poppins', ui-sans-serif, system-ui, -apple-system, sans-serif;
  font-weight: 900;
  letter-spacing: 0.5px;
  color: var(--gold);
  text-decoration: none;
  font-size: 1.35rem;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.15), 0 0 8px rgba(255, 193, 37, 0.3);
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  gap: 0;
  flex-shrink: 1;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  position: relative;
}

.brand>* {
  flex-shrink: 0;
}

.brand:hover {
  color: var(--gold-600);
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2), 0 0 12px rgba(255, 193, 37, 0.4);
  transform: translateY(-1px);
}

/* Logo icon styling */
#logo-icon {
  height: 28px;
  width: auto;
  vertical-align: middle;
  margin-left: 8px;
  display: inline-block;
}

/* Enhanced brand styling for checkout/login pages */
.header-content .logo {
  display: inline-flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
}

.header-content .logo a,
.header-content .logo span {
  font-family: 'Poppins', ui-sans-serif, system-ui, -apple-system, sans-serif;
  font-weight: 900;
  letter-spacing: 0.5px;
  color: var(--gold);
  text-decoration: none;
  font-size: 1.35rem;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.15), 0 0 8px rgba(255, 193, 37, 0.3);
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  gap: 0;
}

.header-content .logo a:hover {
  color: var(--gold-600);
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2), 0 0 12px rgba(255, 193, 37, 0.4);
  transform: translateY(-1px);
}

/* Logo icon styling for checkout/login pages */
.header-content .logo #logo-icon {
  height: 28px;
  width: auto;
  vertical-align: middle;
  margin-left: 8px;
  display: inline-block;
}

/* Main header styling for checkout/login pages */
.main-header {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: saturate(150%) blur(10px);
  background: var(--header-bg);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 2px 10px -8px rgba(2, 6, 23, 0.35);
  width: 100%;
  max-width: 100vw;
  overflow: visible;
  /* Ensure dropdowns are not clipped */
  left: 0;
  right: 0;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  width: 100%;
  max-width: 100%;
  gap: 24px;
  flex-wrap: nowrap;
  min-width: 0;
  box-sizing: border-box;
}

/* Main navigation - horizontal styling */
.main-nav {
  display: flex;
  align-items: center;
  flex: 1;
  justify-content: center;
  margin: 0 auto;
}

.main-nav ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: nowrap;
}

.main-nav ul li {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.main-nav ul li a {
  color: var(--text);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  padding: 8px 16px;
  border-radius: 8px;
  transition: all 0.2s ease;
  display: inline-block;
  opacity: 0.85;
}

.main-nav ul li a:hover,
.main-nav ul li a.active {
  background: rgba(14, 165, 233, 0.08);
  opacity: 1;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
  margin-left: auto;
}

.cart-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 12px;
  border-radius: 10px;
  color: var(--text);
  background: rgba(14, 165, 233, 0.06);
  border: 1px solid transparent;
  border: 1px solid rgba(14, 165, 233, 0.12);
  text-decoration: none;
  transition: all 0.2s ease;
}

.cart-link:hover {
  background: rgba(14, 165, 233, 0.12);
  border-color: rgba(14, 165, 233, 0.2);
  transform: translateY(-1px);
}

.cart-link svg {
  width: 20px;
  height: 20px;
}

.cart-count {
  position: absolute;
  top: -4px;
  right: -4px;
  background: #ef4444;
  color: white;
  border-radius: 999px;
  padding: 3px 7px;
  font-size: 11px;
  font-weight: 600;
  min-width: 22px;
  text-align: center;
  line-height: 1;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.cart-link .cart-count {
  display: inline-block;
}

/* Hide main-nav on mobile for checkout/login pages */
@media (max-width: 992px) {
  .main-nav {
    display: none;
  }
}

/* Mobile optimizations for main-header */
@media (max-width: 768px) {
  .main-header {
    padding: 0;
    left: 0;
    right: 0;
    margin: 0;
  }

  .main-header .container {
    padding-inline: 1% !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
  }

  .header-content {
    padding: 6px 0;
    gap: 1px;
  }

  .header-content .logo span {
    font-size: 0.8rem !important;
    max-width: calc(100vw - 135px) !important;
  }

  .header-content .logo #logo-icon {
    height: 16px !important;
    margin-left: 3px !important;
  }

  .header-actions {
    gap: 2px;
  }

  .cart-link {
    padding: 3px 4px !important;
    min-width: 26px !important;
    min-height: 26px !important;
  }

  .cart-link svg {
    width: 14px !important;
    height: 14px !important;
  }

  .cart-count {
    font-size: 8px;
    padding: 1px 3px;
    min-width: 14px;
    top: -1px;
    right: -1px;
  }
}

@media (max-width: 320px) {
  .main-header .container {
    padding-inline: 1% !important;
  }

  .header-content {
    padding: 6px 0;
    gap: 1px;
  }

  .header-content .logo span {
    font-size: 0.75rem !important;
    max-width: calc(100vw - 100px) !important;
  }

  .header-content .logo #logo-icon {
    height: 16px !important;
    margin-left: 2px !important;
  }

  .cart-link {
    padding: 2px 3px !important;
    min-width: 24px !important;
    min-height: 24px !important;
  }

  .cart-link svg {
    width: 12px !important;
    height: 12px !important;
  }
}

.nav-links {
  position: fixed;
  inset: 64px 0 auto 0;
  background: var(--surface);
  display: grid;
  gap: 12px;
  padding: 16px;
  transform: translateY(-110%);
  transition: transform .25s ease;
  border-bottom: 1px solid var(--border);
}

.nav-links a {
  color: var(--text);
  text-decoration: none;
  opacity: .85;
  padding: 10px 12px;
  border-radius: 8px;
}

.nav-links a:hover,
.nav-links a.active {
  background: rgba(14, 165, 233, 0.08);
  opacity: 1;
}

.nav-links.open {
  transform: translateY(0);
}

.nav-toggle {
  border: 0;
  background: transparent;
  display: grid;
  gap: 5px;
  padding: 6px;
  cursor: pointer;
  flex-shrink: 0;
  min-width: 34px;
  min-height: 34px;
  align-items: center;
  justify-content: center;
}

.nav-toggle .bar {
  width: 22px;
  height: 2px;
  background: var(--text);
  border-radius: 2px;
}

.cart {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 10px;
  border-radius: 10px;
  color: var(--text);
  background: rgba(14, 165, 233, 0.06);
  border: 1px solid rgba(14, 165, 233, 0.12);
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
  min-width: 38px;
  min-height: 38px;
  overflow: visible;
}

.cart:hover {
  background: rgba(14, 165, 233, 0.12);
  border-color: rgba(14, 165, 233, 0.2);
  transform: translateY(-1px);
}

.cart svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  display: block;
}

.cart .badge {
  position: absolute;
  top: 0;
  right: 0;
  background: #ef4444;
  color: white;
  border-radius: 50%;
  padding: 0;
  font-size: 9px;
  font-weight: 700;
  border: 2px solid var(--surface, #ffffff);
  min-width: 14px;
  width: 14px;
  height: 14px;
  text-align: center;
  line-height: 10px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  pointer-events: none;
  transform: translate(30%, -30%);
}


/* User Menu */
.user-menu {
  display: flex;
  align-items: center;
  gap: 0;
}

.user-dropdown {
  position: relative;
}

.user-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  cursor: pointer;
  font-size: 0.9rem;
  transition: all 0.2s ease;
}

.user-toggle:hover {
  background: rgba(14, 165, 233, 0.06);
  border-color: rgba(14, 165, 233, 0.2);
}

.user-toggle svg {
  flex-shrink: 0;
}

.user-name {
  font-weight: 500;
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dropdown-arrow {
  transition: transform 0.2s ease;
}

.user-toggle[aria-expanded="true"] .dropdown-arrow {
  transform: rotate(180deg);
}

.user-menu-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 200px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  padding: 8px;
  z-index: 1000; /* Increased to ensure it's above everything */
  overflow: visible; /* Ensure content is not clipped */
}

/* When dropdown is not hidden, make sure it's visible */
.user-menu-dropdown:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Also show when aria-expanded is true on the toggle (dropdown is sibling of toggle) */
.user-dropdown:has(.user-toggle[aria-expanded="true"]) .user-menu-dropdown {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 1000 !important;
}

[data-theme="dark"] .user-menu-dropdown {
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.user-menu-dropdown .menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  color: var(--text);
  text-decoration: none;
  font-size: 0.9rem;
  cursor: pointer;
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  transition: background 0.15s ease;
}

.user-menu-dropdown .menu-item:hover {
  background: rgba(14, 165, 233, 0.08);
}

.user-menu-dropdown .menu-item svg {
  flex-shrink: 0;
  opacity: 0.7;
}

.guest-menu .btn {
  font-size: 0.9rem;
  padding: 8px 16px;
}

@media (max-width: 899px) {
  .user-menu {
    order: -1;
  }

  .user-name {
    display: none;
  }

  .dropdown-arrow {
    display: none;
  }

  .user-toggle {
    padding: 8px;
  }

  .user-menu-dropdown {
    right: auto;
    left: 0;
  }
}

/* Theme toggle */
.theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: #f8fafc;
  color: var(--text);
  cursor: pointer;
  flex-shrink: 0;
  min-width: 38px;
  min-height: 38px;
  justify-content: center;
}

.theme-toggle:hover {
  background: #eef2f7;
}

[data-theme="dark"] .theme-toggle {
  background: rgba(255, 255, 255, 0.04);
}

/* Navigation collapse at 992px and below - show hamburger menu */
@media (max-width: 992px) {
  .nav-toggle {
    display: grid;
  }

  .nav-links {
    position: fixed;
    inset: 64px 0 auto 0;
    background: var(--surface);
    display: grid;
    gap: 12px;
    padding: 16px;
    transform: translateY(-110%);
    transition: transform .25s ease;
    border-bottom: 1px solid var(--border);
    z-index: 100;
  }

  .nav-links.open {
    transform: translateY(0);
  }
}

/* Desktop navigation - show full nav links */
@media (min-width: 993px) {
  .nav-toggle {
    display: none;
  }

  .nav-links {
    position: static;
    transform: none;
    display: flex;
    gap: 10px;
    padding: 0;
    background: transparent;
    border: 0;
  }
}

/* Tablet optimizations - 992px and below */
@media (max-width: 992px) {
  .container {
    padding-inline: 1.5%;
  }

  .site-header .container {
    padding-inline: 1.5%;
  }

  .header-search {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0;
    padding: 12px;
    background: var(--header-bg);
    border-bottom: 1px solid var(--border);
    max-width: none;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    z-index: 49; /* Below header but above content */
  }
  
  /* Add spacing to main content when search bar is visible on mobile */
  body.homepage main {
    margin-top: 0; /* Reset any existing margin */
  }
  
  body.homepage .hero {
    margin-top: 0; /* Ensure hero starts after search bar */
    padding-top: 0; /* Remove extra padding */
  }
  
  /* Ensure hero content doesn't overlap with search bar on mobile */
  /* Search bar height is approximately 60px (12px padding top + 12px padding bottom + 36px content) */
  /* Header is approximately 60px, so total needed is ~120px */
  body.homepage .hero-inner {
    padding-top: 120px; /* Add padding to account for header (~60px) + search bar (~60px) */
  }

  .search-btn span {
    display: none;
  }

  .search-btn {
    padding: 12px 16px;
  }

  .nav {
    gap: 3px;
    padding: 10px 0;
    flex-wrap: wrap;
  }

  .brand {
    font-size: 1rem;
    max-width: calc(100vw - 160px);
  }

  #logo-icon {
    height: 24px;
    margin-left: 5px;
  }

  .nav-toggle {
    min-width: 30px;
    min-height: 30px;
  }

  .theme-toggle {
    min-width: 30px;
    min-height: 30px;
    padding: 5px 6px;
  }

  .cart {
    min-width: 30px;
    min-height: 30px;
    padding: 5px 6px;
  }
}

/* Mobile optimizations - 768px and below */
@media (max-width: 768px) {
  .site-header {
    padding: 0;
    left: 0;
    right: 0;
    margin: 0;
  }

  .container {
    padding-inline: 1% !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    overflow-x: hidden;
  }
  
  /* Prevent all elements from overflowing on mobile */
  * {
    max-width: 100%;
  }
  
  img, video, iframe, embed, object {
    max-width: 100%;
    height: auto;
  }
  
  /* Ensure flex containers don't overflow */
  .flex, [class*="flex"], [class*="grid"] {
    min-width: 0;
  }
  
  /* Fix table overflow */
  table {
    width: 100%;
    table-layout: auto;
    max-width: 100%;
  }
  
  /* Fix input and form elements */
  input, textarea, select, button {
    max-width: 100%;
    box-sizing: border-box;
  }
  
  /* Fix buttons that might overflow - but preserve pointer events */
  .btn, button {
    white-space: nowrap;
    overflow: visible; /* Changed from hidden to preserve clickability */
    text-overflow: ellipsis;
    max-width: 100%;
    pointer-events: auto; /* Ensure buttons are clickable */
  }
  
  /* Ensure user menu and interactive elements are clickable */
  .user-menu, .user-toggle, .user-dropdown,
  .user-menu-dropdown, .cart, .cart-link {
    pointer-events: auto;
    overflow: visible;
    z-index: 50; /* Ensure it's above other elements */
  }
  
  /* Fix cart and login specific elements */
  .cart-item, .cart-items-section, .order-summary,
  .login-card, .login-container, .auth-form {
    max-width: 100%;
    overflow-x: hidden;
  }
  
  /* Ensure grid and flex items don't overflow */
  .cart-item > *, .cart-items-section > * {
    min-width: 0;
    overflow: hidden;
  }
  
  /* Exception: Don't apply overflow hidden to interactive elements */
  .cart-item button, .cart-item .btn,
  .user-toggle, .user-menu-dropdown,
  a, button, input, select, textarea {
    overflow: visible;
  }
  
  /* Fix text that might overflow */
  .cart-item h3, .cart-item p, .item-name {
    word-wrap: break-word;
    overflow-wrap: break-word;
    max-width: 100%;
  }
  
  /* Ensure user menu is clickable on mobile */
  .user-menu, .user-dropdown, .user-toggle {
    pointer-events: auto !important;
    overflow: visible !important;
    z-index: 100 !important;
  }
  
  .user-toggle {
    overflow: visible !important;
    pointer-events: auto !important;
  }
  
  /* Ensure dropdown is visible and not clipped when not hidden */
  .user-menu-dropdown:not([hidden]) {
    overflow: visible !important;
    pointer-events: auto !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    max-width: none !important;
    position: absolute !important;
    z-index: 1000 !important; /* Very high z-index to ensure it's on top */
  }
  
  /* When dropdown is hidden via attribute, hide it properly */
  .user-menu-dropdown[hidden] {
    display: none !important;
    visibility: hidden !important;
  }
  
  /* Ensure parent containers don't clip the dropdown */
  .user-dropdown, .user-menu {
    overflow: visible !important;
  }
  
  /* On mobile, ensure header doesn't clip dropdown */
  .site-header {
    overflow-x: hidden; /* Keep horizontal overflow hidden */
    overflow-y: visible; /* But allow vertical overflow for dropdown */
  }
  
  .nav {
    overflow: visible !important;
  }
  
  /* When dropdown is hidden via attribute, hide it properly */
  .user-menu-dropdown[hidden] {
    display: none !important;
  }
  
  /* Ensure parent containers don't clip the dropdown */
  .user-dropdown, .user-menu, .site-header, .nav {
    overflow: visible !important;
  }

  .site-header .container {
    padding-inline: 1% !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
  }

  .nav {
    padding: 6px 0;
    gap: 1px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .brand {
    font-size: 0.8rem !important;
    max-width: calc(100vw - 135px) !important;
    flex: 0 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
  }

  .brand>*:first-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
  }

  #logo-icon {
    height: 16px !important;
    margin-left: 3px !important;
    flex-shrink: 0;
    display: inline-block !important;
    width: auto;
  }

  .nav-toggle {
    min-width: 26px !important;
    min-height: 26px !important;
    padding: 2px !important;
    flex-shrink: 0;
    margin: 0;
  }

  .nav-toggle .bar {
    width: 14px;
    height: 1.5px;
  }

  .theme-toggle {
    padding: 3px 4px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    font-size: 0.75rem;
    flex-shrink: 0;
    margin: 0;
  }

  .cart {
    padding: 3px 4px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    flex-shrink: 0;
    margin: 0;
  }

  .cart svg {
    width: 14px !important;
    height: 14px !important;
  }

  .badge {
    font-size: 8px;
    padding: 1px 3px;
    min-width: 14px;
    top: -1px;
    right: -1px;
  }

  .nav-links {
    inset: 50px 0 auto 0;
    padding: 12px 1.5%;
  }
}

/* Ultra-small screens - 320px and below */
@media (max-width: 320px) {
  .container {
    padding-inline: 1% !important;
  }

  .site-header .container {
    padding-inline: 1% !important;
  }

  .nav {
    padding: 6px 0;
    gap: 1px;
  }

  .brand {
    font-size: 0.75rem !important;
    max-width: calc(100vw - 100px) !important;
    letter-spacing: 0.1px;
  }

  #logo-icon {
    height: 16px !important;
    margin-left: 2px !important;
    display: inline-block !important;
  }

  .nav-toggle {
    min-width: 24px !important;
    min-height: 24px !important;
    padding: 2px !important;
  }

  .nav-toggle .bar {
    width: 12px;
    height: 1.5px;
  }

  .theme-toggle {
    display: none !important;
    /* Hide theme toggle on very small screens */
  }

  .cart {
    padding: 2px 3px !important;
    min-width: 24px !important;
    min-height: 24px !important;
  }

  .cart svg {
    width: 12px !important;
    height: 12px !important;
  }

  .badge {
    font-size: 7px;
    padding: 1px 2px;
    min-width: 12px;
  }
}

/* Hero */
.hero {
  background: linear-gradient(180deg, rgba(14, 165, 233, 0.06) 0%, var(--surface) 60%);
  position: relative;
  overflow: hidden;
}

.hero-inner {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr;
  gap: 28px;
  padding: 52px 0 24px;
}

.hero-copy {
  text-align: center;
}

.hero-copy h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.hero-copy p {
  margin: 12px auto 0;
  color: var(--muted);
  max-width: 52ch;
  text-align: center;
}

.hero .btn {
  margin-top: 18px;
}

.hero-art {
  opacity: .95;
  display: grid;
  place-items: center;
}

.hero-art svg {
  width: 100%;
  height: 100%;
}

.hero-wave {
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
}

.hero-wave svg {
  width: 100%;
  height: auto;
  display: block;
}

/* Hero slider */
.hero-slider {
  position: relative;
  width: min(100%, 920px);
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 16px;
  border: 3px solid var(--gold);
  background: #ffffff;
  margin-inline: auto;
  box-shadow: 0 18px 46px -24px rgb(10, 1, 1);
}

.slides {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform .5s ease;
}

.slide {
  min-width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  position: relative;
  padding: 4%;
}

.slide img {
  width: 80%;
  height: 80%;
  max-width: 820px;
  max-height: 82%;
  object-fit: contain;
  object-position: center center;
  display: block;
  margin: 0 auto;
  image-rendering: auto;
  filter: saturate(1.05) contrast(1.03);
}

.slide .caption {
  position: absolute;
  bottom: 14px;
  left: 14px;
  background: rgba(0, 0, 0, 0.35);
  color: #fff;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: .9rem;
}

.slider-nav {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  pointer-events: none;
}

.slider-btn {
  pointer-events: all;
  border: 1px solid var(--border);
  background: rgb(251, 249, 249);
  color: var(--text);
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  margin: 8px;
  cursor: pointer;
}

[data-theme="dark"] .slider-btn {
  background: rgba(17, 24, 39, 0.65);
}

.slider-dots {
  position: absolute;
  bottom: 8px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: 6px;
}

.slider-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #cbd5e1;
  border: 1px solid var(--border);
  cursor: pointer;
  opacity: .8;
}

.slider-dot.active {
  background: var(--blue);
  opacity: 1;
}

@media (min-width: 900px) {

  /* Keep a single column layout on desktop to centralize the slider */
  .hero-inner {
    grid-template-columns: 1fr;
    padding: 72px 0 12px;
  }
  
  /* On desktop, search bar is inline with header, so no extra padding needed */
}

/* Sections */
.section-head {
  display: grid;
  gap: 6px;
  margin: 28px 0 14px;
}

.section-head h2 {
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
}

.section-head p {
  color: var(--muted);
}

/* Filters - Legacy (keeping for backward compatibility) */
.filters {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 10px 0 14px;
}

.filters .row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.filters input[type="search"],
.filters select {
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
}

.filters .meta {
  color: var(--muted);
  font-size: .9rem;
}

@media (min-width: 700px) {
  .filters .row {
    grid-template-columns: 1fr 220px;
    align-items: center;
  }
}

/* Shop Layout with Sidebar */
.shop-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 20px;
}

@media (min-width: 900px) {
  .shop-layout {
    grid-template-columns: 260px 1fr;
    gap: 32px;
  }
}

@media (min-width: 1200px) {
  .shop-layout {
    grid-template-columns: 280px 1fr;
  }
}

/* Filter Sidebar */
.filter-sidebar {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 20px;
  height: fit-content;
  position: sticky;
  top: 80px;
  max-height: calc(100vh - 100px);
  overflow-y: auto;
}

.filter-sidebar::-webkit-scrollbar {
  width: 6px;
}

.filter-sidebar::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 3px;
}

.filter-sidebar::-webkit-scrollbar-thumb:hover {
  background: var(--muted);
}

.sidebar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}

.sidebar-header h3 {
  margin: 0;
  font-size: 1.25rem;
  color: var(--text);
}

.btn-reset {
  background: transparent;
  border: none;
  color: var(--gold);
  font-size: 0.875rem;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background 0.2s ease;
}

.btn-reset:hover {
  background: rgba(255, 193, 37, 0.1);
}

.btn-reset:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Filter Groups */
.filter-group {
  border-bottom: 1px solid var(--border);
  padding: 16px 0;
}

.filter-group:last-child {
  border-bottom: none;
}

.filter-group summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--text);
  padding: 8px 0;
  user-select: none;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.filter-group summary::-webkit-details-marker {
  display: none;
}

.filter-group summary::after {
  content: '▼';
  font-size: 0.75rem;
  transition: transform 0.2s ease;
  color: var(--muted);
}

.filter-group[open] summary::after {
  transform: rotate(180deg);
}

.filter-options {
  padding-top: 12px;
  display: grid;
  gap: 10px;
}

.filter-option {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  padding: 6px 0;
  transition: color 0.2s ease;
}

.filter-option:hover {
  color: var(--gold);
}

.filter-option input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--gold);
}

.filter-option span {
  font-size: 0.95rem;
}

/* Price Filter Specific Styles */
.price-filter {
  gap: 16px;
}

.price-inputs {
  display: flex;
  align-items: center;
  gap: 8px;
}

.price-inputs input {
  flex: 1;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text);
  font-size: 0.9rem;
}

.price-inputs input:focus {
  outline: none;
  border-color: var(--gold);
}

.price-inputs span {
  color: var(--muted);
}

.price-range-slider {
  position: relative;
  height: 6px;
  background: var(--border);
  border-radius: 3px;
  margin: 8px 0;
}

.price-range-slider input[type="range"] {
  position: absolute;
  width: 100%;
  height: 6px;
  background: transparent;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
}

.price-range-slider input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--gold);
  cursor: pointer;
  pointer-events: auto;
  border: 2px solid white;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.price-range-slider input[type="range"]::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--gold);
  cursor: pointer;
  pointer-events: auto;
  border: 2px solid white;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.price-display {
  display: flex;
  justify-content: space-between;
  font-size: 0.875rem;
  color: var(--muted);
  margin-top: 4px;
}

/* Shop Main Content */
.shop-main {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.filters-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.search-wrapper {
  flex: 1;
  min-width: 250px;
}

.search-wrapper input[type="search"] {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  font-size: 1rem;
}

.search-wrapper input[type="search"]:focus {
  outline: none;
  border-color: var(--gold);
}

.filters-top .meta {
  color: var(--muted);
  font-size: 0.9rem;
  white-space: nowrap;
}

/* Active Filters Display */
.active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 0;
  transition: min-height 0.3s ease;
}

.active-filters:not(:empty) {
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 8px;
}

.filter-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 193, 37, 0.15);
  color: var(--text);
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 0.875rem;
  border: 1px solid rgba(255, 193, 37, 0.3);
}

.filter-tag button {
  background: none;
  border: none;
  color: var(--gold);
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  padding: 0;
  margin-left: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.filter-tag button:hover {
  color: var(--gold-600);
}

/* Mobile Filter Sidebar */
@media (max-width: 899px) {
  .filter-sidebar {
    position: relative;
    top: 0;
    max-height: none;
    margin-bottom: 20px;
  }
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid var(--border);
  background: #f8fafc;
  color: var(--text);
  padding: 10px 14px;
  border-radius: 10px;
  text-decoration: none;
  cursor: pointer;
  transition: transform .08s ease, background .2s ease, box-shadow .2s ease;
}

.btn:hover {
  background: #eef2f7;
  box-shadow: 0 6px 16px -12px rgba(2, 6, 23, 0.4);
}

.btn:active {
  transform: translateY(1px);
}

.btn-primary {
  background: var(--gold);
  border-color: #e2c45b;
  color: #0b1220;
  box-shadow: 0 8px 22px -10px rgba(212, 175, 55, 0.6);
}

.btn-primary:hover {
  background: var(--gold-600);
}

/* Gold design for Add to Cart (light mode) */
.btn.add-to-cart {
  background: var(--gold);
  border-color: #e2c45b;
  color: #0b1220;
  box-shadow: 0 8px 22px -10px rgba(212, 175, 55, 0.5);
}

.btn.add-to-cart:hover {
  background: var(--gold-600);
}

/* Product grid */
.products-section {
  padding: 12px 0 64px;
}

.product-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

@media (min-width: 560px) {
  .product-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 900px) {
  .shop-layout .product-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1200px) {
  .shop-layout .product-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1600px) {
  .shop-layout .product-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: clip;
  display: grid;
  gap: 10px;
  padding-bottom: 12px;
  transition: translate .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.card:hover {
  translate: 0 -3px;
  box-shadow: 0 16px 32px -24px rgba(2, 6, 23, 0.45);
  border-color: #d9dde3;
}

.thumb {
  background: radial-gradient(120% 80% at 20% -10%, rgba(14, 165, 233, 0.20), transparent 60%), radial-gradient(120% 80% at 120% 10%, rgba(212, 175, 55, 0.25), transparent 60%);
  aspect-ratio: 3/2;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.thumb img,
.thumb picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.thumb svg,
.ph-fallback svg {
  width: 78%;
  height: 78%;
  filter: drop-shadow(0 8px 14px #00000033);
}

.card h3 {
  padding-inline: 14px;
  margin-top: 4px;
  font-size: 1rem;
}

.card .price {
  padding-inline: 14px;
  color: var(--muted);
  font-weight: 600;
}

.card .btn {
  margin-inline: 14px;
}

.small-link {
  color: var(--blue-600);
  font-size: .9rem;
  padding: 4px 14px 10px;
  display: inline-block;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.small-link:hover {
  color: var(--blue);
}

/* About & Contact */
.about,
.contact {
  padding-bottom: 56px;
}

.about-card,
.contact-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 18px;
}

/* Footer */
.site-footer {
  background: var(--surface);
  border-top: 1px solid var(--border);
  padding: 20px 0 30px;
}

.footer-inner {
  display: grid;
  gap: 20px;
  align-items: start;
  grid-template-columns: 1fr;
  padding-bottom: 10px;
}

.footer-brand .logo {
  font-weight: 800;
  margin-bottom: 6px;
  color: var(--gold);
}

.footer-newsletter {
  background: linear-gradient(135deg, rgba(14, 165, 233, 0.05) 0%, rgba(139, 92, 246, 0.05) 100%);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
}

.footer-newsletter h3 {
  margin: 0 0 8px 0;
  font-size: 1.25rem;
  color: var(--text);
}

.footer-newsletter p {
  margin: 0 0 16px 0;
  color: var(--muted);
  font-size: 0.9rem;
}

.newsletter-form {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

.newsletter-form input[type="email"] {
  flex: 1;
  padding: 12px 16px;
  border: 2px solid var(--border);
  border-radius: 8px;
  font-size: 14px;
  background: var(--card);
  color: var(--text);
  transition: border-color 0.2s;
}

.newsletter-form input[type="email"]:focus {
  outline: none;
  border-color: var(--primary);
}

.newsletter-form button {
  padding: 12px 24px;
  white-space: nowrap;
}

.newsletter-notice {
  font-size: 0.75rem;
  color: var(--muted);
  margin: 0;
  opacity: 0.8;
}

.footer-links {
  display: grid;
  grid-auto-flow: column;
  gap: 12px;
  justify-content: start;
}

.footer-links a {
  color: var(--text);
  text-decoration: none;
  opacity: .85;
}

.footer-links a:hover {
  opacity: 1;
  text-decoration: underline;
}

.social {
  display: flex;
  gap: 12px;
}

.icon {
  display: inline-grid;
  place-items: center;
  background: rgba(14, 165, 233, 0.08);
  border: 1px solid rgba(2, 6, 23, 0.06);
  color: var(--text);
  width: 36px;
  height: 36px;
  border-radius: 10px;
}

.icon:hover {
  background: rgba(14, 165, 233, 0.16);
}

.tiny {
  color: var(--muted);
  font-size: .875rem;
}

@media (min-width: 900px) {
  .footer-inner {
    grid-template-columns: 1fr 1.2fr 0.8fr;
  }

  .footer-links {
    grid-auto-flow: row;
  }
}

@media (max-width: 600px) {
  .newsletter-form {
    flex-direction: column;
  }

  .newsletter-form button {
    width: 100%;
  }
}

/* Accessibility focus */
:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
  border-radius: 6px;
}

/* Legacy Product details */
.detail {
  padding: 28px 0 64px;
}

.detail-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

.detail .media {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  display: grid;
  place-items: center;
}

.detail .media .placeholder {
  aspect-ratio: 3/2;
  width: 100%;
  display: grid;
  place-items: center;
}

.detail .info {
  display: grid;
  gap: 10px;
}

.detail .title {
  font-size: clamp(1.5rem, 3vw, 2rem);
}

.detail .price {
  font-weight: 700;
}

.qty {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #ffffff22;
  border-radius: 10px;
  padding: 4px;
  background: #ffffff0a;
}

.qty button {
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  color: var(--text);
  border-radius: 8px;
  cursor: pointer;
}

.qty input {
  width: 44px;
  text-align: center;
  background: transparent;
  border: 0;
  color: var(--text);
}

.qty button:hover {
  background: #ffffff14;
}

@media (min-width: 900px) {
  .detail-inner {
    grid-template-columns: 1.1fr .9fr;
    align-items: start;
  }
}

/* Enhanced Product Detail Page */
.product-detail-page {
  padding: 20px 0 64px;
  background: var(--bg);
}

/* Breadcrumb */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  color: var(--muted);
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.breadcrumb a {
  color: var(--text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.breadcrumb a:hover {
  color: var(--gold);
}

.breadcrumb .separator {
  color: var(--border);
  user-select: none;
}

.breadcrumb .current {
  color: var(--text);
  font-weight: 500;
}

/* Product Layout */
.product-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}

@media (min-width: 900px) {
  .product-layout {
    grid-template-columns: 1.2fr 1fr;
    grid-template-areas:
      "gallery info"
      "tabs tabs";
  }
}

/* Product Gallery */
.product-gallery {
  grid-area: gallery;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.main-image-container {
  position: relative;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
}

.main-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  cursor: zoom-in;
  transition: transform 0.3s ease;
}

.main-image-container.zoomed .main-image {
  transform: scale(2);
  cursor: zoom-out;
}

.zoom-btn {
  position: absolute;
  top: 16px;
  right: 16px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--border);
  border-radius: 8px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  color: var(--text);
  z-index: 10;
}

.zoom-btn:hover {
  background: white;
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Thumbnail Carousel */
.thumbnail-carousel {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 8px 0;
  scrollbar-width: thin;
}

.thumbnail-carousel::-webkit-scrollbar {
  height: 6px;
}

.thumbnail-carousel::-webkit-scrollbar-track {
  background: var(--surface);
  border-radius: 3px;
}

.thumbnail-carousel::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 3px;
}

.thumbnail-carousel::-webkit-scrollbar-thumb:hover {
  background: var(--muted);
}

.thumbnail {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border: 2px solid transparent;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  background: var(--surface);
  transition: all 0.2s ease;
  padding: 0;
}

.thumbnail:hover {
  border-color: var(--gold);
  transform: translateY(-2px);
}

.thumbnail.active {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.3);
}

.thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Product Info */
.product-info {
  grid-area: info;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.product-title {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--text);
  margin: 0;
}

/* Rating */
.product-rating {
  display: flex;
  align-items: center;
  gap: 12px;
}

.stars {
  display: flex;
  gap: 2px;
  font-size: 1.25rem;
}

.star {
  color: #d1d5db;
}

.star.filled {
  color: #fbbf24;
}

.star.half {
  background: linear-gradient(90deg, #fbbf24 50%, #d1d5db 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.review-link {
  color: var(--blue-600);
  text-decoration: none;
  font-size: 0.9rem;
}

.review-link:hover {
  text-decoration: underline;
}

/* Key Specifications */
.key-specs {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px;
  margin: 20px 0;
}

.key-specs h3 {
  font-size: 1.1rem;
  margin-bottom: 12px;
  color: var(--text);
}

.specs-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
}

.specs-list li {
  padding: 8px 12px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.9rem;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 8px;
}

.specs-list li::before {
  content: '✓';
  color: var(--gold);
  font-weight: 700;
  font-size: 1.1rem;
}

/* Price Animation */
@keyframes priceUpdate {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.05);
    color: var(--gold-600);
  }
}

/* Price */
.product-price {
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  color: var(--gold);
}

.product-description {
  color: var(--muted);
  line-height: 1.6;
}

/* Buying Zone */
.buying-zone {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 8px;
}

/* Variant Selector */
.variant-selector {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.variant-selector label {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--text);
}

.variant-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 300px;
  overflow-y: auto;
  padding-right: 4px;
}

.variant-options::-webkit-scrollbar {
  width: 6px;
}

.variant-options::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 3px;
}

.variant-options::-webkit-scrollbar-thumb:hover {
  background: var(--muted);
}

.variant-btn {
  width: 100%;
  padding: 14px 16px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-align: left;
  font-size: 0.95rem;
}

.variant-btn:hover:not(:disabled) {
  border-color: var(--gold);
  background: var(--card);
  transform: translateX(4px);
}

.variant-btn.active {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.1);
  font-weight: 600;
}

.variant-btn.active::after {
  content: '✓';
  color: var(--gold);
  font-weight: 700;
  font-size: 1.2rem;
  margin-left: 8px;
}

.variant-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: var(--surface);
}

.variant-btn.out-of-stock {
  background: repeating-linear-gradient(45deg,
      var(--surface),
      var(--surface) 10px,
      rgba(200, 200, 200, 0.1) 10px,
      rgba(200, 200, 200, 0.1) 20px);
}

.variant-name {
  color: var(--text);
  flex: 1;
}

.variant-status {
  font-size: 0.85rem;
  color: #ef4444;
  font-weight: 600;
}

/* Stock Status */
.stock-status-container {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  background: var(--surface);
  border-radius: 10px;
}

.stock-status {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 0.95rem;
}

.stock-status.in-stock {
  color: #22c55e;
}

.stock-status.out-of-stock {
  color: #ef4444;
}

.stock-status .status-icon {
  font-size: 1.1rem;
  font-weight: 700;
}

.sku-display {
  font-size: 0.875rem;
  color: var(--muted);
}

.sku-display span {
  font-family: monospace;
  font-weight: 600;
  color: var(--text);
}

.stock-warning {
  font-size: 0.85rem;
  color: #f59e0b;
  font-weight: 600;
  margin-top: 8px;
  display: block;
}

/* Quantity Selector */
.quantity-selector {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.quantity-selector label {
  font-weight: 600;
  font-size: 0.95rem;
}

.qty-control {
  display: inline-flex;
  align-items: center;
  gap: 0;
  border: 2px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  width: fit-content;
  background: var(--surface);
}

.qty-btn {
  width: 48px;
  height: 48px;
  border: none;
  background: transparent;
  color: var(--text);
  font-size: 1.25rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
}

.qty-btn:hover {
  background: var(--border);
}

.qty-btn:active {
  background: var(--gold);
  color: white;
}

.qty-control input {
  width: 64px;
  height: 48px;
  text-align: center;
  border: none;
  border-left: 2px solid var(--border);
  border-right: 2px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font-size: 1.1rem;
  font-weight: 600;
}

.qty-control input:focus {
  outline: none;
  background: white;
}

/* Add to Cart Button */
.btn-add-to-cart {
  width: 100%;
  padding: 16px 24px;
  background: var(--gold);
  color: #0b1220;
  border: 2px solid #e2c45b;
  border-radius: 12px;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: all 0.2s ease;
  box-shadow: 0 8px 22px -10px rgba(255, 193, 37, 0.6);
}

.btn-add-to-cart:hover {
  background: var(--gold-600);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px -10px rgba(255, 193, 37, 0.7);
}

.btn-add-to-cart:active {
  transform: translateY(0);
}

.btn-add-to-cart.added {
  background: #22c55e;
  border-color: #16a34a;
}

.btn-add-to-cart svg {
  flex-shrink: 0;
}

/* Product Meta */
.product-meta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.meta-item {
  display: flex;
  gap: 8px;
  font-size: 0.95rem;
}

.meta-item .label {
  font-weight: 600;
  color: var(--text);
  min-width: 100px;
}

.meta-item .value {
  color: var(--muted);
}

.meta-item .value.in-stock {
  color: #22c55e;
  font-weight: 600;
}

/* Product Tabs */
.product-tabs-container {
  grid-area: tabs;
  margin-top: 24px;
}

.tabs-header {
  display: flex;
  gap: 8px;
  border-bottom: 2px solid var(--border);
  overflow-x: auto;
  scrollbar-width: none;
}

.tabs-header::-webkit-scrollbar {
  display: none;
}

.tab-btn {
  background: transparent;
  border: none;
  padding: 16px 24px;
  font-size: 1rem;
  font-weight: 600;
  color: var(--muted);
  cursor: pointer;
  border-bottom: 3px solid transparent;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.tab-btn:hover {
  color: var(--text);
}

.tab-btn.active {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

.tabs-content {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
  margin-top: 24px;
}

.tab-panel {
  display: none;
}

.tab-panel.active {
  display: block;
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

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

.tab-panel h3 {
  font-size: 1.5rem;
  margin-bottom: 16px;
  color: var(--text);
}

.tab-panel h4 {
  font-size: 1.2rem;
  margin-top: 24px;
  margin-bottom: 12px;
  color: var(--text);
}

.tab-panel p {
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 16px;
}

.tab-panel ul {
  list-style: none;
  padding: 0;
  margin: 16px 0;
}

.tab-panel ul li {
  padding: 8px 0 8px 24px;
  position: relative;
  color: var(--muted);
  line-height: 1.6;
}

.tab-panel ul li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--gold);
  font-weight: 700;
}

/* Specifications Table */
.specs-table {
  width: 100%;
  border-collapse: collapse;
}

.specs-table tr {
  border-bottom: 1px solid var(--border);
}

.specs-table tr:last-child {
  border-bottom: none;
}

.specs-table td {
  padding: 16px 0;
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

.spec-label {
  font-weight: 600;
  color: var(--text);
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

.spec-value {
  color: var(--muted);
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

.spec-label {
  font-weight: 600;
  color: var(--text);
  width: 40%;
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

.spec-value {
  color: var(--muted);
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}

/* Reviews */
.reviews-summary {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 32px;
}

.rating-overview {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.rating-score {
  font-size: 3rem;
  font-weight: 700;
  color: var(--text);
}

.rating-stars {
  font-size: 1.5rem;
}

.rating-count {
  color: var(--muted);
  font-size: 0.95rem;
}

.reviews-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.review-item {
  padding: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
}

.review-header {
  display: flex;
  justify-content: space-between;
  align-items: start;
  margin-bottom: 12px;
  gap: 16px;
}

.review-author {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.review-author strong {
  color: var(--text);
  font-weight: 600;
}

.verified-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  color: #4caf50;
  background: rgba(76, 175, 80, 0.1);
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
}

.review-date {
  color: var(--muted);
  font-size: 0.875rem;
}

.review-rating {
  font-size: 1rem;
}

.review-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
}

.review-text {
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 12px;
}

.review-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}

.helpful-btn,
.report-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 6px;
  font-size: 0.875rem;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.2s;
}

.helpful-btn:hover:not(:disabled) {
  border-color: var(--gold);
  color: var(--gold);
}

.helpful-btn:disabled {
  cursor: not-allowed;
}

.report-btn:hover {
  border-color: #d32f2f;
  color: #d32f2f;
}

.rating-distribution {
  background: var(--surface);
  padding: 20px;
  border-radius: 12px;
  border: 1px solid var(--border);
  margin-bottom: 24px;
}

.distribution-row {
  display: grid;
  grid-template-columns: 60px 1fr 50px 60px;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.distribution-row:last-child {
  margin-bottom: 0;
}

.stars-label {
  font-size: 0.875rem;
  color: var(--muted);
  font-weight: 500;
}

.bar-container {
  background: var(--bg);
  height: 8px;
  border-radius: 4px;
  overflow: hidden;
}

.bar {
  background: var(--gold);
  height: 100%;
  border-radius: 4px;
  transition: width 0.3s ease;
}

.distribution-row .percentage {
  font-size: 0.875rem;
  color: var(--text);
  text-align: right;
  font-weight: 500;
}

.distribution-row .count {
  font-size: 0.875rem;
  color: var(--muted);
  text-align: right;
}

.review-cta {
  text-align: center;
  padding: 32px 0 16px;
  border-top: 1px solid var(--border);
  margin-top: 32px;
}

.review-cta p {
  margin-bottom: 16px;
  font-weight: 600;
}

/* Related Products Section */
.related-products-section {
  max-width: 1400px;
  margin: 64px auto 32px;
  padding: 0 20px;
}

.related-products-section .section-header {
  text-align: center;
  margin-bottom: 32px;
}

.related-products-section .section-header h3 {
  font-size: 2rem;
  color: var(--text);
  margin-bottom: 8px;
}

.related-products-section .section-header p {
  color: var(--muted);
  font-size: 1rem;
}

.related-products-carousel {
  position: relative;
  padding: 0 50px;
}

.carousel-track {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 8px 0;
}

.carousel-track::-webkit-scrollbar {
  display: none;
}

.related-products-carousel .product-card {
  min-width: 260px;
  max-width: 260px;
  background: var(--card);
  border-radius: 12px;
  border: 1px solid var(--border);
  overflow: hidden;
  transition: all 0.3s ease;
  position: relative;
}

.related-products-carousel .product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  border-color: var(--gold);
}

.related-products-carousel .card-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.related-products-carousel .card-image {
  position: relative;
  width: 100%;
  height: 220px;
  background: var(--surface);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.related-products-carousel .card-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 16px;
  transition: transform 0.3s ease;
}

.related-products-carousel .product-card:hover .card-image img {
  transform: scale(1.05);
}

.related-products-carousel .badge {
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 4px 12px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.related-products-carousel .badge.low-stock {
  background: #ff9800;
  color: white;
}

.related-products-carousel .badge.new {
  background: var(--gold);
  color: #0b1220;
}

.related-products-carousel .card-body {
  padding: 16px;
}

.related-products-carousel .card-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.4;
  min-height: 2.8em;
}

.related-products-carousel .card-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 0.875rem;
}

.related-products-carousel .rating-count {
  color: var(--muted);
  font-size: 0.75rem;
}

.related-products-carousel .card-price {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.related-products-carousel .price {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--gold);
}

.quick-add-btn {
  position: absolute;
  bottom: 16px;
  right: 16px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--gold);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  color: #0b1220;
  opacity: 0;
  transform: scale(0.8);
}

.related-products-carousel .product-card:hover .quick-add-btn {
  opacity: 1;
  transform: scale(1);
}

.quick-add-btn:hover {
  background: var(--gold-600);
  transform: scale(1.1);
}

.quick-add-btn.added {
  background: #4caf50;
  color: white;
}

.quick-add-notification {
  position: absolute;
  bottom: 70px;
  right: 16px;
  background: #4caf50;
  color: white;
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  animation: slideInUp 0.3s ease, fadeOut 0.3s ease 1.7s;
  z-index: 10;
}

.carousel-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--card);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 2;
  color: var(--text);
}

.carousel-nav:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: #0b1220;
  transform: translateY(-50%) scale(1.1);
}

.carousel-nav.prev {
  left: 0;
}

.carousel-nav.next {
  right: 0;
}

/* Cart Success Modal */
.cart-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.cart-modal.show {
  opacity: 1;
}

.modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
}

.modal-content {
  position: relative;
  background: var(--card);
  border-radius: 16px;
  max-width: 500px;
  width: 90%;
  padding: 32px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  animation: modalSlideIn 0.3s ease;
  z-index: 1;
}

@keyframes modalSlideIn {
  from {
    transform: translateY(-20px) scale(0.95);
    opacity: 0;
  }

  to {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
}

@keyframes slideInUp {
  from {
    transform: translateY(10px);
    opacity: 0;
  }

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

@keyframes fadeOut {
  to {
    opacity: 0;
  }
}

.modal-header {
  text-align: center;
  margin-bottom: 24px;
}

.success-icon {
  margin: 0 auto 16px;
  display: block;
}

.modal-header h3 {
  font-size: 1.75rem;
  color: var(--text);
  margin: 0;
}

.modal-body {
  margin-bottom: 24px;
}

.added-product-info {
  display: flex;
  gap: 16px;
  padding: 16px;
  background: var(--surface);
  border-radius: 12px;
  margin-bottom: 16px;
}

.modal-product-img {
  width: 80px;
  height: 80px;
  object-fit: contain;
  border-radius: 8px;
  background: var(--card);
}

.modal-product-details {
  flex: 1;
}

.modal-product-details h4 {
  font-size: 1rem;
  color: var(--text);
  margin: 0 0 8px 0;
  line-height: 1.4;
}

.modal-quantity,
.modal-price {
  font-size: 0.875rem;
  color: var(--muted);
  margin: 4px 0;
}

.modal-price {
  font-size: 1.125rem;
  color: var(--gold);
  font-weight: 700;
}

.cart-summary {
  padding: 16px;
  background: var(--surface);
  border-radius: 12px;
  border: 2px dashed var(--border);
}

.cart-summary p {
  display: flex;
  justify-content: space-between;
  margin: 8px 0;
  font-size: 1rem;
  color: var(--text);
}

.cart-summary strong {
  color: var(--gold);
  font-size: 1.25rem;
}

.item-count {
  color: var(--muted);
  font-size: 0.875rem;
}

.modal-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.modal-actions .btn {
  width: 100%;
  padding: 12px 24px;
  font-size: 1rem;
  font-weight: 600;
}

/* Product Not Found */
.product-not-found {
  text-align: center;
  padding: 64px 20px;
}

.product-not-found h2 {
  font-size: 2rem;
  margin-bottom: 16px;
  color: var(--text);
}

.product-not-found p {
  color: var(--muted);
  margin-bottom: 24px;
}

/* Responsive - Related Products */
@media (max-width: 900px) {
  .related-products-carousel {
    padding: 0 40px;
  }

  .carousel-nav {
    width: 36px;
    height: 36px;
  }
}

@media (max-width: 560px) {
  .related-products-section {
    margin: 48px auto 24px;
  }

  .related-products-section .section-header h3 {
    font-size: 1.5rem;
  }

  .related-products-carousel {
    padding: 0;
  }

  .carousel-nav {
    display: none;
  }

  .modal-content {
    padding: 24px;
  }

  .modal-actions {
    grid-template-columns: 1fr;
  }
}

/* Dark Mode - Product Page */
[data-theme="dark"] .zoom-btn {
  background: rgba(30, 30, 30, 0.9);
  border-color: var(--border);
}

[data-theme="dark"] .zoom-btn:hover {
  background: rgba(40, 40, 40, 0.95);
}

[data-theme="dark"] .btn-add-to-cart {
  background: var(--gold);
  color: #0b1220;
}

[data-theme="dark"] .btn-add-to-cart:hover {
  background: var(--gold-600);
}

[data-theme="dark"] .key-specs {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--border);
}

[data-theme="dark"] .specs-list li {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .variant-btn {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

[data-theme="dark"] .variant-btn:hover:not(:disabled) {
  background: var(--card);
  border-color: var(--gold);
}

[data-theme="dark"] .variant-btn.active {
  background: rgba(255, 193, 37, 0.15);
  border-color: var(--gold);
}

[data-theme="dark"] .variant-btn.out-of-stock {
  background: repeating-linear-gradient(45deg,
      var(--surface),
      var(--surface) 10px,
      rgba(255, 255, 255, 0.05) 10px,
      rgba(255, 255, 255, 0.05) 20px);
}

[data-theme="dark"] .stock-status-container {
  background: rgba(255, 255, 255, 0.05);
}

/* Responsive Adjustments */
@media (max-width: 899px) {
  .product-layout {
    grid-template-areas:
      "gallery"
      "info"
      "tabs";
    max-width: 100%;
    overflow-x: hidden;
  }

  .product-gallery {
    max-width: 100vw !important;
    width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .main-image-container {
    max-width: 100vw !important;
    width: 100% !important;
    max-height: 70vh !important;
    aspect-ratio: unset !important;
    min-height: auto !important;
    height: auto !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .main-image-container img,
  .main-image {
    max-width: 100% !important;
    max-height: 70vh !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    box-sizing: border-box !important;
    display: block !important;
  }

  .product-info {
    max-width: 100%;
    overflow-x: hidden;
  }

  .tabs-content {
    padding: 20px;
    max-width: 100%;
    overflow-x: hidden;
    word-wrap: break-word;
  }

  .tab-panel {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .tab-panel * {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    max-width: 100% !important;
  }

  .tab-panel h3,
  .tab-panel h4,
  .tab-panel p,
  .tab-panel li {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
  }

  .description-content,
  .description-section {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    max-width: 100% !important;
  }

  .specs-table {
    width: 100% !important;
    table-layout: auto !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    display: block !important;
  }

  .specs-table tbody {
    display: block !important;
  }

  .specs-table tr {
    display: block !important;
    margin-bottom: 16px !important;
    border-bottom: 1px solid var(--border) !important;
    padding-bottom: 16px !important;
  }

  .specs-table td {
    display: block !important;
    width: 100% !important;
    padding: 8px 0 !important;
  }

  .spec-label {
    width: 100% !important;
    margin-bottom: 4px !important;
    font-weight: 600 !important;
  }

  .spec-value {
    width: 100% !important;
  }

  .product-tabs-container {
    padding-left: 1rem !important; /* px-4 equivalent */
    padding-right: 1rem !important; /* px-4 equivalent */
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  .tabs-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .buying-zone {
    position: sticky;
    bottom: 0;
    z-index: 100;
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
    max-width: 100%;
    overflow-x: hidden;
  }
}

@media (max-width: 560px) {
  .thumbnail {
    width: 64px;
    height: 64px;
    max-width: 100%;
  }

  .product-title {
    font-size: 1.5rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
    max-width: 100%;
  }

  .product-price {
    font-size: 1.75rem;
    max-width: 100%;
  }
}

.detail-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

.detail .media {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
  display: grid;
  place-items: center;
}

.detail .media .placeholder {
  aspect-ratio: 3/2;
  width: 100%;
  display: grid;
  place-items: center;
}

.detail .info {
  display: grid;
  gap: 10px;
}

.detail .title {
  font-size: clamp(1.5rem, 3vw, 2rem);
}

.detail .price {
  font-weight: 700;
}

.qty {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #ffffff22;
  border-radius: 10px;
  padding: 4px;
  background: #ffffff0a;
}

.qty button {
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  color: var(--text);
  border-radius: 8px;
  cursor: pointer;
}

.qty input {
  width: 44px;
  text-align: center;
  background: transparent;
  border: 0;
  color: var(--text);
}

.qty button:hover {
  background: #ffffff14;
}

@media (min-width: 900px) {
  .detail-inner {
    grid-template-columns: 1.1fr .9fr;
    align-items: start;
  }
}

/* Cart page */
.cart-section {
  padding: 28px 0 64px;
  min-height: 60vh;
}

.cart-empty {
  text-align: center;
  padding: 80px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.cart-empty svg {
  color: var(--muted);
  opacity: 0.5;
}

.cart-empty p {
  color: var(--muted);
  font-size: 1.125rem;
  margin: 0;
}

/* Cart Layout - Two Column */
.cart-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 24px;
}

@media (min-width: 900px) {
  .cart-layout {
    grid-template-columns: 1fr 400px;
    gap: 32px;
  }
}

/* Cart Items Section */
.cart-items-section {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px;
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
}

.cart-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--border);
}

.cart-header h2 {
  font-size: 1.5rem;
  color: var(--text);
  margin: 0;
}

.cart-header .btn-link {
  color: var(--muted);
  padding: 8px 12px;
  font-size: 0.875rem;
}

.cart-header .btn-link:hover {
  color: #d32f2f;
}

/* Cart Items List */
.cart-items {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Individual Cart Item */
.cart-item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 16px;
  padding: 16px;
  background: var(--surface);
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: all 0.3s ease;
  position: relative;
}

.cart-item[data-updating="true"] {
  opacity: 0.6;
  pointer-events: none;
}

.cart-item.removing {
  opacity: 0;
  transform: translateX(-20px);
  height: 0;
  padding: 0;
  margin: 0;
  overflow: hidden;
}

@media (min-width: 560px) {
  .cart-item {
    grid-template-columns: 100px 2fr 1fr 1fr 1fr auto;
    gap: 20px;
    align-items: center;
  }
}

/* Item Image */
.item-image {
  grid-column: 1;
  width: 80px;
  height: 80px;
  background: #f8f9fa;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  flex-shrink: 0;
}

@media (min-width: 560px) {
  .item-image {
    width: 100px;
    height: 100px;
  }
}

.item-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 8px;
  transition: opacity 0.2s ease;
  background: white;
}

.item-image img[src*="data:image/svg"] {
  opacity: 0.6;
  padding: 12px;
}

/* Item Details */
.item-details {
  grid-column: 2;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.item-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  margin: 0;
  line-height: 1.4;
}

.item-title {
  margin: 0 0 8px;
  font-size: 1.125rem;
  font-weight: 600;
}

.item-name-link {
  color: var(--text);
  text-decoration: none;
  transition: color 0.2s;
}

.item-name-link:hover {
  color: var(--gold);
  text-decoration: underline;
}

.item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.meta-tag {
  font-size: 0.75rem;
  padding: 4px 8px;
  background: var(--bg);
  border-radius: 4px;
  color: var(--muted);
  text-transform: capitalize;
}

.stock-warning {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.stock-warning.low {
  background: rgba(255, 152, 0, 0.1);
  color: #f57c00;
}

.stock-warning.out {
  background: rgba(211, 47, 47, 0.1);
  color: #d32f2f;
}

/* Item Price */
.item-price {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

@media (max-width: 559px) {
  .item-price {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: space-between;
  }
}

.price-label {
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

@media (min-width: 560px) {
  .price-label {
    display: none;
  }
}

.price-value {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
}

/* Item Quantity */
.item-quantity {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}

@media (max-width: 559px) {
  .item-quantity {
    grid-column: 1 / -1;
  }
}

.quantity-controls {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  background: var(--card);
}

.quantity-controls[data-disabled="true"] {
  opacity: 0.5;
  pointer-events: none;
}

.qty-btn {
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.qty-btn:hover:not(:disabled) {
  background: var(--gold);
  color: #0b1220;
}

.qty-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.qty-input {
  width: 50px;
  height: 36px;
  border: none;
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  text-align: center;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  background: var(--surface);
  appearance: textfield;
  -moz-appearance: textfield;
}

.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.qty-input:focus {
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}

.stock-info {
  font-size: 0.75rem;
  color: var(--muted);
  font-style: italic;
}

/* Item Total */
.item-total {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-end;
}

@media (max-width: 559px) {
  .item-total {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: space-between;
  }
}

.total-label {
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

@media (min-width: 560px) {
  .total-label {
    display: none;
  }
}

.total-value {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--gold);
  transition: all 0.3s;
}

.total-value.highlight {
  animation: priceHighlight 0.5s ease;
}

@keyframes priceHighlight {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.1);
    color: var(--gold-600);
  }
}

/* Item Actions */
.item-actions {
  display: flex;
  align-items: center;
}

@media (max-width: 559px) {
  .item-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}

.btn-remove {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  border-radius: 6px;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-remove:hover {
  border-color: #d32f2f;
  background: rgba(211, 47, 47, 0.1);
  color: #d32f2f;
}

/* Cart Summary Section */
.cart-summary-section {
  position: relative;
}

.cart-summary {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cart-summary.sticky {
  position: sticky;
  top: 80px;
}

.cart-summary h3 {
  font-size: 1.25rem;
  margin: 0 0 16px 0;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--border);
  color: var(--text);
}

.summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 1rem;
  color: var(--text);
  padding: 8px 0;
}

.summary-row span:last-child {
  font-weight: 600;
  transition: all 0.3s;
}

.summary-row span:last-child.highlight {
  animation: priceHighlight 0.5s ease;
}

.summary-row .info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: none;
  background: transparent;
  color: var(--muted);
  cursor: help;
  padding: 0;
  margin-left: 4px;
  vertical-align: middle;
  transition: color 0.2s;
}

.summary-row .info-icon:hover {
  color: var(--gold);
}

/* Shipping Estimate Section */
.shipping-estimate-section {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px;
  margin: 16px 0;
}

.shipping-estimate-section .section-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 12px;
}

.shipping-estimate-section .section-label svg {
  color: var(--gold);
}

.location-input-group {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

.location-input-group input {
  flex: 1;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--card);
  color: var(--text);
  font-size: 0.875rem;
  transition: all 0.2s;
}

.location-input-group input:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(255, 193, 37, 0.1);
}

.location-input-group input::placeholder {
  color: var(--muted);
}

.btn-calculate {
  padding: 10px 16px;
  background: var(--gold);
  border: none;
  border-radius: 6px;
  color: #0b1220;
  font-weight: 600;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}

.btn-calculate:hover {
  background: var(--gold-600);
  transform: translateY(-1px);
}

.btn-calculate:active {
  transform: translateY(0);
}

.shipping-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.shipping-options .loading {
  text-align: center;
  padding: 12px;
  color: var(--muted);
  font-size: 0.875rem;
  font-style: italic;
}

.shipping-option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  background: var(--card);
  border: 2px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.shipping-option:hover {
  border-color: var(--gold);
  background: var(--surface);
}

.shipping-option.selected {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.05);
}

.shipping-option input[type="radio"] {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--gold);
}

.shipping-option .option-details {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.shipping-option .option-name {
  font-weight: 600;
  color: var(--text);
  font-size: 0.875rem;
}

.shipping-option .option-time {
  font-size: 0.75rem;
  color: var(--muted);
}

.shipping-option .option-cost {
  font-weight: 700;
  color: var(--gold);
  font-size: 1rem;
  white-space: nowrap;
}

.free-shipping-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  background: rgba(33, 150, 243, 0.1);
  border: 1px solid rgba(33, 150, 243, 0.3);
  border-radius: 8px;
  font-size: 0.875rem;
  color: #1976d2;
  margin: 12px 0 8px 0;
  font-weight: 500;
}

.free-shipping-notice.success {
  background: rgba(76, 175, 80, 0.1);
  border-color: rgba(76, 175, 80, 0.3);
  color: #388e3c;
  font-weight: 600;
}

.free-shipping-notice svg {
  flex-shrink: 0;
}

/* Coupon Section */
.coupon-section {
  margin: 20px 0;
  padding: 16px;
  background: rgba(255, 193, 37, 0.05);
  border: 1px solid rgba(255, 193, 37, 0.2);
  border-radius: 12px;
}

.coupon-section .section-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--text);
  margin-bottom: 12px;
}

.coupon-section .section-label svg {
  color: var(--gold);
  flex-shrink: 0;
}

.coupon-input-group {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
}

.coupon-input-group input {
  flex: 1;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.875rem;
  font-family: 'Courier New', monospace;
  font-weight: 600;
  letter-spacing: 1px;
  background: var(--bg);
  color: var(--text);
  transition: all 0.3s ease;
}

.coupon-input-group input:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(255, 193, 37, 0.1);
}

.coupon-input-group input::placeholder {
  font-family: 'Poppins', sans-serif;
  letter-spacing: normal;
  font-weight: 400;
  text-transform: none;
}

.btn-apply-coupon {
  padding: 10px 20px;
  background: var(--gold);
  color: #000;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.btn-apply-coupon:hover:not(:disabled) {
  background: #c29d3a;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.3);
}

.btn-apply-coupon:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.coupon-applied {
  display: none;
  align-items: center;
  justify-content: space-between;
  padding: 12px;
  background: rgba(76, 175, 80, 0.1);
  border: 1px solid rgba(76, 175, 80, 0.3);
  border-radius: 8px;
  margin-bottom: 8px;
}

.coupon-applied .applied-info {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  flex: 1;
}

.coupon-applied svg {
  color: #388e3c;
  flex-shrink: 0;
  margin-top: 2px;
}

.coupon-applied .applied-details {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.coupon-applied .applied-code {
  font-family: 'Courier New', monospace;
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--text);
  letter-spacing: 1px;
}

.coupon-applied .applied-description {
  font-size: 0.75rem;
  color: var(--muted);
}

.btn-remove-coupon {
  padding: 6px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--muted);
  transition: all 0.2s ease;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.btn-remove-coupon:hover {
  background: rgba(244, 67, 54, 0.1);
  color: #f44336;
}

.coupon-message {
  display: none;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 0.8125rem;
  font-weight: 500;
  margin-top: 8px;
}

.coupon-message.success {
  background: rgba(76, 175, 80, 0.1);
  border: 1px solid rgba(76, 175, 80, 0.3);
  color: #388e3c;
}

.coupon-message.error {
  background: rgba(244, 67, 54, 0.1);
  border: 1px solid rgba(244, 67, 54, 0.3);
  color: #d32f2f;
}

.coupon-message.warning {
  background: rgba(255, 152, 0, 0.1);
  border: 1px solid rgba(255, 152, 0, 0.3);
  color: #f57c00;
}

.coupon-message.info {
  background: rgba(33, 150, 243, 0.1);
  border: 1px solid rgba(33, 150, 243, 0.3);
  color: #1976d2;
}

.summary-row.discount-row {
  color: #388e3c;
  font-weight: 600;
}

.summary-row.discount-row .discount-label {
  display: flex;
  align-items: center;
  gap: 6px;
}

.summary-row.discount-row .discount-label svg {
  color: var(--gold);
}

.summary-row.discount-row .discount-amount {
  font-weight: 700;
  font-size: 1.125rem;
}

/* Summary Dividers */
.summary-divider-top {
  height: 1px;
  background: var(--border);
  margin: 0 0 16px 0;
}

.summary-divider {
  height: 1px;
  background: var(--border);
  margin: 16px 0;
}

.summary-row.total {
  font-size: 1.25rem;
  font-weight: 700;
  padding-top: 8px;
}

.summary-row.total.grand-total {
  font-size: 1.5rem;
  padding: 16px 0;
  border-top: 2px solid var(--border);
  margin-top: 0;
}

.summary-row.total.grand-total span:last-child {
  font-size: 2rem;
  font-weight: 800;
  color: var(--gold);
}

.savings-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  background: rgba(76, 175, 80, 0.1);
  border: 1px solid rgba(76, 175, 80, 0.3);
  border-radius: 8px;
  font-size: 0.875rem;
  color: #388e3c;
  margin-bottom: 16px;
}

.savings-notice svg {
  flex-shrink: 0;
  color: #4caf50;
}

.btn-checkout {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 24px;
  font-size: 1.125rem;
  font-weight: 700;
  margin-top: 8px;
  background: var(--gold);
  color: #0b1220;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.btn-checkout:hover {
  background: var(--gold-600);
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(255, 193, 37, 0.3);
}

.btn-checkout:active {
  transform: translateY(0);
}

.btn-continue {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  padding: 12px 24px;
  font-size: 0.875rem;
  margin-top: 12px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.2s;
}

.btn-continue:hover {
  border-color: var(--gold);
  color: var(--gold);
  background: rgba(255, 193, 37, 0.05);
}

.trust-badges {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.trust-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.75rem;
  color: var(--muted);
}

.trust-badge svg {
  color: #4caf50;
  flex-shrink: 0;
}

.secure-checkout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.75rem;
  color: var(--muted);
  padding-top: 8px;
}

.secure-checkout svg {
  color: #4caf50;
}

/* Toast Notifications */
#cart-toast-container {
  position: fixed;
  top: 80px;
  right: 20px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 12px;
  pointer-events: none;
}

.cart-toast {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  min-width: 300px;
  max-width: 400px;
  opacity: 0;
  transform: translateX(100%);
  transition: all 0.3s ease;
  pointer-events: all;
}

.cart-toast.show {
  opacity: 1;
  transform: translateX(0);
}

.cart-toast svg {
  flex-shrink: 0;
}

.cart-toast.success {
  border-color: #4caf50;
  background: rgba(76, 175, 80, 0.1);
  color: #2e7d32;
}

.cart-toast.success svg {
  color: #4caf50;
}

.cart-toast.error {
  border-color: #d32f2f;
  background: rgba(211, 47, 47, 0.1);
  color: #c62828;
}

.cart-toast.error svg {
  color: #d32f2f;
}

.cart-toast.warning {
  border-color: #ff9800;
  background: rgba(255, 152, 0, 0.1);
  color: #f57c00;
}

.cart-toast.warning svg {
  color: #ff9800;
}

.cart-toast.info {
  border-color: #2196f3;
  background: rgba(33, 150, 243, 0.1);
  color: #1976d2;
}

.cart-toast.info svg {
  color: #2196f3;
}

.cart-toast span {
  font-size: 0.875rem;
  font-weight: 500;
}

/* Screen reader only */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* Responsive Cart */
@media (max-width: 559px) {
  .cart-items-section {
    padding: 16px;
  }

  .cart-summary {
    padding: 20px;
  }

  #cart-toast-container {
    right: 10px;
    left: 10px;
  }

  .cart-toast {
    min-width: auto;
    max-width: none;
  }

  .coupon-input-group {
    flex-direction: column;
  }

  .btn-apply-coupon {
    width: 100%;
  }

  .coupon-applied {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .btn-remove-coupon {
    align-self: flex-end;
  }

  .summary-row.discount-row .discount-amount {
    font-size: 1rem;
  }
}

/* Old cart table styles (kept for backwards compatibility) */
.cart-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 16px;
}

.cart-table {
  width: 100%;
  border-collapse: collapse;
}

.cart-table th,
.cart-table td {
  text-align: left;
  padding: 10px;
  border-bottom: 1px solid var(--border);
}

.cart-table th {
  color: var(--muted);
  font-weight: 600;
}

.cart-row-title {
  display: grid;
  gap: 4px;
}

.right {
  text-align: right;
}

.btn-danger {
  background: #fee2e2;
  border-color: #fecaca;
  color: #991b1b;
}

.btn-danger:hover {
  background: #fecaca;
}

/* About page photo grid */
.photo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.photo-card {
  position: relative;
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  background: #f8fafc;
  aspect-ratio: 4/3;
}

.photo-card .ph {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(120% 80% at 20% -10%, rgba(14, 165, 233, 0.20), transparent 60%),
    radial-gradient(120% 80% at 120% 10%, rgba(212, 175, 55, 0.25), transparent 60%);
}

@media (min-width: 700px) {
  .photo-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Contact page */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.form-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 16px;
  display: grid;
  gap: 12px;
}

.form-field {
  display: grid;
  gap: 6px;
}

.form-field label {
  font-weight: 600;
}

.form-field input,
.form-field textarea {
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  color: var(--text);
}

.form-field input:focus,
.form-field textarea:focus {
  outline: 2px solid var(--ring);
  outline-offset: 1px;
}

.form-field .error {
  color: #b91c1c;
  min-height: 1em;
}

.form-actions {
  display: flex;
  justify-content: flex-start;
}

.map-card {
  min-height: 320px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 8px;
}

.map-fallback {
  background: rgba(0, 0, 0, 0.05);
  border: 1px dashed rgba(0, 0, 0, 0.2);
  padding: 12px;
  border-radius: 10px;
  margin-top: 10px;
}

[data-theme="dark"] .map-fallback {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.2);
}

.map-fb-inner {
  display: grid;
  gap: 10px;
}

.map-fb-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.map-fallback .btn {
  background: var(--accent, #0ea5e9);
  color: #fff;
  padding: 8px 12px;
  border-radius: 8px;
  text-decoration: none;
}

.map-fallback .btn.secondary {
  background: transparent;
  color: inherit;
  border: 1px solid currentColor;
}

@media (min-width: 900px) {
  .contact-grid {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}

/* Dark Mode - Cart Page */
[data-theme="dark"] .cart-items-section,
[data-theme="dark"] .cart-summary {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .cart-item {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--border);
}

[data-theme="dark"] .item-image {
  background: var(--bg);
}

[data-theme="dark"] .quantity-controls {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .qty-input {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--border);
}

[data-theme="dark"] .cart-toast {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .meta-tag {
  background: rgba(255, 255, 255, 0.05);
}

[data-theme="dark"] .shipping-estimate-section {
  background: rgba(255, 255, 255, 0.03);
  border-color: var(--border);
}

[data-theme="dark"] .location-input-group input {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .shipping-option {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .shipping-option:hover,
[data-theme="dark"] .shipping-option.selected {
  background: rgba(255, 193, 37, 0.1);
}

[data-theme="dark"] .btn-continue {
  border-color: var(--border);
}

[data-theme="dark"] .btn-continue:hover {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.1);
}

/* Dark Mode - Filter Sidebar Enhancements */
[data-theme="dark"] .filter-sidebar {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .filter-sidebar::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
}

[data-theme="dark"] .filter-sidebar::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.3);
}

[data-theme="dark"] .filter-option input[type="checkbox"] {
  accent-color: var(--gold);
}

[data-theme="dark"] .price-inputs input,
[data-theme="dark"] .search-wrapper input[type="search"] {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}

[data-theme="dark"] .filter-tag {
  background: rgba(255, 193, 37, 0.2);
  border-color: rgba(255, 193, 37, 0.4);
}

[data-theme="dark"] .price-range-slider {
  background: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .price-range-slider input[type="range"]::-webkit-slider-thumb {
  border-color: var(--card);
}

[data-theme="dark"] .price-range-slider input[type="range"]::-moz-range-thumb {
  border-color: var(--card);
}

[data-theme="dark"] .related-products-carousel .product-card {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .related-products-carousel .product-card:hover {
  border-color: var(--gold);
}

[data-theme="dark"] .carousel-nav {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .modal-overlay {
  background: rgba(0, 0, 0, 0.8);
}

[data-theme="dark"] .modal-content {
  background: var(--card);
}

[data-theme="dark"] .added-product-info,
[data-theme="dark"] .cart-summary {
  background: rgba(255, 255, 255, 0.05);
}

/* ============================================
   CHECKOUT PAGE STYLES
   ============================================ */
/* Checkout Page Layout */
.checkout-page {
  min-height: calc(100vh - 200px);
  padding: 40px 0;
  background: var(--bg);
}

.checkout-header {
  margin-bottom: 40px;
}

.checkout-header h1 {
  font-size: 2rem;
  margin-bottom: 24px;
  color: var(--text);
}

/* Checkout Steps */
.checkout-steps {
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 20px 0;
  border-bottom: 2px solid var(--border);
}

.step {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  position: relative;
}

.step:not(:last-child)::after {
  content: '';
  position: absolute;
  right: -8px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid var(--muted);
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
}

.step.active:not(:last-child)::after {
  border-left-color: var(--gold);
}

.step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--border);
  color: var(--muted);
  font-weight: 700;
  font-size: 1rem;
}

.step.active .step-number {
  background: var(--gold);
  border-color: var(--gold);
  color: white;
}

.step-label {
  font-size: 0.875rem;
  color: var(--muted);
  font-weight: 500;
}

.step.active .step-label {
  color: var(--text);
  font-weight: 600;
}

/* Checkout Content Grid */
.checkout-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  margin-top: 32px;
}

@media (min-width: 900px) {
  .checkout-content {
    grid-template-columns: 1fr 400px;
  }
}

/* Checkout Sections */
.checkout-section {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 24px;
}

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}

.section-header h2 {
  font-size: 1.25rem;
  margin: 0;
  color: var(--text);
}

.step-badge {
  font-size: 0.75rem;
  padding: 4px 12px;
  background: var(--gold);
  color: white;
  border-radius: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.section-description {
  font-size: 0.875rem;
  color: var(--muted);
  margin: 8px 0 0;
}

.required-notice {
  font-size: 0.75rem;
  color: var(--muted);
}

/* Auth Section */
.auth-options {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.auth-status {
  display: flex;
  gap: 16px;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
}

.auth-status.logged-in {
  background: #d4edda;
  border: 1px solid #c3e6cb;
}

.auth-status.logged-in svg {
  color: #28a745;
}

.auth-status svg {
  flex-shrink: 0;
  color: var(--gold);
}

.auth-status-text strong {
  display: block;
  margin-bottom: 4px;
  color: var(--text);
}

.auth-status-text p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted);
}

.auth-actions {
  text-align: center;
}

.btn-text {
  background: none;
  border: none;
  color: var(--text);
  font-size: 0.875rem;
  cursor: pointer;
  padding: 8px;
  transition: color 0.2s;
}

.btn-text:hover {
  color: var(--gold);
}

.btn-text strong {
  color: var(--gold);
  font-weight: 600;
}

.login-form-wrapper {
  margin-top: 16px;
}

.login-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.form-actions-horizontal {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}

/* Delivery Form */
.delivery-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 560px) {
  .form-row {
    grid-template-columns: 1fr 1fr;
  }
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.form-group label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text);
}

.form-group input,
.form-group select,
.form-group textarea {
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text);
  font-size: 1rem;
  font-family: inherit;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(255, 193, 37, 0.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 80px;
}

.form-hint {
  font-size: 0.75rem;
  color: var(--muted);
  margin-top: -4px;
}

/* Newsletter Opt-in */
.newsletter-opt-in {
  background: linear-gradient(135deg, rgba(14, 165, 233, 0.05) 0%, rgba(139, 92, 246, 0.05) 100%);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  margin: 8px 0;
}

.checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  margin: 0;
}

.checkbox-label input[type="checkbox"] {
  margin-top: 2px;
  width: 18px;
  height: 18px;
  cursor: pointer;
  flex-shrink: 0;
}

.checkbox-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.checkbox-text strong {
  color: var(--text);
  font-size: 14px;
}

.checkbox-text small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

/* Delivery Options */
.delivery-options {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.delivery-option {
  position: relative;
  display: block;
  cursor: pointer;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 20px;
  background: var(--surface);
  transition: all 0.2s;
}

.delivery-option:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.delivery-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.delivery-option input[type="radio"]:checked+.delivery-option-content {
  border-left: 4px solid var(--gold);
  padding-left: 16px;
}

.delivery-option:has(input:checked) {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.05);
}

.delivery-option-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: padding-left 0.2s;
}

.delivery-option-header {
  display: flex;
  gap: 16px;
  align-items: center;
}

.delivery-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(33, 150, 243, 0.1);
  color: #1976d2;
  flex-shrink: 0;
}

.delivery-icon.express {
  background: rgba(255, 152, 0, 0.1);
  color: #f57c00;
}

.delivery-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.delivery-name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
}

.delivery-time {
  font-size: 0.875rem;
  color: var(--muted);
}

.delivery-price {
  display: flex;
  align-items: center;
  gap: 8px;
}

.delivery-price .price-value {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--gold);
}

.delivery-description {
  font-size: 0.875rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}

/* Checkout Navigation */
.checkout-navigation {
  display: flex;
  gap: 16px;
  justify-content: space-between;
  align-items: center;
  padding: 24px 0;
  flex-wrap: wrap;
}

.btn-secondary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: transparent;
  border: 2px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s;
}

.btn-secondary:hover {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.05);
}

.btn-large {
  padding: 16px 32px;
  font-size: 1.125rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Order Summary Sidebar */
.checkout-sidebar {
  position: relative;
}

.order-summary {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
}

.order-summary.sticky {
  position: sticky;
  top: 100px;
}

.order-summary h3 {
  font-size: 1.25rem;
  margin: 0 0 20px;
  color: var(--text);
}

.summary-items {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 20px;
  max-height: 400px;
  overflow-y: auto;
  padding-right: 8px;
}

.summary-items::-webkit-scrollbar {
  width: 6px;
}

.summary-items::-webkit-scrollbar-track {
  background: var(--surface);
  border-radius: 3px;
}

.summary-items::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 3px;
}

.summary-item {
  display: flex;
  gap: 12px;
}

.summary-item-image {
  position: relative;
  width: 60px;
  height: 60px;
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
  background: white;
  border: 1px solid var(--border);
}

.summary-item-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 4px;
}

.item-qty {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gold);
  color: white;
  border-radius: 50%;
  font-size: 0.75rem;
  font-weight: 700;
  border: 2px solid var(--card);
}

.summary-item-details {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.summary-item-details h4 {
  font-size: 0.875rem;
  margin: 0;
  color: var(--text);
  line-height: 1.4;
}

.item-price {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--gold);
  margin: 0;
}

.empty-summary {
  text-align: center;
  padding: 40px 20px;
  color: var(--muted);
  font-size: 0.875rem;
}

.summary-calculations {
  margin-top: 20px;
}

.summary-calculations .summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  font-size: 0.875rem;
}

.summary-calculations .summary-row span:last-child {
  font-weight: 600;
}

.security-badges {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}

.security-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  color: var(--muted);
}

.security-badge svg {
  color: #4caf50;
  flex-shrink: 0;
}

/* ============================================
   ORDER CONFIRMATION PAGE STYLES
   ============================================ */
.confirmation-page {
  padding: 40px 0;
  background: linear-gradient(to bottom, rgba(255, 193, 37, 0.05) 0%, transparent 300px);
}

/* Success Banner */
.success-banner {
  text-align: center;
  padding: 48px 24px;
  margin-bottom: 40px;
  background: white;
  border: 2px solid var(--gold);
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(255, 193, 37, 0.15);
}

.success-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 24px;
  background: linear-gradient(135deg, #4caf50 0%, #45a049 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: successPop 0.5s ease-out;
}

.success-icon svg {
  stroke: white;
  stroke-width: 3;
}

@keyframes successPop {
  0% {
    transform: scale(0);
    opacity: 0;
  }

  50% {
    transform: scale(1.1);
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.success-banner h1 {
  font-size: 2rem;
  margin-bottom: 12px;
  color: var(--text);
}

.success-subtitle {
  font-size: 1rem;
  color: var(--muted);
}

.success-subtitle strong {
  color: var(--gold);
}

/* Completed Steps */
.completed-steps .step.completed .step-number {
  background: #4caf50;
  border-color: #4caf50;
  color: white;
}

.completed-steps .step.completed .step-label {
  color: #4caf50;
  font-weight: 600;
}

/* Confirmation Content Layout */
.confirmation-content {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 32px;
  margin-bottom: 48px;
}

/* Order Summary Card */
.confirmation-section {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 28px;
  margin-bottom: 24px;
}

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--border);
}

.section-header h2 {
  font-size: 1.5rem;
  margin: 0;
  color: var(--text);
}

/* Order Status Badge */
.order-status-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 24px;
  font-size: 0.875rem;
  font-weight: 600;
}

.order-status-badge .status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  animation: pulse 2s ease-in-out infinite;
}

.order-status-badge.success {
  background: rgba(76, 175, 80, 0.1);
  color: #4caf50;
}

.order-status-badge.success .status-dot {
  background: #4caf50;
}

.order-status-badge.warning {
  background: rgba(255, 152, 0, 0.1);
  color: #ff9800;
}

.order-status-badge.warning .status-dot {
  background: #ff9800;
}

.order-status-badge.info {
  background: rgba(33, 150, 243, 0.1);
  color: #2196f3;
}

.order-status-badge.info .status-dot {
  background: #2196f3;
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.5;
  }
}

/* Item Count Badge */
.item-count-badge {
  background: var(--gold);
  color: white;
  padding: 6px 12px;
  border-radius: 16px;
  font-size: 0.875rem;
  font-weight: 600;
}

/* Order Details Grid */
.order-details-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.detail-item {
  display: flex;
  gap: 16px;
  padding: 20px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 12px;
  transition: all 0.3s ease;
}

.detail-item:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.1);
}

.detail-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--gold) 0%, #c9a745 100%);
  border-radius: 12px;
}

.detail-icon svg {
  stroke: white;
}

.detail-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.detail-label {
  font-size: 0.875rem;
  color: var(--muted);
}

.detail-value {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text);
}

.detail-value.amount {
  font-size: 1.5rem;
  color: var(--gold);
}

/* Ordered Items */
.ordered-items {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.ordered-item {
  display: flex;
  gap: 20px;
  padding: 20px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 12px;
  transition: all 0.3s ease;
}

.ordered-item:hover {
  border-color: var(--gold);
}

.item-image-wrapper {
  position: relative;
  flex-shrink: 0;
}

.ordered-item .item-image-wrapper img {
  width: 80px;
  height: 80px;
  object-fit: contain;
  border: 2px solid var(--border);
  border-radius: 8px;
  background: white;
  padding: 8px;
}

.item-quantity {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 28px;
  height: 28px;
  background: var(--gold);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.item-details {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.item-details h4 {
  margin: 0;
  font-size: 1.125rem;
  color: var(--text);
}

.item-meta {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted);
}

.item-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  padding-left: 20px;
}

.unit-price {
  font-size: 0.875rem;
  color: var(--muted);
}

.total-price {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--gold);
}

/* Info Grid */
.info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}

.info-card {
  padding: 20px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 12px;
}

.info-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--border);
}

.info-header svg {
  stroke: var(--gold);
  flex-shrink: 0;
}

.info-header h3 {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
}

.info-body {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--text);
}

.info-body p {
  margin: 0 0 8px 0;
}

.info-body p:last-child {
  margin-bottom: 0;
}

.info-body strong {
  color: var(--text);
  font-weight: 600;
}

/* Payment Notice */
.payment-notice {
  display: flex;
  gap: 20px;
  padding: 24px;
  background: rgba(33, 150, 243, 0.05);
  border: 2px solid #2196f3;
  border-radius: 12px;
  margin-bottom: 24px;
}

.payment-notice svg {
  stroke: #2196f3;
  flex-shrink: 0;
}

.notice-content h3 {
  margin: 0 0 8px 0;
  font-size: 1.125rem;
  color: #2196f3;
}

.notice-content p {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--text);
  line-height: 1.6;
}

/* Confirmation Actions */
.confirmation-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  padding: 32px 0;
}

.confirmation-actions .btn {
  min-width: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

/* Sidebar */
.confirmation-sidebar {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.sidebar-card {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 24px;
}

.sidebar-card h3 {
  margin: 0 0 20px 0;
  font-size: 1.125rem;
  color: var(--text);
  padding-bottom: 12px;
  border-bottom: 2px solid var(--border);
}

/* Quick Actions */
.quick-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.action-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--text);
  width: 100%;
}

.action-btn:hover {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.05);
}

.action-btn svg {
  stroke: var(--gold);
  flex-shrink: 0;
}

/* Next Steps */
.next-steps {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.step-item {
  display: flex;
  gap: 16px;
  padding: 16px;
  background: var(--surface);
  border-radius: 8px;
  transition: all 0.3s ease;
}

.step-item:hover {
  background: rgba(255, 193, 37, 0.05);
}

.step-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gold);
  color: white;
  border-radius: 50%;
  font-weight: 700;
  font-size: 1rem;
}

.step-text {
  flex: 1;
}

.step-text strong {
  display: block;
  font-size: 0.9375rem;
  color: var(--text);
  margin-bottom: 4px;
}

.step-text p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted);
  line-height: 1.4;
}

/* Support Info */
.support-info {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.support-item {
  display: flex;
  gap: 12px;
  padding: 12px;
  background: var(--surface);
  border-radius: 8px;
}

.support-item svg {
  stroke: var(--gold);
  flex-shrink: 0;
}

.support-item strong {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 4px;
}

.support-item p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted);
}

/* Trust Badges */
.trust-badges-card {
  background: linear-gradient(135deg, rgba(255, 193, 37, 0.05) 0%, transparent 100%);
}

.trust-badge {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text);
}

.trust-badge:not(:last-child) {
  border-bottom: 1px solid var(--border);
}

.trust-badge svg {
  stroke: var(--gold);
  flex-shrink: 0;
}

/* Empty Message */
.empty-message {
  text-align: center;
  padding: 48px 24px;
  color: var(--muted);
  font-size: 1rem;
}

/* Responsive Design */
@media (max-width: 899px) {
  .confirmation-content {
    grid-template-columns: 1fr;
  }

  .confirmation-sidebar {
    order: -1;
  }

  .order-details-grid {
    grid-template-columns: 1fr;
  }

  .info-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 559px) {
  .success-banner {
    padding: 32px 20px;
  }

  .success-banner h1 {
    font-size: 1.5rem;
  }

  .success-icon {
    width: 64px;
    height: 64px;
  }

  .confirmation-section {
    padding: 20px;
  }

  .section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .ordered-item {
    flex-direction: column;
    gap: 16px;
  }

  .item-price {
    align-items: flex-start;
    padding-left: 0;
  }

  .confirmation-actions {
    flex-direction: column;
  }

  .confirmation-actions .btn {
    width: 100%;
  }

  .detail-item {
    padding: 16px;
  }

  .detail-icon {
    width: 40px;
    height: 40px;
  }
}

/* Dark Mode Support */
[data-theme="dark"] .confirmation-page {
  background: linear-gradient(to bottom, rgba(255, 193, 37, 0.03) 0%, transparent 300px);
}

[data-theme="dark"] .success-banner,
[data-theme="dark"] .confirmation-section,
[data-theme="dark"] .sidebar-card {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .detail-item,
[data-theme="dark"] .ordered-item,
[data-theme="dark"] .info-card,
[data-theme="dark"] .action-btn,
[data-theme="dark"] .step-item,
[data-theme="dark"] .support-item {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .detail-item:hover,
[data-theme="dark"] .ordered-item:hover {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.1);
}

[data-theme="dark"] .action-btn:hover {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.08);
}

[data-theme="dark"] .step-item:hover {
  background: rgba(255, 193, 37, 0.08);
}

[data-theme="dark"] .payment-notice {
  background: rgba(33, 150, 243, 0.1);
  border-color: #2196f3;
}

/* Print Styles */
@media print {

  .main-header,
  .main-footer,
  .confirmation-sidebar,
  .confirmation-actions,
  .checkout-steps {
    display: none;
  }

  .confirmation-content {
    grid-template-columns: 1fr;
  }

  .confirmation-page {
    padding: 0;
    background: white;
  }

  .success-banner,
  .confirmation-section {
    border: 1px solid #ddd;
    box-shadow: none;
    page-break-inside: avoid;
  }
}

/* ============================================
   PAYMENT PAGE STYLES
   ============================================ */
/* Payment Page Specifics */
.payment-page .step.completed .step-number {
  background: #4caf50;
  border-color: #4caf50;
  color: white;
}

/* Delivery Summary */
.delivery-summary {
  background: var(--surface);
  border-color: var(--gold);
}

.btn-text-link {
  font-size: 0.875rem;
  color: var(--gold);
  text-decoration: none;
  font-weight: 600;
  transition: opacity 0.2s;
}

.btn-text-link:hover {
  opacity: 0.8;
  text-decoration: underline;
}

.info-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.info-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.info-row svg {
  flex-shrink: 0;
  color: var(--gold);
  margin-top: 2px;
}

.info-row div {
  flex: 1;
}

.info-row strong {
  display: block;
  margin-bottom: 4px;
  color: var(--text);
  font-size: 1rem;
}

.info-row p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted);
  line-height: 1.5;
}

/* Payment Methods */
.payment-methods {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.payment-option {
  position: relative;
  display: block;
  cursor: pointer;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 20px;
  background: var(--surface);
  transition: all 0.2s;
}

.payment-option:hover:not(.disabled) {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.payment-option.disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: rgba(0, 0, 0, 0.02);
}

.payment-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.payment-option input[type="radio"]:checked+.payment-option-content {
  border-left: 4px solid var(--gold);
  padding-left: 16px;
}

.payment-option:has(input:checked):not(.disabled) {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.05);
}

.payment-option-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: padding-left 0.2s;
}

.payment-option-header {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}

.payment-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 12px;
  flex-shrink: 0;
}

.payment-icon.card {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
}

.payment-icon.transfer {
  background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
  color: white;
}

.payment-icon.cod {
  background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
  color: white;
}

.payment-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 180px;
}

.payment-name {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text);
}

.payment-subtitle {
  font-size: 0.875rem;
  color: var(--muted);
}

.payment-badge {
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.payment-badge.recommended {
  background: #4caf50;
  color: white;
}

.payment-description {
  font-size: 0.875rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}

.card-logos {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.card-logo {
  padding: 6px 12px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text);
}

.cod-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  background: rgba(255, 152, 0, 0.1);
  border: 1px solid rgba(255, 152, 0, 0.3);
  border-radius: 8px;
  font-size: 0.875rem;
  color: #f57c00;
  margin-top: 8px;
}

.cod-notice svg {
  flex-shrink: 0;
}

/* Payment Details Sections */
.payment-details {
  animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

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

/* Paystack Info */
.paystack-info {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.secure-badge {
  display: flex;
  gap: 16px;
  padding: 20px;
  background: rgba(76, 175, 80, 0.05);
  border: 2px solid rgba(76, 175, 80, 0.2);
  border-radius: 12px;
  align-items: flex-start;
}

.secure-badge svg {
  flex-shrink: 0;
  color: #4caf50;
  width: 32px;
  height: 32px;
}

.secure-badge strong {
  display: block;
  margin-bottom: 4px;
  color: var(--text);
  font-size: 1rem;
}

.secure-badge p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted);
  line-height: 1.5;
}

.payment-info-text {
  padding: 16px;
  background: var(--surface);
  border-left: 4px solid var(--gold);
  border-radius: 8px;
  font-size: 0.875rem;
  color: var(--muted);
  line-height: 1.6;
  margin: 0;
}

/* Bank Transfer Details */
.bank-details {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.bank-info-card {
  padding: 24px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 12px;
}

.bank-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border-radius: 12px;
  color: white;
  margin-bottom: 16px;
}

.bank-info-card h3 {
  font-size: 1.25rem;
  margin: 0 0 20px;
  color: var(--text);
}

.bank-detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
  gap: 16px;
}

.bank-detail-row:last-child {
  border-bottom: none;
}

.bank-detail-row .label {
  font-size: 0.875rem;
  color: var(--muted);
  flex-shrink: 0;
}

.bank-detail-row .value {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  text-align: right;
}

.bank-detail-row .value.amount {
  font-size: 1.5rem;
  color: var(--gold);
}

.copy-text {
  font-family: 'Courier New', monospace;
  background: var(--bg);
  padding: 4px 8px;
  border-radius: 4px;
}

.btn-copy {
  background: none;
  border: none;
  color: var(--gold);
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  transition: opacity 0.2s;
}

.btn-copy:hover {
  opacity: 0.7;
}

/* Transfer Instructions */
.transfer-instructions {
  padding: 20px;
  background: var(--surface);
  border-left: 4px solid #2196f3;
  border-radius: 8px;
}

.transfer-instructions h4 {
  margin: 0 0 12px;
  color: var(--text);
  font-size: 1rem;
}

.transfer-instructions ol {
  margin: 0;
  padding-left: 20px;
}

.transfer-instructions li {
  margin-bottom: 8px;
  font-size: 0.875rem;
  color: var(--muted);
  line-height: 1.6;
}

.transfer-instructions li:last-child {
  margin-bottom: 0;
}

/* Upload Section */
.upload-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.upload-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 32px 20px;
  border: 2px dashed var(--border);
  border-radius: 12px;
  background: var(--surface);
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
}

.upload-label:hover {
  border-color: var(--gold);
  background: rgba(255, 193, 37, 0.05);
}

.upload-label svg {
  color: var(--gold);
}

.upload-label span {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text);
}

.upload-hint {
  font-size: 0.75rem;
  color: var(--muted);
  text-align: center;
}

.file-preview {
  padding: 12px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
}

.file-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.file-info svg {
  color: var(--gold);
  flex-shrink: 0;
}

.file-info span {
  flex: 1;
  font-size: 0.875rem;
  color: var(--text);
}

.file-info button {
  background: none;
  border: none;
  color: var(--muted);
  font-size: 1.25rem;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 0.2s;
}

.file-info button:hover {
  background: rgba(255, 0, 0, 0.1);
  color: #f44336;
}

/* COD Confirmation */
.cod-confirmation {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.cod-info-card {
  padding: 24px;
  background: var(--surface);
  border: 2px solid #2196f3;
  border-radius: 12px;
  text-align: center;
}

.cod-info-card svg {
  color: #2196f3;
  margin-bottom: 16px;
}

.cod-info-card h3 {
  font-size: 1.25rem;
  margin: 0 0 20px;
  color: var(--text);
}

.cod-info-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
}

.cod-info-card li {
  padding: 12px 0;
  font-size: 0.875rem;
  color: var(--muted);
  line-height: 1.6;
  border-bottom: 1px solid var(--border);
}

.cod-info-card li:last-child {
  border-bottom: none;
}

.cod-terms {
  padding: 20px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 12px;
}

.checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  font-size: 0.875rem;
  color: var(--text);
  line-height: 1.6;
}

.checkbox-label input[type="checkbox"] {
  margin-top: 2px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  accent-color: var(--gold);
}

/* Responsive - Payment Page */
@media (max-width: 559px) {
  .payment-option {
    padding: 16px;
  }

  .payment-option-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .payment-badge {
    align-self: flex-start;
  }

  .bank-detail-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .bank-detail-row .value {
    text-align: left;
  }
}

/* Dark Mode - Payment Page */
[data-theme="dark"] .delivery-summary {
  background: rgba(255, 193, 37, 0.05);
}

[data-theme="dark"] .payment-option,
[data-theme="dark"] .bank-info-card,
[data-theme="dark"] .transfer-instructions,
[data-theme="dark"] .upload-label,
[data-theme="dark"] .cod-info-card,
[data-theme="dark"] .cod-terms,
[data-theme="dark"] .paystack-info .payment-info-text {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--border);
}

[data-theme="dark"] .payment-option:has(input:checked) {
  background: rgba(255, 193, 37, 0.1);
}

[data-theme="dark"] .payment-option.disabled {
  background: rgba(0, 0, 0, 0.2);
}

[data-theme="dark"] .card-logo {
  background: rgba(255, 255, 255, 0.05);
}

[data-theme="dark"] .copy-text {
  background: var(--surface);
}

[data-theme="dark"] .file-preview {
  background: rgba(255, 255, 255, 0.05);
}

/* Responsive */
@media (max-width: 899px) {
  .checkout-content {
    grid-template-columns: 1fr;
  }

  .order-summary.sticky {
    position: static;
  }

  .checkout-navigation {
    flex-direction: column-reverse;
  }

  .checkout-navigation .btn {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 559px) {
  .checkout-steps {
    gap: 8px;
  }

  .step-label {
    display: none;
  }

  .step:not(:last-child)::after {
    right: -4px;
    border-left-width: 6px;
    border-top-width: 6px;
    border-bottom-width: 6px;
  }

  .checkout-section {
    padding: 16px;
  }

  .delivery-option {
    padding: 16px;
  }

  .delivery-option-header {
    flex-wrap: wrap;
  }

  .delivery-price {
    width: 100%;
    justify-content: flex-end;
  }
}

/* Dark Mode - Checkout */
[data-theme="dark"] .checkout-section,
[data-theme="dark"] .order-summary {
  background: var(--card);
  border-color: var(--border);
}

[data-theme="dark"] .auth-status,
[data-theme="dark"] .form-group input,
[data-theme="dark"] .form-group select,
[data-theme="dark"] .form-group textarea,
[data-theme="dark"] .delivery-option {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--border);
}

[data-theme="dark"] .delivery-option:has(input:checked) {
  background: rgba(255, 193, 37, 0.1);
}

[data-theme="dark"] .summary-item-image {
  background: var(--surface);
}

[data-theme="dark"] .btn-secondary:hover {
  background: rgba(255, 193, 37, 0.1);
}

/* ============================================
   DASHBOARD PAGE STYLES
   ============================================ */
.dashboard-page {
  min-height: calc(100vh - 140px);
  background: var(--surface);
}

.container-full {
  max-width: 100%;
  padding: 0;
}

/* Dashboard Layout */
.dashboard-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  min-height: calc(100vh - 140px);
}

/* Sidebar */
.dashboard-sidebar {
  background: white;
  border-right: 2px solid var(--border);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}

.sidebar-header {
  padding: 32px 24px;
  text-align: center;
  border-bottom: 2px solid var(--border);
}

.user-avatar {
  width: 80px;
  height: 80px;
  margin: 0 auto 16px;
  background: linear-gradient(135deg, var(--gold) 0%, #c9a745 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.user-avatar svg {
  stroke: white;
}

.user-info h3 {
  margin: 0 0 4px 0;
  font-size: 1.125rem;
  color: var(--text);
}

.user-info p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted);
  word-break: break-word;
}

/* Sidebar Navigation */
.sidebar-nav {
  flex: 1;
  padding: 16px 0;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 24px;
  color: var(--text);
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
  font-weight: 500;
}

.nav-item svg {
  stroke: var(--muted);
  flex-shrink: 0;
  transition: stroke 0.3s ease;
}

.nav-item:hover {
  background: rgba(255, 193, 37, 0.05);
}

.nav-item:hover svg {
  stroke: var(--gold);
}

.nav-item.active {
  background: rgba(255, 193, 37, 0.1);
  color: var(--gold);
  border-left: 4px solid var(--gold);
  padding-left: 20px;
}

.nav-item.active svg {
  stroke: var(--gold);
}

.nav-badge {
  margin-left: auto;
  background: var(--gold);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 12px;
  min-width: 20px;
  text-align: center;
}

.sidebar-divider {
  height: 1px;
  background: var(--border);
  margin: 16px 24px;
}

.nav-logout {
  color: #f44336;
}

.nav-logout svg {
  stroke: #f44336;
}

.nav-logout:hover {
  background: rgba(244, 67, 54, 0.05);
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
  display: none;
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 56px;
  height: 56px;
  background: var(--gold);
  border: none;
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  z-index: 100;
}

.mobile-menu-toggle svg {
  stroke: white;
}

/* Dashboard Content */
.dashboard-content {
  padding: 40px;
  overflow-y: auto;
  max-height: calc(100vh - 140px);
}

.content-section {
  display: none;
  animation: fadeIn 0.3s ease;
}

.content-section.active {
  display: block;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

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

.section-header {
  margin-bottom: 32px;
}

.section-header h1 {
  font-size: 2rem;
  margin: 0 0 8px 0;
  color: var(--text);
}

.section-subtitle {
  font-size: 1rem;
  color: var(--muted);
  margin: 0;
}

/* Stats Grid */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
  margin-bottom: 40px;
}

.stat-card {
  display: flex;
  gap: 20px;
  padding: 24px;
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  transition: all 0.3s ease;
}

.stat-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.1);
}

.stat-icon {
  width: 64px;
  height: 64px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.stat-icon.orders {
  background: linear-gradient(135deg, #2196f3 0%, #1976d2 100%);
}

.stat-icon.pending {
  background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%);
}

.stat-icon.reviews {
  background: linear-gradient(135deg, #4caf50 0%, #388e3c 100%);
}

.stat-icon.addresses {
  background: linear-gradient(135deg, #9c27b0 0%, #7b1fa2 100%);
}

.stat-icon svg {
  stroke: white;
}

.stat-content h3 {
  font-size: 2rem;
  margin: 0 0 4px 0;
  color: var(--text);
  font-weight: 700;
}

.stat-content p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--muted);
}

/* Dashboard Widgets */
.dashboard-widgets {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 24px;
  margin-bottom: 40px;
}

.widget {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}

.widget-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 2px solid var(--border);
}

.widget-header h2 {
  font-size: 1.25rem;
  margin: 0;
  color: var(--text);
}

.widget-link {
  color: var(--gold);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.widget-link:hover {
  opacity: 0.8;
  text-decoration: underline;
}

.notification-badge {
  background: var(--gold);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 12px;
}

.widget-content {
  padding: 24px;
}

.empty-state {
  text-align: center;
  padding: 48px 24px;
}

.empty-state svg {
  stroke: var(--muted);
  margin-bottom: 16px;
}

.empty-state h3 {
  font-size: 1.25rem;
  margin: 0 0 8px 0;
  color: var(--text);
}

.empty-state p {
  color: var(--muted);
  margin: 0 0 20px 0;
}

/* Recent Order Card */
.recent-order-card {
  padding: 20px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 8px;
}

.order-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
}

.order-header h3 {
  font-size: 1.125rem;
  margin: 0 0 4px 0;
  color: var(--text);
}

.order-date {
  font-size: 0.875rem;
  color: var(--muted);
  margin: 0;
}

.order-status {
  padding: 6px 12px;
  border-radius: 16px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
}

.order-status.success {
  background: rgba(76, 175, 80, 0.1);
  color: #4caf50;
}

.order-status.warning {
  background: rgba(255, 152, 0, 0.1);
  color: #ff9800;
}

.order-status.info {
  background: rgba(33, 150, 243, 0.1);
  color: #2196f3;
}

.order-summary {
  margin-bottom: 16px;
}

.order-summary p {
  margin: 0;
  color: var(--text);
}

/* Quick Actions */
.quick-actions-section h2 {
  font-size: 1.5rem;
  margin: 0 0 24px 0;
  color: var(--text);
}

.quick-actions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
}

.quick-action-card {
  padding: 24px;
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  text-decoration: none;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.quick-action-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.1);
  transform: translateY(-2px);
}

.quick-action-card svg {
  stroke: var(--gold);
  margin-bottom: 16px;
}

.quick-action-card h3 {
  font-size: 1rem;
  margin: 0 0 8px 0;
  color: var(--text);
}

.quick-action-card p {
  font-size: 0.875rem;
  color: var(--muted);
  margin: 0;
}

/* Order History */
.order-controls {
  display: flex;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

#order-search {
  flex: 1;
  min-width: 250px;
  padding: 12px 16px;
  border: 2px solid var(--border);
  border-radius: 8px;
  font-size: 1rem;
  transition: all 0.2s ease;
}

#order-search:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(255, 193, 37, 0.1);
}

#order-sort {
  padding: 12px 16px;
  border: 2px solid var(--border);
  border-radius: 8px;
  font-size: 1rem;
  background: white;
  cursor: pointer;
  transition: all 0.2s ease;
}

#order-sort:focus {
  outline: none;
  border-color: var(--gold);
}

.order-filters {
  display: flex;
  gap: 12px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.filter-btn {
  padding: 10px 20px;
  background: white;
  border: 2px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  font-weight: 500;
  color: var(--text);
  transition: all 0.3s ease;
}

.filter-btn:hover {
  border-color: var(--gold);
}

.filter-btn.active {
  background: var(--gold);
  border-color: var(--gold);
  color: white;
}

/* Orders Table (Desktop) */
.orders-table-container {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 24px;
}

.orders-table {
  width: 100%;
  border-collapse: collapse;
}

.orders-table thead {
  background: var(--surface);
  border-bottom: 2px solid var(--border);
}

.orders-table th {
  padding: 16px 20px;
  text-align: left;
  font-weight: 600;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--muted);
}

.orders-table tbody tr {
  border-bottom: 1px solid var(--border);
  transition: background 0.2s ease;
  cursor: pointer;
}

.orders-table tbody tr:last-child {
  border-bottom: none;
}

.orders-table tbody tr:hover {
  background: rgba(255, 193, 37, 0.05);
}

.orders-table td {
  padding: 20px;
  color: var(--text);
}

.order-number-cell a {
  color: var(--gold);
  text-decoration: none;
  font-weight: 600;
  font-family: 'Courier New', monospace;
  transition: color 0.2s ease;
}

.order-number-cell a:hover {
  color: #b8941e;
  text-decoration: underline;
}

.amount-cell {
  font-weight: 700;
  font-size: 1.05rem;
}

.actions-cell {
  display: flex;
  gap: 8px;
}

.btn-icon {
  width: 36px;
  height: 36px;
  border-radius: 6px;
  background: white;
  border: 2px solid var(--border);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.btn-icon:hover {
  background: var(--surface);
  border-color: var(--gold);
}

.btn-icon svg {
  stroke: var(--text);
  transition: stroke 0.2s ease;
}

.btn-icon:hover svg {
  stroke: var(--gold);
}

.empty-cell {
  padding: 60px 20px !important;
}

.empty-cell .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.empty-cell .empty-state svg {
  margin-bottom: 20px;
  stroke: var(--muted);
}

.empty-cell .empty-state h3 {
  margin-bottom: 8px;
  color: var(--text);
}

.empty-cell .empty-state p {
  color: var(--muted);
}

/* Orders List (Mobile Cards) */
.orders-list {
  display: none;
  flex-direction: column;
  gap: 20px;
}

.order-card {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  transition: all 0.3s ease;
  cursor: pointer;
}

.order-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.1);
}

.order-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
}

.order-info h3 {
  font-size: 1.125rem;
  margin: 0 0 4px 0;
  color: var(--text);
  font-weight: 700;
}

.order-items {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 20px;
  padding: 16px;
  background: var(--surface);
  border-radius: 8px;
}

.order-item-preview {
  width: 60px;
  height: 60px;
  border: 2px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  background: white;
}

.order-item-preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 4px;
}

.more-items {
  font-size: 0.875rem;
  color: var(--muted);
  font-weight: 600;
}

.order-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 16px;
  border-top: 2px solid var(--border);
}

.order-total span {
  font-size: 0.875rem;
  color: var(--muted);
  margin-right: 12px;
}

.order-total strong {
  font-size: 1.25rem;
  color: var(--gold);
}

/* Pagination */
.orders-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 32px;
  padding: 20px;
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
}

.pagination-btn {
  padding: 10px 20px;
  background: white;
  border: 2px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  font-weight: 600;
  color: var(--text);
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pagination-btn:hover:not(:disabled) {
  background: var(--gold);
  border-color: var(--gold);
  color: white;
}

.pagination-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.pagination-info {
  font-weight: 600;
  color: var(--text);
}

.pagination-info span {
  color: var(--gold);
}

/* Reviews Section */
.review-stats {
  display: flex;
  gap: 16px;
  align-items: center;
}

.stat-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 20px;
  font-weight: 600;
  color: var(--text);
}

.stat-badge svg {
  stroke: var(--gold);
}

.stat-badge span {
  color: var(--gold);
}

/* Reviews Filter */
.reviews-filter {
  display: flex;
  gap: 24px;
  align-items: center;
  margin-bottom: 24px;
  padding: 20px;
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  flex-wrap: wrap;
}

.filter-group {
  display: flex;
  align-items: center;
  gap: 12px;
}

.filter-group label {
  font-weight: 600;
  color: var(--text);
  font-size: 0.9375rem;
}

.filter-select {
  padding: 10px 16px;
  border: 2px solid var(--border);
  border-radius: 8px;
  font-size: 0.9375rem;
  background: white;
  cursor: pointer;
  transition: all 0.2s ease;
  min-width: 160px;
}

.filter-select:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(255, 193, 37, 0.1);
}

/* Reviews List */
.reviews-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Review Card */
.review-card {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 28px;
  transition: all 0.3s ease;
}

.review-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.1);
}

.review-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
  gap: 16px;
}

.review-product .product-link {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--text);
  transition: color 0.2s ease;
}

.review-product .product-link:hover {
  color: var(--gold);
}

.review-product .product-link svg {
  stroke: var(--gold);
  flex-shrink: 0;
}

.review-product h3 {
  font-size: 1.125rem;
  margin: 0;
}

.review-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.btn-icon.delete {
  border-color: #f44336;
}

.btn-icon.delete:hover {
  background: #f44336;
  border-color: #f44336;
}

.btn-icon.delete:hover svg {
  stroke: white;
}

.review-rating {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.review-rating .stars {
  display: flex;
  gap: 4px;
}

.review-rating .star {
  stroke: var(--gold);
}

.review-rating .star.filled {
  fill: var(--gold);
}

.review-date {
  color: var(--muted);
  font-size: 0.875rem;
}

.review-title {
  font-size: 1.125rem;
  margin: 0 0 12px 0;
  color: var(--text);
  font-weight: 600;
}

.review-text {
  color: var(--text);
  line-height: 1.7;
  margin: 0 0 16px 0;
  white-space: pre-wrap;
}

.review-recommend {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  background: rgba(76, 175, 80, 0.1);
  border-radius: 8px;
  color: #4caf50;
  font-weight: 600;
  font-size: 0.9375rem;
  margin-bottom: 16px;
}

.review-recommend svg {
  stroke: #4caf50;
  flex-shrink: 0;
}

.review-footer {
  padding-top: 16px;
  border-top: 2px solid var(--border);
  margin-top: 16px;
}

.order-ref {
  font-size: 0.875rem;
  color: var(--muted);
  font-family: 'Courier New', monospace;
}

/* Review Product Info Display */
.product-info-display {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 8px;
}

.product-info-display svg {
  stroke: var(--gold);
  flex-shrink: 0;
}

.product-info-display strong {
  color: var(--text);
  font-size: 1rem;
}

/* Character Counter */
.char-count {
  text-align: right;
  color: var(--muted);
  font-size: 0.8125rem;
}

.char-count span {
  font-weight: 600;
  color: var(--text);
}

/* Account Forms */
.account-forms {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 24px;
}

.form-card {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 28px;
}

.form-card h2 {
  font-size: 1.25rem;
  margin: 0 0 8px 0;
  color: var(--text);
}

.form-card-description {
  color: var(--muted);
  font-size: 0.9rem;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--border);
}

.dashboard-form .form-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
}

.dashboard-form .form-group {
  margin-bottom: 20px;
}

.dashboard-form label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: var(--text);
  font-size: 0.9375rem;
}

.dashboard-form input,
.dashboard-form select,
.dashboard-form textarea {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid var(--border);
  border-radius: 8px;
  font-size: 1rem;
  transition: all 0.3s ease;
  font-family: inherit;
}

.dashboard-form input:focus,
.dashboard-form select:focus,
.dashboard-form textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(255, 193, 37, 0.1);
}

.dashboard-form input:invalid:not(:focus):not(:placeholder-shown) {
  border-color: #f44336;
}

.dashboard-form small {
  display: block;
  margin-top: 6px;
  font-size: 0.8125rem;
  color: var(--muted);
}

.form-help {
  display: flex;
  align-items: center;
  gap: 4px;
}

.form-actions {
  display: flex;
  gap: 12px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 2px solid var(--border);
}

.form-actions .btn {
  margin: 0;
}

/* Password Input Wrapper */
.password-input-wrapper {
  position: relative;
}

.password-input-wrapper input {
  padding-right: 48px;
}

.toggle-password {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  transition: color 0.2s ease;
}

.toggle-password:hover {
  color: var(--gold);
}

/* Password Strength Indicator */
.password-strength {
  margin-top: 12px;
}

.strength-bar {
  width: 100%;
  height: 6px;
  background: var(--border);
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 8px;
}

.strength-fill {
  height: 100%;
  width: 0%;
  transition: all 0.3s ease;
  border-radius: 3px;
}

.strength-fill.weak {
  background: #f44336;
}

.strength-fill.medium {
  background: #ff9800;
}

.strength-fill.strong {
  background: #4caf50;
}

.strength-fill.very-strong {
  background: linear-gradient(90deg, #4caf50 0%, var(--gold) 100%);
}

.strength-text {
  font-size: 0.875rem;
  font-weight: 600;
  margin: 0;
}

.strength-fill.weak+.strength-text {
  color: #f44336;
}

.strength-fill.medium+.strength-text {
  color: #ff9800;
}

.strength-fill.strong+.strength-text {
  color: #4caf50;
}

.strength-fill.very-strong+.strength-text {
  color: var(--gold);
}

/* Password Match Indicator */
.password-match.match {
  color: #4caf50;
  font-weight: 600;
}

.password-match.no-match {
  color: #f44336;
  font-weight: 600;
}

/* Saved Addresses */
.addresses-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
}

.address-card {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  position: relative;
  transition: all 0.3s ease;
}

.address-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.1);
}

.address-card.default-address {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.15);
}

.default-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  background: linear-gradient(135deg, var(--gold) 0%, #b8941e 100%);
  color: white;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  box-shadow: 0 2px 8px rgba(255, 193, 37, 0.3);
}

.address-card-header {
  margin-bottom: 16px;
}

.address-card h3 {
  font-size: 1.125rem;
  margin: 0;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 8px;
}

.address-card h3 svg {
  stroke: var(--gold);
}

.address-details {
  font-size: 0.9375rem;
  line-height: 1.8;
  color: var(--text);
}

.address-details p {
  margin: 0 0 4px 0;
}

.address-name {
  font-size: 1rem;
  margin-bottom: 8px !important;
}

.address-phone {
  color: var(--muted);
}

.address-street,
.address-location {
  color: var(--text);
}

.address-additional {
  color: var(--muted);
  font-style: italic;
  font-size: 0.875rem;
  margin-top: 8px !important;
  padding-top: 8px;
  border-top: 1px dashed var(--border);
}

.address-actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 2px solid var(--border);
}

.btn-text {
  background: none;
  border: none;
  color: var(--gold);
  font-weight: 600;
  cursor: pointer;
  font-size: 0.875rem;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0;
}

.btn-text:hover {
  opacity: 0.8;
  text-decoration: underline;
}

.btn-text.primary {
  color: var(--gold);
}

.btn-text.delete {
  color: #f44336;
}

.btn-text svg {
  flex-shrink: 0;
}

/* Modal */
.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.3s ease;
}

.modal.show {
  display: flex;
}

.modal-content {
  background: white;
  border-radius: 16px;
  max-width: 600px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  animation: slideUp 0.3s ease;
}

@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

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

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 28px;
  border-bottom: 2px solid var(--border);
}

.modal-header h2 {
  font-size: 1.5rem;
  margin: 0;
  color: var(--text);
}

.modal-close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  border-radius: 4px;
  transition: background 0.3s ease;
}

.modal-close:hover {
  background: var(--surface);
}

.modal-close svg {
  stroke: var(--text);
}

.modal form {
  padding: 28px;
}

.modal-actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  margin-top: 24px;
}

/* Button Sizes */
.btn-sm {
  padding: 8px 16px;
  font-size: 0.875rem;
}

.btn-full {
  width: 100%;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .dashboard-layout {
    grid-template-columns: 240px 1fr;
  }

  .dashboard-content {
    padding: 32px 24px;
  }
}

@media (max-width: 768px) {
  .dashboard-layout {
    grid-template-columns: 1fr;
  }

  .dashboard-sidebar {
    position: fixed;
    left: -280px;
    width: 280px;
    z-index: 200;
    transition: left 0.3s ease;
    box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
  }

  .dashboard-sidebar.mobile-open {
    left: 0;
  }

  .mobile-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .dashboard-content {
    padding: 24px 16px;
  }

  .stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  }

  .dashboard-widgets {
    grid-template-columns: 1fr;
  }

  .account-forms {
    grid-template-columns: 1fr;
  }

  .quick-actions-grid {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  }

  /* Show cards, hide table on mobile */
  .orders-table-container {
    display: none;
  }

  .orders-list {
    display: flex;
  }
}

@media (max-width: 560px) {
  .section-header h1 {
    font-size: 1.5rem;
  }

  .section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .review-stats {
    width: 100%;
    justify-content: space-between;
  }

  .stat-badge {
    flex: 1;
    justify-content: center;
  }

  .reviews-filter {
    flex-direction: column;
    align-items: stretch;
  }

  .filter-group {
    flex-direction: column;
    align-items: stretch;
  }

  .filter-select {
    width: 100%;
  }

  .review-card {
    padding: 20px;
  }

  .review-card-header {
    flex-direction: column;
    align-items: stretch;
  }

  .review-actions {
    justify-content: flex-end;
  }

  .review-rating {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .stat-card {
    padding: 16px;
  }

  .stat-icon {
    width: 48px;
    height: 48px;
  }

  .stat-content h3 {
    font-size: 1.5rem;
  }

  .order-card {
    padding: 16px;
  }

  .order-card-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .addresses-grid {
    grid-template-columns: 1fr;
  }

  .modal-content {
    width: 95%;
  }
}

/* Dark Mode */
[data-theme="dark"] .dashboard-sidebar {
  background: rgba(255, 255, 255, 0.05);
  border-right-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .sidebar-header {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .nav-item:hover {
  background: rgba(255, 193, 37, 0.08);
}

[data-theme="dark"] .nav-item.active {
  background: rgba(255, 193, 37, 0.15);
}

[data-theme="dark"] .stat-card,
[data-theme="dark"] .widget,
[data-theme="dark"] .order-card,
[data-theme="dark"] .form-card,
[data-theme="dark"] .address-card,
[data-theme="dark"] .quick-action-card,
[data-theme="dark"] .orders-table-container,
[data-theme="dark"] .orders-pagination {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .recent-order-card,
[data-theme="dark"] .order-items {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .modal-content {
  background: var(--card);
}

[data-theme="dark"] .filter-btn,
[data-theme="dark"] .pagination-btn,
[data-theme="dark"] .btn-icon {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .filter-btn:hover,
[data-theme="dark"] .btn-icon:hover {
  background: rgba(255, 193, 37, 0.1);
}

[data-theme="dark"] .orders-table tbody tr:hover {
  background: rgba(255, 193, 37, 0.08);
}

[data-theme="dark"] #order-search,
[data-theme="dark"] #order-sort,
[data-theme="dark"] .dashboard-form input,
[data-theme="dark"] .dashboard-form select,
[data-theme="dark"] .dashboard-form textarea,
[data-theme="dark"] .filter-select {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
  color: var(--text);
}

[data-theme="dark"] .dashboard-form input:focus,
[data-theme="dark"] .dashboard-form select:focus,
[data-theme="dark"] .dashboard-form textarea:focus,
[data-theme="dark"] .filter-select:focus {
  background: rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .review-card,
[data-theme="dark"] .reviews-filter,
[data-theme="dark"] .product-info-display,
[data-theme="dark"] .stat-badge {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .review-recommend {
  background: rgba(76, 175, 80, 0.15);
}

[data-theme="dark"] .toggle-password {
  color: rgba(255, 255, 255, 0.6);
}

[data-theme="dark"] .toggle-password:hover {
  color: var(--gold);
}

[data-theme="dark"] .strength-bar {
  background: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .address-additional {
  border-top-color: rgba(255, 255, 255, 0.1);
}

/* ============================================
   LOGIN PAGE STYLES
   ============================================ */
.login-page {
  min-height: calc(100vh - 140px);
  padding: 60px 0;
  background: linear-gradient(to bottom, rgba(255, 193, 37, 0.05) 0%, transparent 400px);
}

.login-container {
  max-width: 480px;
  margin: 0 auto 60px;
  width: 100%;
  padding: 0 16px;
  box-sizing: border-box;
}

.login-card {
  background: white;
  border: 2px solid var(--border);
  border-radius: 16px;
  padding: 40px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  max-width: 100%;
  box-sizing: border-box;
  overflow-x: hidden;
}

.login-header {
  text-align: center;
  margin-bottom: 32px;
}

.login-header h1 {
  font-size: 2rem;
  margin: 0 0 8px 0;
  color: var(--text);
}

.login-header p {
  font-size: 1rem;
  color: var(--muted);
  margin: 0;
}

/* Auth Form */
.auth-form .form-group {
  margin-bottom: 20px;
}

.auth-form label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: var(--text);
  font-size: 0.9375rem;
}

.auth-form input {
  width: 100%;
  padding: 14px 16px;
  border: 2px solid var(--border);
  border-radius: 8px;
  font-size: 1rem;
  transition: all 0.3s ease;
  font-family: inherit;
}

.auth-form input:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(255, 193, 37, 0.1);
}

.auth-form small {
  display: block;
  margin-top: 4px;
  font-size: 0.8125rem;
  color: var(--muted);
}

.form-options {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}

.checkbox-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9375rem;
  color: var(--text);
  cursor: pointer;
}

.checkbox-label input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--gold);
}

.forgot-link {
  color: var(--gold);
  text-decoration: none;
  font-size: 0.9375rem;
  font-weight: 600;
}

.forgot-link:hover {
  text-decoration: underline;
}

/* Forgot Password Modal */
.forgot-password-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.forgot-password-content {
  background: white;
  border-radius: 12px;
  padding: 2rem;
  max-width: 450px;
  width: 100%;
  position: relative;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
}

.close-modal {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  font-size: 2rem;
  cursor: pointer;
  color: #666;
  line-height: 1;
  padding: 0;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s;
}

.close-modal:hover {
  background: #f0f0f0;
}

.forgot-password-content h2 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-size: 1.75rem;
  color: #1a1a1a;
}

.forgot-password-content > p {
  color: #666;
  margin-bottom: 1.5rem;
  font-size: 0.95rem;
}

.forgot-password-message {
  padding: 1rem;
  border-radius: 8px;
  margin-bottom: 1rem;
  display: none;
}

.forgot-password-message.success {
  background: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.forgot-password-message.error {
  background: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

.forgot-password-message p {
  margin: 0.5rem 0;
}

.forgot-password-message svg {
  width: 24px;
  height: 24px;
  margin-right: 0.5rem;
  vertical-align: middle;
}

.back-to-login {
  display: block;
  text-align: center;
  margin-top: 1rem;
  color: var(--gold);
  text-decoration: none;
  font-weight: 600;
}

.back-to-login:hover {
  text-decoration: underline;
}

/* Auth Divider */
.auth-divider {
  position: relative;
  text-align: center;
  margin: 32px 0;
}

.auth-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--border);
}

.auth-divider span {
  position: relative;
  background: white;
  padding: 0 16px;
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 600;
}

/* Demo Login Section */
.demo-login-section {
  margin-bottom: 24px;
}

.demo-notice {
  text-align: center;
  font-size: 0.875rem;
  color: var(--muted);
  margin: 0 0 16px 0;
  font-weight: 600;
}

.demo-accounts {
  margin-bottom: 12px;
}

.demo-hint {
  text-align: center;
  font-size: 0.8125rem;
  color: var(--muted);
  margin: 0;
  font-family: 'Courier New', monospace;
}

/* Auth Footer */
.auth-footer {
  text-align: center;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 2px solid var(--border);
}

.auth-footer p {
  margin: 0;
  color: var(--text);
  font-size: 0.9375rem;
}

.auth-footer a {
  color: var(--gold);
  text-decoration: none;
  font-weight: 600;
}

.auth-footer a:hover {
  text-decoration: underline;
}

/* Login Benefits */
.login-benefits {
  max-width: 1200px;
  margin: 0 auto;
}

.login-benefits h2 {
  text-align: center;
  font-size: 2rem;
  margin: 0 0 40px 0;
  color: var(--text);
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 32px;
}

.benefit-item {
  text-align: center;
  padding: 32px 24px;
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  transition: all 0.3s ease;
}

.benefit-item:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.1);
  transform: translateY(-4px);
}

.benefit-item svg {
  stroke: var(--gold);
  margin-bottom: 16px;
}

.benefit-item h3 {
  font-size: 1.125rem;
  margin: 0 0 12px 0;
  color: var(--text);
}

.benefit-item p {
  font-size: 0.9375rem;
  color: var(--muted);
  line-height: 1.6;
  margin: 0;
}

/* Responsive */
@media (max-width: 560px) {
  .login-page {
    padding: 40px 0;
  }

  .login-card {
    padding: 28px 20px;
  }

  .login-header h1 {
    font-size: 1.5rem;
  }

  .form-options {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .benefits-grid {
    grid-template-columns: 1fr;
  }
}

/* Dark Mode */
[data-theme="dark"] .login-card,
[data-theme="dark"] .benefit-item {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .auth-divider span {
  background: var(--card);
}

/* ===================================
   ORDER DETAIL PAGE STYLES
   =================================== */
/* Page Layout */
.order-detail-page {
  min-height: 100vh;
  background: var(--surface);
  padding-bottom: 60px;
}

/* Breadcrumb */
.page-breadcrumb {
  padding: 20px 0;
  margin-bottom: 24px;
}

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  text-decoration: none;
  font-weight: 500;
  transition: all 0.2s ease;
}

.back-link:hover {
  color: var(--gold);
  gap: 12px;
}

.back-link svg {
  width: 20px;
  height: 20px;
}

/* Order Header */
.order-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 32px;
  flex-wrap: wrap;
  gap: 16px;
}

.order-detail-title h1 {
  font-size: 1.75rem;
  margin-bottom: 8px;
  color: var(--text);
}

.order-detail-title .order-date {
  color: var(--muted);
  font-size: 0.95rem;
}

.status-badge.large {
  padding: 12px 24px;
  font-size: 1rem;
  font-weight: 600;
}

/* Order Detail Content Layout */
.order-detail-content {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 32px;
  align-items: start;
}

/* Tracking Widget */
.tracking-widget {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 32px;
  margin-bottom: 32px;
}

.widget-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 32px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--border);
}

.widget-header h2 {
  font-size: 1.25rem;
  color: var(--text);
}

.widget-header .last-updated {
  color: var(--muted);
  font-size: 0.875rem;
}

/* Tracking Progress */
.tracking-progress {
  position: relative;
  padding-left: 40px;
}

.tracking-step {
  position: relative;
  padding-bottom: 48px;
  padding-left: 60px;
  min-height: 40px;
}

.tracking-step:last-child {
  padding-bottom: 0;
}

/* Connecting Line */
.tracking-step:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 19px;
  top: 40px;
  width: 2px;
  height: calc(100% - 40px);
  background: var(--border);
}

.tracking-step.completed:not(:last-child)::before {
  background: linear-gradient(180deg, #4caf50 0%, var(--border) 100%);
}

/* Step Circle */
.step-circle {
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface);
  border: 3px solid var(--border);
  transition: all 0.3s ease;
}

.tracking-step.completed .step-circle {
  background: linear-gradient(135deg, #4caf50 0%, #45a049 100%);
  border-color: #4caf50;
  box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3);
}

.tracking-step.active .step-circle {
  background: linear-gradient(135deg, var(--gold) 0%, #d4af37 100%);
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(255, 193, 37, 0.3);
  animation: pulse 2s infinite;
}

@keyframes pulse {

  0%,
  100% {
    box-shadow: 0 4px 12px rgba(255, 193, 37, 0.3);
  }

  50% {
    box-shadow: 0 4px 20px rgba(255, 193, 37, 0.5);
  }
}

.step-circle svg {
  width: 20px;
  height: 20px;
  stroke: var(--muted);
}

.tracking-step.completed .step-circle svg,
.tracking-step.active .step-circle svg {
  stroke: white;
}

/* Step Content */
.step-content {
  padding-top: 8px;
  min-height: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.step-content h3 {
  font-size: 1.05rem;
  color: var(--text);
  margin-bottom: 4px;
  font-weight: 600;
  line-height: 1.3;
}

.step-content p {
  color: var(--muted);
  font-size: 0.875rem;
  margin: 0;
  line-height: 1.4;
}

.tracking-step.completed .step-content h3 {
  color: #4caf50;
}

.tracking-step.active .step-content h3 {
  color: var(--gold);
}

/* Tracking Number Section */
.tracking-number-section {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 2px dashed var(--border);
}

.tracking-number-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 8px;
}

.tracking-number-card .icon-box {
  width: 48px;
  height: 48px;
  border-radius: 8px;
  background: linear-gradient(135deg, #2196f3 0%, #1976d2 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.tracking-number-card .icon-box svg {
  width: 24px;
  height: 24px;
  stroke: white;
}

.tracking-number-info {
  flex: 1;
}

.tracking-number-info label {
  display: block;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--muted);
  margin-bottom: 4px;
}

.tracking-number-info .number {
  font-size: 1.125rem;
  font-weight: 700;
  font-family: 'Courier New', monospace;
  color: var(--text);
}

.copy-tracking-btn {
  padding: 10px 20px;
  background: white;
  border: 2px solid var(--border);
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 8px;
}

.copy-tracking-btn:hover {
  background: var(--surface);
  border-color: var(--gold);
  color: var(--gold);
}

.copy-tracking-btn svg {
  width: 16px;
  height: 16px;
}

/* Order Items Section */
.order-items-section {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 32px;
  margin-bottom: 32px;
}

.section-header-simple {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--border);
}

.section-header-simple h2 {
  font-size: 1.25rem;
  color: var(--text);
}

.item-count {
  background: var(--surface);
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--muted);
}

/* Order Detail Items */
.order-items-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.order-detail-item {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 16px;
  background: var(--surface);
  border-radius: 8px;
  transition: all 0.2s ease;
}

.order-detail-item:hover {
  background: rgba(0, 0, 0, 0.02);
}

.item-image-box {
  width: 80px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  background: white;
  border: 1px solid var(--border);
}

.item-image-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.item-info-box {
  flex: 1;
}

.item-info-box h3 {
  font-size: 1rem;
  color: var(--text);
  margin-bottom: 8px;
  line-height: 1.4;
}

.item-meta {
  display: flex;
  gap: 20px;
  color: var(--muted);
  font-size: 0.875rem;
}

.item-price-box {
  text-align: right;
}

.item-price-box .item-price {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text);
}

.item-price-box .unit-price {
  font-size: 0.875rem;
  color: var(--muted);
  margin-top: 4px;
}

/* Order Summary Box */
.order-summary-box {
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 8px;
  padding: 24px;
  margin-top: 24px;
}

.summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
}

.summary-row:not(:last-child) {
  border-bottom: 1px solid var(--border);
}

.summary-row.total {
  margin-top: 8px;
  padding-top: 20px;
  border-top: 2px solid var(--border);
}

.summary-row span {
  font-size: 0.95rem;
  color: var(--text);
}

.summary-row strong {
  font-size: 1.125rem;
  color: var(--text);
}

.summary-row.total strong {
  font-size: 1.5rem;
  color: var(--gold);
}

/* Info Sections Grid */
.info-sections-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-bottom: 32px;
}

.info-section {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 24px;
}

.info-section h3 {
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--muted);
  margin-bottom: 16px;
  font-weight: 600;
}

.info-section p {
  color: var(--text);
  line-height: 1.8;
  margin: 0;
}

.info-section p strong {
  display: block;
  color: var(--gold);
  margin-bottom: 4px;
}

.info-section .payment-status {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.875rem;
  font-weight: 600;
  margin-top: 8px;
}

.info-section .payment-status.success {
  background: rgba(76, 175, 80, 0.1);
  color: #4caf50;
}

.info-section .payment-status.warning {
  background: rgba(255, 152, 0, 0.1);
  color: #ff9800;
}

/* Order Detail Sidebar */
.order-detail-sidebar {
  position: sticky;
  top: 100px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Action Card */
.action-card {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 28px;
}

.action-card h3 {
  font-size: 1.125rem;
  margin-bottom: 20px;
  color: var(--text);
}

.action-card .btn {
  width: 100%;
  justify-content: center;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.action-card .btn:last-child {
  margin-bottom: 0;
}

.action-card .btn-secondary {
  background: white;
  color: var(--text);
  border-color: var(--border);
}

.action-card .btn-secondary:hover {
  background: var(--surface);
  border-color: var(--gold);
  color: var(--gold);
}

/* Help Card */
.help-card {
  background: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 100%);
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 28px;
  text-align: center;
}

.help-card h3 {
  font-size: 1.125rem;
  margin-bottom: 12px;
  color: var(--text);
}

.help-card p {
  color: var(--muted);
  font-size: 0.9rem;
  margin-bottom: 20px;
  line-height: 1.6;
}

.help-card .btn {
  width: 100%;
  justify-content: center;
  margin-bottom: 20px;
}

.help-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}

.help-links a {
  color: var(--text);
  text-decoration: none;
  font-size: 0.875rem;
  transition: color 0.2s ease;
}

.help-links a:hover {
  color: var(--gold);
}

/* Related Products Card */
.related-card {
  background: white;
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 28px;
}

.related-card h3 {
  font-size: 1.125rem;
  margin-bottom: 20px;
  color: var(--text);
}

.related-card .btn {
  width: 100%;
  justify-content: center;
}

/* Review Modal Styles */
.review-modal .modal-content {
  max-width: 600px;
}

.review-modal .modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 20px;
  margin-bottom: 24px;
  border-bottom: 2px solid var(--border);
}

.review-modal .modal-header h2 {
  font-size: 1.5rem;
  color: var(--text);
}

.close-modal {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--surface);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.close-modal:hover {
  background: var(--border);
}

.close-modal svg {
  width: 20px;
  height: 20px;
  stroke: var(--text);
}

.review-form {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.form-group label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--text);
}

.form-group select,
.form-group input,
.form-group textarea {
  width: 100%;
  padding: 12px 16px;
  border: 2px solid var(--border);
  border-radius: 8px;
  font-size: 1rem;
  font-family: inherit;
  transition: all 0.2s ease;
}

.form-group select:focus,
.form-group input:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(255, 193, 37, 0.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 120px;
}

/* Star Rating */
.star-rating {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.star {
  cursor: pointer;
  transition: all 0.2s ease;
  width: 32px;
  height: 32px;
}

.star svg {
  width: 100%;
  height: 100%;
  fill: var(--border);
  stroke: var(--border);
  transition: all 0.2s ease;
}

.star:hover svg,
.star.active svg {
  fill: var(--gold);
  stroke: var(--gold);
}

.star:hover {
  transform: scale(1.1);
}

.recommend-checkbox {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: var(--surface);
  border-radius: 8px;
}

.recommend-checkbox input[type="checkbox"] {
  width: 20px;
  height: 20px;
  accent-color: var(--gold);
  cursor: pointer;
}

.recommend-checkbox label {
  margin: 0;
  cursor: pointer;
  color: var(--text);
}

.modal-actions {
  display: flex;
  gap: 12px;
  margin-top: 8px;
}

.modal-actions .btn {
  flex: 1;
}

/* Responsive Design */
@media (max-width: 1024px) {
  .order-detail-content {
    grid-template-columns: 1fr 320px;
    gap: 24px;
  }

  .order-detail-sidebar {
    top: 80px;
  }
}

@media (max-width: 899px) {
  .order-detail-content {
    grid-template-columns: 1fr;
  }

  .order-detail-sidebar {
    position: static;
    grid-row: 2;
  }

  .tracking-widget,
  .order-items-section,
  .action-card,
  .help-card,
  .related-card,
  .info-section {
    padding: 24px;
  }

  .info-sections-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .order-detail-header {
    flex-direction: column;
  }

  .status-badge.large {
    align-self: flex-start;
  }

  .tracking-widget,
  .order-items-section,
  .action-card,
  .help-card {
    padding: 20px;
  }

  .tracking-progress {
    padding-left: 20px;
  }

  .tracking-step {
    padding-left: 52px;
    padding-bottom: 40px;
    min-height: 36px;
  }

  .step-circle {
    width: 36px;
    height: 36px;
  }

  .step-circle svg {
    width: 18px;
    height: 18px;
  }

  .tracking-step:not(:last-child)::before {
    left: 17px;
    top: 44px;
  }
  
  .step-content {
    min-height: 36px;
  }

  .order-detail-item {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .item-price-box {
    text-align: left;
  }

  .tracking-number-card {
    flex-direction: column;
    text-align: center;
  }

  .copy-tracking-btn {
    width: 100%;
    justify-content: center;
  }

  .review-modal .modal-content {
    margin: 20px;
  }
}

/* Dark Mode */
[data-theme="dark"] .tracking-widget,
[data-theme="dark"] .order-items-section,
[data-theme="dark"] .info-section,
[data-theme="dark"] .action-card,
[data-theme="dark"] .related-card,
[data-theme="dark"] .item-image-box {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .help-card {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.05) 100%);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .order-detail-item,
[data-theme="dark"] .tracking-number-card,
[data-theme="dark"] .order-summary-box {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .order-detail-item:hover {
  background: rgba(255, 255, 255, 0.06);
}

[data-theme="dark"] .step-circle {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .copy-tracking-btn,
[data-theme="dark"] .action-card .btn-secondary {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .copy-tracking-btn:hover,
[data-theme="dark"] .action-card .btn-secondary:hover {
  background: rgba(255, 255, 255, 0.08);
}

/* Print Styles */
@media print {

  .page-header,
  .order-detail-sidebar,
  .back-link {
    display: none !important;
  }

  .order-detail-content {
    grid-template-columns: 1fr;
  }

  .tracking-widget,
  .order-items-section,
  .info-section {
    border: 1px solid #ddd;
    page-break-inside: avoid;
  }

  .order-detail-page {
    background: white;
  }
}

/* ============================================
   ANNOUNCEMENT BAR STYLES
   ============================================ */
.announcement-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 500;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

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

.announcement-bar.dismissing {
  animation: slideUp 0.3s ease-out forwards;
}

@keyframes slideUp {
  from {
    transform: translateY(0);
    opacity: 1;
  }

  to {
    transform: translateY(-100%);
    opacity: 0;
  }
}

/* Announcement bar type variants */
.announcement-bar.info {
  background-color: #2196F3;
  color: white;
}

.announcement-bar.success {
  background-color: #4CAF50;
  color: white;
}

.announcement-bar.warning {
  background-color: #FF9800;
  color: white;
}

.announcement-bar.error {
  background-color: #F44336;
  color: white;
}

.announcement-message {
  flex: 1;
  text-align: center;
  margin: 0 40px;
}

.announcement-close {
  background: transparent;
  border: none;
  color: inherit;
  font-size: 20px;
  cursor: pointer;
  padding: 4px 8px;
  margin-left: auto;
  opacity: 0.8;
  transition: opacity 0.2s;
}

.announcement-close:hover {
  opacity: 1;
}

/* Adjust header positioning when announcement bar is present */
body.has-announcement header {
  margin-top: 48px;
}

/* ============================================
   BANNER CAROUSEL STYLES
   ============================================ */
.banner-carousel-container {
  margin-bottom: 40px;
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.banner-slide {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 42.857%;
  /* 21:9 aspect ratio */
  overflow: hidden;
  cursor: pointer;
  background-color: #f5f5f5;
}

.banner-slide img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.banner-slide:hover img {
  transform: scale(1.05);
}

.banner-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 40px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.4), transparent);
  color: white;
  z-index: 10;
}

.banner-title {
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 12px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.banner-description {
  font-size: 18px;
  opacity: 0.95;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
  max-width: 600px;
}

/* Swiper navigation buttons */
.banner-carousel-container .swiper-button-next,
.banner-carousel-container .swiper-button-prev {
  color: white;
  background: rgba(0, 0, 0, 0.5);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  backdrop-filter: blur(10px);
  transition: all 0.3s;
}

.banner-carousel-container .swiper-button-next:after,
.banner-carousel-container .swiper-button-prev:after {
  font-size: 20px;
}

.banner-carousel-container .swiper-button-next:hover,
.banner-carousel-container .swiper-button-prev:hover {
  background: rgba(0, 0, 0, 0.7);
  transform: scale(1.1);
}

/* Swiper pagination */
.banner-carousel-container .swiper-pagination {
  bottom: 20px;
}

.banner-carousel-container .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background: white;
  opacity: 0.5;
  transition: all 0.3s;
}

.banner-carousel-container .swiper-pagination-bullet-active {
  opacity: 1;
  width: 30px;
  border-radius: 5px;
}

/* Responsive styles */
@media (max-width: 768px) {
  .announcement-bar {
    padding: 10px 15px;
    font-size: 13px;
  }

  .announcement-message {
    margin: 0 30px;
  }

  body.has-announcement header {
    margin-top: 44px;
  }

  .banner-carousel-container {
    margin-bottom: 30px;
    border-radius: 8px;
  }

  .banner-slide {
    padding-bottom: 56.25%;
    /* 16:9 aspect ratio on mobile */
  }

  .banner-overlay {
    padding: 20px;
  }

  .banner-title {
    font-size: 24px;
    margin-bottom: 8px;
  }

  .banner-description {
    font-size: 14px;
  }

  .banner-carousel-container .swiper-button-next,
  .banner-carousel-container .swiper-button-prev {
    width: 36px;
    height: 36px;
  }

  .banner-carousel-container .swiper-button-next:after,
  .banner-carousel-container .swiper-button-prev:after {
    font-size: 16px;
  }
}

@media (max-width: 480px) {
  .announcement-bar {
    padding: 8px 12px;
    font-size: 12px;
  }

  .announcement-message {
    margin: 0 20px;
  }

  .announcement-close {
    font-size: 18px;
  }

  .banner-overlay {
    padding: 15px;
  }

  .banner-title {
    font-size: 20px;
  }

  .banner-description {
    font-size: 13px;
  }
}

/* ==================== API INTEGRATION STYLES ==================== */

/* Loading States */
.loading-state,
.empty-state,
.error-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  padding: 40px 20px;
  text-align: center;
  grid-column: 1 / -1;
  /* Span full width in grid */
}

.loading-state svg,
.empty-state svg,
.error-state svg {
  margin-bottom: 20px;
  opacity: 0.6;
}

.spinner {
  border: 4px solid var(--border, #e2e8f0);
  border-top: 4px solid var(--accent, #0ea5e9);
  border-radius: 50%;
  width: 60px;
  height: 60px;
  animation: spin 1s linear infinite;
  margin-bottom: 20px;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.loading-state p,
.empty-state p,
.error-state p {
  color: var(--text-muted, #64748b);
  margin: 10px 0;
  font-size: 16px;
}

.empty-state h3,
.error-state h3 {
  margin: 10px 0;
  color: var(--text, #1e293b);
  font-size: 24px;
}

[data-theme="dark"] .empty-state h3,
[data-theme="dark"] .error-state h3 {
  color: var(--text, #e5e7eb);
}

.empty-state .btn,
.error-state .btn {
  margin-top: 20px;
}

/* Pagination Styles */
.pagination-container {
  margin: 40px 0;
  display: flex;
  justify-content: center;
}

.pagination {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
}

.pagination-btn {
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--border, #e2e8f0);
  background: var(--surface, #ffffff);
  color: var(--text, #1e293b);
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.pagination-btn:hover:not(:disabled):not(.active) {
  background: var(--accent-light, #e0f2fe);
  border-color: var(--accent, #0ea5e9);
  color: var(--accent, #0ea5e9);
}

.pagination-btn.active {
  background: var(--accent, #0ea5e9);
  color: #ffffff;
  border-color: var(--accent, #0ea5e9);
}

.pagination-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.pagination-ellipsis {
  padding: 0 8px;
  color: var(--text-muted, #64748b);
}

[data-theme="dark"] .pagination-btn {
  background: var(--card, #0b1220);
  border-color: var(--border, #1f2937);
  color: var(--text, #e5e7eb);
}

[data-theme="dark"] .pagination-btn:hover:not(:disabled):not(.active) {
  background: var(--accent-dark, #0c4a6e);
  border-color: var(--accent, #0ea5e9);
}

[data-theme="dark"] .pagination-btn.active {
  background: var(--accent, #0ea5e9);
  color: #ffffff;
}

/* Active Filters Display */
.active-filters {
  margin: 20px 0;
  padding: 15px;
  background: var(--surface-alt, #f8fafc);
  border-radius: 8px;
  border: 1px solid var(--border, #e2e8f0);
}

.active-filters-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.active-filters-label {
  font-weight: 600;
  color: var(--text, #1e293b);
  font-size: 14px;
}

.filter-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, #cbd5e1);
  border-radius: 20px;
  font-size: 13px;
  color: var(--text, #475569);
  cursor: pointer;
  transition: all 0.2s ease;
}

.filter-tag:hover {
  background: var(--error-light, #fee2e2);
  border-color: var(--error, #ef4444);
  color: var(--error, #ef4444);
}

.filter-tag svg {
  stroke-width: 2.5;
}

[data-theme="dark"] .active-filters {
  background: var(--card, #0b1220);
  border-color: var(--border, #1f2937);
}

[data-theme="dark"] .active-filters-label {
  color: var(--text, #e5e7eb);
}

[data-theme="dark"] .filter-tag {
  background: var(--surface, #1e293b);
  border-color: var(--border, #334155);
  color: var(--text, #cbd5e1);
}

[data-theme="dark"] .filter-tag:hover {
  background: var(--error-dark, #7f1d1d);
  border-color: var(--error, #ef4444);
}

/* Product Card Enhancements for API Data */
.card.product-card {
  position: relative;
}

.card-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0;
  font-size: 13px;
}

.stars {
  display: flex;
  gap: 2px;
}

.star {
  color: #e2e8f0;
  font-size: 14px;
}

.star.filled {
  color: #FFC125;
}

.star.half {
  background: linear-gradient(90deg, #FFC125 50%, #e2e8f0 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.rating-text {
  color: var(--text-muted, #64748b);
  font-size: 13px;
}

.card-price {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 10px 0;
}

.price-original {
  text-decoration: line-through;
  color: var(--text-muted, #94a3b8);
  font-size: 14px;
}

.price-current {
  color: var(--accent, #0ea5e9);
  font-weight: 700;
  font-size: 18px;
}

.badge {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  z-index: 2;
}

.badge.out-of-stock {
  background: var(--error, #ef4444);
  color: #ffffff;
}

.badge.low-stock {
  background: var(--warning, #f59e0b);
  color: #ffffff;
}

.badge.featured {
  background: var(--success, #10b981);
  color: #ffffff;
}

.badge.discount {
  background: var(--gold);
  color: #0b1220;
  top: 40px;
  /* Stack below other badges */
}

/* Add to Cart Button States */
.btn.add-to-cart:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.btn.add-to-cart.success {
  background: var(--success, #10b981) !important;
  border-color: var(--success, #10b981) !important;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
  .pagination {
    gap: 4px;
  }

  .pagination-btn {
    min-width: 36px;
    height: 36px;
    padding: 0 8px;
    font-size: 13px;
  }

  .loading-state,
  .empty-state,
  .error-state {
    min-height: 300px;
    padding: 30px 15px;
  }

  .spinner {
    width: 50px;
    height: 50px;
  }

  .active-filters-list {
    gap: 6px;
  }

  .filter-tag {
    font-size: 12px;
    padding: 5px 10px;
  }
}