/* tpl-companyplus.css - richer company profiles (companyplus.js, 15 Oct 2026). Builds on tpl-charfin.css (cf-*) and the CEC3 tokens. */
body.ux.cec .cp-card { scroll-margin-top: 1rem; }
body.ux.cec .cp-lead { margin: 0 0 .7rem; font-size: .95rem; color: var(--ux-ink-2); }
body.ux.cec .cp-sub { display: block; margin-top: .15rem; font-size: .78rem; font-weight: 400; color: var(--ux-muted); }
body.ux.cec .cp-code { display: inline-block; padding: 0 .35rem; border-radius: 5px; background: var(--c-pale); font-variant-numeric: tabular-nums; font-size: .82rem; font-weight: 700; }
body.ux.cec .cp-list { list-style: none; margin: 0; padding: 0; }
body.ux.cec .cp-list li { margin: 0 0 .3rem; }
body.ux.cec .cp-facts dd { overflow-wrap: anywhere; }
body.ux.cec .cp-empty-h { margin: 0 0 .3rem; font-weight: 800; font-size: 1rem; }
body.ux.cec .cp-colist { list-style: none; margin: 0 0 .6rem; padding: 0; columns: 2; column-gap: 1.4rem; }
body.ux.cec .cp-colist li { break-inside: avoid; padding: .28rem 0; border-bottom: 1px solid var(--c-line); font-size: .9rem; }
body.ux.cec .cp-colist .cp-sub { display: inline; margin-left: .4rem; }
body.ux.cec .cp-notes { margin: .8rem 0 .4rem; padding-left: 1.1rem; font-size: .82rem; color: var(--ux-muted); }
body.ux.cec .cp-notes li { margin: .2rem 0; }
body.ux.cec .cp-ceased td { color: var(--ux-muted); }
body.ux.cec .cp-ptable td, body.ux.cec .cp-otable td { vertical-align: top; }
body.ux.cec .cp-more summary { cursor: pointer; font-size: .85rem; font-weight: 700; color: var(--c-accent-ink); }
body.ux.cec .cp-more ul { margin-top: .35rem; }

