/**
 * ============================================================
 * PackGene 官网 · 首页专属样式层（restyle-home.css）
 * ------------------------------------------------------------
 * 定位：仅首页（Home 模板 templates/index.php）加载的视觉覆盖层，
 *      依赖公共层 restyle.css 的设计 tokens（--pg-*）与全局基础，
 *      必须在 restyle.css 之后加载（header.php 按模板条件引入）。
 * 迁移来源：由 restyle.css 04/05/06 章节中的首页专属规则拆分而来
 *          （2026-09 首页改版），作用域 = 文件加载条件，无需
 *          body.home 前缀等选择器 hack。
 * 分层：
 *   01. Hero 区（原 Banner 两区替换：左文案 + 右艺术图）
 *   02. 评价/新闻旧组件预留（原 4.4 / 4.5 / [评-x] / [闻-x] / [闻-5]，
 *       首页已改静态网格，规则暂不命中 DOM，留作轮播方案回退备用）
 *   03. 基础区块：通用元素 / 服务卡 / CDMO 深蓝区 / 新闻分段控制器与卡片 /
 *       首屏让位与 CRO·CDMO 入口卡（R1）
 *   04. [R2 2026-10-08] 第二版新增区块：奖项 / 数据行与客户 Logo / 规格与订阅 /
 *       质量等级阶梯与时间线 / CDMO 能力与案例 / 技术平台 / 科学背书 / 评价 / 行动区
 *   05. 响应式（全部首页区块统一维护）
 *   （R1 的公告条、数据行 .pg-stats、6 步路径 .pg-path-*、旧平台卡、资源链接行、
 *    评价横向滚动随 R2 模板改版删除）
 * 维护约定：
 *   - 首页专属样式只写在本文件；跨页面样式写在 restyle.css。
 *   - 其他页面需独立调样时，照此模式新建 restyle-<page>.css 并在
 *     header.php 增加对应的模板条件加载。
 * ============================================================
 */

/* ============================================================
 * 01. Hero 区（参考稿 hero section-wrap；原 Banner 两区整体替换）
 *     原 1.1-1.6 Banner 覆盖规则（h1/h2/灰卡/flyer/文字按钮/内联链接）
 *     随 DOM 替换删除；eyebrow / pill / text-link / arrow 复用 3.0 通用元素。
 * ============================================================ */

/* 1.1 Hero 布局：左文案右艺术图（grid 1.5fr/1fr 文案列优先，垂直居中），
 *     下方整行为 CRO / CDMO 两张入口卡（5.2）。
 *     [R1] fixed header 让位由外层 .pg-home-top 负责（5.1），此处只留呼吸位；
 *     原右上角 Membership Flyer 已移除（R2：订阅计划放在 #research 区块内）。 */
.pg-hero {
  position: relative;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  align-items: center;
  padding-top: 28px;
  padding-bottom: 72px;
}
.pg-hero-copy {
  position: relative;
  z-index: 1;
}
/* 主标题：一行展示不折行（字号上限 3.25rem，29 字符 × 52px 约占 750px，
 *     1.5fr 文案列约 975px@1920 放得下；nowrap 兜底防意外折行，
 *     移动端 @900 恢复自动换行） */
.pg-hero-title {
  font-size: clamp(2.875rem, 4vw, 3.25rem);
  line-height: 1.045;
  letter-spacing: -0.055em;
  font-weight: 600;
  color: var(--pg-title);
  max-width: none; /* 660px 限宽会诱发折行，主标题需通栏一行 */
  margin: 0;
  white-space: nowrap;
}
/* 第二行副标题(定制):字号较主标题降一档 + 主题蓝,左对齐跟在主标题下。
 *     两句之间的 pg-sub-br 仅在 @900 以下生效,让副标题按句成两行,
 *     避免窄屏在 "Our" 处折行显得突兀 */
.pg-hero-sub {
  display: block;
  font-size: clamp(1.75rem, 2.6vw, 2.375rem);
  letter-spacing: -0.035em;
  color: var(--pg-primary);
  margin-top: 8px;
}
.pg-hero-sub .pg-sub-br { display: none; }
/* 摘要：中灰、限宽 470px（参考稿 hero-summary） */
.pg-hero-summary {
  max-width: 490px;
  margin-top: 28px;
  font-size: 1.1875rem;
  line-height: 1.6;
  color: var(--pg-text-secondary);
}
/* 1.2 右侧艺术图：按图片自身比例完整显示（限宽 360px 不再裁切）+
 *     椭圆径向 mask（参考稿 hero-art 边缘羽化消隐融入白底）。
 *     右对齐贴版心右缘并向外出血 25px，避免图片与文字之间留大片空档。
 *     注：当前 service_detail_01.webp 源仅 256x176，放大到限宽会有颗粒感，
 *     建议后续替换为 >=1200px 宽的同名文件即可直接生效。 */
