/* Chi tiết sản phẩm: gallery, thông tin, tab nội dung và sản phẩm liên quan. */
.single-product .site-inner { width:calc(100% - 32px); max-width:1200px; }
.single-product .content-sidebar-wrap { margin:36px 0 48px; }
.single-product .single-product-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:40px; }
.single-product .anh_sp,
.single-product .info_sp,
.single-product .sp-gallery-main { min-width:0; }
.single-product .anh_sp { position:sticky; top:var(--product-gallery-top, 81px); align-self:start; }
.single-product .sp-gallery-container.has-thumbs { display:grid; grid-template-columns:76px minmax(0,1fr); align-items:start; gap:12px; }
.single-product .has-thumbs > .sp-gallery-main { grid-column:2; grid-row:1; }
.single-product .sp-gallery-nav-wrap { grid-column:1; grid-row:1; min-width:0; }
.single-product .sp-gallery-main { position:relative; border:1px solid var(--border); border-radius:16px; background:#fff; overflow:hidden; }
.single-product .sp-slider-main { position:relative; z-index:0; }
.single-product .sp-slider-main .slick-list { position:relative; z-index:0; display:block; overflow:hidden; margin:0; padding:0; touch-action:pan-y; }
.single-product .sp-slider-main .slick-track { position:relative; display:block; margin:0 auto; }
.single-product .sp-slider-main .slick-track::after { content:""; display:table; clear:both; }
.single-product .sp-slider-main .slick-slide { display:none; float:left; min-height:1px; }
.single-product .sp-slider-main.slick-initialized .slick-slide { display:block; }
.single-product .sp-slider-main:not(.slick-initialized) .sp-main-slide:not(:first-child) { display:none; }
.single-product .sp-main-slide img { display:block; width:100%; height:auto; aspect-ratio:1; padding:0; object-fit:contain; cursor:zoom-in; }
.single-product .sphot-empty-image { display:flex; align-items:center; justify-content:center; aspect-ratio:1; padding:24px; color:var(--muted); background:var(--light); }
.single-product .sp-slider-nav { display:grid; gap:10px; scrollbar-width:none; }
.single-product .sp-slider-nav::-webkit-scrollbar { display:none; }
.single-product .sp-thumb-slide { padding:4px; border:1px solid var(--border); border-radius:10px; background:#fff; cursor:pointer; }
.single-product .sp-thumb-slide img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.single-product .sp-thumb-slide.is-current { border:2px solid var(--primary); padding:3px; }
.single-product .single-product-badges-overlay { position:absolute; top:14px; left:14px; z-index:2; pointer-events:none; }
.single-product .product-badge { display:inline-block; padding:4px 10px; border-radius:20px; background:var(--accent); color:var(--primary); font-size:13px; font-weight:800; }
.single-product .sp-gallery-expand-btn { display:flex; align-items:center; justify-content:center; width:var(--button-height); height:var(--button-height); padding:0; border:1px solid var(--border); border-radius:50%; background:#fff; color:var(--primary); cursor:pointer; }
.single-product .sp-gallery-expand-btn { position:absolute; right:12px; bottom:12px; z-index:2; }
.single-product .sp-gallery-expand-btn svg { flex:0 0 20px; width:20px; height:20px; }
.single-product .info_sp .entry-title { margin:0 0 14px; color:var(--primary); font-size:32px; line-height:1.3; overflow-wrap:anywhere; }
.single-product .product-stock-status { display:inline-flex; align-items:center; gap:8px; margin:0 0 18px; color:var(--primary); font-size:14px; font-weight:700; }
.single-product .stock-dot { width:8px; height:8px; border-radius:50%; background:currentColor; }
.single-product .product-stock-status.hethang { color:var(--text-muted); }
.single-product .product-stock-status.sapve { padding:3px 10px; border-radius:20px; background:var(--accent); }
.single-product .short-desc-summary { margin:0 0 22px; color:var(--text); font-size:16px; line-height:1.6; overflow-wrap:anywhere; }
.single-product .short-desc-summary ul,
.single-product .short-desc-summary ol { margin:0; padding-left:20px; }
.single-product .short-desc-summary ul { list-style:disc; }
.single-product .short-desc-summary ol { list-style:decimal; }
.single-product .short-desc-summary li { margin:0 0 6px; }
.single-product .short-desc-summary strong { color:var(--ink); font-weight:600; }
.single-product .short-desc-summary p { margin:0 0 10px; }
.single-product .short-desc-summary > :last-child,
.single-product .short-desc-summary li:last-child { margin-bottom:0; }
.single-product .product-price-box { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 14px; margin:0 0 24px; padding:18px 20px; border-radius:12px; background:var(--light); }
.single-product .product-price-box .current-price { color:#ed1010; font-size:30px; font-weight:800; line-height:1.3; }
.single-product .product-price-box .old-price { color:var(--muted); font-size:16px; }
.single-product .discount-badge { padding:3px 8px; border-radius:6px; background:var(--accent); color:var(--primary); font-size:13px; font-weight:700; }
.single-product .product-variants-section { margin:0 0 22px; }
.single-product .variant-label { display:block; margin:0 0 10px; color:var(--ink); }
.single-product .variant-pills-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.single-product .variant-pill,
.single-product .variant-color-pill { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; height:var(--button-height); padding:0 6px; border:1px solid var(--border); border-radius:8px; background:#fff; color:var(--ink); font-family:var(--font-main); font-size:14px; line-height:1.25; cursor:pointer; overflow-wrap:anywhere; }
.single-product .variant-name { font-weight:700; }
.single-product .variant-price { margin-top:2px; color:var(--muted); font-size:13px; }
.single-product .variant-pill.is-active,
.single-product .variant-color-pill.is-active { border-color:var(--primary); background:var(--light); box-shadow:inset 0 0 0 1px var(--primary); color:var(--primary); }
.single-product .product-action-box { margin:24px 0; }
.single-product .product-quantity-row { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-bottom:16px; }
.single-product .product-quantity-row label { margin:0; font-weight:700; }
.single-product .product-quantity-control { display:inline-flex; }
.single-product .product-quantity-control button { display:flex; align-items:center; justify-content:center; width:var(--button-height); height:var(--button-height); padding:0; border:1px solid var(--border); background:#fff; color:var(--primary); font-family:var(--font-main); font-size:22px; cursor:pointer; }
.single-product .qty-down { border-radius:8px 0 0 8px; }
.single-product .qty-up { border-radius:0 8px 8px 0; }
.single-product #sp_quantity { width:64px; height:var(--button-height); margin:0; padding:0; border:1px solid var(--border); border-right:0; border-left:0; border-radius:0; background:#fff; color:var(--primary); font-family:var(--font-main); font-size:16px; text-align:center; appearance:textfield; }
.single-product #sp_quantity::-webkit-inner-spin-button,
.single-product #sp_quantity::-webkit-outer-spin-button { margin:0; -webkit-appearance:none; }
.single-product .product-purchase-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.single-product .product-purchase-actions a { display:flex; align-items:center; justify-content:center; min-width:0; height:var(--button-height); padding:0 10px; border:1px solid var(--primary); border-radius:8px; background:var(--primary); color:#fff; font-family:var(--font-main); font-size:16px; font-weight:800; text-align:center; }
.single-product .product-purchase-actions .single-product-buy { border-color:var(--accent); background:var(--accent); color:var(--primary); }
.single-product .product-purchase-actions a[aria-disabled="true"] { opacity:.5; cursor:not-allowed; }
.single-product .product-purchase-actions a:focus-visible,
.single-product #sp_quantity:focus-visible { outline:2px solid var(--primary); outline-offset:3px; }
.single-product .product-purchase-note { margin:12px 0 0; color:var(--muted); font-size:14px; }
.single-product .product-short-desc { margin-top:24px; padding-top:20px; border-top:1px solid var(--border); line-height:1.7; overflow-wrap:anywhere; }
.single-product .short-desc-specs p { margin-bottom:12px; }
.single-product .short-desc-specs ul { margin:0; padding-left:20px; list-style:disc; }
.single-product .product-marketplaces { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:center; margin-top:24px; padding-top:20px; border-top:1px solid var(--border); }
.single-product .product-marketplaces .widget { min-width:0; margin:0; }
.single-product .product-marketplaces .widget_text { grid-column:1 / -1; }
.single-product .product-marketplaces img { display:block; width:100%; height:auto; object-fit:contain; }
.single-product .single-product-tabs-wrapper { --product-description-height:360px; margin-top:48px; padding:24px 28px; border:1px solid var(--border); border-radius:16px; background:#fff; }
.single-product .single-product-tabs-nav { display:flex; flex-wrap:wrap; gap:8px 24px; margin:0 0 24px; padding:0; border-bottom:1px solid var(--border); list-style:none; }
.single-product .single-product-tabs-nav li { margin:0; }
.single-product .single-product-tabs-nav button { height:var(--button-height); padding:0 2px; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--muted); font-family:var(--font-main); font-size:16px; font-weight:700; cursor:pointer; }
.single-product .single-product-tabs-nav .is-active button { border-bottom-color:var(--accent); color:var(--primary); }
.single-product .single-product-tabs-content { position:relative; overflow-wrap:anywhere; }
.single-product .tab-panel { display:none; }
.single-product .tab-panel.is-active { display:block; }
.single-product .tab-panel .entry-content > :first-child { margin-top:0; }
.single-product .tab-panel img { max-width:100%; height:auto; }
.single-product .is-collapsible:not(.is-expanded) .single-product-tabs-content { max-height:var(--product-description-height); overflow:hidden; }
.single-product .is-collapsible:not(.is-expanded) .single-product-tabs-content::after { content:""; position:absolute; right:0; bottom:0; left:0; height:64px; background:linear-gradient(transparent,#fff); pointer-events:none; }
.single-product .product-tabs-more { display:none; align-items:center; justify-content:center; height:var(--button-height); margin:20px auto 0; padding:0 24px; border:1px solid var(--primary); border-radius:8px; background:#fff; color:var(--primary); font-family:var(--font-main); font-size:16px; font-weight:700; cursor:pointer; }
.single-product .is-collapsible > .product-tabs-more { display:flex; }
.single-product .single-product-container button:focus-visible,
.single-product .single-product-container [tabindex]:focus-visible,
.single-product .yarpp-related a:focus-visible,
.single-product .yarpp-related button:focus-visible { outline:2px solid var(--primary); outline-offset:3px; }
/* Lightbox dùng lại tương tác gallery hiện có. */
.single-product.sp-lightbox-active { overflow:hidden; }
.single-product .sp-lightbox { display:none; position:fixed; inset:0; z-index:100010; padding:24px; padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left)); }
.single-product .sp-lightbox.is-open { display:flex; align-items:center; justify-content:center; }
.single-product .sp-lightbox-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.85); }
.single-product .sp-lightbox-wrapper { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:0; }
.single-product .sp-lightbox-media { display:flex; align-items:center; justify-content:center; width:calc(100% - 120px); height:calc(100% - 100px); min-height:0; }
.single-product .sp-lightbox-media img { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.single-product .sp-lightbox-close,
.single-product .sp-lightbox-btn { position:absolute; display:flex; align-items:center; justify-content:center; width:var(--button-height); height:var(--button-height); padding:0; border:1px solid #fff; border-radius:50%; background:var(--primary); color:#fff; cursor:pointer; }
.single-product .sp-lightbox-close { top:0; right:0; font-size:30px; }
.single-product .sp-lightbox-btn svg { flex:0 0 24px; width:24px; height:24px; }
.single-product .sp-lightbox-prev { left:0; }
.single-product .sp-lightbox-next { right:0; }
.single-product .sp-lightbox-counter { position:absolute; bottom:0; left:0; width:100%; color:#fff; text-align:center; }
/* Bố cục liên quan; giao diện thẻ dùng chung trong product-cards.css. */
.single-product .yarpp-related { width:calc(100% - 32px); max-width:1200px; margin:0 auto 50px; }
.single-product .related-products-title { margin:0 0 24px; color:var(--primary); font-family:var(--font-accent); font-size:28px; font-weight:800; line-height:1.3; }
.single-product .sphot-detail-posts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.single-product .related-products .sphot-detail-posts > .prod:nth-child(n+4) { display:none; }
@media (max-width: 1170px) {
    .single-product .single-product-summary { gap:28px; }
    .single-product .info_sp .entry-title { font-size:28px; }
    .single-product .sp-gallery-container.has-thumbs { grid-template-columns:60px minmax(0,1fr); gap:10px; }
    .single-product .sphot-detail-posts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
}
@media (max-width: 960px) {
    .single-product .single-product-summary { gap:24px; }
    .single-product .sp-gallery-container.has-thumbs { display:flex; flex-direction:column; }
    .single-product .sp-gallery-main { width:100%; }
    .single-product .sp-gallery-nav-wrap { width:100%; }
    .single-product .sp-slider-nav { display:flex; overflow-x:auto; gap:8px; }
    .single-product .sp-thumb-slide { flex:0 0 60px; }
    .single-product .sphot-detail-posts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 768px) {
    .single-product .related-products .sphot-detail-posts > .prod:nth-child(n+4) { display:flex; }
    .single-product .content-sidebar-wrap { margin:24px 0 36px; }
    .single-product .single-product-summary { grid-template-columns:minmax(0,1fr); }
    .single-product .anh_sp { position:static; }
    .single-product .info_sp .entry-title { font-size:26px; }
    .single-product .product-price-box {
        align-items:center;
        flex-wrap:nowrap;
        gap:6px;
        padding:12px 10px;
    }
    .single-product .product-price-box .current-price {
        font-size:22px;
        white-space:nowrap;
    }
    .single-product .product-price-box .old-price {
        font-size:14px;
        white-space:nowrap;
    }
    .single-product .product-price-box .discount-badge {
        margin-left:auto;
        padding:4px 6px;
        font-size:10px;
        line-height:1.4;
        white-space:nowrap;
    }

    .single-product .product-stock-status{
        margin: 0 0 7px;
    }
    .single-product .single-product-tabs-wrapper { margin-top:28px; padding:18px; }
    .single-product .single-product-tabs-nav { gap:4px 16px; margin-bottom:18px; }
    .single-product .sp-lightbox { padding:16px; padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
    .single-product .sp-lightbox-media { width:100%; height:calc(100% - 140px); }
    .single-product .sp-lightbox-prev,
    .single-product .sp-lightbox-next { bottom:40px; }
    .single-product .related-products-title { font-size:24px; }
    .single-product .yarpp-related { margin-bottom:36px; float: left; width: 100%;}
}
@media (max-width: 500px) {
    .single-product .variant-pills-list { gap:6px; }
    .single-product .variant-pill { padding:0 3px; }
    .single-product .product-price-box { padding:10px; }
    .single-product .info_sp .entry-title {
        font-size: 24px;
    }

    .single-product .sphot-detail-posts{
        gap:  15px;
    }
}
