/* 貳 專業團隊（單 3；award_build/p_team.py、js/award/p-team.js）：首屏寬幅圖版、名冊（桌機）／<details>（手機與無 JS）；成員不出編號（業主 11/08）。
   規則同 base.css 檔頭：色只用 token、字重只用已載入樣式（Serif 600／其餘 400）、字級 --fs-*、間距 --s1～--s7；例外就地註明。
   收起非選中者只以 html.aw-ok（site.js）＋.p-team__box[data-ready]（p-team.js 初始化完成）為條件（總綱 §2.4）。
   設計主張（單 3u）：一條脊線貫穿紙段（虛線常駐，實線隨捲動描上＝履歷被主張），選中的名冊項拉一條引線接上脊線；
   每位的標頭是落下的方塊＋三層方板的分解圖，中間層是這位的圖案、一條引線接回方塊（圖案依順序取、不含文字，單 3t）；小標直排掛在脊線上；內文共用一條起點軸、依形狀分型（短文同本文字級、長清單雙欄、短清單單欄、長敘述單欄）。 */

/* ── 首屏圖版（寬幅 SVG、slice 裁切；矮版開場 base.css .aw-hero--low）：每位一條直線＋虛線基線＋裝飾方塊列 ─────────────── */
.p-team__plate svg * { vector-effect: non-scaling-stroke; }
.p-team__fbase { stroke: var(--fg-2); stroke-dasharray: 4 4; }   /* 虛線基線（左右出血） */
.p-team__fln, .p-team__fchop { stroke: var(--accent); }          /* 直線、頂端節點、方塊框與方塊圖案 */

/* ── 紙段與脊線：--pad＝紙段上下內距（脊線用它頂到紙段兩端）；--sp＝脊線到內容左緣的距離。
   桌機 --pad 剛好多過面板往上延伸的固定列高（下面 .p-team__m 的負 margin）：換人時面板頂還在視窗內就不會捲動 ──────────── */
