/* ==========================================================================
   Publisher page v2 — marketing-site redesign (Publisher Page.dc.html)
   Loaded only by _layouts/publisher-profile-v2.html on top of v2-core.css.
   Everything publisher-specific is pubv2-*; shared classes stay in the core.
   ========================================================================== */

/* Size utilities — the design's data-carrying inline heights/widths as classes */
.pubv2-w72 { width: 72%; } .pubv2-w78 { width: 78%; } .pubv2-w88 { width: 88%; }

/* Hero extras */

/* Hero facts strip, bound to answer_first.facts (present on all 36 publishers).
   The design's four figure tiles assumed short mono values; these are sourced
   prose up to ~125 characters, so the value is set in the sans face and wraps.
   Same reasoning as the entity band's comma rule (HANDOFF §11). */
/* Process stages */
.pubv2-process { margin-top: 40px; padding-top: 32px; padding-bottom: 52px; border-top: 1px solid #DFE3EA; scroll-margin-top: 16px; }
.pubv2-process__note { margin: 0 0 8px; font-size: 16px; line-height: 1.6; color: #414B5E; max-width: 60ch; }
.pubv2-stages { margin: 0; min-width: 0; }
.pubv2-stage { padding: 18px 0; border-top: 1px solid #EDEFF4; }
.pubv2-stage dt { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.pubv2-stage__tag { font: 500 11px/1.4 'IBM Plex Mono', monospace; letter-spacing: .06em; text-transform: uppercase; color: #5A6478; flex: none; }
.pubv2-stage__title { font: 500 18px/1.35 'Circular', sans-serif; color: #14203A; }
.pubv2-stage dd { margin: 0; font-size: 17px; line-height: 1.65; color: #414B5E; text-wrap: pretty; }

/* Band sections + shared section furniture */
.pubv2-band { background: #F6F8FC; border-bottom: 1px solid #EDEFF4; padding: 48px 0 54px; scroll-margin-top: 16px; }
.pubv2-band__h2 { margin-bottom: 10px; }
.pubv2-lead { margin: 0 0 26px; font-size: 17px; line-height: 1.6; color: #414B5E; max-width: 66ch; text-wrap: pretty; }
.pubv2-sect { padding: 44px 0 0; scroll-margin-top: 16px; }
.pubv2-kicker { margin: 0 0 12px; font: 500 11px/1 'IBM Plex Mono', monospace; letter-spacing: .07em; text-transform: uppercase; color: #5A6478; }

/* Named assessments table */
.pubv2-tablecard { background: #fff; border: 1px solid #DFE3EA; border-radius: 10px; padding: 24px 26px; }
.pubv2-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pubv2-table { border-collapse: collapse; table-layout: fixed; width: 100%; min-width: 520px; text-align: left; }
.pubv2-table caption { caption-side: top; text-align: left; font: 500 11px/1 'IBM Plex Mono', monospace; letter-spacing: .07em; text-transform: uppercase; color: #5A6478; padding: 0 0 16px; }
.pubv2-table thead th {
  text-align: left; font: 500 11px/1 'IBM Plex Mono', monospace; letter-spacing: .07em;
  text-transform: uppercase; color: #5A6478; padding: 0 16px 12px 0;
  border-bottom: 1px solid #DFE3EA; vertical-align: bottom;
}
.pubv2-table__c1 { width: 30%; }
.pubv2-table__c2 { width: 36%; }
.pubv2-table__c3 { width: 17%; }
.pubv2-table tbody th { text-align: left; font-weight: 500; font-size: 16px; line-height: 1.4; padding: 15px 16px 15px 0; border-bottom: 1px solid #EDEFF4; vertical-align: top; }
.pubv2-table tbody th a { display: inline-block; padding: 11px 0; color: #1257E8; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.pubv2-table tbody th a:hover { color: #0A45B8; }
.pubv2-table td { font-size: 15px; line-height: 1.5; color: #414B5E; padding: 15px 16px 15px 0; border-bottom: 1px solid #EDEFF4; vertical-align: top; }
.pubv2-table td.pubv2-table__num { font-family: 'IBM Plex Mono', monospace; font-weight: 500; color: #14203A; font-variant-numeric: tabular-nums; }
.pubv2-tablecard__note { margin: 20px 0 0; padding-top: 18px; border-top: 1px solid #EDEFF4; font-size: 14px; line-height: 1.55; color: #5A6478; }

/* Practise-by-format chips */
.pubv2-chips { margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: baseline; }
.pubv2-chips__label { font: 500 11px/1.6 'IBM Plex Mono', monospace; letter-spacing: .07em; text-transform: uppercase; color: #5A6478; flex: none; }
.tv2 a.pubv2-chip {
  display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; line-height: 1.5;
  color: #1257E8; text-decoration: none; border: 1px solid #C9DBFF; border-radius: 999px;
  padding: 0 14px; background: #fff;
}
.tv2 a.pubv2-chip:hover { background: #EEF4FF; border-color: #1257E8; color: #1257E8; text-decoration: none; }

/* Format miniatures */

/* Employers who set these tests */
.pubv2-usedby { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px,100%), 1fr)); gap: 12px; }
.pubv2-usedby li { min-width: 0; }
.tv2 .pubv2-usedby a {
  display: flex; flex-direction: column; gap: 5px; min-height: 44px; border: 1px solid #DFE3EA;
  border-radius: 10px; background: #fff; padding: 16px 18px; text-decoration: none;
}
.tv2 .pubv2-usedby a:hover { border-color: #94AEF2; text-decoration: none; }
.pubv2-usedby__name { font: 500 16px/1.35 'Circular', sans-serif; color: #1257E8; }
.pubv2-usedby__stage { font-size: 14px; line-height: 1.5; color: #5A6478; }
.pubv2-browse { margin: 20px 0 0; font-size: 15px; line-height: 1.6; color: #5A6478; }
.tv2 .pubv2-browse a { color: #1257E8; text-decoration: none; border-bottom: 1px solid #C9DBFF; }
.tv2 .pubv2-browse a:hover { color: #0A45B8; border-color: #0A45B8; text-decoration: none; }
.pubv2-browse--freetest { margin-top: 22px; }

/* Anatomy of a question */
.pubv2-anatwrap { margin: 0 0 22px; }
.pubv2-anat__intro { margin: 0 0 22px; font-size: 16px; line-height: 1.6; color: #414B5E; max-width: 56ch; }
.pubv2-anat { display: grid; grid-template-columns: minmax(0,300px) minmax(0,1fr); gap: 18px 32px; align-items: center; }
.pubv2-anat__demo { background: #F6F8FC; border: 1px solid #E3E8F0; border-radius: 6px; padding: 14px; }
.pubv2-anat__demo--lines { display: flex; flex-direction: column; gap: 7px; }
.pubv2-anat__demo--lines > div { height: 7px; border-radius: 2px; background: #DCE8FF; }
.pubv2-anat__demo--series { padding: 16px 14px; font: 500 17px/1.3 'IBM Plex Mono', monospace; color: #14203A; font-variant-numeric: tabular-nums; }
.pubv2-anat__demo--opts { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; }
.pubv2-anat__demo--opts > div { height: 30px; border-radius: 4px; border: 1.5px solid #DFE3EA; background: #fff; font: 500 12px/28px 'IBM Plex Mono', monospace; color: #5A6478; text-align: center; }
.pubv2-anat__demo--opts > div.is-warn { border-color: #FFC97A; background: #FFF6E8; color: #8A5A00; }
.pubv2-anat__text { display: flex; gap: 14px; align-items: baseline; min-width: 0; }
.pubv2-anat__text p { margin: 0; font-size: 16px; line-height: 1.55; color: #414B5E; text-wrap: pretty; }
.pubv2-anat__text b { font-weight: 500; color: #14203A; }
.pubv2-anat__num { width: 24px; height: 24px; flex: none; border-radius: 50%; background: #EEF4FF; color: #0A45B8; font: 500 12px/24px 'IBM Plex Mono', monospace; text-align: center; }
.pubv2-anat__num--warn { background: #FFF1DC; color: #8A5A00; }

/* Sample question */
.pubv2-q { margin: 0 0 20px; padding: 26px; border: 1px solid #DFE3EA; border-radius: 10px; background: #fff; min-width: 0; }
.pubv2-q__tags { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.pubv2-q__sample { font: 600 13px 'IBM Plex Mono', monospace; color: #14203A; font-variant-numeric: tabular-nums; }
.pubv2-q__tag { font: 500 11px/1 'IBM Plex Mono', monospace; letter-spacing: .06em; text-transform: uppercase; color: #5A6478; background: #F6F8FC; border: 1px solid #DFE3EA; padding: 5px 8px; border-radius: 999px; }
.pubv2-q__grid { display: grid; grid-template-columns: minmax(300px,1fr) minmax(280px,360px); gap: 28px 40px; align-items: start; }
.pubv2-q__stem { min-width: 0; }
.pubv2-q__prompt { margin: 0 0 16px; font-size: 18px; line-height: 1.6; color: #14203A; max-width: 58ch; text-wrap: pretty; }
.pubv2-q__series { margin: 0; font: 500 24px/1.4 'IBM Plex Mono', monospace; color: #14203A; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.pubv2-q__opts { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; align-content: start; }
.pubv2-opt {
  display: flex; align-items: center; gap: 14px; padding: 15px 17px; border-radius: 8px;
  cursor: pointer; min-height: 56px; border: 1.5px solid #DFE3EA; background: #fff; position: relative;
}
.pubv2-opt:hover { border-color: #1257E8; }
.pubv2-opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.pubv2-opt__letter {
  width: 30px; height: 30px; border-radius: 50%; flex: none; display: flex; align-items: center;
  justify-content: center; font: 500 14px 'IBM Plex Mono', monospace;
  border: 1.5px solid #C7CCD8; background: #fff; color: #5A6478;
}
.pubv2-opt__body { font-size: 16px; line-height: 1.5; color: #14203A; font-variant-numeric: tabular-nums; }
.pubv2-opt__mark { margin-left: auto; font: 500 12px 'IBM Plex Mono', monospace; color: #5A6478; }
.pubv2-opt.is-right { border-color: #0E7A50; background: #E6F6EE; }
.pubv2-opt.is-right .pubv2-opt__letter { border-color: #0E7A50; background: #0E7A50; color: #fff; }
.pubv2-opt.is-right .pubv2-opt__body { font-weight: 500; }
.pubv2-opt.is-right .pubv2-opt__mark { color: #0E7A50; }
.pubv2-opt.is-wrong { border-color: #C22A22; background: #FCEBEA; }
.pubv2-opt.is-wrong .pubv2-opt__letter { border-color: #C22A22; background: #C22A22; color: #fff; }
.pubv2-opt.is-wrong .pubv2-opt__mark { color: #C22A22; }
.pubv2-solution { margin-top: 18px; border-top: 1px solid #EDEFF4; padding-top: 16px; }
.pubv2-solution summary {
  cursor: pointer; font-size: 15px; font-weight: 500; color: #1257E8; list-style: none;
  display: flex; align-items: center; min-height: 44px; margin: -10px 0;
}
.pubv2-solution summary::-webkit-details-marker { display: none; }
.pubv2-solution summary:hover { color: #0A45B8; }
.pubv2-solution__body { margin-top: 14px; padding: 18px; background: #F6F8FC; border-radius: 8px; font-size: 16px; line-height: 1.65; color: #414B5E; max-width: 66ch; }

/* Score conversion panel */
.pubv2-panel { margin: 0 0 20px; border: 1px solid #DFE3EA; border-radius: 10px; background: #fff; padding: 28px; box-shadow: 0 1px 2px rgba(20,32,58,.06), 0 2px 8px rgba(20,32,58,.05); }
.pubv2-panel__h3 { margin: 0 0 10px; font-size: 22px; line-height: 1.3; font-weight: 500; color: #14203A; max-width: 38ch; text-wrap: balance; }
.pubv2-panel__body { margin: 0 0 30px; font-size: 16px; line-height: 1.6; color: #414B5E; max-width: 68ch; text-wrap: pretty; }
.pubv2-curvepair { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); gap: 30px 44px; align-items: center; }
.pubv2-curvepair__table, .pubv2-curvepair__chart { min-width: 0; }
.pubv2-scoredl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 0; font-size: 15px; line-height: 1.5; }
.pubv2-scoredl dt { color: #5A6478; padding: 12px 0; border-top: 1px solid #EDEFF4; display: flex; align-items: center; gap: 10px; }
.pubv2-scoredl dd { margin: 0; text-align: right; color: #14203A; padding: 12px 0 12px 18px; border-top: 1px solid #EDEFF4; font-variant-numeric: tabular-nums; }
.pubv2-swatch { width: 10px; height: 10px; border-radius: 2px; flex: none; }
.pubv2-swatch--median { background: #DCE8FF; }
.pubv2-swatch--top { background: #0E7A50; }
.pubv2-curvepair__note { margin: 18px 0 0; font-size: 15px; line-height: 1.55; color: #5A6478; text-wrap: pretty; }
.pubv2-curvelabels { position: relative; height: 20px; margin-bottom: 6px; font: 500 12px/1 'IBM Plex Mono', monospace; letter-spacing: .04em; text-transform: uppercase; }
.pubv2-curvelabels__median { position: absolute; left: 46%; transform: translateX(-50%); white-space: nowrap; color: #0A45B8; }
.pubv2-curvelabels__cohort { position: absolute; right: 0; white-space: nowrap; color: #5A6478; }
.pubv2-curve { display: block; width: 100%; height: auto; }
.pubv2-axis { position: relative; height: 18px; margin: 4px 0 16px; font: 500 12px/1 'IBM Plex Mono', monospace; color: #5A6478; font-variant-numeric: tabular-nums; }
.pubv2-axis__lo { position: absolute; left: 0; }
.pubv2-axis__mid { position: absolute; left: 50%; transform: translateX(-50%); }
.pubv2-axis__hi { position: absolute; right: 0; }
.pubv2-legend { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; line-height: 1.4; color: #414B5E; }
.pubv2-legend > span { display: flex; align-items: center; gap: 8px; }
.pubv2-legend__key { width: 11px; height: 11px; border-radius: 2px; flex: none; }
.pubv2-legend__key--solid { background: #EEF4FF; border: 1.5px solid #1257E8; }
.pubv2-legend__key--dashed { background: #F1F3F8; border: 1.5px dashed #C9D3E4; }
.pubv2-legend__key--line { height: 2px; border-radius: 0; background: #0E7A50; }

/* First-party score panel */
.pubv2-real { margin: 0 0 56px; border: 1px solid #DFE3EA; border-radius: 10px; background: #fff; padding: 30px; scroll-margin-top: 16px; box-shadow: 0 1px 2px rgba(20,32,58,.06), 0 2px 8px rgba(20,32,58,.05); }
.pubv2-real__h3 { margin: 0 0 10px; font-size: 24px; line-height: 1.25; font-weight: 500; color: #14203A; max-width: 34ch; text-wrap: balance; }
.pubv2-real__intro { margin: 0 0 28px; font-size: 17px; line-height: 1.6; color: #414B5E; max-width: 62ch; text-wrap: pretty; }
.pubv2-real__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px,100%),1fr)); gap: 0 32px; margin-bottom: 30px; border-top: 1px solid #EDEFF4; }
.pubv2-real__stat { min-width: 0; padding: 22px 0; border-bottom: 1px solid #EDEFF4; }
.pubv2-real__figure { font: 500 44px/1 'IBM Plex Mono', monospace; color: #14203A; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.pubv2-real__label { margin-top: 10px; font-size: 15px; line-height: 1.4; color: #5A6478; }
.pubv2-real__h4 { margin: 0 0 4px; font-size: 17px; line-height: 1.4; font-weight: 500; color: #14203A; }
.pubv2-real__note { margin: 0 0 20px; font-size: 15px; line-height: 1.55; color: #5A6478; max-width: 56ch; }
.pubv2-bars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.pubv2-bars li { display: grid; grid-template-columns: minmax(96px,132px) minmax(0,1fr) 46px; gap: 14px; align-items: center; }
.pubv2-bars__name { font-size: 15px; line-height: 1.4; color: #414B5E; font-weight: 400; }
.pubv2-bars__name.is-worst { color: #14203A; font-weight: 500; }
.pubv2-bars__track { height: 14px; border-radius: 2px; background: #EDEFF4; overflow: hidden; display: block; }
.pubv2-bars__fill { display: block; height: 100%; background: #1257E8; }
.pubv2-bars__fill.is-worst { background: #0A45B8; }
.pubv2-bars__value { font: 500 14px 'IBM Plex Mono', monospace; color: #14203A; font-variant-numeric: tabular-nums; text-align: right; }
.pubv2-real__source { margin: 24px 0 0; padding-top: 18px; border-top: 1px solid #EDEFF4; font-size: 14px; line-height: 1.55; color: #5A6478; }

/* Guide sections */
.pubv2-gsect { margin-bottom: 40px; padding-bottom: 40px; border-bottom: 1px solid #EDEFF4; scroll-margin-top: 16px; }
.pubv2-gsect h2 { margin: 0 0 14px; font-size: 26px; line-height: 1.25; font-weight: 500; color: #14203A; max-width: 40ch; text-wrap: balance; }
.pubv2-gsect p { margin: 0 0 16px; font-size: 17px; line-height: 1.65; color: #414B5E; max-width: 68ch; text-wrap: pretty; }
.tv2 .pubv2-gsect__links a { color: #1257E8; text-decoration: none; border-bottom: 1px solid #C9DBFF; }
.tv2 .pubv2-gsect__links a:hover { color: #0A45B8; border-color: #0A45B8; text-decoration: none; }
.pubv2-gsect__tablewrap { margin: 26px 0 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pubv2-gtable { border-collapse: collapse; table-layout: fixed; width: 100%; min-width: 520px; text-align: left; }
.pubv2-gtable caption { caption-side: top; text-align: left; font: 500 11px/1 'IBM Plex Mono', monospace; letter-spacing: .07em; text-transform: uppercase; color: #5A6478; padding: 0 0 14px; }
.pubv2-gtable thead th { text-align: left; font: 500 11px/1 'IBM Plex Mono', monospace; letter-spacing: .07em; text-transform: uppercase; padding: 0 16px 12px 0; border-bottom: 1px solid #DFE3EA; vertical-align: bottom; }
.pubv2-gtable thead th.pubv2-gtable__col { color: #0A45B8; width: 37%; }
.pubv2-gtable tbody th { text-align: left; font-weight: 500; font-size: 15px; line-height: 1.45; color: #14203A; padding: 14px 16px 14px 0; border-bottom: 1px solid #EDEFF4; vertical-align: top; width: 26%; }
.pubv2-gtable td { font-size: 15px; line-height: 1.5; color: #414B5E; padding: 14px 16px 14px 0; border-bottom: 1px solid #EDEFF4; vertical-align: top; }

/* FAQ answers (markdownified, may contain links) */

/* Trademark note */
.pubv2-trademark { background: transparent; padding: 8px 0 8px; }
.pubv2-trademark p { margin: 0; font-size: 13px; line-height: 1.6; color: #5A6478; }

/* ==========================================================================
   Responsive — per the design's breakpoint set
   ========================================================================== */
@media (max-width: 980px) {
  .pubv2-anat { grid-template-columns: minmax(0,1fr); gap: 10px 0; }
  .pubv2-q__grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
}
@media (max-width: 820px) {
  .pubv2-curvepair { grid-template-columns: minmax(0,1fr); }
}
/* The two chart labels are absolutely positioned so "Most candidates" sits over
   the median band. Below ~480px the column is narrower than the two nowrap
   labels combined, so they stop being positional and become a plain row. */
@media (max-width: 480px) {
  .pubv2-curvelabels { display: flex; justify-content: space-between; position: static; height: auto; }
  .pubv2-curvelabels__median, .pubv2-curvelabels__cohort { position: static; transform: none; }
}
@media (max-width: 620px) {
  .pubv2-q__opts { grid-template-columns: minmax(0,1fr); }
}
