@charset "utf-8";
/* =============================================================================
 * taoyi 主题 · base.css —— 全局框架样式
 * -----------------------------------------------------------------------------
 * 依据：.workbuddy-ai/artifacts/taoyi-style-spec.md（原站 style.css / public.css 行号）
 *       .workbuddy-ai/artifacts/taoyi-theme-design.md §6.5
 * 约定：
 *   1) rem 基准 = 1920 视口下 1rem = 100px（base.html <head> 内联脚本设置），
 *      所有数值直接沿用原站 rem 阶梯，不自行换算成 px。
 *   2) 沿用原站 class 名的不加前缀；本主题新增的统一加 `ty-` 前缀。
 *   3) 颜色只允许使用 :root 变量或 style-spec §3.1.2 色表，禁止 #066aab。
 *   4) 装饰图用相对路径 ../images/xxx（与 CSS 同在已发布的主题资源树下，
 *      不依赖域名/子目录，等价于 {ld:src src='taoyi/images/xxx'}）。
 * ========================================================================== */

/* -----------------------------------------------------------------------------
 * 1. CSS 变量（原站 style.css L3-39，含各断点降级 L41-81）
 * -------------------------------------------------------------------------- */
:root {
    --i_color: #0a3864;                    /* L4  主色：深蓝（原站实测，非 #066aab） */
    --i_color_hover: #38b6ff;              /* L6148 强调/悬停蓝 */
    --i_color2: #fff;                      /* L8  副色：白 */
    --top_h: 1.2rem;                       /* L12 顶部条 + 主导航总高 */
    --header_height: 1.2rem;               /* L14 */
    --title_fz: 0.4rem;                    /* L22 板块大标题 */
    --contain-width: 1.6rem;               /* L26 盒子左右间距 */
    --box-bottom: 0.95rem;                 /* L30 盒子之间距离 */
    --border_color: rgba(51, 51, 51, 0.12);/* L34（L18 的 .2 被 L34 覆盖，取 .12） */
    --boxShadow: 0 2px 10px rgb(0 88 167 / 20%); /* L38 */

    --c_title: #333333;                    /* 标题文字 */
    --c_text: #666666;                     /* 正文/辅助 */
    --c_weak: #999999;                     /* 弱化灰 */
    --c_line: #dddddd;                     /* 分隔线 */
    --c_bg1: #f5f5f5;                      /* 浅灰底 1 */
    --c_bg2: #f6f6f6;                      /* 浅灰底 2 */

    /* 中文字体栈（原站字体栈无任何中文字体，必须补，见 style-spec §5.5） */
    --font-cn: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei",
               "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;
    --font-en: Arial, "Helvetica Neue", Helvetica, Tahoma, sans-serif;
}
@media (max-width: 1366px) {
    :root { --contain-width: 0.5rem; --box-bottom: 0.55rem; }          /* L41-46 */
}
@media (max-width: 1024px) {
    :root { --top_h: 0.9rem; --header_height: 0.9rem; --title_fz: 0.3rem;
            --contain-width: 0.5rem; --box-bottom: 0.55rem; }          /* L49-61 */
}
@media (max-width: 768px) {
    :root { --top_h: 0.5rem; --header_height: 0.5rem;
            --border_color: rgba(0, 0, 0, 0.06); }                     /* L63-71 */
}
@media (max-width: 425px) {
    :root { --title_fz: 0.2rem; --contain-width: 0.2rem; --box-bottom: 0.3rem; } /* L73-81 */
}

