/* KeenYoda B2B 工业风 — 商品列表 / 详情 / 首页 */
:root {
    --ky-b2b-bg: #ffffff;
    --ky-b2b-surface: #f7f8fa;
    --ky-b2b-border: #e2e6ea;
    --ky-b2b-text: #132a3e;
    --ky-b2b-text-muted: #6b7c8f;
    --ky-b2b-accent: #00a1e9;
    --ky-b2b-primary: #132a3e;
    --ky-b2b-max: 1226px;
}

body.ky-b2b {
    background: var(--ky-b2b-surface);
    color: var(--ky-b2b-text);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: var(--ky-font-light);
    font-weight: 400;
    font-synthesis: none;
}

/* 短页面：主内容区撑满，页脚贴底（避免 body 底色露在页脚下方） */
body.ky-b2b > .ky-mall-header {
    flex-shrink: 0;
}

body.ky-b2b > main,
body.ky-b2b > #content {
    flex: 1 0 auto;
}

body.ky-b2b > .ky-mall-footer {
    flex-shrink: 0;
    margin-top: auto;
}

/* 首页：热销区灰底已撑满 main，页脚直接衔接，避免中间白条 */
body.ky-b2b:has(> main.ky-index) > .ky-mall-footer {
    margin-top: 0;
}

/* ---- 通用区块 ---- */
.ky-section {
    width: var(--ky-b2b-max);
    margin: 32px auto;
    padding: 0;
}

.ky-section-title {
    font-size: 22px;
    font-weight: 600;
    color: var(--ky-b2b-text);
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--ky-b2b-primary);
    letter-spacing: 0.02em;
}

.ky-breadcrumb {
    width: var(--ky-b2b-max);
    margin: 16px auto 0;
    font-size: 13px;
    color: var(--ky-b2b-text-muted);
}

.ky-breadcrumb a {
    color: var(--ky-b2b-text-muted);
}

.ky-breadcrumb a:hover {
    color: var(--ky-b2b-accent);
}

/* ---- 详情页面包屑条（全宽白底，略低于顶栏高度） ---- */
:root {
    --ky-detail-page-gutter: clamp(5.25px, 1.3125vw, 26.25px);
}

.ky-detail-breadcrumb {
    width: 100%;
    background: #fff;
    border-bottom: 1px solid #d5dbe1;
    margin: 0;
}

.ky-detail-breadcrumb__inner {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    padding: 0 var(--ky-detail-page-gutter);
    box-sizing: border-box;
    font-size: 15px;
    color: var(--ky-b2b-text-muted);
    white-space: nowrap;
    overflow: hidden;
}

.ky-detail-breadcrumb__inner a {
    color: var(--ky-b2b-text-muted);
    text-decoration: none;
    flex-shrink: 0;
}

.ky-detail-breadcrumb__inner a:hover {
    color: var(--ky-b2b-accent);
}

.ky-detail-breadcrumb__sep {
    margin: 0 8px;
    color: #b0b8c0;
    flex-shrink: 0;
}

.ky-detail-breadcrumb__current {
    color: var(--ky-b2b-text);
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

body.ky-b2b-detail {
    background: #fff;
}

body.ky-b2b-detail #detail {
    flex: 1 0 auto;
    width: 100%;
}

/* ---- 商品卡片（列表 / 首页） ---- */
.ky-product-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.ky-product-card {
    background: var(--ky-b2b-bg);
    border: 1px solid var(--ky-b2b-border);
    transition: border-color 0.2s, box-shadow 0.2s;
    display: flex;
    flex-direction: column;
}

.ky-product-card:hover {
    border-color: var(--ky-b2b-accent);
    box-shadow: 0 4px 16px rgba(0, 35, 61, 0.08);
}

.ky-product-card .ky-card-img {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 200px;
    padding: 24px;
    background: #fff;
    border-bottom: 1px solid var(--ky-b2b-border);
}

.ky-product-card .ky-card-img img {
    max-width: 160px;
    max-height: 160px;
    object-fit: contain;
}