/* year-by-year table: years down the side, newest first */
body.ux.cec .cp-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: .8rem; border: 1px solid var(--c-line); border-radius: 12px; }
body.ux.cec .cp-scrollhint { display: none; margin: .6rem 0 0; font-size: .78rem; color: var(--ux-muted); }
body.ux.cec .cp-table { border-collapse: collapse; width: 100%; min-width: 760px; font-size: .86rem; font-variant-numeric: tabular-nums; }
body.ux.cec .cp-table th, body.ux.cec .cp-table td { padding: .55rem .7rem; text-align: right; border-bottom: 1px solid var(--c-line); white-space: nowrap; }
body.ux.cec .cp-table thead th { font-size: .74rem; letter-spacing: .02em; color: var(--ux-muted); background: var(--c-pale); white-space: normal; vertical-align: bottom; }
body.ux.cec .cp-table th:first-child, body.ux.cec .cp-table td:nth-child(2) { text-align: left; }
body.ux.cec .cp-table tbody th { font-weight: 700; background: #fff; position: sticky; left: 0; z-index: 1; box-shadow: 1px 0 0 var(--c-line); }
body.ux.cec .cp-table .cf-na { color: var(--ux-muted); font-style: italic; }
body.ux.cec .cp-table .cf-rsub { display: block; font-weight: 400; font-size: .74rem; color: var(--ux-muted); }

/* key dates chips reuse cf-st */
body.ux.cec .cp-facts .cf-st { margin-left: .4rem; vertical-align: middle; }

/* group structure */
body.ux.cec .cp-strip { display: grid; grid-template-columns: repeat(4, 1fr) 2fr; gap: .6rem; margin: 0 0 .9rem; }
body.ux.cec .cp-stat { background: var(--c-pale); border-radius: 12px; padding: .65rem .8rem; min-width: 0; }
body.ux.cec .cp-stat b { display: block; font-size: 1.35rem; line-height: 1.15; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
body.ux.cec .cp-stat-wide b { font-size: 1rem; }
body.ux.cec .cp-stat span { font-size: .76rem; color: var(--ux-muted); }
body.ux.cec .cp-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin: 0 0 .7rem; position: relative; }
body.ux.cec .cp-search { position: relative; flex: 1 1 240px; max-width: 360px; }
body.ux.cec .cp-search input { width: 100%; min-height: 40px; padding: .45rem .8rem; border: 1px solid var(--c-line-strong); border-radius: 999px; font: inherit; font-size: .9rem; background: #fff; }
body.ux.cec .cp-found { position: absolute; z-index: 5; left: 0; right: 0; top: 44px; margin: 0; padding: .3rem; list-style: none; background: #fff; border: 1px solid var(--c-line-strong); border-radius: 12px; box-shadow: var(--c-sh-md); max-height: 260px; overflow: auto; }
body.ux.cec .cp-found li { padding: .1rem; font-size: .88rem; }
body.ux.cec .cp-hit, body.ux.cec .cp-btn { font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; }
body.ux.cec .cp-hit { display: block; width: 100%; text-align: left; border: 0; background: none; padding: .45rem .6rem; border-radius: 8px; }
body.ux.cec .cp-hit:hover { background: var(--c-pale); }
body.ux.cec .cp-btn { min-height: 38px; padding: .4rem .9rem; border: 1px solid var(--c-line-strong); border-radius: 999px; background: #fff; }
body.ux.cec .cp-btn:hover { border-color: var(--c-accent); color: var(--c-accent-ink); }
body.ux.cec .cp-chk { font-size: .84rem; display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; }
body.ux.cec .cp-legend { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: 0 0 .8rem; padding: 0; font-size: .76rem; color: var(--ux-muted); }
body.ux.cec .cp-legend li { display: inline-flex; align-items: center; gap: .35rem; }
body.ux.cec .cp-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; border: 2px solid #121314; }
body.ux.cec .cp-dot.a { background: #121314; } body.ux.cec .cp-dot.d { border-color: #8a8c90; background: #fff; border-style: dashed; } body.ux.cec .cp-dot.o { border-color: #eda100; background: #fdf3d6; } body.ux.cec .cp-dot.x { border-color: #4a3aa7; background: #ece9fb; }
body.ux.cec .cp-line { width: 22px; height: 0; border-top: 2px solid #121314; display: inline-block; } body.ux.cec .cp-line.c { border-top: 2px dashed #8a8c90; }
body.ux.cec .cp-ring { width: 12px; height: 12px; border-radius: 4px; box-shadow: 0 0 0 2px #c8102e; display: inline-block; }
body.ux.cec .cp-scroll { overflow: auto; padding: .4rem .2rem 1rem; border: 1px solid var(--c-line); border-radius: 12px; background: #fcfcfb; max-height: 78vh; }
body.ux.cec .cp-scroll:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
body.ux.cec .cp-root, body.ux.cec .cp-ch { list-style: none; margin: 0; padding: 0; }
body.ux.cec .cp-root { display: flex; flex-direction: column; align-items: center; gap: 1rem; min-width: min-content; }
body.ux.cec .cp-n { display: flex; flex-direction: column; align-items: center; position: relative; min-width: 0; }
body.ux.cec .cp-ch { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.1rem .8rem; padding-top: 1.2rem; margin-top: .2rem; position: relative; max-width: 1400px; }
body.ux.cec .cp-ch::before { content: ""; position: absolute; top: 0; left: 50%; height: .6rem; border-left: 2px solid #b9b9b3; }
body.ux.cec .cp-ch > .cp-n::before { content: ""; position: absolute; top: -.6rem; height: .6rem; border-left: 2px solid #b9b9b3; left: 50%; }
body.ux.cec .cp-ch > .cp-n::after { content: ""; position: absolute; top: -.6rem; left: 0; right: 0; border-top: 2px solid #b9b9b3; }
body.ux.cec .cp-ch > .cp-n:first-child::after { left: 50%; } body.ux.cec .cp-ch > .cp-n:last-child::after { right: 50%; } body.ux.cec .cp-ch > .cp-n:only-child::after { display: none; }
body.ux.cec .cp-box { position: relative; width: 210px; background: #fff; border: 2px solid #121314; border-radius: 12px; padding: .5rem .6rem .55rem; box-shadow: var(--c-sh-sm); text-align: left; }
body.ux.cec .cp-box.cp-d { border-color: #8a8c90; border-style: dashed; background: #f5f5f3; }
body.ux.cec .cp-box.cp-o { border-color: #eda100; background: #fffaf0; }
body.ux.cec .cp-box.cp-x { border-color: #4a3aa7; background: #f6f5fd; }
body.ux.cec .cp-box.cp-gone { opacity: .72; border-style: dashed; }
body.ux.cec .cp-box.cp-me { box-shadow: 0 0 0 4px rgba(200,16,46,.25), var(--c-sh-md); }
body.ux.cec .cp-box.cp-ovon { outline: 3px solid #c8102e; outline-offset: 2px; }
body.ux.cec .cp-box.cp-flash { animation: cpflash 1.2s 2; }
@keyframes cpflash { 50% { background: #fbe9eb; } }
body.ux.cec .cp-edge { font-size: .68rem; font-weight: 700; letter-spacing: .01em; color: var(--ux-muted); margin: -.1rem 0 .25rem; line-height: 1.25; }
body.ux.cec .cp-name { display: block; font-size: .86rem; font-weight: 800; line-height: 1.25; overflow-wrap: anywhere; color: var(--ux-ink); }
body.ux.cec .cp-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .4rem; margin-top: .3rem; font-size: .7rem; color: var(--ux-muted); }
body.ux.cec .cp-j { padding: 0 .35rem; border-radius: 4px; background: var(--c-pale); font-weight: 800; color: var(--ux-ink-2); }
body.ux.cec .cp-j-X { background: #ece9fb; color: #4a3aa7; } body.ux.cec .cp-j-SC { background: #e5eefb; } body.ux.cec .cp-j-NI { background: #e3f5ec; }
body.ux.cec .cp-here { padding: 0 .35rem; border-radius: 4px; background: #c8102e; color: #fff; font-weight: 800; }
body.ux.cec .cp-ovl { color: #9e0c24; font-weight: 800; }
body.ux.cec .cp-size { height: 5px; margin-top: .4rem; background: var(--c-pale); border-radius: 3px; overflow: hidden; }
body.ux.cec .cp-size i { display: block; height: 100%; background: #121314; border-radius: 3px; } body.ux.cec .cp-size.neg i { background: #c8102e; }
body.ux.cec .cp-tg { margin-top: .45rem; width: 100%; min-height: 34px; display: flex; align-items: center; gap: .35rem; padding: .2rem .45rem; border: 1px solid var(--c-line-strong); border-radius: 8px; background: var(--c-pale); font: inherit; font-size: .74rem; font-weight: 800; cursor: pointer; }
body.ux.cec .cp-tg:hover { border-color: var(--c-accent); }
body.ux.cec .cp-more { align-self: center; }
body.ux.cec .cp-above { margin-bottom: .2rem; }
body.ux.cec .cp-loading { padding: 1rem; }

/* news */
body.ux.cec .cp-news { list-style: none; margin: 0 0 .4rem; padding: 0; }
body.ux.cec .cp-news li { display: grid; grid-template-columns: 8.5rem 1fr; gap: .2rem .8rem; padding: .5rem 0; border-bottom: 1px solid var(--c-line); font-size: .9rem; }
body.ux.cec .cp-nd { font-weight: 700; font-size: .82rem; color: var(--ux-ink-2); font-variant-numeric: tabular-nums; }

@media (max-width: 760px) {
  body.ux.cec .cp-scrollhint { display: block; }
  body.ux.cec .cp-table tbody th { min-width: 7.5rem; }
  body.ux.cec .cp-colist { columns: 1; }
  body.ux.cec .cp-strip { grid-template-columns: repeat(2, 1fr); } body.ux.cec .cp-stat-wide { grid-column: 1 / -1; }
  body.ux.cec .cp-news li { grid-template-columns: 1fr; }
  /* indented tree on a phone */
  body.ux.cec .cp-scroll { overflow-x: hidden; padding: .6rem; }
  body.ux.cec .cp-root { align-items: stretch; min-width: 0; }
  body.ux.cec .cp-n { align-items: stretch; }
  body.ux.cec .cp-box { width: auto; }
  body.ux.cec .cp-ch { display: block; padding: 0 0 0 .9rem; margin: .35rem 0 0 .6rem; border-left: 2px solid #b9b9b3; max-width: none; }
  body.ux.cec .cp-ch::before, body.ux.cec .cp-ch > .cp-n::before, body.ux.cec .cp-ch > .cp-n::after { display: none; }
  body.ux.cec .cp-ch > .cp-n { margin: 0 0 .6rem; }
  body.ux.cec .cp-more { display: block; }
}

/* same organisation banner (single-academy trusts, charitable companies) */
body.ux.cec .cp-banner { margin: .9rem 0 .2rem; padding: .9rem 1.1rem; background: #fff; border: 1px solid var(--c-line-strong); border-left: 5px solid var(--c-accent); border-radius: 12px; box-shadow: var(--c-sh-sm); max-width: 62rem; }
body.ux.cec .cp-banner-t { margin: 0 0 .65rem; font-size: .98rem; line-height: 1.5; color: var(--ux-ink); }
body.ux.cec .cp-banner-row { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; }
body.ux.cec .cp-banner-facts { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem .5rem; margin: 0; padding: 0; }
body.ux.cec .cp-banner-facts li { padding: .25rem .65rem; border-radius: 999px; background: var(--c-pale); font-size: .84rem; font-weight: 700; }
body.ux.cec .cp-banner-facts span { font-weight: 400; color: var(--ux-muted); margin-right: .2rem; }
body.ux.cec .cp-btn-go { display: inline-flex; align-items: center; min-height: 40px; }
body.ux.cec .cp-sat-line { margin: 0 0 .6rem; }
body.ux.cec .cp-sat-fin { margin: 0 0 .7rem; font-size: .95rem; }
body.ux.cec .cp-sat-fin b { font-size: 1.15rem; }
/* school names in a trust's school table read as links */
body.ux.cec .sh-trustcard .sh-n > a { color: var(--c-accent-ink); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; font-weight: 800; }
body.ux.cec .sh-trustcard .sh-n > a:hover { color: var(--c-accent); }
body.ux.cec .cp-nsm { margin: 0 0 .8rem; font-size: .9rem; }

/* long headline figures (15 Oct 2026 fix): shrink to fit the tile */
body.ux.cec .kpi-num.cp-long { font-size: clamp(1.3rem, 1rem + 0.7vw, 1.75rem); white-space: nowrap; }
@media (max-width: 560px) { body.ux.cec .kpi-num.cp-long { font-size: min(1.5rem, 5.4vw); } }

/* show-all on the "Same sector and place" / "Same registered address" cards (18 Oct 2026) */
body.ux.cec .cp-showall { display: flex; justify-content: space-between; align-items: baseline; gap: .8rem; flex-wrap: wrap; margin: .2rem 0 0; font-size: .8rem; }
body.ux.cec .cp-showall-n { color: var(--c-muted, #5b5e63); }
body.ux.cec .cp-showall-a { margin-left: auto; display: inline-flex; gap: 1rem; }
body.ux.cec .cp-showall-a a { color: var(--c-accent-ink, #c8102e); font-weight: 700; font-size: .86rem; text-decoration: none; }
body.ux.cec .cp-showall-a a:hover { text-decoration: underline; }
body.ux.cec .cp-showall-a a[hidden] { display: none; }
body.ux.cec .cp-card .cec-card-h .muted + .cec-info { margin-left: .2rem; }
body.ux.cec .cp-card .cec-card-h:has(.cec-info) { flex-direction: row; align-items: center; flex-wrap: nowrap; }
body.ux.cec .cp-card .cec-card-h:has(.cec-info) > .muted { margin-left: auto; white-space: nowrap; }
body.ux.cec .cp-card .cec-card-h:has(.cec-info) > h2 { margin-right: 0; }

/* 18 Oct 2026: MAT schools list on the school Academy trust card */
.cp-mat-list{list-style:none;margin:.5rem 0 .6rem;padding:0}
.cp-mat-list li{padding:.45rem 0;border-top:1px dashed var(--line,#ddd)}
.cp-mat-list li:first-child{border-top:0}
.cp-mat-list .cec-sub{display:block;font-size:.82rem;color:var(--muted,#666);margin-top:.1rem}
