/* Theme 2 Kobe content components (requests 1105-T2f pilot, 1105-T2g rollout), on top of kobe-shell.css. Library components:
   every inner page is composed from these by rule (build-ocio.py kd_layer) or data (Organization); no page has its own CSS.
   Contents: section bands + split; lead; key facts; link rows (C06 rows); checklist; chips; entity rows + cluster labels;
   step rows (C14); "On this page" (C17); notice box (C08); org chart (new, design A only: B / C pending the user).
   Former note:
   A content-aware page is built from layers instead of one rich-text column:
   section heading (star + Chinese eyebrow + Jost 300 40px) > lead statement 24/500 > body 16 muted > key facts (Jost 300 numbers)
   > cluster labels (13px bold green + rule) > rows (abbreviation column, name 22 bold, "Led by" 14 muted, text 16, chips,
   checklist). Rows and hairlines only: no boxed cards. The other pages wait for the user's approval of the pilot. */
.kd-layered :where(h2,h3,p,ul,dl,dt,dd){margin:0;padding:0;letter-spacing:inherit}
.kd-layered :where(ul){list-style:none}
.kd-layered :where(h3){font:inherit}
.kd-head--md .kd-head-title{font-size:40px}
.kd-layered .kd-sec{padding:var(--kd-sec) 0} /* every band pads itself: 104px desktop, 72px phone */
/* straight apostrophes in the data: Noto Sans TC sets U+2019 full-width */
.kd-layered .kd-band-last{padding-bottom:0} /* the last band of a layered page: the pager follows 72px below */
.kd-body--pager{padding-top:0}
.kd-body--pager .kd-pager{margin-top:72px}

/* ---------- overview: lead + key facts (7 / 5) ---------- */
.kd-band-white{background:#fff}
.kd-split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;align-items:start;margin-top:40px}
.kd-split-text{max-width:none}
.kd-split-text p{font-size:16px;line-height:1.9;color:var(--kd-muted)}
.kd-split-text p+p{margin-top:12px}
.kd-split-text .kd-lead-lg{margin-bottom:24px;font-size:20px;font-weight:500;line-height:1.6;letter-spacing:.04em;color:var(--kd-ink)}
.kd-facts{border-top:1px solid var(--kd-rule)}
.kd-fact{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:0 24px;padding:20px 0;border-bottom:1px solid var(--kd-rule)}
.kd-fact dd{grid-column:1;grid-row:1;font-family:Jost,sans-serif;font-size:64px;font-weight:300;line-height:1.05;letter-spacing:.01em;color:var(--kd-green);white-space:nowrap}
.kd-fact dt{grid-column:2;grid-row:1;font-size:14px;font-weight:700;line-height:1.6;letter-spacing:.04em;color:var(--kd-ink)}
.kd-fact dt small{display:block;margin-top:2px;font-size:13px;font-weight:400;color:var(--kd-muted)}

/* ---------- organisation chart band (the chart itself: pattern-org-chart.css) ---------- */
.kd-band-pale{background:var(--kd-pale)}