.p-team { --pad: calc(var(--aw-bar-h) + var(--s2)); --sp: calc(var(--aw-margin) / 2); padding-block: var(--pad); }
.p-team__defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.p-team__list { position: relative; grid-column: 2 / 12; }
.p-team__list::before, .p-team__list::after {        /* 例外：1px 線 */
  content: ""; position: absolute; left: calc(-1 * var(--sp)); top: calc(-1 * var(--pad)); bottom: calc(-1 * var(--pad));
  width: 0; border-left: 1px dashed var(--line-claim); pointer-events: none;
}
.p-team__list::after { border-left: 1px solid var(--accent); transform: scaleY(0); transform-origin: 50% 0; visibility: hidden; }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    /* 實線隨捲動描上；不支援或減動態＝只有虛線，版面完整 */
    .p-team__list::after { visibility: visible; animation: p-team-spine linear both; animation-timeline: view(block); animation-range: cover 0% cover 100%; }
    /* 只留實線（業主 11/09 14:59:49）：虛線同一條時間軸遮掉上段——只露 [實線端＋2px, 底]，實線描到哪、那段虛線就看不到 */
    .p-team__list::before {
      -webkit-mask: linear-gradient(#000, #000) 50% 100% / 300% calc((1 - var(--p-team-t)) * 100% - min(2px, var(--p-team-t) * 100%)) no-repeat;
      mask: linear-gradient(#000, #000) 50% 100% / 300% calc((1 - var(--p-team-t)) * 100% - min(2px, var(--p-team-t) * 100%)) no-repeat;
      animation: p-team-spine-dash linear both; animation-timeline: view(block); animation-range: cover 0% cover 100%;
    }
    /* 小標引線進場時描出：只寫 forwards，進場前維持完整定格（整頁截圖、列印都看得到） */
    .p-team__sec::before { animation: p-team-tick linear forwards; animation-timeline: view(block); animation-range: entry 0% entry 60%; }
  }
}
@keyframes p-team-spine { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@property --p-team-t { syntax: '<number>'; inherits: false; initial-value: 0; }
@keyframes p-team-spine-dash { from { --p-team-t: 0; } to { --p-team-t: 1; } }
@keyframes p-team-tick { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ── 共用：裝飾方塊、姓名、副標 ─────────────────────────────────── */
.p-team__chop {
  /* 例外：方塊 44px 固定；未選中＝線框（--accent 線），選中或展開＝--cur 底＋紙色線 */
  display: block; flex: 0 0 auto; width: 44px; height: 44px;
  color: var(--accent); border: 1px solid var(--accent); background: var(--bg);
}
/* 方塊內的圖案：幾何線 1px；圖案只定義一次（p_team.py defs_html），fill／stroke 由引用處往內繼承 */
.p-team__g { --mk-hv: crispEdges; display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1; overflow: hidden; }
/* 只有橫直線的路徑（p_team.py _mark_defs）：--mk-hv 只在方塊裡有值；線稿中間層沒有，投影成斜線時維持反鋸齒 */
.p-team__hv { shape-rendering: var(--mk-hv); }
.p-team__name { font: 600 var(--fs-h3)/1.4 var(--f-serif); letter-spacing: .08em; }
.p-team__en { white-space: nowrap; letter-spacing: .02em; }               /* 英文名不在括號中斷行 */
.p-team__en [lang="en"] { font-family: var(--f-latin); font-weight: 400; }
.p-team__sub { display: block; font: 400 var(--fs-small)/1.8 var(--f-sans); letter-spacing: .04em; color: var(--fg-2); }
.p-team__sl { display: block; word-break: keep-all; }
.p-team__st { display: inline-block; }   /* 職稱一段（p_team.py _sub_line）：段與段之間才斷行；單段比欄寬還長才在段內的空白處換行 */

/* 分解線稿：顏色跟 --accent（currentColor）；視窗外的裝飾不接滑鼠 */
.p-team__art { display: block; width: 100%; height: auto; color: var(--accent); pointer-events: none; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1; }

/* ── 列表模式（無 JS、任一支腳本失敗或被擋、窄於 1024px）：每位一個原生 <details> ─────────────────── */
.p-team__roster, .p-team__phead { display: none; }
.p-team__m { position: relative; scroll-margin-top: 0; }   /* 捲到這位時的落點由 html 的 scroll-padding-top 決定（固定列下方），這裡再加會多留一條固定列高 */
.p-team__m::before {                    /* 每位在脊線上一個節點（例外：圖示幾何 9px 圓），對齊方塊中線 */
  content: ""; position: absolute; left: calc(-1 * var(--sp) - 4px); top: calc(var(--s2) + 17px); width: 9px; height: 9px;
  border: 1px solid var(--accent); border-radius: 50%; background: var(--bg);
}
.p-team__m:has(> .p-team__d[open])::before { background: var(--accent); }
.p-team__sum { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: var(--s2); row-gap: 0; align-items: start; }   /* row-gap：蓋掉 .aw-details__sum 的 gap，姓名與副標才貼得住 */
.p-team__sum > .p-team__chop { grid-column: 1; grid-row: 1 / span 2; }
.p-team__sum > .p-team__name { grid-column: 2; grid-row: 1; font-size: var(--fs-h2); line-height: 1.25; }
.p-team__sum .p-team__en { font-size: max(var(--fs-label), .58em); }
.p-team__sum > .p-team__sub { grid-column: 2; grid-row: 2; margin-top: var(--s1); }
.p-team__sum > .aw-details__mark { grid-column: 3; grid-row: 1 / span 2; margin-top: 10px; }   /* 例外：(44−24)/2，記號與方塊同高置中 */
.p-team__d[open] > .p-team__sum .p-team__chop { background: var(--cur); border-color: var(--cur); color: var(--paper); }
.p-team__body { padding-top: var(--s4); }
@media (prefers-reduced-motion: no-preference) {
  .p-team__d[open] > .p-team__sum .p-team__chop { animation: p-team-stamp var(--t-state) var(--ease-stamp) both; }
}
@keyframes p-team-stamp { from { transform: scale(1.3); opacity: .4; } to { transform: none; opacity: 1; } }

/* ── 內容：直排小標掛在脊線上，內文依形狀分型 ────────────────────────────── */
.p-team__secs { display: grid; row-gap: var(--s5); }
.p-team__sec { position: relative; display: grid; grid-template-columns: var(--s5) minmax(0, 1fr); column-gap: var(--s3); align-items: start; }
.p-team__sec::before {                  /* 引線：脊線→小標（例外：1px 線） */
  content: ""; position: absolute; left: calc(-1 * var(--sp)); top: .85em; width: calc(var(--sp) - var(--s1)); height: 1px;
  background: var(--accent); transform-origin: 0 50%;
}
.p-team__lab {
  grid-column: 1; writing-mode: vertical-rl; text-orientation: mixed; justify-self: start;
  font: 600 var(--fs-h3)/1.2 var(--f-serif); letter-spacing: .24em; color: var(--accent);
}
html[lang="en"] .p-team__lab { writing-mode: horizontal-tb; letter-spacing: .12em; }
html[lang="en"] .p-team__sec { display: block; }
html[lang="en"] .p-team__sec > .p-team__lab { margin-bottom: var(--s2); }
.p-team__sec > .p-team__ct { grid-column: 2; min-width: 0; }
/* 長網址等無空白的長串：放不下時可在任一字元折行，也不再用整串寬度撐開欄寬（手機與英文頁的 .p-team__sec 是 block，
   min-width:0 管不到；單 3mg A13：陳韋廷「相關報導可參見：http://…」把 390 寬撐到 404）。中文行內斷行不變 */
.p-team__ct { overflow-wrap: anywhere; }
.p-team__p + .p-team__p, .p-team__p + .p-team__ul, .p-team__ul + .p-team__p, .p-team__ul + .p-team__ul { margin-top: var(--s3); }
.p-team__ul { list-style: none; }
.p-team__li { position: relative; padding-left: var(--s3); }
.p-team__li + .p-team__li { margin-top: var(--s1); }
.p-team__li::before { content: ""; position: absolute; left: 0; top: .98em; width: var(--s1); height: 1px; background: var(--accent); }
.p-team__li--mk { display: grid; grid-template-columns: 2.25em minmax(0, 1fr); column-gap: var(--s1); padding-left: 0; }
.p-team__li--mk::before { content: none; }
/* 清單行與短文：一般中文換行＋兩端對齊（base.css；業主 11/08 20:26:24 選定，詞可拆到兩行），不再分段不拆 */
/* 職稱色：印色調進本文色，留一點暖調、對比與本文同級（量值見單 3u 退件交件）；字重不變 */
.p-team__role { color: color-mix(in srgb, var(--accent) 30%, var(--fg)); }
.p-team__nb { white-space: nowrap; }   /* 破折號和前一個字黏住、不落行首（p_team.py _lead_line、_entry） */
/* 不撐兩端的一項（含網址或沒有中文字，p_team.py _lead_line、_entry）：照改前靠左＋平衡換行 */
.p-team__nj { display: block; text-align: start; text-wrap-style: balance; }
/* 原 balance 已拿掉（清單行、短文）：兩端對齊時 balance 會留短行再被撐出大空隙；改用 base.css 的 pretty */
/* 編號跟內文同字族（Sans 400）：原文有全形數字「３．」，拉丁字族沒有這些字、會退到未載入的 Serif 400 */
.p-team__mk { color: var(--accent); white-space: nowrap; }
/* 單行編號段與清單編號行對齊：懸掛寬＝.p-team__li--mk 的編號欄＋欄距；同段的附註行（無編號）也對齊內文，不出短線 */
.p-team__p--mk { --hang: calc(2.25em + var(--s1)); padding-left: var(--hang); text-indent: calc(-1 * var(--hang)); }
.p-team__p--mk > .p-team__mk { display: inline-block; width: var(--hang); text-indent: 0; }
.p-team__sec--long .p-team__li:not(.p-team__li--mk) { padding-left: calc(2.25em + var(--s1)); }
.p-team__sec--long .p-team__li:not(.p-team__li--mk)::before { content: none; }

/* 短文（專長、技術領域等短段）：字級、字型、字重、字距、顏色同其他欄位內文（繼承本文），行高同清單（列表模式 1.7、名冊模式見下 1.6）——不凸顯（業主 11/09 15:06:47）；
   維持一段文字、行寬同長敘述 40em */
.p-team__sec--lead > .p-team__ct { line-height: 1.7; max-width: 40em; }
/* 清單：本文字級、細線分行，起點與短文同一條軸；長清單才排雙欄（≥768px，見下） */
.p-team__sec--cols .p-team__ul, .p-team__sec--list .p-team__ul { line-height: 1.7; }
.p-team__sec--cols .p-team__li, .p-team__sec--list .p-team__li { padding: var(--s1) 0; margin: 0; border-top: 1px solid var(--line); break-inside: avoid; }
.p-team__sec--cols .p-team__li::before, .p-team__sec--list .p-team__li::before { content: none; }
.p-team__sec--long > .p-team__ct { max-width: 40em; }
/* 雙欄清單（p_team.py _two_col_html）：左右列同高、列線對齊；欄位放不下（內容寬不足 560px）＝維持單欄。長項在自己的全寬段裡 */
.p-team__sec--cols > .p-team__ct { container-type: inline-size; }
.p-team__sec--cols .p-team__ul + .p-team__ul { margin-top: 0; }
@container (min-width: 560px) {
  .p-team__ul--2 { display: grid; grid-auto-flow: column; grid-template-rows: repeat(var(--rows), auto); grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s4); }
}
/* 原「單欄窄寬單位改行內」規則已拿掉：單位不再包成行內區塊，各寬都跟著文字流（p_team.py _entry） */

/* 結語：脊線收尾的一條線，靠右一行 */
/* 結語線＝一個元素一筆畫完（::before，從脊線到右端）；結語本身的上邊框改透明、只佔原本 1px 位置（版面不變）。
   原做法＝結語上邊框＋左延伸段（1px 高底色塊）兩個元素接成一條：非整數像素比（如 1.5、1.75）下兩者落在不同裝置像素、吸附方式也不同
   （邊框寬吸附整數裝置像素、底色塊不會），左段看起來粗一截（業主 11/09 16:12:54 轉同事投影片第 4 頁，王思涵「認證與資格」下方；
   四位結構相同，只是各人結語落點的小數位不同）。線畫在上邊框的位置（bottom:100%＝邊框下緣）、同樣用 1px 邊框 */
.p-team__slogan { position: relative; margin-top: var(--s4); padding-top: var(--s2); border-top: 1px solid transparent; font: 600 var(--fs-body)/1.6 var(--f-serif); letter-spacing: .16em; color: var(--fg-2); text-align: right; }
.p-team__slogan::before { content: ""; position: absolute; left: calc(-1 * var(--sp)); right: 0; bottom: 100%; height: 0; border-top: 1px solid var(--accent); }

@media (min-width: 768px) {
  .p-team__sum > .p-team__sub { font-size: var(--fs-body); }
}

/* ── 名冊模式（≥1024px，且 site.js＋p-team.js 都初始化成功）：左欄 sticky 名冊、右欄選中者 ──────────────── */
@media (min-width: 1024px) {
  html.aw-ok .p-team__box[data-ready].is-roster { align-items: start; --gut: 24px; }   /* --gut＝.aw-grid 欄距（base.css），引線要跨過它接上脊線 */
  html.aw-ok .p-team__box[data-ready].is-roster > .p-team__roster {
    grid-column: 1 / 5; grid-row: 1; display: flex; flex-direction: column; gap: var(--s1);
    position: sticky; top: calc(var(--aw-bar-h) + var(--s3));
    /* 人多或視窗矮：名冊自己捲（焦點移到下方項目時捲得到）；內距 6px 留給描框與焦點框（例外：非版面間距）；
       右內距與負右距把捲動框延伸到脊線，選中項的引線才不被裁（p-team__r::after） */
    max-height: calc(100svh - var(--aw-bar-h) - 2 * var(--s3)); overflow: hidden auto;
    padding: 6px calc(var(--gut) + var(--s1)) 6px 6px; margin: 0 calc(-1 * var(--gut)) 0 -6px;
    scrollbar-width: thin;
  }
  html.aw-ok .p-team__box[data-ready].is-roster > .p-team__list { --sp: 0px; grid-column: 5 / 13; grid-row: 1; padding-left: var(--s4); }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__m:not(.is-sel) { display: none; }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__m::before { content: none; }
  /* 換人時線稿不被固定列切：面板框往上多一條固定列高（畫面位置不變）。p-team.js 只在面板頂已捲出視窗（top＜0）才捲回，
     所以面板框頂在 0 以上時，線稿至少在固定列下方；捲回時落點由 html 的 scroll-padding-top 決定，本身不再加 margin */
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__m {
    margin-top: calc(-1 * (var(--aw-bar-h) + var(--s1))); padding-top: calc(var(--aw-bar-h) + var(--s1)); scroll-margin-top: 0;
  }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__d { border: 0; }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__d > .p-team__sum { display: none; }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__body { padding: 0; }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__sec::before { left: calc(-1 * var(--s4)); width: calc(var(--s4) - var(--s1)); }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__slogan::before { left: calc(-1 * var(--s4)); }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__list::before,
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__list::after { left: 0; }
  /* 標頭要矮（第一屏看得到內文）：方塊與線稿橫排在右上，文字從上緣排起。--art＝線稿寬；例外：圖示幾何 */
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__phead {
    --art: clamp(96px, 9.2vw, 132px); position: relative;
    display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--s4); align-items: start;
    margin-bottom: var(--s4);
  }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__secs { row-gap: var(--s4); }
  /* 名冊模式第一屏要看得到第三段：清單列距比列表模式緊（例外：6px，介於 --s1 與 0 之間） */
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__sec--cols .p-team__ul,
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__sec--list .p-team__ul,
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__sec--lead > .p-team__ct { line-height: 1.6; }   /* 短文行高同清單（業主 11/09 15:06:47） */
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__sec--cols .p-team__li,
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__sec--list .p-team__li { padding-block: 6px; }
  /* 第一條引線：脊線橫過留白，接上線稿中心線（名冊→脊線→線稿→方塊連成一筆）；例外：1px 線 */
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__phead::before {
    content: ""; position: absolute; left: calc(-1 * var(--s4)); top: 0; right: calc(var(--art) / 2); height: 1px; background: var(--accent);
  }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__m:focus-visible { outline-offset: var(--s2); }
  /* 選中項的引線：從名冊框右緣拉到脊線 */
  .p-team__r::after {
    content: ""; position: absolute; left: 100%; top: 50%; width: calc(24px + var(--s1)); height: 1px;
    background: var(--accent); transform: scaleX(0); transform-origin: 0 50%; transition: transform var(--t-state) var(--ease-out);
  }
  .p-team__r[aria-selected="true"]::after { transform: scaleX(1); }
}
@media (min-width: 1280px) {
  html.aw-ok .p-team__box[data-ready].is-roster > .p-team__roster { grid-column: 1 / 4; }
  html.aw-ok .p-team__box[data-ready].is-roster > .p-team__list { grid-column: 4 / 13; }
}
@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
  /* 切換淡入：p-team.js 只在使用者切換時加 .is-fade、播完拿掉（載入時不播）；同一段時間內方塊落下（子元素動畫，長度不超過淡入） */
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__m.is-sel.is-fade { animation: p-team-in var(--t-state) var(--ease-out) both; }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__m.is-sel.is-fade .p-team__chop--l { animation: p-team-stamp var(--t-state) var(--ease-stamp) both; }
  html.aw-ok .p-team__box[data-ready].is-roster .p-team__m.is-sel.is-fade .p-team__art { animation: p-team-lift var(--t-state) var(--ease-out) both; }
}
@keyframes p-team-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes p-team-lift { from { transform: translateY(var(--s2)); } to { transform: none; } }

