/* Rey&Hardy Theme Overrides */
:root{
  --g1: #1c1c1c; /* dark grey */
  --g2: #333333; /* charcoal */
  --g3: #4f4f4f; /* mid grey */
  --rh-primary: #e5e5e5;    /* light text on dark */
  --rh-accent: #e5e7eb;     /* body text */
  --rh-muted: #a3a3a3;      /* muted */
  --rh-gold: #d4af37;       /* premium gold */
  --rh-gold-dark: #b8860b;  /* deeper gold */
  --rh-ink: #0b1020;
  --rh-ink-2: #0f172a;
  --rh-rust: #eab308;       /* warm accent */
  --rh-rust-dark: #ca8a04;
  --rh-grad-start: var(--g1);
  --rh-grad-end: var(--g3);
  --rh-bg: var(--g1);
  --rh-bg-elev: var(--g2);
  --rh-border: #3a3a3a;
}

/* Light theme variables */
html[data-theme='light']{
  --g1: #f5f7fa;
  --g2: #ffffff;
  --g3: #e9eef5;
  --rh-primary: #111827;
  --rh-accent: #1f2937;
  --rh-muted: #6b7280;
  --rh-gold: #b58e1f;
  --rh-gold-dark: #8b6b17;
  --rh-ink: #0b1020;
  --rh-ink-2: #0f172a;
  --rh-rust: #d97706;
  --rh-rust-dark: #b45309;
  --rh-grad-start: #f3f4f6;
  --rh-grad-end: #e5e7eb;
  --rh-bg: #f8fafc;
  --rh-bg-elev: #ffffff;
  --rh-border: #e5e7eb;
}

html, body { max-width: 100%; overflow-x: hidden; }
body { font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif; color: var(--rh-accent); background: transparent; }
/* Background layers: blurred image + gradient overlay (prevents stretch and keeps clarity) */
body::before { content: ""; position: fixed; inset: 0; z-index: -2;
  background-image: image-set(url("../img/bg-model.9a59943efe33.avif") type('image/avif'), url("../img/bg-model.bbf0f81de745.jpg") type('image/jpeg'));
  background-repeat: no-repeat; background-position: center 32%; background-size: cover; background-attachment: fixed;
  filter: blur(2px); transform: scale(1.02); }
body::after { content: ""; position: fixed; inset: 0; z-index: -1;
  background: radial-gradient(70% 60% at 50% 30%, rgba(0,0,0,.0) 40%, rgba(0,0,0,.35) 85%),
              linear-gradient(160deg, rgba(0,0,0,.65), rgba(0,0,0,.55) 50%, rgba(0,0,0,.75)); }
