:root {
    --nj-black: #121212;
    --nj-charcoal: #1c1c1e;
    --nj-charcoal-light: #26262a;
    --nj-gold: #c9a34d;
    --nj-cream: #f5f0e6;
    --nj-rose-gold: #b76e79;
    --nj-diamond-blue: #7ec8e3;
    --nj-cream-muted: rgba(245, 240, 230, 0.62);
}

body.nj-body {
    background-color: var(--nj-black);
    color: var(--nj-cream);
    font-family: 'Jost', sans-serif;
}

h1, h2, h3, h4, .nj-logo {
    font-family: 'Cormorant Garamond', serif;
}

.nj-header {
    background-color: var(--nj-charcoal);
    border-bottom: 1px solid rgba(201, 163, 77, 0.25);
}

.nj-logo {
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--nj-gold);
    text-decoration: none;
    letter-spacing: 0.05em;
}

.nj-nav a {
    color: var(--nj-cream);
    text-decoration: none;
    font-size: 0.95rem;
    letter-spacing: 0.03em;
}

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

.nj-icons a {
    color: var(--nj-cream);
    text-decoration: none;
}

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

.nj-cart-badge {
    position: absolute; top: -8px; right: -10px; background: var(--nj-gold); color: var(--nj-black);
    font-size: 0.65rem; font-weight: 700; line-height: 1; padding: 3px 5px; border-radius: 50%;
}

.nj-hero {
    padding: 6rem 0;
    text-align: center;
}

.nj-hero h1 {
    font-size: 3rem;
    color: var(--nj-gold);
}

.nj-footer {
    background-color: var(--nj-charcoal);
    border-top: 1px solid rgba(201, 163, 77, 0.25);
    color: var(--nj-cream);
}

.nj-status-ok {
    color: #6fbf73;
}

.nj-status-fail {
    color: #d9534f;
}

.nj-auth {
    min-height: 60vh;
}

.nj-auth .form-control {
    background-color: var(--nj-charcoal);
    border-color: rgba(201, 163, 77, 0.35);
    color: var(--nj-cream);
}

.nj-auth .form-control:focus {
    background-color: var(--nj-charcoal);
    color: var(--nj-cream);
    border-color: var(--nj-gold);
    box-shadow: 0 0 0 0.2rem rgba(201, 163, 77, 0.25);
}

.nj-auth .form-label {
    color: var(--nj-cream);
}

.nj-btn-gold {
    background-color: var(--nj-gold);
    border-color: var(--nj-gold);
    color: var(--nj-black);
    font-weight: 600;
}

.nj-btn-gold:hover {
    background-color: #b8923f;
    border-color: #b8923f;
    color: var(--nj-black);
}

.nj-btn-outline-gold {
    background: transparent;
    border: 1px solid var(--nj-gold);
    color: var(--nj-gold);
    font-weight: 500;
}

.nj-btn-outline-gold:hover {
    background: var(--nj-gold);
    color: var(--nj-black);
}

.text-nj-gold { color: var(--nj-gold) !important; }
.text-nj-cream-muted { color: var(--nj-cream-muted) !important; }
.bg-nj-charcoal { background-color: var(--nj-charcoal) !important; }

/* ---------- Header ---------- */

.nj-header { z-index: 1030; }

.nj-nav-toggle { color: var(--nj-cream); border: 1px solid rgba(201, 163, 77, 0.35); }

.nj-offcanvas { background-color: var(--nj-charcoal); color: var(--nj-cream); }
.nj-offcanvas a { color: var(--nj-cream); text-decoration: none; }
.nj-offcanvas a:hover { color: var(--nj-gold); }

/* ---------- Section scaffolding ---------- */

.nj-section { padding: 4.5rem 0; }
.nj-section-alt { background-color: var(--nj-charcoal); }

