/* Scoped styling keeps Woodmart, Elementor and checkout pages untouched. */
body.single-product:has(#npjp-product) { background: #09090e; }
#npjp-product { --np-purple:#a83fe1; --np-violet:#6848ef; --np-muted:#aaa8bd; color:#f9f8ff; background:#09090e; min-height:80vh; font-family:inherit; padding:38px 0 100px; }
#npjp-product *, #npjp-product *::before, #npjp-product *::after { box-sizing:border-box; }
#npjp-product .npjp-shell { max-width:1330px; margin:auto; padding:0 28px; }
#npjp-product .npjp-grid { display:grid; grid-template-columns:minmax(0,1.56fr) minmax(365px,.94fr); gap:64px; align-items:start; }
#npjp-product button { cursor:pointer; }
#npjp-product .npjp-main-image { position:relative; width:100%; overflow:hidden; border-radius:22px; aspect-ratio:1.78; background:#17111f; }
#npjp-product .npjp-main-image a { display:block; width:100%; height:100%; }
#npjp-product .npjp-main-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
#npjp-product .npjp-featured { position:absolute; z-index:1; top:15px; left:16px; background:linear-gradient(100deg,#b143db,#7556fa); border-radius:30px; padding:8px 15px; font-size:10px; line-height:1; font-weight:800; color:white; letter-spacing:.09em; }
#npjp-product .npjp-gallery-heading { display:flex; justify-content:space-between; align-items:center; color:#b4afcb; margin:19px 0 13px; font-weight:600; font-size:14px; }
#npjp-product .npjp-gallery-nav { display:flex; gap:14px; }
#npjp-product .npjp-gallery-nav button { border:0; color:#a3a0b3; background:none; font-size:28px; padding:0 6px; }
#npjp-product .npjp-thumbnails { display:flex; gap:12px; overflow-x:auto; scrollbar-width:thin; padding-bottom:8px; }
#npjp-product .npjp-thumb { padding:0; border:2px solid transparent; border-radius:12px; background:#17151e; min-width:calc((100% - 24px) / 3); width:calc((100% - 24px) / 3); aspect-ratio:1.62; overflow:hidden; flex-shrink:0; opacity:.8; }
#npjp-product .npjp-thumb.is-active { border-color:var(--np-purple); opacity:1; }
#npjp-product .npjp-thumb img { width:100%; height:100%; object-fit:cover; }
#npjp-product .npjp-category, #npjp-product .npjp-category a { color:#d66afa; font-size:13px; font-weight:600; text-decoration:none; }
#npjp-product h1.npjp-title { font-size:clamp(34px,3.4vw,49px); line-height:1.12; font-weight:750; letter-spacing:-1.7px; color:#fff; margin:17px 0 22px; }
#npjp-product .npjp-badge { display:inline-flex; align-items:center; gap:7px; border:1px solid #345543; background:#142219; border-radius:8px; font-size:11px; color:#62d793; padding:5px 11px; font-weight:700; }
#npjp-product .npjp-badge.is-unavailable { color:#fa9d85; background:#2d1a15; border-color:#513025; }
#npjp-product .npjp-badge-dot { width:6px; height:6px; border-radius:50%; background:currentColor; }
#npjp-product .npjp-summary { margin:23px 0; line-height:1.7; color:#b7b4c5; font-size:14px; }
#npjp-product .npjp-purchase { background:#131218; border:1px solid #292630; border-radius:22px; padding:20px; margin-top:32px; }
#npjp-product .npjp-attribute { margin-bottom:15px; }
#npjp-product .npjp-attribute-label { display:block; color:#aaa5c2; letter-spacing:.1em; font-weight:700; font-size:10px; margin:0 0 12px; text-transform:uppercase; }
#npjp-product .npjp-optional { text-transform:none; letter-spacing:0; font-weight:400; opacity:.65; }
#npjp-product .npjp-option-list { display:grid; gap:8px; }
#npjp-product button.npjp-option { border:1px solid #292632; padding:14px 14px; min-height:54px; width:100%; background:#0b0b11; color:white; border-radius:12px; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:14px; font-weight:700; font-size:14px; transition:border-color .15s, background .15s; }
#npjp-product button.npjp-option.is-selected { background:#211728; border-color:#bd61f1; box-shadow:0 0 0 1px rgba(189,97,241,.15); }
#npjp-product .npjp-option-right { display:flex; align-items:center; gap:15px; }
#npjp-product .npjp-option-price { font-size:12px; color:#f3e5ff; white-space:nowrap; }
#npjp-product .npjp-radio { display:block; width:15px; height:15px; border-radius:50%; border:1px solid #54435f; flex-shrink:0; }
#npjp-product .is-selected .npjp-radio { background:#ab45ea; box-shadow:inset 0 0 0 3px #211728; border-color:#bd61f1; }
#npjp-product .npjp-select-wrap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
#npjp-product .npjp-price-line { display:flex; align-items:end; justify-content:space-between; gap:10px; margin:20px 0 17px; }
#npjp-product .npjp-live-price { font-size:31px; line-height:1.2; font-weight:800; color:#fff; }
#npjp-product .npjp-live-price .amount { color:#fff; }
#npjp-product .npjp-live-price del { color:#7a7488; font-size:16px; margin-right:8px; }
#npjp-product .npjp-live-price ins { text-decoration:none; }
#npjp-product .npjp-live-price .price { color:inherit; font-size:inherit; }
#npjp-product .npjp-ready { font-size:11px; color:#61bc8d; white-space:nowrap; padding-bottom:6px; }
#npjp-product .npjp-ready span { display:inline-block; width:6px; height:6px; background:#61bc8d; border-radius:50%; margin-right:7px; }
#npjp-product .npjp-breadcrumbs { margin:0 0 28px; }
#npjp-product .npjp-breadcrumbs .woocommerce-breadcrumb, #npjp-product .npjp-breadcrumbs .woocommerce-breadcrumb a { color:#a7a3bb; font-size:15px; line-height:1.4; text-decoration:none; }
#npjp-product .npjp-breadcrumbs .woocommerce-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
#npjp-product .npjp-breadcrumbs .npjp-breadcrumb-sep { color:#7e7894; display:inline-flex; align-items:center; justify-content:center; }
#npjp-product .npjp-breadcrumbs .woocommerce-breadcrumb > *:last-child { color:#d7d4e5; }
#npjp-product .npjp-controls>label { display:block; color:#a9a4c0; font-size:14px; font-weight:700; margin-bottom:12px; }
#npjp-product .quantity { display:inline-flex; align-items:center; height:48px; border:1px solid #2f2d39; background:#12111a; border-radius:16px; overflow:hidden; margin-bottom:18px; padding:0; }
#npjp-product .quantity .minus, #npjp-product .quantity .plus { width:44px; min-width:44px; height:48px; border:0; background:transparent; color:#8e89a6; font-size:24px; line-height:1; display:flex; align-items:center; justify-content:center; box-shadow:none; border-radius:0; padding:0; }
#npjp-product .quantity .minus:hover, #npjp-product .quantity .plus:hover { color:#fff; background:#181622; }
#npjp-product .quantity .minus { border-right:1px solid #2f2d39; }
#npjp-product .quantity .plus { border-left:1px solid #2f2d39; }
#npjp-product .quantity input.qty { width:44px; min-width:44px; min-height:48px; background:transparent; border:0; box-shadow:none; text-align:center; color:#fff; font-size:22px; font-weight:700; padding:0; appearance:textfield; }
#npjp-product .quantity input::-webkit-inner-spin-button, #npjp-product .quantity input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
#npjp-product .npjp-notice { display:flex; gap:10px; padding:13px 14px; background:#27201a; border:1px solid #78602e; color:#ffde98; border-radius:12px; font-size:12px; line-height:1.6; margin:2px 0 16px; }
#npjp-product .npjp-notice span { font-weight:bold; font-size:18px; }
#npjp-product button.npjp-add, #npjp-product a.npjp-add { width:100%; min-height:47px; padding:12px 18px; display:flex; justify-content:center; align-items:center; gap:10px; border:0; border-radius:12px; background:linear-gradient(110deg,#b33dcc,#6949ed); color:white !important; font-weight:750; font-size:14px; text-align:center; text-decoration:none; box-shadow:none; }
#npjp-product .npjp-buy-now { display:block; width:100%; border:1px solid #6a4c86; margin-top:9px; padding:10px; color:#f5edff; background:transparent; border-radius:12px; font-weight:650; }
#npjp-product button:disabled { opacity:.55; cursor:not-allowed; }
#npjp-product .npjp-trust { font-size:10px; color:#a09bac; text-align:center; margin:14px 0 0; line-height:1.5; }
#npjp-product .npjp-trust span { padding:0 5px; color:#524b62; }
#npjp-product .npjp-description { margin-top:38px; color:#beb8cb; font-size:14px; line-height:1.8; }
#npjp-product .npjp-description h2 { color:white; font-size:23px; border-bottom:1px solid #2c2833; padding-bottom:12px; }
#npjp-product .npjp-specs { overflow-x:auto; margin-top:22px; }
#npjp-product .npjp-specs table, #npjp-product .npjp-specs td, #npjp-product .npjp-specs th { color:#d8d2e0; background:transparent; border-color:#35303d; }
#npjp-product .woocommerce-variation .woocommerce-variation-price { display:none; }
#npjp-product .woocommerce-variation .woocommerce-variation-availability { font-size:12px; color:#d2b4da; }
#npjp-product .reset_variations { display:none !important; }
#npjp-product .woocommerce-error, #npjp-product .woocommerce-message { border-radius:12px; background:#201b2a; color:white; padding:15px; margin-bottom:24px; }
@media(max-width:900px) { #npjp-product .npjp-grid { grid-template-columns:1fr; gap:32px; } #npjp-product .npjp-info { max-width:700px; } #npjp-product { padding-top:24px; } }
@media(max-width:560px) { #npjp-product .npjp-shell { padding:0 15px; } #npjp-product .npjp-breadcrumbs { margin-bottom:20px; } #npjp-product .npjp-breadcrumbs .woocommerce-breadcrumb, #npjp-product .npjp-breadcrumbs .woocommerce-breadcrumb a { font-size:14px; gap:9px; } #npjp-product .npjp-main-image { border-radius:15px; aspect-ratio:1.35; } #npjp-product .npjp-purchase { padding:15px; margin-top:22px; border-radius:16px; } #npjp-product h1.npjp-title { font-size:36px; } #npjp-product .npjp-thumb { min-width:72%; width:72%; } #npjp-product .npjp-ready { font-size:10px; } }

/* 1.1.4 — closer to reference composition, isolated to this template */
body.single-product.npjp-modern-layout-enabled { background:#09090d; }
#npjp-product { background:#09090d; padding:26px 0 90px; color:#f6f5fb; }
#npjp-product .npjp-shell { max-width:1380px; padding:0 32px; }
#npjp-product .npjp-grid { grid-template-columns:minmax(0,1.60fr) minmax(390px,.94fr); gap:62px; }
#npjp-product .npjp-breadcrumbs { margin:2px 0 24px; }
#npjp-product .npjp-breadcrumbs .woocommerce-breadcrumb,
#npjp-product .npjp-breadcrumbs .woocommerce-breadcrumb a { font-size:13px; color:#a3a0af; }
#npjp-product .npjp-breadcrumbs .woocommerce-breadcrumb a:hover { color:#db90ff; }
#npjp-product .npjp-main-image { border-radius:22px; aspect-ratio: 1.76; background:#16111b; }
#npjp-product .npjp-main-image img { object-fit:cover; }
#npjp-product .npjp-featured { top:14px; left:14px; font-size:10px; padding:9px 14px; letter-spacing:.06em; }
#npjp-product .npjp-gallery-heading { margin:22px 0 16px; color:#b2afbe; }
#npjp-product .npjp-thumb { aspect-ratio:1.64; border-radius:12px; }
#npjp-product .npjp-thumbnails { scrollbar-width:none; }
#npjp-product .npjp-thumbnails::-webkit-scrollbar { display:none; }
#npjp-product .npjp-category { margin-top:1px; }
#npjp-product h1.npjp-title { font-size:clamp(36px,3.65vw,50px); letter-spacing:-1.7px; margin:17px 0 20px; line-height:1.08; }
#npjp-product .npjp-badge { border-radius:9px; padding:6px 11px; }
#npjp-product .npjp-purchase { position:sticky; top:24px; background:#121117; border:1px solid #302b37; margin-top:40px; border-radius:22px; padding:22px 20px 20px; box-shadow:0 12px 40px rgba(0,0,0,.08); }
#npjp-product .npjp-attribute { margin-bottom:12px; }
#npjp-product .npjp-attribute-label { color:#aca5c0; letter-spacing:.14em; font-size:10px; margin-bottom:13px; }
#npjp-product .npjp-option-list { gap:8px; }
#npjp-product button.npjp-option { min-height:56px; border-radius:12px; border-color:#2b2834; padding:12px 14px; background:#0c0b11; font-size:14px; }
#npjp-product button.npjp-option:hover { border-color:#74508e; }
#npjp-product button.npjp-option.is-selected { border-color:#b858e6; background:#211827; }
#npjp-product .npjp-option-price { font-size:13px; color:#fff; }
#npjp-product .npjp-radio { width:18px; height:18px; }
#npjp-product .npjp-price-line { margin:24px 0 18px; align-items:baseline; }
#npjp-product .npjp-live-price { font-size:32px; font-weight:800; letter-spacing:-.8px; }
#npjp-product .npjp-ready { font-size:10px; padding:0 0 3px; }
#npjp-product .npjp-controls>label { font-size:12px; color:#aba4be; font-weight:600; margin:0 0 8px; }
#npjp-product .quantity { border-radius:13px; width:134px; height:47px; margin-bottom:16px; background:#0d0c12; border-color:#302d38; }
#npjp-product .quantity input.qty { flex:1 1 auto; width:46px; min-width:0; height:45px; min-height:45px; font-size:14px; font-weight:750; }
#npjp-product .quantity .minus, #npjp-product .quantity .plus { width:42px; min-width:42px; height:45px; border:0; color:#696477; font-size:20px; background:transparent; }
#npjp-product .quantity .minus:hover, #npjp-product .quantity .plus:hover { color:#ede3ff; }
#npjp-product button.npjp-add, #npjp-product a.npjp-add { border-radius:12px; min-height:49px; background:linear-gradient(105deg,#ad40ca,#6949ed); }
#npjp-product button.npjp-add:hover { filter:brightness(1.1); }
#npjp-product .npjp-buy-now { border-color:#58416b; border-radius:12px; min-height:44px; }
#npjp-product .npjp-trust { font-size:10px; color:#9891a9; line-height:1.65; }
#npjp-product .npjp-description { margin-top:42px; }
#npjp-product .npjp-description-content > :first-child { margin-top:0; }
@media (max-width:1100px) {
  #npjp-product .npjp-grid { grid-template-columns:minmax(0,1.25fr) minmax(330px,1fr); gap:32px; }
  #npjp-product .npjp-shell { padding:0 24px; }
}
@media (max-width:900px) {
  #npjp-product .npjp-grid { grid-template-columns:1fr; gap:26px; }
  #npjp-product .npjp-purchase { position:static; margin-top:23px; }
  #npjp-product .npjp-info { max-width:none; }
}
@media (max-width:560px) {
  #npjp-product { padding:16px 0 58px; }
  #npjp-product .npjp-shell { padding:0 16px; }
  #npjp-product .npjp-main-image { aspect-ratio:1.46; border-radius:16px; }
  #npjp-product h1.npjp-title { font-size:36px; }
  #npjp-product .npjp-thumbnails { gap:9px; }
  #npjp-product .npjp-thumb { min-width:60%; width:60%; }
  #npjp-product .npjp-purchase { padding:18px 15px; border-radius:17px; }
  #npjp-product .npjp-live-price { font-size:26px; }
}

/* Product video gallery v1.1.5 */
#npjp-product .npjp-video-stage { position:absolute; inset:0; z-index:3; background:#09090e; }
#npjp-product .npjp-video-stage[hidden], #npjp-product .npjp-play-overlay[hidden], #npjp-product .npjp-main-image a[hidden] { display:none !important; }
#npjp-product .npjp-video-stage video, #npjp-product .npjp-video-stage iframe { display:block; width:100%; height:100%; border:0; object-fit:contain; }
#npjp-product .npjp-play-overlay { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2; width:58px; height:58px; display:grid; place-items:center; border:1px solid #ffffff33; border-radius:50%; background:#1a1427e6; color:#fff; }
#npjp-product .npjp-play-overlay:hover { background:#8035ca; }
#npjp-product .npjp-play-overlay span { font-size:21px; padding-left:3px; }
#npjp-product .npjp-video-thumb { position:relative; }
#npjp-product .npjp-video-thumb-play { position:absolute; inset:0; display:flex; justify-content:center; align-items:center; flex-direction:column; gap:4px; color:#fff; background:#0008; font-size:21px; }
#npjp-product .npjp-video-thumb-play small { font-size:11px; font-weight:700; }

/* v1.1.8 — display the entire product screenshot rather than cropping to fill. */
#npjp-product .npjp-main-image { background:#14131b; }
#npjp-product .npjp-main-image a { display:flex; justify-content:center; align-items:center; }
#npjp-product .npjp-main-image img,
#npjp-product .npjp-main-image a img {
  display:block; width:100%; height:100%; max-width:100%; max-height:100%;
  object-fit:contain !important; object-position:center center;
}
#npjp-product .npjp-thumb { background:#15151e; }
#npjp-product .npjp-thumb img { display:block; width:100%; height:100%; object-fit:contain !important; object-position:center center; }

/* 1.1.9 — Match detection and stock badges on the Status page. */
#npjp-product .npjp-status-badges{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0 18px}
#npjp-product .npjp-status-badges .np-ps-badge,
#npjp-product .npjp-status-badges .np-ps-stock{font-size:11px;font-weight:750;line-height:1.2;display:inline-flex;align-items:center;gap:6px;border-radius:9px;padding:8px 11px;border:1px solid;white-space:nowrap;width:auto}
#npjp-product .npjp-status-badges .np-ps-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor}
#npjp-product .npjp-status-badges .np-ps-green,#npjp-product .npjp-status-badges .np-ps-in{color:#59db9a;background:#0e201b;border-color:#2d6450}
#npjp-product .npjp-status-badges .np-ps-orange{color:#fba04c;background:#261910;border-color:#82502b}
#npjp-product .npjp-status-badges .np-ps-blue{color:#75a9f7;background:#121d30;border-color:#314b78}
#npjp-product .npjp-status-badges .np-ps-red,#npjp-product .npjp-status-badges .np-ps-out{color:#f17983;background:#281519;border-color:#77363b}
#npjp-product .npjp-status-badges .np-ps-gray{color:#b8b5c4;background:#22212b;border-color:#4a4559}

/* 1.2.0: keep the full product photo aligned to the top of the gallery. */
#npjp-product .npjp-main-image > a#npjp-image-link { align-items:flex-start !important; justify-content:center; }
#npjp-product .npjp-main-image #npjp-main-photo { object-fit:contain !important; object-position:center top !important; }
#npjp-product .npjp-media-list { display:flex; flex-wrap:wrap; gap:10px; }
#npjp-product .npjp-media-watch { border:1px solid #68509c; border-radius:10px; background:#261b3a; color:#f5edff; font-size:13px; font-weight:600; padding:11px 15px; cursor:pointer; }
#npjp-product .npjp-media-watch:hover, #npjp-product .npjp-media-watch:focus-visible { background:#623f9e; }
#npjp-product .npjp-media-watch span { color:#d6b8ff; margin-right:7px; }
#npjp-product .npjp-media-section { margin:12px 0 20px; }

/* v1.2.1 — matched gallery/purchase alignment, in-gallery video thumbnail. */
#npjp-product .npjp-grid { align-items:start; }
#npjp-product .npjp-gallery, #npjp-product .npjp-info { min-width:0; margin-top:0; }
#npjp-product .npjp-main-image { display:block; padding:0 !important; margin:0 !important; line-height:0; }
#npjp-product .npjp-main-image > a#npjp-image-link { display:block !important; width:100%; height:100%; }
#npjp-product .npjp-main-image #npjp-main-photo { display:block !important; width:100%; height:100%; object-fit:contain !important; object-position:top center !important; margin:0 !important; padding:0 !important; }
#npjp-product .npjp-thumbnails .npjp-thumb.npjp-video-thumb { position:relative; overflow:hidden; flex-shrink:0; padding:0; border:2px solid #40344f; background:#15131d; cursor:pointer; }
#npjp-product .npjp-thumbnails .npjp-video-thumb.is-active { border-color:#a64be6; }
#npjp-product .npjp-video-thumb .npjp-video-thumb-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:6px; background:linear-gradient(0deg,rgba(10,6,18,.62),rgba(10,6,18,.15)); color:#fff; }
#npjp-product .npjp-video-thumb .npjp-video-play-icon { display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#23132cd9;border:1px solid #ffffff44; font-size:20px;padding-left:3px; }
#npjp-product .npjp-video-thumb small { font-size:11px;letter-spacing:.1em;font-weight:800; }
#npjp-product .npjp-video-thumb img { width:100%;height:100%;object-fit:contain!important; }
#npjp-product .npjp-video-fallback { display:grid;place-items:center;width:100%;height:100%;font-size:14px;color:#ccc; }
#npjp-product .npjp-media-section { display:none!important; }
#npjp-product .npjp-main-image > a#npjp-image-link[hidden] { display:none !important; }

/* v1.2.2: play the configured gallery video from the main product image only. */
#npjp-product .npjp-main-image { position:relative; }
#npjp-product #npjp-main-video-play { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;display:grid;place-items:center;width:66px;height:66px;padding:0;border-radius:50%;border:1px solid #ffffff70;background:#21132ddb;color:#fff;cursor:pointer;line-height:1;box-shadow:0 4px 26px #0008;transition:background .2s,scale .2s; }
#npjp-product #npjp-main-video-play:hover { background:#8138d8;scale:1.08; }
#npjp-product #npjp-main-video-play span { font-size:25px;padding-left:4px; }
#npjp-product #npjp-main-video-play[hidden] { display:none !important; }
#npjp-product .npjp-video-stage { z-index:5; }