.pg-hero-art {
  width: 100%;
  max-width: 360px;
  justify-self: end;
  margin-right: -25px;
}
.pg-hero-art img {
  display: block;
  width: 100%;
  height: auto; /* 定高 + cover 会裁掉图（源图 256x176），改自适应完整展示 */
  -webkit-mask-image: radial-gradient(ellipse at center, #000 48%, transparent 74%);
  mask-image: radial-gradient(ellipse at center, #000 48%, transparent 74%);
}

/* 1.3 主按钮实底蓝变体（参考稿 .pill.primary；3.0 的 .pg-pill 仅骨架） */
.pg-pill--primary {
  background: var(--pg-primary);
  color: #ffffff;
}
.pg-pill--primary:hover {
  background: var(--pg-primary-hover);
}

/* 1.4 响应式（参考稿 1024/768 断点 → 本项目统一 900/750）：
 *     @900 单列纵排、文案居中,副标题按句分行;[R1] 艺术图宽度改 100%
 *     (原 calc(100% + 35px) 在手机上撑出横向滚动);@750 艺术图保持在
 *     文案区下方显示(2026-10 应要求恢复,原为隐藏让入口卡进首屏) */
@media (max-width: 900px) {
  .pg-hero {
    grid-template-columns: 1fr;
    padding-top: 40px;
    padding-bottom: 48px;
    gap: 24px;
    text-align: center;
  }
  .pg-hero-title {
    font-size: clamp(2.375rem, 6.6vw, 3.25rem);
    max-width: 560px;
    margin-inline: auto;
    white-space: normal; /* 窄屏放不下整行，恢复自动换行 */
  }
  .pg-hero-sub .pg-sub-br { display: inline; }
  .pg-hero-summary {
    max-width: 490px;
    margin: 23px auto 0;
    font-size: 1.0625rem;
  }
  .pg-hero-art {
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
  }
  .pg-hero-art img {
    height: auto; /* 保持源图比例完整显示，不设强制 aspect-ratio */
  }
}
@media (max-width: 750px) {
  .pg-hero {
    padding-top: 32px;
    padding-bottom: 40px;
  }
  .pg-hero-art {
    display: block; /* 手机端保留艺术图(2026-10 恢复),显示在文案区下方 */
    margin-top: 4px;
  }
  .pg-hero .pg-pill {
    min-height: 47px;
    font-size: 0.9375rem;
  }
}

/* ============================================================
 * 02. 评价 / 新闻旧组件预留（原 4.4 / 4.5 / [评-x] / [闻-x] / [闻-5]）
 *     首页改版-6/7 已将两区改为静态网格（见本文件 04 章节），
 *     下列 isaying / inews-item / splide-arrow 规则暂无命中 DOM，
 *     留作"改回轮播方案"时直接复用；如确定不回退可整体删除。
 * ============================================================ */

/* 2.1 评价轮播卡（原 4.4 + [评-1/2/4]） */
.isaying-item {
  border-radius: var(--pg-radius-card);
  box-shadow: var(--pg-shadow-card), 0 0 0 1px var(--pg-border);
}
.isaying-item__customer image {
  clip-path: inset(0 round 999px);
}
main .isaying-item__customer div.text-hd18 p {
  color: var(--pg-text-secondary);
  font-weight: 400;
}
main .isaying-item {
  transition: background-color 0.3s;
}
main .isaying-item:hover {
  background-color: var(--pg-accent-bg);
}

/* 2.2 新闻 tab 下划线样式（原 4.5；现被 04 章节分段控制器取代，
 *     .pg-tabbar 双类规则靠后且特异性同级，正常压制本块） */
.inews-tab::before {
  background-color: var(--pg-border);
}
.inews-tab span.current {
  color: var(--pg-primary);
}
.inews-tab span::after {
  background-color: var(--pg-primary);
}

/* 2.3 新闻三类轮播卡（原 [闻-1~7]） */
main .inews-item,
main .events-item,
main .citations-item {
  border-radius: var(--pg-radius-card);
  box-shadow: var(--pg-shadow-card), 0 0 0 1px var(--pg-border);
  transition: transform 0.3s, box-shadow 0.3s, background-color 0.3s;
}
main .inews-item:hover,
main .events-item:hover,
main .citations-item:hover {
  transform: translateY(-4px);
  background-color: var(--pg-accent-bg);
  box-shadow: var(--pg-shadow-hover), 0 0 0 1px var(--pg-border);
}
main .inews-item__intro p.text-hd24,
main .inews-item__intro p.text-hd16 {
  color: var(--pg-text-secondary);
}
main .inews-item__intro .h-1.bg-darkBlue {
  background-color: var(--pg-border);
  opacity: 1;
}
main .inews-item:hover .inews-item__intro {
  color: var(--pg-title);
}
main .inews-item .inews-item__img::after,
main .inews-item:hover .inews-item__img::after,
main .citations-item .inews-item__img::after,
main .citations-item:hover .inews-item__img::after {
  opacity: 0;
}
main .inews-item .inews-item__img,
main .inews-item:hover .inews-item__img {
  opacity: 0;
}
main .events-item .text-softOrange {
  color: var(--pg-primary);
}
main .events-item .text-grayBlue {
  color: var(--pg-text-secondary);
}

/* 2.4 轮播箭头蓝圆（原 [闻-5]） */
main .splide-arrow {
  height: 2em;
  border-radius: 999px;
  background-color: var(--pg-primary);
  transition: background-color 0.3s;
}
main .splide-arrow svg.hexagon {
  display: none;
}
main .splide-arrow .arrow {
  color: #ffffff;
}
main .splide-arrow:hover {
  background-color: var(--pg-primary-hover);
}
main .splide-arrow:hover .arrow {
  color: #ffffff;
}

/* ============================================================
 * 03. 基础区块（R1 及之前已有，R2 沿用）
 *     类名统一 pg- 前缀，仅首页模板使用；容器沿用主题 .wrap（max-width 81.25vw）。
 * ============================================================ */

/* 3.0 通用元素：eyebrow 小标 / 区块标题 / 文字链接 / 胶囊按钮 */
.pg-eyebrow {
  font-size: 0.75rem;
  letter-spacing: 0.13em;
  font-weight: 600;
  color: #6a6a72;
  line-height: 1.5;
  margin-bottom: 12px;
}
.pg-eyebrow--light {
  color: #a7c9f0; /* 深蓝底上的浅蓝 eyebrow */
}
.pg-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  margin-bottom: 36px;
}
.pg-section-heading h2 {
  font-size: clamp(2.1rem, 3.45vw, 3.125rem);
  letter-spacing: -0.045em;
  font-weight: 600;
  line-height: 1.12;
  color: var(--pg-title);
  margin: 0;
}
.pg-section-heading > p {
  color: var(--pg-text-secondary);
  font-size: 1rem;
  line-height: 1.6;
  padding-bottom: 2px;
}
.pg-text-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--pg-primary);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
}
.pg-text-link:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.pg-text-link .pg-arrow {
  width: 17px; /* 对齐参考稿 ArrowUpRight size 17 */
  height: 17px;
}
/* 箭头图标：空 <span> + CSS mask 引用 assets/img/ICON/arrow-up-right.svg
 *     （lucide-static@1.31.0 官方文件）。颜色用 background-color: currentColor，
 *     与原内联 svg 的 stroke="currentColor" 行为完全一致——继承文字色、
 *     hover 变色（capabilities 悬停浅蓝 / resources 悬停操作蓝）均正常；
 *     mask 只取 svg 的 alpha，文件内颜色不影响渲染。 */
