/* Comparison pages (/compare, /compare/:slug). Navy hero like the homepage, then a
   single reading column. Doodles are Streamline Freehand (CC BY 4.0). */
.cmp {
  --cmp-navy: #0b1424;
  --cmp-ink: #0f172a;
  --cmp-text: #1e293b;
  --cmp-muted: #5b6b80;
  --cmp-line: #e3e8ef;
  --cmp-soft: #f6f7fb;
  --cmp-brand: #5b5bf0;
  --cmp-brand-dark: #4646d6;
  --cmp-brand-soft: #eef0ff;
  --cmp-up: #16a34a;
  --cmp-down: #dc2626;
  background: #fff;
  color: var(--cmp-text);
}
.cmp h1, .cmp h2, .cmp h3, .cmp-stats strong, .cmp-cost b {
  font-family: "DM Sans", Inter, system-ui, sans-serif;
  letter-spacing: -0.02em;
  color: var(--cmp-ink);
}

/* Hero */
.cmp-hero {
  position: relative;
  overflow: hidden;
  padding: 64px 0 56px;
  background:
    radial-gradient(700px 360px at 92% -20%, rgba(91, 91, 240, 0.30), transparent 60%),
    radial-gradient(520px 260px at 0% 120%, rgba(34, 197, 94, 0.12), transparent 60%),
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px) 0 0 / 100% 44px,
    var(--cmp-navy);
  color: #fff;
}
.cmp-hero__inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.cmp-hero__copy { max-width: 760px; }
.cmp-hero h1 { color: #fff; font-size: clamp(2rem, 4.2vw, 3.1rem); font-weight: 800; line-height: 1.08; margin: 0 0 18px; }
.cmp-hero__lead { color: #cbd5e1; font-size: clamp(1.05rem, 1.6vw, 1.22rem); line-height: 1.55; margin: 0 0 18px; max-width: 680px; }
.cmp-crumbs, .cmp-eyebrow { font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #a5b4fc; margin: 0 0 14px; }
.cmp-crumbs a { color: #a5b4fc; text-decoration: none; }
.cmp-crumbs a:hover { color: #fff; }
.cmp-byline { color: #94a3b8; font-size: .9rem; margin: 0; }
.cmp-hero__doodle { flex: 0 0 auto; width: 120px; height: 120px; transform: rotate(6deg); opacity: .95; }
.cmp-hero--hub .cmp-hero__doodle { width: 132px; height: 132px; }

/* Reading column */
.cmp-body { max-width: 780px; padding-top: 40px; padding-bottom: 64px; }
.cmp-body--hub { max-width: 920px; }
.cmp-article { font-size: 1.07rem; line-height: 1.72; }
.cmp-article p { margin: 0 0 1.15em; }
.cmp-article h2 { font-size: clamp(1.45rem, 2.4vw, 1.75rem); font-weight: 800; margin: 2.2em 0 .7em; }
.cmp-article a { color: var(--cmp-brand-dark); }
.cmp-article code { background: var(--cmp-soft); border: 1px solid var(--cmp-line); border-radius: 5px; padding: 1px 5px; font-size: .9em; color: var(--cmp-ink); }
.cmp-section-title { font-size: 1.5rem; font-weight: 800; margin: 0 0 16px; }

/* Short answer */
.cmp-answer { display: flex; gap: 16px; align-items: flex-start; background: var(--cmp-brand-soft); border: 1px solid #dfe3ff; border-left: 4px solid var(--cmp-brand); border-radius: 12px; padding: 20px 22px; margin: 0 0 36px; }
.cmp-answer img { flex: 0 0 auto; width: 44px; height: 44px; }
.cmp-answer__label { margin: 0 0 4px; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--cmp-brand-dark); }
.cmp-answer__text { margin: 0; font-size: 1.04rem; line-height: 1.6; color: var(--cmp-ink); }

/* Stat row */
.cmp-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--cmp-line); border-radius: 12px; overflow: hidden; margin: 8px 0 26px; background: #fff; }
.cmp-stats--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cmp-stats div { padding: 16px 18px; border-left: 1px solid var(--cmp-line); }
.cmp-stats div:first-child { border-left: 0; }
.cmp-stats strong { display: block; font-size: 1.75rem; font-weight: 800; color: var(--cmp-brand-dark); line-height: 1.1; }
.cmp-stats span { display: block; margin-top: 4px; font-size: .88rem; line-height: 1.35; color: var(--cmp-muted); }

/* Outage study */
.cmp-study { margin: 10px 0 28px; padding: 22px; border: 1px solid var(--cmp-line); border-radius: 14px; background: var(--cmp-soft); }
.cmp-timeline { margin-bottom: 22px; }
.cmp-timeline__axis { position: relative; height: 16px; margin: 0 118px 4px 112px; font-size: .74rem; color: var(--cmp-muted); font-weight: 600; }
.cmp-timeline__axis span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.cmp-timeline__axis span:first-child { transform: none; }
.cmp-timeline__axis span:last-child { transform: translateX(-100%); }
.cmp-timeline__row { display: grid; grid-template-columns: 100px minmax(0, 1fr) 106px; align-items: center; gap: 12px; margin: 10px 0; }
.cmp-timeline__label { font-size: .86rem; font-weight: 700; color: var(--cmp-ink); }
.cmp-timeline__track { position: relative; height: 28px; border-radius: 8px; background: #fff; border: 1px solid var(--cmp-line); }
.cmp-timeline__outage { position: absolute; top: 3px; bottom: 3px; border-radius: 5px; background: repeating-linear-gradient(135deg, rgba(220, 38, 38, .22) 0 6px, rgba(220, 38, 38, .12) 6px 12px); border: 1px solid rgba(220, 38, 38, .45); }
.cmp-tick { position: absolute; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: #fff; border: 2px solid #94a3b8; }
.cmp-tick.is-hit { background: var(--cmp-down); border-color: var(--cmp-down); box-shadow: 0 0 0 3px rgba(220, 38, 38, .18); }
.cmp-timeline__result { font-size: .82rem; font-weight: 800; }
.cmp-timeline__result.is-seen { color: var(--cmp-up); }
.cmp-timeline__result.is-missed { color: var(--cmp-down); }
.cmp-study__head { margin: 0 0 10px; font-weight: 700; font-size: .92rem; color: var(--cmp-ink); }
.cmp-bar { display: grid; grid-template-columns: 100px minmax(0, 1fr) 106px; gap: 12px; align-items: center; margin: 8px 0; font-size: .86rem; }
.cmp-bar span { font-weight: 700; color: var(--cmp-ink); }
.cmp-bar i { position: relative; height: 12px; border-radius: 6px; background: #e2e6f0; overflow: hidden; }
.cmp-bar i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w); border-radius: 6px; background: linear-gradient(90deg, #f87171, var(--cmp-down)); }
.cmp-bar b { font-weight: 800; color: var(--cmp-ink); }
.cmp-study figcaption { margin-top: 14px; font-size: .8rem; line-height: 1.5; color: var(--cmp-muted); }

/* Note */
.cmp-note { margin: 0 0 26px; padding: 14px 18px; border-radius: 10px; background: #fffbeb; border: 1px solid #fde68a; font-size: .94rem; line-height: 1.6; color: #422006; }

/* Comparison table */
.cmp-table { border: 1px solid var(--cmp-line); border-radius: 12px; overflow: hidden; margin: 6px 0 8px; font-size: .94rem; line-height: 1.45; }
.cmp-table__row { display: grid; grid-template-columns: 1fr 1.35fr 1.35fr; border-top: 1px solid var(--cmp-line); }
.cmp-table__row:first-child { border-top: 0; }
.cmp-table__row > span { padding: 12px 14px; }
.cmp-table__row--head { background: var(--cmp-ink); }
.cmp-table__row--head span { color: #fff; font-family: "DM Sans", Inter, sans-serif; font-weight: 800; }
.cmp-table__row--head .is-us { background: var(--cmp-brand); }
.cmp-table__label { font-weight: 700; color: var(--cmp-ink); background: var(--cmp-soft); }
.cmp-table__row > .is-us { background: #f5f6ff; }
.cmp-table__row--head > .is-us { background: var(--cmp-brand); color: #fff; }
.cmp-table__note { margin: 0 0 1.2em; font-size: .8rem; color: var(--cmp-muted); }

/* Definitions, lists, code */
.cmp-defs { margin: 6px 0 24px; border: 1px solid var(--cmp-line); border-radius: 12px; overflow: hidden; }
.cmp-defs div { padding: 14px 18px; border-top: 1px solid var(--cmp-line); }
.cmp-defs div:first-child { border-top: 0; }
.cmp-defs dt { font-family: "DM Sans", Inter, sans-serif; font-weight: 800; color: var(--cmp-ink); margin-bottom: 3px; }
.cmp-defs dd { margin: 0; font-size: .98rem; line-height: 1.6; }
.cmp-list { list-style: none; padding: 0; margin: 4px 0 24px; }
.cmp-list li { position: relative; padding-left: 26px; margin: 0 0 12px; }
.cmp-list li::before { content: ""; position: absolute; left: 4px; top: .62em; width: 9px; height: 9px; border-radius: 3px; background: var(--cmp-brand); transform: rotate(45deg); }
.cmp-list--yes li::before { content: "✓"; background: none; transform: none; top: 0; left: 0; width: auto; height: auto; color: var(--cmp-up); font-weight: 800; }
.cmp-list--no li::before { content: "–"; background: none; transform: none; top: 0; left: 2px; width: auto; height: auto; color: var(--cmp-muted); font-weight: 800; }
.cmp-code { margin: 6px 0 24px; padding: 16px 18px; border-radius: 12px; background: var(--cmp-navy); color: #e2e8f0; font-size: .86rem; line-height: 1.6; overflow-x: auto; }
.cmp-code code { background: none; border: 0; padding: 0; color: inherit; font-size: inherit; }

/* Cost comparison */
.cmp-cost { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 8px 0 24px; }
.cmp-cost__col { border: 1px solid var(--cmp-line); border-radius: 12px; padding: 18px; background: #fff; }
.cmp-cost__col.is-us { border-color: #c7cdfd; background: #f7f8ff; }
.cmp-cost__head { margin: 0 0 10px; font-family: "DM Sans", Inter, sans-serif; font-weight: 800; color: var(--cmp-ink); }
.cmp-cost ul { list-style: none; padding: 0; margin: 0 0 10px; }
.cmp-cost li, .cmp-cost__total { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px dashed var(--cmp-line); font-size: .92rem; line-height: 1.4; }
.cmp-cost b { font-weight: 800; white-space: nowrap; }
.cmp-cost__total { margin: 0; border-top: 2px solid var(--cmp-ink); font-weight: 700; color: var(--cmp-ink); }
.cmp-cost__total b { font-size: 1.3rem; color: var(--cmp-brand-dark); }
.cmp-cost__foot { margin: 8px 0 0 !important; font-size: .8rem; color: var(--cmp-muted); line-height: 1.45; }
.cmp-cost figcaption { grid-column: 1 / -1; font-size: .8rem; color: var(--cmp-muted); }

/* Call to action */
.cmp-cta { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 34px 0 10px; padding: 22px 24px; border: 2px solid var(--cmp-brand); border-radius: 14px; background: var(--cmp-navy); box-shadow: 0 0 0 4px var(--cmp-brand-soft); color: #cbd5e1; }
.cmp-cta p { margin: 0 !important; line-height: 1.5; }
.cmp-cta strong { color: #fff; }
.cmp-btn { flex: 0 0 auto; display: inline-block; padding: 12px 20px; border-radius: 10px; background: var(--cmp-brand); color: #fff !important; font-weight: 800; text-decoration: none; }
.cmp-btn:hover { background: var(--cmp-brand-dark); }

/* FAQ */
.cmp-faq { margin: 44px 0 0; }
.cmp-faq h2, .cmp-next h2 { font-size: 1.45rem; font-weight: 800; margin: 0 0 14px; }
.cmp-faq details { border: 1px solid var(--cmp-line); border-radius: 10px; padding: 0 18px; margin: 0 0 10px; background: #fff; }
.cmp-faq summary { cursor: pointer; padding: 14px 0; font-weight: 700; color: var(--cmp-ink); }
.cmp-faq details p { margin: 0 0 16px; line-height: 1.65; }

/* Link rows */
.cmp-next { margin: 40px 0 0; }
.cmp-rows { list-style: none; padding: 0; margin: 0; border: 1px solid var(--cmp-line); border-radius: 12px; overflow: hidden; }
.cmp-rows li { border-top: 1px solid var(--cmp-line); }
.cmp-rows li:first-child { border-top: 0; }
.cmp-rows a { display: flex; align-items: center; gap: 16px; padding: 16px 18px; text-decoration: none; color: inherit; background: #fff; transition: background .15s ease; }
.cmp-rows a:hover { background: var(--cmp-soft); }
.cmp-rows img { flex: 0 0 auto; width: 40px; height: 40px; }
.cmp-rows span { flex: 1 1 auto; min-width: 0; }
.cmp-rows b { display: block; font-family: "DM Sans", Inter, sans-serif; color: var(--cmp-ink); font-size: 1.04rem; line-height: 1.3; }
.cmp-rows small { display: block; margin-top: 3px; color: var(--cmp-muted); font-size: .9rem; line-height: 1.45; }
.cmp-rows em { display: block; font-style: normal; font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--cmp-brand-dark); margin-bottom: 2px; }
.cmp-rows .bi { flex: 0 0 auto; color: var(--cmp-brand); font-size: 1.2rem; }
.cmp-rows--hub a { padding: 20px 22px; }
.cmp-rows--hub img { width: 52px; height: 52px; }
.cmp-rows--hub b { font-size: 1.15rem; }

/* Hub sections */
.cmp-hub-study, .cmp-honest { margin-top: 48px; }
.cmp-hub-study > p { font-size: 1.04rem; line-height: 1.7; }
.cmp-honest__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cmp-honest__grid > div { border: 1px solid var(--cmp-line); border-radius: 12px; padding: 18px 20px; background: #fff; }
.cmp-honest h3 { font-size: 1.1rem; font-weight: 800; margin: 0 0 12px; }
.cmp-honest .cmp-list { margin: 0; }
.cmp-honest .cmp-list li { font-size: .96rem; line-height: 1.5; margin-bottom: 10px; }

/* What CheckHTTP does differently: one bordered panel, a row per point */
.cmp-why { margin: 0 0 22px; border: 1px solid var(--cmp-line); border-radius: 14px; overflow: hidden; background: #fff; }
.cmp-why__title { margin: 0; padding: 12px 20px; font-size: .78rem !important; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--cmp-brand-dark) !important; background: var(--cmp-soft); border-bottom: 1px solid var(--cmp-line); font-family: inherit !important; }
.cmp-why ul { list-style: none; padding: 0; margin: 0; }
.cmp-why li { display: flex; gap: 16px; align-items: flex-start; padding: 16px 20px; border-top: 1px solid var(--cmp-line); }
.cmp-why li:first-child { border-top: 0; }
.cmp-why img { flex: 0 0 auto; width: 44px; height: 44px; margin-top: 2px; }
.cmp-why b { display: block; font-family: "DM Sans", Inter, sans-serif; font-size: 1.06rem; color: var(--cmp-ink); line-height: 1.3; }
.cmp-why p { margin: 4px 0 0; font-size: .96rem; line-height: 1.55; color: var(--cmp-text); }

/* Runner network by plan */
.cmp-clouds { margin: 8px 0 26px; }
.cmp-clouds__grid { border: 1px solid var(--cmp-line); border-radius: 12px; overflow: hidden; font-size: .92rem; }
.cmp-clouds__row { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); border-top: 1px solid var(--cmp-line); }
.cmp-clouds__row:first-child { border-top: 0; }
.cmp-clouds__row > span { padding: 10px 14px; display: flex; align-items: center; }
.cmp-clouds__row > span:not(:first-child) { justify-content: center; border-left: 1px solid var(--cmp-line); }
.cmp-clouds__row > span:first-child { font-weight: 700; color: var(--cmp-ink); background: var(--cmp-soft); }
.cmp-clouds__row--head > span { background: var(--cmp-ink) !important; color: #fff !important; font-family: "DM Sans", Inter, sans-serif; font-weight: 800; }
.cmp-clouds__row .is-empty { color: #cbd5e1; }
.cmp-plan { display: inline-block; padding: 2px 9px; border-radius: 999px; font-style: normal; font-size: .76rem; font-weight: 800; letter-spacing: .02em; white-space: nowrap; }
.cmp-plan--free { background: #dcfce7; color: #166534; }
.cmp-plan--premium { background: var(--cmp-brand-soft); color: var(--cmp-brand-dark); }
.cmp-plan--professional { background: var(--cmp-ink); color: #fff; }
.cmp-clouds figcaption { margin-top: 10px; font-size: .84rem; line-height: 1.6; color: var(--cmp-muted); }
.cmp-clouds figcaption .cmp-plan { font-size: .7rem; padding: 1px 7px; }
.cmp-clouds figcaption code { font-size: .8rem; }

.cmp-sources { margin: 36px 0 0; font-size: .8rem; line-height: 1.6; color: var(--cmp-muted); }
.cmp-sources a { color: var(--cmp-muted); }

@media (max-width: 767.98px) {
  .cmp-hero { padding: 40px 0 36px; }
  .cmp-hero__doodle { position: absolute; top: 18px; right: 14px; width: 56px !important; height: 56px !important; opacity: .7; }
  .cmp-hero__copy { padding-right: 52px; }
  .cmp-body { padding-top: 26px; }
  .cmp-article { font-size: 1.02rem; }
  .cmp-stats { grid-template-columns: 1fr 1fr; }
  .cmp-stats div:nth-child(3) { border-left: 0; }
  .cmp-stats div:nth-child(n+3) { border-top: 1px solid var(--cmp-line); }
  .cmp-stats strong { font-size: 1.45rem; }
  .cmp-study { padding: 16px 14px; }
  .cmp-timeline__axis { margin: 0 0 4px; }
  .cmp-timeline__row, .cmp-bar { grid-template-columns: 1fr auto; gap: 6px 10px; }
  .cmp-timeline__track, .cmp-bar i { grid-column: 1 / -1; grid-row: 2; }
  .cmp-table__row--head { display: none; }
  .cmp-table__row { grid-template-columns: 1fr; }
  .cmp-table__row > span { padding: 8px 14px; }
  .cmp-table__label { padding-top: 12px !important; }
  .cmp-table__row > span[data-col]::before { content: attr(data-col); display: block; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--cmp-muted); }
  .cmp-table__row > span.is-us[data-col]::before { color: var(--cmp-brand-dark); }
  .cmp-cost, .cmp-honest__grid { grid-template-columns: 1fr; }
  .cmp-cta { flex-direction: column; align-items: flex-start; }
  .cmp-why li { padding: 14px 16px; gap: 12px; }
  .cmp-why img { width: 36px; height: 36px; }
  .cmp-clouds__grid { font-size: .84rem; }
  .cmp-clouds__row { grid-template-columns: 1.25fr repeat(3, 1fr); }
  .cmp-clouds__row > span { padding: 9px 8px; }
  .cmp-plan { padding: 2px 7px; font-size: .7rem; }
}
