/*
Theme Name: 永信医馆
Theme URI: https://jiankangyx.com
Description: 永信医馆自定义主题 - 口腔/中医/书院三实体电商网站
Version: 1.0.3
Author: 永信医馆技术团队
Author URI: https://jiankangyx.com
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: GNU GPL v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: jiankangyx
Tags: ecommerce, woocommerce, gutenberg, responsive, custom-colors, editor-style
*/

/* === CSS Custom Properties === */
:root {
    --container-normal: 1200px;
    --container-narrow: 750px;
    --container-full: 100%;
    --container-width: var(--container-normal);

    --color-oral-primary: #2B6CB0;
    --color-oral-secondary: #EBF2FA;
    --color-oral-accent: #1A365D;

    --color-tcm-primary: #D4302F;
    --color-tcm-secondary: #FFF5F5;
    --color-tcm-gold: #C8A96E;

    --color-academy-primary: #2D6A4F;
    --color-academy-secondary: #F0F7F4;
    --color-academy-ink: #1A1A1A;

    --color-primary: var(--color-oral-primary);
    --color-secondary: var(--color-oral-secondary);
    --color-accent: var(--color-oral-accent);

    --color-text: #333333;
    --color-text-light: #666666;
    --color-text-lighter: #999999;
    --color-bg: #FFFFFF;
    --color-bg-alt: #F7F7F7;
    --color-border: #E0E0E0;

    --font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-family-heading: "PingFang SC", "Microsoft YaHei", sans-serif;
    --font-size-base: 16px;
    --font-size-sm: 0.875rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 2rem;
    --font-size-4xl: 2.5rem;
    --line-height-base: 1.6;
    --line-height-heading: 1.3;

    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-2xl: 3rem;
    --spacing-3xl: 4rem;

    --breakpoint-desktop: 1200px;
    --breakpoint-tablet: 768px;
    --breakpoint-mobile: 767px;

    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1);

    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-full: 9999px;

    --transition-fast: 150ms ease;
    --transition-base: 300ms ease;
    --transition-slow: 500ms ease;
}

/* === Reset & Base === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: var(--font-size-base); -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    color: var(--color-text);
    background: var(--color-bg);
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--font-family-heading); line-height: var(--line-height-heading); color: var(--color-text); }
h1 { font-size: var(--font-size-4xl); }
h2 { font-size: var(--font-size-3xl); }
h3 { font-size: var(--font-size-2xl); }
h4 { font-size: var(--font-size-xl); }
h5, h6 { font-size: var(--font-size-lg); }
a { color: var(--color-primary); text-decoration: none; transition: color var(--transition-fast); }
a:hover { color: var(--color-accent); }
img { max-width: 100%; height: auto; display: block; }

/* === Container System (仿Astra) === */
.jiankangyx-container {
    width: 100%;
    max-width: var(--container-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--spacing-md);
    padding-right: var(--spacing-md);
}
.jiankangyx-container-normal { --container-width: var(--container-normal); }
.jiankangyx-container-narrow { --container-width: var(--container-narrow); }
.jiankangyx-container-full { --container-width: var(--container-full); max-width: none; }

/* === Screen Reader === */
.screen-reader-text {
    border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
    height: 1px; margin: -1px; overflow: hidden; padding: 0;
    position: absolute; width: 1px; word-wrap: normal;
}
.screen-reader-text:focus {
    background: #fff; clip: auto; clip-path: none; display: block;
    font-size: 1rem; height: auto; left: 5px; line-height: normal;
    padding: 15px 23px 14px; top: 5px; width: auto; z-index: 100000;
}

/* === Clearfix === */
.clearfix::after { content: ""; display: table; clear: both; }

