@charset "utf-8";
/* ===================================================================
   Geomos 模块样式
   -------------------------------------------------------------------
   设计基准：https://www.mosustar.com/（线上站 = Jz52_Cofive v1.2.1，
   其 style/style.css 与本主题同名文件 MD5 完全一致）。
   下面所有数值都从那一份里量出来，不靠印象：

     主色     #005197   蓝（板块标题 / 强调 / 按钮）
     辅助色   #3ba86f   绿（标题后半段 / 标签 / 底栏）
     正文     #333333   次要 #666666 / #6f6f6f / #999
     分隔线   #eee / #e5e5e5 / #e9e9e9
     浅底     #eee（产品区） / #fcfcfc（资讯区） / #f1f1f1（优势块）
     圆角     5px
     正文     14px
     容器     1200px（.box），断点 800（另有 991/540/415/321）
     板块标题 .lmt 居中：.tit 48px 粗体主色 + span 绿字左内边距 24px，
              .subtit 16px 距上 18px，整块下间距 45px

   线上首页各段版面（PC 版）：
     产品中心 .index_pro 底 #eee，padding 50px 0 20px，卡片 4 列
     产品优势 .youshi    背景图，2 列图文块
     资讯中心 .news      底 #fcfcfc，padding 80px 0 100px
     卡片     .pro_list li 白底 15px 内边距、无边框无圆角、
                          hover 上移 5px + 阴影、图 hover 放大 1.12
   =================================================================== */

/* ---------- 主色变量（后台「主题色」分组改这两个值全站生效）---------- */
:root {
  --ind-primary: #005197;
  --ind-primary-deep: #003c70;
  --ind-accent: #3ba86f;
  --ind-text: #333333;
  --ind-text-sub: #666666;
  --ind-text-mute: #999999;
  --ind-line: #e5e5e5;
  --ind-line-soft: #eeeeee;
  --ind-bg-soft: #fcfcfc;
  --ind-bg-gray: #eeeeee;
  --ind-bg-block: #f1f1f1;
  --ind-white: #ffffff;
  --ind-radius: 6.25px;
}

/* ===================================================================
   一、容器

   线上是 @media (min-width:800px) { .box { width: 1200px; margin:0 auto } }
   —— 内容区正好 1200px、容器本身也是 1200px。这里照做：

     ≥1231px  容器 1200px、无内边距   → 与线上逐像素一致
     801~1230 占满宽 + 左右 15px 边距 → 线上这一段是强制 1200 会横向溢出，
                                        这里改成自适应收窄，不裁切内容
     ≤800     宽 96%                 → 与线上窄屏的 .box{width:96%} 一致
   =================================================================== */

.ind-container {
  width: 100%;
  max-width: 1500px;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}
@media screen and (max-width: 1537.5px) {
  .ind-container { max-width: none; padding: 0 18.75px; }
}

/* ===================================================================
   二、栅格
   线上用 float + 百分比，这里用 flex + gap 达到同样的视觉密度
   （4 列时 (100 - 3×2) / 4 = 23.5%）。
   =================================================================== */

.ind-grid {
  display: flex;
  flex-wrap: wrap;
  /* ⚠️ 行间距不能用百分比：flex 容器里百分比 row-gap 是相对「容器高度」解析的，
     而容器高度靠内容撑开（auto）→ 会被算成 0，**多行卡片上下紧贴**
     （客户评价两行之间实测就是 0px）。所以列间距用 %（相对宽度，正常），
     行间距必须写固定值。 */
  column-gap: 2%;
  row-gap: 30px;
  margin: 0;
}
.ind-grid > .ind-card { width: 23.5%; }          /* 默认 4 列，对齐 .pro_list */
.ind-grid--2 > .ind-card { width: 49%; }
.ind-grid--3 > .ind-card { width: 32%; }
.ind-grid--4 > .ind-card { width: 23.5%; }

@media screen and (max-width: 1238.75px) {
  .ind-grid > .ind-card,
  .ind-grid--4 > .ind-card { width: 32%; }
}
@media screen and (max-width: 1000px) {
  /* 线上窄屏把 .box 换成 width:96%（左右各 2% 留白），这里保持一致 */
  .ind-container { max-width: none; width: 96%; padding: 0; }
  .ind-grid > .ind-card,
  .ind-grid--3 > .ind-card,
  .ind-grid--4 > .ind-card { width: 49%; }
}
@media screen and (max-width: 675px) {
  .ind-grid > .ind-card,
  .ind-grid--2 > .ind-card,
  .ind-grid--3 > .ind-card,
  .ind-grid--4 > .ind-card { width: 100%; }
}

/* ===================================================================
   三、区块与板块标题（对齐线上 .lmt）
   =================================================================== */

.ind-section { padding: 100px 0; }
.ind-section--surface { background: var(--ind-white); }
.ind-section--muted   { background: var(--ind-bg-gray); }
.ind-section--tight   { padding: 62.5px 0; }

/* 按模块定制底色与留白 —— 线上每块的节奏并不一样 */
/* 产品中心：白底（用户要求，原本与下面几块同为 #eee 灰底）。
   卡片 .ind-prolist li 自身也是白底且无边框，原本靠灰底衬托轮廓；
   改白底后靠图片区的浅灰底 + 内边距撑出卡片感。
   若哪天觉得卡片糊，给 .ind-prolist li 补一条 1px var(--ind-line) 边框即可。 */
.ind-section--product {
  background: var(--ind-white);
  padding: 62.5px 0 25px;
}
/* 【备选，默认关闭】白底上卡片轮廓会变弱，
   想要卡片带细边框就把下面这条的注释去掉（效果见 .workbuddy/shots/p-bordered.png） */
/*
.ind-section--product .ind-prolist li {
  border: 1px solid var(--ind-line);
}
*/
.ind-section--solution,
.ind-section--case,
.ind-section--doc,
.ind-section--cert {
  background: var(--ind-bg-gray);
  padding: 62.5px 0 25px;
}
.ind-section--news {
  background: var(--ind-bg-soft);
  padding: 100px 0 125px;
}

.ind-heading {
  position: relative;
  margin-bottom: 56.25px;
  text-align: center;
}
.ind-heading__eyebrow {
  display: inline-block;
  font-size: 17.5px;
  line-height: 25px;
  color: var(--ind-accent);
  margin-bottom: 7.5px;
}
.ind-heading__title {
  margin: 0;
  font-size: 60px;
  line-height: 60px;
  font-weight: bold;
  color: var(--ind-primary);
}
/* 标题双色：主词默认色，强调词放 span 里（线上 .lmt .tit span） */
.ind-heading__title span {
  color: var(--ind-accent);
  display: inline-block;
  padding-left: 30px;
}
/* 副标题：完全对齐线上 .lmt .subtit（16px / 行高 18px / #333 / 上边距 18px）
   注意线上没有 max-width，副标题占满整行 1200px —— 之前限了 800px，宽度对不上。 */
.ind-heading__desc {
  margin: 22.5px auto 0;
  font-size: 20px;
  line-height: 22.5px;
  color: var(--ind-text);
  text-align: center;
}

/* 「更多」按钮绝对定位挂在居中标题块右侧（线上是 .title a 右浮动） */
.ind-section__more {
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-block;
  font-size: 18.75px;
  line-height: 37.5px;
  color: var(--ind-text-sub);
  transition: color .2s;
}
.ind-section__more span { margin-left: 5px; }
.ind-section__more:hover { color: var(--ind-primary); }

@media screen and (max-width: 1000px) {
  .ind-section { padding: 62.5px 0; }
  .ind-section--product,
  .ind-section--solution,
  .ind-section--case,
  .ind-section--doc,
  .ind-section--cert { padding: 43.75px 0 12.5px; }
  .ind-section--news { padding: 56.25px 0 68.75px; }
  .ind-heading { margin-bottom: 35px; }
  /* 窄屏标题字号/行高对齐线上 .lmt .tit：
     线上窄屏只覆盖 font-size:1.6rem，line-height 仍是桌面基准的 48px。
     ⚠️ 根字号在 ≤800 时是 18px（style.css 里 html{font-size:18px}），
     所以凡线上用 rem 的一律跟着写 rem，写死 px 会差一档（曾写成 14px 结果差 1.75px）。 */
  .ind-heading__title { font-size: 2rem; line-height: 60px; }
  .ind-heading__title span { padding-left: 15px; }
  .ind-heading__desc { font-size: 1.0938rem; line-height: 22.5px; }
  /* 小屏左右没有空间放绝对定位的按钮，改为独立一行 */
  .ind-section__more {
    position: static;
    display: block;
    margin-top: 17.5px;
  }
}

