/*
 * Nahang Shell 0.5.7 — Stage C4B5
 * Authoritative native WooCommerce Single Product presentation.
 * Loaded after Theme cascade and after Nahang PC Core has had a chance to enqueue.
 * Core's legacy `nahang-core-ui` is dequeued only on is_product().
 */

body.nahang-wc-single-template{
  --nws-page:var(--managed-light-bg,#f5f7fb);
  --nws-surface:var(--managed-light-surface,#fff);
  --nws-surface-soft:#f3f6f9;
  --nws-text:var(--managed-light-text,#0b1726);
  --nws-muted:#5e6c7e;
  --nws-line:rgba(71,85,105,.18);
  --nws-line-strong:rgba(71,85,105,.30);
  --nws-shadow:0 18px 52px rgba(15,23,42,.09);
  --nws-silver-start:#fcfdfe;
  --nws-silver-mid:#e8edf2;
  --nws-silver-end:#c3ccd6;
  --nws-silver-text:#08111b;
  --nws-focus:#92c9ff;
  background:var(--nws-page)!important;
  color:var(--nws-text)!important;
  color-scheme:light;
}

html[data-theme="dark"] body.nahang-wc-single-template,
body[data-theme="dark"].nahang-wc-single-template{
  --nws-page:var(--managed-dark-bg,#05070b);
  --nws-surface:var(--managed-dark-surface,#0d1420);
  --nws-surface-soft:#111b27;
  --nws-text:var(--managed-dark-text,#f5f7fb);
  --nws-muted:#c3cfdb;
  --nws-line:rgba(226,232,240,.14);
  --nws-line-strong:rgba(226,232,240,.24);
  --nws-shadow:0 22px 58px rgba(0,0,0,.30);
  --nws-focus:#9ed2ff;
  background:var(--nws-page)!important;
  color:var(--nws-text)!important;
  color-scheme:dark;
}

body.nahang-wc-single-template .nahang-wc-single-main{
  position:relative;
  width:100%;
  min-width:0;
  margin:0;
  padding:clamp(18px,3vw,38px) 0 calc(118px + env(safe-area-inset-bottom));
  background:var(--nws-page)!important;
  color:var(--nws-text)!important;
  overflow:clip;
}

body.nahang-wc-single-template .nahang-wc-single-shell{
  width:min(1180px,calc(100% - 32px));
  max-width:1180px;
  min-width:0;
  margin-inline:auto;
}

body.nahang-wc-single-template .nahang-wc-single-shell .woocommerce,
body.nahang-wc-single-template .nahang-wc-single-shell .woocommerce-page{
  width:100%;
  max-width:100%;
  min-width:0;
  color:var(--nws-text)!important;
}

body.nahang-wc-single-template .woocommerce div.product{
  display:grid!important;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;
  grid-template-areas:
    "gallery summary"
    "tabs tabs";
  align-items:start!important;
  gap:clamp(24px,3vw,42px)!important;
  width:100%!important;
  max-width:1180px!important;
  min-width:0!important;
  margin:0 auto!important;
  padding:clamp(18px,2.5vw,30px)!important;
  border:1px solid var(--nws-line)!important;
  border-radius:28px!important;
  background:var(--nws-surface)!important;
  color:var(--nws-text)!important;
  box-shadow:var(--nws-shadow)!important;
  overflow:visible!important;
}

body.nahang-wc-single-template .woocommerce div.product::before,
body.nahang-wc-single-template .woocommerce div.product::after{
  display:none!important;
}

body.nahang-wc-single-template .woocommerce div.product > div.images{
  grid-area:gallery;
}
body.nahang-wc-single-template .woocommerce div.product > div.summary{
  grid-area:summary;
}
body.nahang-wc-single-template .woocommerce div.product > .woocommerce-tabs{
  grid-area:tabs;
}

body.nahang-wc-single-template .woocommerce div.product > div.images,
body.nahang-wc-single-template .woocommerce div.product > div.summary,
body.nahang-wc-single-template .woocommerce div.product > .woocommerce-tabs{
  float:none!important;
  clear:both!important;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--nws-text)!important;
  box-shadow:none!important;
}

/* Gallery */
body.nahang-wc-single-template .woocommerce div.product div.images{
  padding:0!important;
  overflow:hidden!important;
}
body.nahang-wc-single-template .woocommerce div.product div.images .woocommerce-product-gallery,
body.nahang-wc-single-template .woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
body.nahang-wc-single-template .woocommerce div.product div.images .woocommerce-product-gallery__image{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
}
body.nahang-wc-single-template .woocommerce div.product div.images img{
  display:block!important;
  width:100%!important;
  max-width:520px!important;
  height:auto!important;
  max-height:520px!important;
  aspect-ratio:1/1!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0 auto!important;
  border:1px solid var(--nws-line)!important;
  border-radius:22px!important;
  background:var(--nws-surface-soft)!important;
  box-shadow:none!important;
}
body.nahang-wc-single-template .woocommerce div.product div.images .woocommerce-product-gallery__trigger{
  display:grid!important;
  place-items:center!important;
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  top:14px!important;
  right:14px!important;
  left:auto!important;
  border:1px solid var(--nws-line-strong)!important;
  border-radius:999px!important;
  background:var(--nws-surface)!important;
  color:var(--nws-text)!important;
  box-shadow:0 8px 22px rgba(15,23,42,.10)!important;
}

/* Sale badge: silver, not teal. */
body.nahang-wc-single-template .woocommerce span.onsale{
  min-width:auto!important;
  min-height:auto!important;
  top:10px!important;
  right:10px!important;
  left:auto!important;
  padding:8px 12px!important;
  border:1px solid rgba(94,107,124,.34)!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,var(--nws-silver-start),var(--nws-silver-mid) 52%,var(--nws-silver-end))!important;
  color:var(--nws-silver-text)!important;
  -webkit-text-fill-color:var(--nws-silver-text)!important;
  font-size:12px!important;
  font-weight:850!important;
  line-height:1!important;
  box-shadow:0 10px 24px rgba(15,23,42,.14),0 0 16px rgba(255,255,255,.56)!important;
}

/* Summary */
body.nahang-wc-single-template .woocommerce div.product > div.summary{
  display:flex!important;
  flex-direction:column!important;
  align-self:stretch!important;
  justify-content:center!important;
  gap:12px!important;
  padding:clamp(4px,1vw,12px)!important;
  overflow:visible!important;
}
body.nahang-wc-single-template .woocommerce div.product > div.summary > *{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-inline:0!important;
}
body.nahang-wc-single-template .woocommerce div.product .product_title{
  margin:0 0 4px!important;
  padding:0!important;
  color:var(--nws-text)!important;
  font-size:clamp(28px,3.15vw,38px)!important;
  font-weight:850!important;
  line-height:1.28!important;
  letter-spacing:-.018em!important;
  overflow:visible!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  text-align:start!important;
  text-wrap:balance;
}
body.nahang-wc-single-template .woocommerce div.product :where(p.price,span.price){
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:baseline!important;
  justify-content:flex-start!important;
  gap:3px 10px!important;
  width:100%!important;
  margin:0 0 2px!important;
  padding:0!important;
  color:var(--nws-text)!important;
  font-size:clamp(18px,2vw,22px)!important;
  line-height:1.6!important;
  overflow:visible!important;
}
body.nahang-wc-single-template .woocommerce div.product .price :where(del,ins,.amount){
  max-width:100%!important;
  white-space:nowrap!important;
}
body.nahang-wc-single-template .woocommerce div.product .price ins{
  order:1!important;
  color:var(--nws-text)!important;
  font-weight:850!important;
  text-decoration-color:currentColor!important;
  text-decoration-thickness:1px!important;
}
body.nahang-wc-single-template .woocommerce div.product .price del{
  order:2!important;
  color:var(--nws-muted)!important;
  font-size:.78em!important;
  opacity:.72!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-product-details__short-description,
body.nahang-wc-single-template .woocommerce div.product .woocommerce-product-details__short-description :where(p,li){
  margin:0!important;
  padding:0!important;
  color:var(--nws-muted)!important;
  font-size:15px!important;
  line-height:1.9!important;
  overflow:visible!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  text-align:start!important;
}

/* Cart controls — approved silver system. */
body.nahang-wc-single-template .woocommerce div.product form.cart{
  display:grid!important;
  grid-template-columns:70px minmax(0,1fr)!important;
  align-items:stretch!important;
  gap:10px!important;
  width:100%!important;
  max-width:460px!important;
  margin:8px 0 2px!important;
  padding:0!important;
}
body.nahang-wc-single-template .woocommerce .quantity,
body.nahang-wc-single-template .woocommerce .quantity .qty{
  width:70px!important;
  max-width:70px!important;
}
body.nahang-wc-single-template .woocommerce .quantity .qty{
  min-height:48px!important;
  padding:7px 5px!important;
  border:1px solid var(--nws-line-strong)!important;
  border-radius:14px!important;
  background:var(--nws-surface-soft)!important;
  color:var(--nws-text)!important;
  -webkit-text-fill-color:var(--nws-text)!important;
  box-shadow:0 7px 20px rgba(15,23,42,.06)!important;
  text-align:center!important;
}
body.nahang-wc-single-template .woocommerce div.product form.cart .single_add_to_cart_button,
body.nahang-wc-single-template .woocommerce div.product form.cart button.single_add_to_cart_button.button,
body.nahang-wc-single-template .woocommerce div.product form.cart button.single_add_to_cart_button.button.alt{
  width:100%!important;
  min-width:0!important;
  min-height:48px!important;
  margin:0!important;
  padding:10px 18px!important;
  border:1px solid rgba(94,107,124,.38)!important;
  border-radius:15px!important;
  background:linear-gradient(135deg,var(--nws-silver-start) 0%,var(--nws-silver-mid) 50%,var(--nws-silver-end) 100%)!important;
  color:var(--nws-silver-text)!important;
  -webkit-text-fill-color:var(--nws-silver-text)!important;
  font-size:15px!important;
  font-weight:850!important;
  line-height:1.4!important;
  text-shadow:0 1px 0 rgba(255,255,255,.74)!important;
  box-shadow:0 12px 28px rgba(31,41,55,.16),0 0 18px rgba(255,255,255,.58)!important;
  filter:none!important;
}
body.nahang-wc-single-template .woocommerce div.product form.cart .single_add_to_cart_button:hover{
  background:linear-gradient(135deg,#fff 0%,#edf1f5 46%,#b8c2ce 100%)!important;
  color:#050a11!important;
  transform:translateY(-1px);
}
body.nahang-wc-single-template .woocommerce div.product form.cart .single_add_to_cart_button:focus-visible,
body.nahang-wc-single-template .woocommerce .quantity .qty:focus-visible,
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs li a:focus-visible{
  outline:3px solid color-mix(in srgb,var(--nws-focus),transparent 35%)!important;
  outline-offset:3px!important;
}

body.nahang-wc-single-template .woocommerce div.product .product_meta{
  margin:8px 0 0!important;
  padding:13px 0 0!important;
  border-top:1px solid var(--nws-line)!important;
  color:var(--nws-muted)!important;
  font-size:13px!important;
  line-height:1.8!important;
  overflow-wrap:anywhere!important;
}
body.nahang-wc-single-template .woocommerce div.product .product_meta a{
  color:var(--nws-text)!important;
  text-decoration-color:var(--nws-line-strong)!important;
}

/* Tabs and description */
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:4px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--nws-text)!important;
  overflow:visible!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  width:100%!important;
  margin:0 0 14px!important;
  padding:0!important;
  border:0!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs::before,
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs::after{
  display:none!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs li{
  display:block!important;
  flex:0 1 auto!important;
  margin:0!important;
  padding:0!important;
  border:1px solid var(--nws-line)!important;
  border-radius:12px!important;
  background:var(--nws-surface-soft)!important;
  color:var(--nws-muted)!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs li::after{
  display:none!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:block!important;
  padding:10px 14px!important;
  color:inherit!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:1.4!important;
  text-decoration:none!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs li.active{
  border-color:rgba(94,107,124,.34)!important;
  background:linear-gradient(135deg,var(--nws-silver-start),var(--nws-silver-mid) 52%,var(--nws-silver-end))!important;
  color:var(--nws-silver-text)!important;
  box-shadow:0 8px 22px rgba(15,23,42,.10),0 0 14px rgba(255,255,255,.44)!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs .panel{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:clamp(18px,2.5vw,28px)!important;
  border:1px solid var(--nws-line)!important;
  border-radius:18px!important;
  background:var(--nws-surface-soft)!important;
  color:var(--nws-text)!important;
  box-shadow:none!important;
  overflow:visible!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs .panel h2{
  margin:0 0 12px!important;
  padding:0!important;
  color:var(--nws-text)!important;
  font-size:clamp(24px,3vw,32px)!important;
  font-weight:850!important;
  line-height:1.4!important;
  letter-spacing:-.012em!important;
  overflow-wrap:anywhere!important;
}
body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs .panel :where(p,li,td,th){
  color:var(--nws-muted)!important;
  font-size:14.5px!important;
  line-height:1.9!important;
  overflow-wrap:anywhere!important;
}

/* Related/upsells stay in the same visual contract. */
body.nahang-wc-single-template .woocommerce div.product :where(.related.products,.upsells.products){
  grid-column:1/-1!important;
  width:100%!important;
  max-width:100%!important;
  margin:10px 0 0!important;
}
body.nahang-wc-single-template .woocommerce div.product :where(.related.products,.upsells.products) > h2{
  color:var(--nws-text)!important;
  font-size:clamp(24px,3vw,32px)!important;
  line-height:1.4!important;
}

/* Tablet: use one column deliberately; avoids the pseudo-desktop squeezed layout. */
@media (max-width:1099px){
  body.nahang-wc-single-template .nahang-wc-single-shell{
    width:min(760px,calc(100% - 28px));
  }
  body.nahang-wc-single-template .woocommerce div.product{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:"gallery" "summary" "tabs"!important;
    gap:18px!important;
    max-width:760px!important;
  }
  body.nahang-wc-single-template .woocommerce div.product div.images img{
    max-width:560px!important;
    max-height:560px!important;
  }
  body.nahang-wc-single-template .woocommerce div.product > div.summary{
    justify-content:flex-start!important;
  }
}

@media (max-width:767px){
  body.nahang-wc-single-template .nahang-wc-single-main{
    padding-top:10px!important;
    padding-bottom:calc(108px + env(safe-area-inset-bottom))!important;
  }
  body.nahang-wc-single-template .nahang-wc-single-shell{
    width:calc(100% - 16px)!important;
    max-width:100%!important;
  }
  body.nahang-wc-single-template .woocommerce div.product{
    gap:14px!important;
    padding:9px!important;
    border-radius:22px!important;
  }
  body.nahang-wc-single-template .woocommerce div.product div.images img{
    max-width:100%!important;
    max-height:min(72vh,420px)!important;
    border-radius:18px!important;
  }
  body.nahang-wc-single-template .woocommerce div.product > div.summary{
    gap:10px!important;
    padding:14px 10px 10px!important;
  }
  body.nahang-wc-single-template .woocommerce div.product .product_title{
    font-size:clamp(23px,6.6vw,29px)!important;
    line-height:1.35!important;
  }
  body.nahang-wc-single-template .woocommerce div.product :where(p.price,span.price){
    justify-content:flex-start!important;
    font-size:clamp(17px,4.8vw,20px)!important;
  }
  body.nahang-wc-single-template .woocommerce div.product .woocommerce-product-details__short-description,
  body.nahang-wc-single-template .woocommerce div.product .woocommerce-product-details__short-description :where(p,li){
    font-size:14px!important;
    line-height:1.85!important;
  }
  body.nahang-wc-single-template .woocommerce div.product form.cart{
    grid-template-columns:64px minmax(0,1fr)!important;
    gap:8px!important;
    max-width:100%!important;
  }
  body.nahang-wc-single-template .woocommerce .quantity,
  body.nahang-wc-single-template .woocommerce .quantity .qty{
    width:64px!important;
    max-width:64px!important;
  }
  body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs{
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
    padding-bottom:2px!important;
  }
  body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar{
    display:none;
  }
  body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs ul.tabs li{
    flex:0 0 auto!important;
  }
  body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs .panel{
    padding:17px 13px!important;
    border-radius:15px!important;
  }
  body.nahang-wc-single-template .woocommerce div.product .woocommerce-tabs .panel h2{
    font-size:clamp(22px,6vw,27px)!important;
  }
}

@media (max-width:390px){
  body.nahang-wc-single-template .nahang-wc-single-shell{
    width:calc(100% - 12px)!important;
  }
  body.nahang-wc-single-template .woocommerce div.product{
    padding:7px!important;
    border-radius:20px!important;
  }
  body.nahang-wc-single-template .woocommerce div.product .product_title{
    font-size:clamp(21px,6.4vw,26px)!important;
  }
  body.nahang-wc-single-template .woocommerce div.product form.cart{
    grid-template-columns:60px minmax(0,1fr)!important;
  }
  body.nahang-wc-single-template .woocommerce .quantity,
  body.nahang-wc-single-template .woocommerce .quantity .qty{
    width:60px!important;
    max-width:60px!important;
  }
}

@media (prefers-reduced-motion:reduce){
  body.nahang-wc-single-template .woocommerce div.product form.cart .single_add_to_cart_button{
    transition:none!important;
    transform:none!important;
  }
}