/* -----------------------------------------------------------------------------
 * 2. Reset
 * -------------------------------------------------------------------------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    font-family: var(--font-cn);
    font-size: 0.16rem;
    color: #333;
    line-height: 1.6;
    background: #fff;
    padding-top: var(--top_h);            /* 抵消固定页头 */
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 { font-weight: bold; line-height: 1.4; }
ul, ol { list-style: none; }
img { border: 0; max-width: 100%; vertical-align: middle; }
a { color: #333; text-decoration: none; transition: color .3s ease; }
a:hover { color: var(--i_color); }
input, button, textarea, select { font-family: inherit; font-size: inherit; outline: none; }
button { cursor: pointer; border: 0; background: none; }
table { border-collapse: collapse; width: 100%; }
.clearfix::after { content: ""; display: block; clear: both; }

/* -----------------------------------------------------------------------------
 * 3. SVG 图标（local sprite，见 icons.html）
 *    注意：此处**不要**写 fill:currentColor。
 *    原因：描边类图标（i-angle-right / i-search …）的 path 上写的是 fill="none"
 *          + stroke="currentColor"，CSS 的 fill 优先级高于呈现属性，会把它们
 *          填成一团色块。实心图标的 path 自身已写 fill="currentColor"，无需再补。
 * -------------------------------------------------------------------------- */
.ty-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ty-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
    color: inherit;
}
.ty-icon--fill { fill: currentColor; }

/* -----------------------------------------------------------------------------
 * 4. 容器（style.css L83-116）
 * -------------------------------------------------------------------------- */
.wrap   { width: 94vw; max-width: 1300px; margin: 0 auto; }              /* L83-90 */
.wrap02 { width: 1640px; max-width: 94vw; margin: 0 auto; }              /* L101-108 */
@media (min-width: 1921px) {
    .wrap { width: 85vw; max-width: none; }                              /* L111-116 */
}

/* -----------------------------------------------------------------------------
 * 5. 板块标题 .public_title（L281-320）
 * -------------------------------------------------------------------------- */
.public_title { text-align: left; }
.public_title h3 {
    font-size: var(--title_fz);
    font-weight: bold;
    color: var(--c_title);
    font-family: var(--font-cn);
    line-height: 1.3;
    text-transform: capitalize;
}
.public_title h4 {
    font-size: 0.16rem;
    color: var(--c_text);
    font-weight: normal;
    margin-top: 0.1rem;
}
.public_title.public_center { text-align: center; }
.public_title.public_center h3::after {
    content: ""; display: block; width: 0.6rem; height: 0.03rem;
    background: var(--i_color); margin: 0.12rem auto 0;
}

/* -----------------------------------------------------------------------------
 * 6. 按钮 .public_btn（L147-262）
 *    圆形扩散 .su_button_circle 用纯 CSS transform 实现，不引 button.js
 * -------------------------------------------------------------------------- */