.nj-section-head { text-align: center; margin-bottom: 2.5rem; }
.nj-section-head .nj-eyebrow {
    color: var(--nj-gold); text-transform: uppercase; letter-spacing: 0.2em; font-size: 0.75rem;
}
.nj-section-head h2 { font-size: 2.4rem; color: var(--nj-cream); margin: 0.4rem 0; }
.nj-section-head p { color: var(--nj-cream-muted); max-width: 560px; margin: 0 auto; }

/* ---------- Hero ---------- */

.nj-hero-swiper { position: relative; }
.nj-hero-slide {
    min-height: 60vh; display: flex; align-items: center; background-size: cover; background-position: center;
    background-color: var(--nj-charcoal);
}
.nj-hero-slide::before {
    content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,18,18,0.85) 0%, rgba(18,18,18,0.35) 60%, rgba(18,18,18,0.1) 100%);
}
.nj-hero-slide .container { position: relative; z-index: 1; }
.nj-hero-slide h1 { font-size: 3.2rem; color: var(--nj-cream); max-width: 640px; }
.nj-hero-slide p.lead { color: var(--nj-cream-muted); max-width: 520px; }
.nj-hero-swiper .swiper-pagination-bullet { background: var(--nj-cream); opacity: 0.5; }
.nj-hero-swiper .swiper-pagination-bullet-active { background: var(--nj-gold); opacity: 1; }
.nj-hero-fallback { padding: 6rem 0; text-align: center; }
.nj-hero-fallback h1 { font-size: 3rem; color: var(--nj-gold); }

/* ---------- Shop by category ---------- */

.nj-cat-tile {
    display: block; position: relative; border-radius: 10px; overflow: hidden; text-decoration: none;
    background: var(--nj-charcoal-light); border: 1px solid rgba(201, 163, 77, 0.18); padding: 2rem 1rem;
    text-align: center; transition: transform 0.25s ease, border-color 0.25s ease;
}
.nj-cat-tile:hover { transform: translateY(-4px); border-color: var(--nj-gold); }
.nj-cat-tile i { font-size: 1.9rem; color: var(--nj-gold); margin-bottom: 0.75rem; display: block; }
.nj-cat-tile span { color: var(--nj-cream); font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; }

/* ---------- Product card ---------- */