/* ===================================================================
   四、卡片（对齐线上 .pro_list li：白底 15px、无边框、hover 上浮）
   =================================================================== */

/* 分类页 / 标签页的文章列表：卡片结构与首页统一（.ind-card + __media/__body/__title/__excerpt），
   所以直接复用下面那套卡片样式；这里只补「列表容器」的栅格。
   ⚠️ 内边距由 .ind-card 自己给，容器不再加 padding；
      行间距必须写固定值（flex 里百分比 row-gap 会按容器高度解析、塌成 0） */
.ind-archive {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  column-gap: 2%;
  row-gap: 25px;
}
.ind-archive > .ind-card { float: none; margin: 0; width: 32%; }
.ind-archive--2 > .ind-card { width: 49%; }
.ind-archive--3 > .ind-card { width: 32%; }
.ind-archive--4 > .ind-card { width: 23.5%; }

@media screen and (max-width: 1000px) {
  .ind-archive > .ind-card,
  .ind-archive--3 > .ind-card,
  .ind-archive--4 > .ind-card { width: 49%; }
}
@media screen and (max-width: 675px) {
  .ind-archive > .ind-card,
  .ind-archive--2 > .ind-card,
  .ind-archive--3 > .ind-card,
  .ind-archive--4 > .ind-card { width: 100%; }
}

.ind-card {
  background: var(--ind-white);
  padding: 18.75px;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  transition: box-shadow .5s, transform .5s;
}
.ind-card:hover {
  box-shadow: 0 12.5px 18.75px rgba(0, 0, 0, .1);
  transform: translate3d(0, -6.25px, 0);
}

/* 图片按 4:3 撑高（线上 padding-top: 75%），无图时同样保留比例 */
.ind-card__media {
  display: block;
  position: relative;
  width: 100%;
  padding-top: 75%;
  overflow: hidden;
  background: var(--ind-bg-block);
}
.ind-card__media img {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: all .5s;
}
.ind-card:hover .ind-card__media img { transform: scale(1.12); }
.ind-card__media--empty { padding-top: 75%; background: var(--ind-bg-block); }

/* ⚠️ 原主题给老列表缩略图写死了尺寸：
     .newslist ul li img { width: 246.25px; height: 155px; float: left }   （窄屏 187.5×117.5）
   它的特异性是 0,3,2，比 `.ind-card__media img`（0,1,1）高 —— 会把新卡片的图钉成固定大小、
   再靠 float 顶到左上角，于是图片只占卡片一角（看着就是「图片太小、只显示一点点」）。
   桌面端恰好因为 3 列时卡片宽 246 而看不出来，平板/手机上就非常明显。
   这里用更高的特异性把固定尺寸清掉，让 .ind-card__media 的 4:3 容器说了算。 */
.newslist ul li .ind-card__media img,
.newslist ul li .ind-card__media > img {
  position: absolute;
  left: 0;
  top: 0;
  float: none;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}

.ind-card__body { padding: 0; text-align: center; }

/* 分类角标：线上首页不出现，各模块统一隐藏 */
.ind-card__cat { display: none; }

/* 标题：居中、16px、#666、单行省略（线上 a.t 的规格） */
.ind-card__title {
  margin: 0;
  font-size: 20px;
  line-height: 50px;
  height: 50px;
  font-weight: normal;
  color: var(--ind-text-sub);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ind-card__title a { color: inherit; display: block; overflow: hidden; text-overflow: ellipsis; }
.ind-card:hover .ind-card__title { color: var(--ind-primary); }

.ind-card__excerpt {
  margin: 0;
  font-size: 17.5px;
  line-height: 30px;
  color: var(--ind-text-sub);
  text-align: left;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 产品 / 方案 / 文档 / 资质：线上这类卡片只有「图 + 标题」，不带摘要 */
.ind-section--product .ind-card__excerpt,
.ind-section--solution .ind-card__excerpt,
.ind-section--doc .ind-card__excerpt,
.ind-section--cert .ind-card__excerpt { display: none; }

/* 案例 / 资讯：保留摘要（线上资讯列表与案例块都带摘要）
   标题字号/行高/字重完全对齐线上 .newsnr_z h3（18px / 行高 18px / 加粗 / #333，
   上内边距 20px 承接图片与标题之间的距离）。 */
.ind-section--case .ind-card__title,
.ind-section--news .ind-card__title {
  height: auto;
  font-size: 22.5px;
  line-height: 22.5px;
  font-weight: bold;
  color: var(--ind-text);
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  padding: 25px 0 0;
}

@media screen and (max-width: 1000px) {
  .ind-card { padding: 12.5px; }
  .ind-card__title { font-size: 18.75px; line-height: 42.5px; height: 42.5px; }
  /* 线上窄屏 .newsnr_z h3 不覆盖字号，仍是 18px（1rem 只作用在 .index_pro 标题） */
  .ind-section--case .ind-card__title,
  .ind-section--news .ind-card__title {
    font-size: 22.5px;
    line-height: 22.5px;
    padding: 15px 0 0;
  }
}

/* ===================================================================
   五、幻灯片
   显示切换交给 style.css 的原生规则，这里不要再覆盖 display：
     PC（>800）  .fullSlide 全宽轮播（superslide，高 600px），.banner 隐藏
     ≤800        .fullSlide 隐藏，.banner 换 swiper
   上一版我在这里写了 .fullSlide{display:none} 把 PC 端轮播整个关掉了，
   首页顶上只剩移动版 swiper —— 画面看起来「有图但版式不对」。
   =================================================================== */

.ind-poster-sec { padding: 0; background: none; }

/* 背景图铺满（style.css 只写了 no-repeat center，没给 size） */
.ind-poster-sec .fullSlide .bd li {
  background-size: cover;
  background-position: center center;
}
.ind-poster-sec .swiper-pagination-bullet-active { background: var(--ind-primary); }

/* ===================================================================
   六、数据带
   =================================================================== */

.ind-stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 37.5px;
}
.ind-stat,
.ind-stats__item { display: block; text-align: center; min-width: 187.5px; }
.ind-stat__num {
  display: block;
  font-size: 50px;
  line-height: 60px;
  font-weight: bold;
  color: var(--ind-primary);
}
.ind-stat__num sup { font-size: 25px; font-weight: normal; margin-left: 5px; }
.ind-stat__label {
  display: block;
  font-size: 17.5px;
  line-height: 30px;
  color: var(--ind-text-sub);
  margin-top: 7.5px;
}

/* ===================================================================
   七、核心优势 / 产品优势（对应线上 .youshi 的图文块）

   结构说明：本模块直接沿用线上站的类名（.youshi / .lmt / .tit /
   .subtit / .youshitu / .youshiwen / .left / .right），
   因为这些规则 style.css 里已经完整存在（那份与 www.mosustar.com
   线上用的 style.css 是同一份文件），不需要重写。
   这里只补一条：浮动 li 会让 ul 高度塌陷，`.youshi` 的 padding-bottom
   不足以撑开，下方板块会压上来 —— 用伪元素清浮动兜住。
   =================================================================== */

.ind-adv ul:after {
  content: "";
  display: block;
  height: 0;
  visibility: hidden;
  clear: both;
}
/* 手机端：图片与文字各自独占一行（线上 .youshi 在窄屏就是这个行为） */
@media screen and (max-width: 1000px) {
  .ind-adv ul:after { clear: both; }
}

/* ===================================================================
   八、服务流程
   =================================================================== */

/* ===================================================================
   发展历史：垂直时间轴（结构对齐参考站 .ind-timeline）
   年份靠右贴中轴、节点圆点落在轴上、右侧白卡片放标题与说明。
   窄屏（≤991）改成单列：年份移到轴上方。
   =================================================================== */
.ind-timeline {
  position: relative;
  max-width: 1125px;
  margin: 0 auto;
}
/* 中轴竖线：首尾各留一点空隙，避免顶到圆点 */
.ind-timeline::before {
  content: "";
  position: absolute;
  top: 16px;
  bottom: 16px;
  left: 169px;              /* 线中心 = 170，与圆点圆心对齐 */
  width: 2px;
  background: var(--ind-line);
}
.ind-timeline__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  padding-bottom: 35px;
}
.ind-timeline__item:last-child { padding-bottom: 0; }