.ky-product-card .ky-card-body {
    padding: 16px 18px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.ky-product-card .ky-card-name {
    font-family: var(--ky-font-regular);
    font-size: 15px;
    font-weight: 400;
    font-synthesis: none;
    color: var(--ky-b2b-text);
    line-height: 1.4;
    margin-bottom: 6px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ky-product-card .ky-card-name a {
    color: inherit;
}

.ky-product-card .ky-card-name a:hover {
    color: var(--ky-b2b-accent);
}

.ky-product-card .ky-card-part {
    font-size: 12px;
    color: var(--ky-b2b-text-muted);
    margin-bottom: 8px;
}

.ky-product-card .ky-card-intro {
    font-size: 13px;
    color: var(--ky-b2b-text-muted);
    line-height: 1.5;
    margin-bottom: 12px;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ky-product-card .ky-card-price {
    font-size: 18px;
    font-weight: 600;
    color: var(--ky-b2b-primary);
}

.ky-product-card .ky-card-price span {
    font-size: 13px;
    font-weight: 400;
    color: var(--ky-b2b-text-muted);
}

.ky-product-card .ky-card-actions {
    margin-top: 14px;
    display: flex;
    gap: 8px;
}

.ky-product-card .ky-card-actions a {
    flex: 1;
    text-align: center;
    font-size: 13px;
    padding: 8px 0;
    border: 1px solid var(--ky-b2b-primary);
    color: var(--ky-b2b-primary);
    transition: background 0.2s, color 0.2s;
}

.ky-product-card .ky-card-actions a.ky-btn-buy {
    background: var(--ky-b2b-primary);
    color: #fff;
    border-color: var(--ky-b2b-primary);
}

.ky-product-card .ky-card-actions a:hover {
    background: var(--ky-b2b-accent);
    border-color: var(--ky-b2b-accent);
    color: #fff;
}

/* ---- 详情页 ---- */
body.ky-b2b #detail .dc {
    display: none;
}

.ky-product-detail {
    width: var(--ky-b2b-max);
    max-width: calc(100% - 32px);
    margin: 0 auto;
    padding: 40px 0 48px;
    box-sizing: border-box;
    display: flex;
    gap: 48px;
    align-items: flex-start;
    background: transparent;
    border: none;
}

.ky-product-gallery {
    flex: 0 0 auto;
    min-width: 0;
    max-width: none;
}

.ky-gallery-layout {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.ky-gallery-thumbs {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 60px;
    flex-shrink: 0;
}

.ky-gallery-thumb {
    width: 60px;
    height: 60px;
    padding: 4px;
    border: 2px solid transparent;
    background: #f0f2f5;
    cursor: pointer;
    box-sizing: border-box;
    line-height: 0;
    transition: border-color 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ky-gallery-thumb img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}

.ky-gallery-thumb.is-active {
    border-color: #00233d;
}

.ky-gallery-thumb:hover {
    border-color: #9aa5b1;
}

.ky-gallery-stage {
    flex: 0 0 470px;
    width: 470px;
}

/* 图内切换箭头：绝对定位贴左右，半透明不挡图 */
.ky-product-gallery .ky-gallery-main > .ky-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    background: rgba(0, 35, 61, 0.12);
    box-shadow: none;
    color: rgba(0, 35, 61, 0.42);
    font-size: 0;
    line-height: 0;
    cursor: pointer;
    opacity: 0.55;
    transition: opacity 0.2s, background 0.2s, color 0.2s, border-color 0.2s;
}

.ky-product-gallery .ky-gallery-main > .ky-gallery-nav--prev {
    left: 10px;
    right: auto;
}

.ky-product-gallery .ky-gallery-main > .ky-gallery-nav--next {
    right: 10px;
    left: auto;
}

.ky-product-gallery .ky-gallery-main:hover > .ky-gallery-nav {
    opacity: 0.8;
}

.ky-product-gallery .ky-gallery-main > .ky-gallery-nav:hover {
    opacity: 1;
    background: rgba(0, 35, 61, 0.28);
    border-color: rgba(255, 255, 255, 0.55);
    color: rgba(0, 35, 61, 0.75);
}

.ky-product-gallery .ky-gallery-main > .ky-gallery-nav::before {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    box-sizing: border-box;
    border: 2px solid currentColor;
}

.ky-product-gallery .ky-gallery-main > .ky-gallery-nav--prev::before {
    border-right: none;
    border-top: none;
    transform: rotate(45deg);
    margin-left: 2px;
}

.ky-product-gallery .ky-gallery-main > .ky-gallery-nav--next::before {
    border-left: none;
    border-bottom: none;
    transform: rotate(45deg);
    margin-right: 2px;
}

.ky-product-gallery .ky-gallery-main > .ky-gallery-nav:disabled {
    opacity: 0.2;
    cursor: default;
}

.ky-product-gallery .ky-gallery-main {
    position: relative;
    width: 470px;
    height: 420px;
    flex: 0 0 470px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0f2f5;
    padding: 16px;
    overflow: hidden;
    border: none;
    cursor: zoom-in;
}

.ky-product-gallery .ky-gallery-main img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    pointer-events: none;
}

/* ---- 商品图大图预览（固定居中，不锁定页面滚动） ---- */
.ky-gallery-lightbox {
    display: none;
    pointer-events: none;
}

.ky-gallery-lightbox.is-open {
    display: block;
}

.ky-gallery-lightbox.is-open::before {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    pointer-events: none;
    z-index: 2000;
}

.ky-gallery-lightbox__close {
    position: fixed;
    top: max(calc(var(--ky-mall-header-height, 109px) + 20px), calc(50vh - min(40vh, 360px) - 64px));
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    z-index: 2003;
    pointer-events: auto;
    margin: 0;
    min-height: 44px;
    padding: 12px 28px;
    border: none;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.06em;
    cursor: pointer;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.ky-gallery-lightbox__close span {
    margin-left: 6px;
    font-size: 16px;
    font-weight: 400;
}

.ky-gallery-lightbox__close:hover {
    background: #000;
}

.ky-gallery-lightbox__frame {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2002;
    display: flex;
    align-items: center;
    gap: 16px;
    max-width: min(96vw, 1080px);
    pointer-events: none;
}

.ky-gallery-lightbox__nav {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
    color: #00a1e9;
    font-size: 0;
    line-height: 0;
    cursor: pointer;
    pointer-events: auto;
    transition: box-shadow 0.2s, color 0.2s;
}

.ky-gallery-lightbox__nav::before {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    box-sizing: border-box;
    border: 2px solid currentColor;
}

.ky-gallery-lightbox__nav--prev::before {
    border-right: none;
    border-top: none;
    transform: rotate(45deg);
    margin-left: 2px;
}

.ky-gallery-lightbox__nav--next::before {
    border-left: none;
    border-bottom: none;
    transform: rotate(45deg);
    margin-right: 2px;
}

.ky-gallery-lightbox__nav:hover {
    color: #00233d;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.28);
}

.ky-gallery-lightbox__nav:disabled {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.ky-gallery-lightbox__body {
    flex: 1 1 auto;
    min-width: 0;
    pointer-events: none;
    width: min(90vw, 960px);
    max-height: min(80vh, 720px);
    background: #f0f2f5;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    box-sizing: border-box;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
}

.ky-gallery-lightbox__body img {
    max-width: 100%;
    max-height: min(80vh, 656px);
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.ky-product-info {
    flex: 1 1 42%;
    min-width: 280px;
}

.ky-product-info .ky-product-title {
    font-family: var(--ky-font-regular);
    font-size: 28px;
    font-weight: 400;
    font-synthesis: none;
    color: var(--ky-b2b-primary);
    line-height: 1.35;
    margin-bottom: 14px;
}

.ky-product-info .ky-product-intro {
    font-size: 15px;
    color: var(--ky-b2b-text-muted);
    line-height: 1.6;
    margin-bottom: 20px;
}

.ky-product-info .ky-product-advantages {
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
    border: none;
}

.ky-product-info .ky-product-advantages li {
    position: relative;
    padding-left: 22px;
    font-size: 14px;
    color: var(--ky-b2b-text);
    line-height: 1.75;
    margin-bottom: 4px;
}

.ky-product-info .ky-product-advantages li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    color: var(--ky-b2b-text-muted);
    font-size: 13px;
}

.ky-product-info .ky-product-advantages li:last-child {
    margin-bottom: 0;
}

.ky-product-info .ky-product-price {
    margin-bottom: 24px;
}

.ky-product-info .ky-product-price .ky-price-label {
    display: none;
}

.ky-product-info .ky-product-price .ky-price-value {
    font-size: 22px;
    font-weight: 600;
    color: var(--ky-b2b-text);
}

.ky-product-info .ky-product-price .ky-price-value del {
    font-size: 16px;
    font-weight: 400;
    color: var(--ky-b2b-text-muted);
    margin-left: 12px;
}

.ky-product-info .ky-product-price .ky-price-value--config {
    font-size: 15px;
}

.ky-price-freight-hint {
    margin: 8px 0 0;
    font-size: 12px;
    color: #9aa5b1;
    line-height: 1.5;
}
    font-weight: 400;
    color: #6b7c8f;
}

.ky-product-config {
    margin-bottom: 0;
    padding-bottom: 0;
    border: none;
}

.ky-config-group {
    margin-bottom: 24px;
    padding: 12px 16px;
    border: 1px solid transparent;
    box-sizing: border-box;
    transition: border-color 0.2s ease;
}

.ky-config-group.is-error {
    border-color: #e53935;
}

.ky-config-group:last-child {
    margin-bottom: 0;
}

.ky-config-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.ky-config-group:not(.is-expanded) .ky-config-group-header {
    margin-bottom: 0;
}

.ky-config-group-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: var(--ky-b2b-text);
}

.ky-config-group:not(.is-expanded) .ky-config-group-toggle {
    margin-bottom: 0;
}

.ky-config-group-arrow {
    flex-shrink: 0;
    width: 0;
    height: 0;
    border-top: 6px solid #132a3e;
    border-right: 5px solid transparent;
    border-left: 5px solid transparent;
    transition: transform 0.2s ease;
    transform: rotate(0deg);
}

.ky-config-group:not(.is-expanded) .ky-config-group-arrow {
    transform: rotate(-90deg);
}

.ky-config-group-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--ky-b2b-text);
    line-height: 1.4;
}