/* 名冊項（主張：停留＝虛線框描實線；選中＝描實常駐＋方塊壓印色＝目前所在；不出編號，業主 11/08 16:04:51） */
.p-team__r {
  display: grid; grid-template-columns: minmax(0, 1fr); align-items: center;
  width: 100%; min-height: 44px; padding: var(--s2); background: none; text-align: left; cursor: pointer;
}
.p-team__r > .aw-claim__body { grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: var(--s2); min-width: 0; }
.p-team__rn { min-width: 0; font: 600 var(--fs-body)/1.4 var(--f-serif); letter-spacing: .06em; }
.p-team__rn .p-team__en { display: block; font-size: var(--fs-small); letter-spacing: .02em; color: var(--fg-2); }
.p-team__r[aria-selected="true"] .aw-claim__frame rect { stroke-dashoffset: 0; }
.p-team__r[aria-selected="true"] .p-team__chop,
.p-team__m.is-sel .p-team__chop--l { background: var(--cur); border-color: var(--cur); color: var(--paper); }

/* 面板標頭（名冊模式才顯示）：左＝大姓名、副標；右＝方塊＋線稿（引線從線稿中間層接到方塊右緣，兩者垂直置中） */
.p-team__stamp { grid-column: 2; grid-row: 1; display: flex; align-items: center; }
.p-team__stamp > .p-team__art { flex: 0 0 auto; width: var(--art); }
.p-team__chop--l {
  /* 例外：大方塊固定 96px（內寬整數，線才不糊） */
  width: 96px; height: 96px;
}
.p-team__ptxt { grid-column: 1; grid-row: 1; min-width: 0; padding-top: var(--s1); }
.p-team__name--l {
  /* 例外：標頭姓名比 --fs-h1 大一階（尺度對比；中文 3 字上下、窄寬由 clamp 收） */
  margin-top: var(--s1); font-size: clamp(48px, 5.6vw, 84px); line-height: 1.15; letter-spacing: .04em;
  word-break: keep-all;              /* 中文姓名不拆字；放不下才在括號英文名前換行 */
}
.p-team__name--l .p-team__en { font-size: .46em; letter-spacing: .01em; color: var(--fg-2); }
.p-team__ptxt .p-team__sub { margin-top: var(--s2); font-size: var(--fs-body); color: var(--fg); }