.pg-arrow {
  display: inline-block;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask: url("../assets/img/ICON/arrow-up-right.svg") no-repeat center / contain;
  mask: url("../assets/img/ICON/arrow-up-right.svg") no-repeat center / contain;
}
.pg-pill {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 13px 23px;
  border-radius: var(--pg-radius-btn);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.3;
  transition: background 0.2s, transform 0.2s;
}
.pg-pill:hover {
  transform: translateY(-1px);
}
.pg-pill .pg-arrow {
  width: 18px; /* 对齐参考稿 ArrowUpRight size 18 */
  height: 18px;
}
.pg-pill--light {
  background: #ffffff;
  color: var(--pg-navy);
}
.pg-pill--light:hover {
  background: var(--pg-accent-bg);
}

/* 3.1 [R2] 数据行与客户 Logo 见 4.2 */

/* 3.2 科研服务卡网格（原 Services 卡片1，6 张卡 3 列 × 2 行） */
.pg-research {
  padding-block: 72px 88px;
}
.pg-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)); /* minmax 防长串撑破 */
  gap: 20px;
}
.pg-service-card {
  background: var(--pg-bg-secondary);
  border-radius: var(--pg-radius-card);
  padding: 30px 25px 27px;
  min-height: 252px;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, background-color 0.25s;
}
.pg-service-card:hover {
  transform: translateY(-5px);
  background: var(--pg-accent-bg);
}
/* 服务卡图标：<img> 引用 assets/img/ICON/*.svg（lucide-static@1.31.0，与参考项目
 *     lucide-react ^1.31 同源同版本），颜色 #0067d9 / 线宽 1.4 已固化在文件内 */
.pg-service-icon {
  display: block;
  width: 30px;
  height: 30px;
  margin-bottom: 25px;
}
.pg-service-card h3 {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -0.035em;
  margin: 0 0 10px;
  color: var(--pg-title);
}
.pg-service-card > p {
  color: var(--pg-text-secondary);
  font-size: 0.9375rem;
  line-height: 1.5;
  margin: 0 0 26px;
}
.pg-service-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--pg-primary);
}
.pg-service-link .pg-arrow {
  width: 18px; /* 对齐参考稿 ArrowUpRight size 18 */
  height: 18px;
}

/* 3.3 CDMO 深蓝区块（原 Services 卡片2 + 新增设施图 gmp-facility.webp） */
.pg-cdmo {
  background: var(--pg-navy);
  color: #ffffff;
  padding-block: 88px 38px;
}
.pg-cdmo h2 {
  font-size: clamp(2.1rem, 3.45vw, 3.125rem);
  letter-spacing: -0.045em;
  font-weight: 600;
  line-height: 1.12;
  margin: 0;
}
.pg-cdmo-layout {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 76px;
  align-items: center;
}
.pg-cdmo-copy > p:not(.pg-eyebrow) {
  margin: 25px 0 30px;
  color: #c4d5e7;
  font-size: 1.0625rem;
  line-height: 1.65;
}
.pg-facility {
  margin: 0;
}
.pg-facility img {
  aspect-ratio: 1.6;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: var(--pg-radius-card);
  display: block;
}
.pg-facility figcaption {
  margin-top: 13px;
  font-size: 0.75rem;
  color: #c4d5e7;
}
/* 能力链接行：4 项取自参考稿（Process development / GMP manufacturing /
 *     Analytical development / Fill & finish），各自链接到对应 CDMO 服务子页 */
.pg-cdmo-capabilities {
  margin-top: 66px;
  padding-top: 27px;
  border-top: 1px solid rgb(255 255 255 / 18%);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.pg-cdmo-capabilities a {
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  line-height: 1.5;
  transition: color 0.3s;
}
.pg-cdmo-capabilities a:hover {
  color: #b8daff;
}
.pg-cdmo-capabilities .pg-arrow {
  width: 17px; /* 对齐参考稿 ArrowUpRight size 17 */
  height: 17px;
}

/* 3.4 新闻区（原 4.2 / 4.3） */
/* 4.2 新闻区分段控制器：覆盖原 .inews-tab 下划线样式为参考稿
 *     vector-tab 形态（灰底胶囊容器 + 激活项蓝底白字）。
 *     类名 .inews-tab 保留（bundle 端点击切换依赖它），
 *     模板侧已移除 flex/gap/字号等 utility，样式由本块全权接管。 */
.pg-news-section {
  padding-block: 88px 96px;
}
.pg-tabbar-row {
  text-align: center;
  margin-top: 8px;
}
.pg-tabbar {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 4px;
  background-color: var(--pg-bg-secondary);
  border-radius: 12px;
}
/* 压制 style.css 原下划线轨道与指示条 */
.pg-tabbar::before,
.pg-tabbar span::after {
  display: none;
}
.pg-tabbar span {
  padding: 8px 18px;
  border-radius: 9px;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--pg-text-secondary);
  cursor: pointer;
  transition: background-color 0.25s, color 0.25s;
}
.pg-tabbar span.current {
  background-color: var(--pg-primary);
  color: #ffffff;
}