.ky-config-group-body {
    display: block;
}

.ky-config-group:not(.is-expanded) .ky-config-group-body {
    display: none;
}

.ky-config-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ky-config-option {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    min-height: 56px;
    padding: 14px 20px;
    border: 1px solid #d5dbe1;
    border-radius: 0;
    cursor: pointer;
    font-size: 15px;
    background: #fff;
    margin: 0;
    box-sizing: border-box;
    transition: border-color 0.2s ease;
}

.ky-config-option input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.ky-config-check {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border: 2px solid #c5cdd4;
    box-sizing: border-box;
    position: relative;
    background: #fff;
}

.ky-config-option:has(input:checked) {
    border-color: #00a1e9;
}

.ky-config-option:has(input:checked) .ky-config-check {
    background: #00233D;
    border-color: #00233D;
}

.ky-config-option:has(input:checked) .ky-config-check::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.ky-config-option-name {
    flex: 1;
    min-width: 0;
    color: var(--ky-b2b-text);
    line-height: 1.5;
}

.ky-config-price {
    flex-shrink: 0;
    min-width: 72px;
    text-align: right;
    line-height: 1.2;
}

.ky-config-price-value {
    display: block;
    color: #00a1e9;
    font-size: 16px;
    font-weight: 600;
}

.ky-config-price-unit {
    display: block;
    margin-top: 2px;
    color: #8ebfd4;
    font-size: 12px;
}

.ky-config-group-error {
    display: none;
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    font-size: 13px;
    color: #e53935;
    line-height: 1.4;
    white-space: nowrap;
}

.ky-config-group.is-error .ky-config-group-error {
    display: block;
}

/* 配置区底部：数量 / 价格 / 加购 */
.ky-config-checkout {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #d5dbe1;
}

.ky-config-checkout__inner {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

.ky-config-checkout__qty {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.ky-config-checkout__label {
    font-size: 14px;
    color: #9aa5b1;
    line-height: 1.4;
}

.ky-config-checkout__select {
    min-width: 64px;
    height: 40px;
    padding: 0 28px 0 12px;
    border: 1px solid #d5dbe1;
    border-radius: 2px;
    background: #fff;
    font-size: 15px;
    color: var(--ky-b2b-text);
    cursor: pointer;
    appearance: auto;
}

.ky-config-checkout__divider {
    width: 1px;
    height: 40px;
    background: #d5dbe1;
    flex-shrink: 0;
}

.ky-config-checkout__price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 8px;
    flex: 1;
    min-width: 200px;
}

.ky-config-checkout__amount {
    font-size: 24px;
    font-weight: 700;
    color: var(--ky-b2b-text);
    line-height: 1.2;
}

.ky-config-checkout__suffix {
    font-size: 13px;
    color: #9aa5b1;
    line-height: 1.4;
}

.ky-config-checkout__cart {
    margin-left: auto;
    flex-shrink: 0;
    min-width: 200px;
    height: 44px;
    padding: 0 36px;
    border: none;
    border-radius: 999px;
    background-color: #00233D;
    color: #fff;
    font-size: 15px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.ky-config-checkout__cart:hover:not(:disabled) {
    background-color: #003556;
}

.ky-config-checkout__cart:disabled {
    background-color: #c5cdd4;
    color: #fff;
    opacity: 1;
    cursor: not-allowed;
}

.ky-price-preview-hint {
    margin: 10px 0 0;
    font-size: 12px;
    color: #9aa5b1;
    line-height: 1.5;
}

@media (max-width: 991.98px) {
    .ky-config-checkout__inner {
        gap: 16px;
    }

    .ky-config-checkout__divider {
        display: none;
    }

    .ky-config-checkout__cart {
        margin-left: 0;
        width: 100%;
    }
}

.ky-product-actions .ky-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.ky-product-purchase {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    margin-bottom: 24px;
}

.ky-product-purchase__primary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
}

.ky-product-purchase__links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 2px;
    width: 100%;
    min-height: 24px;
}

