/* ==========================================================================
   文章版式 · 三套
     .pf--person  人物档案（CXO高管智库）—— 头像 + 姓名 + 职务 + 机构 + 获奖记录
     .pf--event   活动资讯（论坛/沙龙/线上/专题…）—— 封面 + 时间地点 + 报名
     .pf--award   获奖名单（CXOU 100 评选）—— 奖项标识 + 同奖获奖者名单
   三套共用 .entry-content / .content-with-aside / .post-nav / .entry-tags，
   正文排版与文章页完全一致 —— 变的只是「头部放什么信息」和「底部接什么名单」。
   ========================================================================== */

/* ==========================================================================
   1. 人物档案
   ========================================================================== */
.pf-person__hero{position:relative;overflow:hidden;
  padding:calc(var(--head-h) + 56px) 0 54px;border-bottom:1px solid var(--line-s)}
.pf-person__glow{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(56% 100% at 14% 0%,rgba(226,84,44,.16),transparent 64%),
             radial-gradient(46% 90% at 84% 30%,rgba(240,185,80,.08),transparent 60%)}
.pf-person__hero .wrap{position:relative;z-index:2}
.pf-person__hero .crumbs{color:var(--faint);margin-bottom:32px}

/* 左栏宽度与 speakers.css 的 .spk-single__id 保持一致：两处共用 spk-face-lg 尺寸。 */
.pf-person__id{display:grid;grid-template-columns:clamp(220px,27vw,344px) minmax(0,1fr);
  gap:clamp(24px,3.4vw,46px);align-items:start}

/* 3:2 横版。实测这批 553 张有图里 548 张是横图、竖图 0 张，
   原来定 4:5 是在把演讲现场照和机构建筑照硬裁成竖版。 */
.pf-person__face{position:relative;aspect-ratio:3/2;overflow:hidden;
  background:var(--void2);border:1px solid var(--line)}
.pf-person__face img{width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(.94) contrast(1.02)}
/* 命中 is-logo 的那些图不是图形 logo，而是演讲现场照 / 机构建筑照。
   「裁一刀会切坏 logo」的顾虑对照片不成立，但「不裁切内容」仍然值得保留 ——
   建筑照上带着公司 logo 与网址，裁掉就认不出是哪一家。
   所以留 contain，但把 padding 从 14% 降到 0：14% 那套是给白底图形留白的，
   套在全幅照片上等于白白缩一圈，容器改成 3:2 变矮后更明显。 */
.pf-person__face.is-logo{background:linear-gradient(180deg,rgba(255,225,168,.06),transparent),var(--void3)}
.pf-person__face.is-logo img{object-fit:contain;padding:0}
.pf-person__ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;
  font-size:52px;font-weight:800;color:var(--faint);
  background:radial-gradient(70% 70% at 50% 30%,var(--void3),var(--void))}

.pf-person__who{min-width:0}
.pf-person__kind{display:inline-block;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--void);background:var(--ember);padding:3px 10px;border-radius:3px;
  margin:0 0 14px}
/* 实测 1180 篇人物文章标题：p50=26 字、p90=31、p99=41、最长 53。
   44→36px 后右栏（实测可用约 805px）每行约 22 字，p90 两行、最长三行。
   断行用 normal + break-word，不用 keep-all —— keep-all 禁止汉字之间断行，
   本标题只有一个 | 可断点，keep-all 下 32 字 × 36px 直接撑破右栏
   （线上实测横向溢出被裁）。详见 main.css .single-hero h1 的同一段说明。 */
.pf-person__who h1{font-size:clamp(24px,2.8vw,36px);font-weight:800;letter-spacing:-.02em;
  line-height:1.34;margin:0 0 22px;max-width:min(1000px,100%);
  text-wrap:balance;word-break:normal;overflow-wrap:break-word}

/* 身份三格：姓名 / 职务 / 所在机构。人物档案页的信息重心全在这里 */
.pf-person__facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,168px),1fr));
  gap:1px;background:var(--line-s);border:1px solid var(--line-s);margin:0 0 22px}
.pf-person__facts>div{background:var(--void);padding:16px 18px}
.pf-person__facts dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--faint);margin-bottom:7px}
/* 职务 / 机构名是一整个词组，anywhere 会把它拦腰截断。
   break-word 只在单个词真的塞不下时才断，平时按词组边界换行。 */
.pf-person__facts dd{margin:0;font-size:15px;color:var(--cream);line-height:1.6;overflow-wrap:break-word}
.pf-person__facts dd a{color:var(--ember);text-decoration:none}
.pf-person__facts dd a:hover{text-decoration:underline;text-underline-offset:3px}

.pf-person__award{display:flex;gap:16px;align-items:baseline;flex-wrap:wrap;
  padding:16px 18px;margin:0 0 22px;
  background:linear-gradient(90deg,rgba(240,185,80,.10),transparent 70%);
  border-left:2px solid var(--gold)}