/* 4.3 新闻卡网格：三类卡统一骨架
 *     轨道用 minmax(0,1fr)：Citation 的 DOI 为无空格长串，
 *     1fr 轨道默认 minmax(auto,1fr) 会被长内容撑破（一行一条、
 *     卡片超宽的根源），minmax(0,1fr) 强制等分收缩。 */
.pg-news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.pg-news-card {
  background-color: var(--pg-bg-secondary);
  border-radius: var(--pg-radius-card);
  padding: 24px 25px;
  min-height: 210px;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, background-color 0.25s;
}
.pg-news-card:hover {
  transform: translateY(-4px);
  background-color: var(--pg-accent-bg);
}
/* metadata 行：日期 / 事件分类 / 期刊，小字灰阶让层级于标题 */
.pg-news-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 10px;
  margin: 0;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: var(--pg-text-secondary);
}
/* Events 分类色：Upcoming 操作蓝 / Past 次级灰（沿用原语义） */
.pg-news-cat {
  font-weight: 600;
}
.pg-news-cat.is-upcoming {
  color: var(--pg-primary);
}
.pg-news-cat.is-past {
  color: var(--pg-text-secondary);
}
/* 标题：3 行截断（三类卡统一）；overflow-wrap 兜底无空格长串 */
.pg-news-card h3 {
  margin: 12px 0 0;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--pg-title);
  overflow-wrap: break-word;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* 卡片底行：右侧常驻 ↗；min-width:0 允许 flex 子项收缩（长 DOI 省略号） */
.pg-card-foot {
  margin-top: auto;
  padding-top: 18px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 12px;
  min-width: 0;
}
.pg-card-foot .pg-arrow {
  width: 16px;
  height: 16px;
}
/* Citation 底部信息：author 一行 + DOI 独立一行（各自行内省略，合计 2 行） */
.pg-news-sub {
  margin: 0;
  margin-right: auto;
  min-width: 0;
}
.pg-news-author,
.pg-news-doi {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--pg-text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pg-news-doi {
  margin-top: 2px;
}
/* View all 链接：随 tab 的 inews-body active 显隐，无需额外 JS */
.pg-viewall {
  text-align: center;
  margin-top: 40px;
}

/* 3.5 首屏外层与入口卡（原 R1 5.1 / 5.2） */
/* 5.1 首屏外层：顶部留出 fixed header 高度。
 *     默认值按 header 实测标定（>1024px 随 vw 缩放，1920 下 128px；≤1024 固定约 71px），
 *     页面脚本加载后按 header 实测高度覆盖 --pg-header-h。 */
.pg-home-top {
  --pg-header-h: 6.667vw;
  padding-top: var(--pg-header-h);
}
@media (max-width: 1024px) {
  .pg-home-top {
    --pg-header-h: 71px;
  }
}

/* 5.2 Hero 入口卡：整行两列等宽等高，CRO 淡蓝 / CDMO 深蓝（与下方 #cdmo 区块呼应） */
.pg-entry-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 36px;
  text-align: left;
}
.pg-entry {
  display: flex;
  flex-direction: column;
  min-height: 236px;
  padding: 30px 32px 28px;
  border-radius: var(--pg-radius-card);
}
.pg-entry--cro {
  background: var(--pg-accent-bg);
}
.pg-entry--cdmo {
  background: var(--pg-navy);
  color: #ffffff;
}
.pg-entry-label {
  margin: 0 0 14px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--pg-primary);
}
.pg-entry--cdmo .pg-entry-label {
  color: #a7c9f0;
}
.pg-entry-title {
  margin: 0;
  font-size: clamp(1.5rem, 2.1vw, 1.875rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1.15;
  color: var(--pg-title);
}
.pg-entry--cdmo .pg-entry-title {
  color: #ffffff;
}
.pg-entry-desc {
  max-width: 520px;
  margin: 12px 0 26px;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--pg-text-secondary);
}
.pg-entry--cdmo .pg-entry-desc {
  color: #c4d5e7;
}
.pg-entry-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 24px;
  margin-top: auto;
}
.pg-entry-actions .pg-text-link {
  font-size: 0.9375rem;
}
/* 深色底文字链接（CDMO 入口卡 / #cdmo 区块） */
.pg-text-link--light {
  color: #ffffff;
}
.pg-text-link--light:hover {
  color: #b8daff;
}

/* ============================================================
 * 04. [R2 2026-10-08] 首页第二版新增区块
 *     对应 templates/index.php（[首页改版-R2]）：
 *       .pg-award        Hero 下沙利文奖一行
 *       .pg-trust        客户数据 + 客户 Logo（.pg-figs / .pg-clients）
 *       .pg-specs / .pg-sub-band / .pg-chip   科研服务区规格行、订阅计划、交期标签
 *       #path            质量等级阶梯（.pg-ladder / .pg-grade / .pg-bracket）+ 时间线
 *       #cdmo            CDMO 数据行（.pg-figs--dark）、参观与审计联系方式（.pg-tour）
 *       #supply          规模 / 两地设施 / 质量与数据三栏 + 案例 + Dyno
 *       #platforms       DuoPack 主卡 + 4 个平台卡 + 专利卡
 *       #science         引用数 / Webinar / 自有发表 / 资料下载
 *       #stories         客户评价 3×2
 *       .pg-cta          页尾行动区
 *     品牌色：VI 标准蓝 --pg-brand（#00A4FF）只用于图形、深色底高亮和大号数字的 "+"，
 *     白底文字链接与按钮沿用全站操作蓝 --pg-primary（标准蓝在白底上对比度不足以做正文）。
 * ============================================================ */