.ky-purchase-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0 6px;
    border: none;
    background: transparent;
    color: #5a6b7d;
    font-size: 13px;
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
}

.ky-purchase-link:hover {
    color: #00233D;
    text-decoration: underline;
}

.ky-purchase-link.ky-wishlisted {
    color: #e53935;
}

.ky-purchase-link-sep {
    color: #c5ced6;
    font-size: 13px;
    user-select: none;
}

.ky-product-qty-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.ky-product-qty {
    flex: 0 0 auto;
    min-width: 72px;
    height: 48px;
    padding: 0 28px 0 14px;
    border: 1px solid #d5dbe1;
    border-radius: 2px;
    background: #fff;
    font-size: 15px;
    color: var(--ky-b2b-text);
    cursor: pointer;
    appearance: auto;
}

.ky-product-purchase .ky-btn-add-cart {
    flex: 1 1 160px;
    min-width: 148px;
    max-width: 220px;
    height: 48px;
    padding: 0 28px;
    border: none;
    border-radius: 2px;
    background-color: #00233D;
    color: #fff;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s;
}

.ky-product-purchase .ky-btn-add-cart:hover {
    background-color: #003556;
}

.ky-product-purchase .ky-btn-add-cart:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.ky-product-purchase--config {
    margin-bottom: 24px;
}

.ky-product-purchase .ky-btn-go-config {
    flex: 1 1 160px;
    min-width: 148px;
    max-width: 220px;
    height: 48px;
    padding: 0 28px;
    border: none;
    border-radius: 2px;
    background-color: #00233D;
    color: #fff;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s;
}

.ky-product-purchase .ky-btn-go-config:hover {
    background-color: #003556;
}

.ky-product-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 28px;
}

.ky-product-actions .ky-btn {
    min-width: 140px;
    height: 46px;
    padding: 0 28px;
    font-size: 15px;
    border: none;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}

.ky-product-actions .ky-btn-primary {
    background: var(--ky-b2b-primary);
    color: #fff;
}

.ky-product-actions .ky-btn-primary:hover {
    background: var(--ky-b2b-accent);
}

.ky-product-actions .ky-btn-secondary {
    background: #fff;
    color: var(--ky-b2b-primary);
    border: 1px solid var(--ky-b2b-primary);
}

.ky-product-actions .ky-btn-secondary:hover {
    border-color: var(--ky-b2b-accent);
    color: var(--ky-b2b-accent);
}

.ky-product-actions .ky-btn-inquiry {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--ky-b2b-accent);
    border: 1px solid var(--ky-b2b-accent);
    text-decoration: none;
}

.ky-product-actions .ky-btn-inquiry:hover {
    background: var(--ky-b2b-accent);
    color: #fff;
}

.ky-product-service {
    margin-top: 8px;
    padding: 0;
    background: transparent;
    border: none;
    font-size: 13px;
    color: var(--ky-b2b-text-muted);
    line-height: 1.8;
}

.ky-product-service a {
    color: var(--ky-b2b-accent);
}

/* ---- 详情页：描述 / 技术细节 / 配置 标签 ---- */
.ky-product-tabs {
    width: 100%;
    background: #eff0f2;
    padding: 48px 0;
    box-sizing: border-box;
}

.ky-product-tabs__inner {
    width: 1100px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 0;
}

.ky-product-tabs__nav {
    width: 300px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    border: none;
}

.ky-product-tabs__tab {
    box-sizing: border-box;
    width: 300px;
    height: 65px;
    margin: 0;
    padding: 0;
    border: none;
    background: #00233D;
    color: #fff;
    font-size: 15px;
    font-family: inherit;
    cursor: pointer;
    line-height: 65px;
    text-align: center;
    flex-shrink: 0;
    transition: background-color 0.2s, color 0.2s;
}

.ky-product-tabs__tab.is-active {
    background: #fff;
    color: #00233D;
}

.ky-product-tabs__tab:not(.is-active):hover {
    background: #003556;
    color: #fff;
}

.ky-product-tabs__panels {
    flex: 1;
    min-width: 0;
    background: #fff;
    border: none;
    min-height: 240px;
}

.ky-product-tabs__panel {
    display: none;
    padding: 32px 40px;
    box-sizing: border-box;
}

.ky-product-tabs--part-only .ky-product-tabs__panels {
    padding-top: 0;
}

.ky-product-tabs--part-only .ky-product-tabs__panel {
    display: block;
}

.ky-product-tabs__panel.is-active {
    display: block;
}

.ky-product-desc--empty {
    margin: 0;
    color: #9aa5b1;
    font-size: 15px;
    line-height: 1.85;
}

.ky-product-tabs .ky-product-desc-content,
.ky-product-tabs .ky-product-tech,
.ky-product-tabs .goods {
    color: var(--ky-b2b-text);
    font-size: 15px;
    line-height: 1.75;
    word-break: break-word;
}

.ky-product-tabs .goods img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 16px auto;
}

.ky-product-tabs .goods p {
    margin: 0 0 14px;
}

.ky-product-tabs .goods h1,
.ky-product-tabs .goods h2,
.ky-product-tabs .goods h3,
.ky-product-tabs .goods h4,
.ky-product-tabs .goods h5,
.ky-product-tabs .goods h6 {
    margin: 24px 0 12px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--ky-b2b-text);
}

.ky-product-tabs .goods ul,
.ky-product-tabs .goods ol {
    margin: 0 0 14px;
    padding-left: 1.5em;
}

