/*
  Styles for the public pricing page (/pricing, /pricing/en), on top of
  /legal.css, which already gives the palette, masthead, type and footer.
  Linked as an absolute path so it resolves from both depths. Light-only,
  like legal.css — this page is read once, and the marketing landing's theme
  toggle does not reach here.
*/

/* The page is wider than a legal document: four cards need the room. */
.wrap--wide { max-width: 1020px; }

/* ── Plan grid ───────────────────────────────────────────────────── */
.plans {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
  margin: 30px 0 40px;
  align-items: stretch;
}

.plan {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px 22px 22px;
}

/* One tier carries the badge; it also carries the weight. */
.plan--featured {
  border-color: var(--olive);
  box-shadow: 0 14px 34px -22px rgba(110, 114, 53, 0.75);
}
.plan__badge {
  position: absolute;
  top: -11px;
  left: 22px;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--olive-deep);
  color: var(--on-forest);
  border-radius: 999px;
  padding: 4px 11px;
}

/* legal.css sets h2 as a flex row with a section number; inside a card it is
   just the plan's name. */
.plan__name {
  display: block;
  font-size: 20px;
  margin: 0 0 4px;
  padding-top: 0;
}
.plan__blurb {
  color: var(--ink-soft);
  font-size: 14.5px;
  margin: 0 0 16px;
  min-height: 42px;
}

.plan__price {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin: 0 0 4px;
}
.plan__price b {
  font-size: 34px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--ink);
}
.plan__price span {
  font-family: "JetBrains Mono", monospace;
  font-size: 13px;
  color: var(--ink-mute);
}
.plan__alt {
  font-family: "JetBrains Mono", monospace;
  font-size: 12.5px;
  color: var(--olive-deep);
  margin: 0 0 18px;
  min-height: 34px;
}

.plan__feats { margin: 0 0 20px; }
.plan__feats li {
  font-size: 14.5px;
  line-height: 1.5;
  margin-bottom: 8px;
  color: var(--ink-soft);
}
.plan__feats li::before { top: 8px; width: 6px; height: 6px; }

/* Pushes every card's button to the same baseline whatever the list height. */
.plan__cta {
  margin-top: auto;
  display: block;
  text-align: center;
  padding: 12px 18px;
  border-radius: 999px;
  background: var(--olive-deep);
  color: var(--on-forest) !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 15px;
}
.plan__cta:hover { background: var(--forest); }
.plan__cta--quiet {
  background: transparent;
  color: var(--olive-deep) !important;
  border: 1px solid var(--line);
}
.plan__cta--quiet:hover { background: var(--surface-alt); color: var(--forest) !important; }

/* ── Feature columns under the grid ──────────────────────────────── */
.cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 8px 34px;
  margin: 8px 0 0;
}
.cols h3 { margin-top: 6px; }

.note {
  font-size: 14.5px;
  color: var(--ink-mute);
  margin: 18px 0 0;
}

@media (max-width: 560px) {
  .plan__blurb, .plan__alt { min-height: 0; }
}

/* The custom tier prices in words, not digits — it must not be set at the
   34px display size or it wraps out of a narrow card. */
.plan__price--text b { font-size: 22px; letter-spacing: -0.01em; }