:root {
  --pg-brand: #00a4ff;
  --pg-orange: #f5812b;
  --pg-on-navy: #c4d5e7;
  --pg-on-navy-line: rgb(255 255 255 / 16%);
  --pg-band-y: clamp(64px, 7vw, 96px);
}

/* 4.1 Hero 奖项一行（橙色六边形取自 VI 辅助色与 Logo 六边形） */
.pg-award {
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 34em;
  margin-top: 22px;
  font-size: 0.875rem;
  line-height: 1.4;
  color: var(--pg-text-secondary);
}
.pg-award svg {
  width: 34px;
  height: 38px;
  flex-shrink: 0;
}
.pg-award strong {
  color: var(--pg-title);
  font-weight: 600;
}

/* 4.2 数据行（信任区 4 项 / CDMO 区 4 项）：数字 Montserrat，"+" 用标准蓝 */
.pg-trust {
  border-top: 1px solid var(--pg-border);
}
.pg-figs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.pg-figs > div {
  display: grid;
  gap: 4px;
  align-content: start;
  padding: 28px 24px 26px 0;
}
.pg-figs > div + div {
  padding-left: 24px;
  border-left: 1px solid var(--pg-border);
}
.pg-fig {
  margin: 0;
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: clamp(1.9rem, 2.8vw, 2.6rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--pg-title);
  font-variant-numeric: tabular-nums;
}
.pg-fig i {
  font-style: normal;
  color: var(--pg-brand);
}
.pg-fig sup {
  font-size: 0.55em;
}
.pg-fig-label {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--pg-text-secondary);
}
.pg-figs--dark {
  margin-top: 56px;
  border-top: 1px solid var(--pg-on-navy-line);
}
.pg-figs--dark > div + div {
  border-left-color: var(--pg-on-navy-line);
}
.pg-figs--dark .pg-fig {
  color: #ffffff;
  font-size: clamp(1.7rem, 2.5vw, 2.3rem);
}
.pg-figs--dark .pg-fig-label {
  color: var(--pg-on-navy);
}

/* 客户 Logo：已去白边的 webp，按各自形状给高度，视觉大小一致 */
.pg-clients {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px 48px;
  padding-block: 26px;
  border-top: 1px solid var(--pg-border);
}
.pg-clients > p {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #868d99;
}
.pg-clients ul {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 24px 48px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pg-clients img {
  display: block;
  width: auto;
  max-width: 100%;
}
.pg-client--otovia { height: 64px; }
.pg-client--lingyimed { height: 44px; }
.pg-client--juvensis { height: 32px; }
.pg-client--euhearing { height: 48px; }
.pg-client--reforgene { height: 40px; }
.pg-footnote {
  margin: 0;
  padding-bottom: 28px;
  font-size: 0.8125rem;
  color: #868d99;
}

/* 4.3 科研服务区：灰底 + 白卡；交期标签；规格行；订阅计划条 */
.pg-research {
  background: var(--pg-bg-secondary);
}
.pg-research .pg-service-card {
  background: #ffffff;
}
.pg-research .pg-service-card:hover {
  background: var(--pg-accent-bg);
}
.pg-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--pg-bg-secondary);
  color: var(--pg-text-secondary);
  font-size: 0.8125rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.pg-chip::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--pg-brand);
}
.pg-chip--empty {
  visibility: hidden;
}
.pg-specs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 36px;
  border-top: 1px solid var(--pg-border);
}
.pg-specs > div {
  display: grid;
  gap: 2px;
  padding: 20px 20px 0 0;
}
.pg-specs > div + div {
  padding-left: 20px;
  border-left: 1px solid var(--pg-border);
}
.pg-specs strong {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: 1.25rem;
  letter-spacing: -0.02em;
  color: var(--pg-title);
  font-variant-numeric: tabular-nums;
}
.pg-specs span {
  font-size: 0.875rem;
  color: var(--pg-text-secondary);
}
.pg-sub-band {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px 32px;
  margin-top: 40px;
  padding: 26px 30px;
  border-radius: var(--pg-radius-card);
  background: #ffffff;
}
.pg-sub-band > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  max-width: 62ch;
}
.pg-sub-band h3 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--pg-title);
}
.pg-sub-band p {
  margin: 0;
  color: var(--pg-text-secondary);
}
/* 订阅按钮带 flyer-pulse（埋点钩子），压掉模板内联的闪烁描边 */
.pg-sub-band .pg-pill.flyer-pulse {
  border: 0;
  animation: none;
  cursor: pointer;
}

