/* jcl-sub-v2.css — V2二级分类页样式 */

/* === P0: 等宽数字 — L2/L3/L4数字对齐 === */
.jmp-cat-sub-v2-page,
html body.single-product {
    font-variant-numeric: tabular-nums !important;
}

/* Page background — override Astra default #F3F4F6 to match L1 white */
body.jmp-cat-sub-v2-page {
    background-color: #ffffff !important;
}

/* === Header样式对齐L1 — 操作Astra原生Header === */
body.jmp-cat-sub-v2-page .ast-archive-title,
body.jmp-cat-sub-v2-page .entry-title,
body.jmp-cat-sub-v2-page .ast-page-builder-template .entry-header { display: none !important; }
body.jmp-cat-sub-v2-page .entry-title { display: none !important; }
body.jmp-cat-sub-v2-page .entry-header { margin-bottom: 0 !important; }
body.jmp-cat-sub-v2-page .ast-above-header { display: none !important; }
body.jmp-cat-sub-v2-page .elementor-widget-theme-site-logo { margin-top: 0 !important; }
body.jmp-cat-sub-v2-page .ast-container { max-width: 100% !important; }

/* Astra container full-width override */
body.jmp-cat-sub-v2-page .site-content .ast-container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* V2 Header — fixed semi-transparent dark bg with white text (matches L1 exactly) */
body.jmp-cat-sub-v2-page #masthead {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    background: rgba(19, 23, 57, 0.92) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    height: auto !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}
body.jmp-cat-sub-v2-page .ast-primary-header-bar {
    background: transparent !important;
    border-bottom: none !important;
}
body.jmp-cat-sub-v2-page .ast-main-header-wrap {
    background: transparent !important;
    min-height: 60px;
    display: flex;
    align-items: center;
}
@media (min-width: 922px) {
    body.jmp-cat-sub-v2-page #masthead .menu-link,
    body.jmp-cat-sub-v2-page #masthead .site-title a,
    body.jmp-cat-sub-v2-page #masthead .ast-header-html,
    body.jmp-cat-sub-v2-page #masthead .ast-header-html p,
    body.jmp-cat-sub-v2-page #masthead .ast-header-html strong,
    body.jmp-cat-sub-v2-page #masthead .ast-logo-title-wrap .site-title a {
        color: #ffffff !important;
    }
}
body.jmp-cat-sub-v2-page #masthead > * {
    visibility: visible !important;
    opacity: 1 !important;
}
body.jmp-cat-sub-v2-page .site-content {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
body.jmp-cat-sub-v2-page #primary {
    padding-top: 0 !important;
    margin: 0 !important;
}

/* Header spacer for fixed header */
body.jmp-cat-sub-v2-page .v2-header-spacer {
    height: 90px;
}

/* Header nav menu — desktop only */
@media (min-width: 922px) {
    body.jmp-cat-sub-v2-page #masthead .main-header-menu {
        display: flex !important;
        align-items: center;
        gap: 0;
    }
    body.jmp-cat-sub-v2-page #masthead .main-header-menu .menu-item > .menu-link {
        padding: 0 16px !important;
        color: #ffffff !important;
        line-height: 1.4;
        white-space: nowrap;
    }
    body.jmp-cat-sub-v2-page #masthead #ast-mobile-header {
        display: none !important;
    }
}

/* Mobile header fixes */
@media (max-width: 921px) {
    body.jmp-cat-sub-v2-page .v2-header-spacer {
        height: 60px;
    }
    body.jmp-cat-sub-v2-page #masthead .ast-mobile-header-wrap {
        background: rgba(19, 23, 57, 0.92) !important;
    }
    /* Mobile: force primary bar full-width dark bg (fix 1211px max-width causing white gaps) */
    body.jmp-cat-sub-v2-page #ast-mobile-header .ast-primary-header-bar {
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        background: rgba(19, 23, 57, 0.92) !important;
        width: 100% !important;
    }
    /* Mobile: site-title and header-html white on dark bar (menu-links use Astra native dark) */
    body.jmp-cat-sub-v2-page #masthead .site-title a,
    body.jmp-cat-sub-v2-page #masthead .ast-header-html,
    body.jmp-cat-sub-v2-page #masthead .ast-logo-title-wrap .site-title a {
        color: #ffffff !important;
    }
    body.jmp-cat-sub-v2-page #masthead .ast-mobile-header-wrap .ast-mobile-menu-buttons .menu-toggle,
    body.jmp-cat-sub-v2-page #masthead .ast-mobile-header-wrap .menu-toggle {
        color: #ffffff !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.jmp-cat-sub-v2-page #masthead #ast-desktop-header {
        display: none !important;
    }

}

