/**
 * 前台通用：昼夜切换 + 返回顶部 + 深色主题覆盖
 * 由各主题 header 引入（theme_asset_url('theme-toggle.css')），页面头部已提前写入
 * html[data-theme]，因此切换不会出现白屏闪烁。
 */

/* ---------------- 漂浮工具按钮 ---------------- */
.cms-page-utils {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 70;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cms-util-btn {
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid #dbe3ec;
    border-radius: 12px;
    background: #fff;
    color: #33475b;
    font-size: 17px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .12);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: opacity .18s ease, transform .18s ease, background .18s ease;
}

.cms-util-btn:hover {
    transform: translateY(-1px);
    background: #f4f7fb;
}

.cms-back-top {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.cms-back-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* 深色下的按钮本体 */
html[data-theme="dark"] .cms-util-btn {
    background: #16212c;
    border-color: #2b3a4a;
    color: #e6edf4;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .45);
}

html[data-theme="dark"] .cms-util-btn:hover {
    background: #1d2b39;
}

/* 移动端让开右侧漂浮联系按钮与底部快捷条 */
@media (max-width: 768px) {
    .cms-page-utils {
        left: 14px;
        right: auto;
        bottom: 90px;
        gap: 8px;
    }

    .cms-util-btn {
        width: 40px;
        height: 40px;
        font-size: 16px;
        border-radius: 10px;
    }
}

@media (max-width: 768px) and (max-height: 520px) {
    .cms-page-utils {
        bottom: 66px;
        flex-direction: row;
    }
}

/* 视口很矮时移到左侧，避免与居中漂浮卡片重叠 */
@media (min-width: 769px) and (max-height: 560px) {
    .cms-page-utils {
        right: auto;
        left: 18px;
        bottom: 18px;
    }
}

/* ---------------- 深色变量 ---------------- */
html[data-theme="dark"] {
    --cms-dark-bg: #0e151e;
    --cms-dark-card: #16212c;
    --cms-dark-soft: #1b2836;
    --cms-dark-ink: #e6edf4;
    --cms-dark-muted: #9fb1c2;
    --cms-dark-line: #2b3a4a;
}

html[data-theme="dark"] body.theme-base {
    --bg: var(--cms-dark-bg);
    --card: var(--cms-dark-card);
    --ink: var(--cms-dark-ink);
    --muted: var(--cms-dark-muted);
    --line: var(--cms-dark-line);
    --brand-soft: #12332e;
    --shadow: 0 8px 24px rgba(0, 0, 0, .42);
}

html[data-theme="dark"] body.theme-portal {
    --pt-bg: var(--cms-dark-bg);
    --pt-card: var(--cms-dark-card);
    --pt-ink: var(--cms-dark-ink);
    --pt-muted: var(--cms-dark-muted);
    --pt-line: var(--cms-dark-line);
    --pt-blue-soft: #1c2f4d;
    --pt-blue-dark: #93b4ff;
    --pt-shadow: 0 4px 16px rgba(0, 0, 0, .45);
}

html[data-theme="dark"] body.theme-admission {
    --adm-cream: var(--cms-dark-bg);
    --adm-card: var(--cms-dark-card);
    --adm-ink: var(--cms-dark-ink);
    --adm-muted: var(--cms-dark-muted);
    --adm-line: var(--cms-dark-line);
    /* 深蓝仍作为品牌底色（页头/转化区/页脚），文字色在下方单独提亮 */
    --adm-navy: #16263d;
    --adm-shadow: 0 10px 30px rgba(0, 0, 0, .45);
}

html[data-theme="dark"] body.theme-landing {
    --ld-cream: var(--cms-dark-bg);
    --ld-card: var(--cms-dark-card);
    --ld-ink: var(--cms-dark-ink);
    --ld-muted: var(--cms-dark-muted);
    --ld-line: var(--cms-dark-line);
    /* 变量保持深绿，供按钮/胶囊等底色使用；文字用下方亮绿覆盖 */
    --ld-green: #0f5132;
    --ld-green-light: #12724a;
}

/* ---------------- 深色：容器与卡片 ---------------- */
html[data-theme="dark"] .site-header,
html[data-theme="dark"] .site-nav,
html[data-theme="dark"] .site-search,
html[data-theme="dark"] .nav-toggle,
html[data-theme="dark"] .hero-main,
html[data-theme="dark"] .hero-sub,
html[data-theme="dark"] .news-item,
html[data-theme="dark"] .news-thumb,
html[data-theme="dark"] .side-card,
html[data-theme="dark"] .qr-card,
html[data-theme="dark"] .side-contact,
html[data-theme="dark"] .article-main,
html[data-theme="dark"] .article-cta,
html[data-theme="dark"] .article-toc,
html[data-theme="dark"] .related-item,
html[data-theme="dark"] .share-btn,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .pager-link,
html[data-theme="dark"] .empty-box,
html[data-theme="dark"] .city-nav-page,
html[data-theme="dark"] .error-page,
html[data-theme="dark"] .strip-item,
html[data-theme="dark"] .card-cover,
html[data-theme="dark"] .step,
html[data-theme="dark"] .land-item,
html[data-theme="dark"] .land-item-thumb,
html[data-theme="dark"] .land-article,
html[data-theme="dark"] .land-inline-cta,
html[data-theme="dark"] .land-related-card,
html[data-theme="dark"] .tax-block {
    background-color: var(--cms-dark-card);
    border-color: var(--cms-dark-line);
}

html[data-theme="dark"] .site-search input[type="search"],
html[data-theme="dark"] .site-search button {
    background: var(--cms-dark-soft);
    border-color: var(--cms-dark-line);
    color: var(--cms-dark-ink);
}

html[data-theme="dark"] .site-search input[type="search"]::placeholder {
    color: var(--cms-dark-muted);
}

/* ---------------- 深色：文字 ---------------- */
html[data-theme="dark"] .site-nav,
html[data-theme="dark"] .nav-toggle,
html[data-theme="dark"] .site-nav a,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .pager-link,
html[data-theme="dark"] .share-btn,
html[data-theme="dark"] .prev-next-item a,
html[data-theme="dark"] .article-toc-title,
html[data-theme="dark"] .article-toc li a,
html[data-theme="dark"] .form-item > label,
html[data-theme="dark"] .form-item label,
html[data-theme="dark"] .city-province-title,
html[data-theme="dark"] .choice,
html[data-theme="dark"] .article-content,
html[data-theme="dark"] .article-content p,
html[data-theme="dark"] .article-content li,
html[data-theme="dark"] .article-content td,
html[data-theme="dark"] .article-content th {
    color: var(--cms-dark-ink);
}

html[data-theme="dark"] .crumb a,
html[data-theme="dark"] .crumb,
html[data-theme="dark"] .empty-box,
html[data-theme="dark"] .news-meta,
html[data-theme="dark"] .muted,
html[data-theme="dark"] .sub {
    color: var(--cms-dark-muted);
}

html[data-theme="dark"] .article-content h2,
html[data-theme="dark"] .article-content h3,
html[data-theme="dark"] .article-content h4,
html[data-theme="dark"] .article-toc li a {
    color: #a9c7ff;
}

html[data-theme="dark"] .article-content a {
    color: #8fb4ff;
}

/* 报名/转化区里硬编码的深色标题，夜间改用亮橙色 */
html[data-theme="dark"] .signup-band h2,
html[data-theme="dark"] .article-cta h3,
html[data-theme="dark"] .land-inline-cta h3 {
    color: #fdba74;
}

/* admission：原本用 --adm-navy 作正文/标题色的位置，夜间提亮 */
html[data-theme="dark"] .strip-item strong,
html[data-theme="dark"] .section-head h1,
html[data-theme="dark"] .section-head h2,
html[data-theme="dark"] .side-card h3,
html[data-theme="dark"] .article-title,
html[data-theme="dark"] .form-title,
html[data-theme="dark"] .city-province-title {
    color: var(--cms-dark-ink);
}

/* admission：文末报名 CTA 夜间转深色卡片 */
html[data-theme="dark"] .article-cta {
    background: var(--cms-dark-card);
    border-color: var(--cms-dark-line);
}
html[data-theme="dark"] .article-cta p,
html[data-theme="dark"] .article-cta .cta-teacher {
    color: var(--cms-dark-muted);
}

/* admission：报名横幅夜间转深色卡片，避免浅底配亮橙标题 */
html[data-theme="dark"] .signup-band {
    background: var(--cms-dark-card);
    border-color: var(--cms-dark-line);
}
html[data-theme="dark"] .signup-band p,
html[data-theme="dark"] .signup-band ul,
html[data-theme="dark"] .signup-band li {
    color: var(--cms-dark-muted);
}

/* landing：深绿仅用于底色，文字改用亮绿保证可读 */
html[data-theme="dark"] body.theme-landing .logo,
html[data-theme="dark"] body.theme-landing .land-hero h1,
html[data-theme="dark"] body.theme-landing .land-stats strong,
html[data-theme="dark"] body.theme-landing .land-steps h2,
html[data-theme="dark"] body.theme-landing .step h3,
html[data-theme="dark"] body.theme-landing .land-feed-head h2,
html[data-theme="dark"] body.theme-landing .tax-block h3,
html[data-theme="dark"] body.theme-landing .article-head h1.article-title,
html[data-theme="dark"] body.theme-landing .article-content h2,
html[data-theme="dark"] body.theme-landing .article-content h3,
html[data-theme="dark"] body.theme-landing .land-btn-line,
html[data-theme="dark"] body.theme-landing .form-title,
html[data-theme="dark"] body.theme-landing .city-province-title,
html[data-theme="dark"] body.theme-landing .error-code {
    color: #7fe0b0;
}

html[data-theme="dark"] body.theme-landing .land-more,
html[data-theme="dark"] body.theme-landing .side-more {
    color: #a7f0c6;
}

html[data-theme="dark"] .tag {
    background: #223450;
    color: #bad0f7;
}

html[data-theme="dark"] .tag-city,
html[data-theme="dark"] .news-city {
    background: #163226;
    color: #8ee0ad;
}

html[data-theme="dark"] .tag-top {
    background: #3a2a12;
    color: #ffb08a;
}

html[data-theme="dark"] .land-eyebrow,
html[data-theme="dark"] .land-article .land-eyebrow {
    color: #c4f08a;
}

/* ---------------- 深色：表格 / 代码块 / 引用 ---------------- */
html[data-theme="dark"] .article-content blockquote {
    background: var(--cms-dark-soft);
    border-left-color: #4f8cff;
    color: #c8d6e4;
}

html[data-theme="dark"] .article-content td,
html[data-theme="dark"] .article-content th {
    border-color: var(--cms-dark-line);
}

html[data-theme="dark"] .article-content th {
    background: var(--cms-dark-soft);
}

html[data-theme="dark"] .article-content pre,
html[data-theme="dark"] .article-content code {
    background: #0b1219;
    color: #d8e5f0;
    border-color: var(--cms-dark-line);
}

html[data-theme="dark"] .article-content hr {
    border-color: var(--cms-dark-line);
}

/* ---------------- 深色：表单 ---------------- */
html[data-theme="dark"] .cms-form,
html[data-theme="dark"] .cms-form .form-title {
    background: var(--cms-dark-card);
    color: var(--cms-dark-ink);
}

html[data-theme="dark"] .form-item input[type="text"],
html[data-theme="dark"] .form-item input[type="tel"],
html[data-theme="dark"] .form-item input[type="email"],
html[data-theme="dark"] .form-item input[type="date"],
html[data-theme="dark"] .form-item input[type="number"],
html[data-theme="dark"] .form-item textarea,
html[data-theme="dark"] .form-item select,
html[data-theme="dark"] .article-search input {
    background: var(--cms-dark-soft);
    border-color: var(--cms-dark-line);
    color: var(--cms-dark-ink);
}

html[data-theme="dark"] .form-item input::placeholder,
html[data-theme="dark"] .form-item textarea::placeholder {
    color: var(--cms-dark-muted);
}

html[data-theme="dark"] .form-item select option {
    background: var(--cms-dark-card);
    color: var(--cms-dark-ink);
}

/* ---------------- 深色：提示条 ---------------- */
html[data-theme="dark"] .alert {
    background: #17273a;
    border-color: #2b4260;
    color: #c9dcf2;
}

html[data-theme="dark"] .alert-success {
    background: #143226;
    border-color: #245c43;
    color: #8ee6b6;
}

html[data-theme="dark"] .alert-error {
    background: #3a1c22;
    border-color: #6b2f39;
    color: #ffb2bc;
}

/* ---------------- 深色：页脚保持深色，仅补足对比 ---------------- */
html[data-theme="dark"] .site-footer {
    background: #0a1119;
    color: rgba(230, 237, 244, .78);
}

html[data-theme="dark"] .site-footer a {
    color: rgba(230, 237, 244, .82);
}