/* === Body entity classes (动态切换实体色系) === */
body.entity-oral { --color-primary: var(--color-oral-primary); --color-secondary: var(--color-oral-secondary); --color-accent: var(--color-oral-accent); }
body.entity-tcm { --color-primary: var(--color-tcm-primary); --color-secondary: var(--color-tcm-secondary); --color-accent: var(--color-tcm-gold); }
body.entity-academy { --color-primary: var(--color-academy-primary); --color-secondary: var(--color-academy-secondary); --color-accent: var(--color-academy-ink); }

/* === Button Styles === */
.jiankangyx-button {
    display: inline-block;
    padding: var(--spacing-sm) var(--spacing-lg);
    background: var(--color-primary);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-md);
    font-size: var(--font-size-base);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-align: center;
    text-decoration: none;
}
.jiankangyx-button:hover { background: var(--color-accent); color: #ffffff; }

/* === Header === */
.site-header {
    background: #ffffff;
    border-bottom: 2px solid var(--color-primary);
    position: sticky;
    top: 0;
    z-index: 1000;
}
.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px;
    min-height: 60px;
}
.site-branding {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}
.site-logo {
    flex-shrink: 0;
    line-height: 0;
}
.site-logo .custom-logo {
    max-height: 50px;
    width: auto;
    height: auto;
}
.site-title { font-size: var(--font-size-xl); margin: 0; }
.site-title a { color: var(--color-text); text-decoration: none; }
.site-description { display: none; }
.main-navigation .primary-menu {
    display: flex;
    list-style: none;
    gap: 2px;
}
.main-navigation .primary-menu a {
    display: block;
    padding: 20px 16px;
    color: var(--color-text);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    transition: color var(--transition-fast);
    position: relative;
}
.main-navigation .primary-menu a:hover {
    color: var(--color-primary);
}
.main-navigation .primary-menu a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 16px;
    right: 16px;
    width: 0;
    height: 2px;
    background: var(--color-primary);
    transition: width var(--transition-base);
}
.main-navigation .primary-menu a:hover::after {
    width: calc(100% - 32px);
}
.main-navigation .primary-menu .current-menu-item > a {
    color: var(--color-primary);
    font-weight: 600;
}
.main-navigation .primary-menu .current-menu-item > a::after {
    width: calc(100% - 32px);
}
.header-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}
.cart-link {
    position: relative;
    font-size: 1.5rem;
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--transition-fast);
}
.cart-link:hover { color: var(--color-primary); }
.cart-count {
    position: absolute;
    top: -8px;
    right: -10px;
    background: var(--color-primary);
    color: #fff;
    font-size: 0.7rem;
    width: 18px;
    height: 18px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
}
.mobile-menu-toggle {
    display: none;
    flex-direction: column;
    gap: 4px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
}
.mobile-menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--color-text);
    border-radius: 2px;
    transition: background var(--transition-fast);
}
.mobile-menu-toggle:hover span {
    background: var(--color-primary);
}