.ky-product-tabs .goods li {
    margin-bottom: 6px;
}

.ky-product-tabs .goods table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
    font-size: 14px;
}

.ky-product-tabs .goods th,
.ky-product-tabs .goods td {
    border: 1px solid var(--ky-b2b-border);
    padding: 10px 12px;
    text-align: left;
    vertical-align: top;
}

.ky-product-tabs .goods th {
    background: #f7f8fa;
    font-weight: 600;
}

.ky-product-tabs .ky-product-config {
    margin-bottom: 0;
}

.ky-product-content {
    width: var(--ky-b2b-max);
    max-width: calc(100% - 32px);
    margin: 0 auto 48px;
    padding: 0 0 40px;
    box-sizing: border-box;
    background: transparent;
    border: none;
}

.ky-product-content .ky-content-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--ky-b2b-text);
    margin-bottom: 24px;
    padding-bottom: 0;
    border: none;
}

.ky-product-content .goods img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 16px auto;
}

.ky-product-content .goods {
    color: var(--ky-b2b-text);
    font-size: 15px;
    line-height: 1.75;
    word-break: break-word;
}

.ky-product-content .goods p {
    margin: 0 0 14px;
}

.ky-product-content .goods h1,
.ky-product-content .goods h2,
.ky-product-content .goods h3,
.ky-product-content .goods h4,
.ky-product-content .goods h5,
.ky-product-content .goods h6 {
    margin: 24px 0 12px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--ky-b2b-text);
}

.ky-product-content .goods h1 { font-size: 24px; }
.ky-product-content .goods h2 { font-size: 20px; }
.ky-product-content .goods h3 { font-size: 18px; }
.ky-product-content .goods h4 { font-size: 16px; }

.ky-product-content .goods ul,
.ky-product-content .goods ol {
    margin: 0 0 14px;
    padding-left: 1.5em;
}

.ky-product-content .goods li {
    margin-bottom: 6px;
}

.ky-product-content .goods table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
    font-size: 14px;
}

.ky-product-content .goods th,
.ky-product-content .goods td {
    border: 1px solid var(--ky-b2b-border);
    padding: 10px 12px;
    text-align: left;
    vertical-align: top;
}

.ky-product-content .goods th {
    background: #f7f8fa;
    font-weight: 600;
}

.ky-product-content .goods blockquote {
    margin: 16px 0;
    padding: 12px 16px;
    border-left: 3px solid var(--ky-b2b-accent);
    background: #f7f8fa;
    color: #5c6b7a;
}

.ky-product-content .goods a {
    color: var(--ky-b2b-accent);
    text-decoration: underline;
}

.ky-product-content .goods strong,
.ky-product-content .goods b {
    font-weight: 600;
}

.ky-product-content .goods hr {
    border: none;
    border-top: 1px solid var(--ky-b2b-border);
    margin: 24px 0;
}

/* ---- 搜索页 ---- */
body.ky-b2b .classify .category {
    width: var(--ky-b2b-max);
}

body.ky-b2b .sort {
    background: var(--ky-b2b-bg);
    border-bottom: 1px solid var(--ky-b2b-border);
    height: auto;
}

body.ky-b2b .sort .list {
    width: var(--ky-b2b-max);
    height: 52px;
}

body.ky-b2b .goods_item .main {
    width: 1108px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    padding: 24px 0;
}

body.ky-b2b .goods_item .main .clear {
    display: none;
}

body.ky-b2b .goods_item .main .ky-goods-grid {
    width: 100%;
}

body.ky-b2b .goods_item .pages .page_wrap {
    width: var(--ky-b2b-max);
}

body.ky-b2b .goods_item .pages .page_wrap .page_span1 a.active {
    color: var(--ky-b2b-accent);
}

/* ---- 首页商品区块（重点产品 / 新品推荐 / 精选产品 统一样式） ---- */
body.ky-b2b #content #hot,
body.ky-b2b #content #flash,
body.ky-b2b #content #recommend {
    width: var(--ky-b2b-max);
    height: auto;
    margin: 32px auto 40px;
    padding-bottom: 8px;
    background: transparent;
    overflow: visible;
}

body.ky-b2b #content #hot > h2,
body.ky-b2b #content #flash > h2,
body.ky-b2b #content #recommend > h2 {
    height: auto;
    line-height: 1.4;
    font-size: 22px;
    font-weight: 600;
    color: var(--ky-b2b-text);
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--ky-b2b-primary);
}

body.ky-b2b #content #hot ul,
body.ky-b2b #content #flash ul,
body.ky-b2b #content #recommend ul {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
    height: auto;
    justify-content: stretch;
    align-content: start;
}

body.ky-b2b #content #hot ul li,
body.ky-b2b #content #flash ul li,
body.ky-b2b #content #recommend ul li {
    float: none;
    width: auto;
    height: auto;
    margin: 0;
    background: var(--ky-b2b-bg);
    border: 1px solid var(--ky-b2b-border);
    transition: border-color 0.2s;
}

body.ky-b2b #content #hot ul li:hover,
body.ky-b2b #content #flash ul li:hover,
body.ky-b2b #content #recommend ul li:hover {
    border-color: var(--ky-b2b-accent);
    box-shadow: 0 4px 16px rgba(0, 35, 61, 0.08);
}

body.ky-b2b #content #hot ul li a,
body.ky-b2b #content #flash ul li a,
body.ky-b2b #content #recommend ul li a {
    display: block;
    padding: 16px;
    width: auto;
    height: auto;
    position: static;
    overflow: visible;
    text-align: center;
    box-sizing: border-box;
}

body.ky-b2b #content #hot ul li img,
body.ky-b2b #content #flash ul li img,
body.ky-b2b #content #recommend ul li img {
    width: 100%;
    height: 160px;
    object-fit: contain;
    margin: 0 0 12px;
}