/* 年份列：靠右、贴住中轴 */
.ind-timeline__year {
  flex: 0 0 170px;
  box-sizing: border-box;
  padding-right: 32px;
  text-align: right;
  font-size: 30px;
  line-height: 46px;
  font-weight: bold;
  color: var(--ind-primary);
}
/* 轴上的节点圆点：白底 + 绿环 */
.ind-timeline__item::before {
  content: "";
  position: absolute;
  left: 160px;              /* 宽 20 → 圆心 = 170 */
  top: 15px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--ind-white);
  border: 3px solid var(--ind-accent);
  box-sizing: border-box;
  z-index: 1;
}

/* 卡片 */
.ind-timeline__card {
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 35px;
  padding: 22px 30px;
  border-radius: var(--ind-radius);
  background: var(--ind-white);
  box-shadow: 0 2px 12px rgba(22, 59, 99, .06);
}
/* --plain：素版（只留描边、不要阴影）—— 参考站用的就是这个 */
.ind-timeline__card--plain {
  border: 1px solid var(--ind-line-soft);
  box-shadow: none;
}
.ind-timeline__body { min-width: 0; }
.ind-timeline__title {
  margin: 0;
  font-size: 20px;
  line-height: 30px;
  font-weight: bold;
  color: var(--ind-text);
}
.ind-timeline__text {
  margin: 8px 0 0;
  font-size: 17.5px;
  line-height: 32px;
  color: var(--ind-text-sub);
}

@media screen and (max-width: 991px) {
  .ind-timeline { max-width: 100%; }
  .ind-timeline::before { left: 9px; }
  .ind-timeline__item { display: block; padding-left: 38px; }
  .ind-timeline__year {
    display: block;
    padding: 0 0 8px;
    text-align: left;
    font-size: 24px;
    line-height: 32px;
  }
  .ind-timeline__item::before { left: 0; top: 6px; }
  .ind-timeline__card { margin-left: 0; }
}

.ind-process {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 2%;
}
.ind-process__item { width: 23.5%; box-sizing: border-box; text-align: center; }
.ind-process__num {
  display: inline-block;
  width: 57.5px;
  height: 57.5px;
  line-height: 57.5px;
  border-radius: 50%;
  background: var(--ind-primary);
  color: var(--ind-white);
  font-size: 22.5px;
  font-weight: bold;
  margin-bottom: 20px;
}
.ind-process__text { margin-top: 5px; }
.ind-process__title {
  margin: 0;
  font-size: 20px;
  line-height: 30px;
  font-weight: normal;
  color: var(--ind-text);
}
.ind-process__desc {
  margin: 10px 0 0;
  font-size: 17.5px;
  line-height: 30px;
  color: var(--ind-text-sub);
}
@media screen and (max-width: 1238.75px) { .ind-process__item { width: 49%; } }
@media screen and (max-width: 675px) { .ind-process__item { width: 100%; } }

/* ===================================================================
   九、合作伙伴 / 客户评价 / 招聘 / 顾问套餐
   =================================================================== */

.ind-jobs,
.ind-jobs__panel,
.ind-jobs__intro,
.ind-consult {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 合作伙伴 = 徽标墙：一行横排（宽度算法与 .ind-grid 同一套：列宽×列数 + 间距×间隔 = 100%）。
   条目数不整除列数时，最后一行自动居中 —— 所以不用 justify-content:flex-start 那种左偏排法 */
.ind-partners {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 2%;
  justify-content: center;
}

.ind-partner {
  width: 18.4%;                       /* 5 列 */
  box-sizing: border-box;
  text-align: center;
  background: var(--ind-white);
  padding: 25px 20px;
  transition: box-shadow .5s, transform .5s;
}
.ind-partner:hover {
  box-shadow: 0 12.5px 18.75px rgba(0, 0, 0, .1);
  transform: translate3d(0, -6.25px, 0);
}

/* 徽标位：固定高度的小长方形槽，有图放图、无图用名称兜底成同一形状，
   两者高度一致 → 一排卡片不会被撑得一高一低 */
.ind-partner__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
}
.ind-partner__logo img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}
/* 无 logo 时的兜底：名称写在一个小长方形块里（比原来的 25px 大字紧凑得多） */
.ind-partner__logo--text {
  width: 100%;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 12.5px;
  box-sizing: border-box;
  font-size: 18.75px;
  font-weight: bold;
  line-height: 1;
  color: var(--ind-text);
  background: var(--ind-bg-block);
  border: 1px solid var(--ind-line);
  border-radius: var(--ind-radius);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ind-partner__name {
  margin: 15px 0 0;
  font-size: 16.25px;
  line-height: 25px;
  color: var(--ind-text-sub);
}

@media screen and (max-width: 1238.75px) { .ind-partner { width: 23.5%; } }  /* 4 列 */
@media screen and (max-width: 1000px)    { .ind-partner { width: 32%; } }    /* 3 列 */
@media screen and (max-width: 675px) {
  .ind-partner { width: 49%; }                                               /* 2 列 */
  /* 两列时单卡变窄，名称兜底块里的字要收一点，否则只能截断成省略号 */
  .ind-partner__logo--text { font-size: 16.25px; padding: 0 8.75px; }
}

/* 评价：引号用伪元素成对生成，不写进 HTML */
/* blockquote 浏览器自带上下 1em、左右 40px 的 margin，必须清掉。
   ⚠️ 必须 border-box：下面按 32%×3 + gap 2%×2 = 100% 排三列，
      少了它 padding 会额外撑宽 → 第三张被挤到下一行（只显示两列） */
.ind-review {
  margin: 0;
  box-sizing: border-box;
  background: var(--ind-white);
  padding: 27.5px 25px;
  /* 常驻阴影：分两层（近处一层薄影定轮廓 + 远处一层大范围柔影出立体感）。
     本区块底色是白的，单层浅影在白底上几乎看不见，所以叠了一层。 */
  box-shadow: 0 2.5px 5px rgba(0, 0, 0, .05), 0 12.5px 27.5px rgba(0, 0, 0, .10);
  transition: box-shadow .5s, transform .5s;
}
.ind-review:hover {
  box-shadow: 0 5px 10px rgba(0, 0, 0, .07), 0 18.75px 37.5px rgba(0, 0, 0, .16);
  transform: translate3d(0, -6.25px, 0);
}

/* 顶部一行：圆形头像 + 姓名/职位（对齐参考站 testimonial-head） */
.ind-review__head {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 0 0 20px;
}
.ind-review__avatar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 62.5px;
  height: 62.5px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--ind-primary);
}
.ind-review__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 没传头像时的兜底：客户名首字 */
.ind-review__avatar i {
  font-style: normal;
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
  color: var(--ind-white);
}
.ind-review__meta { min-width: 0; }
/* cite 浏览器默认斜体，必须显式归正 */
.ind-review__org {
  display: block;
  font-size: 18.75px;
  font-style: normal;
  font-weight: bold;
  color: var(--ind-text);
}
.ind-review__role {
  display: block;
  margin: 5px 0 0;
  font-size: 16.25px;
  color: var(--ind-text-mute);
}

.ind-review__text {
  margin: 0;
  font-size: 17.5px;
  line-height: 35px;
  color: var(--ind-text);
}
.ind-review__text::before { content: "\201C"; }
.ind-review__text::after  { content: "\201D"; }
/* 放大引号必须配 line-height:0，否则会把整行撑开 */
.ind-review__text::before,
.ind-review__text::after {
  font-size: 50px;
  line-height: 0;
  color: var(--ind-accent);
  vertical-align: -7.5px;
}

/* 评价卡片是 blockquote（不是 .ind-card），宽度要单独声明，
   与 .ind-card 的分档保持一致：默认 3 列 → 991 仍 3 列 → 800 两列 → 540 单列 */
.ind-grid > .ind-review { width: 32%; }
@media screen and (max-width: 991px) {
  .ind-grid > .ind-review { width: 32%; }
}
@media screen and (max-width: 800px) {
  .ind-grid > .ind-review { width: 49%; }
}
@media screen and (max-width: 540px) {
  .ind-grid > .ind-review { width: 100%; }
}

