:root {
            --ls-primary: #8B0000;
            --ls-secondary: #D4A574;
            --ls-accent: #C19A6B;
            --ls-bg: #FAF7F2;
            --ls-dark: #2C2C2C;
        }
@media (min-width: 768px) {
body { padding-bottom: 0; }
}
.bg-primary-ls { background-color: var(--ls-primary) !important; }
.text-primary-ls { color: var(--ls-primary) !important; }
.border-primary-ls { border-color: var(--ls-primary) !important; }
.btn-primary-ls {
background-color: var(--ls-primary);
border-color: var(--ls-primary);
color: white;
}
.btn-primary-ls:hover {
background-color: #6b0000;
border-color: #6b0000;
}
.btn-outline-ls {
border: 2px solid var(--ls-primary);
color: var(--ls-primary);
font-weight: 500;
}
.btn-outline-ls:hover {
background-color: var(--ls-primary);
color: white;
}
.bg-secondary-ls { background-color: var(--ls-secondary); }
.text-secondary-ls { color: var(--ls-secondary); }

/* banner */
.hero-banner {
background: linear-gradient(135deg, #8B0000 0%, #5D0000 100%);
}
.theory-card, .stem-card, .branch-card {
transition: transform 0.2s ease, box-shadow 0.2s, border-color 0.2s;
border: 2px solid transparent;
background: white;
position: relative;
}
.stem-card:hover, .branch-card:hover, .theory-card:hover {
transform: translateY(-4px);
border-color: var(--ls-primary) !important;
box-shadow: 0 8px 20px rgba(139,0,0,0.1);
}
.stem-char, .branch-char {
font-size: 2.5rem;
font-weight: bold;
color: var(--ls-primary);
}
.section-heading {
color: var(--ls-primary);
position: relative;
display: inline-block;
margin-bottom: 2rem;
}
.section-heading::after {
content: '';
display: block;
width: 60px;
height: 3px;
background: var(--ls-secondary);
margin: 10px auto 0;
}
.mobile-bottom-nav {
background: white;
box-shadow: 0 -2px 12px rgba(0,0,0,0.08);
z-index: 1030;
}
.mobile-bottom-nav .nav-link {
color: #333;
font-size: 0.85rem;
padding: 0.5rem 0;
}
.mobile-bottom-nav .nav-link.active {
color: var(--ls-primary);
}
.mobile-bottom-nav i {
font-size: 1.5rem;
display: block;
}
.floating-consult {
position: fixed;
right: 16px;
bottom: 90px;
z-index: 1020;
}
@media (min-width: 768px) {
.floating-consult { bottom: 30px; }
}
.consult-btn {
width: 60px;
height: 60px;
border-radius: 50%;
background: var(--ls-primary);
color: white;
border: none;
font-weight: bold;
box-shadow: 0 4px 12px rgba(139,0,0,0.4);
display: flex;
align-items: center;
justify-content: center;
transition: 0.2s;
}
.consult-btn:hover {
background: #a00000;
color: white;
}

.card-link {
text-decoration: none;
color: inherit;
}

.category-desc {
color: #666;
}
.zhifu-container{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.5rem;
}

.zhifu-container .zhifu-items{
    display:grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.5rem;
}
@media (max-width: 576px) {
    .zhifu-container {
        flex-direction: row;
    }
    .zhifu-container .zhifu-items{
        grid-template-columns: repeat(1, 1fr);
        flex:1;
    }
    .bagua-container{
        flex-direction: row;
        gap: 0.8rem;
    }
    .bagua-container .bagua-items-row{
        grid-template-columns: repeat(1, 1fr);
        flex:1;
        gap: 0.8rem;
    }
}
 /* 主容器卡片风格延续原有阴影圆润感 */
.master-card {
    border: none;
    background: #ffffff;
    transition: box-shadow 0.2s ease;
}
/* 训练卡片统一风格 */
.train-card {
    border: none;
    border-radius: 1.5rem;
    background: #ffffff;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    height: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.train-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 30px -12px rgba(0, 0, 0, 0.12) !important;
}
/* 单一训练卡片（可全卡片点击）增加点击区域友好提示 */
.clickable-card {
    cursor: pointer;
}
.card-icon {
    font-size: 2.5rem;
    color: #2c7a5e;
    margin-bottom: 0.75rem;
}
.train-title {
    font-weight: 700;
    font-size: 1.35rem;
    color: #1e3a2f;
    margin-bottom: 0.5rem;
}
.train-desc {
    font-size: 0.85rem;
    color: #5f6c66;
    line-height: 1.4;
}
/* 复合卡片双按钮样式 */
.dual-action .btn-outline-shaman {
    border-radius: 2rem;
    border: 1px solid #d4e0da;
    background: #fafefc;
    color: #2c7a5e;
    font-weight: 500;
    padding: 0.4rem 1rem;
    transition: all 0.2s;
    font-size: 0.9rem;
}
.dual-action .btn-outline-shaman:hover {
    background-color: #e2f0ea;
    border-color: #b9cfc2;
    color: #1b5e48;
}
.btn-primary-shaman {
    background: #eef6f2;
    border: none;
    border-radius: 2rem;
    color: #2c7a5e;
    font-weight: 500;
    padding: 0.4rem 1rem;
    transition: all 0.2s;
}
.btn-primary-shaman:hover {
    background: #e0ede6;
    color: #165f46;
}
.stretched-link-trigger::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    content: "";
}
/* 避免复合卡片内部按钮被拉伸层覆盖，单独控制 */
.no-stretch .btn,
.no-stretch a:not(.stretched-link) {
    position: relative;
    z-index: 2;
}
hr.divider-light {
    opacity: 0.3;
    width: 60px;
    margin: 1rem auto 0;
}
.section-badge {
    background: #eef3ef;
    color: #2b6a53;
    border-radius: 40px;
    padding: 0.2rem 1rem;
    font-size: 0.8rem;
    display: inline-block;
}

@media (max-width: 576px) {
    .train-title {
        font-size: 1.2rem;
    }
    .card-icon {
        font-size: 2rem;
    }
    .dual-action .btn-outline-shaman, .dual-action .btn-primary-shaman {
        padding: 0.3rem 0.8rem;
        font-size: 0.8rem;
    }
    .train-list{
    --bs-gutter-x:0;
    }
}

.banner-section{
     overflow: hidden;
 }
 .banner-section img {
     margin-top: -11.6%;
     margin-bottom: -11%;
 }