body.ky-b2b #content #hot ul li .name,
body.ky-b2b #content #flash ul li .name,
body.ky-b2b #content #recommend ul li .name {
    height: auto;
    line-height: 1.4;
    max-width: none;
    font-size: 14px;
    font-weight: 600;
    color: var(--ky-b2b-text);
    margin-bottom: 6px;
    -webkit-line-clamp: 2;
}

body.ky-b2b #content #hot ul li .discount,
body.ky-b2b #content #flash ul li .discount,
body.ky-b2b #content #recommend ul li .ky-card-intro {
    height: auto;
    line-height: 1.4;
    font-size: 12px;
    color: var(--ky-b2b-text-muted);
    margin-bottom: 8px;
}

body.ky-b2b #content #hot ul li .item_price,
body.ky-b2b #content #flash ul li .item_price,
body.ky-b2b #content #recommend ul li .item_price {
    height: auto;
    line-height: 1.4;
    font-size: 16px;
    font-weight: 600;
    color: var(--ky-b2b-primary);
}

body.ky-b2b #content #recommend ul li .info,
body.ky-b2b #content #recommend ul li .counter,
body.ky-b2b #content #recommend ul li .comment {
    display: none;
}

body.ky-b2b #content:not(.ky-index) {
    padding-bottom: 24px;
}


body.ky-b2b #content #banner {
    width: var(--ky-b2b-max);
    margin: 0 auto;
}

body.ky-b2b .all-sort-list {
    background: var(--ky-b2b-primary);
}

@media (max-width: 991.98px) {
    .ky-product-detail {
        flex-direction: column;
        gap: 32px;
        padding-top: 28px;
    }

    .ky-product-gallery,
    .ky-product-info {
        flex: 1 1 auto;
        max-width: none;
        width: 100%;
    }

    .ky-gallery-layout {
        flex-direction: column;
    }

    .ky-gallery-thumbs {
        flex-direction: row;
        width: 100%;
        overflow-x: auto;
    }

    .ky-gallery-thumb {
        flex-shrink: 0;
        width: 56px;
        height: 56px;
    }

    .ky-gallery-stage {
        flex: 1 1 auto;
        width: 100%;
        max-width: 470px;
    }

    .ky-product-gallery .ky-gallery-main {
        width: 100%;
        max-width: 470px;
        height: 320px;
        flex: 1 1 auto;
    }

    .ky-product-purchase {
        flex-wrap: wrap;
    }

    .ky-product-tabs {
        padding: 32px 0;
    }

    .ky-product-tabs__inner {
        width: 100%;
        flex-direction: column;
        gap: 16px;
    }

    .ky-product-tabs__nav {
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px;
    }

    .ky-product-tabs__tab {
        width: calc(50% - 4px);
        max-width: none;
        height: 52px;
        line-height: 52px;
        font-size: 14px;
    }

    .ky-product-tabs__panels {
        width: 100%;
    }

    .ky-product-tabs__panel {
        padding: 24px 20px;
    }

    .ky-gallery-lightbox__frame {
        gap: 8px;
        max-width: calc(100vw - 16px);
    }

    .ky-gallery-lightbox__close {
        top: max(calc(var(--ky-mall-header-height, 109px) + 12px), calc(50vh - min(40vh, 360px) - 56px));
        padding: 10px 22px;
        min-height: 40px;
        font-size: 13px;
    }

    .ky-gallery-lightbox__nav {
        width: 36px;
        height: 36px;
        font-size: 0;
    }

    .ky-gallery-lightbox__nav::before {
        width: 9px;
        height: 9px;
    }

    .ky-gallery-lightbox__body {
        width: auto;
        flex: 1 1 auto;
        padding: 16px;
    }
}

/* 主商品详情 — 配件 Tab（280×440 卡片，无间距、有边框） */
.ky-parts-panel {
    padding: 8px 0 0;
}

.ky-parts-panel__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}

.ky-parts-panel__title {
    margin: 0;
    font-family: var(--ky-font-medium);
    font-size: 18px;
    font-weight: 400;
    font-synthesis: none;
    color: #00233d;
}

.ky-parts-panel__count {
    font-family: var(--ky-font-light);
    font-size: 14px;
    color: #6b7c8f;
    white-space: nowrap;
}

.ky-parts-carousel__viewport {
    overflow: hidden;
    width: 100%;
    max-width: 1120px;
}

.ky-parts-carousel__track {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    border: 1px solid #e2e6ea;
    box-sizing: border-box;
    transition: transform 0.35s ease;
    will-change: transform;
}

.ky-part-card {
    width: 280px;
    height: 440px;
    flex: 0 0 280px;
    box-sizing: border-box;
    background: #fff;
    border-right: 1px solid #e2e6ea;
}

.ky-parts-carousel__track .ky-part-card:last-child {
    border-right: none;
}

.ky-part-card__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 15px 20px 20px;
    box-sizing: border-box;
    color: inherit;
    text-decoration: none;
}

.ky-part-card__link:hover .ky-part-card__name {
    color: #00a1e9;
}

.ky-part-card__media {
    flex-shrink: 0;
    width: 240px;
    height: 200px;
    overflow: hidden;
    box-sizing: border-box;
}

.ky-part-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ky-part-card__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    flex: 1;
    min-height: 0;
    padding-top: 14px;
    box-sizing: border-box;
}

.ky-part-card__name {
    margin: 0 0 12px;
    width: 100%;
    min-height: 41px;
    flex-shrink: 0;
    font-family: var(--ky-font-regular);
    font-size: 14px;
    font-weight: 400;
    font-synthesis: none;
    color: #00233d;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ky-part-card__intro {
    margin: 0 0 16px;
    width: 100%;
    flex: 1;
    min-height: 42px;
    font-family: var(--ky-font-light);
    font-size: 14px;
    font-weight: 400;
    font-synthesis: none;
    line-height: 1.5;
    color: #6b7c8f;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ky-part-card__price {
    margin: auto 0 0;
    width: 100%;
    flex-shrink: 0;
    font-family: var(--ky-font-light);
    font-size: 14px;
    font-weight: 400;
    font-synthesis: none;
    color: #6b7c8f;
    line-height: 21px;
}