/* ===================================================================
   加入我们（招聘）：分组标签页 + 岗位卡片
   结构与 turcke 站 section-jobs 对齐（分组标签 → 分组简介 → 岗位卡），
   尺寸按 mosustar 的 1.25 倍体系换算（turcke 是 rem / 16px 基准）。
   =================================================================== */

/* 通用按钮：参考站的 .ind-btn / .ind-btn--outline（mosustar 原本没有这套类） */
.ind-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6.25px;
  padding: 12.5px 27.5px;
  border: 1px solid transparent;
  border-radius: var(--ind-radius);
  font-size: 16.25px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  cursor: pointer;
  transition: background .3s, color .3s, border-color .3s;
}
.ind-btn--outline {
  background: transparent;
  border-color: var(--ind-primary);
  color: var(--ind-primary);
}
.ind-btn--outline:hover { background: var(--ind-primary); color: var(--ind-white); }

/* 分组标签（药丸） */
.ind-jobs__tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7.5px;
  margin-bottom: 25px;
}
.ind-jobs__tab {
  padding: 8.75px 20px;
  border: 1px solid var(--ind-line);
  border-radius: 62.5px;
  background: var(--ind-white);
  color: var(--ind-text);
  font-family: inherit;
  font-size: 16.25px;
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
  transition: background .3s, color .3s, border-color .3s;
}
.ind-jobs__tab:hover { border-color: var(--ind-primary); color: var(--ind-primary); }
.ind-jobs__tab.is-active {
  background: var(--ind-primary);
  border-color: var(--ind-primary);
  color: var(--ind-white);
}

/* 分组简介：切换标签后显示在岗位列表上方 */
.ind-jobs__groupintro {
  max-width: 950px;
  margin: 0 auto 20px;
  text-align: center;
  color: var(--ind-text-sub);
  font-size: 17.5px;
  line-height: 32.5px;
}

/* 面板：只显示当前分组（JS 切 .is-active） */
.ind-jobs__panel { display: none; }
.ind-jobs__panel.is-active { display: grid; gap: 22.5px; }

/* 岗位卡：左边内容、右边「申请职位」 */
.ind-job {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 30px;
  align-items: start;
  padding: 27.5px 30px;
  border: 1px solid var(--ind-line);
  border-radius: var(--ind-radius);
  background: var(--ind-white);
  transition: box-shadow .5s;
}
.ind-job:hover { box-shadow: 0 12.5px 18.75px rgba(0, 0, 0, .08); }
.ind-job__main { display: grid; gap: 16.25px; min-width: 0; }
.ind-job__title {
  margin: 0;
  font-size: 25px;
  line-height: 35px;
  font-weight: bold;
  color: var(--ind-primary);
}

/* 元信息药丸：部门 / 地点 / 类型 / 薪资 … */
.ind-job__meta { display: flex; flex-wrap: wrap; gap: 8.75px 11.25px; }
.ind-job__meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11.25px;
  border-radius: 62.5px;
  background: var(--ind-bg-block);
  color: var(--ind-text-sub);
  font-size: 15px;
  line-height: 1.6;
}
.ind-job__meta strong { color: var(--ind-text); font-weight: 600; }

/* 岗位职责 / 任职要求：两栏并列 */
.ind-job__details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 32.5px;
}
.ind-job__block h4 {
  margin: 0 0 10px;
  color: var(--ind-text);
  font-size: 17.5px;
  font-weight: bold;
}
.ind-job__block ul { display: grid; gap: 6.25px; margin: 0; padding-left: 20px; }
.ind-job__block li { color: var(--ind-text-sub); font-size: 16.25px; line-height: 1.75; }
.ind-job__action { align-self: start; }

@media screen and (max-width: 1000px) {
  /* 按钮挪到内容下方，别再挤右边 */
  .ind-job { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
@media screen and (max-width: 675px) {
  .ind-job__details { grid-template-columns: minmax(0, 1fr); }
}

.ind-consult {
  display: block;
  background: var(--ind-white);
  padding: 30px 25px;
  transition: box-shadow .5s, transform .5s;
}
.ind-consult:hover {
  box-shadow: 0 12.5px 18.75px rgba(0, 0, 0, .1);
  transform: translate3d(0, -6.25px, 0);
}

/* ===================================================================
   十、FAQ / 标签
   =================================================================== */

.ind-faq { border-top: 1px solid var(--ind-line-soft); }
.ind-faq__item { border-bottom: 1px solid var(--ind-line-soft); }
.ind-faq__q {
  display: block;
  padding: 22.5px 42.5px 22.5px 0;
  font-size: 20px;
  line-height: 32.5px;
  color: var(--ind-text);
  font-weight: normal;
  position: relative;
  cursor: pointer;
}
/* 加号用 CSS 画，不引入图标字体库 */
.ind-faq__q::before,
.ind-faq__q::after {
  content: "";
  position: absolute;
  right: 10px;
  top: 32.5px;
  width: 17.5px;
  height: 1px;
  background: var(--ind-primary);
}
.ind-faq__q::after { transform: rotate(90deg); }
.ind-faq__q[open]::after { display: none; }
.ind-faq__body {
  padding: 0 0 25px;
  font-size: 17.5px;
  line-height: 35px;
  color: var(--ind-text-sub);
}

/* 标签云：结构与样式参照 turcke 站 mytheme 的 .ind-tags ——
   扁平排列，a 本身即药丸，右侧带使用次数角标（不是 ul/li 套表格） */
.ind-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}
.ind-tags a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 1.125rem;
  border: 1px solid var(--ind-line);
  border-radius: 37.5px;
  background: var(--ind-white);
  color: var(--ind-text-sub);
  font-size: 17.5px;
  font-weight: 600;
  line-height: 1;
  transition: background .2s, border-color .2s, color .2s;
}
.ind-tags a:hover {
  border-color: var(--ind-primary);
  background: #f2f8fd;
  color: var(--ind-primary);
}
/* 使用次数角标 */
.ind-tags__count {
  margin-left: 0.4375rem;
  padding: 0 0.4375rem;
  border-radius: 37.5px;
  background: #f0f2f5;
  color: var(--ind-text-mute);
  font-size: 15px;
  line-height: 22.5px;
}
.ind-tags a:hover .ind-tags__count { background: var(--ind-white); color: var(--ind-primary); }

/* 模块页（单页正文里写 [timeline] / [partners] / [jobs] / [reviews] / [contact] 时）：
   标记以外的正文文字放在这里、补上顶部留白；模块自身是整幅 section，不用再包容器 */
.ind-page-intro { padding: 62.5px 0 0; }

/* 单页（正文带版式标记的那种）的视觉面包屑：复用 .newsnav，但脱离 .neiye 后
   原来的固定高度/右浮动/大标题都不合适，这里收成一条细导航条 */
.ind-crumb { background: var(--ind-white); border-bottom: 1px solid var(--ind-line); }
.ind-crumb .newsnav {
  width: auto;
  height: auto;
  line-height: 1.5;
  margin-bottom: 0;
  border-bottom: 0;
  padding: 18.75px 0;
  overflow: hidden;
}
.ind-crumb .newsnav .more { float: left; font-size: 16.25px; }

/* 没有左栏的列表页（标签页 / 搜索结果页）：让右栏占满整行。
   否则 .neiye-r 仍是 float:right + 77.5% 宽，左侧会空出一大块（实测 331px）。
   ⚠️ 选择器要写三个 class：文件末尾适配层里的媒体查询 `.neiye .neiye-r{width:77.5%}`
   特异性相同且位置更靠后，两个 class 的写法会被它覆盖掉。 */
.neiye.neiye--full .neiye-r { float: none; width: 100%; }

/* 搜索结果页标题区（index.php 的 type==search 分支）
   —— 该分支原先不存在，搜索页永远显示 0 条，2026-10-15 补 */