/* Light mode: off‑white gradient background */
html[data-theme='light'] body::before { background: none; filter: none; }
html[data-theme='light'] body::after {
  background: linear-gradient(180deg, #ffffff 0%, #fafaf8 50%, #f3f5f7 100%);
}
.navbar .logo { font-weight: 700; letter-spacing: .5px; }
.navbar .navbar-brand, .navbar .nav-link { font-family: 'Playfair Display','Inter',serif; font-weight: 600; letter-spacing: .3px; }
/* Ensure consistent Inter for UI elements in both themes */
.btn, .dropdown-menu, .offcanvas, .card, .list-group-item, .modal-content, .table, .badge, .form-control, .form-select { font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif; }
.navbar .navbar-nav { gap: 0; }
/* Navbar alignment + spacing (consistent across themes) */
.navbar { padding-top: .5rem; padding-bottom: .5rem; line-height: 1.2; }
.navbar .container, .navbar .navbar-collapse { align-items: center; min-height: 0; }
.navbar .navbar-brand { display: inline-flex; align-items: center; gap: .5rem; padding-top: .25rem; padding-bottom: .25rem; line-height: 1.2; }
.navbar .nav-link { display: inline-flex; align-items: center; padding: .5rem .75rem; line-height: 1.25; margin: 0 !important; }
.navbar.navbar-dark .navbar-nav .nav-link, .navbar.navbar-light .navbar-nav .nav-link { padding: .5rem .75rem; }
/* Light mode navbar surface for gradient background */
html[data-theme='light'] .navbar.bg-gradient-primary { background: rgba(255,255,255,.9); border-bottom: 1px solid #e5e7eb; }
/* Tighten left nav (Home/Cart/Orders/Wishlist) spacing in light mode */
/* Light mode: match dark navbar item spacing and alignment exactly */
html[data-theme='light'] .navbar #navbarsExample > ul.navbar-nav { gap: 0 !important; }
html[data-theme='light'] .navbar #navbarsExample > ul.navbar-nav .nav-item { margin: 0 !important; }
html[data-theme='light'] .navbar #navbarsExample > ul.navbar-nav .nav-item + .nav-item { margin-left: 0 !important; }
html[data-theme='light'] .navbar #navbarsExample > ul.navbar-nav .nav-link {
  padding-left: .75rem !important;
  padding-right: .75rem !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  font-size: 1rem;
  line-height: 1.25;
  display: inline-flex;
  align-items: center;
}
/* Match dark-mode nav item size */
html[data-theme='light'] .navbar .nav-link { font-size: 1rem; line-height: 1.25; }
/* Ensure search form has no extra vertical margins */
.amz-search { margin-top: 0 !important; margin-bottom: 0 !important; }
/* Make a light-on-dark logo (white PNG/SVG) visible in dark mode by default,
   and auto-invert to dark-on-light in light mode for contrast. */
.logo-img { filter: brightness(0) invert(1); }
html[data-theme='light'] .logo-img { filter: none; }
.navbar.navbar-scrolled { box-shadow: 0 6px 20px rgba(0,0,0,.12); }
.navbar.navbar-sticky { position: sticky; top: 0; z-index: 1030; }
/* Nav underline animation */
.navbar .nav-link { position: relative; letter-spacing: .2px; }
.navbar .nav-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 1px; background: #e5e5e5; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; opacity: .85; }
html[data-theme='light'] .navbar .nav-link::after { background: #111; opacity: .6; height: 2px; }
/* Light navbar text overrides */
html[data-theme='light'] .navbar .nav-link { color: #1f2937; }
html[data-theme='light'] .navbar .nav-link:hover, html[data-theme='light'] .navbar .nav-link:focus { color: #0f172a; }
html[data-theme='light'] .navbar .navbar-brand, html[data-theme='light'] .navbar .logo { color: #0f172a; }
html[data-theme='light'] .navbar.navbar-dark .navbar-nav .nav-link { color: #1f2937 !important; }
html[data-theme='light'] .navbar.navbar-dark .navbar-brand { color: #0f172a !important; }
/* Light cards: ensure high-contrast text */
html[data-theme='light'] .card,
html[data-theme='light'] .product-card,
html[data-theme='light'] .shadow-frame { color: #1f2937; }
html[data-theme='light'] .card .card-title,
html[data-theme='light'] .product-card .card-title { color: #0f172a; }
html[data-theme='light'] .product-card .price { color: #111827; }
html[data-theme='light'] .product-card .price-old { color: #6b7280; }
html[data-theme='light'] .text-muted { color: #6b7280 !important; }
html[data-theme='light'] .card a { color: #0f172a; }
/* Light mode toggler icon for dark navbar */
html[data-theme='light'] .navbar.navbar-dark .navbar-toggler { border-color: rgba(17,17,17,.35); }
html[data-theme='light'] .navbar.navbar-dark .navbar-toggler-icon { background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(17,17,17,0.7)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
.navbar .nav-link:hover::after, .navbar .nav-link:focus::after { transform: scaleX(1); }
/* Enforce sentence case in light mode (some themes uppercase nav/buttons) */
html[data-theme='light'] .navbar .nav-link,
html[data-theme='light'] .navbar .navbar-brand,
html[data-theme='light'] .btn,
html[data-theme='light'] .dropdown-item,
html[data-theme='light'] h1, html[data-theme='light'] h2, html[data-theme='light'] h3,
html[data-theme='light'] .card-title,
html[data-theme='light'] .badge,
html[data-theme='light'] .nav-link { text-transform: none !important; }
/* Headings use stylish fonts */
h1, h2, h3 { font-family: 'Playfair Display','Inter',serif; letter-spacing: .2px; }
.logo { font-family: 'Playfair Display','Inter',serif; letter-spacing: .2px; }
body { line-height: 1.6; }

/* Hero */
.rh-hero {
  background: linear-gradient(120deg, var(--rh-grad-start) 0%, #1b1e23 50%, var(--rh-grad-end) 100%);
  color: #fff;
  border-radius: 18px;
  padding: 48px 28px;
}
.rh-hero h1 { font-weight: 700; }
.rh-hero p { color: #eef2ff; }

/* Product cards - premium */
.product-card { transition: transform .25s ease, box-shadow .25s ease; border: 1px solid var(--rh-border); overflow: hidden; border-radius: 16px; background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.02)), var(--rh-bg-elev); color: var(--rh-accent); box-shadow: 0 8px 28px rgba(0,0,0,.18); }
.product-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.28); }
.product-img { height: 220px; object-fit: cover; background: var(--g2); }

.shadow-frame { position: relative; border-radius: 18px; padding: 12px; background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.04)); border: 1px solid var(--rh-border); transition: transform .25s ease, box-shadow .25s ease; font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif; box-shadow: 0 10px 28px rgba(0,0,0,.25); }
.shadow-frame:hover { transform: translateY(-5px); box-shadow: 0 22px 44px rgba(0,0,0,.35); }
.shadow-frame .sf-image { position: relative; z-index: 1; display: block; background: var(--g2); border-radius: 14px; padding: 8px; box-shadow: 0 24px 45px rgba(0,0,0,.45); overflow: hidden; box-sizing: border-box; aspect-ratio: 4 / 5; }
.shadow-frame .sf-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.shadow-frame .sf-image video { width: 100%; height: 100%; object-fit: cover; display: block; }
.shadow-frame .sf-image .carousel, .shadow-frame .sf-image .carousel-inner, .shadow-frame .sf-image .carousel-item { height: 100%; }
.shadow-frame .sf-body { padding: 10px 2px 2px; }
.shadow-frame .sf-title { font-weight: 800; font-size: 1rem; margin: 0 0 4px; color: #f1f1f1; letter-spacing: .2px; }
.shadow-frame .sf-price { color: #e5e5e5; font-weight: 700; }
.shadow-frame .sf-price-old { color: #a3a3a3; text-decoration: line-through; margin-left: .35rem; }
.shadow-frame .sf-body { color: inherit; }
/* Light overrides for premium cards to ensure readability */
html[data-theme='light'] .shadow-frame { color: #1f2937 !important; }
html[data-theme='light'] .shadow-frame .sf-title { color: #0f172a !important; }
html[data-theme='light'] .shadow-frame .sf-price { color: #111827 !important; }
html[data-theme='light'] .shadow-frame .sf-price-old { color: #6b7280 !important; }
.shadow-frame .sf-actions { position: absolute; top: 10px; right: 10px; display: flex; gap: 8px; z-index: 3; }
.shadow-frame .btn-icon { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: rgba(0,0,0,.35); color: #e5e5e5; border: 1px solid rgba(255,255,255,.06); text-decoration: none; }
.shadow-frame .btn-icon i { font-size: 12px; line-height: 1; }
.shadow-frame .btn-icon:hover { background: rgba(255,255,255,.08); }
.shadow-frame .btn-icon.active, .shadow-frame .btn-icon:active { background: #3a3a3a; }
.deal-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: .75rem; color: #111; background: linear-gradient(90deg, var(--rh-gold), var(--rh-gold-dark)); border: 0; }
/* Red discount badge next to price */
.badge.badge-discount { background: linear-gradient(90deg, #ef4444, #dc2626); color: #fff; border: 0; font-weight: 700; padding: 2px 8px; border-radius: 999px; font-size: .75rem; margin-left: .5rem; box-shadow: 0 6px 16px rgba(220,38,38,.35); }
.deal-note { color: #ef4444; font-weight: 700; font-size: .75rem; margin-left: .5rem; letter-spacing: .2px; }
.rating-badge { display: inline-flex; align-items: center; gap: 4px; font-size: .8rem; color: #e5e5e5; margin-bottom: 4px; }
.rating-badge .bi-star-fill { color: #fbbf24; }
html[data-theme='light'] .rating-badge { color: #374151; }
.best-seller-badge { background: linear-gradient(90deg, #22c55e, #16a34a); color: #06250f; border: 1px solid rgba(0,0,0,.25); border-radius: 999px; font-size: .7rem; padding: 3px 8px; position: absolute; left: 12px; top: 12px; font-weight: 700; letter-spacing: .2px; z-index: 3; }
.price { font-weight: 700; color: var(--rh-accent); }
.price-old { color: var(--rh-muted); text-decoration: line-through; margin-left: .35rem; }
.badge-sale { background: var(--g3); color: #111; }

.site-footer { background: linear-gradient(180deg, var(--g2), var(--g1)); color:#e5e5e5; padding: 40px 0; margin-top: 48px; border-top: 1px solid var(--rh-border); box-shadow: 0 -6px 20px rgba(0,0,0,.15) inset; }
html[data-theme='light'] .site-footer { background: linear-gradient(180deg, #f9fafb, #e5e7eb); color: #111827; border-top-color: #e5e7eb; }
html[data-theme='light'] .site-footer a { color: #0f172a; }
.site-footer a { color: #e2e8f0; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }

/* Forms */
label.form-label { font-weight: 600; }

/* Wishlist */
.wish-btn { border-radius: 999px; }

/* Cart swatches (variant color indicator) */
.cart-swatch { width: 44px; height: 44px; border-radius: 8px; border: 1px solid var(--rh-border); flex: 0 0 44px; }
.swatch-black{ background:#111; }
.swatch-white{ background:#fff; border-color:#e5e7eb; }
.swatch-grey{ background:#6b7280; }
.swatch-gray{ background:#6b7280; }
.swatch-red{ background:#ef4444; }
.swatch-blue{ background:#2563eb; }
.swatch-navy-blue{ background:#1e3a8a; }
.swatch-green{ background:#10b981; }
.swatch-olive{ background:#556b2f; }
.swatch-yellow{ background:#f59e0b; }
.swatch-orange{ background:#f97316; }
.swatch-pink{ background:#ec4899; }
.swatch-purple{ background:#8b5cf6; }
.swatch-brown{ background:#7c4a33; }
.swatch-maroon{ background:#7f1d1d; }
.swatch-beige{ background:#f5f5dc; border-color:#d1d5db; }
/* Small product thumbnail for cart */
.cart-thumb-sm { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; border: 1px solid var(--rh-border); flex: 0 0 44px; }
.cart-thumb-ph { display:inline-block; width: 44px; height: 44px; border-radius: 8px; background: var(--g2); border: 1px solid var(--rh-border); }

/* Cart quantity stepper - improve visibility, touch targets */
.qty-stepper { display: inline-flex; align-items: center; gap: 6px; }
.qty-stepper .btn { width: 34px; height: 34px; padding: 0; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; }
.qty-stepper .btn i { font-size: 18px; line-height: 1; }
.cart-qty-input { width: 60px; height: 34px; padding: 0 6px; text-align: center; }

/* Smooth fade/slide for delivery note + free badge */
.fade-toggle { display: inline-block; opacity: 1; transform: translateY(0); transition: opacity .25s ease, transform .25s ease; }
.fade-toggle.is-hidden { opacity: 0; transform: translateY(-4px); pointer-events: none; }

/* Attention pulse for geo/location button */
@keyframes pulseGlow {
  0% { box-shadow: 0 0 0 0 rgba(13,110,253,.45); }
  70% { box-shadow: 0 0 0 10px rgba(13,110,253,0); }
  100% { box-shadow: 0 0 0 0 rgba(13,110,253,0); }
}
.btn-geo.btn-pulse { animation: pulseGlow 1.4s ease-out infinite; }
.btn-geo[aria-busy="true"] { opacity: .85; pointer-events: none; }

/* Quick shake to nudge user attention */
@keyframes nudgeX {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-3px); }
  40% { transform: translateX(3px); }
  60% { transform: translateX(-2px); }
  80% { transform: translateX(2px); }
}
.btn-attn-shake { animation: nudgeX .45s ease-in-out 1; }

/* Myntra-like pulse + glow callout for guidance */
@keyframes calloutPulseGlow {
  0%   { transform: scale(1);   box-shadow: 0 0 0 0 rgba(13,110,253,.35); }
  45%  { transform: scale(1.04); box-shadow: 0 0 0 10px rgba(13,110,253,0); }
  100% { transform: scale(1);   box-shadow: 0 0 0 0 rgba(13,110,253,0); }
}
.btn-attn-pulseglow {
  position: relative;
  animation: calloutPulseGlow 1.1s ease-out 3;
}
/* Extra ring using pseudo-element to be visible on link-style buttons */
@keyframes calloutPulseRing {
  0%   { opacity: .45; transform: scale(1); }
  60%  { opacity: 0;   transform: scale(1.25); }
  100% { opacity: 0;   transform: scale(1.35); }
}
.btn-attn-pulseglow::after{
  content: ""; position: absolute; inset: -4px; border-radius: 12px; border: 2px solid rgba(13,110,253,.55);
  animation: calloutPulseRing 1.1s ease-out 3;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce){
  .btn-attn-pulseglow, .btn-attn-shake, .btn-geo.btn-pulse { animation: none !important; }
  .btn-attn-pulseglow::after{ display: none; }
}

/* Myntra-like guidance: soft ripple waves + tap cue */
/* Outer halo + subtle blue wash fill via inset shadow */
@keyframes cueGlow {
  0%   { box-shadow: 0 0 0 0 rgba(13,110,253,.30), inset 0 0 0 9999px rgba(13,110,253,.08); }
  50%  { box-shadow: 0 0 0 12px rgba(13,110,253,0), inset 0 0 0 9999px rgba(13,110,253,.16); }
  100% { box-shadow: 0 0 0 0 rgba(13,110,253,0), inset 0 0 0 9999px rgba(13,110,253,0); }
}
@keyframes cueRingPulse { 0% { transform: scale(.98); opacity: .65; } 60% { transform: scale(1.05); opacity: 0; } 100% { transform: scale(1.08); opacity: 0; } }
@keyframes cueBounce { 0%,100% { transform: translateY(0) scale(1); } 30% { transform: translateY(-3px) scale(1.02); } 60% { transform: translateY(0) scale(1); } }
@keyframes cueSheen { 0% { left: -40%; opacity: .0; } 10% { opacity: .55; } 90% { opacity: .0; } 100% { left: 140%; opacity: 0; } }

/* Apply directly on the button/link */
.btn-attn-cue{
  position: relative; z-index: 2; will-change: transform, box-shadow;
  animation: cueGlow 1s ease-out 3, cueBounce 1s ease-in-out 3;
  background-color: rgba(13,110,253,.06);
  transition: background-color .3s ease;
}
.btn.btn-link.btn-attn-cue{ background-color: rgba(13,110,253,.12) !important; border-radius: 12px; }
.btn-attn-cue::after{
  content: ""; position: absolute; inset: -6px; border-radius: inherit; pointer-events: none;
  border: 2px solid rgba(13,110,253,.75);
  animation: cueRingPulse 1s ease-out 3;
}
.btn-attn-cue::before{
  content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 40%;
  background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 50%, rgba(255,255,255,0) 100%);
  transform: skewX(-20deg);
  pointer-events: none; border-radius: inherit;
  animation: cueSheen 1.4s ease 2 .1s; /* sweep twice within ~3s */
}
/* Better contrast for dark theme sheen */
html[data-theme='dark'] .btn-attn-cue::before{ background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.35) 50%, rgba(255,255,255,0) 100%); }
@media (prefers-reduced-motion: reduce){ .btn-attn-cue{ animation: cueGlow 1s ease-out 3; } .btn-attn-cue::before{ display:none; } }

/* Fixed overlay highlight (blue wash + glow) */
@keyframes washGlow { 0% { box-shadow: 0 0 0 0 rgba(13,110,253,.25); } 60% { box-shadow: 0 0 0 12px rgba(13,110,253,0); } 100% { box-shadow: 0 0 0 0 rgba(13,110,253,0); } }
.attn-guide{ position: fixed; pointer-events: none; z-index: 2147483000; }
.attn-guide .attn-fill{ position: absolute; inset: -6px; border-radius: 14px; background: rgba(13,110,253,.10); border: 2px solid rgba(13,110,253,.75); animation: washGlow 1s ease-out 3; }

/* Minimal, robust ring around Set Current Location link */
@keyframes tapBorder { 0% { transform: scale(1); opacity: .9; } 70% { transform: scale(1.05); opacity: 0; } 100% { transform: scale(1.08); opacity: 0; } }
@keyframes tapGlow { 0% { box-shadow: 0 0 0 0 rgba(13,110,253,.28); } 55% { box-shadow: 0 0 0 10px rgba(13,110,253,0); } 100% { box-shadow: 0 0 0 0 rgba(13,110,253,0); } }
@keyframes tapBounce { 0%,100% { transform: translateY(0) scale(1); } 35% { transform: translateY(-2px) scale(1.02); } 70% { transform: translateY(0) scale(1); } }
.tap-attn{ position: relative; z-index: 1; animation: tapGlow 1s ease-out 3, tapBounce 1s ease-in-out 3; background-color: rgba(13,110,253,.08) !important; border-radius: 12px; }
.tap-attn::before{ content:""; position:absolute; inset:-6px; border-radius: 14px; border:2px solid rgba(13,110,253,.85); pointer-events:none; animation: tapBorder 1s ease-out 3; }

/* Inline border/halo flash on the element itself (fallback) */
@keyframes borderFlash {
  0%,100% { box-shadow: 0 0 0 0 rgba(13,110,253,.0), 0 0 0 0 rgba(13,110,253,.0) inset; }
  50%     { box-shadow: 0 0 0 3px rgba(13,110,253,.75), 0 0 0 9999px rgba(13,110,253,.0) inset; }
}
.btn-attn-borderflash { animation: borderFlash .6s ease-in-out 5; }
@media (prefers-reduced-motion: reduce){ .btn-attn-borderflash { animation: none; } }

/* Dark theme legibility */
html[data-theme='dark'] .qty-stepper .btn.btn-outline-secondary { color: #e5e7eb; border-color: #52525b; }
html[data-theme='dark'] .cart-qty-input { color: #e5e7eb; background: #1f2937; border-color: #374151; }

/* Mobile: slightly larger buttons */
@media (max-width: 575.98px){
  .qty-stepper .btn { width: 38px; height: 38px; border-radius: 10px; }
  .qty-stepper .btn i { font-size: 20px; }
  .cart-qty-input { width: 66px; height: 38px; }
}

/* Auth pages */
.auth-card { border: 0; border-radius: 14px; }
.auth-card .btn { padding: .6rem .9rem; }
.auth-card input.form-control { height: 44px; }

/* Reveal animations */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
.reveal-visible { opacity: 1; transform: none; }

/* Gradient backgrounds/elements */
.bg-gradient-primary { background: linear-gradient(135deg, rgba(10,12,16,.75), rgba(22,24,28,.75)), linear-gradient(90deg, var(--g1), var(--g2), var(--g3)); backdrop-filter: blur(8px); }
/* Light mode: off‑white gradient surface for navbar/header */
html[data-theme='light'] .bg-gradient-primary {
  background: linear-gradient(180deg, #ffffff 0%, #f6f7f9 100%);
}

.btn-gradient {
  background: linear-gradient(90deg, var(--rh-gold), var(--rh-gold-dark));
  border: 0; color: #111; box-shadow: 0 10px 18px rgba(0,0,0,.18);
}
.btn-gradient:hover { filter: brightness(1.06); }
html[data-theme='light'] .btn-gradient { color: #111; }

/* Emphasized action for completing address in location modal */
.btn-complete-addr{
  display: inline-flex; align-items: center; gap: .4rem;
  background: linear-gradient(90deg, var(--rh-gold), var(--rh-gold-dark));
  color: #111; border: 0; border-radius: 999px;
  padding: .35rem .75rem; font-weight: 700; letter-spacing: .2px;
  box-shadow: 0 6px 16px rgba(0,0,0,.18);
}
.btn-complete-addr:hover{ filter: brightness(1.06); color:#111; }
.btn-complete-addr i{ font-size: 1rem; line-height: 1; }
html[data-theme='light'] .btn-complete-addr{ color:#111; }

/* Soft variant to blend inside success alert */
.btn-complete-addr-soft{
  background: rgba(255,255,255,.16) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.35) !important;
  box-shadow: none !important;
}
.btn-complete-addr-soft:hover{ background: rgba(255,255,255,.26) !important; color:#fff !important; }
/* Subtle icon nudge on hover */
.btn-complete-addr-soft i{ transition: transform .18s ease, opacity .18s ease; }
.btn-complete-addr-soft:hover i{ transform: translateX(2px) rotate(-8deg); }
/* Light theme: subtle light surface with dark text */
html[data-theme='light'] .btn-complete-addr-soft{
  background: rgba(255,255,255,.9) !important;
  color: #0f172a !important;
  border: 1px solid rgba(15,23,42,.15) !important;
}
html[data-theme='light'] .btn-complete-addr-soft:hover{ background: #fff !important; }

/* Micro helper hint text under the button */
.hint-soft{ font-size: .75rem; line-height: 1.1; color: rgba(255,255,255,.75); }
html[data-theme='light'] .hint-soft{ color: rgba(15,23,42,.7); }

.text-gradient {
  background: linear-gradient(90deg, var(--rh-grad-start), var(--rh-grad-end));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
html[data-theme='light'] .text-gradient {
  background: linear-gradient(90deg, #111827, #334155);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* Hover lift utility */
.hover-lift { transition: transform .25s ease, box-shadow .25s ease; }
.hover-lift:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0,0,0,.12); }

/* Ripple effect */
.ripple { position: absolute; border-radius: 50%; transform: scale(0); animation: ripple .6s linear; background: rgba(255,255,255,.5); pointer-events: none; }
@keyframes ripple { to { transform: scale(4); opacity: 0; } }

/* Mobile bottom nav (Amazon-like) */
.mobile-bottom-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040;
  background: rgba(2,6,23,.9); backdrop-filter: blur(6px); border-top: 1px solid #334155; display: grid; grid-template-columns: repeat(4, 1fr);
  padding: 6px 4px; height: 60px; }
.mobile-nav-item { color: #cbd5e1; text-align: center; text-decoration: none; font-size: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; position: relative; }
.mobile-nav-item i { font-size: 20px; }
.mobile-nav-item:hover { color: var(--rh-primary); }
.mobile-badge { position: absolute; top: 2px; right: 22px; font-size: 10px; }
.mobile-nav-item.active { color: var(--rh-primary); }
/* Light overrides */
html[data-theme='light'] .mobile-bottom-nav { background: rgba(255,255,255,.9); border-top-color: #e5e7eb; }
html[data-theme='light'] .mobile-nav-item { color: #475569; }

@media (max-width: 767.98px){ main { padding-bottom: 80px; } }
@media (max-width: 767.98px){ .site-footer { padding-bottom: 80px; } }

/* Mobile sticky header */
.mobile-search-bar { position: sticky; top: 0; z-index: 1030; }
.mobile-search-bar .mobile-chips { overflow-x: auto; display: flex; gap: 8px; padding-top: 8px; padding-bottom: 4px; }
.mobile-search-bar .mobile-chips::-webkit-scrollbar { display: none; }

/* Glassy mobile header */
.mobile-search-bar { background: rgba(15,23,42,.72); backdrop-filter: blur(8px); border-bottom: 1px solid rgba(148,163,184,.2); }
html[data-theme='light'] .mobile-search-bar { background: rgba(255,255,255,.72); border-bottom-color: rgba(100,116,139,.25); }

/* Desktop chips under navbar */

/* Home carousel styling */
.home-carousel-img { height: 420px; object-fit: cover; }
@media (max-width: 767.98px){ .home-carousel-img { height: 220px; } }
.home-carousel .carousel-caption { background: linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.15)); padding: 14px 18px; border-radius: 10px; }
.home-carousel-video { height: 420px; object-fit: cover; }
@media (max-width: 767.98px){ .home-carousel-video { height: 220px; } }

/* Order status steps */
.rh-steps { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; padding: 0; margin: 0 0 12px; list-style: none; }
.rh-step { position: relative; text-align: center; }
.rh-step-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: #6b7280; border: 2px solid #6b7280; }
.rh-step-label { display: block; font-size: .8rem; margin-top: 6px; color: #9ca3af; }
.rh-steps .rh-step::before { content: ""; position: absolute; top: 5px; left: -50%; right: 50%; height: 2px; background: #6b7280; opacity: .5; }
.rh-steps .rh-step:first-child::before { display: none; }
/* Active/done coloring */
.rh-steps.state-1 .rh-step:nth-child(1) .rh-step-dot,
.rh-steps.state-2 .rh-step:nth-child(-n+2) .rh-step-dot,
.rh-steps.state-3 .rh-step:nth-child(-n+3) .rh-step-dot,
.rh-steps.state-4 .rh-step:nth-child(-n+4) .rh-step-dot,
.rh-steps.state-5 .rh-step:nth-child(-n+5) .rh-step-dot,
.rh-steps.state-6 .rh-step:nth-child(-n+6) .rh-step-dot { background: var(--rh-gold); border-color: var(--rh-gold); }
.rh-steps.state-1 .rh-step:nth-child(1) .rh-step-label,
.rh-steps.state-2 .rh-step:nth-child(-n+2) .rh-step-label,
.rh-steps.state-3 .rh-step:nth-child(-n+3) .rh-step-label,
.rh-steps.state-4 .rh-step:nth-child(-n+4) .rh-step-label,
.rh-steps.state-5 .rh-step:nth-child(-n+5) .rh-step-label,
.rh-steps.state-6 .rh-step:nth-child(-n+6) .rh-step-label { color: var(--rh-accent); }

/* Premium carousel treatment */
.premium-carousel { border-radius: 16px; overflow: hidden; box-shadow: 0 18px 40px rgba(0,0,0,.22); }
.premium-carousel .carousel-item img, .premium-carousel .carousel-item video { display: block; width: 100%; height: auto; }
.premium-carousel .carousel-indicators [data-bs-target] { width: 8px; height: 8px; border-radius: 50%; background-color: rgba(255,255,255,.5); border: 0; margin: 0 4px; }
.premium-carousel .carousel-indicators .active { background-color: var(--rh-gold); }
html[data-theme='light'] .premium-carousel .carousel-indicators [data-bs-target] { background-color: rgba(17,17,17,.35); }
.premium-carousel .carousel-control-prev, .premium-carousel .carousel-control-next { width: 12%; }
.premium-carousel .carousel-control-prev .carousel-control-prev-icon,
.premium-carousel .carousel-control-next .carousel-control-next-icon { filter: drop-shadow(0 6px 12px rgba(0,0,0,.3)); }
.premium-carousel .carousel-control-prev:hover .carousel-control-prev-icon,
.premium-carousel .carousel-control-next:hover .carousel-control-next-icon { filter: drop-shadow(0 8px 16px rgba(0,0,0,.45)); }

/* Premium order card */
.premium-order-card { border: 1px solid var(--rh-border); border-radius: 16px; box-shadow: 0 6px 18px rgba(0,0,0,.12); }

/* Orders responsiveness */
@media (max-width: 575.98px){
  .premium-order-card .card-body { flex-direction: column; align-items: stretch; }
  .premium-order-card .order-thumb { width: auto !important; flex: 0 0 auto; margin-bottom: 8px !important; }
  .order-items .list-group-item { flex-direction: column !important; align-items: flex-start !important; gap: 8px; }
  .order-items .list-group-item .text-end { width: 100%; display: flex; justify-content: space-between; gap: 8px; }
}

/* Status steps responsive */
@media (max-width: 575.98px){
  /* Use a horizontal scroller to avoid page overflow */
  .rh-steps { display: flex; flex-wrap: nowrap; gap: 10px; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px; }
  .rh-step { flex: 0 0 110px; }
  .rh-step-label { font-size: .72rem; white-space: nowrap; }
  /* Hide connectors on small screens to prevent overflow artifacts */
  .rh-steps .rh-step::before { display: none; }
}

/* Improve spacing in order list across breakpoints */
.premium-order-card .card-body { gap: 12px; flex-wrap: wrap; }
.premium-order-card .order-thumb { width: 72px; flex: 0 0 72px; }
@media (max-width: 767.98px){
  .premium-order-card .order-meta-right { text-align: left !important; width: 100%; margin-top: 6px; }
  .premium-order-card .order-actions { flex-wrap: wrap; }
}
@media (max-width: 575.98px){
  .premium-order-card .order-meta { width: 100%; }
  .premium-order-card .order-actions .btn { flex: 1 1 auto; }
  .order-items .text-nowrap { white-space: normal !important; }
  .card .btn.btn-sm { margin-bottom: 6px; }
  .premium-order-card .order-meta, .premium-order-card .order-meta-right { flex: 1 1 100%; min-width: 0; }
  .premium-order-card .order-meta .fw-semibold, .premium-order-card .order-meta-right .fw-semibold { word-break: break-word; }
  .premium-order-card .order-meta .small { white-space: normal; }
}

/* Amazon-like search bar */
.amz-search .amz-wrap { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: stretch; gap: 0; width: 100%; }
.amz-search.amz--no-cat .amz-wrap { grid-template-columns: 1fr auto; }
.amz-cat { background: #2a2a2a; color: #e5e5e5; border: 1px solid #3a3a3a; border-right: 0; border-radius: 999px 0 0 999px; padding: 0 10px; min-width: 70px; font-size: .9rem; }
.amz-input { background: #1e1e1e; color: #f3f4f6; border: 1px solid #3a3a3a; border-left: 0; border-right: 0; height: 40px; padding: 0 42px 0 44px; }
.amz-logo-in { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); height: 22px; width: auto; opacity: .95; border-radius: 3px; }
.amz-input::placeholder { color: #ffffff; opacity: .85; }
.amz-input::-webkit-input-placeholder { color: #ffffff; opacity: .85; }
.amz-input::-moz-placeholder { color: #ffffff; opacity: .85; }
.amz-input:-ms-input-placeholder { color: #ffffff; opacity: .85; }
.amz-input:-moz-placeholder { color: #ffffff; opacity: .85; }

/* Force white logo and text in search bars within navbar and mobile header */
.navbar .amz-logo-in, .mobile-search-bar .amz-logo-in { filter: brightness(0) invert(1); }
.navbar .amz-input, .mobile-search-bar .amz-input { color: #ffffff; }
.navbar .amz-input::placeholder, .mobile-search-bar .amz-input::placeholder { color: #ffffff; opacity: .85; }

/* In light theme, keep these specific search bars dark so white text is readable */
html[data-theme='light'] .navbar .amz-input,
html[data-theme='light'] .mobile-search-bar .amz-input { background: #1e1e1e; color: #ffffff; border-color: #3a3a3a; }
html[data-theme='light'] .navbar .amz-input::placeholder,
html[data-theme='light'] .mobile-search-bar .amz-input::placeholder { color: #ffffff; opacity: .85; }
.amz-tools { position: absolute; right: 48px; top: 50%; transform: translateY(-50%); display: inline-flex; gap: 6px; }
.amz-tool { background: transparent; border: 0; color: #e5e5e5; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }
.amz-tool:hover { background: rgba(255,255,255,.08); }
.amz-submit { background: linear-gradient(90deg, #febd69, #f3a847); color: #111; border: 1px solid #a8742a; border-left: 0; width: 44px; height: 40px; border-radius: 0 999px 999px 0; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; }

/* Image magnifier (product detail) */
.magnify-container { position: relative; }
.magnifier-lens { position: absolute; width: 160px; height: 160px; pointer-events: none; border-radius: 50%; border: 2px solid rgba(255,255,255,.85); box-shadow: 0 10px 22px rgba(0,0,0,.22), inset 0 0 0 1px rgba(0,0,0,.15); background-repeat: no-repeat; background-color: rgba(0,0,0,.02); display: none; z-index: 5; }
html[data-theme='light'] .magnifier-lens { border-color: rgba(17,17,17,.25); box-shadow: 0 10px 22px rgba(0,0,0,.10), inset 0 0 0 1px rgba(0,0,0,.08); }
.magnify-target { cursor: zoom-in; }
.amz-submit:hover { filter: brightness(1.05); }
/* Light search overrides */
html[data-theme='light'] .amz-cat { background: #f3f4f6; color: #111827; border-color: #e5e7eb; }
html[data-theme='light'] .amz-input { background: #fff; color: #111827; border-color: #e5e7eb; }
.amz-search-mobile .amz-input { height: 36px; }
.amz-search-mobile .amz-cat { font-size: .85rem; min-width: 64px; }

/* Mobile override: some Samsung devices render CSS grid oddly for this layout.
   Use flex to ensure the input shrinks/expands correctly and stays responsive. */
@media (max-width: 575.98px){
  .amz-search-mobile .amz-wrap { display: flex; align-items: stretch; width: 100%; }
  .amz-search-mobile .amz-input { flex: 1 1 auto; min-width: 0; width: auto; }
  .amz-search-mobile .amz-tools { right: 48px; }
}

/* Category rail (Flipkart-like) */
.cat-rail .cat-rail-thumbs { display: flex; gap: 4px; overflow-x: auto; padding-bottom: 4px; }
.cat-rail .cat-rail-thumbs::-webkit-scrollbar { height: 6px; }
html[data-theme='light'] .cat-rail .cat-rail-thumbs::-webkit-scrollbar-thumb { background: #cbd5e1; }
.cat-rail .cat-rail-thumbs::-webkit-scrollbar-thumb { background: #2f2f2f; border-radius: 999px; }
.cat-thumb { display: flex; flex-direction: column; align-items: center; text-decoration: none; color: #e5e5e5; flex: 0 0 auto; width: 72px; }
.cat-thumb img, .cat-thumb-ph { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; display: block; background: radial-gradient(circle at top, #2a2a2a, #0f0f0f); border: 1px solid var(--rh-border); box-shadow: 0 4px 12px rgba(0,0,0,.22); }
.cat-thumb-label { font-size: .75rem; text-align: center; color: #e5e5e5; margin-top: 2px; letter-spacing: .05px; }
/* Light-mode readability for category rail */
html[data-theme='light'] .cat-thumb { color: #111827; }
html[data-theme='light'] .cat-thumb-label { color: #111827; }
html[data-theme='light'] .cat-thumb img, html[data-theme='light'] .cat-thumb-ph { background: #f1f5f9; border-color: #e5e7eb; box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.cat-thumb.disabled { pointer-events: none; opacity: .55; }

/* Chip (toast) messages */
.chip-container { position: fixed; right: 16px; top: 72px; left: auto; bottom: auto; width: calc(100% - 32px); max-width: 360px; display: flex; flex-direction: column; align-items: stretch; gap: 8px; z-index: 2000; pointer-events: none; }
@media (max-width: 767.98px){ .chip-container { top: 110px; right: 12px; } }
.chip-msg { pointer-events: auto; display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 999px; color: #fff; box-shadow: 0 8px 18px rgba(0,0,0,.15); animation: chip-appear .25s ease-out, chip-shake .4s ease-out .25s; width: 100%; }
.chip-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.9); opacity: .9; }
.chip-close { background: transparent; border: 0; color: #fff; font-size: 16px; line-height: 1; padding: 0 2px; opacity: .9; }
.chip-close:hover { opacity: 1; }
.chip-success { background: linear-gradient(90deg, #22c55e, #16a34a); }
.chip-info { background: linear-gradient(90deg, #6b7280, #4b5563); }
.chip-warning { background: linear-gradient(90deg, var(--rh-rust), var(--rh-rust-dark)); }
.chip-error, .chip-danger { background: linear-gradient(90deg, #ef4444, #dc2626); }
@keyframes chip-appear { from { transform: translateX(12px) scale(.98); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes chip-shake {
  0% { transform: translateX(0); }
  25% { transform: translateX(3px); }
  50% { transform: translateX(-3px); }
  75% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}

/* Exit animation */
.chip-msg.chip-out { animation: chip-shake 0.25s ease-in, chip-disappear 0.28s ease-in 0.25s forwards; }
@keyframes chip-disappear { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateX(12px) scale(.98); } }

/* Dark theme overrides */
.card { background: var(--rh-bg-elev); border-color: var(--rh-border); color: var(--rh-accent); border-radius: 16px; box-shadow: 0 10px 28px rgba(0,0,0,.22); }

/* Cart layout: stabilize remove button and inputs on mobile */
.cart-row .cart-qty-input { max-width: 90px; }
@media (max-width: 767.98px){
  .cart-row .cart-right { min-width: 140px; }
  .cart-row .cart-qty-input { max-width: 80px; }
  .cart-row .cart-right .btn { white-space: nowrap; }
}

/* Utilities */
.min-w-0 { min-width: 0 !important; }

/* Clamp long product names in cart (mobile) */
.cart-item-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.25; }

/* Amazon-like mobile cart item */
.cart-mobile-item .cart-thumb { width: 64px; height: 64px; border-radius: 8px; overflow: hidden; background: var(--g2); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cart-mobile-item .cart-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cart-mobile-item .cart-thumb-ph { width: 100%; height: 100%; display: block; background: linear-gradient(180deg, var(--g3), var(--g2)); border-radius: 8px; }
.cart-mobile-item .cart-price { font-size: 0.95rem; }
.cart-mobile-item .cart-media { width: 104px; }

/* Quantity stepper */
.qty-stepper { display: inline-flex; align-items: center; border: 1px solid var(--rh-border); border-radius: 10px; overflow: hidden; }
.qty-stepper .btn { border: 0; border-radius: 0; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.qty-stepper .form-control { border: 0; width: 64px; height: 32px; box-shadow: none !important; }
@media (min-width: 768px){ .qty-stepper .form-control { width: 80px; } }
@media (max-width: 767.98px){
  .qty-stepper .btn { width: 28px; height: 28px; }
  .qty-stepper .form-control { width: 44px; height: 28px; }
}
.list-group-item { background: var(--rh-bg-elev); border-color: var(--rh-border); color: var(--rh-accent); }
.offcanvas { background: var(--rh-bg); color: var(--rh-accent); border-top: 1px solid var(--rh-border); }
.dropdown-menu { background: var(--rh-bg-elev); color: var(--rh-accent); border-color: var(--rh-border); }
.modal-content { background: var(--rh-bg-elev); color: var(--rh-accent); border-color: var(--rh-border); }
.table { color: var(--rh-accent); }
.table>:not(caption)>*>* { background: var(--rh-bg-elev); color: var(--rh-accent); border-color: var(--rh-border); }
.form-control, .form-select { background: var(--rh-bg-elev); color: var(--rh-accent); border-color: var(--rh-border); }
.form-control:focus, .form-select:focus { background: #0f172a; color: #fff; border-color: #9ca3af; box-shadow: 0 0 0 .1rem rgba(156,163,175,.35); }
html[data-theme='light'] .form-control:focus, html[data-theme='light'] .form-select:focus { background: #fff; color: #111; border-color: #94a3b8; box-shadow: 0 0 0 .1rem rgba(148,163,184,.35); }
/* Grey primary buttons/links */
.btn-primary { background: linear-gradient(90deg, var(--rh-grad-start), var(--rh-grad-end)); border-color: #3f3f46; color: #e5e7eb; }
.btn-primary:hover { filter: brightness(1.08); color: #fff; }
.btn-outline-primary { border-color: #6b7280; color: #e5e7eb; }
.btn-outline-primary:hover { background: #1f2937; border-color: #9ca3af; color: #fff; }
a { color: #e5e7eb; }
a:hover { color: #f3f4f6; }
html[data-theme='light'] a { color: #111827; }
html[data-theme='light'] a:hover { color: #0f172a; }

/* Submit overlay (loader for long form posts) */
.submit-overlay { position: fixed; inset: 0; z-index: 2000; background: rgba(2,6,23,.55); backdrop-filter: blur(2px); display: flex; align-items: center; justify-content: center; }
.submit-overlay .submit-box { background: var(--rh-bg-elev); color: var(--rh-accent); border: 1px solid var(--rh-border); border-radius: 14px; padding: 16px 18px; box-shadow: 0 12px 30px rgba(0,0,0,.28); display: flex; align-items: center; }
html[data-theme='light'] .submit-overlay { background: rgba(255,255,255,.5); }

/* Premium loader animation: gradient ring + pulsing core + animated dots */
.loader-anim { position: relative; width: 44px; height: 44px; flex: 0 0 44px; }
.loader-anim .loader-ring { position: absolute; inset: 0; border-radius: 50%;
  background: conic-gradient(var(--rh-gold) 0 90deg, transparent 90deg 180deg, #64748b 180deg 225deg, transparent 225deg 360deg);
  -webkit-mask: radial-gradient(circle, transparent 58%, #000 59%);
          mask: radial-gradient(circle, transparent 58%, #000 59%);
  animation: spin 1.1s linear infinite;
}
.loader-anim .loader-dot { position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--rh-gold), #f59e0b);
  box-shadow: 0 0 0 0 rgba(245, 158, 11, .5);
  animation: pulse-core 1.4s ease-in-out infinite;
}
@keyframes pulse-core {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(245,158,11,.45); }
  70% { transform: scale(1.25); box-shadow: 0 0 0 8px rgba(245,158,11,0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(245,158,11,0); }
}
.dots { display: inline-flex; align-items: center; gap: 2px; margin-left: 2px; }
.dots span { width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .25; animation: dotblink 1.2s infinite ease-in-out; }
.dots span:nth-child(2) { animation-delay: .2s; }
.dots span:nth-child(3) { animation-delay: .4s; }
@keyframes dotblink { 0%, 60%, 100% { opacity: .25; transform: translateY(0); } 30% { opacity: .9; transform: translateY(-1px); } }

/* Saved for later grid */
.saved-item { border: 1px solid var(--rh-border); border-radius: 14px; overflow: hidden; background: var(--rh-bg-elev); }
.saved-item .saved-thumb { height: 140px; background: var(--g2); display: block; overflow: hidden; }
.saved-item .saved-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.saved-item .saved-thumb-ph { width: 100%; height: 100%; display: block; background: linear-gradient(180deg, var(--g3), var(--g2)); }
.saved-item .saved-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.25; min-height: 40px; }
.saved-item .saved-actions .btn { white-space: nowrap; }
@media (max-width: 575.98px){ .saved-item .saved-thumb { height: 120px; } }

/* Cart image preview */
.cart-preview-img { width: 100%; height: auto; display: block; object-fit: contain; }

/* Product detail fullscreen viewer */
.pd-modal .modal-content { background: #000; color: #fff; }
.pd-modal .modal-header { background: rgba(0,0,0,.35); }
.pd-full-img { width: 100%; height: calc(100vh - 56px); object-fit: contain; background: #000; display: block; }

/* Product detail media: fix carousel height and prevent jumpiness */
/* Product detail media: enforce 3:4 aspect ratio (1080x1440) */
#productMedia { width: 100%; aspect-ratio: 3 / 4; }
#productMedia .carousel-inner, #productMedia .carousel-item { height: 100%; }
#productMedia .carousel-item { display: flex; align-items: center; justify-content: center; background: transparent; }
#productMedia .carousel-item img,
#productMedia .carousel-item video { width: 100%; height: 100%; object-fit: cover; background: transparent; display: block; }

/* Fallback for older browsers without aspect-ratio support */
@supports not (aspect-ratio: 3 / 4) {
  #productMedia { position: relative; }
  #productMedia::before { content: ""; display: block; padding-top: calc(4 / 3 * 100%); }
  #productMedia > .carousel-inner,
  #productMedia > .carousel-indicators,
  #productMedia > .carousel-control-prev,
  #productMedia > .carousel-control-next { position: absolute; inset: 0; }
  #productMedia .carousel-item img,
  #productMedia .carousel-item video { width: 100%; height: 100%; object-fit: cover; }
}

/* Option pills (mobile) */
.option-pills { display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.option-pills .btn { border-radius: 999px; padding: .35rem .7rem; line-height: 1.1; }
.option-pills .btn-check:checked + .btn { background: transparent; color: inherit; border-color: var(--rh-gold); box-shadow: 0 0 0 2px var(--rh-gold) inset; }
.size-pill { min-width: 44px; justify-content:center; }
/* Unified color pill size: 94x70 (rectangle with rounded corners) */
.color-pill { width: 94px; height: 70px; padding: 0 !important; border-radius: 12px; overflow: hidden; border: 1px solid var(--rh-border); }
/* Thumbnail inside color pills (mobile) */
.color-thumb { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 10px; }
.color-swatch { width: 100%; height: 100%; display: block; background: linear-gradient(135deg, var(--g2), var(--g3)); }
@media (max-width: 575.98px){
  .option-pills .btn { padding: 0 !important; }
  /* Keep the same size on small screens per spec */
  .color-pill { width: 94px; height: 70px; border-radius: 12px; }
}

/* Product detail thumbnails */
.pd-thumbs { display:flex; gap:12px; flex-wrap:wrap; overflow-x:auto; padding-bottom:6px; }
/* Desktop/primary thumbnails: 94x70 with rounded corners */
.pd-thumb { border:1px solid #3a3a3a; background: transparent; padding:0; border-radius:12px; width:94px; height:70px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.pd-thumb-img { width:100%; height:100%; object-fit:cover; border-radius:10px; display:block; }
.pd-thumb-ph { background: linear-gradient(135deg, var(--g2), var(--g3)); border-radius:10px; width:100%; height:100%; display:block; }
.pd-thumb.active { outline:3px solid var(--rh-gold); border-color: var(--rh-gold); }
html[data-theme='light'] .pd-thumb { border-color: #e5e7eb; }

/* Premium hero */
.rh-premium-hero { position: relative; overflow: hidden; border-radius: 20px; margin-bottom: 22px; min-height: 62vh; display: grid; align-items: stretch; }
@media (max-width: 991.98px){ .rh-premium-hero { min-height: 54vh; } }
@media (max-width: 575.98px){ .rh-premium-hero { min-height: 46vh; } }
.rh-premium-hero .rh-hero-bg { position: absolute; inset: 0; z-index: 0; }
.rh-premium-hero .rh-hero-media { width: 100%; height: 100%; object-fit: cover; display: block; filter: none; }
.rh-premium-hero .carousel,
.rh-premium-hero .carousel-inner,
.rh-premium-hero .carousel-item { height: 100%; }
.rh-premium-hero .rh-hero-overlay { position: absolute; inset: 0; z-index: 1; background:
  radial-gradient(120% 80% at 10% 10%, rgba(0,0,0,.35), rgba(0,0,0,0) 40%, rgba(0,0,0,.45) 75%),
  linear-gradient(120deg, rgba(0,0,0,.45), rgba(0,0,0,.25)); }
html[data-theme='light'] .rh-premium-hero .rh-hero-overlay { background:
  radial-gradient(120% 80% at 10% 10%, rgba(255,255,255,.25), rgba(255,255,255,0) 40%, rgba(255,255,255,.3) 75%),
  linear-gradient(120deg, rgba(255,255,255,.45), rgba(255,255,255,.2)); }
.rh-premium-hero .rh-hero-content { position: relative; z-index: 2; padding: 42px 0; text-align: center; }
@media (max-width: 767.98px){
  /* Center the hero content vertically and nudge slightly lower */
  .rh-premium-hero { align-items: center; }
  .rh-premium-hero .rh-hero-content { padding: 20px 0; text-align: center; transform: translateY(8px); }
  .rh-premium-hero .rh-hero-ctas .btn { width: auto; margin-bottom: 8px; }
  .rh-hero-badges { justify-content: center; }
}
@media (max-width: 575.98px){
  /* Ensure no unintended negative offset on very small screens */
  .rh-premium-hero { margin-top: 0; }
}
.rh-hero-kicker { font-weight: 700; letter-spacing: .4px; margin-bottom: 6px; filter: drop-shadow(0 4px 12px rgba(0,0,0,.25)); }
.rh-hero-title { font-family: 'Playfair Display','Inter',serif; font-size: clamp(32px, 7vw, 80px); line-height: 1.08; margin: 0 0 10px; letter-spacing: .4px; text-shadow: 0 3px 14px rgba(0,0,0,.22); font-weight: 800; }
.rh-hero-accent { background: linear-gradient(90deg, var(--rh-gold), var(--rh-gold-dark)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rh-hero-sub { color: #e5e7eb; max-width: 760px; font-size: 1.2rem; opacity: .95; margin-bottom: 18px; text-shadow: 0 2px 10px rgba(0,0,0,.2); font-weight: 600; }
html[data-theme='light'] .rh-hero-title { text-shadow: 0 2px 8px rgba(0,0,0,.08); }
html[data-theme='light'] .rh-hero-sub { color: #1f2937; opacity: .95; text-shadow: none; }
html[data-theme='light'] .rh-hero-title { color: #0f172a; }
.rh-hero-ctas .btn { padding: .7rem 1.2rem; }
.btn-ghost { background: transparent; border: 1px solid rgba(255,255,255,.6); color: #fff; }
.btn-ghost:hover { background: rgba(255,255,255,.1); color: #fff; }
html[data-theme='light'] .btn-ghost { border-color: #111; color: #111; }
html[data-theme='light'] .btn-ghost:hover { background: rgba(17,17,17,.05); color: #111; }
.rh-hero-badges { display: flex; flex-wrap: wrap; gap: 12px 18px; margin-top: 14px; color: #e5e7eb; opacity: .95; justify-content: center; }
.rh-hero-badges span { display: inline-flex; align-items: center; gap: 8px; font-size: .95rem; }
html[data-theme='light'] .rh-hero-badges { color: #1f2937; }
.form-control::placeholder { color: #94a3b8; }
.input-group .btn-outline-light { border-color: #e5e7eb; color: #e5e7eb; }
.input-group .btn-outline-light:hover { background: rgba(255,255,255,.1); }
/* Light-mode visibility improvements */
html[data-theme='light'] .input-group .btn-outline-light { border-color: #111; color: #111; }
html[data-theme='light'] .input-group .btn-outline-light:hover { background: #f3f4f6; color: #111; }
html[data-theme='light'] .amz-tool { color: #475569; }
html[data-theme='light'] .amz-tool:hover { background: rgba(17,17,17,.06); }
html[data-theme='light'] .home-carousel .carousel-caption { color: #111; background: linear-gradient(90deg, rgba(255,255,255,.85), rgba(255,255,255,.4)); }
/* Dashboard styles */
.dash-sidebar { position: sticky; top: 76px; border: 1px solid var(--rh-border); border-radius: 12px; overflow: hidden; }
.dash-sidebar .list-group-item { background: var(--rh-bg-elev); color: var(--rh-accent); border-color: var(--rh-border); }
.dash-sidebar .list-group-item.disabled { background: var(--rh-bg); color: var(--rh-muted); font-weight: 700; letter-spacing: .3px; }
.dash-sidebar .list-group-item.active { background: linear-gradient(90deg, var(--rh-gold), var(--rh-gold-dark)); color: #111; border-color: transparent; font-weight: 700; }

.dash-table thead th { font-weight: 700; }
.dash-table tbody td { vertical-align: middle; }
.clickable-user-row:hover { background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.03)); }
.avatar-circle { width: 28px; height: 28px; border-radius: 999px; background: var(--g3); color: #fff; font-size: .8rem; font-weight: 700; }
.dash-table tbody tr:hover { background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.04)); }

/* Sticky actions bar for forms */
.sticky-actions { position: sticky; bottom: 0; background: var(--rh-bg-elev); border-top: 1px solid var(--rh-border); padding: 10px; z-index: 5; box-shadow: 0 -8px 22px rgba(0,0,0,.12); }
.sticky-actions .btn { min-width: 140px; }

.dash-kpi { border: 1px solid var(--rh-border); border-radius: 12px; background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.02)), var(--rh-bg-elev); box-shadow: 0 10px 28px rgba(0,0,0,.18); }
.dash-kpi .kpi { font-size: 1.75rem; font-weight: 800; letter-spacing: .2px; }
.dash-kpi .label { color: var(--rh-muted); font-weight: 700; }
html[data-theme='light'] .dash-kpi { box-shadow: 0 10px 24px rgba(0,0,0,.08); }

/* Mobile responsive admin tweaks */
@media (max-width: 767.98px){
  .dash-sidebar { position: relative; top: auto; border-radius: 10px; }
  .dash-table { font-size: .9rem; }
  .dash-kpi .kpi { font-size: 1.35rem; }
  .dash-kpi .label { font-size: .85rem; }
  .order-status-form select.form-select-sm { min-width: 140px; }
}

/* Extra-small screens: stack table rows as cards */
@media (max-width: 575.98px){
  .dash-table thead { display: none; }
  .dash-table, .dash-table tbody, .dash-table tr, .dash-table td { display: block; width: 100%; }
  .dash-table tr { background: var(--rh-bg-elev); border: 1px solid var(--rh-border); border-radius: 12px; padding: 8px 12px; margin-bottom: 12px; box-shadow: 0 6px 18px rgba(0,0,0,.12); }
  .dash-table td { display: grid; grid-template-columns: 96px 1fr; gap: 8px; align-items: center; padding: 6px 0; border-bottom: 1px dashed var(--rh-border); }
  .dash-table td:last-child { border-bottom: 0; }
  .dash-table td::before { content: attr(data-label); color: var(--rh-muted); font-weight: 700; }
  .dash-table .text-end { display: block; }
  /* Stack action buttons full-width on xs */
  .dash-table td[data-label="Actions"] .btn { width: 100%; margin-bottom: 6px; }
  .dash-table td[data-label="Actions"] .btn:last-child { margin-bottom: 0; }
  /* Make first cell a header-like block */
  .dash-table td.cell-username { display: block; padding-top: 8px; padding-bottom: 8px; }
  .dash-table td.cell-username::before { content: ""; }
  .dash-table td.cell-active::before, .dash-table td.cell-staff::before { width: auto; }
}

/* AJAX list loading overlay */
#listContainer { position: relative; }
#listContainer.loading::after { content: ""; position: absolute; inset: -6px 0 0 0; background: rgba(0,0,0,.06); border-radius: 8px; }
#listContainer.loading::before { content: ""; position: absolute; right: 10px; top: -2px; width: 18px; height: 18px; border: 2px solid var(--rh-border); border-top-color: var(--rh-gold); border-radius: 50%; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Filters UI enhancements */
.filter-bar { border: 1px solid var(--rh-border); border-radius: 12px; padding: 8px 10px; background: var(--rh-bg-elev); }
.filter-pills .nav-link { padding: .2rem .5rem; border-radius: 999px; color: var(--rh-accent); border: 1px solid transparent; }
.filter-pills .nav-link:hover { background: rgba(255,255,255,.06); }
.filter-pills .nav-link.active { background: linear-gradient(90deg, var(--rh-gold), var(--rh-gold-dark)); color: #111; border-color: transparent; }
.filter-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--g3); color: #fff; font-size: .8rem; cursor: pointer; }
.filter-chip::after { content: "×"; font-weight: 700; }