.pf-person__award-lb{font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);font-weight:700;white-space:nowrap}
.pf-person__award-name{margin:0;font-size:15.5px;color:var(--cream);line-height:1.6}
.pf-person__award-by{font-size:12.5px;color:var(--dim);margin-left:8px}

.pf-person__meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin:0;padding-top:18px;
  border-top:1px solid var(--line-s);font-size:12.5px;color:var(--faint)}
.pf-person__cat{color:var(--ember);text-decoration:none}
.pf-person__cat:hover{text-decoration:underline;text-underline-offset:3px}

/* 同机构的其他人物：横版小卡，和嘉宾名录的卡同源但更小。
   注释原来写"竖版人像小卡"，与实测不符（这批图也没有一张竖的），已改。 */
.pf-people{list-style:none;margin:0;padding:0;display:grid;gap:clamp(12px,1.4vw,20px);
  grid-template-columns:repeat(auto-fill,minmax(min(100%,196px),1fr))}
.pf-person-card{position:relative;background:var(--void2);border:1px solid var(--line);
  transition:transform .35s var(--ease),border-color .35s,box-shadow .35s}
.pf-person-card:hover{transform:translateY(-4px);border-color:var(--ember);
  box-shadow:0 20px 42px -30px var(--lava)}
.pf-person-card>a{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit}
.pf-person-card__face{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--void3)}
.pf-person-card__img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s var(--ease)}
.pf-person-card:hover .pf-person-card__img{transform:scale(1.045)}
.pf-person-card__ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;
  font-size:38px;font-weight:800;color:var(--faint)}
.pf-person-card__t{padding:12px 13px 0;font-size:14.5px;font-weight:700;color:var(--cream);line-height:1.4}
.pf-person-card__r{padding:4px 13px 13px;font-size:11.5px;color:var(--dim);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ==========================================================================
   2. 活动资讯
   ========================================================================== */
.pf-event__hero{position:relative;overflow:hidden;
  padding:calc(var(--head-h) + 64px) 0 56px;
  border-bottom:1px solid var(--line-s);min-height:clamp(420px,58vh,620px);
  display:flex;align-items:flex-end}
.pf-event__cover{position:absolute;inset:0;overflow:hidden}
.pf-event__cover img{width:100%;height:100%;object-fit:cover;display:block;
  filter:saturate(.86) contrast(1.02) brightness(.72)}
/* 站内活动的封面图普遍**自带印刷文字**（大会名 + 期次 + 公众号水印），
   直接当背景会和叠加标题打架。压暗 + 底部加重渐变，让标题压得住；
   同时给图本身降亮度，烘焙字就退到背景层。 */
.pf-event__scrim{position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(18,10,8,.90) 0%,rgba(18,10,8,.74) 38%,rgba(18,10,8,.95) 100%),
    radial-gradient(120% 80% at 20% 20%,rgba(18,10,8,.55),transparent 60%)}
.pf-event__wrap{position:relative;z-index:2}

.pf-event__kind{display:inline-block;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;color:var(--ember);margin:0 0 14px}
/* 活动标题普遍很长，实测 489 篇：p50=34 字、p90=49、p99=63、最长 71
   （「2026 CXOU AI未来大会云端分论坛二：AI浪潮下的个人、团队、企业的进化之路…将于8月27日晚举办！」）。
   字号 42→36px 与 .single-hero h1 同一档；
   行宽 24em(≈864px)→1080px —— 压头图上的标题，容器本身有 1656px 可用，
   白白限到 864px 会把本该两行的标题逼成三行。1080/36 ≈ 每行 30 字，
   p90 的 49 字两行收住。
   overflow-wrap 用 break-word（不是 anywhere）：anywhere 让每个词都可断，
   行会被贪心提前塞满、英文被劈两截；break-word 只在整词塞不下时才断。
   word-break 用 normal：keep-all 会禁止汉字间断行，本类标题里常只有
   一个标点可断，长标题会横向溢出（人物页已实测踩到）。 */
.pf-event__wrap h1{font-size:clamp(24px,2.8vw,36px);font-weight:800;letter-spacing:-.015em;
  line-height:1.34;margin:0 0 14px;max-width:min(1080px,100%);text-shadow:0 3px 20px rgba(18,10,8,.7);
  text-wrap:balance;word-break:normal;overflow-wrap:break-word}
.pf-event__meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin:0 0 18px;
  font-size:12px;color:var(--dim)}
.pf-event__meta a{color:var(--ember);text-decoration:none}
.pf-event__meta a:hover{text-decoration:underline;text-underline-offset:3px}

/* 活动信息卡：读者点进活动文章第一眼要找的东西 */
.pf-event__facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));
  gap:1px;background:rgba(255,225,168,.18);border:1px solid rgba(255,225,168,.18);
  margin:0 0 26px;max-width:640px}
.pf-event__facts>div{background:rgba(18,10,8,.66);padding:15px 18px;backdrop-filter:blur(2px)}
.pf-event__facts dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);margin-bottom:7px}
.pf-event__facts dd{margin:0;font-size:16px;color:var(--cream);line-height:1.5;font-weight:600}