.ind-searchhead {
  background: var(--ind-white);
  padding: 25px;
  margin-bottom: 25px;
  border-left: 5px solid var(--ind-primary);
}
.ind-searchhead__t {
  margin: 0;
  font-size: 27.5px;
  line-height: 40px;
  font-weight: bold;
  color: var(--ind-primary);
}
.ind-searchhead__t span,
.ind-searchhead__t strong { color: var(--ind-accent); }
.ind-searchhead__n {
  margin: 7.5px 0 0;
  font-size: 16.25px;
  color: var(--ind-text-sub);
}
.ind-searchhead__n strong { color: var(--ind-accent); font-weight: bold; }
.ind-searchhead__tip {
  margin: 15px 0 0;
  padding-top: 15px;
  border-top: 1px dashed var(--ind-line);
  font-size: 16.25px;
  line-height: 27.5px;
  color: var(--ind-text-mute);
}
.ind-searchhead__tip a { color: var(--ind-primary); }

/* 搜索无结果时：空的分页条也会渲染出来（Z-Blog pagebar 的行为），隐掉更干净。
   :has() 不支持时降级为「显示一条灰掉的空分页条」，无副作用。 */
.newslist > .ind-archive:empty { display: none; }
.newslist:has(.ind-archive:empty) .pglist { display: none; }

/* 分类页「子栏目」横向导航条：面包屑下面、文章列表上面
   替代原来塞在左栏、完全没有样式的那串裸链接（.subcaten）。
   注意：flex 换行布局的行间距不能用百分比（相对容器高度解析，容器高 auto → 塌成 0），
   所以列间距用固定值、行间距也用固定值。 */
.ind-subnav {
  background: var(--ind-white);
  border: 1px solid var(--ind-line);
  border-radius: var(--ind-radius);
  padding: 15px 18.75px;
  margin: 0 0 25px;
}
.ind-subnav ul {
  display: flex;
  flex-wrap: wrap;
  column-gap: 12.5px;
  row-gap: 12.5px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ind-subnav li { margin: 0; }
.ind-subnav a {
  display: block;
  padding: 8.75px 21.25px;
  border: 1px solid var(--ind-line);
  border-radius: 37.5px;
  color: var(--ind-text-sub);
  font-size: 17.5px;
  line-height: 1.45;
  background: var(--ind-white);
  transition: background .25s, border-color .25s, color .25s;
}
.ind-subnav a:hover {
  border-color: var(--ind-primary);
  color: var(--ind-primary);
}
.ind-subnav li.is-on a {
  background: var(--ind-primary);
  border-color: var(--ind-primary);
  color: var(--ind-white);
}
@media screen and (max-width: 675px) {
  .ind-subnav { padding: 11.25px 12.5px; margin-bottom: 18.75px; }
  .ind-subnav ul { column-gap: 10px; row-gap: 10px; }
  .ind-subnav a { padding: 6.25px 15px; font-size: 15px; }
}

/* ===================================================================
   文章正文排版（.danye 是主题原有的正文容器）
   原主题只给了字号/行高/颜色，标题层级、列表、表格、引用、代码块全都没样式 ——
   正文里出现 h2/h3 时和普通段落几乎没差别、表格更是挤成一团。
   这里照 turcke 的 .ind-content 补一套，尺寸按其 1.25 倍体系换算。
   =================================================================== */
.danye h1, .danye h2, .danye h3, .danye h4 {
  margin: 1.8em 0 .8em;
  line-height: 1.45;
  font-weight: 700;
  color: var(--ind-text);
}
.danye h1:first-child, .danye h2:first-child, .danye h3:first-child, .danye h4:first-child { margin-top: 0; }
/* h2 左侧竖线：正文层级一眼可辨（和 turcke 的 .ind-content h2 一致） */
.danye h2 {
  font-size: 28.75px;
  padding-left: 12.5px;
  border-left: 3.75px solid var(--ind-primary);
}
.danye h3 { font-size: 23.75px; }
.danye h4 { font-size: 20px; }

.danye p { margin: 1em 0; }
.danye ul, .danye ol { margin: 1em 0 1em 28px; }
.danye ul li { list-style: disc; }
.danye ol li { list-style: decimal; }
.danye li { margin: .4em 0; }
.danye a { color: var(--ind-primary); }
.danye img { margin: 1.2em 0; border-radius: var(--ind-radius); }

.danye blockquote {
  margin: 1.4em 0;
  padding: 12.5px 17.5px;
  border-left: 3.75px solid var(--ind-primary);
  border-radius: 0 var(--ind-radius) var(--ind-radius) 0;
  background: var(--ind-bg-block);
  color: var(--ind-text-sub);
}

.danye table { margin: 1.4em 0; width: 100%; border-collapse: collapse; font-size: 17.5px; }
.danye th, .danye td { padding: 10px 13.75px; border: 1px solid var(--ind-line); text-align: left; }
.danye th { background: var(--ind-bg-block); font-weight: 700; }

.danye pre {
  margin: 1.4em 0;
  padding: 12.5px 15px;
  border-radius: var(--ind-radius);
  background: #2b2b2b;
  color: #e6edf3;
  overflow-x: auto;
  font-size: 17.5px;
  line-height: 1.7;
}

/* -------------------------------------------------------------------
   GEO 正文组件（配合 mosu-geo-content skill 的改写产出）
   改写的文章会用到这些 class：关键词加粗带色、关键数据、结论框、
   提示框、边界提醒、步骤列表、表格滚动容器、内链下划线。
   加这些不是为了好看 —— AI 抓页面时按语义块切分，块越清晰越容易被整段摘走。
   ------------------------------------------------------------------- */

/* 关键词：正文 <strong> 统一主题蓝，让"实体 + 参数"句在扫读时跳出来 */
.danye strong,
.danye b { color: var(--ind-primary); font-weight: 700; }

/* 关键数据（氧指数、添加量、粒径、温度…）：绿色，与关键词区分开 */
.danye .geo-key { color: var(--ind-accent); font-weight: 700; }

/* 核心结论框：一段话能被整句摘走，放文章开头或小节收尾 */
.danye .geo-summary {
  margin: 1.5em 0;
  padding: 16px 20px;
  background: var(--ind-bg-block);
  border-left: 4px solid var(--ind-accent);
  border-radius: 0 var(--ind-radius) var(--ind-radius) 0;
}
.danye .geo-summary > :first-child { margin-top: 0; }
.danye .geo-summary > :last-child { margin-bottom: 0; }

/* 提示框：工艺要点、换算说明 */
.danye .geo-tip {
  margin: 1.4em 0;
  padding: 14px 18px;
  background: #f2f7fc;
  border: 1px solid #d6e4f2;
  border-radius: var(--ind-radius);
}
.danye .geo-tip > :first-child { margin-top: 0; }
.danye .geo-tip > :last-child { margin-bottom: 0; }

/* 边界提醒：不适用场景（GEO 里这条反而提高被引用率） */
.danye .geo-warn {
  margin: 1.4em 0;
  padding: 14px 18px;
  background: #fdf6ec;
  border: 1px solid #f3e0c2;
  border-radius: var(--ind-radius);
}
.danye .geo-warn > :first-child { margin-top: 0; }
.danye .geo-warn > :last-child { margin-bottom: 0; }

/* 行内小标签：体系名、标准号 */
.danye .geo-tag {
  display: inline-block;
  padding: 1px 8px;
  margin-right: 6px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--ind-primary);
  background: #eaf2fa;
  border-radius: 3px;
}

/* 内链：带下划线，与纯文本、与图片链接都能区分 */
.danye a { text-decoration: underline; text-underline-offset: 3px; }
.danye a:hover { color: var(--ind-accent); }

/* 表格滚动容器：手机上宽表不再撑破版面 */
.danye .geo-table { margin: 1.4em 0; overflow-x: auto; }
.danye .geo-table table { margin: 0; min-width: 520px; }

/* 步骤列表：编号圆点用伪元素，别在正文里手写 ①②③ */
.danye ol.geo-steps {
  counter-reset: geo-step;
  list-style: none;
  margin: 1.2em 0;
  padding: 0;
}
.danye ol.geo-steps > li {
  position: relative;
  padding-left: 32px;
  margin: .7em 0;
}
.danye ol.geo-steps > li::before {
  counter-increment: geo-step;
  content: counter(geo-step);
  position: absolute;
  left: 0;
  top: .25em;
  width: 22px;
  height: 22px;
  line-height: 22px;
  text-align: center;
  font-size: 13px;
  color: #fff;
  background: var(--ind-primary);
  border-radius: 50%;
}

/* ===================================================================
   十一、分类页子栏目药丸
   =================================================================== */