.nj-product-card {
    background: var(--nj-charcoal-light); border: 1px solid rgba(201, 163, 77, 0.14); border-radius: 10px;
    overflow: hidden; height: 100%; transition: border-color 0.25s ease, transform 0.25s ease;
}
.nj-product-card:hover { border-color: var(--nj-gold); transform: translateY(-3px); }
.nj-product-card .nj-product-media {
    position: relative; aspect-ratio: 1 / 1; background: var(--nj-charcoal);
    display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.nj-product-card .nj-product-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nj-product-card .nj-product-media .nj-media-fallback {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    color: rgba(201, 163, 77, 0.35); font-size: 2.5rem;
}
.nj-product-badges { position: absolute; top: 0.6rem; left: 0.6rem; display: flex; flex-direction: column; gap: 0.3rem; }
.nj-badge { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.25rem 0.55rem; border-radius: 3px; font-weight: 600; }
.nj-badge-gold { background: var(--nj-gold); color: var(--nj-black); }
.nj-badge-rose { background: var(--nj-rose-gold); color: #fff; }
.nj-badge-blue { background: var(--nj-diamond-blue); color: var(--nj-black); }
.nj-product-quick-actions {
    position: absolute; top: 0.6rem; right: 0.6rem; display: flex; flex-direction: column; gap: 0.4rem;
    opacity: 0; transform: translateX(6px); transition: opacity 0.2s ease, transform 0.2s ease;
}
.nj-product-card:hover .nj-product-quick-actions { opacity: 1; transform: translateX(0); }
.nj-product-quick-actions button, .nj-product-quick-actions a {
    width: 34px; height: 34px; border-radius: 50%; border: none; background: rgba(18,18,18,0.75); color: var(--nj-cream);
    display: flex; align-items: center; justify-content: center; font-size: 0.85rem; text-decoration: none;
}
.nj-product-quick-actions button:hover, .nj-product-quick-actions a:hover { background: var(--nj-gold); color: var(--nj-black); }
.nj-product-body { padding: 1rem 1.1rem 1.2rem; }
.nj-product-cat { color: var(--nj-cream-muted); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; }
.nj-product-name { color: var(--nj-cream); font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; margin: 0.2rem 0 0.4rem; }
.nj-product-name a { color: inherit; text-decoration: none; }
.nj-product-name a:hover { color: var(--nj-gold); }
.nj-product-price { color: var(--nj-gold); font-weight: 600; }
.nj-product-price .nj-price-from { color: var(--nj-cream-muted); font-size: 0.75rem; font-weight: 400; text-transform: uppercase; margin-right: 0.3rem; }

.nj-rail-swiper { padding-bottom: 0.5rem; }
.nj-rail-swiper .swiper-slide { height: auto; }
.nj-rail-nav-btn {
    width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(201, 163, 77, 0.4); background: transparent;
    color: var(--nj-gold);
}
.nj-rail-nav-btn:hover { background: var(--nj-gold); color: var(--nj-black); }

/* ---------- Collections ---------- */

.nj-collection-banner {
    position: relative; border-radius: 12px; overflow: hidden; min-height: 220px; display: flex; align-items: flex-end;
    background: linear-gradient(135deg, var(--nj-charcoal-light), var(--nj-charcoal)); padding: 1.75rem; text-decoration: none;
}
.nj-collection-banner h3 { color: var(--nj-cream); margin-bottom: 0.25rem; }
.nj-collection-banner span { color: var(--nj-gold); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.08em; }

/* ---------- Trust badges / why choose us ---------- */

.nj-trust-item { text-align: center; padding: 1.5rem 1rem; }
.nj-trust-item i { font-size: 2rem; color: var(--nj-gold); margin-bottom: 0.9rem; display: block; }
.nj-trust-item h5 { color: var(--nj-cream); }
.nj-trust-item p { color: var(--nj-cream-muted); font-size: 0.9rem; }

/* ---------- Reviews ---------- */

.nj-review-card {
    background: var(--nj-charcoal); border: 1px solid rgba(201, 163, 77, 0.16); border-radius: 10px; padding: 1.75rem; height: 100%;
}
.nj-review-stars { color: var(--nj-gold); font-size: 0.85rem; margin-bottom: 0.6rem; }
.nj-review-card p.nj-review-comment { color: var(--nj-cream); font-style: italic; }
.nj-review-meta { color: var(--nj-cream-muted); font-size: 0.85rem; margin-top: 1rem; }

/* ---------- Instagram gallery ---------- */

.nj-insta-tile { aspect-ratio: 1/1; overflow: hidden; border-radius: 6px; display: block; }
.nj-insta-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.nj-insta-tile:hover img { transform: scale(1.06); }

/* ---------- Newsletter ---------- */

.nj-newsletter { background: linear-gradient(135deg, var(--nj-charcoal-light), var(--nj-black)); border-radius: 14px; padding: 3rem; text-align: center; }
.nj-newsletter form { max-width: 440px; margin: 1.5rem auto 0; }

/* ---------- Footer ---------- */

.nj-footer-links li { margin-bottom: 0.5rem; }
.nj-footer-links a { color: var(--nj-cream-muted); text-decoration: none; font-size: 0.9rem; }
.nj-footer-links a:hover { color: var(--nj-gold); }
.nj-social a { color: var(--nj-cream); font-size: 1.1rem; }
.nj-social a:hover { color: var(--nj-gold); }

/* ---------- Breadcrumb ---------- */

.nj-breadcrumb { padding: 1.25rem 0; }
.nj-breadcrumb a { color: var(--nj-cream-muted); text-decoration: none; font-size: 0.85rem; }
.nj-breadcrumb a:hover { color: var(--nj-gold); }
.nj-breadcrumb .active { color: var(--nj-gold); font-size: 0.85rem; }

/* ---------- Category listing ---------- */

.nj-filters { background: var(--nj-charcoal-light); border: 1px solid rgba(201, 163, 77, 0.16); border-radius: 10px; padding: 1.5rem; }
.nj-filters h6 { color: var(--nj-gold); text-transform: uppercase; font-size: 0.78rem; letter-spacing: 0.08em; margin: 1.1rem 0 0.6rem; }
.nj-filters h6:first-child { margin-top: 0; }
.nj-filter-check { color: var(--nj-cream-muted); font-size: 0.9rem; }
.nj-filter-check input:checked ~ label,
.nj-filter-check .form-check-input:checked + .form-check-label { color: var(--nj-cream); }
.nj-swatch-row { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.nj-swatch {
    width: 30px; height: 30px; border-radius: 50%; border: 2px solid rgba(201,163,77,0.3); cursor: pointer; position: relative;
}
.nj-swatch.active, .nj-swatch:hover { border-color: var(--nj-gold); }
.nj-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; }
.nj-toolbar .form-select { background-color: var(--nj-charcoal-light); color: var(--nj-cream); border-color: rgba(201,163,77,0.3); width: auto; }
.nj-empty-state { text-align: center; padding: 4rem 1rem; color: var(--nj-cream-muted); }
.nj-empty-state i { font-size: 2.5rem; color: var(--nj-gold); margin-bottom: 1rem; display: block; }

.nj-pagination .page-link {
    background-color: var(--nj-charcoal-light); border-color: rgba(201,163,77,0.25); color: var(--nj-cream);
}
.nj-pagination .page-item.active .page-link { background-color: var(--nj-gold); border-color: var(--nj-gold); color: var(--nj-black); }
.nj-pagination .page-item.disabled .page-link { background-color: var(--nj-charcoal); color: var(--nj-cream-muted); }

/* ---------- Product detail page ---------- */

.nj-pdp-gallery { position: relative; }
.nj-pdp-main .swiper-slide { display: flex; align-items: center; justify-content: center; background: var(--nj-charcoal-light); aspect-ratio: 1/1; border-radius: 10px; overflow: hidden; }
.nj-pdp-main .swiper-slide img { width: 100%; height: 100%; object-fit: cover; }
.nj-pdp-thumbs { margin-top: 0.75rem; }
.nj-pdp-thumbs .swiper-slide { aspect-ratio: 1/1; border-radius: 6px; overflow: hidden; opacity: 0.55; cursor: pointer; border: 1px solid rgba(201,163,77,0.2); }
.nj-pdp-thumbs .swiper-slide-thumb-active { opacity: 1; border-color: var(--nj-gold); }
.nj-pdp-thumbs .swiper-slide img { width: 100%; height: 100%; object-fit: cover; }
.nj-pdp-media-fallback { aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; background: var(--nj-charcoal-light); border-radius: 10px; color: rgba(201,163,77,0.35); font-size: 4rem; }

.nj-pdp-title { font-size: 2.2rem; color: var(--nj-cream); }
.nj-pdp-brand { color: var(--nj-cream-muted); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.06em; }
.nj-pdp-rating { color: var(--nj-gold); font-size: 0.9rem; }
.nj-pdp-short-desc { color: var(--nj-cream-muted); }

.nj-spec-group { margin-bottom: 1.5rem; }
.nj-spec-group.nj-spec-hidden { display: none; }
.nj-spec-label { color: var(--nj-cream); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.4rem; }
.nj-spec-label .nj-required { color: var(--nj-rose-gold); font-size: 0.75rem; }
.nj-spec-options { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.nj-spec-btn {
    border: 1px solid rgba(201,163,77,0.35); background: var(--nj-charcoal-light); color: var(--nj-cream);
    padding: 0.45rem 0.9rem; border-radius: 6px; font-size: 0.9rem; cursor: pointer; transition: all 0.2s ease;
}
.nj-spec-btn:hover { border-color: var(--nj-gold); }
.nj-spec-btn.active { background: var(--nj-gold); border-color: var(--nj-gold); color: var(--nj-black); font-weight: 600; }
.nj-spec-btn.nj-value-hidden { display: none; }
.nj-spec-btn:disabled, .nj-spec-btn.nj-value-disabled { opacity: 0.35; cursor: not-allowed; }
.nj-spec-swatch.nj-spec-btn { width: 38px; height: 38px; border-radius: 50%; padding: 0; }
.nj-spec-swatch.active { box-shadow: 0 0 0 2px var(--nj-gold); }

.nj-price-box { background: var(--nj-charcoal-light); border: 1px solid rgba(201,163,77,0.2); border-radius: 10px; padding: 1.5rem; }
.nj-price-main { font-size: 2rem; color: var(--nj-gold); font-weight: 600; }
.nj-price-strike { color: var(--nj-cream-muted); text-decoration: line-through; font-size: 1.1rem; margin-right: 0.6rem; }
.nj-price-estimated-note { color: var(--nj-diamond-blue); font-size: 0.8rem; }
.nj-price-breakdown { font-size: 0.85rem; color: var(--nj-cream-muted); margin-top: 0.75rem; }
.nj-price-breakdown div { display: flex; justify-content: space-between; padding: 0.15rem 0; }
.nj-price-breakdown .nj-breakdown-total { color: var(--nj-cream); font-weight: 600; border-top: 1px solid rgba(201,163,77,0.2); margin-top: 0.4rem; padding-top: 0.5rem; }
.nj-stock-badge { font-size: 0.8rem; padding: 0.3rem 0.7rem; border-radius: 4px; }
.nj-stock-in { background: rgba(111, 191, 115, 0.15); color: #6fbf73; }
.nj-stock-low { background: rgba(201, 163, 77, 0.15); color: var(--nj-gold); }
.nj-stock-out { background: rgba(217, 83, 79, 0.15); color: #d9534f; }
.nj-meta-list { font-size: 0.85rem; color: var(--nj-cream-muted); }
.nj-meta-list dt { color: var(--nj-cream); float: left; width: 40%; }
.nj-meta-list dd { margin-left: 40%; margin-bottom: 0.4rem; }
.nj-emi-note { font-size: 0.8rem; color: var(--nj-cream-muted); border-left: 2px solid var(--nj-gold); padding-left: 0.6rem; }

.nj-pdp-actions .btn { padding: 0.7rem 1.5rem; }

.nj-pdp-tabs .nav-link { color: var(--nj-cream-muted); border: none; border-bottom: 2px solid transparent; background: transparent; }
.nj-pdp-tabs .nav-link.active { color: var(--nj-gold); border-bottom-color: var(--nj-gold); background: transparent; }
.nj-pdp-tab-content { padding: 2rem 0; color: var(--nj-cream-muted); }
.nj-spec-table { width: 100%; }
.nj-spec-table tr { border-bottom: 1px solid rgba(201,163,77,0.12); }
.nj-spec-table td { padding: 0.55rem 0.5rem; color: var(--nj-cream-muted); }
.nj-spec-table td:first-child { color: var(--nj-cream); width: 40%; }

/* Choices.js dark theme */
.choices__inner { background-color: var(--nj-charcoal-light) !important; border-color: rgba(201,163,77,0.35) !important; color: var(--nj-cream) !important; }
.choices__list--dropdown, .choices__list[aria-expanded] { background-color: var(--nj-charcoal-light) !important; border-color: rgba(201,163,77,0.35) !important; }
.choices__list--dropdown .choices__item--selectable, .choices__list[aria-expanded] .choices__item--selectable { color: var(--nj-cream) !important; }
.choices__list--dropdown .choices__item--selectable.is-highlighted { background-color: var(--nj-gold) !important; color: var(--nj-black) !important; }
.choices__input { background-color: transparent !important; color: var(--nj-cream) !important; }

/* ---------- Cart ---------- */

.nj-cart-line {
    display: flex; gap: 1rem; align-items: center; padding: 1rem; margin-bottom: 0.9rem;
    background: var(--nj-charcoal-light); border: 1px solid rgba(201,163,77,0.14); border-radius: 10px;
}
.nj-cart-line-media { width: 84px; height: 84px; flex: 0 0 auto; position: relative; background: var(--nj-charcoal); border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.nj-cart-line-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nj-cart-line-media .nj-media-fallback { position: relative; color: rgba(201,163,77,0.35); font-size: 1.5rem; }
.nj-cart-line-body { flex: 1 1 auto; min-width: 0; }
.nj-cart-line-name { color: var(--nj-cream); font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; text-decoration: none; }
.nj-cart-line-name:hover { color: var(--nj-gold); }
.nj-cart-line-price { color: var(--nj-gold); font-weight: 600; white-space: nowrap; }
.nj-qty-stepper { display: inline-flex; align-items: center; border: 1px solid rgba(201,163,77,0.35); border-radius: 6px; overflow: hidden; }
.nj-qty-stepper button { width: 30px; height: 30px; border: none; background: var(--nj-charcoal); color: var(--nj-cream); }
.nj-qty-stepper button:hover { background: var(--nj-gold); color: var(--nj-black); }
.nj-qty-input { width: 46px; text-align: center; border: none; border-left: 1px solid rgba(201,163,77,0.2); border-right: 1px solid rgba(201,163,77,0.2); background: var(--nj-charcoal); color: var(--nj-cream); height: 30px; }
.nj-cart-remove { color: var(--nj-cream-muted); border: 1px solid rgba(201,163,77,0.25); }
.nj-cart-remove:hover { color: #d9534f; border-color: #d9534f; }

/* ---------- Address / payment options ---------- */

.nj-address-option { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.7rem 0; border-bottom: 1px solid rgba(201,163,77,0.1); cursor: pointer; }
.nj-address-option:last-child { border-bottom: none; }
.nj-address-option input { margin-top: 0.3rem; }
.nj-payment-disabled { opacity: 0.5; cursor: not-allowed; }

/* ---------- Account ---------- */

.nj-account-nav { background: var(--nj-charcoal-light); border: 1px solid rgba(201,163,77,0.16); border-radius: 10px; padding: 0.75rem; display: flex; flex-direction: column; }
.nj-account-nav a { color: var(--nj-cream-muted); text-decoration: none; padding: 0.6rem 0.75rem; border-radius: 6px; font-size: 0.92rem; }
.nj-account-nav a:hover { color: var(--nj-cream); }
.nj-account-nav a.active { color: var(--nj-black); background: var(--nj-gold); font-weight: 600; }

.nj-order-row {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-decoration: none;
    background: var(--nj-charcoal-light); border: 1px solid rgba(201,163,77,0.14); border-radius: 10px;
    padding: 1rem 1.25rem; margin-bottom: 0.85rem; transition: border-color 0.2s ease;
}
.nj-order-row:hover { border-color: var(--nj-gold); }

.nj-timeline { list-style: none; padding: 0; margin: 0; border-left: 2px solid rgba(201,163,77,0.3); }
.nj-timeline li { padding: 0 0 1rem 1.1rem; position: relative; }
.nj-timeline li::before { content: ''; position: absolute; left: -6px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--nj-gold); }

.nj-star-rating { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 0.2rem; }
.nj-star-rating input { display: none; }
.nj-star-rating label { color: rgba(201,163,77,0.3); cursor: pointer; font-size: 1.3rem; }
.nj-star-rating input:checked ~ label,
.nj-star-rating label:hover,
.nj-star-rating label:hover ~ label { color: var(--nj-gold); }

@media (max-width: 991.98px) {
    .nj-hero-slide h1 { font-size: 2.2rem; }
    .nj-section { padding: 3rem 0; }
}