/* 4.4 科研 → 临床：质量等级阶梯 + 两行括注 + 时间线 */
.pg-path {
  padding-block: var(--pg-band-y);
}
.pg-ladder {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.pg-grade {
  display: grid;
  gap: 10px;
  align-content: start;
  min-width: 0;
  padding: 24px 22px;
  border-radius: 20px;
  background: var(--pg-bg-secondary);
}
.pg-grade h3 {
  margin: 0;
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--pg-title);
}
.pg-grade p {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--pg-text-secondary);
}
.pg-grade .pg-grade-tat {
  margin-top: 6px;
  padding-top: 12px;
  border-top: 1px solid var(--pg-border);
  font-size: 0.875rem;
  color: var(--pg-title);
  font-variant-numeric: tabular-nums;
}
.pg-grade--clinical {
  background: var(--pg-navy);
}
.pg-grade--clinical h3,
.pg-grade--clinical .pg-grade-tat {
  color: #ffffff;
}
.pg-grade--clinical p {
  color: var(--pg-on-navy);
}
.pg-grade--clinical .pg-grade-tat {
  border-top-color: var(--pg-on-navy-line);
}
/* 六边形等级标识（取自 Logo 六边形）：标准蓝底 + 深蓝字（白字对比度不足） */
.pg-hex {
  display: grid;
  place-items: center;
  width: 50px;
  height: 56px;
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  background: var(--pg-brand);
  color: var(--pg-navy);
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-weight: 700;
  font-size: 0.8125rem;
}
.pg-grade--clinical .pg-hex {
  background: #ffffff;
}
.pg-bracket {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  min-height: 52px;
  padding: 10px 18px;
  border-radius: 14px;
  font-size: 0.875rem;
  line-height: 1.35;
}
.pg-bracket b {
  font-weight: 600;
}
.pg-bracket--research {
  grid-column: 1 / span 2;
  background: var(--pg-bg-secondary);
  color: var(--pg-text-secondary);
}
.pg-bracket--gmp {
  grid-column: 3 / span 2;
  background: var(--pg-brand);
  color: #001b3a;
}
.pg-bracket--nongmp {
  grid-column: 1 / span 3;
  border: 1.5px solid var(--pg-border);
  color: var(--pg-text-secondary);
}
.pg-bracket--gmpstd {
  grid-column: 4;
  border: 1.5px solid var(--pg-navy);
  color: var(--pg-navy);
}
.pg-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 48px;
}
.pg-timeline::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 6px;
  right: 6px;
  height: 2px;
  background: linear-gradient(90deg, var(--pg-brand) 0 50%, var(--pg-navy) 50% 100%);
}
.pg-tl {
  position: relative;
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 28px 18px 0 0;
}
.pg-tl::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #ffffff;
  border: 3px solid var(--pg-brand);
  box-sizing: border-box;
}
.pg-tl:nth-child(n + 3)::before {
  border-color: var(--pg-navy);
}
.pg-tl strong {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--pg-title);
  font-variant-numeric: tabular-nums;
}
.pg-tl span {
  font-size: 0.9375rem;
  color: var(--pg-text-secondary);
}
.pg-tl-cap {
  margin: 18px 0 0;
  font-size: 0.8125rem;
  color: #868d99;
}
.pg-movers {
  margin: 40px 0 0;
  padding: 20px 24px;
  border: 1px solid var(--pg-border);
  border-radius: 16px;
  color: var(--pg-text-secondary);
}
.pg-movers strong {
  font-weight: 600;
  color: var(--pg-title);
}

/* 4.5 CDMO 区补充：操作行下的参观 / 审计联系方式；能力链接改 3 列 × 2 行 */
.pg-cdmo {
  padding-block: var(--pg-band-y);
}
.pg-cdmo .pg-cdmo-capabilities {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 32px;
  margin-top: 48px;
  padding-top: 0;
}
.pg-cdmo .pg-cdmo-capabilities a {
  padding: 18px 0;
  border-bottom: 1px solid var(--pg-on-navy-line);
  font-size: 0.9375rem;
}
.pg-cdmo-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 26px;
}
.pg-cdmo-actions .pg-text-link {
  font-size: 0.9375rem;
}
.pg-tour {
  margin: 22px 0 0;
  font-size: 0.875rem;
  color: var(--pg-on-navy);
}
.pg-cdmo-copy > p.pg-tour {
  margin: 22px 0 0;
  font-size: 0.875rem;
}
.pg-tour span {
  color: #ffffff;
  font-weight: 500;
  user-select: all;
}

/* 4.6 CDMO 能力与案例：灰底；三栏白卡 + 案例卡 + Dyno 卡 */
.pg-supply {
  padding-block: var(--pg-band-y);
  background: var(--pg-bg-secondary);
}
.pg-pillars {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.pg-pillar {
  display: grid;
  gap: 16px;
  align-content: start;
  min-width: 0;
  padding: 28px;
  border-radius: var(--pg-radius-card);
  background: #ffffff;
}
.pg-pillar h3 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--pg-title);
}
.pg-pillar dl {
  display: grid;
  gap: 14px;
  margin: 0;
}
.pg-pillar dt {
  font-size: 0.8125rem;
  color: #868d99;
}
.pg-pillar dd {
  margin: 2px 0 0;
  color: var(--pg-title);
  font-variant-numeric: tabular-nums;
}
.pg-pillar dd strong {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: 1.125rem;
}
.pg-pillar-note {
  margin: 0;
  font-size: 0.875rem;
  color: var(--pg-text-secondary);
}
.pg-proofs {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: 18px;
  margin-top: 18px;
}
.pg-case,
.pg-dyno {
  display: grid;
  gap: 16px;
  align-content: start;
  min-width: 0;
  padding: 30px;
  border-radius: var(--pg-radius-card);
}
.pg-case {
  background: #ffffff;
}
.pg-dyno {
  background: var(--pg-accent-bg);
}
.pg-case-head {
  display: grid;
  gap: 6px;
}
.pg-case .pg-eyebrow,
.pg-dyno .pg-eyebrow {
  margin: 0;
}
.pg-case h3 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.2;
  color: var(--pg-title);
}
.pg-case-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.pg-case-grid h4 {
  margin: 0 0 6px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #868d99;
}
.pg-case-grid p {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--pg-text-secondary);
}
.pg-case-outcome p {
  color: var(--pg-title);
}
.pg-dyno h3 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--pg-title);
}
.pg-dyno ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pg-dyno li {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 12px;
  align-items: baseline;
}
.pg-dyno li strong {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: 1.375rem;
  color: var(--pg-navy);
  font-variant-numeric: tabular-nums;
}
.pg-dyno li span {
  font-size: 0.9375rem;
  color: var(--pg-text-secondary);
}
.pg-src {
  margin: 0;
  font-size: 0.8125rem;
  color: #868d99;
}

