/* ================================================================
   The pricing block
   ================================================================
   Four rows in the order the question gets asked: can I start free, what
   does one person pay, what does a team pay, is there an enterprise
   contract. It is drawn in two places — the comparison sheet on the home
   page, which lays it out as rows of a table, and the 1,278 generated
   comparison pages, which lay it out as a grid — so the components live
   here and each page brings its own wrapper.

   Self-contained on purpose. It renders on the home page, which has its own
   variables, and on the generated pages, which have site.css and no --rule:
   a component that reads whatever the host happens to define is a component
   that looks different depending on where it lands.
   ================================================================ */
.cp-block,.cmp-table{
  --cp-line:#272141; --cp-muted:#9A9FB8; --cp-text:#F2F3FA;
  --cp-brand:#A98BFF; --cp-free:#35D39A; --cp-paid:#F2B45A;
}

/* ----------------------------------------------------------------
   The pricing block in the comparison sheet.

   It used to be two rows: yes/no on a free tier, then the whole plan ladder
   as a bulleted list of published sentences. Side by side that is two walls
   of prose, and the question people open this to answer — what would I pay —
   is somewhere inside them.

   Four rows now, in the order the question is actually asked: can I start
   free, what does one person pay, what does a team pay, and is there an
   enterprise contract. Every figure is the month-to-month one with the annual
   rate beneath it, the same way round as the cards, so nothing on the site
   quotes a term the reader has to go looking for.
   ---------------------------------------------------------------- */