/* ---------- our teams: three clusters of rows ---------- */
.kd-band-white,.kd-band-last{background:#fff}
.kd-cluster{margin-top:64px}
.kd-head+.kd-cluster{margin-top:48px}
.kd-cluster-label{display:flex;align-items:center;gap:16px;padding-bottom:4px;font-size:13px;font-weight:700;line-height:1.6;letter-spacing:.1em;color:var(--kd-green)}
.kd-cluster-label::after{content:"";flex:1;border-top:1px solid var(--kd-green)}
.kd-team{display:grid;grid-template-columns:200px minmax(0,1fr);gap:0 40px;align-items:first baseline;padding:40px 0;border-bottom:1px solid var(--kd-rule);scroll-margin-top:calc(var(--kd-head-h) + 24px)}
.kd-team-abbr{font-family:Jost,sans-serif;font-size:44px;font-weight:300;line-height:1;letter-spacing:.04em;color:var(--kd-green)}
.kd-team h3{font-size:20px;font-weight:700;line-height:1.5;letter-spacing:.04em;color:var(--kd-ink)}
.kd-team-led{margin-top:4px!important;font-size:14px;line-height:1.6;color:var(--kd-muted)}
.kd-team-led+p,.kd-team-main>p:not(.kd-team-led):first-of-type{margin-top:16px}
.kd-team-body p:not(.kd-team-led,.kd-tags-label){max-width:none;font-size:16px;line-height:1.9;color:var(--kd-ink)}
.kd-team-body p+p:not(.kd-tags-label){margin-top:8px}
.kd-tags-label{margin-top:20px;font-size:12px;font-weight:700;line-height:1.6;letter-spacing:.08em;color:var(--kd-muted)}
.kd-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.kd-team-photo{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--t2-r-sig)}
.kd-team--photo .kd-team-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0 40px;align-items:start}
.kd-team--photo .kd-team-intro{grid-column:1 / -1;margin-bottom:16px}
/* User Services: the featured row, photo + intro, 7-service checklist and one link */
.kd-team--feature{padding:48px 0}
.kd-team-feature{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:center;margin-top:24px} /* photo | intro + link, centred: neither column ends far above the other */
.kd-team-feature-copy>p:first-child{margin-top:0!important;font-size:20px!important;font-weight:500;line-height:1.7!important}
.kd-team-feature-copy .kd-more{margin-top:20px}
.kd-checklist{display:block;columns:3;column-gap:40px;margin:40px 0 0!important;padding-top:28px!important;border-top:1px solid var(--kd-rule)} /* the 7 services across the whole content column */
@media (max-width:1199px){.kd-checklist{columns:2}}
.kd-checklist li{break-inside:avoid;margin-bottom:16px} /* columns fill top to bottom and balance, so no column ends far above another */
.kd-checklist li{display:flex;gap:10px;font-size:16px;line-height:1.7;color:var(--kd-ink)}
.kd-checklist .kd-ic{width:18px;height:18px;margin-top:4px;color:var(--kd-green)}
.kd-team:target .kd-team-abbr{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px} /* the row the chart jumped to */
.kd-team-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:4px}
.kd-team-meta .kd-team-led{margin-top:0!important}
.kd-back-wrap{display:flex;margin-top:12px!important}
.kd-narrow-only{display:none}
.kd-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--kd-green);text-decoration:none}
.kd-back .kd-ic{width:18px;height:18px} /* the org-chart icon, not an up arrow (1105-T2i) */
.kd-back:hover{text-decoration:underline;text-underline-offset:4px}
.kd-team-body{min-width:0}

@media (max-width:1023px){
  .kd-split{grid-template-columns:minmax(0,1fr);gap:40px}
  .kd-team{grid-template-columns:120px minmax(0,1fr);gap:0 28px}
  .kd-team--photo .kd-team-body{grid-template-columns:minmax(0,1fr) 240px;gap:28px}
  .kd-team-feature{grid-template-columns:minmax(0,1fr);gap:28px}
  .kd-team-feature .kd-team-photo{max-width:560px}
}
@media (max-width:760px){
  .kd-head--md .kd-head-title{font-size:28px}
  .kd-split{margin-top:28px}
  .kd-split-text .kd-lead-lg{font-size:20px}
  .kd-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 16px;border-top:0}
  .kd-fact{grid-template-columns:minmax(0,1fr);align-content:start;gap:6px;padding:16px 0 0;border-bottom:0;border-top:1px solid var(--kd-rule)}
  .kd-fact dd{grid-column:1;grid-row:1;min-width:0;font-size:40px}
  .kd-fact dt{grid-column:1;grid-row:2;font-size:13px}
  .kd-fact dt small{display:none} /* the three sites are named in the User Services text */
  .kd-team{grid-template-columns:minmax(0,1fr);gap:8px;padding:32px 0}
  .kd-team-abbr{font-size:40px}
  .kd-team--photo .kd-team-body{grid-template-columns:minmax(0,1fr);gap:20px}
  .kd-checklist{columns:1;margin-top:28px!important;padding-top:20px!important}
}
.kd-team--photo .kd-back-wrap{grid-column:1 / -1}
@media (max-width:760px){.kd-team-meta .kd-back{display:none}.kd-back-wrap.kd-narrow-only{display:flex}.kd-back-wrap .kd-back{pointer-events:auto}}
/* Theme 2 pattern: organisation chart in HTML (request 1105-T2f, Organization pilot). Kobe shell pages only.
   Real text in nested lists (CIO > Associate CIO > teams), so it is its own text version. Brand green connectors (1px),
   one-corner nodes. Each team node links to its row further down the page. Pending the user's approval of the pilot
   before it goes into the library catalogue.
   Desktop: a top-down tree, 7 team nodes in one row under a horizontal connector.
   Phone (<= 760px): a vertical tree, the teams indented under a left connector; no sideways scroll. */