/* ── 窄螢幕 ─────────────────────────────────────────────────────────── */
@media (max-width: 1023.98px) {
  .p-team__list { grid-column: 1 / -1; }
}
@media (max-width: 767.98px) {
  /* 手機：方塊、姓名、記號同一列（方塊與姓名上緣對齊），副標獨佔下一列全寬（職稱才放得下、只在「／」斷行） */
  .p-team { --pad: var(--s4); }
  .p-team__sum { grid-template-columns: auto minmax(0, 1fr) auto; column-gap: var(--s1); }
  .p-team__sum > .p-team__chop { grid-column: 1; grid-row: 1; margin-right: var(--s1); }
  .p-team__sum > .p-team__name { grid-column: 2; grid-row: 1; word-break: keep-all; font-size: var(--fs-h3); line-height: 1.4; }   /* 中文姓名不拆字；放不下才在括號英文名前換行 */
  .p-team__sum > .aw-details__mark { grid-column: 3; grid-row: 1; }
  .p-team__sum > .p-team__sub { grid-column: 1 / -1; grid-row: 2; }
  /* 小標橫排，引線穿過去成整條分隔線 */
  .p-team__secs { row-gap: var(--s4); }
  .p-team__sec { display: block; }
  .p-team__lab { writing-mode: horizontal-tb; letter-spacing: .16em; margin-bottom: var(--s2); }
}

/* ── 列印：全部成員、全部內容 ───────────────────────────────────────────── */
@media print {
  .p-team__roster, .p-team__phead { display: none !important; }
  .p-team__m { display: block !important; }
  .p-team__list { grid-column: 1 / -1 !important; }
  .p-team__list::before, .p-team__list::after, .p-team__m::before, .p-team__sec::before { display: none !important; }
  .p-team__d > .p-team__sum { display: grid !important; }
}