/* ===== 分类导航栏 ===== */
.category-nav {
    background: #FAFBFC;
    border-bottom: 1px solid #E8ECF1;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.category-nav::-webkit-scrollbar { display: none; }

.category-nav-inner {
    max-width: var(--container-normal);
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    flex-wrap: nowrap;
}

.category-nav-item {
    display: inline-flex;
    align-items: center;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    color: #555;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    border: 1.5px solid transparent;
    background: #fff;
    flex-shrink: 0;
}

.category-nav-item:hover {
    background: #EEF2F7;
    color: #333;
}

.category-nav-item.active {
    background: var(--cat-color, var(--color-primary));
    color: #fff;
    border-color: var(--cat-color, var(--color-primary));
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
    font-weight: 600;
}

.category-nav-item.active:hover {
    background: var(--cat-color, var(--color-primary));
    color: #fff;
}

/* ===== 实体区段分隔符 ===== */
.category-nav-sep {
    display: inline-block;
    width: 1.5px;
    height: 20px;
    border-radius: 1px;
    background: var(--cat-color, #E0E0E0);
    opacity: 0.35;
    flex-shrink: 0;
    align-self: center;
}

/* ===== 实体区段标签 ===== */
.category-nav-label {
    display: inline-flex;
    align-items: center;
    padding: 0 4px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: var(--cat-color, #999);
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
    position: relative;
}

/* 实体标签左侧小色条 */
.category-nav-label::before {
    content: "";
    display: inline-block;
    width: 3px;
    height: 14px;
    border-radius: 2px;
    background: var(--cat-color, #ccc);
    margin-right: 5px;
    flex-shrink: 0;
}

/* ===== "全部" 按钮（中性色） ===== */
.category-nav-all {
    font-weight: 600;
}

.category-nav-all.active {
    background: #555;
    border-color: #555;
}

/* 响应式：移动端 */
@media (max-width: 768px) {
    .category-nav-inner {
        padding: 0 16px;
        gap: 6px;
        min-height: 42px;
    }
    .category-nav-item {
        padding: 4px 12px;
        font-size: 0.8rem;
        border-radius: 16px;
    }
    .category-nav-label {
        font-size: 0.65rem;
        padding: 0 2px;
    }
    .category-nav-label::before {
        width: 2px;
        height: 12px;
        margin-right: 3px;
    }
    .category-nav-sep {
        height: 16px;
    }
}

/* ===== 分页导航 ===== */
.pagination-nav {
    margin: 40px 0;
    text-align: center;
}

.pagination-nav .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    margin: 0 4px;
    padding: 0 12px;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #555;
    text-decoration: none;
    background: #F5F7FA;
    border: 1px solid #E0E4E8;
    transition: all 0.2s;
}

.pagination-nav .page-numbers:hover {
    background: #EEF2F7;
    color: #333;
}

.pagination-nav .page-numbers.current {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.pagination-nav .next,
.pagination-nav .prev {
    padding: 0 16px;
}


/* === Mobile Menu === */
.mobile-menu {
    position: fixed;
    top: 0; left: -280px;
    width: 280px; height: 100%;
    background: #ffffff;
    z-index: 9999;
    transition: left var(--transition-base);
    overflow-y: auto;
    box-shadow: var(--shadow-lg);
}
.mobile-menu.active { left: 0; }
.mobile-menu-close {
    position: absolute; top: 10px; right: 10px;
    background: none; border: none;
    font-size: 1.5rem; cursor: pointer;
}
.mobile-menu .mobile-nav { list-style: none; padding: 60px 20px 20px; }
.mobile-menu .mobile-nav a {
    display: block;
    padding: 12px 14px;
    color: var(--color-text);
    border-bottom: 1px solid var(--color-border);
    text-decoration: none;
    transition: all var(--transition-fast);
}
.mobile-menu .mobile-nav a:hover {
    color: var(--color-primary);
    background: var(--color-secondary);
    padding-left: 20px;
}
.mobile-menu .mobile-nav .current-menu-item > a {
    color: var(--color-primary);
    font-weight: 600;
    border-left: 3px solid var(--color-primary);
    background: var(--color-secondary);
}
body.menu-open { overflow: hidden; }
.mobile-menu-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.5); z-index: 9998;
    opacity: 0; visibility: hidden; transition: all var(--transition-base);
}
body.menu-open .mobile-menu-overlay { opacity: 1; visibility: visible; }

/* === Footer === */
.site-footer {
    background: var(--color-bg-alt);
    border-top: 1px solid var(--color-border);
    padding: var(--spacing-2xl) 0 var(--spacing-lg);
    margin-top: var(--spacing-3xl);
}
.footer-widgets {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spacing-xl);
}
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: var(--spacing-lg);
    margin-top: var(--spacing-lg);
    border-top: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
    color: var(--color-text-light);
}

/* === Post Grid === */
.post-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-xl);
}
.post-card {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: all var(--transition-base);
}
.post-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.post-card .post-thumbnail img { width: 100%; height: 200px; object-fit: cover; }
.post-card .post-content { padding: var(--spacing-lg); }
.post-card .post-title { font-size: var(--font-size-xl); margin-bottom: var(--spacing-sm); }
.post-card .post-meta { font-size: var(--font-size-sm); color: var(--color-text-light); margin-bottom: var(--spacing-md); }
.post-card .post-excerpt { margin-bottom: var(--spacing-md); }