.pf-event__acts{display:flex;flex-wrap:wrap;gap:12px}

/* 正文末尾的报名落点：头图「报名参加」按钮锚到这里 */
.pf-event__signup{margin:40px 0 0;padding:clamp(26px,3.2vw,40px);
  border:1px solid var(--line);background:var(--void2);
  border-left:2px solid var(--ember)}
.pf-event__signup-t{font-size:clamp(18px,2.2vw,24px);font-weight:700;color:var(--cream);
  margin:0 0 10px}
.pf-event__signup-d{color:var(--dim);line-height:1.95;margin:0 0 22px;font-size:15px;max-width:640px}
.pf-event__signup-acts{display:flex;flex-wrap:wrap;gap:12px}

/* ==========================================================================
   3. 获奖名单
   ========================================================================== */
.pf-award__hero{position:relative;overflow:hidden;
  padding:calc(var(--head-h) + 56px) 0 50px;border-bottom:1px solid var(--line-s)}
.pf-award__glow{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 110% at 18% 0%,rgba(240,185,80,.14),transparent 62%),
             radial-gradient(50% 90% at 86% 26%,rgba(226,84,44,.12),transparent 60%)}
.pf-award__hero .wrap{position:relative;z-index:2}
.pf-award__hero .crumbs{color:var(--faint);margin-bottom:28px}

.pf-award__ribbon{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 18px}
.pf-award__seal{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;
  color:var(--void);background:linear-gradient(135deg,var(--gold),var(--ember));
  padding:4px 12px;border-radius:3px}
.pf-award__name{font-size:15px;font-weight:700;color:var(--cream);text-decoration:none}
.pf-award__name:hover{text-decoration:underline;text-underline-offset:3px}
.pf-award__count{font-size:12.5px;color:var(--faint)}

/* 与 .single-hero h1 / .pf-person__who h1 同一档 36px。
   标题长度按 default 版式的实测分布估（p90=44 字、最长 72 字），
   1000px 行宽下 36px 每行约 27 字 → p90 两行、最长三行。
   原 48px + anywhere：每行 20 字，最长的要四行。 */
.pf-award__hero h1{font-size:clamp(24px,2.8vw,36px);font-weight:800;letter-spacing:-.02em;
  line-height:1.3;margin:0 0 16px;max-width:min(1000px,100%);
  text-wrap:balance;word-break:normal;overflow-wrap:break-word}
.pf-award__meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin:0;font-size:12.5px;color:var(--faint)}
.pf-award__meta a{color:var(--ember);text-decoration:none}
.pf-award__meta a:hover{text-decoration:underline;text-underline-offset:3px}

/* 获奖名单：密度优先，一行一个人，不要长摘要 */
.pf-winners{list-style:none;counter-reset:pfw;margin:0;padding:0;
  display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr))}
.pf-winner{position:relative;counter-increment:pfw}
.pf-winner>a{display:flex;align-items:center;gap:12px;height:100%;
  padding:10px 14px;background:var(--void2);border:1px solid var(--line);
  text-decoration:none;color:inherit;transition:border-color .3s,background .3s}
.pf-winner>a:hover{border-color:var(--ember);background:var(--void3)}
.pf-winner>a::before{content:counter(pfw,decimal-leading-zero);
  font-size:11px;font-weight:700;color:var(--faint);font-variant-numeric:tabular-nums;
  min-width:1.6em}
.pf-winner__face{width:40px;height:40px;flex:0 0 40px;border-radius:50%;overflow:hidden;
  background:var(--void3);display:block}
.pf-winner__img{width:100%;height:100%;object-fit:cover;display:block}
.pf-winner__ph{background:linear-gradient(180deg,var(--void3),var(--void))}
.pf-winner__t{flex:1 1 auto;min-width:0;font-size:14px;color:var(--cream);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pf-winner__d{flex:0 0 auto;font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}

/* ==========================================================================
   响应式
   ========================================================================== */
@media(max-width:900px){
  .pf-person__id{grid-template-columns:clamp(180px,38vw,260px) minmax(0,1fr);gap:22px}
  .pf-event__hero{min-height:clamp(360px,52vh,480px)}
}
@media(max-width:640px){
  .pf-person__hero,.pf-award__hero{padding:calc(var(--head-h) + 40px) 0 40px}
  .pf-person__id{grid-template-columns:1fr;gap:20px}
  .pf-person__face{width:min(62%,270px)}
  .pf-person__who h1{font-size:clamp(21px,6.6vw,30px)}
  .pf-people{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .pf-person-card__r{display:none}

  .pf-event__hero{padding:calc(var(--head-h) + 46px) 0 42px;min-height:0}
  .pf-event__wrap h1{font-size:clamp(21px,6.6vw,30px)}
  .pf-event__facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pf-event__acts .btn{flex:1 1 100%}

  .pf-award__who h1,.pf-award__hero h1{font-size:clamp(21px,6.4vw,28px)}
  .pf-winners{grid-template-columns:1fr}
  .pf-winner__d{display:none}
}
