/* International edition hubs and sub-pages (tpl/edition.js): Ireland, US, New Zealand, Canada, Australia. Builds on cec.css, tpl-public.css, tpl-intl.css */
body.ux.cec .ed-page { padding-bottom: 3rem; }
body.ux.cec .ed-body { display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
body.ux.cec .ed-body > * { min-width: 0; }
body.ux.cec .ed-kpis { margin: 0 0 1.25rem; }
body.ux.cec .ed-body .ed-kpis { margin: 0; }
body.ux.cec .ed-page .cec-col .cec-card { min-width: 0; }
body.ux.cec .ed-page .cec-ph-text { overflow-wrap: anywhere; }
body.ux.cec .ed-page .kpi-tile .kpi-num { overflow-wrap: anywhere; }
body.ux.cec .kpi-row.ed-kpis { grid-template-columns: repeat(auto-fit, minmax(min(100%, 158px), 1fr)); }

/* ---- hub hero ---- */
body.ux.cec .ed-hero { position: relative; overflow: hidden; color: #fff; background: radial-gradient(ellipse 120% 90% at 15% 0%, #2a2b2e 0%, var(--c-deep) 48%, var(--c-deep-2) 100%); margin-bottom: 1.6rem; }
html[data-cec="red"] body.ux.cec .ed-hero { background: radial-gradient(ellipse 120% 90% at 15% 0%, #a3142a 0%, var(--c-deep) 48%, var(--c-deep-2) 100%); }
body.ux.cec .ed-hero::before { content: ""; position: absolute; inset: 0; opacity: 0.07; background-image: radial-gradient(circle at 1px 1px, #fff 1px, transparent 0); background-size: 22px 22px; pointer-events: none; }
body.ux.cec .ed-hero-in { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 3rem; align-items: center; padding-top: 3.4rem; padding-bottom: 3.4rem; }
body.ux.cec .ed-hero .eyebrow { color: #fff; opacity: 0.85; }
body.ux.cec .ed-hero .eyebrow::before { background: var(--c-accent); }
body.ux.cec .ed-hero h1 { color: #fff; font-size: clamp(2.1rem, 1.5rem + 2vw, 3.1rem); line-height: 1.1; margin: 0.7rem 0 1rem; font-weight: 300; overflow-wrap: anywhere; }
body.ux.cec .ed-thesis { color: rgba(255,255,255,.86); font-size: 1.08rem; line-height: 1.55; margin: 0 0 1.5rem; max-width: 40rem; }
body.ux.cec .ed-thesis b { color: #fff; }
body.ux.cec .ed-herosearch form, body.ux.cec .ed-herosearch .rec-search { display: flex; gap: 0.5rem; margin: 0; max-width: 34rem; border: 0 !important; background: transparent !important; padding: 0 !important; box-shadow: none !important; }
body.ux.cec .ed-herosearch input { flex: 1; min-width: 0; height: 48px; padding: 0 1.1rem; font-size: 1rem; border-radius: 999px; border: 0; background: #fff; color: var(--ux-ink); box-sizing: border-box; }
body.ux.cec .ed-herosearch button { height: 48px; padding: 0 1.4rem; border-radius: 999px; border: 0; background: var(--c-accent); color: #fff; font-weight: 700; cursor: pointer; }
body.ux.cec .ed-hero-fig { border-left: 1px solid rgba(255,255,255,.18); padding-left: 2.2rem; min-width: 0; }
body.ux.cec .ed-fignum { font-weight: 300; letter-spacing: -0.02em; line-height: 1; font-size: clamp(2.6rem, 1.4rem + 3.6vw, 5rem); color: #fff; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
body.ux.cec .ed-figlab { margin-top: 0.9rem; font-size: 1rem; font-weight: 700; color: #fff; text-transform: none; }
body.ux.cec .ed-figmeth { margin-top: 0.3rem; font-size: 0.88rem; color: rgba(255,255,255,.7); }

/* ---- bands, entry grid, features ---- */
body.ux.cec .ed-band .cec-band-h { margin-bottom: 1rem; }
body.ux.cec .ed-entrygrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 0.9rem; }
body.ux.cec .ed-entry { align-items: flex-start; height: 100%; }
body.ux.cec .ed-entry .tx { min-width: 0; }
body.ux.cec .ed-entry .tx > span { display: block; }
body.ux.cec .ed-entry .tx > .ed-entry-k { font-size: 0.64rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent); margin: 0 0 0.3rem; }
body.ux.cec .ed-entry .go { padding-top: 1rem; }
body.ux.cec .ed-featgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 0.9rem; }
body.ux.cec .ed-feat { margin: 0; }
body.ux.cec .ed-feat .ic { width: 40px; height: 40px; border-radius: 12px; background: var(--c-accent-tint); color: var(--c-accent); display: grid; place-items: center; margin-bottom: 0.7rem; }
body.ux.cec .ed-feat h3 { margin: 0 0 0.35rem; font-size: 1.02rem; }
body.ux.cec .ed-feat p { margin: 0; font-size: 0.9rem; }
body.ux.cec .ed-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 1.25rem; align-items: start; }
body.ux.cec .ed-two > .card { margin: 0; min-width: 0; }

/* ---- ranked lists on hubs ---- */
body.ux.cec .ed-rank { list-style: none; margin: 0; padding: 0; counter-reset: none; }
body.ux.cec .ed-rank li { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr) auto auto; gap: 0.2rem 0.8rem; align-items: baseline; padding: 0.6rem 0; border-top: 1px solid var(--c-line); font-size: 0.92rem; }
body.ux.cec .ed-rank li:first-child { border-top: 0; padding-top: 0.1rem; }
body.ux.cec .ed-rank .n { color: var(--ux-muted); font-size: 0.78rem; font-variant-numeric: tabular-nums; }
body.ux.cec .ed-rank .nm { min-width: 0; overflow-wrap: anywhere; }
body.ux.cec .ed-rank .mt { color: var(--ux-muted); font-size: 0.8rem; text-align: right; }
body.ux.cec .ed-rank .sc { font-weight: 900; font-variant-numeric: tabular-nums; min-width: 2.4rem; text-align: right; }
body.ux.cec .ed-rank .sc b { background: var(--c-accent-tint); color: var(--c-accent-ink); border-radius: 999px; padding: 0.15rem 0.55rem; font-size: 0.82rem; }
body.ux.cec .ed-rankcard .ed-src { margin-top: 1rem; }

/* ---- spine sections (coverage, sources, how it is built) ---- */
body.ux.cec .ed-num { font-size: 0.72rem; font-weight: 900; letter-spacing: 0.08em; color: var(--c-accent); background: var(--c-accent-tint); border-radius: 999px; padding: 0.2rem 0.55rem; margin-right: 0.6rem; vertical-align: 3px; }
body.ux.cec .ed-barcell { min-width: 9rem; }
body.ux.cec .ed-bar { height: 8px; border-radius: 999px; background: var(--c-pale); overflow: hidden; }
body.ux.cec .ed-bar i { display: block; height: 100%; border-radius: 999px; background: #9a9ca0; }
body.ux.cec .ed-bar i.hi { background: var(--c-accent); }
body.ux.cec .ed-prov { margin: 0.4rem 0 0; padding-left: 1.2rem; }
body.ux.cec .ed-prov li { margin: 0 0 0.6rem; line-height: 1.55; }
body.ux.cec .ed-about p { margin: 0 0 0.7rem; }
body.ux.cec .ed-about p:last-child { margin-bottom: 0; }
body.ux.cec .ed-notes { margin: 0 0 0.8rem; padding-left: 1.1rem; }
body.ux.cec .ed-notes li { margin: 0 0 0.45rem; font-size: 0.9rem; line-height: 1.5; }
body.ux.cec .ed-src { overflow-wrap: anywhere; }

/* ---- sign-in gate ---- */
body.ux.cec .ed-gate { background: linear-gradient(160deg, #2a2b2e 0%, var(--c-deep) 50%, var(--c-deep-2) 100%); color: #fff; border-radius: 18px; padding: 2rem 2.2rem; box-shadow: var(--c-sh-md); max-width: 46rem; }
html[data-cec="red"] body.ux.cec .ed-gate { background: linear-gradient(160deg, #a3142a 0%, var(--c-deep) 55%, var(--c-deep-2) 100%); }
body.ux.cec .ed-gate h2 { color: #fff; margin: 0 0 0.8rem; font-size: 1.35rem; font-weight: 300; }
body.ux.cec .ed-gate p { color: rgba(255,255,255,.88); margin: 0 0 0.9rem; line-height: 1.55; }
body.ux.cec .ed-gate .btn { margin-top: 0.2rem; white-space: normal; }
body.ux.cec .ed-gate p.ed-gate-fine { font-size: 0.84rem; color: rgba(255,255,255,.7); margin-top: 1rem; }
body.ux.cec .ed-gate a:not(.btn) { color: #fff; }

/* ---- ranking table ---- */
body.ux.cec .ed-ranktbl td { vertical-align: top; }
body.ux.cec .ed-ranktbl th:first-child, body.ux.cec .ed-ranktbl td.ed-rk { width: 3rem; }
body.ux.cec .ed-ranktbl td:nth-child(2) { min-width: 14rem; }
body.ux.cec .ed-ranktbl td:nth-child(3) { min-width: 11rem; }
body.ux.cec .tag.ed-high { background: var(--c-accent); color: #fff; }
body.ux.cec .ed-detail { display: block; margin-top: 0.3rem; font-size: 0.8rem; color: var(--ux-muted); }
body.ux.cec .ed-why { margin: 0; padding-left: 1.05rem; }
body.ux.cec .ed-why li { margin: 0 0 0.3rem; font-size: 0.86rem; line-height: 1.45; color: #3a3c40; }
body.ux.cec .ed-whycell { min-width: 18rem; }

/* ---- directory tables ---- */
body.ux.cec .ed-tbl td.tnum, body.ux.cec .ed-tbl th.tnum { text-align: right; white-space: nowrap; }
body.ux.cec .ed-tbl td { vertical-align: top; overflow-wrap: anywhere; }
body.ux.cec .ed-tbl .chip-chair, body.ux.cec .ed-tbl .chip-past, body.ux.cec .ed-tbl .chip { display: inline-block; margin-left: 0.4rem; border-radius: 999px; background: var(--c-pale); color: #3a3c40; font-size: 0.64rem; font-weight: 900; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.15rem 0.5rem; vertical-align: 1px; white-space: nowrap; }
body.ux.cec .ed-tbl .chip-chair { background: var(--c-accent); color: #fff; }
body.ux.cec .ed-tbl .chip.sm { text-transform: none; letter-spacing: 0; }
body.ux.cec .ed-tblwrap { min-width: 0; }
body.ux.cec .ed-results .cec-card-h h2 { overflow-wrap: anywhere; }
body.ux.cec .ed-rolegrid { gap: 0.7rem; }
body.ux.cec .cec-chips { margin-bottom: 0.8rem; }

@media (max-width: 980px) {
  body.ux.cec .ed-hero-in { grid-template-columns: minmax(0, 1fr); gap: 1.8rem; padding-top: 2.4rem; padding-bottom: 2.4rem; }
  body.ux.cec .ed-hero-fig { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255,255,255,.18); padding-top: 1.4rem; }
}
@media (max-width: 620px) {
  body.ux.cec .ed-herosearch form, body.ux.cec .ed-herosearch .rec-search { flex-wrap: wrap; }
  body.ux.cec .ed-herosearch button { flex: 1 0 100%; }
  body.ux.cec .ed-rank li { grid-template-columns: 1.4rem minmax(0, 1fr) auto; }
  body.ux.cec .ed-rank .mt { grid-column: 2; grid-row: 2; text-align: left; }
  body.ux.cec .ed-rank .sc { grid-column: 3; grid-row: 1; }
  body.ux.cec .ed-gate { padding: 1.4rem 1.2rem; }
  body.ux.cec .ed-ranktbl td.ed-rk { width: auto; font-weight: 900; }
  body.ux.cec .ed-ranktbl td:nth-child(n) { min-width: 0; }
  body.ux.cec .ed-whycell { min-width: 0; }
  body.ux.cec .ed-barcell { min-width: 0; }
  body.ux.cec .ed-tbl td.tnum { text-align: left; white-space: normal; }
}

body.ux.cec .ed-glance-h { margin: 0 0 0.6rem; font-size: 0.7rem; font-weight: 900; letter-spacing: 0.09em; text-transform: uppercase; color: var(--c-accent); }
body.ux.cec .kpi-row.ed-kpis:has(> .kpi-tile:only-child) { grid-template-columns: minmax(0, 320px); }

/* agent B 13 Oct: pill tab bars wrap on phones instead of scrolling out of sight */
@media (max-width: 700px) {
  body.ux.cec .cec-tabs { display: flex; flex-wrap: wrap; border-radius: 18px; overflow: visible; gap: 0.25rem; }
  body.ux.cec .cec-tabs a { flex: 0 0 auto; }
  body.ux.cec .hub-subnav { flex-wrap: wrap; overflow: visible; }
}