.ky-parts-carousel__dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
}

.ky-parts-carousel__dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: #c5ccd3;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
}

.ky-parts-carousel__dot.is-active {
    background: #00233d;
    transform: scale(1.1);
}

@media (max-width: 1200px) {
    .ky-parts-carousel__viewport {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .ky-parts-carousel__track {
        transform: none !important;
    }

    .ky-parts-carousel__dots {
        display: none;
    }
}

/* ---- 阶梯定价表 ---- */
.ky-tiered-price {
    margin-bottom: 20px;
    padding: 14px 16px;
    background: #f7f9fb;
    border: 1px solid #e2e6ea;
    border-radius: 4px;
}

.ky-tiered-title {
    font-size: 13px;
    font-weight: 600;
    color: #132a3e;
    margin-bottom: 10px;
}

.ky-tiered-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.ky-tiered-table th,
.ky-tiered-table td {
    padding: 6px 10px;
    text-align: left;
    border-bottom: 1px solid #e2e6ea;
}

.ky-tiered-table th {
    color: #6b7c8f;
    font-weight: 500;
    font-size: 12px;
}

.ky-tiered-best td {
    font-weight: 600;
    color: #132a3e;
    background: #eef5fb;
}

.ky-tiered-table tbody tr.ky-tiered-active td {
    background: #e3f2fd;
}

.ky-tiered-table tbody tr.ky-tiered-active .ky-tiered-price-cell {
    color: #e53935;
}

.ky-price-unit-hint {
    margin: 4px 0 0;
    font-size: 13px;
    color: #6b7c8f;
}

.ky-tiered-price-cell {
    font-weight: 600;
    color: #00a1e9;
}

.ky-tiered-best .ky-tiered-price-cell {
    color: #e53935;
}

.ky-tiered-save {
    color: #4caf50;
    font-size: 12px;
}

/* ---- 购物车阶梯价徽标 ---- */
.cart-tiered-badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 12px;
    color: #00a1e9;
    background: #e8f4fd;
    border-radius: 3px;
    line-height: 1.5;
}

/* ---- 心愿单：详情页已改为文字链，保留类名兼容 JS 状态 ---- */
.ky-product-purchase .ky-btn-wishlist {
    /* legacy pill styles unused on detail; kept for other pages if any */
}

.ky-wishlist-icon {
    font-size: 14px;
    line-height: 1;
}

/* ---- 样品申请：详情页已改为文字链 ---- */
.ky-product-purchase .ky-btn-sample {
    /* legacy */
}

/* 详情页询价：与加购并列的次主按钮 */
.ky-product-purchase .ky-btn-quote {
    flex: 1 1 140px;
    min-width: 132px;
    max-width: 200px;
    height: 48px;
    padding: 0 24px;
    border: 1px solid #ff6a00;
    border-radius: 2px;
    background: #fff;
    color: #ff6a00;
    font-size: 15px;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}

.ky-product-purchase .ky-btn-quote:hover {
    background: #ff6a00;
    color: #fff;
}

.ky-product-purchase .ky-btn-quote--config {
    margin-left: 0;
}

/* AI 客服：详情页用文字链；保留类名供 chat-widget 识别 */
.ky-product-purchase .ky-btn-ai-chat {
    min-width: 0;
    height: auto;
    padding: 0 6px;
    border: none;
    border-radius: 0;
    background: transparent;
    color: #5a6b7d;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    text-decoration: none;
    cursor: pointer;
    transition: color .15s ease;
}

.ky-product-purchase .ky-btn-ai-chat:hover {
    background: transparent;
    color: #00233D;
    text-decoration: underline;
}

/* 2026-09-09 P0-1：详情页型号置顶 */
.ky-product-model {
    margin: 0 0 6px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ky-product-model__label {
    display: inline-block;
    padding: 2px 8px;
    background: #0f3a8a;
    color: #fff;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.ky-product-model__value {
    color: #0f3a8a;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.5px;
}

/* ---- 样品申请页面 ---- */
.ky-sample-goods-info {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px;
    background: #f8f9fa;
    border-radius: 8px;
}

.ky-sample-goods-img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #e8e8e8;
}

.ky-sample-goods-name {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 4px;
}

/* ---- 样品申请列表 ---- */
.ky-sample-tracking,
.ky-sample-remark {
    margin-top: 6px;
    color: #999;
}

/* ---- 心愿单页面 ---- */
.ky-wishlist-tip {
    font-size: 14px;
    font-weight: 400;
    color: #6b7c8f;
}

.ky-wishlist-tip em {
    font-style: normal;
    font-weight: 600;
    color: #132a3e;
}

.ky-wishlist-loading {
    text-align: center;
    padding: 60px 0;
    color: #6b7c8f;
    font-size: 15px;
}

.ky-empty-state {
    text-align: center;
    padding: 80px 20px;
    color: #6b7c8f;
}

.ky-empty-state p {
    margin: 0 0 8px;
    font-size: 15px;
}

.ky-empty-state .ky-empty-hint {
    font-size: 13px;
    margin-bottom: 24px;
}

.ky-empty-state .ky-btn {
    display: inline-block;
    min-width: 120px;
    height: 40px;
    line-height: 40px;
    padding: 0 32px;
    border-radius: 999px;
    font-size: 14px;
    text-decoration: none;
}

.ky-btn-primary {
    background: #00233D;
    color: #fff;
    border: none;
    cursor: pointer;
}

.ky-btn-primary:hover {
    background: #003556;
    color: #fff;
}

.ky-btn-outline {
    background: #fff;
    color: #00233D;
    border: 1px solid #00233D;
    cursor: pointer;
}

.ky-btn-outline:hover {
    border-color: #00a1e9;
    color: #00a1e9;
}