/* 4.7 技术平台：DuoPack 深蓝主卡占 2×2，其余 5 张填满 3 列网格 */
.pg-platforms {
  padding-block: var(--pg-band-y);
}
.pg-plat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.pg-plat {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: 28px;
  border-radius: var(--pg-radius-card);
  background: var(--pg-bg-secondary);
  transition: transform 0.25s;
}
a.pg-plat:hover {
  transform: translateY(-4px);
}
.pg-plat > p {
  margin: 0;
  color: var(--pg-text-secondary);
}
.pg-plat .pg-plat-cat {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.11em;
  color: #868d99;
}
.pg-plat .pg-wordmark {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: clamp(1.9rem, 2.6vw, 2.4rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--pg-navy);
}
.pg-wordmark sup {
  margin-left: 2px;
  font-size: 0.4em;
  font-weight: 500;
}
.pg-pi {
  color: var(--pg-brand);
}
.pg-plat > .pg-text-link {
  margin-top: auto;
  padding-top: 8px;
}
.pg-plat--duo {
  grid-column: 1 / span 2;
  grid-row: 1 / span 2;
  gap: 18px;
  padding: 34px;
  background: var(--pg-navy);
}
.pg-plat--duo .pg-plat-cat {
  color: var(--pg-brand);
}
.pg-plat--duo .pg-wordmark {
  color: #ffffff;
  font-size: clamp(2.4rem, 3.8vw, 3.4rem);
}
.pg-plat--duo > p {
  max-width: 52ch;
  color: var(--pg-on-navy);
}
.pg-duo-figs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
  border-top: 1px solid var(--pg-on-navy-line);
}
.pg-duo-figs > div {
  display: grid;
  gap: 2px;
  padding: 18px 0;
  border-bottom: 1px solid var(--pg-on-navy-line);
}
.pg-duo-figs strong {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: clamp(1.5rem, 2.3vw, 2rem);
  letter-spacing: -0.03em;
  color: #ffffff;
  font-variant-numeric: tabular-nums;
}
.pg-duo-figs strong i {
  font-style: normal;
  color: var(--pg-brand);
}
.pg-duo-figs span {
  font-size: 0.875rem;
  color: var(--pg-on-navy);
}
.pg-plat--ip {
  background: #ffffff;
  border: 1.5px solid var(--pg-border);
}
.pg-ip-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9375rem;
  color: var(--pg-text-secondary);
}
.pg-ip-list li::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 8px;
  margin-right: 8px;
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  background: var(--pg-brand);
}

/* 4.8 科学背书：灰底；引用数卡 + 发表列表 + 4 张资料卡 */
.pg-science {
  padding-block: var(--pg-band-y);
  background: var(--pg-bg-secondary);
}
.pg-sci {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr);
  gap: 18px;
}
.pg-sci-card {
  display: grid;
  gap: 14px;
  align-content: start;
  min-width: 0;
  padding: 30px;
  border-radius: var(--pg-radius-card);
  background: #ffffff;
}
.pg-sci-card > p,
.pg-sci-card .pg-eyebrow {
  margin: 0;
}
.pg-big {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  font-size: clamp(3.4rem, 6.5vw, 5.4rem);
  letter-spacing: -0.05em;
  line-height: 1;
  color: var(--pg-navy);
  font-variant-numeric: tabular-nums;
}
.pg-webinar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 16px;
  border-top: 1px solid var(--pg-border);
}
.pg-play {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--pg-accent-bg);
  color: var(--pg-primary);
}
.pg-pubs {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pg-pubs li {
  display: grid;
  gap: 4px;
  padding: 16px 0;
  border-bottom: 1px solid var(--pg-border);
}
.pg-pubs li:first-child {
  padding-top: 0;
}
.pg-pubs a {
  font-weight: 500;
  color: var(--pg-title);
  transition: color 0.2s;
}
.pg-pubs a:hover {
  color: var(--pg-primary);
}
.pg-pubs span {
  font-size: 0.8125rem;
  color: #868d99;
}
.pg-dl-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 18px;
}
.pg-dl {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  padding: 22px;
  border-radius: 18px;
  background: #ffffff;
  transition: transform 0.25s;
}
.pg-dl:hover {
  transform: translateY(-3px);
}
.pg-dl .pg-dl-tag {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--pg-primary);
}
.pg-dl h3 {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--pg-title);
}
.pg-dl .pg-text-link {
  margin-top: auto;
}

/* 4.9 客户评价：3 列 × 2 行静态网格（取代原横向滚动） */
.pg-stories {
  padding-block: var(--pg-band-y);
}
.pg-quotes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.pg-quote {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 22px;
  min-width: 0;
  margin: 0;
  padding: 28px;
  border-radius: var(--pg-radius-card);
  background: var(--pg-bg-secondary);
}
.pg-quote blockquote {
  margin: 0;
  line-height: 1.6;
  color: var(--pg-title);
}
.pg-quote blockquote::before {
  content: "\201C";
  display: block;
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-size: 2.6rem;
  line-height: 0.8;
  color: var(--pg-brand);
}
.pg-quote figcaption {
  display: grid;
  gap: 2px;
  font-size: 0.875rem;
}
.pg-quote figcaption b {
  font-weight: 600;
  color: var(--pg-title);
}
.pg-quote figcaption span {
  color: var(--pg-text-secondary);
}

/* 4.10 新闻区：灰底 + 白卡；自有新闻卡顶部带列表图（无图时显示深蓝文字卡） */
.pg-news-section {
  padding-block: var(--pg-band-y);
  background: var(--pg-bg-secondary);
}
.pg-news-section .pg-tabbar {
  background-color: #ffffff;
}
.pg-news-section .pg-news-card {
  background-color: #ffffff;
}
.pg-news-section .pg-news-card:hover {
  background-color: var(--pg-accent-bg);
}
.pg-news-card--media {
  padding: 0;
  overflow: hidden;
}
.pg-news-img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  object-fit: cover;
}
.pg-news-img--type {
  display: grid;
  align-content: end;
  gap: 4px;
  padding: 22px;
  background: var(--pg-navy);
  color: #ffffff;
}
.pg-news-img--type span {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pg-brand);
}
.pg-news-img--type b {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.pg-news-body {
  display: grid;
  gap: 8px;
  padding: 20px 22px 24px;
}
.pg-news-body h3 {
  margin: 0;
}
.pg-news-excerpt {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--pg-text-secondary);
}