/* Breadcrumb — 复用V2样式 */
.v2-breadcrumb {
    width: 100%;
    max-width: clamp(1440px, 85vw, 1920px);
    margin: 0 auto;
    padding: 16px 24px;
    box-sizing: border-box;
    font-size: 14px;
    color: #666;
}
.v2-breadcrumb a {
    color: #006faa;
    text-decoration: none;
}
.v2-breadcrumb a:hover {
    text-decoration: underline;
}
.v2-bc-sep {
    margin: 0 8px;
    color: #999;
}
.v2-bc-current {
    color: #333;
    font-weight: 500;
}

/* Content wrap — 左右布局 */
.v2-content-wrap {
    max-width: clamp(1440px, 85vw, 1920px);
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    gap: 24px;
    min-height: 600px;
}

/* ===== H1 + Stat Badges (匹配L1 v2-info-area) ===== */
body.jmp-cat-sub-v2-page .v2-info-area {
    padding: 0 0 16px;
    margin: 0 0 20px;
}
body.jmp-cat-sub-v2-page .v2-info-area h1 {
    font-size: 28px;
    font-weight: 700;
    color: #131739;
    margin: 0 0 8px;
}
body.jmp-cat-sub-v2-page .v2-info-stats {
    display: flex;
    gap: 24px;
    align-items: center;
    flex-wrap: wrap;
    font-size: 14px;
    color: #666;
}
body.jmp-cat-sub-v2-page .v2-info-stats strong {
    color: #131739;
}

/* Sidebar — 与V2一致 */
.jmp-cat-sub-v2-page .jcl-sidebar {
    width: 280px; flex-shrink: 0;
    position: sticky; top: 100px; align-self: flex-start;
    background: #ffffff; border-radius: 12px; border: 1px solid #e8e8e8;
    padding: 20px 16px; max-height: calc(100vh - 110px);
    overflow: hidden;
    display: flex; flex-direction: column;
}
.jmp-cat-sub-v2-page .jcl-filters-scroll {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
    padding-right: 8px;
}

/* 主内容区 */
.v2-main {
    flex: 1;
    min-width: 0;
}

/* 产品网格 */
.v2-products-title {
    font-size: 16px;
    color: #333;
    margin: 0 0 16px;
    font-weight: 600;
}
.v2-product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.v2-product-card {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s, transform 0.1s;
    display: flex;
    flex-direction: column;
}
.v2-product-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    transform: translateY(-1px);
}
.v2-product-card-img {
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f8f8;
    padding: 8px;
}
.v2-product-card-img img {
    max-height: 120px;
    max-width: 120px;
    object-fit: contain;
}
.v2-product-card-body {
    padding: 12px;
    flex: 1;
}
.v2-product-card-sku {
    font-size: 15px;
    font-weight: 600;
    color: #131739;
    margin-bottom: 6px;
}
.v2-product-card-specs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.v2-product-spec {
    font-size: 12px;
    color: #666;
    background: #f0f0f0;
    padding: 2px 6px;
    border-radius: 3px;
}
.v2-product-card-btn {
    display: block;
    text-align: center;
    padding: 10px;
    background: #F59E0B;
    color: #1a1a1a;
    font-size: 13px;
    font-weight: 500;
    transition: background 0.2s;
}
.v2-product-card-btn:hover {
    background: #D97706;
}

/* 分页 */
.v2-pagination {
    margin-top: 24px;
    text-align: center;
}
.v2-pagination .page-numbers {
    display: inline-flex;
    gap: 4px;
}
.v2-pagination a, .v2-pagination span {
    padding: 6px 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 13px;
    text-decoration: none;
    color: #333;
}
.v2-pagination a:hover {
    background: #f0f0f0;
}
.v2-pagination .current {
    background: #0077b3;
    color: #fff;
    border-color: #0077b3;
}