.public_btn {
    position: relative;
    display: inline-block;
    overflow: hidden;
    border: 1px solid var(--i_color);
    background: #fff;
    vertical-align: middle;
}
.public_btn a {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.12rem 0.28rem;                                            /* L174 */
    font-size: 0.18rem;                                                  /* L150 */
    font-family: var(--font-en);
    color: var(--i_color);
    transition: color .4s ease;
}
.public_btn a .ty-icon {
    width: 0.2rem; height: 0.2rem; margin-left: 0.15rem;                 /* L164-170 */
    transition: transform .4s ease;
}
.public_btn .su_button_circle {
    position: absolute; left: 50%; top: 50%; z-index: 1;
    width: 100%; padding-bottom: 100%;
    border-radius: 50%;
    background: var(--i_color);
    transform: translate(-50%, -50%) scale(0);
    transition: transform .55s cubic-bezier(.4, 0, .2, 1);
    pointer-events: none;
}
.public_btn:hover .su_button_circle { transform: translate(-50%, -50%) scale(2.4); }
.public_btn:hover a { color: #fff; }
.public_btn:hover a .ty-icon { transform: translateX(0.04rem); }

/* 变体：实心主色按钮（L235-262） */
.public_btn.other_btnClass { background: var(--i_color); border-color: var(--i_color); }
.public_btn.other_btnClass a { background: var(--i_color); color: #fff; }
.public_btn.other_btnClass .su_button_circle { background: #fff; }
.public_btn.other_btnClass:hover a { color: var(--i_color); }

@media (max-width: 1024px) { .public_btn a { padding: 0.1rem 0.25rem; } }   /* L219 */
@media (max-width: 375px)  { .public_btn a { padding: 0.08rem 0.18rem; } }  /* L227 */

/* -----------------------------------------------------------------------------
 * 7. 页头 Header（style.css L336-1012 / §3.5.1）
 * -------------------------------------------------------------------------- */
.ty-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 2014;                                                        /* L336-348 */
    height: var(--top_h);
}
.top_cont {
    height: 100%;
    background: #fff;                                                     /* L350-357 */
    transition: all .5s ease;
}
.top_cont_box { display: flex; height: 100%; align-items: stretch; }      /* L360-364 */

.logodiv { height: 100%; width: 1.21rem; flex: 0 0 auto; }                /* L502-506 */
.logodiv .logo { display: block; height: 100%; }
.logodiv .logo img { width: 100%; height: 100%; object-fit: cover; }      /* L526-534 */

.top_cont_info {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.2rem 0 0.15rem 0.25rem;                                    /* L388-400 */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* 7.1 顶部信息条 */
.tci_info {
    display: flex; justify-content: space-between; align-items: center;    /* L402-408 */
}
.tcii_left {
    font-size: 0.18rem; color: var(--i_color);                            /* L410-416 */
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tcii_right > ul { display: flex; align-items: center; gap: 0.65rem; }    /* L421-425 */
.tcii_right > ul > li > a {
    display: inline-flex; align-items: center; gap: 0.05rem;
    font-size: 0.15rem; color: var(--c_text);
}
.tcii_right > ul > li > a:hover { color: var(--i_color); }
.tciir_icon { display: flex; align-items: center; gap: 0.2rem; }          /* L443-447 */
.tciir_icon a { color: #999; font-size: 0.18rem; }                        /* L453-455 */
.tciir_icon a:hover { color: var(--i_color); }

/* 7.2 主导航 */
.top {
    height: 50%; width: 100%;                                             /* L366-378 */
    display: flex; flex-wrap: wrap; align-items: center;
}
.i_nav { display: flex; flex-wrap: nowrap; gap: 0 0.72rem; }              /* L550-563 */
.i_nav > li { position: relative; }
.i_nav > li > a {
    display: block;
    font-size: 0.2rem;                                                    /* L606 */
    font-weight: bold;                                                    /* L618 */
    font-family: var(--font-cn);
    color: var(--c_title);
    line-height: 0.32rem;                                                 /* L620 */
    white-space: nowrap;
}
.i_nav > li:hover > a,
.i_nav > li.current-menu-item > a { color: var(--i_color); }              /* L632 */
.i_nav > li.current-menu-item > a::before {
    content: ""; position: absolute; left: 50%; bottom: -0.06rem;
    width: 0.3rem; height: 0.02rem; margin-left: -0.15rem;
    background: var(--i_color);                                           /* L584 */
}

/* 下拉子菜单（L667-720） */
.i_nav .sub-menu {
    position: absolute; left: 50%; top: 100%;
    transform: translateX(-50%) translateY(0.08rem);
    min-width: 1.9rem;
    padding: 0.08rem 0;
    background: #fff;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .1);
    border-top: 0.02rem solid var(--i_color);
    opacity: 0; visibility: hidden;
    transition: opacity .3s ease, transform .3s ease, visibility .3s;
    z-index: 20;
}
.i_nav li.menu-item-has-children:hover > .sub-menu {
    opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
.i_nav .sub-menu > li > a {
    display: block;
    font-size: 0.15rem;                                                   /* L672 */
    line-height: 0.36rem;
    padding: 0 0.16rem;                                                   /* L667-687 */
    color: var(--c_text);
    white-space: nowrap;
}
.i_nav .sub-menu > li { border-bottom: 1px solid var(--border_color); }   /* L664 */
.i_nav .sub-menu > li:last-child { border-bottom: 0; }
/* 原站记录为「主色底 + #979797 字」（L690-692），灰字在深蓝底上对比度不足，
   这里统一改为白字，其余保持一致。 */
.i_nav .sub-menu > li:hover > a { background: var(--i_color); color: #fff; }
/* 无子栏目时模板会输出空的 <ul class="sub-menu">，隐藏掉 */
.i_nav .sub-menu:empty { display: none; }

/* 7.3 右侧搜索 */
.top_r {
    margin-left: auto;
    display: flex; align-items: center; gap: 0 0.3rem;                     /* L1119-1130 */
}
.top_search_btn {
    width: 0.32rem; height: 0.32rem;
    display: flex; align-items: center; justify-content: center;
    color: var(--c_title); font-size: 0.22rem; cursor: pointer;
}
.top_search_btn:hover { color: var(--i_color); }
.search_cont {
    width: 0; overflow: hidden;
    transition: width .4s ease;
}
.search_cont.is-open { width: 3.15rem; }                                  /* L1183 */
.search_cont form {
    display: flex; width: 3.15rem;
    border: 1px solid rgba(51, 51, 51, .2);                               /* L1183-1196 */
}
.search_cont .search_ipt {
    flex: 1 1 auto; height: 0.38rem; line-height: 0.38rem;
    border: 0; padding: 0 0.12rem; font-size: 0.16rem; background: #fff;
}
.search_cont .search_btn {
    flex: 0 0 0.38rem; width: 0.38rem; height: 0.38rem;                   /* L1199-1211 */
    display: flex; align-items: center; justify-content: center;
    background: var(--i_color); color: #fff; font-size: 0.18rem;
}
.search_cont .search_btn:hover { background: var(--i_color_hover); }

/* 7.4 汉堡按钮（L927-1012） */
.nav_menu {
    display: none;
    position: absolute; right: 0.3rem; top: 50%;
    transform: translateY(-50%);
    width: 22px; height: 16px; cursor: pointer;
}
.nav_menu i,
.nav_menu i::before,
.nav_menu i::after {
    position: absolute; left: 0; width: 22px; height: 3px;
    background: var(--i_color); transition: all .3s ease;
}
.nav_menu i { top: 50%; margin-top: -1.5px; }
.nav_menu i::before { content: ""; top: -6.5px; }
.nav_menu i::after  { content: ""; top: 6.5px; }
.nav_menu.is-open i { background: transparent; }
.nav_menu.is-open i::before { top: 0; transform: rotate(45deg); }
.nav_menu.is-open i::after  { top: 0; transform: rotate(-45deg); }

/* 7.5 滚动后加 .TopHeader（js/header.js L1-18，滚动 ≥200px 且视口 >1024） */
.ty-header.TopHeader .top_cont {
    box-shadow: 0 2px 12px rgba(0, 88, 167, .14);
}
.ty-header.TopHeader .tci_info { display: none; }

/* -----------------------------------------------------------------------------
 * 8. 移动端抽屉（本主题新增，ty- 前缀）
 * -------------------------------------------------------------------------- */
.ty-mask {
    position: fixed; inset: 0; background: rgba(0, 0, 0, .45);
    opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s;
    z-index: 2015;
}
.ty-mask.is-open { opacity: 1; visibility: visible; }
.ty-drawer {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: 78vw; max-width: 4.2rem;
    background: #fff;
    transform: translateX(100%);
    transition: transform .35s cubic-bezier(.4, 0, .2, 1);
    z-index: 2016;
    display: flex; flex-direction: column;
}
.ty-drawer.is-open { transform: translateX(0); }
.ty-drawer_hd {
    height: 0.9rem; flex: 0 0 auto;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 0.3rem; background: var(--i_color); color: #fff;
}
.ty-drawer_title { font-size: 0.24rem; font-weight: bold; }
.ty-drawer_close { font-size: 0.3rem; cursor: pointer; line-height: 1; }
.ty-drawer_bd { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0.2rem 0; }
.ty-drawer_bd ul.i_nav { display: block; gap: 0; }
.ty-drawer_bd .i_nav > li { border-bottom: 1px solid var(--border_color); }
.ty-drawer_bd .i_nav > li > a {
    display: block; padding: 0.22rem 0.3rem; font-size: 0.22rem; line-height: 1.4;
}
.ty-drawer_bd .i_nav .sub-menu {
    position: static; transform: none; opacity: 1; visibility: visible;
    box-shadow: none; border-top: 0; min-width: 0; padding: 0;
    display: none;
}
.ty-drawer_bd .i_nav li.is-open > .sub-menu { display: block; }
.ty-drawer_bd .i_nav .sub-menu > li { border-bottom: 0; }
.ty-drawer_bd .i_nav .sub-menu > li > a { padding: 0.16rem 0.3rem 0.16rem 0.5rem; }
.ty-drawer_bd .i_nav > li.menu-item-has-children > a {
    display: flex; align-items: center; justify-content: space-between;
}
.ty-drawer_bd .i_nav > li.menu-item-has-children > a .ty-icon {
    width: 0.2rem; height: 0.2rem; transition: transform .3s ease; color: var(--i_color);
}
.ty-drawer_bd .i_nav > li.is-open > a .ty-icon { transform: rotate(90deg); }

/* -----------------------------------------------------------------------------
 * 9. 页脚 Footer（style.css L1599-1786 / §3.5.4）
 * -------------------------------------------------------------------------- */
.ty-footer { background: #fff; }
.footer_topMaxBox {
    background: url(../images/footer-top-bg.webp) center / cover no-repeat;  /* L1606-1610 */
    padding: 0.73rem 0;
}
.footer_topMaxBox > ul.wrap { display: flex; justify-content: space-between; align-items: center; }
.ft_firstli {
    width: 75.61%;                                                          /* L1620-1632 */
    font-size: 0.24rem; font-weight: bold; color: #fff; line-height: 0.32rem;
    font-family: var(--font-cn);
}
.ft_iconli { display: flex; align-items: center; gap: 0.35rem; }            /* L1634-1642 */
.ft_iconli a { color: #fff; font-size: 0.29rem; }                           /* 原站 0.29rem */
.ft_iconli a:hover { color: var(--i_color_hover); }

.footer_lastbox {
    background: url(../images/footer-bg.webp) center / cover no-repeat;     /* L1648-1651 */
    padding: 0.47rem 0 0 0;
}
.footer_centerMaxBox { padding: 0 0 0.8rem; }                               /* L1656-1657 */
.footer_centerMaxBox > ul.wrap { display: flex; gap: 1rem; }                /* L1663 */
.footer_centerMaxBox > ul.wrap > li { flex: 1; min-width: 0; }              /* L1672-1678 */
.footer_centerMaxBox > ul.wrap > li.fc_about,
.footer_centerMaxBox > ul.wrap > li.fc_form { flex: 1.5; }

.fc_logo { display: block; width: 1.76rem; height: 1.26rem; margin-left: -0.3rem; }
.fc_logo img { width: 100%; height: 100%; object-fit: contain; }
.fc_desc { font-size: 0.15rem; color: var(--c_text); margin: 0.16rem 0; line-height: 1.7; }
.fc_infoUl { display: flex; flex-direction: column; gap: 0.15rem; }         /* L1717 */
.fc_infoUl li a {
    display: flex; align-items: flex-start; gap: 0.08rem;
    font-size: 0.16rem; color: var(--c_text); line-height: 1.5;
}
.fc_infoUl li a .ty-icon { flex: 0 0 auto; margin-top: 0.04rem; color: var(--i_color); }
.fc_infoUl li a:hover { color: var(--i_color); }

.footer_centerMaxBox h3 {
    font-size: 0.24rem; font-weight: bold; color: var(--c_title);            /* L1735 */
    margin-bottom: 0.2rem; font-family: var(--font-cn);
}
.tc_menu_ul { display: flex; flex-direction: column; gap: 0.2rem; }
.tc_menu_ul li a { font-size: 0.16rem; color: var(--c_text); }
.tc_menu_ul li a::before {
    content: ""; display: inline-block; width: 0.06rem; height: 0.06rem;
    background: var(--i_color); margin-right: 0.1rem; vertical-align: 0.04rem;
}
.tc_menu_ul li a:hover { color: var(--i_color); }

/* 9.1 页脚留言表单（沿用 uabsjbd 已验证的写法） */
.footer-form { display: flex; flex-direction: column; gap: 0.12rem; }
.footer-form input,
.footer-form textarea {
    width: 100%; padding: 0.12rem 0.14rem;
    border: 1px solid var(--border_color); background: #fff;
    font-size: 0.15rem; color: #333; transition: border-color .3s ease;
}
.footer-form input:focus,
.footer-form textarea:focus { border-color: var(--i_color); }
.footer-form textarea { resize: vertical; min-height: 0.9rem; }
.footer-form .captcha-row { display: flex; gap: 0.1rem; }
.footer-form .captcha-row input { flex: 1 1 auto; }
.footer-form .captcha-row img { flex: 0 0 1.2rem; height: 0.44rem; cursor: pointer; border: 1px solid var(--border_color); }
.footer-form button {
    padding: 0.12rem 0.28rem; background: var(--i_color); color: #fff;
    font-size: 0.16rem; transition: background .3s ease;
}
.footer-form button:hover { background: var(--i_color_hover); }

/* 9.2 版权条（L1768-1786） */
.footer_bottomMaxBox {
    background: var(--c_bg2); color: var(--c_text);
    padding: 0.28rem 0 0.23rem;
    border-top: 1px solid rgba(51, 51, 51, .2);
    font-size: 0.16rem;
    text-align: center;
}
.footer_bottomMaxBox a { color: var(--c_text); }
.footer_bottomMaxBox a:hover { color: var(--i_color); }

/* -----------------------------------------------------------------------------
 * 10. 侧边悬浮条 + 返回顶部
 * -------------------------------------------------------------------------- */
.ty-float {
    position: fixed; right: 0.16rem; bottom: 1.1rem; z-index: 1200;
    display: flex; flex-direction: column; gap: 0.1rem;
}
.ty-float_item {
    width: 0.5rem; height: 0.5rem; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 0.24rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
    transition: transform .3s ease, background .3s ease;
}
.ty-float_item:hover { transform: translateY(-0.03rem); color: #fff; }
.ty-float_wa  { background: #25d366; }
.ty-float_tel { background: var(--i_color); }
.ty-float_top { background: rgba(10, 56, 100, .75); opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s; }
.ty-float_top.is-show { opacity: 1; visibility: visible; }

/* -----------------------------------------------------------------------------
 * 11. 面包屑 .in_position（L4589-4598）
 * -------------------------------------------------------------------------- */
.in_position {
    background: var(--c_bg2);
    padding: 0.2rem 0;
    border-bottom: 1px solid #d4d4d4;
}
.in_position .wrap { display: flex; align-items: center; flex-wrap: wrap; font-size: 0.16rem; color: var(--c_text); }
.in_position a { color: var(--c_text); }
.in_position a:hover { color: var(--i_color); }
.in_position a:not(:last-child)::after { content: ">"; margin: 0 0.08rem; color: #bbb; }  /* L4650-4655 */
.in_position .ty-icon { margin-right: 0.06rem; }

/* -----------------------------------------------------------------------------
 * 12. 分页 .in_paging（L5313-5391）
 * -------------------------------------------------------------------------- */
.in_paging { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.1rem; margin-top: 0.4rem; }
.in_paging a,
.in_paging span {
    display: inline-block; min-width: 0.38rem; height: 0.38rem; line-height: 0.36rem;
    padding: 0 0.1rem; text-align: center;
    border: 1px solid var(--border_color); background: #fff;
    font-size: 0.15rem; color: var(--c_text);
    transition: all .3s ease;
}
.in_paging a:hover { background: var(--i_color); border-color: var(--i_color); color: #fff; }
.in_paging .active,
.in_paging .current { background: var(--i_color); border-color: var(--i_color); color: #fff; }
.in_paging .disabled { color: #bbb; cursor: not-allowed; }

/* -----------------------------------------------------------------------------
 * 13. 通用 Section 留白（L2657 等：padding .6rem 0）
 * -------------------------------------------------------------------------- */
.ty-section { padding: 0.6rem 0; }
.ty-section--bg1 { background: var(--c_bg1); }
.ty-section--bg2 { background: var(--c_bg2); }

/* 图文等比占位（::before padding-bottom 法，数值见 style-spec §3.8.3） */
.ty-ratio { position: relative; display: block; overflow: hidden; }
.ty-ratio::before { content: ""; display: block; width: 100%; }
.ty-ratio > img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }
.ty-ratio--banner::before   { padding-bottom: 39%; }     /* L1972 */
.ty-ratio--product::before  { padding-bottom: 97.7%; }   /* L2717 / L3481 */
.ty-ratio--news::before     { padding-bottom: 63.5%; }   /* L4378 */
.ty-ratio--about::before    { padding-bottom: 40.31%; }  /* L3019 */
.ty-ratio--wcu::before      { padding-bottom: 38%; }     /* L3611 */
.ty-ratio--scene::before    { padding-bottom: 51%; }     /* L3882 */
.ty-ratio--video::before    { padding-bottom: 56.25%; }  /* L3315 16:9 */

/* -----------------------------------------------------------------------------
 * 14. 响应式
 * -------------------------------------------------------------------------- */
/* ≤1024：导航变汉堡、隐藏桌面导航、页脚第 2/3 列隐藏 */
@media (max-width: 1024px) {
    .i_nav { display: none; }
    .nav_menu { display: block; }
    .top_r { margin-right: 0.6rem; }
    .top_cont_info { padding: 0.15rem 0 0.1rem 0.2rem; justify-content: center; }
    .footer_centerMaxBox > ul.wrap > li:nth-child(2),
    .footer_centerMaxBox > ul.wrap > li:nth-child(3) { display: none; }      /* L1672-1678 */
    .ty-float { right: 0.1rem; bottom: 0.8rem; }
}
/* ≤768：隐藏顶部联系条（L489-491）、logo 缩小 */
@media (max-width: 768px) {
    .tci_info { display: none; }
    .top_cont_info { padding: 0; justify-content: center; }
    .top { height: 100%; }
    .logodiv { width: 1.3rem; }
    .fc_logo { width: 1.3rem; height: 1rem; margin-left: 0; }
    .footer_topMaxBox { padding: 0.4rem 0; }
    .ft_firstli { width: 100%; font-size: 0.2rem; text-align: center; }
}
/* ≤560：页脚顶部条改纵向、最后一列隐藏 */
@media (max-width: 560px) {
    .footer_topMaxBox > ul.wrap { display: block; text-align: center; }
    .ft_iconli { justify-content: center; margin-top: 0.2rem; }
    .footer_centerMaxBox > ul.wrap { flex-wrap: wrap; gap: 0.4rem; }
    .footer_centerMaxBox > ul.wrap > li { flex: 1 1 100%; }
}
/* ≥1025：桌面导航专属（L550） */
@media (min-width: 1025px) {
    .ty-drawer, .ty-mask { display: none; }
}

/* -----------------------------------------------------------------------------
 * 15. AOS 兜底：JS 未加载时元素必须可见（避免动画库失败导致全站空白）
 * -------------------------------------------------------------------------- */
html.aos-disabled [data-aos],
html:not(.aos-ready) [data-aos] { opacity: 1 !important; transform: none !important; }

/* -----------------------------------------------------------------------------
 * 16. 全站询盘弹层 .popup_form_box（1:1 迁移自原站 about-us 页内联 <style> L1195-1252 + DOM L1643-1650）
 *     DOM 在 base.html（页脚前），JS 在 main.js 的 popupForm()。
 *     原站为 px 定值，此处按主题 rem 基准换算（1920 下 1rem=100px，与原站像素一致）：
 *         28px → .28rem    800px → 8rem    8px → .08rem    40px → .4rem
 *     相对原站补充（原站没有、但没有就不可用）：
 *         ① visibility 切换 —— 仅 opacity:0 时弹层仍可被 Tab 聚焦，不符合 aria-modal；
 *         ② .popup_form 内滚动 + max-height —— 小屏/横屏时表单不至于溢出视口。
 * -------------------------------------------------------------------------- */
.popup_form_box {
    opacity: 0;
    visibility: hidden;                 /* 补充①：隐藏时不可聚焦 */
    position: fixed;
    top: 120%;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgb(0 0 0 / 90%);       /* L1195-1201 */
    transition: opacity .5s ease, top .5s ease, visibility .5s ease;
    z-index: 10000;
}
.popup_form_box.show { opacity: 1; top: 0; visibility: visible; }

.popup_form_box .popup_form {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 8rem;                    /* 原站 800px */
    background: #FFF;
    box-sizing: border-box;
    padding: .28rem;                    /* 原站 28px */
    border-radius: .08rem;              /* 原站 8px */
    max-height: 90vh;                   /* 补充② */
    overflow-y: auto;                   /* 补充② */
}

.popup_form_close {
    display: table;
    margin-left: auto;
    cursor: pointer;
}
.popup_form_close .ty-icon {
    width: .4rem;                       /* 原站 iconify 40px */
    height: .4rem;
    color: var(--i_color);
    transition: transform .5s ease;
}
.popup_form_close:hover .ty-icon { transform: rotate(-180deg); }  /* 原站 hover 旋转 */

/* 16.1 标题区（原站弹层内为纯表单，此处补一行标题，与页内询盘板块一致） */
.popup_form_head { margin-bottom: .2rem; }
.popup_form_title {
    font-size: .28rem; line-height: 1.4; color: var(--i_color); font-weight: 700;
}
.popup_form_desc { font-size: .15rem; line-height: 1.6; color: var(--c_text); margin-top: .06rem; }

/* 16.2 表单：字段间距/描边沿用 .footer-form，保证全站表单观感统一 */
.popup_form_main { display: flex; flex-direction: column; gap: .14rem; }
.popup_form_main .pf_row { display: flex; gap: .14rem; }
.popup_form_main .pf_row > * { flex: 1 1 0; min-width: 0; }
.popup_form_main input,
.popup_form_main textarea {
    width: 100%; padding: .13rem .14rem; box-sizing: border-box;
    border: 1px solid var(--border_color); background: #fff;
    font-size: .15rem; color: #333; font-family: inherit;
    transition: border-color .3s ease;
}
.popup_form_main input:focus,
.popup_form_main textarea:focus { border-color: var(--i_color); outline: none; }
.popup_form_main textarea { resize: vertical; min-height: 1rem; }
.popup_form_main .pf_captcha {
    flex: 0 0 1.3rem; height: .46rem; cursor: pointer;
    border: 1px solid var(--border_color); object-fit: cover;
}
.popup_form_main .pf_submit {
    display: inline-flex; align-items: center; justify-content: center; gap: .06rem;
    padding: .14rem .28rem; background: var(--i_color); color: #fff;
    font-size: .17rem; border: 0; cursor: pointer; align-self: flex-start;
    transition: background .3s ease;
}
.popup_form_main .pf_submit:hover { background: var(--i_color_hover); }
.popup_form_main .pf_submit .ty-icon { width: .16rem; height: .16rem; transition: transform .3s ease; }
.popup_form_main .pf_submit:hover .ty-icon { transform: translateX(.04rem); }

/* 16.3 触发按钮 .popup_form_btn —— 全站通用钩子，与原站同名。
       ① 放在 .public_btn 内的 <a class="popup_form_btn">：外观沿用 §6 按钮样式，此处不干预
          （刻意不用 a.popup_form_btn 写默认样式，否则会盖掉 .public_btn a 的变体外观）。
       ② 独立使用的 <button class="popup_form_btn">：给一套默认主色外观。 */
.popup_form_btn { cursor: pointer; }
button.popup_form_btn {
    display: inline-flex; align-items: center; gap: .06rem;
    padding: .13rem .28rem; background: var(--i_color); color: #fff;
    font-size: .16rem; border: 0; font-family: inherit;
    transition: background .3s ease;
}
button.popup_form_btn:hover { background: var(--i_color_hover); }

/* 16.4 ≤768：标题缩小、双列改单列、内边距收紧 */
@media (max-width: 768px) {
    .popup_form_box .popup_form { width: 94%; padding: .2rem .18rem; max-height: 88vh; }
    .popup_form_title { font-size: .22rem; }
    .popup_form_main .pf_row { flex-direction: column; gap: .12rem; }
    .popup_form_main .pf_submit { align-self: stretch; }
}