.cp-grp .cp-ico.brand{width:30px;height:30px}
.cp-grp .cp-ico.brand{color:#A98BFF;background:rgba(124,92,255,.18)}

.cp-line{display:flex;gap:11px;align-items:flex-start;text-align:left}
.cp-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.06);color:#9A9FB8}
.cp-ico.ok{color:#35D39A;background:rgba(53,211,154,.13)}
.cp-ico.no{color:#F2B45A;background:rgba(242,180,90,.13)}
.cp-body{min-width:0;display:flex;flex-direction:column;gap:2px}
.cp-head{font-size:14.5px;font-weight:650;line-height:1.35}
.cp-sub{font-size:12.5px;line-height:1.45;color:var(--cp-muted);font-weight:400}
.cp-none{font-size:13px;color:var(--cp-muted)}
.cp-per{font-weight:500;color:var(--cp-muted);font-size:13px}
.cp-from{font-weight:650;font-size:13.5px}

/* The individual tiers, one box each, side by side and wrapping. */
.cp-plans{display:flex;flex-wrap:wrap;gap:10px}
.cp-plan{flex:1 1 120px;min-width:0;display:flex;flex-direction:column;gap:3px;
  padding:12px 14px 13px;border:1px solid var(--cp-line);border-radius:12px}
.cp-plan-n{font-size:12.5px;font-weight:600;color:var(--cp-muted)}
.cp-plan-p{font-size:13px;line-height:1.25}
.cp-plan-p b{font-size:21px;font-weight:700;letter-spacing:-.02em}

/* Two styles again, and this time they mean something.

   They were blue and rust once, which read as a code for something and was
   not one: the hues matched nothing else on the page. So they were made one
   violet — which lost a split that a comparison does have. Every comparison
   gives each side an accent, hashed off the product name so a tool keeps
   the same colour across the page, and the generator now hands that accent
   to the button. Side A's button is the colour side A is everywhere else on
   that page, side B's is side B's.

   The accent arrives as a custom property that site.css sets on the element
   (.ac-lime and friends), so this reads it rather than redefining it: six
   values in one place, and a button whose colour cannot drift from the row
   above it. The fallback is the violet, for the home page's panel, which has
   no accents to hand out. */
.cp-go{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  min-height:42px;padding:0 16px;border-radius:11px;text-decoration:none;
  font-size:14px;font-weight:650;border:1px solid var(--cp-line)}
/* Named through both wrappers rather than as .cp-go alone: site.css carries
   `.s-page a{color:inherit}`, which is one class and one element to this
   rule's one class, so a bare .cp-go loses the colour and the button comes
   out page-text white. Two classes beat it in either context. */
.cp-block .cp-go,.cmp-table .cp-go{
  background:var(--ac-bg,rgba(124,92,255,.13));
  border-color:var(--ac-line,rgba(124,92,255,.34));
  color:var(--ac-ink,#C4B5FD);
}
.cp-block .cp-go:hover,.cmp-table .cp-go:hover{
  border-color:var(--ac-ink,#7C5CFF);filter:brightness(1.15);
}

/* The home page's panel, where there are no accents: a tonal split rather
   than a second hue. Green already means a free plan here and amber a paid
   one, and the lime belongs to the one button on the panel that leaves it,
   so a third and fourth hue would each collide with something that already
   means something. */
.cmp-table .cp-go.a{color:#A897FF}
.cmp-table .cp-go.b{color:#C4B5FD}

@media(max-width:520px){
  .cp-plans{flex-direction:column}
  .cp-plan{flex:1 1 auto}
  .cp-plan-p b{font-size:19px}
}

/* ----------------------------------------------------------------
   The standalone block, for pages with no comparison table to hang rows on.

   Three columns: what is being asked, and the two answers. At phone width a
   three-column grid of prices is unreadable, so each row becomes the question
   followed by the two answers stacked, each captioned with whose it is.
   ---------------------------------------------------------------- */
.cp-block{border:1px solid var(--cp-line);border-radius:16px;overflow:hidden;
  background:linear-gradient(180deg,#151230,#0F0C22);color:var(--cp-text)}
.cp-block-head{padding:16px 18px;border-bottom:1px solid var(--cp-line)}
.cp-block-head .cp-line{align-items:center}
.cp-block-head b{font-size:15px;font-weight:700;display:block}
.cp-block .cp-ico.brand{width:30px;height:30px;color:var(--cp-brand);
  background:rgba(124,92,255,.18)}

.cp-row{display:grid;grid-template-columns:190px 1fr 1fr;align-items:stretch}
.cp-row+.cp-row,.cp-heads+.cp-row{border-top:1px solid var(--cp-line)}
.cp-lab{padding:16px 18px;font-size:13.5px;font-weight:650;line-height:1.35;
  color:var(--cp-text);background:rgba(255,255,255,.02)}
.cp-cell{padding:16px 18px;border-left:1px solid var(--cp-line);min-width:0}
.cp-who{display:none;font-size:11.5px;font-weight:650;letter-spacing:.04em;
  text-transform:uppercase;color:var(--cp-muted);margin-bottom:7px}

.cp-heads{display:grid;grid-template-columns:190px 1fr 1fr;
  border-bottom:1px solid var(--cp-line)}
.cp-heads .cp-cell{display:flex;align-items:center;gap:11px}
.cp-heads .cp-logo{width:36px;height:36px;flex:none;border-radius:9px;background:#fff;
  display:grid;place-items:center;overflow:hidden;position:relative}
.cp-heads .cp-logo img{position:absolute;inset:5px;width:26px;height:26px;object-fit:contain}
.cp-heads .cp-n{font-size:16px;font-weight:700;display:block;line-height:1.2}
.cp-heads .cp-n a{color:inherit;text-decoration:none}
.cp-heads .cp-n a:hover{text-decoration:underline;text-underline-offset:3px}
.cp-heads .cp-c{font-size:12.5px;color:var(--cp-muted)}

@media(max-width:760px){
  .cp-row,.cp-heads{grid-template-columns:1fr}
  .cp-lab{padding-bottom:0;background:none}
  .cp-cell{border-left:0;padding-top:12px}
  .cp-row .cp-cell+.cp-cell{border-top:1px dashed var(--cp-line)}
  .cp-who{display:block}
  .cp-heads{gap:0}
  .cp-heads .cp-lab{display:none}
  .cp-heads .cp-cell+.cp-cell{border-top:1px solid var(--cp-line)}
}