/* === 404 === */
.error-404 { text-align: center; padding: var(--spacing-3xl) 0; }
.error-code { font-size: 8rem; color: var(--color-primary); margin-bottom: 0; }
.error-actions { margin-top: var(--spacing-xl); display: flex; gap: var(--spacing-md); justify-content: center; flex-wrap: wrap; }

/* === Entry Content === */
.entry-content { margin: var(--spacing-lg) 0; }
.entry-meta { font-size: var(--font-size-sm); color: var(--color-text-light); margin: var(--spacing-md) 0; display: flex; gap: var(--spacing-md); }
.entry-footer { margin-top: var(--spacing-xl); padding-top: var(--spacing-lg); border-top: 1px solid var(--color-border); }

/* === Widget === */
.widget { margin-bottom: var(--spacing-lg); }
.widget-title { font-size: var(--font-size-lg); margin-bottom: var(--spacing-md); padding-bottom: var(--spacing-sm); border-bottom: 2px solid var(--color-primary); }
.widget ul { list-style: none; padding: 0; }
.widget ul li { padding: var(--spacing-xs) 0; }

/* === Footer Contact Links === */
.footer-phone .tel-link,
.footer-address .address-link {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition-base);
    cursor: pointer;
}
.footer-phone .tel-link:hover,
.footer-address .address-link:hover {
    color: var(--color-primary-dark);
    text-decoration: underline;
}
.footer-phone .tel-link:active,
.footer-address .address-link:active {
    opacity: 0.7;
}
.footer-label {
    color: var(--color-text-light);
}

/* === Responsive === */
@media (max-width: 1199px) and (min-width: 768px) {
    :root { --container-width: calc(100% - 40px); }
    .post-grid { grid-template-columns: repeat(2, 1fr); }
    .footer-widgets { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
    :root { --container-width: calc(100% - 20px); --font-size-base: 14px; }
    .main-navigation { display: none; }
    .mobile-menu-toggle { display: flex; }
    .post-grid { grid-template-columns: 1fr; }
    .footer-widgets { grid-template-columns: 1fr; }
    .footer-widget-area:nth-child(2),
    .footer-widget-area:nth-child(3) { display: none; }
    .footer-bottom { flex-direction: column; gap: var(--spacing-sm); text-align: center; }
    .error-code { font-size: 4rem; }
    .site-header { position: sticky; top: 0; }
}

/* ===== 导航栏实体色移除修复 (2026-06-14) ===== */
/* 主导航悬停 -> 中性灰 */
.main-navigation .primary-menu a:hover {
    color: #555;
}
/* 主导航下划线 -> 中性灰 */
.main-navigation .primary-menu a::after {
    background: #C0C0C0;
}
/* 主导航当前项 -> 深色继承 */
.main-navigation .primary-menu .current-menu-item > a {
    color: #333;
}
/* 分类导航激活项 -> 中性灰 */
.category-nav-item.active {
    background: #555;
    color: #fff;
    border-color: #555;
}
.category-nav-item.active:hover {
    background: #555;
    color: #fff;
}
/* 分类导航竖线分隔符 -> 隐藏 */
.category-nav-sep {
    display: none !important;
}
/* 分类导航实体标签 -> 中性色 */
.category-nav-label {
    color: #888;
}
.category-nav-label::before {
    background: #C0C0C0;
}
/* 移动端当前项左边框 -> 中性灰 */
.mobile-menu .mobile-nav .current-menu-item > a {
    border-left: 3px solid #999;
}

/* ====== 菜单项：仅登录用户可见 ====== */
.logged-out .um-account,
body:not(.logged-in) .um-account {
    display: none !important;
}
