:root {
  color-scheme: light;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  
  /* Brand luxury colors */
  --nv-gold: #eab308;
  --nv-gold-hover: #ca8a04;
  --nv-gold-glow: rgba(234, 179, 8, 0.25);
  --nv-dark-bg: #020617;
  --nv-dark-gray: #0f172a;
  --nv-slate-800: #1e293b;
  --nv-slate-700: #334155;
  --nv-slate-500: #64748b;
  --nv-slate-100: #f1f5f9;
  --nv-slate-50: #f8fafc;
  --nv-border-gold: rgba(234, 179, 8, 0.2);
}

/* ==========================================================================
   Basic Defaults & Customizations
   ========================================================================== */
body {
  margin: 0;
  background-color: var(--nv-slate-50);
  color: var(--nv-slate-800);
  font-weight: 400;
  overflow-x: hidden;
}

/* Premium Custom Header */
.navbar-premium {
  background-color: #ffffff;
  border-bottom: 2px solid var(--nv-border-gold);
  min-height: 80px;
  z-index: 1050 !important;
}

.nav-link-premium {
  color: var(--nv-slate-700) !important;
  font-weight: 600;
  font-size: 0.95rem;
  padding: 0.5rem 1rem !important;
  transition: all 0.2s ease-in-out;
  border-radius: 8px;
}

.nav-link-premium:hover, .nav-link-premium.active {
  color: var(--nv-gold-hover) !important;
  background-color: rgba(234, 179, 8, 0.05);
}

.nav-link-hot {
  color: #dc3545 !important;
  font-weight: 700;
}
.nav-link-hot:hover {
  color: #bb2d3b !important;
  background-color: rgba(220, 53, 69, 0.05);
}

