/* Product-only layout; Nacre Cosmos fonts, colour tokens and Product Cards are reused. */
.nc-product-page { max-width:1320px; padding:64px 32px 100px; margin:0 auto; }
body.single-product .nc-product-page div.product { position:relative; display:grid; grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr); gap:56px 64px; align-items:start; }
body.single-product .nc-product-page div.product::before,body.single-product .nc-product-page div.product::after { display:none; }
body.single-product .nc-product-page div.product div.images,body.single-product .nc-product-page div.product div.summary { float:none; width:100%; min-width:0; margin:0; }
body.single-product .nc-product-page div.product div.images { grid-column:1; grid-row:1; }
body.single-product .nc-product-page div.product div.summary { grid-column:2; grid-row:1; }
.nc-product-page .woocommerce-product-gallery__wrapper { margin:0; }
.nc-product-page .woocommerce-product-gallery__image { background:var(--paper-muted); }
.nc-product-page .woocommerce-product-gallery__image img { max-width:100%; }
body.single-product .nc-product-page div.product div.images .flex-control-thumbs { display:flex; gap:12px; margin-top:16px; padding:0; }
body.single-product .nc-product-page div.product div.images .flex-control-thumbs li { float:none; width:76px; margin:0; border:1px solid var(--hairline); }
body.single-product .nc-product-page div.product div.images .flex-control-thumbs li img { aspect-ratio:1; object-fit:cover; }
body.single-product .nc-product-page div.product div.images .woocommerce-product-gallery__trigger { z-index:5; }
.nc-product-page .back-link { display:inline-flex; margin-bottom:24px; font-size:12px; color:var(--text-muted); }
.nc-product-collection { font-size:11px; color:var(--text-muted); letter-spacing:.1em; margin:0 0 14px; }
body.single-product .nc-product-page .product_title { font-family:var(--display); font-weight:400; font-size:clamp(32px,3.6vw,48px); line-height:1.18; margin:0 0 18px; }
.nc-product-rating { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:24px; font-size:12px; color:var(--text-muted); }
.nc-product-rating .star-rating { float:none; }
body.single-product .nc-product-page div.product p.price,body.single-product .nc-product-page div.product span.price { color:var(--text); font-size:24px; margin:0 0 26px; font-weight:400; }
body.single-product .nc-product-page div.product p.price ins { background:none; text-decoration:none; font-weight:400; }
.nc-product-page .woocommerce-product-details__short-description { font-size:14px; line-height:1.85; color:var(--text-muted); margin-bottom:28px; }
.nc-product-page .woocommerce-product-details__short-description p { margin:0 0 12px; }
body.single-product .nc-product-page div.product .stock { font-size:12px; color:var(--text-muted); }
body.single-product .nc-product-page div.product form.cart { margin:16px 0 24px; display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
body.single-product .nc-product-page div.product form.variations_form.cart,body.single-product .nc-product-page div.product form.grouped_form { display:block; }
.nc-product-page .single_variation_wrap .woocommerce-variation-add-to-cart { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
body.single-product .nc-product-page div.product form.cart div.quantity { display:flex; align-items:center; float:none; margin:0; border:1px solid var(--hairline); }
.nc-product-page .quantity .qty { width:48px; height:50px; padding:0; border:0; background:var(--paper); appearance:textfield; -moz-appearance:textfield; font-size:13px; }
.nc-product-page .quantity .qty::-webkit-inner-spin-button,.nc-product-page .quantity .qty::-webkit-outer-spin-button { appearance:none; margin:0; }
.nc-quantity-button { width:32px; height:50px; border:0; background:var(--paper); color:var(--text-muted); font-size:18px; }
body.single-product .nc-product-page .single_add_to_cart_button,body.single-product .nc-product-page #review_form #respond input.submit { min-height:52px; padding:0 28px; border:1px solid var(--ink); border-radius:2px; background:var(--ink); color:#fff; font-family:var(--sans); font-size:12px; font-weight:600; float:none; }
body.single-product .nc-product-page .single_add_to_cart_button:hover,body.single-product .nc-product-page #review_form #respond input.submit:hover { background:var(--ink-soft); color:#fff; }
body.single-product .nc-product-page .single_add_to_cart_button:disabled { opacity:.45; cursor:not-allowed; }
.nc-product-page .variations select { min-height:44px; border:1px solid var(--hairline); background:var(--paper); padding:8px; width:100%; }
.nacre-swatches-row { display:none !important; }
.nacre-variation-picker { margin:0 0 22px; }
.nacre-variation-group + .nacre-variation-group { margin-top:26px; }
.nacre-variation-group > h3 { margin:0 0 12px; color:var(--text); font:500 10px/1.4 var(--sans); letter-spacing:.13em; text-transform:uppercase; }
.nacre-swatches { display:grid; grid-template-columns:repeat(auto-fill,minmax(118px,1fr)); gap:12px; margin:0; }
.nacre-swatch { position:relative; display:flex; flex-direction:column; gap:8px; min-width:0; padding:6px; border:1px solid var(--hairline); border-radius:2px; background:var(--paper); color:var(--text-muted); font-family:var(--sans); font-size:10px; text-align:left; cursor:pointer; transition:border-color .2s,box-shadow .2s,opacity .2s; }
.nacre-swatch img { display:block; width:100%; aspect-ratio:1; object-fit:cover; background:var(--paper-muted); }
.nacre-swatch-copy { display:block; min-width:0; padding:0 3px 4px; line-height:1.4; }
.nacre-swatch-copy strong { display:block; color:var(--text); font-size:9px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; }
.nacre-swatch-copy small { display:block; margin-top:4px; color:var(--text-muted); font-size:10px; line-height:1.45; }
.nacre-swatch[aria-pressed="true"] { border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); color:var(--text); }
.nacre-swatch[aria-pressed="true"]::after { content:""; position:absolute; top:10px; right:10px; width:7px; height:7px; border-radius:50%; background:var(--ink); box-shadow:0 0 0 3px var(--paper); }
.nacre-swatch:disabled,.nacre-swatch.is-sold-out { opacity:.52; cursor:not-allowed; }
.nacre-swatch-stock { position:absolute; inset:auto 6px 48px; padding:5px 7px; background:rgba(15,14,12,.86); color:#fff; font-size:8px; font-weight:600; letter-spacing:.09em; text-align:center; text-transform:uppercase; }
.nacre-selection-status { margin:14px 0 0; color:var(--text-faint); font-size:11px; line-height:1.6; }
.nacre-selection-status.is-complete { color:var(--text); }
.nacre-swatch:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.nc-product-page .nc-product-purchase-notes { border-top:1px solid var(--hairline); padding-top:18px; }
.nc-wishlist-pending { border:0; background:none; color:var(--text-muted); padding:0; font-size:13px; cursor:not-allowed; }
.nc-product-purchase-notes span { margin-left:10px; font-size:10px; color:var(--text-faint); }
.nc-product-purchase-notes p { margin:18px 0 0; color:var(--text-muted); font-size:12px; line-height:1.7; max-width:440px; }
body.single-product .nc-product-page div.product .woocommerce-tabs { grid-column:1/-1; clear:none; margin:8px 0 0; min-width:0; }
body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs { display:flex; gap:36px; align-items:center; margin:0 0 32px; padding:0; border-bottom:1px solid var(--hairline); overflow-x:auto; scrollbar-width:thin; }
body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs::before,body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs li::before,body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs li::after { display:none; }
body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs li { flex:none; padding:0; margin:0; border:0; border-bottom:2px solid transparent; border-radius:0; background:none; white-space:nowrap; }
body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs li.active { background:none; border-bottom-color:var(--text); }
body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs li a { padding:20px 0; font-size:12px; font-weight:500; letter-spacing:.07em; color:var(--text-muted); }
body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs li.active a { color:var(--text); }
.nc-product-page .wc-tab { font-size:14px; line-height:1.85; color:var(--text-muted); margin:0; }
.nc-product-page .wc-tab > p { max-width:840px; }
.nc-product-page .wc-tab a:not(.star-1):not(.star-2):not(.star-3):not(.star-4):not(.star-5) { text-underline-offset:4px; }
.nc-product-page .woocommerce-product-attributes { max-width:850px; border-collapse:collapse; }
.nc-product-page .woocommerce-product-attributes th,.nc-product-page .woocommerce-product-attributes td { border:0; border-bottom:1px solid var(--hairline); background:none!important; padding:14px 18px; font-weight:400; font-style:normal; text-align:left; }
.nc-product-facts { margin:0; max-width:850px; }
.nc-product-facts > div { display:grid; grid-template-columns:160px 1fr; gap:20px; padding:14px 0; border-bottom:1px solid var(--hairline); }
.nc-product-facts dd { margin:0; color:var(--text); }
.nc-product-care-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 64px; }
.nc-product-care-grid h3 { font-weight:500; font-size:15px; color:var(--text); margin:0 0 12px; }
.nc-product-care-grid p { margin:0 0 12px; }
.nc-product-care-grid a { font-size:12px; text-decoration:underline; }
.nc-product-page #reviews { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; }
.nc-product-page #reviews .clear { display:none; }
.nc-product-page #reviews h2 { font-family:var(--display); font-weight:400; font-size:26px; color:var(--text); margin:0 0 18px; }
.nc-product-page .comment-reply-title { font-family:var(--display); font-weight:400; font-size:23px; color:var(--text); display:block; margin-bottom:18px; }
.nc-product-page #review_form input:not([type=submit]):not([type=checkbox]),.nc-product-page #review_form textarea { width:100%; border:1px solid var(--hairline); border-radius:0; padding:12px; font-size:14px; background:var(--paper); color:var(--text); }
.nc-product-page #review_form label { display:block; font-size:12px; margin-bottom:8px; }
.nc-product-page #reviews .commentlist { padding:0; }
.nc-product-page #reviews .commentlist li .comment-text { border-color:var(--hairline); }
.nc-product-page #review_form .stars { margin-top:12px; }
.nc-product-luodian { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; padding:56px 0; border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
.nc-product-luodian img { width:100%; aspect-ratio:1.65; object-fit:cover; }
.nc-product-luodian h2 { font-family:var(--display); font-size:clamp(28px,3vw,38px); font-weight:400; line-height:1.3; margin:16px 0 20px; }
.nc-product-luodian p { color:var(--text-muted); font-size:14px; line-height:1.85; max-width:420px; }
.nc-product-luodian a { display:inline-block; font-size:12px; margin-top:12px; border-bottom:1px solid var(--text-muted); padding-bottom:4px; }
.nc-product-related { grid-column:1/-1; min-width:0; }
.nc-product-related > h2 { font-family:var(--display); font-size:32px; font-weight:400; margin:0 0 28px; }
.nc-product-related .product-price { font-size:13px; }
.nc-product-related .product-price ins { text-decoration:none; background:none; }
body.single-product .nc-product-page .onsale { min-width:0; min-height:0; line-height:1.5; border-radius:0; padding:6px 12px; background:var(--ink); font-size:11px; top:12px; left:12px; }
@media(max-width:1000px) {
  body.single-product .nc-product-page div.product { gap:40px; }
  .nc-product-page { padding:48px 24px 72px; }
}
@media(max-width:760px) {
  body.single-product .nc-product-page div.product { display:block; }
  body.single-product .nc-product-page div.product div.images { margin-bottom:36px; }
  .nacre-swatches { grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
  .nacre-swatch { padding:4px; }
  .nacre-swatch-copy small { font-size:9px; }
  .nc-product-page .product_title { font-size:34px; }
  .nc-product-page .back-link { margin-bottom:20px; }
  body.single-product .nc-product-page div.product .woocommerce-tabs { margin-top:48px; }
  body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs { gap:24px; }
  body.single-product .nc-product-page div.product .woocommerce-tabs ul.tabs li a { padding:18px 0; font-size:12px; }
  .nc-product-care-grid,.nc-product-page #reviews,.nc-product-luodian { grid-template-columns:1fr; gap:28px; }
  .nc-product-luodian { margin-top:40px; padding:32px 0; }
  .nc-product-related { margin-top:44px; }
  .nc-product-related .product-rail { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .nc-product-related .product-card-body { display:block; padding:16px 12px; }
  .nc-product-related .product-price { display:block; margin-top:12px; }
  .nc-product-related .product-card-body h3 { font-size:17px; }
  .nc-product-facts > div { grid-template-columns:105px 1fr; }
}
@media(max-width:360px) { .nc-product-page { padding:36px 16px 60px; }.nc-product-related .product-rail { grid-template-columns:1fr; } }