/* ===== L3 Subcategory Cards (match L1 .jcl-card style) ===== */
.v2-subcats { margin: 0 0 40px; }
.v2-subcats-title {
    font-family: 'Trirong', serif;
    font-size: 22px; font-weight: 700;
    color: #131739; margin: 0 0 20px;
}
.v2-subcats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.v2-subcat-card {
    display: flex; flex-direction: column;
    min-height: 280px;
    border: 1px solid #E5E7EB; border-radius: 4px;
    background: #fff; padding: 24px;
    transition: box-shadow .25s, transform .25s, border-color .25s;
    contain: layout;
    text-decoration: none !important;
    color: inherit;
    position: relative;
    overflow: hidden;
}
.v2-subcat-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #131739, #0077b3);
    opacity: 0;
    transition: opacity .25s;
}
.v2-subcat-card:hover::before {
    opacity: 1;
}
.v2-subcat-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    transform: translateY(-2px);
    border-color: #0077b3;
}
.v2-subcat-card-image {
    width: 100%;
    aspect-ratio: 4/3;
    height: auto;
    overflow: hidden;
    background: #ffffff;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 16px;
    border-radius: 4px;
}
.v2-subcat-card-img {
    max-width: 100%; max-height: 100%;
    width: auto; height: auto;
    object-fit: contain;
    transition: transform 0.3s ease;
}
.v2-subcat-card:hover .v2-subcat-card-img {
    transform: scale(1.05);
}
.v2-subcat-card-placeholder {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 48px; color: #ccc;
}
.v2-subcat-card-body {
    display: flex; flex-direction: column; flex: 1;
}
.v2-subcat-card-title {
    font-size: 18px; font-weight: 700;
    line-height: 1.3; color: #131739;
    margin: 0 0 4px;
}
.v2-subcat-card:hover .v2-subcat-card-title {
    color: #0077b3;
}
.v2-subcat-card-count {
    font-size: 13px; color: #888;
}
.v2-subcat-card-desc {
    font-size: 14px; color: #666; line-height: 1.5;
    margin: 12px 0 16px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.v2-subcat-card-cta {
    display: inline-block;
    background: #F59E0B; color: #1a1a1a !important;
    padding: 8px 16px; border-radius: 4px;
    font-size: 13px; font-weight: 600;
    transition: background .2s;
    margin-top: auto;
}
.v2-subcat-card-cta:hover {
    background: #D97706;
}

/* ===== Tab Navigation (匹配L1 jcl-tab样式) ===== */
body.jmp-cat-sub-v2-page .jcl-tab-nav {
    display: flex;
    position: sticky;
    top: 90px;
    z-index: 100;
    background: #fff;
    border-bottom: 2px solid #e8e8e8;
    padding: 0;
    margin-bottom: 16px;
    border-radius: 0;
}
body.jmp-cat-sub-v2-page .jcl-tab-link {
    display: block;
    flex: 1;
    text-align: center;
    padding: 12px 20px;
    font-size: 13px;
    font-weight: 600;
    color: #666;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    border-radius: 0;
    text-transform: none;
    letter-spacing: normal;
}
body.jmp-cat-sub-v2-page .jcl-tab-link:hover {
    background: transparent;
    border-bottom-color: #ccc;
}
body.jmp-cat-sub-v2-page .jcl-tab-link.active {
    background: transparent;
    color: #006faa;
    border-bottom-color: #006faa;
    box-shadow: none;
}

/* 响应式 */
@media (max-width: 768px) {
    /* Mobile: hide content-area search bar (users use Ctrl+K overlay search) */
    .jmp-table-search-wrap { display: none !important; }
    body.jmp-cat-sub-v2-page .v2-info-area h1 { font-size: 22px; }
    body.jmp-cat-sub-v2-page .v2-info-stats { gap: 12px; font-size: 13px; }
    body.jmp-cat-sub-v2-page .jcl-tab-nav {
        top: 60px;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
    }
    body.jmp-cat-sub-v2-page .jcl-tab-nav::-webkit-scrollbar { display: none; }
    body.jmp-cat-sub-v2-page .jcl-tab-link { flex: none; padding: 8px 14px; font-size: 11px; }
    .v2-product-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .v2-subcats-grid { grid-template-columns: 1fr; gap: 16px; }
    .v2-subcat-card { padding: 18px; min-height: auto; }
    .v2-subcat-card-title { font-size: 16px; }
    .v2-subcat-card-image { aspect-ratio: 16/9; }
    .v2-subcat-card-cta { font-size: 12px; padding: 6px 14px; }
}

/* ===== Scroll margins for tab navigation ===== */
body.jmp-cat-sub-v2-page #jmp-categories,
body.jmp-cat-sub-v2-page #jmp-applications,
body.jmp-cat-sub-v2-page #jmp-process,
body.jmp-cat-sub-v2-page .jcl-faq {
    scroll-margin-top: 150px;
}
@media (max-width: 480px) {
    .v2-product-grid {
        grid-template-columns: 1fr;
    }
}

/* Filter components */
.jmp-cat-sub-v2-page .jcl-filter-group { margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid #E5E7EB; }
.jmp-cat-sub-v2-page .jcl-filter-group:last-of-type { border-bottom: none; }
.jmp-cat-sub-v2-page .jcl-filter-title { font-size: 13px; font-weight: 700; color: #131739; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.8px; }
.jmp-cat-sub-v2-page .jcl-filter-input { width: 100%; padding: 10px 12px !important; border: 1px solid #d1d5db !important; border-radius: 4px !important; font-size: 14px; box-sizing: border-box; color: #131739; transition: border-color .2s, box-shadow .2s; }
.jmp-cat-sub-v2-page .jcl-filter-input:focus { border-color: #0077b3 !important; box-shadow: 0 0 0 3px rgba(0,119,179,.15) !important; outline: none; }
.jmp-cat-sub-v2-page .jcl-clear-btn { width: 100%; padding: 9px; background: #131739; color: #fff; border: none; border-radius: 6px; cursor: pointer; font-size: 12px; font-weight: 600; margin-bottom: 20px; transition: background 0.15s; }
.jmp-cat-sub-v2-page .jcl-clear-btn:hover { background: #05060F; }
.jmp-cat-sub-v2-page .jcl-range-row { display: flex; flex-direction: column; gap: 6px; margin: 4px 0; }
.jmp-cat-sub-v2-page .jcl-range-line { display: flex; align-items: center; gap: 6px; }
.jmp-cat-sub-v2-page .jcl-range-line label { font-size: 12px; color: #131739; font-weight: 600; min-width: 32px; }
.jmp-cat-sub-v2-page .jcl-range-input { flex: 1; padding: 6px 8px !important; border: 1px solid #d1d5db !important; border-radius: 4px !important; font-size: 13px !important; width: 100%; box-sizing: border-box; color: #131739; }
.jmp-cat-sub-v2-page .jcl-filter-collapsible { margin-bottom: 12px; }
.jmp-cat-sub-v2-page .jcl-filter-collapsible summary { font-size: 13px; font-weight: 700; color: #131739; text-transform: uppercase; letter-spacing: 0.8px; cursor: pointer; padding: 10px 0 10px 12px; list-style: none; border-left: 3px solid transparent; transition: border-color .2s; display: flex; align-items: center; justify-content: space-between; }
.jmp-cat-sub-v2-page .jcl-filter-collapsible summary::-webkit-details-marker { display: none; }
.jmp-cat-sub-v2-page .jcl-filter-collapsible summary::after { content: '+'; font-size: 16px; color: #006faa; flex-shrink: 0; margin-left: 8px; font-weight: 400; line-height: 1; }
.jmp-cat-sub-v2-page .jcl-filter-collapsible[open] summary::after { content: '\2212'; }
.jmp-cat-sub-v2-page .jcl-filter-collapsible[open] summary { border-left-color: #006faa; }
.jmp-cat-sub-v2-page .jcl-cb-item { display: flex; align-items: center; gap: 7px; padding: 5px 8px; border-radius: 5px; cursor: pointer; font-size: 12px; color: #131739; transition: background 0.12s; }
.jmp-cat-sub-v2-page .jcl-cb-item:hover { background: #E5E7EB; }
.jmp-cat-sub-v2-page .jcl-cb-item input { width: 15px; height: 15px; accent-color: #0077b3; cursor: pointer; }

/* Filter toggle button — hidden on desktop, visible on mobile */
.jmp-cat-sub-v2-page .jcl-filter-toggle {
    display: none;
}

/* Scrollbar (target scroll container, not .jcl-sidebar which is overflow:hidden) */
.jmp-cat-sub-v2-page .jcl-filters-scroll::-webkit-scrollbar { width: 5px; }
.jmp-cat-sub-v2-page .jcl-filters-scroll::-webkit-scrollbar-track { background: transparent; }
.jmp-cat-sub-v2-page .jcl-filters-scroll::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 10px; }
.jmp-cat-sub-v2-page .jcl-filters-scroll { scrollbar-width: thin; scrollbar-color: #d1d5db transparent; }

/* Tablet */
@media (max-width: 1023px) and (min-width: 769px) {
    .jmp-cat-sub-v2-page .v2-content-wrap {
        flex-direction: column;
    }
    .jmp-cat-sub-v2-page .jcl-sidebar {
        width: 100%;
        position: static;
        max-height: none;
    }
    .v2-subcats-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Mobile */
@media (max-width: 768px) {
    .jmp-cat-sub-v2-page .v2-content-wrap {
        flex-direction: column !important;
        max-width: 100% !important;
        padding: 0 16px !important;
    }
    .jmp-cat-sub-v2-page .v2-main {
        width: 100%;
    }
    .jmp-cat-sub-v2-page .v2-breadcrumb {
        width: 100%;
        padding: 12px 16px;
        max-width: 100%;
        box-sizing: border-box;
    }
    html, body {
        overflow-x: hidden;
    }
    .jmp-cat-sub-v2-page .jcl-filter-toggle {
        display: flex;
        align-items: center;
        gap: 8px;
        width: 100%;
        padding: 12px 16px;
        background: #ffffff;
        border: 1px solid #e8e8e8;
        border-radius: 4px;
        font-size: 14px;
        font-weight: 600;
        color: #131739;
        cursor: pointer;
        margin-bottom: 12px;
    }
    .jmp-cat-sub-v2-page .jcl-filter-toggle svg {
        flex-shrink: 0;
    }
    .jmp-cat-sub-v2-page .jcl-filter-count {
        background: #0077b3;
        color: #fff;
        font-size: 11px;
        font-weight: 700;
        padding: 2px 8px;
        border-radius: 10px;
        margin-left: auto;
    }
    .jmp-cat-sub-v2-page .jcl-sidebar {
        display: none;
        border-radius: 0 !important;
        margin: 0 !important;
        padding: 16px !important;
        border-top: none !important;
        max-height: 70vh;
        overflow-y: auto;
    }
    .jmp-cat-sub-v2-page .jcl-sidebar.jcl-sidebar-open {
        display: block;
    }
    .jmp-cat-sub-v2-page .jcl-filter-toggle.jcl-toggle-active {
        background: #131739;
        color: #ffffff;
        border-color: #131739;
    }
    .jmp-cat-sub-v2-page .jcl-filter-toggle.jcl-toggle-active svg {
        stroke: #ffffff;
    }
}

/* Applications & Our Process - align with product grid */
.jmp-cat-sub-v2-page .v2-section-wrapper {
    width: 100%;
    margin: 56px 0 0 0;
    padding: 40px 0;
    border-top: 1px solid #e8e8e8;
}
.jmp-cat-sub-v2-page .v2-section-wrapper#jmp-process {
    width: 100%;
    margin: 56px 0 0 0;
    padding: 40px 0;
    background: #f9fafb;
    box-sizing: border-box;
    border-top: none;
    border-bottom: 1px solid #e8e8e8;
}

/* Applications 对齐L1（在v2-main内，不跳出） */
.jmp-cat-sub-v2-page .v2-section-wrapper#jmp-applications {
    width: 100%;
    margin: 56px 0 0 0;
    padding: 40px 0;
    background: #fff;
    box-sizing: border-box;
}

@media (max-width: 768px) {
    .jmp-cat-sub-v2-page .v2-section-wrapper {
        max-width: 100%;
        padding: 24px 16px;
    }
    .jmp-cat-sub-v2-page .v2-section-wrapper#jmp-process,
    .jmp-cat-sub-v2-page .v2-section-wrapper#jmp-applications {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding: 24px 16px;
    }
    .jmp-cat-sub-v2-page .jcl-faq-list {
        grid-template-columns: 1fr;
    }
}

/* === FAQ Section === */
.jmp-cat-sub-v2-page .jcl-faq {
    width: 100%;
    margin: 56px 0 0;
    padding: 40px 0;
    border-top: 1px solid #e8e8e8;
    box-sizing: border-box;
}
.jmp-cat-sub-v2-page .jcl-section-title {
    font-size: 20px;
    color: #131739;
    margin: 0 0 24px;
    font-weight: 600;
}
.jmp-cat-sub-v2-page .jcl-faq-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    align-items: start;
}
.jmp-cat-sub-v2-page .jcl-faq-item {
    border: 1px solid #e8e8e8;
    border-radius: 4px;
    overflow: hidden;
}
.jmp-cat-sub-v2-page .jcl-faq-q {
    padding: 14px 16px;
    font-size: 14px;
    font-weight: 600;
    color: #131739;
    cursor: pointer;
    list-style: none;
    background: #f9fafb;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.jmp-cat-sub-v2-page .jcl-faq-q::after {
    content: '+';
    font-size: 18px;
    color: #006faa;
    flex-shrink: 0;
    margin-left: 12px;
    font-weight: 400;
    line-height: 1;
}
.jmp-cat-sub-v2-page .jcl-faq-item[open] .jcl-faq-q::after {
    content: '\2212';
}
.jmp-cat-sub-v2-page .jcl-faq-item[open] {
    border-color: #006faa;
}
.jmp-cat-sub-v2-page .jcl-faq-q::-webkit-details-marker {
    display: none;
}
.jmp-cat-sub-v2-page .jcl-faq-a {
    padding: 12px 16px 16px;
    font-size: 13px;
    line-height: 1.7;
    color: #555;
}
@media (max-width: 768px) {
    .jmp-cat-sub-v2-page .jcl-faq-list {
        grid-template-columns: 1fr;
    }
}

/* === SEO Content (fills right content area) === */
.jmp-cat-sub-v2-page .jcl-seo {
    width: 100%;
    margin: 56px 0 0 0;
    padding: 40px 0;
    border-top: 1px solid #e8e8e8;
    box-sizing: border-box;
}
.jmp-cat-sub-v2-page .jcl-seo .jcl-section-title {
    font-size: 20px;
    color: #131739;
    margin: 0 0 20px;
    font-weight: 600;
}
.jmp-cat-sub-v2-page .jcl-seo-body {
    max-width: 100%;
    font-size: 14px;
    line-height: 1.8;
    color: #555;
}
.jmp-cat-sub-v2-page .jcl-seo-body p {
    margin: 0 0 16px;
}
.jmp-cat-sub-v2-page .jcl-seo-body a {
    color: #0077b3;
    text-decoration: none;
}
.jmp-cat-sub-v2-page .jcl-seo-body a:hover {
    text-decoration: underline;
}

/* === CTA Section (full-width, aligned with L1) === */
.jmp-cat-sub-v2-page .jcl-cta {
    width: 100vw;
    margin: 32px calc(-50vw + 50%) 16px;
    padding: 40px 32px;
    background: linear-gradient(135deg, #05060F 0%, #1a1f3d 100%);
    border-radius: 0;
    text-align: center;
}
.jmp-cat-sub-v2-page .jcl-cta h3 {
    font-family: 'Trirong', serif;
    color: #fff;
    font-size: 22px;
    margin: 0 0 8px;
    font-weight: 500;
}
.jmp-cat-sub-v2-page .jcl-cta p {
    color: rgba(255,255,255,0.65);
    font-size: 14px;
    margin: 0 0 20px;
}
.jmp-cat-sub-v2-page .jcl-cta-buttons {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.jmp-cat-sub-v2-page .jcl-btn-primary {
    display: inline-block;
    padding: 12px 28px;
    background: #0077b3;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    border-radius: 50px;
    text-decoration: none;
    border: 1px solid #0077b3;
    transition: background 0.2s;
}
.jmp-cat-sub-v2-page .jcl-btn-primary:hover {
    background: #006faa;
    border-color: #006faa;
}
.jmp-cat-sub-v2-page .jcl-btn-outline {
    display: inline-block;
    padding: 12px 28px;
    background: transparent;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 50px;
    text-decoration: none;
    transition: border-color 0.2s;
}
.jmp-cat-sub-v2-page .jcl-btn-outline:hover {
    border-color: #fff;
}
@media (max-width: 768px) {
    .jmp-cat-sub-v2-page .jcl-cta {
        width: 100%;
        margin: 24px -16px 16px;
        padding: 32px 16px;
    }
    .jmp-cat-sub-v2-page .jcl-cta-buttons {
        flex-direction: column;
        align-items: center;
    }
}

/* ===== Mobile scroll margins for tab navigation ===== */
@media (max-width: 768px) {
    body.jmp-cat-sub-v2-page #jmp-categories,
    body.jmp-cat-sub-v2-page #jmp-applications,
    body.jmp-cat-sub-v2-page #jmp-process,
    body.jmp-cat-sub-v2-page .jcl-faq {
        scroll-margin-top: 120px;
    }
}

/* === L3 Product Table (T8) === */
.jmp-product-table-section {
    margin: 0 0 24px 0;
    overflow-x: auto;
}
.jmp-product-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    font-family: 'DM Sans', sans-serif;
}
.jmp-product-table thead th {
    background: #F3F4F6;
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
    color: #131739;
    border-bottom: 2px solid #E5E7EB;
    white-space: nowrap;
    user-select: none;
}
.jmp-product-table thead th[data-sort] {
    cursor: pointer;
}
.jmp-product-table thead th[data-sort]:hover {
    background: #ebedf5;
}
.jmp-sort-icon {
    font-size: 10px;
    color: #999;
    margin-left: 4px;
}
.jmp-product-table tbody td {
    padding: 9px 12px;
    border-bottom: 1px solid #eee;
    color: #333;
}
.jmp-row-even { background: #fff; }
.jmp-row-odd { background: #F9FAFB; }
.jmp-product-table tbody tr:hover { background: #F3F4F6; }
.jmp-td-sku a {
    color: #0066cc;
    text-decoration: none;
    font-weight: 600;
}
.jmp-td-sku a:hover { text-decoration: underline; }

/* Pagination */
.jmp-table-pagination {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 0;
    font-size: 13px;
    flex-wrap: wrap;
}
.jmp-page-info { color: #666; margin-right: 8px; }
.jmp-page-btn {
    border: 1px solid #E5E7EB;
    background: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    cursor: pointer;
    color: #131739;
    font-size: 13px;
}
.jmp-page-btn:hover { background: #F3F4F6; }
.jmp-page-current {
    background: #131739;
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    font-weight: 600;
}
.jmp-page-dots { color: #999; padding: 4px 4px; }

/* Loading spinner */
.jmp-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid #E5E7EB;
    border-top-color: #131739;
    border-radius: 50%;
    animation: jmp-spin 0.6s linear infinite;
}
@keyframes jmp-spin { to { transform: rotate(360deg); } }
.jmp-table-empty {
    text-align: center;
    padding: 40px;
    color: #999;
    font-size: 14px;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .jmp-product-table-section { margin: 0 -16px 24px -16px; }
    .jmp-product-table { font-size: 12px; min-width: 600px; }
    .jmp-product-table thead th,
    .jmp-product-table tbody td { padding: 7px 8px; }
    /* Sticky first column (Part Number) on mobile */
    .jmp-product-table-section {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        position: relative;
    }
    .jmp-td-sku {
        position: sticky;
        left: 0;
        background: inherit;
        z-index: 1;
    }
    .jmp-row-even .jmp-td-sku { background: #fff; }
    .jmp-row-odd .jmp-td-sku { background: #F9FAFB; }
    .jmp-product-table tbody tr:hover .jmp-td-sku { background: #F3F4F6; }
    .jmp-td-sku::after {
        content: '';
        position: absolute;
        top: 0;
        right: -6px;
        bottom: 0;
        width: 6px;
        background: linear-gradient(to right, rgba(0,0,0,0.06), transparent);
        pointer-events: none;
    }
    .jmp-table-search-wrap { max-width: 100%; }
    .jmp-table-pagination { font-size: 12px; }
    .jmp-page-btn { padding: 3px 7px; font-size: 12px; }
}

/* === Product Search Box === */
.jmp-table-search-wrap {
    position: relative;
    max-width: 320px;
    margin: 8px 0 0 0;
}
.jmp-table-search {
    width: 100%;
    padding: 10px 12px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 4px !important;
    font-size: 16px;
    font-family: 'DM Sans', sans-serif;
    color: #475569;
    background: #fff;
    outline: none;
    transition: border-color 0.2s;
    box-sizing: border-box;
}
.jmp-table-search:focus {
    border-color: #0077b3 !important;
    box-shadow: 0 0 0 3px rgba(0,119,179,.15) !important;
}
.jmp-table-search::placeholder {
    color: #999;
}
.jmp-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    pointer-events: none;
}

/* L3: Search box aligned to right of title area */
.jmp-cat-sub-v2-page .v2-info-area .v2-info-top-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}
.jmp-cat-sub-v2-page .v2-info-area .v2-info-left {
    flex: 1;
    min-width: 0;
}
.jmp-cat-sub-v2-page .v2-info-area .v2-info-right {
    flex-shrink: 0;
    padding-top: 4px;
}
.jmp-cat-sub-v2-page .v2-info-area .v2-info-right .jmp-table-search-wrap {
    width: 320px;
}

/* Content top spacing — body padding-top(90px) handles fixed header offset */
body.single-product .site-content {
    padding-top: 20px !important;
    margin-top: 0 !important;
}

/* Hide Astra archive/title on product pages */
body.single-product .ast-archive-title,
body.single-product .entry-title {
    display: none !important;
}
/* Only constrain ast-container in content area, NOT header (header's site-primary-header-wrap also has ast-container class) */
body.single-product .site-content .ast-container {
    max-width: 100% !important;
    padding: 0 !important;
}
body.single-product #primary {
    padding-top: 0 !important;
    margin: 0 !important;
}

/* Product detail wrapper — sync width with L2/L3 content-wrap */
/* Uses high specificity to override force-fullwidth.php inline style */
html body.single-product .site-content .jpl-wrapper {
    max-width: clamp(1440px, 85vw, 1920px) !important;
    width: 100% !important;
    padding: 0 24px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}
/* Remove Elementor widget-wrap padding that shifts content 10px right */
html body.single-product .elementor-widget-wrap {
    padding: 0 !important;
}

/* Product detail breadcrumb — match L2/L3 padding (16px 24px) */
html body.single-product .jpl-bc {
    padding: 16px 24px !important;
}

/* Product detail page body background — white, match L2/L3 */
html body.single-product {
    background-color: #ffffff !important;
}

/* Remove blue accent line under header — match L2/L3 which don't have it */
html body.single-product.jmp-product-accent-page #masthead {
    border-bottom: none !important;
}
/* Mobile menu panel: dark background for white text */
@media (max-width: 921px) {
    body.jmp-cat-sub-v2-page .ast-mobile-header-content {
        background: rgba(19, 23, 57, 0.95) !important;
        padding: 16px 20px !important;
    }
    body.jmp-cat-sub-v2-page .ast-mobile-header-content .main-header-menu .menu-item > .menu-link {
        color: #ffffff !important;
        border-bottom: 1px solid rgba(255,255,255,0.1) !important;
        padding: 12px 0 !important;
        font-size: 16px !important;
    }
    body.jmp-cat-sub-v2-page .ast-mobile-header-content .main-header-menu .menu-item > .menu-link:hover {
        color: #0077b3 !important;
    }
    body.jmp-cat-sub-v2-page .ast-mobile-header-content .main-header-menu {
        background: transparent !important;
    }
    body.jmp-cat-sub-v2-page .ast-mobile-header-content .main-header-menu .menu-link {
        background: transparent !important;
    }
}

/* === Bearing Life Calculator: restore normal container width === */
body.page-id-27444 .ast-container {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.page-id-27444 .site-content .ast-container {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
}

/* a11y: Links in text blocks must be distinguishable (link-in-text-block fix) */
.jcl-seo-body a { text-decoration: underline !important; text-underline-offset: 2px; }
.jcl-seo-body a:hover { text-decoration: none; }
.v2-breadcrumb a { text-decoration: underline !important; text-underline-offset: 2px; }
.v2-breadcrumb a:hover { text-decoration: none; }