/* Floating contact widget button */
#contact-widget {
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Custom modal backdrop styling */
dialog::backdrop {
  background: rgba(2, 6, 23, 0.75);
  backdrop-filter: blur(8px);
}
dialog[open] {
  animation: modalIn 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes modalIn {
  from { opacity: 0; transform: scale(0.95) translateY(12px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}

/* Custom Dialog Close */
dialog {
  border: none;
  outline: none;
}

/* Custom luxury button styling */
.btn-gold {
  background: linear-gradient(135deg, #eab308 0%, #ca8a04 100%);
  color: #020617 !important;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border: none;
  box-shadow: 0 4px 14px 0 rgba(234, 179, 8, 0.3);
  transition: all 0.25s ease-in-out;
  border-radius: 12px;
}
.btn-gold:hover {
  background: linear-gradient(135deg, #f1c40f 0%, #ca8a04 100%);
  transform: translateY(-1.5px);
  box-shadow: 0 6px 20px 0 rgba(234, 179, 8, 0.45);
}
.btn-gold:active {
  transform: translateY(0);
}

.btn-nordvick-dark {
  background-color: var(--nv-dark-bg);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #ffffff !important;
  font-weight: 700;
  transition: all 0.2s ease;
  border-radius: 12px;
}
.btn-nordvick-dark:hover {
  background-color: var(--nv-dark-gray);
  border-color: var(--nv-gold);
}

/* ==========================================================================
   Compatibility Layer for Tailwind Classes (Used in admin.js/custom chunks)
   ========================================================================== */
.max-w-7xl { max-width: 80rem !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }
.px-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.py-8 { padding-top: 3rem !important; padding-bottom: 3rem !important; }
.mb-8 { margin-bottom: 2rem !important; }
.mb-6 { margin-bottom: 1.5rem !important; }
.mb-2 { margin-bottom: 0.5rem !important; }
.mt-1 { margin-top: 0.25rem !important; }
.mt-2 { margin-top: 0.5rem !important; }
.border-b { border-bottom: 1px solid var(--nv-slate-100) !important; }
.border-slate-200 { border-color: #e2e8f0 !important; }
.pb-6 { padding-bottom: 1.5rem !important; }
.text-3xl { font-size: 1.875rem !important; }
.font-extrabold { font-weight: 800 !important; }
.text-slate-900 { color: var(--nv-dark-gray) !important; }
.text-slate-500 { color: var(--nv-slate-500) !important; }
.text-slate-700 { color: var(--nv-slate-800) !important; }
.bg-cyan-50 { background-color: #ecfeff !important; }
.bg-cyan-100 { background-color: #cffafe !important; }
.text-cyan-700 { color: #0e7490 !important; }
.border-cyan-200\/60 { border-color: rgba(165, 243, 252, 0.6) !important; }
.bg-slate-100 { background-color: #f1f5f9 !important; }
.bg-slate-50 { background-color: #f8fafc !important; }
.hover\:bg-slate-200:hover { background-color: #e2e8f0 !important; }
.shadow-sm { box-shadow: 0 1px 3px 0 rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1) !important; }
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1) !important; }
.shadow-2xl { box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25) !important; }
.rounded-2xl { border-radius: 1rem !important; }
.rounded-xl { border-radius: 0.75rem !important; }
.rounded-lg { border-radius: 0.5rem !important; }
.bg-red-50 { background-color: #fef2f2 !important; }
.text-red-600 { color: #dc2626 !important; }
.border-red-200 { border-color: #fecaca !important; }
.text-red-700 { color: #b91c1c !important; }
.bg-red-100 { background-color: #fee2e2 !important; }
.text-yellow-600 { color: #ca8a04 !important; }
.bg-yellow-100 { background-color: #fef9c3 !important; }
.bg-yellow-50 { background-color: #fefce8 !important; }
.border-yellow-500\/30 { border-color: rgba(234, 179, 8, 0.3) !important; }
.p-6 { padding: 1.5rem !important; }
.p-8 { padding: 2rem !important; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

/* ==========================================================================
   Utility Bridge: classes used across templates that Bootstrap 5 does not
   provide natively. Without these, flex children could shrink/overlap,
   stacked cards lost their gaps, and long headings lost their bold weight.
   ========================================================================== */
.shrink-0 { flex-shrink: 0 !important; }
.fw-black { font-weight: 900 !important; }
.fw-extrabold { font-weight: 800 !important; }
.select-none { user-select: none !important; }
.z-1 { z-index: 1 !important; }
.text-justify { text-align: justify !important; }
.transition-all { transition: all 0.25s ease-in-out !important; }
.duration-300 { transition-duration: 0.3s !important; }
.duration-700 { transition-duration: 0.7s !important; }
.mix-blend-multiply { mix-blend-mode: multiply !important; }
.h-44 { height: 11rem !important; }
.aspect-square { aspect-ratio: 1 / 1 !important; }
.line-clamp-2 {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Letter-spacing / line-height helpers */
.tracking-tight { letter-spacing: -0.015em !important; }
.tracking-wide { letter-spacing: 0.025em !important; }
.tracking-wider { letter-spacing: 0.05em !important; }
.tracking-widest { letter-spacing: 0.1em !important; }
.leading-none { line-height: 1 !important; }
.leading-tight { line-height: 1.2 !important; }
.leading-relaxed { line-height: 1.65 !important; }

/* Max-width helpers (Tailwind-style) used to keep hero copy readable */
.max-w-xs { max-width: 20rem !important; }
.max-w-xl { max-width: 36rem !important; }
.max-w-2xl { max-width: 42rem !important; }
.max-w-3xl { max-width: 48rem !important; }
.max-w-4xl { max-width: 56rem !important; }
.max-w-5xl { max-width: 64rem !important; }

/* Vertical spacing for stacked children (used instead of a real gap) */
.space-y-3 > * + * { margin-top: 0.75rem !important; }
.space-y-4 > * + * { margin-top: 1rem !important; }

/* Gold hover accents used on links/cards throughout the site */
.hover-gold { transition: color 0.2s ease-in-out; }
.hover-gold:hover { color: var(--nv-gold-hover) !important; }
.hover-border-gold:hover { border-color: var(--nv-gold) !important; }
.hover-bg-opacity-15:hover { --bs-bg-opacity: 0.15 !important; }

@keyframes nv-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}
.animate-pulse { animation: nv-pulse 1.8s ease-in-out infinite; }
.animate-ping { animation: nv-pulse 1.2s cubic-bezier(0, 0, 0.2, 1) infinite; }

/* ==========================================================================
   Animations & Cinematic Effects
   ========================================================================== */
@keyframes float {
  0%, 100% { transform: translateY(0px) rotate(-12deg); }
  50% { transform: translateY(-8px) rotate(-8deg); }
}

@keyframes float-delayed {
  0%, 100% { transform: translateY(0px) rotate(45deg); }
  50% { transform: translateY(-10px) rotate(40deg); }
}

@keyframes marquee {
  0% { transform: translateX(0%); }
  100% { transform: translateX(-50%); }
}

.animate-float { animation: float 6s ease-in-out infinite; }
.animate-float-delayed { animation: float-delayed 7s ease-in-out infinite; }
.animate-marquee {
  display: flex;
  width: max-content;
  animation: marquee 35s linear infinite;
}

/* RTL Support for Marquee */
html[dir="rtl"] .animate-marquee {
  animation-direction: reverse;
}

/* Subtle glow effects */
.gold-glow {
  box-shadow: 0 0 25px rgba(234, 179, 8, 0.15);
}
.gold-glow-hover:hover {
  box-shadow: 0 0 35px rgba(234, 179, 8, 0.32);
}

/* Grid paper pattern */
.grid-paper {
  background-image: radial-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px);
  background-size: 24px 24px;
}

/* Product Description internal links styling */
.product-desc-text a {
  color: var(--nv-gold-hover);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(234, 179, 8, 0.4);
  transition: all 0.2s ease-in-out;
}
.product-desc-text a:hover {
  color: var(--nv-dark-bg);
  text-decoration-color: var(--nv-dark-bg);
}

/* ==========================================================================
   Fade-In Scroll Animations
   ========================================================================== */
.fade-in-up {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.fade-in-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

@media (prefers-reduced-motion: reduce) {
  .fade-in-up {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Premium Card hover style */
.card-premium-hover {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  border: 1px solid #e2e8f0;
}
.card-premium-hover:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 30px rgba(2, 6, 23, 0.08) !important;
  border-color: var(--nv-gold) !important;
}

/* ==========================================================================
   Premium "Why Partner" feature cards — richer gradient background,
   soft gold glow border and radial accent, instead of a flat gray box.
   ========================================================================== */
.feature-card-premium {
  position: relative;
  overflow: hidden;
  background: linear-gradient(155deg, rgba(51, 65, 85, 0.55) 0%, rgba(15, 23, 42, 0.85) 55%, rgba(2, 6, 23, 0.95) 100%);
  border: 1px solid rgba(234, 179, 8, 0.18);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease;
}
.feature-card-premium::before {
  content: '';
  position: absolute;
  top: -60%;
  right: -40%;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, rgba(234, 179, 8, 0.16) 0%, transparent 70%);
  pointer-events: none;
}
.feature-card-premium:hover {
  transform: translateY(-5px);
  border-color: rgba(234, 179, 8, 0.45);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(234, 179, 8, 0.08) inset;
}
.feature-icon-badge {
  position: relative;
  z-index: 1;
  background: linear-gradient(135deg, rgba(234, 179, 8, 0.3) 0%, rgba(234, 179, 8, 0.06) 100%);
  border: 1px solid rgba(234, 179, 8, 0.3);
  box-shadow: 0 4px 14px rgba(234, 179, 8, 0.15);
}
.feature-card-premium h4,
.feature-card-premium p {
  position: relative;
  z-index: 1;
}

/* ==========================================================================
   Premium dark section background — replaces flat solid bg-dark panels
   (e.g. "Why Partner With Us", Facilities, Logistics) with a richer layered
   gradient plus a soft radial gold glow and faint grid texture, so full-width
   dark sections don't look like a flat black rectangle.
   ========================================================================== */
.section-dark-premium {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse 900px 500px at 50% 0%, rgba(234, 179, 8, 0.10) 0%, transparent 60%),
    linear-gradient(180deg, #0b1220 0%, #020617 45%, #0a0f1e 100%) !important;
}
.section-dark-premium::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 26px 26px;
  opacity: 0.5;
  pointer-events: none;
}
.section-dark-premium::after {
  content: '';
  position: absolute;
  bottom: -30%;
  left: -10%;
  width: 480px;
  height: 480px;
  background: radial-gradient(circle, rgba(234, 179, 8, 0.08) 0%, transparent 70%);
  pointer-events: none;
}

/* ==========================================================================
   Premium Breadcrumb — replaces flat Bootstrap breadcrumb on product pages
   with a compact, rounded "pill" trail: home icon, chevron separators, and
   a truncated current-page label so long product names don't wrap/overflow.
   ========================================================================== */
.breadcrumb-premium-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  max-width: 100%;
}
.breadcrumb-premium-wrap::-webkit-scrollbar { display: none; }

.breadcrumb-premium {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  list-style: none;
  margin: 0;
  padding: 0.6rem 1.15rem;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  box-shadow: 0 1px 3px rgba(2, 6, 23, 0.06);
  white-space: nowrap;
}
.breadcrumb-premium li {
  display: flex;
  align-items: center;
}
.breadcrumb-premium a {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--nv-slate-500);
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: color 0.2s ease-in-out;
}
.breadcrumb-premium a:hover {
  color: var(--nv-gold-hover);
}
.breadcrumb-premium .breadcrumb-home i {
  font-size: 0.95rem;
  color: var(--nv-gold-hover);
}
.breadcrumb-premium .breadcrumb-sep {
  color: #cbd5e1;
  font-size: 0.6rem;
  line-height: 1;
}
.breadcrumb-premium .breadcrumb-current {
  color: var(--nv-slate-800);
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.01em;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 576px) {
  .breadcrumb-premium {
    padding: 0.55rem 1rem;
    gap: 0.35rem;
  }
  .breadcrumb-premium .breadcrumb-current {
    max-width: 140px;
  }
  .breadcrumb-premium .breadcrumb-home span {
    display: none;
  }
}

/* Multilingual descriptions block scroll height */
.lazy-render-section {
  content-visibility: auto;
  contain-intrinsic-size: 600px;
}

/* ==========================================================================
   Mobile Floating Filters Widget (Catalog / Hot Deals) — on small screens the
   sidebar filter card becomes a bottom-sheet drawer triggered by a floating
   pill button, instead of pushing the product grid down the page.
   ========================================================================== */
.catalog-filters-fab {
  z-index: 1046;
  border: none;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 12px;
}

@media (max-width: 991.98px) {
  .catalog-filters-fab {
    position: fixed;
    left: 1.1rem;
    bottom: 1.1rem;
    padding: 0.85rem 1.35rem;
  }
}

.catalog-filters-count {
  font-size: 10px;
  min-width: 18px;
  line-height: 1;
  padding: 0.35em 0.5em;
}

.catalog-filters-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(2, 6, 23, 0.55);
  backdrop-filter: blur(2px);
  z-index: 1049;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.catalog-filters-backdrop.active {
  opacity: 1;
  visibility: visible;
}

@media (max-width: 991.98px) {
  .catalog-filters-panel {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0 !important;
    z-index: 1050;
    max-height: 82vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 24px 24px 0 0 !important;
    border-bottom: none !important;
    transform: translateY(110%);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 -20px 50px rgba(2, 6, 23, 0.35) !important;
  }
  .catalog-filters-panel::before {
    content: '';
    position: sticky;
    top: 0;
    display: block;
    width: 44px;
    height: 5px;
    border-radius: 999px;
    background: #e2e8f0;
    margin: -0.5rem auto 1rem;
  }
  .catalog-filters-panel.filters-open {
    transform: translateY(0);
  }
}

@media (min-width: 992px) {
  .catalog-filters-backdrop,
  .catalog-filters-fab {
    display: none !important;
  }
}

/* ==========================================================================
   Hot Deals Hero — premium version of the flat dark-red clearance banner.
   Adds a layered gradient, soft red glow, subtle floating flame icons,
   a glowing badge, gradient title text, and glassmorphism stat cards.
   ========================================================================== */
.hotdeals-hero-premium {
  background:
    radial-gradient(ellipse 700px 400px at 50% -10%, rgba(220, 53, 69, 0.28) 0%, transparent 65%),
    linear-gradient(155deg, #2a0509 0%, #180307 45%, #0a0203 100%);
  border: 1px solid rgba(220, 53, 69, 0.28);
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(220, 53, 69, 0.05) inset;
}
.hotdeals-hero-glow {
  position: absolute;
  top: -35%;
  right: -15%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(255, 90, 90, 0.22) 0%, transparent 70%);
  pointer-events: none;
}
.hotdeals-hero-embers {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  opacity: 0.1;
}
.hotdeals-hero-embers i {
  position: absolute;
  color: #ff5757;
  font-size: 3.5rem;
}
.hotdeals-hero-embers i:nth-child(1) { left: 4%; top: 12%; font-size: 2.4rem; transform: rotate(-12deg); }
.hotdeals-hero-embers i:nth-child(2) { right: 6%; top: 20%; font-size: 4.4rem; transform: rotate(10deg); }
.hotdeals-hero-embers i:nth-child(3) { left: 45%; bottom: -18%; font-size: 5.5rem; transform: rotate(-6deg); }

.hotdeals-badge-premium {
  background: linear-gradient(135deg, #ef4444 0%, #b91c1c 100%);
  color: #fff;
  box-shadow: 0 4px 18px rgba(239, 68, 68, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;
}
.hotdeals-badge-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  animation: nv-pulse 1.4s ease-in-out infinite;
}

.hotdeals-title-premium {
  background: linear-gradient(135deg, #ffffff 0%, #ffd9d9 55%, #ff8080 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #ffffff;
  text-shadow: 0 2px 24px rgba(220, 53, 69, 0.25);
}

.hotdeals-subtitle-premium {
  color: rgba(255, 226, 226, 0.72);
}

.hotdeals-stat-card {
  position: relative;
  padding: 0.9rem 0.5rem 0.85rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 100, 100, 0.22);
  backdrop-filter: blur(6px);
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
.hotdeals-stat-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255, 100, 100, 0.5);
  background: rgba(255, 255, 255, 0.08);
}
.hotdeals-stat-icon {
  color: #ff6b6b;
  font-size: 1.1rem;
  display: block;
  margin-bottom: 0.35rem;
}
.hotdeals-stat-value {
  color: #ffffff;
  font-weight: 900;
  font-size: 1.15rem;
  line-height: 1.1;
}
.hotdeals-stat-label {
  color: rgba(255, 210, 210, 0.65);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  margin-top: 0.2rem;
}

@media (max-width: 576px) {
  .hotdeals-title-premium { font-size: 1.85rem !important; }
}

/* ==========================================================================
   Catalog Hero — premium version of the flat blue gradient banner on the
   Catalog page. Adds layered navy/royal-blue gradient, soft blue glow,
   floating outline icons, a glowing badge, and glassmorphism stat cards
   (matching the Hot Deals hero treatment but in the catalog's blue palette).
   ========================================================================== */
.catalog-hero-premium {
  background:
    radial-gradient(ellipse 800px 450px at 50% -10%, rgba(59, 130, 246, 0.32) 0%, transparent 62%),
    linear-gradient(155deg, #060b1c 0%, #0f1f3d 45%, #050a16 100%);
  border: 1px solid rgba(96, 165, 250, 0.25);
  box-shadow: 0 20px 45px rgba(2, 6, 23, 0.5), 0 0 0 1px rgba(96, 165, 250, 0.05) inset;
}
.catalog-hero-glow {
  position: absolute;
  top: -35%;
  right: -15%;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(96, 165, 250, 0.24) 0%, transparent 70%);
  pointer-events: none;
}
.catalog-hero-orbit {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  opacity: 0.08;
}
.catalog-hero-orbit i {
  position: absolute;
  color: #93c5fd;
  font-size: 3.5rem;
}
.catalog-hero-orbit i:nth-child(1) { left: 4%; top: 14%; font-size: 2.3rem; transform: rotate(-10deg); }
.catalog-hero-orbit i:nth-child(2) { right: 6%; top: 18%; font-size: 4.2rem; transform: rotate(8deg); }
.catalog-hero-orbit i:nth-child(3) { left: 46%; bottom: -16%; font-size: 5.2rem; transform: rotate(-6deg); }

.catalog-hero-badge {
  background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
  color: #fff;
  box-shadow: 0 4px 18px rgba(59, 130, 246, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;
}

.catalog-hero-title {
  position: relative;
  background: linear-gradient(135deg, #ffffff 0%, #dbeafe 55%, #93c5fd 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #ffffff;
  text-shadow: 0 2px 24px rgba(59, 130, 246, 0.25);
}

.catalog-hero-text {
  position: relative;
  color: rgba(226, 232, 255, 0.72);
}
.catalog-hero-text a {
  color: #fbbf24;
}

.catalog-hero-stat {
  position: relative;
  padding: 0.9rem 0.5rem 0.85rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(147, 197, 253, 0.25);
  backdrop-filter: blur(6px);
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
.catalog-hero-stat:hover {
  transform: translateY(-3px);
  border-color: rgba(147, 197, 253, 0.55);
  background: rgba(255, 255, 255, 0.1);
}
.catalog-hero-stat-icon {
  color: #fbbf24;
  font-size: 1.1rem;
  display: block;
  margin-bottom: 0.35rem;
}
.catalog-hero-stat-value {
  color: #ffffff;
  font-weight: 900;
  font-size: 1.15rem;
  line-height: 1.1;
}
.catalog-hero-stat-label {
  color: rgba(219, 234, 254, 0.65);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  margin-top: 0.2rem;
}

@media (max-width: 576px) {
  .catalog-hero-title { font-size: 1.6rem !important; }
}

/* ==========================================================================
   Home hero alignment
   ========================================================================== */
.hero-home {
  text-align: center;
}

.hero-home-content {
  width: 100%;
  max-width: 980px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-home-content h1,
.hero-home-content p,
.hero-home-content .row,
.hero-home-content .d-flex {
  margin-left: auto !important;
  margin-right: auto !important;
}

.hero-home-content h1,
.hero-home-content p {
  text-align: center !important;
}

.hero-home-content .row {
  width: 100%;
}

.hero-home-content .d-flex {
  align-items: center;
  justify-content: center;
}

@media (max-width: 575.98px) {
  .hero-home-content {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  .hero-home-content h1 {
    font-size: clamp(2rem, 10vw, 3.25rem);
    line-height: 1.05;
  }

  .hero-home-content p {
    font-size: 1rem;
  }
}

/* Homepage buyer guide: touch-friendly horizontal cards with restrained
   controls. The track remains usable with swipe, mouse wheel and keyboard. */
.nv-home-seo-hub {
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%) !important;
}
.nv-carousel-wrap { padding: 0 2.75rem; position: relative; }
.nv-carousel {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: var(--nv-gold) #e2e8f0;
  padding: .25rem .2rem 1rem;
  -webkit-overflow-scrolling: touch;
}
.nv-carousel::-webkit-scrollbar { height: 7px; }
.nv-carousel::-webkit-scrollbar-track { background: #e2e8f0; border-radius: 999px; }
.nv-carousel::-webkit-scrollbar-thumb { background: var(--nv-gold); border-radius: 999px; }
.nv-carousel-card {
  flex: 0 0 min(100%, 360px);
  min-height: 360px;
  display: flex;
  flex-direction: column;
  scroll-snap-align: start;
  position: relative;
  border: 1px solid #e2e8f0 !important;
}
.nv-carousel-card p { flex: 1; }
.nv-card-number { position:absolute; right:1.25rem; top:1rem; font-size:2.8rem; line-height:1; font-weight:900; color:#f1f5f9; }
.nv-card-icon { font-size:2rem; position:relative; z-index:1; }
.nv-carousel-btn {
  position:absolute; top:46%; transform:translateY(-50%); z-index:2;
  width:44px; height:44px; border:1px solid #cbd5e1; border-radius:50%;
  background:#fff; color:var(--nv-dark-bg); box-shadow:0 8px 20px rgba(2,6,23,.12);
  transition:transform .2s ease, background .2s ease, border-color .2s ease;
}
.nv-carousel-btn:hover { transform:translateY(-50%) scale(1.06); background:var(--nv-gold); border-color:var(--nv-gold); }
.nv-carousel-prev { left:0; }
.nv-carousel-next { right:0; }
.nv-editorial-box { box-shadow:0 18px 40px rgba(2,6,23,.16); }
.nv-checklist-box { border-color:#e2e8f0 !important; }
.nv-model-card { background:linear-gradient(145deg,#111c32 0%,#020617 100%); border:1px solid rgba(234,179,8,.24); min-height:270px; }
.nv-model-card p { color:#94a3b8 !important; }
.nv-model-card a:hover { color:#fff !important; }

/* Wholesale timeline */
.nv-timeline { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.75rem; position:relative; }
.nv-timeline::before { content:''; position:absolute; top:24px; left:8%; right:8%; height:2px; background:linear-gradient(90deg,var(--nv-gold),#cbd5e1,var(--nv-gold)); z-index:0; }
.nv-timeline-item { position:relative; z-index:1; text-align:center; }
.nv-timeline-dot { width:48px; height:48px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:var(--nv-dark-bg); color:var(--nv-gold); border:3px solid var(--nv-gold); font-size:.75rem; font-weight:900; box-shadow:0 0 0 6px #eef2f7; }
.nv-timeline-card { margin-top:1rem; min-height:150px; padding:1rem; text-align:left; background:#fff; border:1px solid #e2e8f0; border-radius:14px; box-shadow:0 8px 20px rgba(2,6,23,.05); }
.nv-timeline-card h4 { color:var(--nv-dark-bg); }

@media (max-width:767.98px) {
  .nv-carousel-wrap { padding:0 .25rem; }
  .nv-carousel-btn { display:none; }
  .nv-carousel-card { flex-basis:min(88vw,340px); min-height:390px; }
  .nv-timeline { display:block; padding-left:1rem; }
  .nv-timeline::before { top:0; bottom:0; left:24px; right:auto; width:2px; height:auto; background:linear-gradient(180deg,var(--nv-gold),#cbd5e1,var(--nv-gold)); }
  .nv-timeline-item { display:grid; grid-template-columns:48px 1fr; gap:1rem; text-align:left; margin-bottom:1rem; align-items:start; }
  .nv-timeline-dot { grid-column:1; grid-row:1; }
  .nv-timeline-card { grid-column:2; grid-row:1; margin-top:0; min-height:0; }
}

/* ========================================================================
   Catalog post-list buyer guide
   ======================================================================== */
.nv-catalog-guide {
  position: relative;
}
.nv-catalog-guide-hero {
  background:
    radial-gradient(ellipse 700px 320px at 90% 0%, rgba(59, 130, 246, 0.28) 0%, transparent 68%),
    linear-gradient(145deg, #061126 0%, #0f2446 52%, #020617 100%);
  border: 1px solid rgba(96, 165, 250, 0.28);
  box-shadow: 0 20px 45px rgba(2, 6, 23, 0.18);
}
.nv-catalog-guide-glow {
  position: absolute;
  width: 360px;
  height: 360px;
  right: -100px;
  top: -180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(234, 179, 8, 0.16) 0%, transparent 70%);
  pointer-events: none;
}
.nv-catalog-info-card {
  border-color: #e2e8f0 !important;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.nv-catalog-info-card:hover {
  transform: translateY(-5px);
  border-color: rgba(234, 179, 8, .55) !important;
  box-shadow: 0 16px 30px rgba(2, 6, 23, .10) !important;
}
.nv-catalog-icon {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  font-size: 1.3rem;
  margin-bottom: 1.25rem;
}
.nv-catalog-model-card {
  background:
    radial-gradient(circle at 100% 0%, rgba(234, 179, 8, .12), transparent 42%),
    linear-gradient(145deg, #111c32 0%, #020617 100%) !important;
  border: 1px solid rgba(234, 179, 8, .24) !important;
}
.nv-catalog-model-card p,
.nv-catalog-editorial p {
  color: #94a3b8 !important;
}
.nv-catalog-model-card a:hover,
.nv-catalog-editorial a:hover,
.nv-range-card a:hover {
  color: #fff !important;
}
.nv-catalog-editorial {
  background:
    radial-gradient(ellipse 540px 360px at 0% 0%, rgba(234, 179, 8, .13), transparent 68%),
    linear-gradient(145deg, #111c32 0%, #020617 100%);
  box-shadow: 0 18px 38px rgba(2, 6, 23, .18);
}
.nv-catalog-checklist {
  border-color: #e2e8f0 !important;
}
.nv-range-card {
  min-height: 300px;
  background:
    radial-gradient(circle at 100% 0%, rgba(96, 165, 250, 0.22) 0%, transparent 42%),
    linear-gradient(145deg, #12356a 0%, #0b2348 52%, #06142d 100%) !important;
  border: 1px solid rgba(147, 197, 253, 0.38) !important;
  color: #ffffff;
  box-shadow: 0 16px 32px rgba(2, 6, 23, 0.16) !important;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.nv-range-card:hover {
  transform: translateY(-5px);
  border-color: rgba(251, 191, 36, 0.75) !important;
  box-shadow: 0 20px 38px rgba(2, 6, 23, 0.25) !important;
}
.nv-range-card h3 {
  color: #ffffff !important;
}
.nv-range-card p {
  flex: 1;
  color: rgba(226, 232, 240, 0.82) !important;
}
.nv-range-card a {
  color: #fbbf24 !important;
}
.nv-range-card a:hover {
  color: #fde68a !important;
}
.nv-catalog-timeline .nv-timeline-card {
  min-height: 165px;
}

.nv-catalog-ops {
  position: relative;
  background:
    radial-gradient(ellipse 760px 360px at 12% 0%, rgba(59, 130, 246, .28) 0%, transparent 65%),
    radial-gradient(ellipse 560px 320px at 100% 100%, rgba(14, 165, 233, .18) 0%, transparent 68%),
    linear-gradient(145deg, #071630 0%, #0d2d5c 48%, #041126 100%);
  border: 1px solid rgba(96, 165, 250, .34);
  box-shadow: 0 22px 46px rgba(2, 6, 23, .2);
}
.nv-catalog-ops::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px);
  background-size: 24px 24px;
  opacity: .45;
  pointer-events: none;
}
.nv-catalog-ops > .container-xl { position: relative; z-index: 1; }
.nv-ops-card {
  position: relative;
  overflow: hidden;
  background: linear-gradient(155deg, rgba(30, 64, 115, .76) 0%, rgba(5, 20, 45, .92) 100%);
  border: 1px solid rgba(147, 197, 253, .28);
  box-shadow: 0 12px 26px rgba(2, 6, 23, .16);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.nv-ops-card::after {
  content: '';
  position: absolute;
  width: 180px;
  height: 180px;
  right: -90px;
  top: -90px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(96, 165, 250, .24), transparent 70%);
  pointer-events: none;
}
.nv-ops-card:hover {
  transform: translateY(-5px);
  border-color: rgba(251, 191, 36, .7);
  box-shadow: 0 18px 34px rgba(2, 6, 23, .28), 0 0 0 1px rgba(251, 191, 36, .08) inset;
}
.nv-ops-card h3,
.nv-ops-card p,
.nv-ops-card span,
.nv-ops-card .nv-ops-card-icon { position: relative; z-index: 1; }
.nv-ops-card-icon {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  border-radius: 14px;
  color: var(--nv-gold);
  background: linear-gradient(135deg, rgba(251, 191, 36, .2), rgba(59, 130, 246, .16));
  border: 1px solid rgba(251, 191, 36, .34);
  font-size: 1.3rem;
}
.nv-ops-layer-card {
  min-height: 285px;
  background:
    radial-gradient(circle at 100% 0%, rgba(96, 165, 250, .2), transparent 42%),
    linear-gradient(145deg, #12396f 0%, #061630 100%) !important;
  border: 1px solid rgba(147, 197, 253, .34) !important;
  box-shadow: 0 14px 28px rgba(2, 6, 23, .2) !important;
}
.nv-ops-layer-card p { color: rgba(226, 232, 240, .78) !important; }
.nv-ops-layer-card .nv-card-number { color: rgba(191, 219, 254, .18); }
.nv-ops-layer-card a { color: #fbbf24 !important; }
.nv-ops-layer-card a:hover { color: #fde68a !important; }
.nv-ops-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  position: relative;
  padding-top: .5rem;
}
.nv-ops-steps::before {
  content: '';
  position: absolute;
  top: 22px;
  left: 10%;
  right: 10%;
  height: 2px;
  background: linear-gradient(90deg, var(--nv-gold), rgba(147, 197, 253, .5), var(--nv-gold));
}
.nv-ops-step {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .2rem;
  color: #fff;
  text-align: center;
}
.nv-ops-step span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #071630;
  border: 2px solid var(--nv-gold);
  color: var(--nv-gold);
  box-shadow: 0 0 0 5px #0d2d5c;
  font-weight: 900;
}
.nv-ops-step strong { margin-top: .45rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.nv-ops-step small { color: rgba(226, 232, 240, .62); font-size: .7rem; }
@media (max-width: 767.98px) {
  .nv-catalog-ops { border-radius: 1.25rem !important; }
  .nv-catalog-ops h2 { font-size: 1.55rem; line-height: 1.12; }
  .nv-ops-card { min-height: 0; }
  .nv-ops-layer-card { min-height: 350px; }
  .nv-ops-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 2rem; }
  .nv-ops-steps::before { top: 22px; bottom: 22px; left: 25%; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--nv-gold), rgba(147, 197, 253, .5), var(--nv-gold)); }
}

@media (max-width: 767.98px) {
  .nv-catalog-guide-hero {
    padding: 1.5rem !important;
  }
  .nv-catalog-guide-hero h2 {
    font-size: 1.65rem;
    line-height: 1.1;
  }
  .nv-catalog-timeline .nv-timeline-card {
    min-height: 0;
  }
  .nv-range-card {
    min-height: 380px;
  }
}

/* ========================================================================
   Multi-product wholesale quote list
   ======================================================================== */
#quote-cart-modal {
  max-height: min(92vh, 860px);
  overflow: hidden;
}
#quote-cart-modal.quote-cart-fallback-open {
  display: block;
  position: fixed;
  inset: 4vh 1rem auto;
  z-index: 2000;
  margin: 0 auto;
  max-width: 760px;
  width: calc(100% - 2rem);
  max-height: 92vh;
  background: #fff;
}
#quote-cart-modal.quote-cart-fallback-open::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  background: rgba(2, 6, 23, .75);
  backdrop-filter: blur(8px);
}
@media (max-width: 575.98px) {
  #quote-cart-modal.quote-cart-fallback-open {
    inset: 2vh .5rem auto;
    width: calc(100% - 1rem);
  }
}
#quote-cart-modal > div {
  max-height: min(92vh, 860px);
  overflow-y: auto;
}
.quote-cart-items {
  display: grid;
  gap: .75rem;
}
.quote-cart-item {
  display: flex;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(2, 6, 23, .05);
}
.quote-cart-item-media {
  width: 76px;
  height: 76px;
  flex: 0 0 76px;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.quote-cart-item-media img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.quote-cart-item-main { min-width: 0; flex: 1; }
.quote-cart-remove { min-width: 32px; min-height: 32px; }
.quote-cart-summary {
  padding: .9rem 1rem;
  border-radius: 12px;
  background: rgba(234, 179, 8, .10);
  border: 1px solid rgba(234, 179, 8, .35);
}
#quote-cart-trigger { min-height: 44px; white-space: nowrap; }
#quote-cart-trigger:focus-visible,
[data-cart-add]:focus-visible,
.quote-cart-item button:focus-visible {
  outline: 3px solid rgba(234, 179, 8, .45);
  outline-offset: 2px;
}
[data-cart-add].btn-success { background: #198754 !important; border-color: #198754 !important; }

@media (max-width: 575.98px) {
  #quote-cart-modal { width: calc(100% - 1rem); margin: .5rem auto; }
  .quote-cart-item { gap: .7rem; padding: .8rem; }
  .quote-cart-item-media { width: 58px; height: 58px; flex-basis: 58px; }
  .quote-cart-item-main h4 { font-size: .85rem; }
  #quote-cart-trigger span[data-i18n="cart.open"] { display: none; }
}