.kd-orgchart{--oc-line:var(--kd-green);--oc-gap:12px;margin-top:48px}
.kd-orgchart :where(ul){margin:0;padding:0;list-style:none}
.kd-oc-top>li,.kd-oc-mid>li{display:flex;flex-direction:column;align-items:center}
.kd-oc-node{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:300px;padding:16px 32px 18px;border-radius:var(--t2-r-sig-s);text-align:center}
.kd-oc-node strong{font-size:20px;font-weight:700;line-height:1.5;letter-spacing:.04em}
.kd-oc-node span{font-size:13px;line-height:1.6;letter-spacing:.04em}
.kd-oc-node--cio{background:var(--kd-green);color:#fff}
.kd-oc-node--acio{background:#fff;border:1px solid var(--kd-green);color:var(--kd-ink)}
.kd-oc-node--acio span{color:var(--kd-muted)}
/* connectors: CIO > Associate CIO, Associate CIO > the team row, the row's horizontal line, a stub into each team */
.kd-oc-mid{position:relative;width:100%;padding-top:32px}
.kd-oc-mid::before{content:"";position:absolute;left:50%;top:0;height:32px;border-left:1px solid var(--oc-line)}
.kd-oc-teams{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--oc-gap);width:100%;padding-top:56px}
.kd-oc-teams::before{content:"";position:absolute;left:50%;top:0;height:28px;border-left:1px solid var(--oc-line)}
.kd-oc-teams>li{position:relative;display:flex}
.kd-oc-teams>li::before{content:"";position:absolute;left:50%;top:-28px;height:28px;border-left:1px solid var(--oc-line)}
.kd-oc-teams>li::after{content:"";position:absolute;top:-28px;left:calc(var(--oc-gap) / -2);right:calc(var(--oc-gap) / -2);border-top:1px solid var(--oc-line)}
.kd-oc-teams>li:first-child::after{left:50%}
.kd-oc-teams>li:last-child::after{right:50%}
.kd-oc-team{display:flex;flex-direction:column;gap:6px;width:100%;padding:18px 16px 20px;background:#fff;border-radius:var(--t2-r-sig-s);color:var(--kd-ink);text-decoration:none;transition:background-color .2s,color .2s}
.kd-oc-abbr{font-family:Jost,sans-serif;font-size:20px;font-weight:500;line-height:1.2;letter-spacing:.08em;color:var(--kd-green)}
.kd-oc-team strong{font-size:16px;font-weight:700;line-height:1.45;letter-spacing:.02em}
.kd-oc-head{font-size:13px;line-height:1.6;color:var(--kd-muted)}
.kd-oc-team:hover{background:var(--kd-green);color:#fff}
.kd-oc-team:hover :is(.kd-oc-abbr,.kd-oc-head){color:#fff}
.kd-oc-team:focus-visible{outline:3px solid var(--kd-green);outline-offset:3px}
/* 761-1199: the teams in two centred rows (4 + 3) on an 8-column grid, each node 2 columns wide. The trunk runs down the
   middle (it falls in the gap between nodes 2 and 3) from the first row's bar to the second row's bar; equal row heights
   (grid-auto-rows:1fr) let it end exactly on the second bar. */
@media (min-width:761px) and (max-width:1199px){
  .kd-oc-teams{--oc-rgap:56px;grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:1fr;row-gap:var(--oc-rgap)}
  .kd-oc-teams>li{grid-column:span 2}
  .kd-oc-teams>li:nth-child(5){grid-column:2 / 4}
  .kd-oc-teams>li:nth-child(4)::after{right:50%}
  .kd-oc-teams>li:nth-child(5)::after{left:50%}
  .kd-oc-teams::after{content:"";position:absolute;left:50%;top:28px;bottom:calc((100% - 56px - var(--oc-rgap)) / 2 + 28px);border-left:1px solid var(--oc-line)}
}
@media (max-width:760px){
  .kd-oc-top>li,.kd-oc-mid>li{align-items:stretch}
  .kd-oc-node{min-width:0;align-items:flex-start;padding:14px 20px 16px;text-align:left}
  .kd-oc-mid{padding:24px 0 0 24px}
  .kd-oc-mid::before{left:24px;height:24px}
  .kd-oc-mid>li>.kd-oc-node{margin-left:-24px}
  .kd-oc-teams{grid-template-columns:minmax(0,1fr);gap:10px;padding:24px 0 0 40px;margin-left:-24px;width:calc(100% + 24px)}
  .kd-oc-teams::before{left:24px;height:24px}
  .kd-oc-teams>li::before{left:-16px;top:50%;width:16px;height:0;border-left:0;border-top:1px solid var(--oc-line)}
  .kd-oc-teams>li::after{left:-16px;right:auto;top:-10px;bottom:0;border-top:0;border-left:1px solid var(--oc-line)}
  .kd-oc-teams>li:first-child::after{left:-16px;top:-24px}
  .kd-oc-teams>li:last-child::after{right:auto;bottom:50%}
  .kd-oc-team{display:grid;grid-template-columns:48px minmax(0,1fr);gap:2px 12px;padding:14px 16px}
  .kd-oc-abbr{grid-row:1 / 3;align-self:center;font-size:20px}
  .kd-oc-team strong{font-size:16px}
}
@media (prefers-reduced-motion:reduce){.kd-oc-team{transition:none}}

/* ================= 1105-T2g: components composed by rule on every inner page ================= */
/* 1105-T2i: text uses the full content column (1200, or the main column beside the contents): no 760px cap (user directive) */
:root[data-shell=kobe] .kd-article--layered :is(.kd-csec,.kd-withtoc-main,.kd-box)>p,:root[data-shell=kobe] .kd-article--layered>p{max-width:none}
/* lead: the page's first paragraph */
:root[data-shell=kobe] .kd-article--layered .rich p.kd-lead,:root[data-shell=kobe] .kd-article--layered p.kd-lead{max-width:none;margin:0 0 48px;font-size:20px;font-weight:500;line-height:1.75;letter-spacing:.04em;color:var(--kd-ink)}
/* content section: generic eyebrow (what the section is) over the Kobe section heading */
.kd-csec{margin-top:80px}
.kd-csec:first-child{margin-top:0}
.kd-sec-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:13px;font-weight:700;line-height:1.6;letter-spacing:.1em;color:var(--kd-green)}
:root[data-shell=kobe] .kd-article .kd-csec>h2{margin-top:0!important}
/* checklist (auto): a list in the content, with check marks */
:root[data-shell=kobe] .kd-article ul.kd-checklist--auto{margin:16px 0 24px;padding:0;list-style:none}
:root[data-shell=kobe] .kd-article ul.kd-checklist--auto>li{position:relative;max-width:none;margin:0 0 10px;padding-left:30px}
:root[data-shell=kobe] .kd-article ul.kd-checklist--auto>li::before{content:"";position:absolute;left:0;top:.45em;width:18px;height:18px;background:var(--kd-green);-webkit-mask:url("/ocio/img/icons/check.svg") center/contain no-repeat;mask:url("/ocio/img/icons/check.svg") center/contain no-repeat}
:root[data-shell=kobe] .kd-article ul.kd-checklist--auto ul{margin:8px 0 0;padding-left:0;list-style:none} /* nested items: small green dot (1105-T2h fixes) */
:root[data-shell=kobe] .kd-article ul.kd-checklist--auto ul>li{position:relative;margin:0 0 6px;padding-left:20px}
:root[data-shell=kobe] .kd-article ul.kd-checklist--auto ul>li::before{content:"";position:absolute;left:3px;top:calc(var(--kd-li-lh,1lh) / 2 - 3px);width:6px;height:6px;border-radius:var(--t2-r-round);background:var(--kd-green)}
/* link rows: a list of links only (C06 rows, styles shared with .quicklinks) */
:root[data-shell=kobe] .kd-article .kd-linkrows{margin:16px 0 32px}
/* step rows (C14): big number, the step, its screenshot on the right from 1024; click a screenshot to enlarge */
.kd-steps{margin:16px 0 32px;padding:0;list-style:none;border-top:1px solid var(--kd-rule)}
.kd-step{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);gap:0 32px;align-items:first baseline;padding:28px 0;border-bottom:1px solid var(--kd-rule)}
.kd-step:not(:has(.kd-step-shots)){grid-template-columns:64px minmax(0,1fr)}
.kd-step-n{font-family:Jost,sans-serif;font-size:40px;font-weight:300;line-height:1;color:var(--kd-green)}
.kd-step-text{min-width:0}
.kd-step-text>:first-child{margin-top:0}
.kd-step-text>:last-child{margin-bottom:0}
.kd-step-shots{display:grid;gap:12px;min-width:0;align-self:start}
/* step rows, compact option (1105-T2j): short one-line steps that link to their page, small Jost numbers, no screenshots */
.kd-steps--compact .kd-step,.kd-steps--compact .kd-step:not(:has(.kd-step-shots)){grid-template-columns:28px minmax(0,1fr);gap:0 12px;padding:14px 0}
.kd-steps--compact .kd-step-n{font-size:20px}
.kd-steps--compact .kd-step-text{font-size:16px;line-height:1.6}
.kd-steps--compact .kd-step-text a{color:var(--kd-green);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.kd-steps--compact .kd-step-text a:hover{text-decoration-thickness:2px}
.kd-step-shot{display:block;justify-self:start;max-width:100%;border-radius:var(--t2-r-m);line-height:0}
:root[data-shell=kobe] .kd-article .kd-step-shot img{max-width:100%;height:auto;border:1px solid var(--kd-rule);border-radius:var(--t2-r-m);transition:box-shadow .2s}
.kd-step-shot:hover img{box-shadow:var(--t2-sh-card)}
.kd-step-shot:focus-visible{outline:3px solid var(--kd-green);outline-offset:3px}
/* "On this page" (C17): sticky left column from 1200, a list at the top below that */
.kd-withtoc{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;align-items:start}
.kd-toc{position:sticky;top:calc(var(--kd-head-h) + 24px);padding:20px 0;border-top:2px solid var(--kd-green)}
.kd-toc-title{margin:0 0 8px!important;font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--kd-green)}
.kd-toc ol{margin:0;padding:0;list-style:none}
.kd-toc li{max-width:none!important;margin:0!important}
.kd-toc a{display:grid;grid-template-columns:2ch minmax(0,1fr);column-gap:8px;align-items:first baseline;padding:12px 0;font-size:16px;line-height:1.5;color:var(--kd-ink);text-decoration:none;border-bottom:1px solid var(--kd-rule)} /* number in its own column: wrapped lines hang under the text (1105-T2i) */
.kd-toc--wide a{grid-template-columns:3ch minmax(0,1fr)} /* 10 or more items */
.kd-toc-n{font-variant-numeric:tabular-nums;color:var(--kd-green)}
.kd-toc a:hover{color:var(--kd-green)}
.kd-toc a:hover>span:last-child{text-decoration:underline;text-underline-offset:4px}
.kd-withtoc-main{min-width:0}
/* notice box (C08): "Note", "Please note" sections */
.kd-box{margin:40px 0;padding:24px 28px;border-radius:var(--t2-r-m);background:var(--kd-pale)}
:root[data-shell=kobe] .kd-article .kd-box .kd-box-title{margin:0 0 8px!important;padding:0!important;background:none!important;font-size:16px!important;font-weight:700;color:var(--kd-green)!important}
:root[data-shell=kobe] .kd-article .kd-box .kd-box-title::before{content:none!important}
.kd-box>:last-child{margin-bottom:0}
@media (max-width:1199px){
  .kd-withtoc{grid-template-columns:minmax(0,1fr);gap:24px}
  .kd-toc{position:static}
  .kd-toc ol{columns:2;column-gap:32px}
}
@media (max-width:1023px){
  .kd-step,.kd-step:not(:has(.kd-step-shots)){grid-template-columns:48px minmax(0,1fr);gap:12px 20px}
  .kd-step-shots{grid-column:2}
  .kd-step-n{font-size:28px}
}
@media (max-width:600px){
  .kd-toc ol{columns:1}
  .kd-csec{margin-top:64px}
  :root[data-shell=kobe] .kd-article--layered p.kd-lead{font-size:20px}
  .kd-box{padding:20px}
}
@media (prefers-reduced-motion:reduce){:root[data-shell=kobe] .kd-article .kd-step-shot img{transition:none}}

/* ---------- 1105-T2h: the image a page opens with (rule: lead_img in build-ocio.py) ---------- */
/* lead (C01) + product mark: a logo or small picture of the thing, at the left of the lead; above it on phones */
:root[data-shell=kobe] .kd-article .kd-leadmark{display:flex;align-items:flex-start;gap:32px;margin:0 0 48px}
:root[data-shell=kobe] .kd-article .kd-leadmark>img{flex:none;width:auto;height:auto;max-width:200px;max-height:72px;margin-top:4px;border-radius:0}
:root[data-shell=kobe] .kd-article--layered .kd-leadmark p.kd-lead{flex:1;margin:0}
:root[data-shell=kobe] .kd-article .kd-leadmark>:not(img){flex:1;min-width:0;margin-top:0}
/* lead + photo (C04 media, --flip: photo on the right, signature corner); --natural: a small photo keeps its own size */
:root[data-shell=kobe] .kd-article .kd-split-lead{margin:0 0 72px}
:root[data-shell=kobe] .kd-article .kd-split-lead>div>p:not(.kd-lead){margin:0 0 16px;color:var(--kd-ink)} /* intro paragraphs keep the body style */
:root[data-shell=kobe] .kd-article .kd-split-lead>div>:last-child{margin-bottom:0}
:root[data-shell=kobe] .kd-article .split-content--natural>img{width:auto;max-width:100%;aspect-ratio:auto;object-fit:fill;justify-self:start}
@media (max-width:900px){:root[data-shell=kobe] .kd-article .kd-split-lead{grid-template-columns:minmax(0,1fr)}} /* a long URL in the lead must not widen the column */
@media (min-width:901px){:root[data-shell=kobe] .kd-article .split-content--natural.split-content--flip{grid-template-columns:minmax(0,1fr) auto}} /* the photo takes its own width, the text the rest */
/* key facts (C13), phone design: numbers are wider than counts */
.kd-facts--phone .kd-fact{grid-template-columns:240px minmax(0,1fr)}
.kd-facts--phone .kd-fact dd{font-size:40px;line-height:1.2;font-variant-numeric:tabular-nums}
.kd-facts--phone .kd-fact dd a{color:inherit;text-decoration:none}
.kd-facts--phone .kd-fact dd a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
:root[data-shell=kobe] .kd-article .contact-panel-main>h2.contact-panel-title:first-child{margin-top:0}
.kd-facts dd{margin:0}
/* entity rows (C05 row design) as a list of places: rows start under the section heading's rule */
.kd-locations .kd-team:first-of-type{padding-top:8px}
:root[data-shell=kobe] .kd-article .kd-locations .kd-team h3{margin:0}
.kd-locations .kd-team-led+.kd-team-led{margin-top:0!important}
.kd-locations .kd-team-body p:not(.kd-team-led){margin-top:12px}
.kd-locations .kd-team-body p strong{margin-right:8px}
@media (max-width:760px){
  :root[data-shell=kobe] .kd-article .kd-leadmark{flex-direction:column;gap:16px}
  :root[data-shell=kobe] .kd-article .kd-leadmark>img{max-width:160px;max-height:48px;margin-top:0}
  :root[data-shell=kobe] .kd-article .kd-split-lead{margin-bottom:56px}
  .kd-facts--phone{display:block;border-top:1px solid var(--kd-rule)}
  .kd-facts--phone .kd-fact{grid-template-columns:150px minmax(0,1fr);align-items:center;gap:0 16px;padding:14px 0;border-top:0;border-bottom:1px solid var(--kd-rule)}
  .kd-facts--phone .kd-fact dd{grid-column:1;grid-row:1;font-size:28px}
  .kd-facts--phone .kd-fact dt{grid-column:2;grid-row:1}
  .kd-facts--phone .kd-fact dt small{display:block}
}

/* ---------- 1105-T2i: every label sits on the first line of its content ---------- */
/* table cells: the first child of any kind starts at the cell top, the last ends at its bottom; cells share the first baseline */
:root[data-shell=kobe] .kd-article .table-wrap :is(td,th){line-height:1.6} /* one cell spacing on every page (it was .rich-only) */
:root[data-shell=kobe] .kd-article .table-wrap :is(td,th) :is(p,ul,ol,h3,h4,h5){margin:.25em 0}
:root[data-shell=kobe] .kd-article .table-wrap :is(td,th) li{margin:.25em 0;line-height:1.6}
:root[data-shell=kobe] .kd-article .table-wrap :is(td,th)>:first-child{margin-top:0!important}
:root[data-shell=kobe] .kd-article .table-wrap :is(td,th)>:last-child{margin-bottom:0!important}
:root[data-shell=kobe] .kd-article .table-wrap :is(td,th) :is(ul,ol)>li:first-child{margin-top:0}
:root[data-shell=kobe] .kd-article .table-wrap tr:not(.kd-thead)>:is(td,th){vertical-align:baseline}
:root[data-shell=kobe] .kd-article .table-wrap tr:not(.kd-thead):has(>:is(td,th)>img:first-child,>:is(td,th)>:first-child>img:first-child)>:is(td,th){vertical-align:top} /* a row whose cell opens with a logo: every cell starts at the cell top (a baseline would sit on the logo's bottom edge) */
.kd-cell-gap{display:block;height:.25em} /* a blank line (<br><br>) inside a cell, e.g. before "e.g.": a quarter line, not a full one */
/* lists: an item's first block starts on the marker's line */
:root[data-shell=kobe] .kd-article :is(ol,ul)>li>:first-child{margin-top:0}

/* ---------- 1105-T2k: one type scale (12 / 13 / 14 / 16 / 20 / 28, display 40 / 44 / 56 / 64; weights 300 / 400 / 500 / 700) ---------- */
.kd :is(strong,b){font-weight:700} /* "bolder" inside a bold cell or heading computed 900 */
.kd .link-meta{font-size:13px}
.kd :is(sup,sub){font-size:12px}
:root[data-shell=kobe] .kd-article .table-wrap :is(td,th) :is(h2,h3,h4,h5){margin:.25em 0;padding:0;font-size:16px!important;font-weight:700;line-height:1.6;letter-spacing:0;color:inherit} /* a heading inside a cell is a cell label, not a section */
:root[data-shell=kobe] .kd-article .table-wrap :is(td,th) :is(h2,h3,h4,h5)::before,:root[data-shell=kobe] .kd-article .table-wrap :is(td,th) :is(h2,h3,h4,h5)::after{content:none}
.kd .contact-card h2,.kd .shell-menu-head{font-weight:700} /* shared library labels at 650: the scale has 700 */
/* content images (1105-T2k): at most their natural width (the build sets width / height from the file), never stretched */
:root[data-shell=kobe] .kd-article img{max-width:100%;height:auto}
:root[data-shell=kobe] .kd-article :is(.kd-csec,.kd-withtoc-main,.kd-box,.kd-step-text)>p:has(>img:only-child),:root[data-shell=kobe] .kd-article--layered>p:has(>img:only-child){text-align:center} /* a picture narrower than the column sits centred */

/* ---------- 1105-T2k: chip (C13), one component, 3 variants: solid (category), pale (tag), on-photo ---------- */
.kd-chip{display:inline-flex;align-items:center;flex:none;height:24px;padding:0 10px;border-radius:var(--t2-r-s);background:var(--kd-green);color:#fff;font-size:12px;font-weight:700;line-height:1;letter-spacing:.04em;white-space:nowrap;text-shadow:none}
.kd-chip--pale{background:var(--kd-pale);color:var(--kd-deep)}
.kd-chip--photo{background:#fff;color:var(--kd-green)}

/* ---------- 1105-T2k: news item (C15), the one component for every dated item ---------- */
.kd-newslist{margin:16px 0 32px}
.kd-news{margin:0!important;padding:0!important;list-style:none;border-top:1px solid var(--kd-rule)}
.kd .kd-news>li.kd-news-item{max-width:none;margin:0;padding:0;border-bottom:1px solid var(--kd-rule)}
.kd .kd-news>li.kd-news-item::before{content:none}
/* One grid per row. The body's parts are grid items (display:contents), so the link icon and the file-type label sit on the
   title's FIRST line (centre = first-line centre), not on the centre of the whole row (1105-T2k-fix2, first-line rule). */
.kd-news-link{--kd-news-line:calc(16px * 1.7);display:grid;grid-template-columns:[main] minmax(0,1fr) auto;grid-template-rows:repeat(5,auto) 1fr;align-items:start;gap:0 24px;padding:20px 0;color:inherit;text-decoration:none}
.kd-news-link:has(>.kd-news-thumb){grid-template-columns:240px [main] minmax(0,1fr) auto}
.kd-news-link:has(>.link-meta){grid-template-columns:[main] minmax(0,1fr) auto auto} /* the file-type label (e.g. PDF) sits beside the icon */
.kd-news-link:has(>.kd-news-thumb):has(>.link-meta){grid-template-columns:240px [main] minmax(0,1fr) auto auto}
.kd-news-body{display:contents}
.kd-news-body>*{grid-column:main}
.kd-news-body>.kd-news-meta{grid-row:1}
.kd-news-body>.kd-news-title{grid-row:2}
.kd-news-link>.kd-go{grid-column:-2;grid-row:2;margin-top:calc((var(--kd-news-line) - 26px) / 2)}
.kd-news-link>.link-meta{grid-column:-3;grid-row:2;line-height:var(--kd-news-line)}
.kd-news-link>.kd-news-thumb{grid-column:1;grid-row:1 / -1}
.kd-news-link>.link-meta{margin:0;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--kd-muted)}
.kd-news-thumb{display:block;width:240px;max-width:100%;height:auto;border-radius:var(--t2-r-s)!important}
.kd-news-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-bottom:6px}
.kd-news-date{font-family:Jost,sans-serif;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--kd-muted)}
.kd-news-title{display:block;font-size:16px;font-weight:500;line-height:1.7;color:var(--kd-ink)}
.kd-news-source{display:block;margin-top:2px;font-size:13px;line-height:1.6;color:var(--kd-muted)}
.kd-news-excerpt{display:block;margin-top:6px;font-size:14px;line-height:1.7;color:var(--kd-muted)}
.kd-news-text>:first-child{margin-top:0}
.kd-news-text>:last-child{margin-bottom:0}
a.kd-news-link:hover .kd-news-title{color:var(--kd-green);text-decoration:underline;text-underline-offset:4px}
a.kd-news-link .kd-go{color:var(--kd-green)}
a.kd-news-link:is(:hover,:focus-visible) .kd-go{background:var(--kd-green);border-color:var(--kd-green);color:#fff}
@media (max-width:760px){
  .kd-news-link,.kd-news-link:has(>.kd-news-thumb){grid-template-columns:[main] minmax(0,1fr) auto;gap:0 16px;padding:16px 0}
  .kd-news-link:has(>.link-meta),.kd-news-link:has(>.kd-news-thumb):has(>.link-meta){grid-template-columns:[main] minmax(0,1fr) auto auto}
  /* the photo goes full width on top; every other part moves down one row */
  .kd-news-link:has(>.kd-news-thumb){grid-template-rows:repeat(6,auto)}
  .kd-news-link>.kd-news-thumb{grid-column:1 / -1;grid-row:1;width:100%;margin-bottom:12px}
  .kd-news-link:has(>.kd-news-thumb) .kd-news-meta{grid-row:2}
  .kd-news-link:has(>.kd-news-thumb) .kd-news-title,.kd-news-link:has(>.kd-news-thumb)>:is(.kd-go,.link-meta){grid-row:3}
}
/* inner section heading outside an article (Organization's bands, 1105-T2k): the same h2, no top margin in its band */
.kd-layered h2.kd-ch{margin-top:0!important}
.kd-layered .kd-sec-eyebrow{margin-bottom:6px}
/* ---------- 1105-T2k: FAQ questions (C09): 16px / 500 like a link-row title, 44px+ targets, the + on the first line ---------- */
:root[data-shell=kobe] .kd-article .faq{columns:auto;border-top:1px solid var(--kd-rule)}
:root[data-shell=kobe] .kd-article .faq>details{margin:0;padding:0!important;border:0;border-bottom:1px solid var(--kd-rule);border-radius:0;background:none}
:root[data-shell=kobe] .kd-article .faq>details>summary{display:grid;grid-template-columns:minmax(0,1fr) 20px;align-items:first baseline;gap:16px;min-height:44px;padding:14px 0!important;font-size:16px;font-weight:500;line-height:1.6;color:var(--kd-ink)}
:root[data-shell=kobe] .kd-article .faq>details>summary::after{font-size:20px;line-height:1.6;text-align:center;color:var(--kd-green)}
:root[data-shell=kobe] .kd-article .faq>details>summary:hover{color:var(--kd-green)}
:root[data-shell=kobe] .kd-article .faq>details>div{padding:0 0 20px!important}
/* ---------- 1105-T2k: tables: codes never break, check marks are the check icon, matrix columns centred ---------- */
:root[data-shell=kobe] .kd-article .table-wrap .kd-code{white-space:nowrap}
.kd-check{display:inline-block;width:18px;height:18px;vertical-align:-3px;background:var(--kd-green);-webkit-mask:url("/ocio/img/icons/check.svg") center/contain no-repeat;mask:url("/ocio/img/icons/check.svg") center/contain no-repeat}
:root[data-shell=kobe] .kd-article .kd-table--matrix :is(td,th):not(:first-child){text-align:center}
:root[data-shell=kobe] .kd-article .kd-table--matrix :is(td,th):not(:first-child){padding-left:8px;padding-right:8px} /* codes and check marks: narrow columns, so desktop never scrolls */
/* ---------- 1105-T2k: sitemap: every column starts at the same top (a column break dropped the first label's margin only) ---------- */
:root[data-shell=kobe] .kd-article .shell-sitemap>section{break-inside:avoid;margin:0;padding:0 0 40px}
:root[data-shell=kobe] .kd-article .shell-sitemap>section>h2{margin-top:0!important}
.kd-nobr{white-space:nowrap} /* a link's last word + its icon (build: glue_link_icons) */
:root[data-shell=kobe] .kd-article .kd-table--matrix tr>:first-child{min-width:10em} /* row names on 2-3 lines; the table fits the 1200 column from a 1200px window */
/* contents on top at every width (1105-T2k fix): a page whose table is too wide for the column beside the contents */
.kd-withtoc--top{grid-template-columns:minmax(0,1fr);gap:24px}
.kd-withtoc--top .kd-toc{position:static}
@media (min-width:601px){.kd-withtoc--top .kd-toc ol{columns:2;column-gap:32px}}