/* 4.11 页尾行动区：深蓝 */
.pg-cta {
  padding-block: var(--pg-band-y);
  background: var(--pg-navy);
  color: #ffffff;
}
.pg-cta-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px 40px;
}
.pg-cta h2 {
  margin: 0;
  font-size: clamp(2.1rem, 3.45vw, 3.125rem);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 1.12;
  color: #ffffff;
}
.pg-cta-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 22px;
}
.pg-cta-mail {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.9375rem;
  color: var(--pg-on-navy);
}
.pg-cta-mail span {
  color: #ffffff;
  user-select: all;
}

/* ============================================================
 * 05. 响应式（全部首页区块）
 *     断点：1080（平板横屏）/ 900（平板）/ 750（手机，与模板 md: 一致）/ 390（小屏）
 * ============================================================ */
@media (max-width: 1080px) {
  .pg-plat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pg-plat--duo {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  .pg-dl-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .pg-figs,
  .pg-specs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pg-figs > div:nth-child(3),
  .pg-specs > div:nth-child(3) {
    padding-left: 0;
    border-left: 0;
  }
  .pg-figs > div:nth-child(n + 3),
  .pg-specs > div:nth-child(n + 3) {
    border-top: 1px solid var(--pg-border);
  }
  .pg-figs--dark > div:nth-child(n + 3) {
    border-top-color: var(--pg-on-navy-line);
  }
  .pg-specs > div {
    padding-bottom: 18px;
  }
  .pg-entry {
    padding: 26px 24px 24px;
  }
  .pg-service-grid,
  .pg-quotes,
  .pg-pillars {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pg-service-card {
    min-height: 235px;
  }
  .pg-news-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pg-cdmo-layout {
    gap: 48px;
  }
  .pg-cdmo .pg-cdmo-capabilities {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pg-proofs,
  .pg-sci {
    grid-template-columns: minmax(0, 1fr);
  }
  .pg-case-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  /* 阶梯改 2 列：CC / SA → 研究工艺括注 → NHP / Clinical → GMP 工艺括注 */
  .pg-ladder {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pg-bracket--research {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .pg-grade:nth-child(3),
  .pg-grade:nth-child(4) {
    grid-row: 3;
  }
  .pg-bracket--gmp {
    grid-column: 1 / -1;
    grid-row: 4;
  }
  .pg-bracket--nongmp,
  .pg-bracket--gmpstd {
    display: none;
  }
  .pg-cta-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 750px) {
  .pg-section-heading {
    display: block;
    margin-bottom: 28px;
  }
  .pg-section-heading > p {
    margin-top: 18px;
    padding-bottom: 0;
  }
  .pg-section-heading h2,
  .pg-cta h2 {
    font-size: 2.1rem;
  }
  .pg-pill {
    min-height: 47px;
    font-size: 0.9375rem;
  }
  .pg-entry-grid,
  .pg-service-grid,
  .pg-quotes,
  .pg-pillars,
  .pg-plat-grid,
  .pg-dl-grid,
  .pg-news-grid,
  .pg-cdmo .pg-cdmo-capabilities {
    grid-template-columns: minmax(0, 1fr); /* minmax(0,…) 防长 DOI 撑破单列轨道 */
  }
  .pg-entry {
    min-height: 0;
  }
  .pg-entry-desc {
    margin-bottom: 22px;
    font-size: 0.9375rem;
  }
  .pg-figs > div,
  .pg-figs > div + div {
    padding: 20px 12px 18px 0;
  }
  .pg-figs > div:nth-child(even) {
    padding-left: 16px;
  }
  .pg-fig-label {
    font-size: 0.8125rem;
  }
  .pg-service-card {
    min-height: 0;
    padding: 25px 22px;
  }
  .pg-service-card h3 {
    font-size: 1.375rem;
  }
  .pg-cdmo-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 38px;
  }
  .pg-facility img {
    aspect-ratio: 1.65;
  }
  .pg-duo-figs {
    grid-template-columns: minmax(0, 1fr);
  }
  .pg-plat--duo {
    padding: 28px;
  }
  .pg-ladder {
    grid-template-columns: minmax(0, 1fr);
  }
  .pg-grade:nth-child(n) {
    grid-row: auto;
  }
  .pg-bracket--research {
    grid-row: 3;
  }
  .pg-grade:nth-child(3) {
    grid-row: 4;
  }
  .pg-grade:nth-child(4) {
    grid-row: 5;
  }
  .pg-bracket--gmp {
    grid-row: 6;
  }
  .pg-timeline {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }
  .pg-timeline::before {
    top: 8px;
    bottom: 8px;
    left: 6px;
    right: auto;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, var(--pg-brand) 0 50%, var(--pg-navy) 50% 100%);
  }
  .pg-tl {
    padding: 0 0 0 32px;
  }
  .pg-news-card {
    min-height: 0;
  }
  .pg-tabbar span {
    padding: 7px 14px;
    font-size: 0.8125rem;
  }
  .pg-viewall {
    margin-top: 30px;
  }
  .pg-clients ul {
    gap: 20px 32px;
  }
  .pg-client--otovia { height: 52px; }
  .pg-client--lingyimed { height: 36px; }
  .pg-client--juvensis { height: 26px; }
  .pg-client--euhearing { height: 40px; }
  .pg-client--reforgene { height: 32px; }
}
@media (max-width: 390px) {
  .pg-service-card {
    padding: 22px 17px;
  }
  .pg-service-card h3 {
    font-size: 1.25rem;
  }
}