.ky-btn-text {
    background: transparent;
    border: none;
    color: #6b7c8f;
    cursor: pointer;
    font-size: 13px;
    padding: 4px 8px;
}

.ky-btn-text:hover {
    color: #e53935;
}

.ky-btn-success {
    background: #4caf50 !important;
    color: #fff !important;
    border-color: #4caf50 !important;
}

/* 心愿单工具栏 */
.ky-wishlist-toolbar {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
    padding: 12px 0;
    border-bottom: 1px solid #e2e6ea;
}

.ky-wishlist-toolbar label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #6b7c8f;
    cursor: pointer;
}

.ky-wishlist-toolbar .ky-btn {
    height: 36px;
    padding: 0 20px;
    font-size: 13px;
    border-radius: 4px;
}

.ky-wishlist-toolbar .ky-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

/* 心愿单商品网格 */
.ky-wishlist-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid #e2e6ea;
    background: #fff;
}

.ky-wishlist-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    border-bottom: 1px solid #f0f2f5;
    transition: background 0.15s;
}

.ky-wishlist-card:last-child {
    border-bottom: none;
}

.ky-wishlist-card:hover {
    background: #f7f9fb;
}

.ky-wishlist-check {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.ky-wishlist-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: #00233D;
}

.ky-wishlist-img {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f7f8fa;
    border: 1px solid #e2e6ea;
}

.ky-wishlist-img img {
    max-width: 64px;
    max-height: 64px;
    object-fit: contain;
}

.ky-wishlist-info {
    flex: 1;
    min-width: 0;
}

.ky-wishlist-name {
    display: block;
    font-size: 15px;
    font-weight: 500;
    color: #132a3e;
    text-decoration: none;
    margin-bottom: 4px;
    line-height: 1.4;
}

.ky-wishlist-name:hover {
    color: #00a1e9;
}

.ky-wishlist-desc {
    font-size: 13px;
    color: #6b7c8f;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 400px;
    margin-bottom: 6px;
}

.ky-wishlist-price {
    font-size: 16px;
    font-weight: 600;
    color: #132a3e;
}

.ky-wishlist-actions {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.ky-wishlist-actions .ky-btn {
    height: 36px;
    padding: 0 20px;
    font-size: 13px;
    border-radius: 4px;
}

.ky-wishlist-actions .ky-btn-primary.ky-btn-success {
    pointer-events: none;
}

@media (max-width: 768px) {
    .ky-wishlist-card {
        flex-wrap: wrap;
        gap: 12px;
        padding: 12px 16px;
    }

    .ky-wishlist-img {
        width: 64px;
        height: 64px;
    }

    .ky-wishlist-img img {
        max-width: 48px;
        max-height: 48px;
    }

    .ky-wishlist-info {
        flex: 1 1 100%;
        order: 1;
    }

    .ky-wishlist-actions {
        margin-left: auto;
    }

    .ky-wishlist-desc {
        max-width: 200px;
    }
}

/* ===== 客户评价 ===== */
.ky-product-reviews {
    max-width: var(--ky-content-max-width, 1280px);
    margin: 0 auto;
    padding: 0 var(--ky-page-padding, 20px) 48px;
}

.ky-product-reviews__inner {
    border-top: 1px solid var(--ky-border-color, #e5e7eb);
    padding-top: 40px;
}

.ky-product-reviews__title {
    font-size: 20px;
    font-weight: 700;
    color: #1f2937;
    margin: 0 0 24px;
    padding-left: 4px;
    border-left: 3px solid var(--ky-accent-color, #2563eb);
    padding: 4px 0 4px 12px;
}

.ky-product-reviews__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* 评价卡片 */
.ky-review-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-left: 3px solid var(--ky-accent-color, #2563eb);
    border-radius: 6px;
    padding: 20px 24px;
    margin: 0;
    position: relative;
}

.ky-review-card::before {
    content: '\201C';
    position: absolute;
    top: 8px;
    right: 16px;
    font-size: 48px;
    color: #e2e8f0;
    font-family: Georgia, serif;
    line-height: 1;
}

.ky-review-card__header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.ky-review-card__rating {
    display: inline-flex;
    gap: 2px;
}

.ky-review-card__star {
    color: #d1d5db;
    font-size: 16px;
}

.ky-review-card__star.is-active {
    color: #f59e0b;
}

.ky-review-card__author {
    font-style: normal;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ky-review-card__name {
    font-weight: 600;
    color: #1f2937;
    font-size: 14px;
}

.ky-review-card__meta {
    font-size: 13px;
    color: #6b7280;
    font-weight: 400;
}

.ky-review-card__content {
    color: #374151;
    font-size: 14px;
    line-height: 1.7;
    margin: 0;
    padding-right: 20px;
}

/* 后台列表星星 */
.ky-rating-stars {
    color: #f59e0b;
    font-size: 14px;
    letter-spacing: 1px;
}

@media (max-width: 768px) {
    .ky-product-reviews {
        padding: 0 16px 32px;
    }

    .ky-review-card {
        padding: 16px;
    }

    .ky-review-card::before {
        font-size: 36px;
        top: 4px;
        right: 8px;
    }

    .ky-review-card__header {
        gap: 8px;
    }
}

/* ---- 多仓库库存 ---- */
.ky-warehouse-stock {
    margin-bottom: 24px;
    padding: 14px 16px;
    background: #f7f9fb;
    border: 1px solid #e2e6ea;
    border-radius: 4px;
}
.ky-warehouse-stock__title {
    font-size: 13px;
    font-weight: 600;
    color: #132a3e;
    margin-bottom: 10px;
}
.ky-warehouse-stock__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.ky-warehouse-stock__table th,
.ky-warehouse-stock__table td {
    padding: 5px 10px;
    text-align: left;
    border-bottom: 1px solid #e2e6ea;
}
.ky-warehouse-stock__table th {
    color: #6b7c8f;
    font-weight: 500;
}
.ky-warehouse-stock--zero {
    color: #9aa5b1;
}
