/* IMAT 2026 explanation edition — presentation and /payment-inspired promo refresh */
:root {
  --mi-ink: #07111f;
  --mi-panel: #0d1830;
  --mi-cyan: #63e6ff;
  --mi-emerald: #59e0ad;
  --mi-amber: #ffd166;
  --mi-violet: #bda4ff;
}

.page.cover {
  isolation: isolate;
  justify-content: stretch !important;
  text-align: left !important;
  padding: 11mm !important;
  background:
    radial-gradient(circle at 84% 14%, rgba(168, 85, 247, .34), transparent 30%),
    radial-gradient(circle at 8% 80%, rgba(34, 211, 238, .22), transparent 34%),
    linear-gradient(145deg, #07111f 0%, #111b3f 48%, #35126b 100%) !important;
  color: #fff !important;
}

.page.cover::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .22;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 26px 26px;
  mask-image: linear-gradient(to bottom, #000, transparent 92%);
}

.cover-refresh {
  position: relative;
  z-index: 3;
  min-height: 100%;
  display: flex;
  flex-direction: column;
}

.cover-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.cover-topline img {
  width: 285px;
  max-height: 70px;
  object-fit: contain;
  object-position: left center;
  filter: drop-shadow(0 12px 22px rgba(0,0,0,.34));
}

.cover-edition {
  border: 1px solid rgba(103,232,249,.5);
  background: rgba(8,47,73,.62);
  color: #a5f3fc;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 1000;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
}

.cover-kicker {
  margin-top: 28mm;
  color: var(--mi-cyan);
  font-size: 11px;
  font-weight: 1000;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.cover-refresh h1 {
  margin: 4px 0 0 !important;
  max-width: 680px;
  font-size: 58px !important;
  line-height: .92 !important;
  letter-spacing: -.045em;
  font-weight: 1000 !important;
}

.cover-refresh h1 em {
  display: inline-block;
  margin-left: 12px;
  color: var(--mi-amber);
  font-style: normal;
}

.cover-deck {
  max-width: 645px;
  margin: 12px 0 0;
  color: #dbeafe;
  font-size: 16px;
  line-height: 1.38;
  font-weight: 900;
}

.cover-rule {
  width: 100%;
  height: 2px;
  margin: 18px 0 14px;
  background: linear-gradient(90deg, var(--mi-cyan), var(--mi-violet), transparent);
}

.cover-metrics {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 7px;
}

.cover-metric {
  min-height: 72px;
  padding: 10px 9px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 14px;
  background: linear-gradient(160deg, rgba(255,255,255,.12), rgba(255,255,255,.035));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}

.cover-metric b {
  display: block;
  color: #fff;
  font-size: 20px;
  font-weight: 1000;
}

.cover-metric span {
  display: block;
  margin-top: 3px;
  color: #cbd5e1;
  font-size: 8.5px;
  line-height: 1.25;
  font-weight: 1000;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.cover-subjects {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 13px;
}

.cover-subjects span {
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 1000;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(7,17,31,.48);
  color: #e2e8f0;
}

.cover-summary {
  display: grid;
  grid-template-columns: 1.4fr .85fr;
  gap: 10px;
  margin-top: auto;
}

.cover-summary > div {
  border-radius: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(4,9,20,.55);
  color: #dbeafe;
  font-size: 11px;
  line-height: 1.45;
  font-weight: 850;
}

.cover-summary strong {
  display: block;
  margin-bottom: 4px;
  color: #fff;
  font-size: 12px;
  font-weight: 1000;
}

.cover-summary .access-card {
  background: linear-gradient(145deg, rgba(6,78,59,.78), rgba(5,46,43,.68));
  border-color: rgba(52,211,153,.55);
}

.cover-summary .access-card strong { color: #6ee7b7; }
.cover-footline { margin-top: 10px; color: #94a3b8; font-size: 8.7px; font-weight: 900; letter-spacing: .06em; text-align: center; }

/* The match callout is a reading aid, not a dark ad interruption. */
.match-box {
  margin: 7px 0 8px !important;
  padding: 8px 10px !important;
  border: 1px solid #c4b5fd !important;
  border-left: 5px solid #7c3aed !important;
  border-radius: 10px !important;
  background: linear-gradient(90deg, #f5f3ff 0%, #eef2ff 54%, #f8fafc 100%) !important;
  color: #312e81 !important;
  box-shadow: none !important;
}

.match-title {
  color: #6d28d9 !important;
  font-size: 10.4px !important;
  letter-spacing: .055em !important;
}

.match-links { color: #334155 !important; font-size: 10.5px !important; line-height: 1.45 !important; }
.match-links a { color: #1d4ed8 !important; text-underline-offset: 2px; }

/* Four sales pages, using the same image library and tone as /payment. */
.promo-page-v14 {
  position: relative;
  isolation: isolate;
  padding: 6mm !important;
  color: #fff !important;
  background:
    radial-gradient(circle at 7% 4%, rgba(14,165,233,.22), transparent 31%),
    radial-gradient(circle at 94% 10%, rgba(217,70,239,.17), transparent 32%),
    linear-gradient(145deg, #050913 0%, #0b1730 54%, #190d28 100%) !important;
}

.promo-page-v14::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .18 !important;
  background-image: linear-gradient(rgba(148,163,184,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.12) 1px,transparent 1px) !important;
  background-size: 25px 25px !important;
}

.promo-shell { height: 100%; display: flex; flex-direction: column; gap: 8px; }
.promo-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.promo-brand { width: 205px; max-height: 54px; object-fit: contain; object-position: left center; }
.promo-eyebrow { color: var(--mi-cyan); font-size: 9px; font-weight: 1000; letter-spacing: .16em; text-transform: uppercase; }
.promo-head h1 { margin: 2px 0 0; max-width: 500px; color: #fff; font-size: 24px; line-height: 1.06; font-weight: 1000; letter-spacing: -.02em; }
.promo-head p { margin: 4px 0 0; max-width: 500px; color: #cbd5e1; font-size: 10.4px; line-height: 1.38; font-weight: 820; }
.promo-chip { padding: 5px 8px; border: 1px solid rgba(103,232,249,.38); border-radius: 999px; background: rgba(8,47,73,.62); color: #a5f3fc; font-size: 8.4px; font-weight: 1000; white-space: nowrap; }

.promo-hero-image {
  display: grid;
  grid-template-columns: 245px 1fr;
  gap: 12px;
  align-items: stretch;
  padding: 9px;
  border: 1px solid rgba(103,232,249,.28);
  border-radius: 16px;
  background: linear-gradient(110deg, rgba(8,47,73,.68), rgba(76,29,149,.28));
}

.promo-hero-image img { width: 100%; height: 115px; object-fit: cover; border-radius: 12px; }
.promo-hero-image h2 { margin: 2px 0 4px; color: #fff; font-size: 18px; line-height: 1.08; font-weight: 1000; }
.promo-hero-image p { margin: 0; color: #dbeafe; font-size: 10px; line-height: 1.42; font-weight: 820; }
.promo-hero-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin-top: 7px; }
.promo-hero-points span { padding: 5px 6px; border: 1px solid rgba(255,255,255,.12); border-radius: 8px; background: rgba(255,255,255,.05); color: #e2e8f0; font-size: 8.4px; line-height: 1.22; font-weight: 900; }

.promo-metrics { display: grid; grid-template-columns: repeat(5,1fr); gap: 6px; }
.promo-metrics > div { padding: 7px 8px; border: 1px solid rgba(148,163,184,.22); border-radius: 11px; background: rgba(255,255,255,.04); }
.promo-metrics b { display: block; color: #fff; font-size: 16px; font-weight: 1000; }
.promo-metrics span { display: block; color: #cbd5e1; font-size: 8.4px; line-height: 1.22; font-weight: 900; }

.promo-section { padding: 8px 9px; border: 1px solid rgba(148,163,184,.2); border-radius: 14px; background: rgba(255,255,255,.025); }
.promo-title-row { display: flex; align-items: end; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.promo-title-row h2 { margin: 0; color: var(--mi-amber); font-size: 12.5px; font-weight: 1000; text-transform: uppercase; letter-spacing: .045em; }
.promo-title-row span { color: #94a3b8; font-size: 8.4px; font-weight: 850; }

.image-card-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; }
.image-card { overflow: hidden; border: 1px solid rgba(148,163,184,.25); border-radius: 12px; background: linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025)); text-decoration: none; }
.image-card img { display: block; width: 100%; height: 76px; object-fit: cover; }
.image-card-body { padding: 6px 7px 7px; }
.image-card b { display: block; color: #fff; font-size: 9.7px; font-weight: 1000; }
.image-card span { display: block; margin-top: 2px; color: #cbd5e1; font-size: 8.2px; line-height: 1.25; font-weight: 820; }
.image-card .price { color: var(--mi-amber); font-size: 10px; font-weight: 1000; }

.mock-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.mock-card { display: grid; grid-template-columns: 98px 1fr; gap: 7px; min-height: 88px; padding: 6px; border: 1px solid rgba(148,163,184,.22); border-radius: 12px; background: rgba(255,255,255,.035); text-decoration: none; }
.mock-card img { width: 98px; height: 76px; object-fit: cover; border-radius: 9px; }
.mock-card b { display: block; margin-top: 3px; color: #fff; font-size: 9.6px; font-weight: 1000; }
.mock-card span { display: block; margin-top: 3px; color: #cbd5e1; font-size: 8.1px; line-height: 1.25; font-weight: 820; }

.proof-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; }
.proof-grid > div { padding: 6px 7px; border: 1px solid rgba(96,165,250,.28); border-radius: 9px; background: linear-gradient(90deg,rgba(30,64,175,.3),rgba(15,23,42,.54)); }
.proof-grid b { display: block; color: #fff; font-size: 8.8px; font-weight: 1000; }
.proof-grid span { display: block; margin-top: 2px; color: #bfdbfe; font-size: 7.8px; line-height: 1.22; font-weight: 820; }

.plan-grid-v14 { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; }
.plan-card-v14 { overflow: hidden; display: flex; flex-direction: column; border: 1.5px solid rgba(148,163,184,.28); border-radius: 14px; background: linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025)); text-decoration: none; }
.plan-card-v14 img { display: block; width: 100%; height: 95px; object-fit: cover; }
.plan-card-v14 > div { padding: 7px 8px 8px; }
.plan-card-v14.plus { border-color: rgba(34,211,238,.7); }
.plan-card-v14.pro { border-color: rgba(251,191,36,.7); }
.plan-card-v14.ultra { border-color: rgba(192,132,252,.72); }
.plan-card-v14.group { border-color: rgba(129,140,248,.65); }
.plan-card-v14 b { color: #fff; font-size: 11px; font-weight: 1000; }
.plan-card-v14 .price { margin-left: 4px; color: var(--mi-amber); font-size: 9.2px; font-weight: 1000; }
.plan-card-v14 ul { margin: 5px 0 0 13px; padding: 0; }
.plan-card-v14 li { margin: 0 0 2px; color: #dbeafe; font-size: 8.2px; line-height: 1.25; font-weight: 820; }

.course-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; }
.course-card { overflow: hidden; border: 1px solid rgba(148,163,184,.24); border-radius: 12px; background: rgba(255,255,255,.035); }
.course-card img { width: 100%; height: 84px; object-fit: cover; }
.course-card div { padding: 6px 7px; }
.course-card b { display: block; color: #fff; font-size: 9.5px; font-weight: 1000; }
.course-card span { display: block; margin-top: 2px; color: #fde68a; font-size: 8.2px; font-weight: 900; }
.course-card p { margin: 3px 0 0; color: #cbd5e1; font-size: 7.9px; line-height: 1.24; font-weight: 820; }

.care-row { display: grid; grid-template-columns: 190px 1fr; gap: 9px; align-items: stretch; }
.care-row img { width: 190px; height: 112px; object-fit: cover; border-radius: 11px; }
.care-copy { padding: 8px 9px; border: 1px solid rgba(251,113,133,.45); border-radius: 12px; background: linear-gradient(120deg,rgba(136,19,55,.38),rgba(76,29,149,.2)); }
.care-copy h3 { margin: 0; color: #fda4af; font-size: 12px; font-weight: 1000; }
.care-copy p { margin: 4px 0 0; color: #ffe4e6; font-size: 8.8px; line-height: 1.34; font-weight: 840; }
.care-bullets { display: grid; grid-template-columns: repeat(2,1fr); gap: 5px; margin-top: 6px; }
.care-bullets span { padding: 5px 6px; border: 1px solid rgba(255,255,255,.12); border-radius: 8px; background: rgba(255,255,255,.045); color: #fff; font-size: 7.9px; line-height: 1.22; font-weight: 900; }

.promo-cta { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 11px; border: 1px solid rgba(52,211,153,.62); border-radius: 14px; background: linear-gradient(90deg,#052e2b,#064e3b); }
.promo-cta b { display: block; color: #fff; font-size: 11px; font-weight: 1000; }
.promo-cta span { display: block; margin-top: 2px; color: #d1fae5; font-size: 8.6px; line-height: 1.3; font-weight: 840; }
.promo-cta a { padding: 8px 11px; border-radius: 999px; background: linear-gradient(90deg,#67e8f9,#34d399); color: #042f2e; text-decoration: none; font-size: 9.3px; font-weight: 1000; white-space: nowrap; }
.promo-legal { margin-top: 4px; color: #64748b; font-size: 7.5px; line-height: 1.25; font-weight: 800; text-align: center; }

@media (max-width: 840px) {
  /* This is a paged document, so keep every screen page at the A4 canvas.
     On a narrow screen the entire canvas is uniformly reduced rather than
     reflowed, preserving the same line breaks and complete question text. */
  html, body { min-width: 0; }
  .page {
    width: 210mm;
    height: 297mm;
    min-height: 297mm;
    zoom: var(--a4-screen-scale, 1);
  }
}

@media print {
  html, body { min-width: 0 !important; }
  .page { zoom: 1 !important; }
  .promo-page-v14, .page.cover { break-after: page; page-break-after: always; }
  .image-card, .mock-card, .plan-card-v14, .course-card, .promo-section { break-inside: avoid; }
}

/* V15 — true A4 fill, larger reading type and payment-grade visual density. */
.page.cover {
  padding: 10mm !important;
}

.cover-refresh {
  height: 100%;
  min-height: 0;
  gap: 12px;
}

.cover-brand-lockup,
.promo-brand-lockup {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cover-brand-lockup img {
  width: 58px;
  height: 60px;
  object-fit: contain;
}

.cover-brand-lockup b,
.promo-brand-lockup b {
  display: block;
  color: #fff;
  font-size: 18px;
  line-height: 1;
  font-weight: 1000;
  letter-spacing: .045em;
}

.cover-brand-lockup span,
.promo-brand-lockup span {
  display: block;
  margin-top: 5px;
  color: #a5f3fc;
  font-size: 7.6px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .12em;
}

.cover-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(270px, .88fr);
  gap: 18px;
  min-height: 345px;
  align-items: stretch;
}

.cover-hero-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
}

.cover-kicker {
  margin-top: 0;
  font-size: 11.5px;
  line-height: 1.35;
  letter-spacing: .16em;
}

.cover-refresh h1 {
  margin-top: 8px !important;
  font-size: 68px !important;
  line-height: .9 !important;
}

.cover-refresh h1 em {
  display: block;
  margin: 5px 0 0;
  font-size: 82px;
}

.cover-deck {
  margin-top: 15px;
  font-size: 16.4px;
  line-height: 1.43;
}

.cover-promise {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 18px;
}

.cover-promise span {
  padding: 7px 9px;
  border: 1px solid rgba(103,232,249,.28);
  border-radius: 10px;
  background: rgba(8,47,73,.45);
  color: #cffafe;
  font-size: 9.4px;
  font-weight: 1000;
  text-align: center;
}

.cover-art {
  position: relative;
  overflow: hidden;
  min-height: 345px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 24px;
  background: #07111f;
  box-shadow: 0 22px 50px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.14);
}

.cover-art::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(3,7,18,.96) 0%, rgba(3,7,18,.08) 62%);
}

.cover-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cover-art-caption {
  position: absolute;
  z-index: 2;
  right: 16px;
  bottom: 16px;
  left: 16px;
}

.cover-art-caption b {
  display: block;
  color: #67e8f9;
  font-size: 11px;
  letter-spacing: .1em;
}

.cover-art-caption span {
  display: block;
  margin-top: 4px;
  color: #fff;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 900;
}

.cover-metrics {
  gap: 9px;
  margin: 0;
}

.cover-metric {
  min-height: 86px;
  padding: 12px 10px;
}

.cover-metric b { font-size: 24px; }
.cover-metric span { font-size: 9px; line-height: 1.3; }

.cover-bottom-grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 12px;
  min-height: 0;
  flex: 1;
}

.cover-proof-card,
.cover-access-panel {
  height: 100%;
  border: 1px solid rgba(255,255,255,.17);
  border-radius: 18px;
  padding: 16px 18px;
  background: linear-gradient(150deg,rgba(255,255,255,.11),rgba(255,255,255,.035));
}

.cover-proof-card { display: flex; flex-direction: column; }

.cover-proof-label,
.cover-access-badge {
  color: #67e8f9;
  font-size: 9px;
  font-weight: 1000;
  letter-spacing: .16em;
}

.cover-proof-card h2 {
  margin: 7px 0 10px;
  color: #fff;
  font-size: 19px;
  line-height: 1.14;
  font-weight: 1000;
}

.cover-feature-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; min-height: 0; flex: 1; }
.cover-feature-grid > div { display: flex; min-height: 82px; flex-direction: column; justify-content: center; padding: 10px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; background: rgba(3,7,18,.23); }
.cover-feature-grid b { display: block; float: left; margin-right: 7px; color: #facc15; font-size: 15px; line-height: 1; }
.cover-feature-grid span { display: block; color: #a5f3fc; font-size: 8.3px; font-weight: 1000; letter-spacing: .08em; }
.cover-feature-grid p { clear: both; margin: 7px 0 0; color: #e0f2fe; font-size: 9.7px; line-height: 1.32; font-weight: 800; }
.cover-study-loop { margin-top: 9px; padding: 11px 12px; border: 1px solid rgba(103,232,249,.28); border-radius: 13px; background: linear-gradient(90deg,rgba(8,145,178,.15),rgba(99,102,241,.15)); }
.cover-study-loop span { display: block; color: #67e8f9; font-size: 7.8px; font-weight: 1000; letter-spacing: .12em; }
.cover-study-loop b { display: block; margin-top: 5px; color: #fff; font-size: 12.5px; letter-spacing: .025em; }
.cover-study-loop p { margin: 4px 0 0; color: #cbd5e1; font-size: 9.3px; line-height: 1.3; font-weight: 800; }

.cover-access-panel {
  display: flex;
  flex-direction: column;
  border-color: rgba(52,211,153,.52);
  background: linear-gradient(145deg,rgba(6,78,59,.9),rgba(5,46,43,.72));
}

.cover-access-badge { color: #6ee7b7; }
.cover-access-panel b { display: block; margin-top: 10px; color: #fff; font-size: 21px; line-height: 1.1; font-weight: 1000; }
.cover-access-panel p { margin: 9px 0; color: #d1fae5; font-size: 11.4px; line-height: 1.42; font-weight: 850; }
.cover-access-list { display: grid; gap: 7px; margin-top: 4px; }
.cover-access-list > div { padding: 9px 10px; border: 1px solid rgba(110,231,183,.23); border-radius: 11px; background: rgba(2,44,34,.35); }
.cover-access-list strong { display: block; color: #6ee7b7; font-size: 8px; letter-spacing: .12em; }
.cover-access-list span { display: block; margin-top: 3px; color: #ecfdf5; font-size: 9.6px; line-height: 1.25; font-weight: 850; }
.cover-access-note { margin-top: 9px; padding: 11px; border-radius: 12px; background: linear-gradient(135deg,#facc15,#fb7185); color: #111827; }
.cover-access-note span { display: block; font-size: 7.5px; font-weight: 1000; letter-spacing: .1em; }
.cover-access-note b { margin-top: 5px; color: #111827; font-size: 14px; line-height: 1.12; }
.cover-access-panel a { display: block; margin-top: auto; padding: 10px 12px; border-radius: 999px; background: #34d399; color: #052e2b; text-align: center; text-decoration: none; font-size: 10.5px; font-weight: 1000; }
.cover-footline { margin-top: 0; font-size: 9px; }

/* Give the official wording readable priority; density classes reduce only commentary. */
.page:not(.cover):not(.promo-page-v14) .q-m span:first-child { font-size: 16.4px !important; }
.page:not(.cover):not(.promo-page-v14) .q-m span:last-child { font-size: 11.8px !important; }
.page:not(.cover):not(.promo-page-v14) .passage { font-size: 13.25px !important; line-height: 1.43 !important; }
.page:not(.cover):not(.promo-page-v14) .q-txt { font-size: 14.45px !important; line-height: 1.38 !important; }
.page:not(.cover):not(.promo-page-v14) .txt { font-size: 13.15px !important; line-height: 1.34 !important; }
.page:not(.cover):not(.promo-page-v14) .sol p,
.page:not(.cover):not(.promo-page-v14) .explain-body { font-size: 13.35px !important; line-height: 1.43 !important; }
.page:not(.cover):not(.promo-page-v14) .reason-steps li { font-size: 13.15px !important; line-height: 1.4 !important; }
.page:not(.cover):not(.promo-page-v14) .match-title { font-size: 11.1px !important; }
.page:not(.cover):not(.promo-page-v14) .match-links { font-size: 11.3px !important; line-height: 1.48 !important; }

.page.density-compact .sol p,
.page.density-compact .explain-body { font-size: 12.55px !important; line-height: 1.36 !important; margin-bottom: 5px !important; }
.page.density-compact .reason-steps li { font-size: 12.45px !important; line-height: 1.34 !important; }
.page.density-compact .viz-card { margin: 4px 0 !important; padding: 5px 7px !important; }

.page.density-tight .sol p,
.page.density-tight .explain-body { font-size: 11.9px !important; line-height: 1.31 !important; margin-bottom: 4px !important; }
.page.density-tight .reason-steps li { font-size: 11.8px !important; line-height: 1.3 !important; }
.page.density-tight .match-box { margin: 4px 0 !important; padding: 6px 8px !important; }

/* Use the full A4 height on every sales page instead of parking the CTA below empty space. */
.promo-page-v14 { padding: 7mm !important; }
.promo-shell { gap: 10px; }
.promo-head { min-height: 148px; }
.promo-brand-lockup { margin-bottom: 9px; }
.promo-brand { width: 54px; height: 56px; object-fit: contain; }
.promo-brand-lockup b { color: #fff !important; font-size: 16px; }
.promo-brand-lockup span { color: #a5f3fc; font-size: 7px; }
.promo-eyebrow { font-size: 10.8px; }
.promo-head h1 { max-width: 575px; font-size: 30px; line-height: 1.07; }
.promo-head p { max-width: 585px; font-size: 12.3px; line-height: 1.43; }
.promo-chip { padding: 8px 11px; font-size: 9.6px; }

.promo-shell > .promo-hero-image,
.promo-shell > .promo-section,
.promo-shell > .plan-grid-v14,
.promo-shell > .course-grid,
.promo-shell > .care-row {
  min-height: 0;
  flex-grow: 1;
}

.promo-cta { margin-top: 0; min-height: 58px; padding: 11px 13px; }
.promo-cta b { font-size: 13px; }
.promo-cta span { font-size: 10.2px; }
.promo-cta a { padding: 10px 14px; font-size: 10.8px; }
.promo-legal { font-size: 8.5px; line-height: 1.3; }

.promo-hero-image { grid-template-columns: 270px 1fr; padding: 11px; }
.promo-hero-image img { height: 100%; min-height: 145px; }
.promo-hero-image h2 { font-size: 20px; }
.promo-hero-image p { font-size: 11.8px; line-height: 1.42; }
.promo-hero-points span { font-size: 9.8px; }

.promo-metrics > div { padding: 10px 11px; }
.promo-metrics b { font-size: 20px; }
.promo-metrics span { font-size: 9.2px; }

.promo-section { display: flex; flex-direction: column; padding: 11px 12px; }
.promo-title-row h2 { font-size: 15px; }
.promo-title-row span { font-size: 9.8px; }
.promo-section > .image-card-grid,
.promo-section > .mock-grid,
.promo-section > .proof-grid { flex: 1; }

.image-card,
.mock-card,
.course-card { display: flex; min-height: 0; flex-direction: column; }
.image-card img,
.mock-card img,
.course-card img { min-height: 105px; flex: 1; }
.image-card b,
.mock-card b,
.course-card b { font-size: 11.2px; }
.image-card span,
.mock-card span,
.course-card p { font-size: 9.7px; line-height: 1.34; }

.proof-grid > div { display: flex; flex-direction: column; justify-content: center; padding: 9px 10px; }
.proof-grid b { font-size: 11.2px; }
.proof-grid span { font-size: 9.8px; line-height: 1.34; }

.plan-card-v14 { padding: 10px; }
.plan-card-v14 img { height: 100px; }
.plan-card-v14 b { font-size: 12.8px; }
.plan-card-v14 .price { font-size: 10.7px; }
.plan-card-v14 li { font-size: 9.6px; line-height: 1.34; }

.course-card img { height: auto; }
.course-card div { padding: 8px 9px; }
.course-card span { font-size: 9.8px; }

.care-row img { width: 220px; height: 100%; min-height: 150px; }
.care-row { grid-template-columns: 220px 1fr; }
.care-copy { display: flex; flex-direction: column; justify-content: center; padding: 11px 12px; }
.care-copy h3 { font-size: 15px; }
.care-copy p { font-size: 10.6px; line-height: 1.4; }
.care-bullets span { font-size: 9.3px; line-height: 1.3; }

/* Answer key is a reference page: use fewer columns and a much larger scan size. */
.page:has(.key-grid) .hdr h1 { font-size: 25px !important; }
.page:has(.key-grid) .hdr .sub { font-size: 12px !important; }
.page:has(.key-grid) .key-grid { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; margin-top: 13px; }
.page:has(.key-grid) .key-item { display: flex; min-height: 61px; flex-direction: column; justify-content: center; padding: 7px; border-radius: 10px; }
.page:has(.key-grid) .key-item span { font-size: 12.5px; }
.page:has(.key-grid) .key-item b { margin-top: 2px; font-size: 24px; line-height: 1; }
.page:has(.key-grid) .key-note { margin-top: 15px; padding: 14px; font-size: 13.2px; line-height: 1.5; }

/* Make the hit-rate claim explicit, quantified and auditable. */
.hit-summary-v15 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.hit-summary-v15 > div { padding: 11px 12px; border: 1px solid rgba(103,232,249,.32); border-radius: 13px; background: linear-gradient(145deg,rgba(8,145,178,.17),rgba(99,102,241,.12)); }
.hit-summary-v15 b { display: block; color: #fde047; font-size: 23px; line-height: 1; }
.hit-summary-v15 span { display: block; margin-top: 5px; color: #e0f2fe; font-size: 10px; line-height: 1.3; font-weight: 900; }
.hit-audit-note { margin-top: -3px; padding: 7px 10px; border-left: 4px solid #67e8f9; border-radius: 0 9px 9px 0; background: rgba(8,47,73,.55); color: #cbd5e1; font-size: 9.5px; line-height: 1.3; font-weight: 850; }
.hit-audit-note b { color: #fff; }
.tolcmatch-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
.tolcmatch-grid > div { padding: 7px 8px; }
.tolcmatch-grid b { font-size: 10.2px; }
.tolcmatch-grid span { font-size: 9.3px; }

/* Q1-Q3: dedicate the first sheet to the exact official wording and move commentary to its own sheet. */
.page:not(.cover):not(.promo-page-v14) .reading-question-page .passage { font-size: 13.8px !important; line-height: 1.45 !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page .q-txt { font-size: 15.2px !important; line-height: 1.4 !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page .txt { font-size: 13.8px !important; line-height: 1.36 !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page .opts { gap: 4px !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page .opt { padding: 5px 7px !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page[data-q="2"] .passage { font-size: 15.6px !important; line-height: 1.5 !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page[data-q="2"] .q-txt { font-size: 16.4px !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page[data-q="2"] .txt { font-size: 14.8px !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page[data-q="3"] .passage { font-size: 16px !important; line-height: 1.5 !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page[data-q="3"] .q-txt { font-size: 16.6px !important; }
.page:not(.cover):not(.promo-page-v14) .reading-question-page[data-q="3"] .txt { font-size: 15.2px !important; }
.official-text-confirmation { margin-top: 7px; padding: 9px 11px; border: 1px solid #86efac; border-left: 5px solid #16a34a; border-radius: 9px; background: linear-gradient(90deg,#f0fdf4,#ecfeff); }
.official-text-confirmation b { display: block; color: #166534; font-size: 9.5px; font-weight: 1000; letter-spacing: .1em; }
.official-text-confirmation span { display: block; margin-top: 3px; color: #14532d; font-size: 11.2px; line-height: 1.35; font-weight: 850; }
.reading-explanation-sheet .continuation-lead { margin-bottom: 12px; padding: 12px 14px; border-left: 5px solid var(--accent); border-radius: 0 10px 10px 0; background: var(--bg); color: #1f2937; font-size: 13.2px; line-height: 1.45; font-weight: 850; }
.page.reading-explanation-sheet .reading-explanation-page .explain-body,
.page.reading-explanation-sheet .reading-explanation-page .sol p { font-size: 14px !important; line-height: 1.48 !important; }
.reading-explanation-sheet .explanation-heading { font-size: 12.5px !important; }

/* V16 — compact the visual chrome, enlarge the sales copy and add a large-type
   report section before the worked solutions. */
.page.cover { padding: 7.5mm !important; }
.cover-refresh { gap: 8px; }
.cover-hero-grid { min-height: 326px; gap: 14px; }
.cover-art { min-height: 326px; }
.cover-metric { min-height: 75px; padding: 9px; }
.cover-metric b { font-size: 26px; }
.cover-metric span { font-size: 9.8px; }
.cover-proof-card,
.cover-access-panel { padding: 11px 13px; }
.cover-proof-card h2 { margin: 5px 0 7px; font-size: 20px; }
.cover-feature-grid { gap: 6px; }
.cover-feature-grid > div { min-height: 0; padding: 8px 9px; justify-content: flex-start; }
.cover-feature-grid b { font-size: 17px; }
.cover-feature-grid span { font-size: 9.2px; }
.cover-feature-grid p { margin-top: 5px; font-size: 11px; line-height: 1.28; }
.cover-study-loop { margin-top: 6px; padding: 8px 10px; }
.cover-study-loop span { font-size: 8.6px; }
.cover-study-loop b { font-size: 14px; }
.cover-study-loop p { font-size: 10.5px; }
.cover-access-panel b { margin-top: 7px; font-size: 22px; }
.cover-access-panel p { margin: 6px 0; font-size: 12.3px; line-height: 1.35; }
.cover-access-list { gap: 5px; margin-top: 2px; }
.cover-access-list > div { padding: 7px 9px; }
.cover-access-list strong { font-size: 8.8px; }
.cover-access-list span { font-size: 10.8px; }
.cover-access-note { margin-top: 6px; padding: 8px 10px; }
.cover-access-note span { font-size: 8.4px; }
.cover-access-note b { font-size: 15.5px; }
.cover-access-panel a { padding: 9px 11px; font-size: 11.8px; }

.promo-page-v14 { padding: 5mm !important; }
.promo-shell { gap: 7px; }
.promo-head { min-height: 0; }
.promo-brand-lockup { margin-bottom: 5px; }
.promo-head h1 { font-size: 31px; }
.promo-head p { font-size: 13.1px; line-height: 1.36; }
.promo-section { padding: 8px 9px; }
.promo-title-row { margin-bottom: 5px; }
.promo-title-row h2 { font-size: 16px; }
.promo-title-row span { font-size: 10.5px; }
.promo-hero-image { grid-template-columns: 255px 1fr; gap: 9px; padding: 9px; }
.promo-hero-image h2 { font-size: 21px; }
.promo-hero-image p { font-size: 12.6px; line-height: 1.36; }
.promo-hero-points span { font-size: 10.4px; }
.promo-metrics > div { padding: 8px 9px; }
.promo-metrics span { font-size: 10px; }
.image-card-body { padding: 6px 7px; }
.image-card b,
.mock-card b,
.course-card b { font-size: 12.2px; }
.image-card span,
.mock-card span,
.course-card p { font-size: 10.6px; line-height: 1.28; }
.proof-grid > div { padding: 7px 8px; }
.proof-grid b { font-size: 12.3px; }
.proof-grid span { font-size: 10.8px; line-height: 1.28; }
.plan-card-v14 { padding: 7px; }
.plan-card-v14 > div { padding: 6px 7px; }
.plan-card-v14 b { font-size: 14px; }
.plan-card-v14 .price { font-size: 11.8px; }
.plan-card-v14 li { font-size: 10.7px; line-height: 1.28; }
.course-card div { padding: 6px 7px; }
.course-card span { font-size: 10.6px; }
.care-row { grid-template-columns: 205px 1fr; gap: 7px; }
.care-row img { width: 205px; min-height: 140px; }
.care-copy { padding: 8px 10px; }
.care-copy h3 { font-size: 17px; }
.care-copy p { font-size: 11.6px; line-height: 1.34; }
.care-bullets { gap: 4px; margin-top: 5px; }
.care-bullets span { padding: 4px 6px; font-size: 10.2px; line-height: 1.25; }
.promo-cta { min-height: 54px; padding: 8px 11px; }
.promo-cta b { font-size: 14px; }
.promo-cta span { font-size: 11px; }
.promo-cta a { padding: 9px 13px; font-size: 11.5px; }

.analysis-page-v16 {
  position: relative;
  isolation: isolate;
  padding: 8mm !important;
  color: #10213a;
  background:
    radial-gradient(circle at 95% 0%, rgba(34,211,238,.14), transparent 31%),
    linear-gradient(155deg,#f8fafc 0%,#eef6ff 58%,#f5f3ff 100%) !important;
}
.analysis-page-v16::before {
  content: "" !important;
  position: absolute;
  inset: 0;
  z-index: -1;
  display: block !important;
  opacity: .4 !important;
  background-image: linear-gradient(rgba(15,23,42,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.035) 1px,transparent 1px) !important;
  background-size: 24px 24px !important;
}
.analysis-shell-v16 { height: 100%; display: flex; flex-direction: column; gap: 10px; }
.analysis-head-v16 { padding: 12px 15px 14px; border-radius: 18px; background: linear-gradient(120deg,#07182f,#123262 62%,#39216f); color: #fff; box-shadow: 0 10px 26px rgba(15,23,42,.16); }
.analysis-brand-v16 { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.analysis-brand-v16 img { width: 42px; height: 42px; object-fit: contain; }
.analysis-brand-v16 b { display: block; font-size: 14px; font-weight: 1000; letter-spacing: .055em; }
.analysis-brand-v16 span { display: block; margin-top: 3px; color: #a5f3fc; font-size: 7.6px; font-weight: 950; letter-spacing: .12em; }
.analysis-kicker-v16 { color: #67e8f9; font-size: 9.8px; font-weight: 1000; letter-spacing: .14em; }
.analysis-head-v16 h1 { margin: 4px 0 0; font-size: 29px; line-height: 1.06; font-weight: 1000; letter-spacing: -.025em; }
.analysis-head-v16 p { margin: 6px 0 0; max-width: 680px; color: #dbeafe; font-size: 12.2px; line-height: 1.38; font-weight: 820; }
.analysis-foot-v16 { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 11px; border-top: 1px solid #cbd5e1; color: #64748b; font-size: 8.7px; font-weight: 850; }
.analysis-foot-v16 b { color: #334155; font-size: 9px; letter-spacing: .09em; }

.border-bands-v16 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.border-bands-v16 > div { padding: 10px 11px; border: 1px solid #bae6fd; border-radius: 13px; background: linear-gradient(135deg,#ecfeff,#eff6ff); }
.border-bands-v16 span { display: block; color: #0369a1; font-size: 8.2px; font-weight: 1000; letter-spacing: .08em; }
.border-bands-v16 b { display: block; margin-top: 3px; color: #0f172a; font-size: 21px; line-height: 1; }
.border-bands-v16 small { display: block; margin-top: 4px; color: #475569; font-size: 9px; font-weight: 850; }
.cutoff-list-v16 { display: grid; gap: 7px; min-height: 0; flex: 1; }
.cutoff-row-v16 { display: grid; grid-template-columns: minmax(205px,1.45fr) .55fr .95fr .62fr 1fr; gap: 7px; align-items: stretch; padding: 8px 9px; border: 1px solid #cbd5e1; border-left: 5px solid #2563eb; border-radius: 13px; background: rgba(255,255,255,.9); box-shadow: 0 4px 12px rgba(15,23,42,.045); }
.cutoff-school-v16 { display: flex; min-width: 0; flex-direction: column; justify-content: center; }
.cutoff-school-v16 span { color: #7c3aed; font-size: 8px; font-weight: 1000; letter-spacing: .1em; }
.cutoff-school-v16 b { margin-top: 2px; color: #0f172a; font-size: 13.1px; line-height: 1.15; }
.cutoff-school-v16 small { margin-top: 2px; color: #64748b; font-size: 9.4px; font-weight: 800; }
.cutoff-old-v16,
.cutoff-forecast-v16 { display: flex; flex-direction: column; justify-content: center; padding: 6px 7px; border-radius: 9px; background: #f1f5f9; }
.cutoff-forecast-v16 { background: #ecfdf5; border: 1px solid #a7f3d0; }
.cutoff-forecast-v16.non-eu { background: #fff7ed; border-color: #fed7aa; }
.cutoff-old-v16 span,
.cutoff-forecast-v16 span { color: #64748b; font-size: 7.7px; line-height: 1.15; font-weight: 1000; letter-spacing: .035em; }
.cutoff-old-v16 b { margin-top: 4px; color: #334155; font-size: 14px; }
.cutoff-forecast-v16 b { margin-top: 4px; color: #047857; font-size: 15px; white-space: nowrap; }
.cutoff-forecast-v16.non-eu b { color: #c2410c; }

.audit-legend-v16 { display: flex; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid #cbd5e1; border-radius: 12px; background: rgba(255,255,255,.78); }
.audit-legend-v16 > span { margin-right: auto; color: #475569; font-size: 8.5px; font-weight: 1000; letter-spacing: .12em; }
.audit-legend-v16 b,
.audit-level-v16 { padding: 5px 8px; border-radius: 999px; font-size: 8.5px; line-height: 1; font-weight: 1000; white-space: nowrap; }
.audit-list-v16 { display: grid; gap: 6px; min-height: 0; flex: 1; }
.audit-row-v16 { display: grid; grid-template-columns: 49px minmax(0,1fr) 92px; gap: 9px; align-items: center; padding: 8px 10px; border: 1px solid #d7e1ed; border-radius: 13px; background: rgba(255,255,255,.92); box-shadow: 0 3px 10px rgba(15,23,42,.04); }
.audit-q-v16 { display: flex; align-items: center; justify-content: center; width: 45px; height: 45px; border-radius: 12px; background: linear-gradient(135deg,#0f3f76,#5b21b6); color: #fff; font-size: 17px; font-weight: 1000; }
.audit-copy-v16 { min-width: 0; }
.audit-copy-v16 > div { display: flex; align-items: baseline; gap: 8px; }
.audit-copy-v16 span { color: #0891b2; font-size: 9px; font-weight: 1000; letter-spacing: .06em; text-transform: uppercase; }
.audit-copy-v16 b { color: #0f172a; font-size: 13px; line-height: 1.15; }
.audit-copy-v16 p { margin: 3px 0 0; color: #334155; font-size: 11.2px; line-height: 1.28; font-weight: 760; }
.audit-level-v16 { justify-self: end; text-align: center; }
.audit-legend-v16 .easy,
.audit-level-v16.easy { background: #dcfce7; color: #166534; }
.audit-legend-v16 .slightly-easy,
.audit-level-v16.slightly-easy { background: #cffafe; color: #155e75; }
.audit-legend-v16 .standard,
.audit-level-v16.standard { background: #fef3c7; color: #92400e; }
.audit-legend-v16 .slightly-difficult,
.audit-level-v16.slightly-difficult { background: #fee2e2; color: #991b1b; }

/* V17 — dense A4 tables for the score forecast and 60-question audit */
.analysis-source-v17 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 11px;
  border: 1px solid #93c5fd;
  border-radius: 10px;
  background: linear-gradient(90deg,#eff6ff,#ecfeff);
  color: #1e3a8a;
  font-size: 11.5px;
  font-weight: 900;
}
.analysis-source-v17 b { font-size: 12.5px; font-weight: 1000; }
.analysis-source-v17 span { color: #475569; }

.cutoff-table-v17,
.audit-table-v17 {
  width: 100%;
  flex: 1 1 auto;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  overflow: hidden;
  border: 1.5px solid #94a3b8;
  border-radius: 12px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 5px 16px rgba(15,23,42,.07);
}
.cutoff-table-v17 col.school { width: 35%; }
.cutoff-table-v17 col:not(.school) { width: 16.25%; }
.cutoff-table-v17 th,
.audit-table-v17 th {
  padding: 9px 7px;
  border-right: 1px solid #475569;
  background: linear-gradient(135deg,#102a52,#34206f);
  color: #fff;
  font-size: 11.5px;
  line-height: 1.2;
  font-weight: 1000;
  letter-spacing: .025em;
  text-align: center;
}
.cutoff-table-v17 th:first-child,
.audit-table-v17 th:nth-child(3) { text-align: left; }
.cutoff-table-v17 th:last-child,
.audit-table-v17 th:last-child { border-right: 0; }
.cutoff-table-v17 td {
  padding: 9px 8px;
  border-top: 1px solid #cbd5e1;
  border-right: 1px solid #d7e1ed;
  color: #1e293b;
  font-size: 13.2px;
  line-height: 1.2;
  font-weight: 950;
  text-align: center;
  vertical-align: middle;
}
.cutoff-table-v17 td:last-child { border-right: 0; }
.cutoff-table-v17 tbody tr:nth-child(even) td { background: #f8fafc; }
.cutoff-school-v17 { text-align: left !important; }
.cutoff-school-v17 span {
  display: inline-block;
  margin-bottom: 3px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #ede9fe;
  color: #6d28d9;
  font-size: 9.2px;
  font-weight: 1000;
  letter-spacing: .07em;
}
.cutoff-school-v17 b { display: block; color: #0f172a; font-size: 14px; line-height: 1.14; }
.cutoff-school-v17 small { display: block; margin-top: 3px; color: #64748b; font-size: 10.5px; font-weight: 850; }
.cutoff-forecast-v17 { background: #ecfdf5 !important; color: #047857 !important; font-size: 14px !important; }
.cutoff-forecast-v17.non-eu { background: #fff7ed !important; color: #c2410c !important; }

.audit-table-v17 col.question { width: 8%; }
.audit-table-v17 col.subject { width: 15%; }
.audit-table-v17 col.evaluation { width: 61%; }
.audit-table-v17 col.difficulty { width: 16%; }
.audit-table-v17 td {
  padding: 7px 8px;
  border-top: 1px solid #cbd5e1;
  border-right: 1px solid #d7e1ed;
  vertical-align: middle;
}
.audit-table-v17 td:last-child { border-right: 0; text-align: center; }
.audit-table-v17 tbody tr:nth-child(even) td { background: rgba(239,246,255,.72); }
.audit-q-v17 { color: #312e81; font-size: 15.5px; font-weight: 1000; text-align: center; }
.audit-subject-v17 { color: #0e7490; font-size: 11.8px; line-height: 1.16; font-weight: 1000; text-transform: uppercase; }
.audit-evaluation-v17 b { display: block; color: #0f172a; font-size: 14px; line-height: 1.14; }
.audit-evaluation-v17 p { margin: 3px 0 0; color: #334155; font-size: 12.2px; line-height: 1.3; font-weight: 780; }
.audit-table-v17 .audit-level-v16 { display: inline-block; font-size: 9.5px; line-height: 1.12; white-space: normal; }

@media print {
  .analysis-page-v16 { break-after: page; page-break-after: always; }
  .cutoff-row-v16, .audit-row-v16,
  .cutoff-table-v17 tr, .audit-table-v17 tr { break-inside: avoid; }
}