.ind-subcats ul {
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}
/* 分类页里药丸紧贴页头，需自带上间距 */
.ind-subcats--start { margin-top: 2.75rem; }
/* 药丸本体在 li 上（geomos_subcat_pills 输出），必须 inline-block，
   否则 li 默认块级排布、多个子栏目会竖成一列 */
.ind-subcats .ind-pill {
  display: inline-block;
  margin: 0 10px 12.5px;
  padding: 8.75px 25px;
  font-size: 18.75px;
  line-height: 32.5px;
  color: var(--ind-text-sub);
  background: var(--ind-white);
  border: 1px solid var(--ind-line);
  border-radius: 37.5px;
  transition: background .2s, color .2s, border-color .2s;
}
.ind-subcats .ind-pill a { color: inherit; }
.ind-subcats .ind-pill:hover {
  color: var(--ind-primary);
  border-color: var(--ind-primary);
}
.ind-subcats .ind-pill.is-active,
.ind-subcats .ind-pill.is-active a {
  background: var(--ind-primary);
  border-color: var(--ind-primary);
  color: var(--ind-white);
}

/* ===================================================================
   十二、关于我们 / 空态 / 询盘表单
   =================================================================== */

/* 关于我们（.about）直接沿用线上站的类名与结构，
   规则 style.css 里已完整存在，这里不重复定义 ——
   注意：不要给容器加 flex/grid，会破坏 .abtop 内的绝对定位与浮动叠层。 */

.ind-empty-tip {
  text-align: center;
  color: var(--ind-text-mute);
  padding: 35px 0;
  font-size: 17.5px;
}

.ind-inquiry { display: flex; align-items: flex-start; gap: 50px; }
/* 左栏固定宽：原来两栏各 flex:1，右侧表单里的长 label 会把左栏挤到
   放不下一个 48px 的标题，「联系我们」被折成竖排。 */
.ind-inquiry__aside { flex: 0 0 400px; min-width: 0; }
.ind-inquiry__form-wrap { flex: 1 1 auto; min-width: 0; }
/* 侧栏里的标题不该沿用 48px 的板块标题尺寸 */
.ind-inquiry .ind-heading { margin-bottom: 25px; text-align: left; }
.ind-inquiry .ind-heading__title { font-size: 35px; line-height: 45px; }
.ind-inquiry .ind-heading__desc { margin-left: 0; text-align: left; }
.ind-inquiry__list { list-style: none; margin: 27.5px 0 0; padding: 0; }
/* 联系信息：图标 + 一行「标签：值」（对齐参考站的 contact-list 形式） */
.ind-inquiry__item {
  display: flex;
  align-items: flex-start;
  gap: 12.5px;
  padding: 13.75px 0;
  border-bottom: 1px solid var(--ind-line-soft);
}
.ind-inquiry__item:last-child { border-bottom: 0; }
.ind-inquiry__ico {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  margin-top: 2.5px;
  color: var(--ind-primary);
}
.ind-inquiry__ico svg { display: block; }
.ind-inquiry__txt { color: var(--ind-text-sub); line-height: 30px; word-break: break-all; }
.ind-inquiry__txt a { color: var(--ind-primary); transition: opacity .3s; }
.ind-inquiry__txt a:hover { opacity: .75; }

@media screen and (max-width: 1000px) {
  .ind-inquiry { flex-direction: column; gap: 30px; }
  .ind-inquiry__aside,
  .ind-inquiry__form-wrap { width: 100%; }
}
@media screen and (max-width: 675px) {
  /* 窄屏表单回到单列，否则两个输入框并排会挤得写不下字 */
  .ind-form__grid { grid-template-columns: minmax(0, 1fr); }
  .ind-inquiry__aside { flex: none; }
}

/* 表单栅格：短字段两列并排、长字段整行（对齐参考站 row / col-md-6 的排布）。
   ⚠️ 列间距用 column-gap，行间距靠 .ind-form__row 自己的 margin-bottom ——
      百分比 row-gap 在 flex/grid 里会按容器高度解析，高度 auto 时塌成 0（.ind-grid 踩过）。 */
.ind-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 25px;
}
.ind-form__row { margin: 0 0 20px; }
.ind-form__row--full { grid-column: 1 / -1; }
.ind-form__row label {
  display: block;
  font-size: 17.5px;
  color: var(--ind-text);
  margin-bottom: 8.75px;
}
.ind-form__row label em { color: #d90000; font-style: normal; margin-left: 2.5px; }
.ind-form input[type="text"],
.ind-form textarea {
  width: 100%;
  padding: 12.5px 15px;
  font-size: 17.5px;
  font-family: inherit;
  border: 1px solid var(--ind-line);
  border-radius: var(--ind-radius);
  box-sizing: border-box;
  background: var(--ind-white);
}
.ind-form input[type="text"]:focus,
.ind-form textarea:focus { outline: none; border-color: var(--ind-primary); }
.ind-form textarea { resize: vertical; }
.ind-form__row--verify { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; }
.ind-form__row--verify label { margin-bottom: 0; }
.ind-form__row--verify input[type="text"] { width: 162.5px; flex: none; }
.ind-form__code {
  height: 47.5px;
  cursor: pointer;
  border: 1px solid var(--ind-line);
  border-radius: var(--ind-radius);
}
.ind-form__submit {
  width: 100%;
  padding: 16.25px;
  font-size: 20px;
  font-family: inherit;
  background: var(--ind-primary);
  color: var(--ind-white);
  border: 0;
  border-radius: var(--ind-radius);
  cursor: pointer;
  transition: background .2s;
}
.ind-form__submit:hover { background: var(--ind-primary-deep); }
.ind-form__submit:disabled { opacity: .6; cursor: not-allowed; }
.ind-form__msg { font-size: 17.5px; margin: 15px 0 0; min-height: 25px; }
.ind-form__msg.is-ok { color: var(--ind-accent); }
.ind-form__msg.is-error { color: #d90000; }

/* ===================================================================
   十三、导航内搜索
   =================================================================== */

.ind-search { display: inline-flex; margin-right: 17.5px; }
.ind-search input[type="text"] {
  width: 212.5px;
  padding: 10px 15px;
  font-size: 16.25px;
  font-family: inherit;
  border: 1px solid var(--ind-line);
  border-right: 0;
  border-radius: var(--ind-radius) 0 0 var(--ind-radius);
}
.ind-search button {
  padding: 10px 18.75px;
  font-size: 16.25px;
  font-family: inherit;
  background: var(--ind-primary);
  color: var(--ind-white);
  border: 0;
  border-radius: 0 var(--ind-radius) var(--ind-radius) 0;
  cursor: pointer;
}
.ind-search button:hover { background: var(--ind-primary-deep); }

/* ===================================================================
   十四、归档列表（分类页 / 标签页）
   =================================================================== */

.ind-archive {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 2%;
}
.ind-archive > li { width: 32%; box-sizing: border-box; }
.ind-archive--2 > li { width: 49%; }
@media screen and (max-width: 1000px) {
  .ind-archive > li,
  .ind-archive--2 > li { width: 49%; }
}
@media screen and (max-width: 675px) {
  .ind-archive > li,
  .ind-archive--2 > li { width: 100%; }
}
.ind-card__meta {
  display: block;
  font-size: 16.25px;
  line-height: 27.5px;
  color: var(--ind-text-mute);
  margin-top: 10px;
}

/* ===================================================================
   十五、后台设置页（重置系统 admin.css 的 label float）
   =================================================================== */

.geomos-admin label { float: none; padding: 0; line-height: inherit; }
.geomos-admin input,
.geomos-admin select,
.geomos-admin textarea { float: none; }
/* 品牌简介长文：
   .ind-heading__desc 本来是给「一行短句」的副标题用的（基准 16px 字号 / 18px 行高），
   两百多字的品牌摘要堆进去会挤成一团。
   这里按「杂志式长文」处理：行高 2.1、字距微开、左对齐、按容器比例限宽。
   全部用 em / % / 无单位行高写 —— 将来整体缩放倍数再变，这条不用重算。 */
.ind-brand__intro {
  max-width: 78%;
  margin: 1.4em auto 0;
  line-height: 2.1;
  letter-spacing: .02em;
  text-align: left;
}

/* 品牌摘要配图：限宽居中，避免大图撑满整屏 */
.ind-brand__media { margin: 32.5px auto 0; max-width: 1125px; }
.ind-brand__media img { display: block; width: 100%; height: auto; border-radius: var(--ind-radius); }

/* ===================================================================
   十六、产品中心：按子分类分组
   结构与数值对齐线上首页 .pro_box / .pro_list / .pro100 / .pro50：
     全宽区 .ind-pro100  每组占满一行（4 列）
     并排区 .ind-pro50   左右各一组（每组 2 列）
   标题条：50px 高、渐变白底、2px 彩色下边框，分类名做成色块并向右伸出三角箭头。
   全宽区第一组用主色，其余绿色 —— 线上靠 :first-child 切，这里用修饰类。
   =================================================================== */

.ind-probox { margin-bottom: 43.75px; }

.ind-probox__title {
  position: relative;
  height: 62.5px;
  line-height: 62.5px;
  margin-bottom: 18.75px;
  border-bottom: 2.5px solid var(--ind-accent);
  background-image: linear-gradient(to bottom, #fff, #f2f2f2);
}
.ind-probox__title a {
  float: right;
  margin-right: 12.5px;
  font-size: 18.75px;
  color: var(--ind-text-sub);
}
.ind-probox__title a:hover { color: var(--ind-primary); }
.ind-probox__title strong {
  display: inline-block;
  position: relative;
  height: 62.5px;
  line-height: 62.5px;
  padding: 0 25px;
  color: #fff;
  background: var(--ind-accent);
  font-size: 22.5px;
}
/* 色块右侧伸出的三角，让标题条连着色块看起来像箭头 */
.ind-probox__title strong:after {
  content: "";
  position: absolute;
  right: -62.5px;
  top: 0;
  width: 0;
  height: 0;
  border-bottom: 62.5px solid var(--ind-accent);
  border-right: 62.5px solid transparent;
}
.ind-probox__title--primary { border-bottom-color: var(--ind-primary); }
.ind-probox__title--primary strong { background: var(--ind-primary); }
.ind-probox__title--primary strong:after { border-bottom-color: var(--ind-primary); }

/* 产品卡列表 */
.ind-prolist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.8%;
}
/* 23.65% × 4 + 1.8% × 3 = 100%（与线上 .pro_list li 的算法一致） */
.ind-prolist li {
  width: 23.65%;
  box-sizing: border-box;
  background: var(--ind-white);
  padding: 18.75px;
  transition: box-shadow .5s, transform .5s;
}
.ind-prolist li:hover {
  box-shadow: 0 12.5px 18.75px rgba(0, 0, 0, .1);
  transform: translate3d(0, -6.25px, 0);
}
.ind-prolist li .pic {
  display: block;
  position: relative;
  width: 100%;
  padding-top: 75%;
  margin-bottom: 10px;
  overflow: hidden;
}
.ind-prolist li .pic img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: all .5s;
}
.ind-prolist li .pic:hover img { transform: scale(1.12); }
.ind-prolist li a.t {
  display: block;
  height: 37.5px;
  line-height: 50px;
  font-size: 20px;
  color: var(--ind-text-sub);
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.ind-prolist li a.t:hover { color: var(--ind-primary); }

/* 并排区：每行两组、每组 2 列 */
.ind-pro50__row { display: flex; gap: 2%; }
.ind-pro50__col { width: 49%; box-sizing: border-box; }
.ind-pro50 .ind-prolist li { width: 48%; }

@media screen and (max-width: 1000px) {
  /* 逐条对齐线上 style.css 窄屏块里的 .index_pro：
       .index_pro .title            { height:35px; line-height: 2.1875rem }
       .index_pro .title a          { font-size: 0.875rem }
       .index_pro .title strong     { height:35px; line-height:2.1875rem; padding:0 15px; font-size: 1rem }
       .index_pro .pro_list li a.t  { font-size: 0.875rem; height: 1rem; line-height: 1 }
     全部用 rem 而非 px —— 根字号在 ≤800 是 18px、≤540 是 16px，rem 才会自动跟着变。 */
  .ind-probox { margin-bottom: 27.5px; }
  .ind-probox__title { height: 43.75px; line-height: 2.7344rem; }
  .ind-probox__title strong {
    height: 43.75px;
    line-height: 2.7344rem;
    padding: 0 18.75px;
    font-size: 1.25rem;
  }
  .ind-probox__title strong:after {
    right: -43.75px;
    border-bottom: 43.75px solid var(--ind-accent);
    border-right: 43.75px solid transparent;
  }
  .ind-probox__title--primary strong:after { border-bottom-color: var(--ind-primary); }
  .ind-probox__title a { font-size: 1.0938rem; }
  .ind-prolist li { width: 48%; padding: 12.5px; }
  .ind-prolist li .pic { margin-bottom: 10px; }
  .ind-prolist li a.t { font-size: 1.0938rem; height: 1.25rem; line-height: 1; }
  .ind-pro50__row { display: block; }
  .ind-pro50__col { width: 100%; }
}

/* ===================================================================
   十七、导航栏
   线上 .nav 的规格（style.css 已提供，这里只调整布局）：深蓝底、65px 高、
   白字、项间竖线分隔（颜色 #3071a9）、hover 整块变绿。
   改动点：
     ① style.css 把 li 定成 12.5% 等宽靠左排，7 项时最后一项后面只剩 12.5%，
        塞不下搜索框 —— 改成按内容自适应宽度（padding 决定），配色与高度不变。
     ② 搜索框原来排在菜单**前面**，把菜单挤到中间，现在挪到菜单之后。
     ③ 用 flex 代替 float，避免浮动元素与表单互相绕排。
   =================================================================== */

.nav .box {
  display: flex;
  align-items: center;
}

/* 菜单项自适应宽度（覆盖 style.css 的 float + 12.5%） */
.nav ul.ind-navlist {
  display: flex;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav ul.ind-navlist > li {
  float: none;
  width: auto;
  flex: 0 0 auto;
  position: relative;
  padding: 0;
  height: 81.25px;
  line-height: 81.25px;
  text-align: center;
  font-size: 20px;
  /* 与线上 body 同字体（style.css 里 body 就是这么写的） */
  font-family: "Microsoft YaHei", 微软雅黑, "MicrosoftJhengHei", 华文细黑, STHeiti, MingLiu;
}
/* 竖线分隔：padding 移到 a 上，让 hover 背景盖住整块而不是只盖文字 */
.nav ul.ind-navlist > li > a {
  display: block;
  height: 81.25px;
  line-height: 81.25px;
  padding: 0 32.5px;
  color: #fff;
}
.nav ul.ind-navlist > li:before {
  content: "|";
  position: absolute;
  right: -2.5px;
  top: 0;
  color: #3071a9;
  line-height: 81.25px;
}
.nav ul.ind-navlist > li:last-child:before { content: ""; }
.nav ul.ind-navlist > li > a:hover,
.nav ul.ind-navlist > li.hover > a { background: var(--ind-accent); }

/* 导航二级下拉：鼠标移到一级项就展开（结构与 Z-Blog 内置导航模块的嵌套 ul 对齐） */
.nav ul.ind-navlist > li > ul {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 30;
  min-width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  background: var(--ind-primary);
  box-shadow: 0 10px 25px rgba(0, 0, 0, .18);
}
.nav ul.ind-navlist > li:hover > ul { display: block; }
.nav ul.ind-navlist > li > ul > li {
  float: none;
  width: auto;
  height: auto;
  position: static;
  padding: 0;
  line-height: 1.5;
  font-size: 17.5px;
  text-align: left;
  white-space: nowrap;
  border-top: 1px solid rgba(255, 255, 255, .12);
}
.nav ul.ind-navlist > li > ul > li:first-child { border-top: 0; }
.nav ul.ind-navlist > li > ul > li > a {
  display: block;
  height: auto;
  line-height: 1.5;
  padding: 12.5px 27.5px;
  color: #fff;
}
.nav ul.ind-navlist > li > ul > li > a:hover { background: var(--ind-accent); }

/* 搜索框：紧跟菜单之后，深色底适配导航条 */
.nav .ind-search {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  margin: 0 0 0 22.5px;
  height: 81.25px;
}
.nav .ind-search input[type="text"] {
  width: 195px;
  height: 42.5px;
  padding: 0 15px;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, .28);
  border-right: 0;
  border-radius: 5px 0 0 5px;
  background: rgba(255, 255, 255, .12);
  color: #fff;
  font-size: 17.5px;
  font-family: inherit;
}
.nav .ind-search input[type="text"]::placeholder { color: rgba(255, 255, 255, .6); }
.nav .ind-search input[type="text"]:focus {
  outline: none;
  background: rgba(255, 255, 255, .22);
}
.nav .ind-search button {
  height: 42.5px;
  padding: 0 17.5px;
  border: 0;
  border-radius: 0 5px 5px 0;
  background: var(--ind-accent);
  color: #fff;
  font-size: 17.5px;
  font-family: inherit;
  cursor: pointer;
  transition: background .2s;
}
.nav .ind-search button:hover { background: var(--ind-primary-deep); }

/* 「获取报价」按钮：推到导航条最右 */
.nav .ind-navcta {
  flex: 0 0 auto;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  height: 47.5px;
  padding: 0 25px;
  border-radius: 5px;
  background: var(--ind-accent);
  color: #fff;
  font-size: 18.75px;
  white-space: nowrap;
  transition: background .2s;
}
.nav .ind-navcta:hover { background: var(--ind-primary-deep); color: #fff; }

/* 窄屏：回到 style.css 的多行网格，搜索与报价按钮收起 */
/* 窄屏（≤800）：完全对齐线上 style.css 的媒体查询
     html{font-size:18px} → 0.875rem = 15.75px（≤540 时 html 变 16px → 14px）
     逐条照抄：li 25%×45px、a 44px 高 + 右/下 1px 分隔线 + 单行省略号 */
@media screen and (max-width: 1000px) {
  .nav .box { display: block; width: 100%; }
  .nav ul.ind-navlist { display: block; max-width: 1000px; height: 112.5px; margin: 0 auto; }
  .nav ul.ind-navlist > li {
    display: block;
    float: left;
    width: 25%;
    height: 56.25px;
    line-height: 56.25px;
    color: #fff;
    background: #005197;
    /* 字号跟随根字号：≤800 时 html 是 18px → 15.75px（之前写死 14px，与线上不符） */
    font-size: 1.0938rem;
  }
  .nav ul.ind-navlist > li > a {
    height: 55px;
    padding: 0;
    /* 桌面规则把 a 的行高钉在 65px，这里必须改回跟随 li 的 45px（线上靠继承得到 45px） */
    line-height: 56.25px;
    border-right: 1px solid #3071a9;
    border-bottom: 1px solid #3071a9;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }
  .nav ul.ind-navlist > li:before { content: ""; }
  .nav ul.ind-navlist > li:last-child { background: none; }
  .nav ul.ind-navlist > li:nth-of-type(4) { background: none; }
  .nav .ind-search,
  .nav .ind-navcta { display: none; }
}

/* 询盘左栏：联系方式键值对 + 二维码 */
.ind-inquiry__v a { color: var(--ind-primary); }
.ind-inquiry__v a:hover { color: var(--ind-accent); }
.ind-inquiry__qr { margin-top: 22.5px; }
.ind-inquiry__qr img {
  display: block;
  width: 162.5px;
  height: 162.5px;
  object-fit: cover;
  border: 1px solid var(--ind-line-soft);
  border-radius: var(--ind-radius);
}

/* ===================================================================
   等比缩放适配层（当前倍数 1.25）
   -------------------------------------------------------------------
   全站 CSS 已按 1.25 倍等比放大：容器 1200 → 1500px、正文 14 → 17.5px、
   板块标题 48 → 60px，连同 @media 断点一起放大（800 → 1000、1230 → 1537.5）。
   下面几段只做一件事：视口容不下放大后的固定宽度时收窄，别出横向滚动条。

   ⚠️ 以后要改整体放大量，请跑 .workbuddy/tools/scale_css.py，
      并且本层里所有长度/断点都要按「原始值 × 新倍数」重算（别只改倍数跑脚本）。
   =================================================================== */

/* ① 1000~1538 视口：容器改为「满宽 + 等比边距」。
      线上这一段是硬顶 1200px（放大后 1500px）→ 视口不够就横向溢出。 */
@media screen and (min-width: 1000px) and (max-width: 1538px) {
  .max { min-width: 0; }
  .box {
    width: auto;
    max-width: none;
    padding-left: 18.75px;
    padding-right: 18.75px;
    box-sizing: border-box;
  }

  /* 内页两栏：原主题是 .neiye-l 240 + .neiye-r 930（容器 1200，缝隙 30）。
     整站等比放大 1.25 后成了 300 + 1162.5 —— 只有在容器满 1500 时才放得下；
     而这一段视口窄于 1538 时容器跟着视口收，1462.5 就塞不进去 →
     右栏（float:right）被挤到左栏下面，页面上出现一整屏空白。
     这里按原始比例换成百分比（240/1200 与 930/1200），跟容器一起收放。 */
  .neiye .neiye-l { width: 20%; }
  .neiye .neiye-r { width: 77.5%; }

  /* 左栏内部这些是固定像素（单页的 .nydh 标题条 / 列表 / 列表项），跟着列宽走 */
  .neiye .neiye-l .nydh,
  .neiye .neiye-l .nydh .title,
  .neiye .neiye-l .nydh .ul,
  .neiye .neiye-l .nydh .ul li {
    width: 100%;
    box-sizing: border-box;
  }
}

/* ② 首页全屏轮播：min-width 会强制页面最小宽度，改成跟视口走 */
.fullSlide { min-width: 0; width: 100%; }

/* ③ 模块内的固定宽度：一律不许超出父容器（含叠在图片上的白边框 b 层） */
.about .abtop,
.about .abtimi img,
.about .abtimi b,
.xbanner .slip_tit,
.newsnr .newsnr_y,
.neiye .neiye-r,
.neiye .pro_list,
.tuijian ul,
.ind-brand__media {
  max-width: 100%;
}
.about .abtimi img { height: auto; }

/* ④ 导航条：菜单 975 + 搜索框 265 + 询盘按钮 125 = 1365px，
      视口小于 1420 时物理上放不下（会顶出横向滚动条）。
      这一段只隐藏搜索框 —— 菜单与按钮仍保持一行。 */
@media screen and (min-width: 1000px) and (max-width: 1420px) {
  .nav .ind-search { display: none; }
}
/* 再窄一档（1000~1140）：菜单 + 询盘按钮合计 1100px 也放不下，
   把菜单项左右内边距从 32.5px 收到 18px，省出约 232px。 */
@media screen and (min-width: 1000px) and (max-width: 1140px) {
  .nav ul.ind-navlist > li > a { padding: 0 18px; }
}

/* ⑤ 兜底：窄屏宁可裁掉边缘也不出现横向滚动条 */
@media screen and (max-width: 1000px) {
  html, body { overflow-x: hidden; }
}

/* ⑥ 平板 / 手机：内页（分类页、文章页、单页…）的左侧栏整块不显示 —— 用户明确要求。
   原主题在窄屏是把左栏 width:100% 铺到正文上面，子栏目菜单 +「联系我们」会占掉一整屏，
   正文要往下滑很久才看到。
   断点取 1024 而不是主题原本的 1000 —— 1000 会漏掉横屏 iPad（1024 宽），那台机器上侧栏照样显示。
   ⚠️ 子栏目导航条（.ind-subnav）在 .neiye-r 里，不受影响，窄屏仍然显示。 */
@media screen and (max-width: 1024px) {
  .neiye .neiye-l { display: none; }
  .neiye .neiye-r { float: none; width: 100%; }
}

/* ⑦ 导航吸顶：后台「导航吸顶」开关为 1 时，header.php 给 .nav 挂上 nav--sticky。
   该开关此前是摆设（后台能改、前台不读），2026-10-16 接上。
   .nav 本身有深蓝底（#005197），sticky 后不会透出下面的内容。 */
.nav--sticky {
  position: sticky;
  top: 0;
  z-index: 99;
}

/* ⑧ 页脚版权行新增元素：标语（botdzdz）与快捷链接（footer_links）。
   这两个字段此前同样是摆设，2026-10-16 接上。 */
.copyright__slogan {
  margin-right: 18.75px;
  color: var(--ind-accent);
  font-weight: bold;
}
.copyright__links { margin-right: 18.75px; }
.copyright__links a { margin-right: 12.5px; }
.copyright__links a:hover { color: var(--ind-white); }
.copyright__text { margin-right: 6.25px; }
