/* Euphony inner pages. Loads after /styles.css and reuses its tokens
   (--ink, --panel, --serif, --radius-*, .tag, .btn, .h2, .num, .steps, .tbc).
   Do not redefine tokens here. */

/* ---------- nav state ---------- */
.nav__links a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px; }
.nav__links a, .nav__cta a { white-space: nowrap; }
@media (max-width: 1280px) { .nav { gap: 16px; } .nav__links { gap: 18px; } .nav__cta { gap: 18px; } }

/* ---------- breadcrumbs ---------- */
.crumbs { padding-top: 8px; font-size: 14px; color: var(--muted); }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; }
.crumbs li:not(:last-child)::after { content: "/"; margin-left: 6px; color: var(--line); }
.crumbs a { text-decoration: none; }
.crumbs a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.crumbs [aria-current="page"] { color: var(--ink-soft); }

/* ---------- page hero ---------- */
.page-hero { padding-block: 40px 56px; }
.page-hero:not(.page-hero--split) > * { max-width: 880px; }
.page-hero--split { max-width: 1200px; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: center; }
.page-hero .display { font-size: clamp(42px, 5.4vw, 72px); margin: 18px 0 22px; }
.page-hero .lede { max-width: 34em; }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.page-hero__visual { position: relative; min-height: 340px; display: grid; place-items: center; background: var(--panel); border-radius: var(--radius-xl); padding: 40px 24px; }

/* "Last updated 26 October 2026" */
.updated { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; font-size: 14px; color: var(--muted); }
.updated::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--mint); }

/* answer-first summary, directly under the hero */
.answer {
  background: var(--panel); border-radius: var(--radius-lg); padding: 28px 32px;
  font-size: 19px; line-height: 1.55; color: var(--ink); max-width: 46em;
}
.answer > :first-child { margin-top: 0; }
.answer strong { font-weight: 600; }

/* quotable short lines: Best for / From / Setup takes */
.quotables { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; list-style: none; padding: 0; margin: 24px 0 0; max-width: 60em; }
.quotables li { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 16px 18px; font-size: 15.5px; color: var(--ink-soft); }
.quotables b { display: block; font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }

/* ---------- article layout ---------- */
.article { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 72px; padding-block: 24px 96px; align-items: start; }
.article--single { grid-template-columns: minmax(0, 1fr); }
.article__aside { position: sticky; top: 24px; display: grid; gap: 18px; }

/* table of contents in the aside */
.toc { background: var(--panel); border-radius: var(--radius-lg); padding: 22px 24px; font-size: 14.5px; }
.toc__title { font-weight: 700; margin-bottom: 10px; }
.toc ol { list-style: none; padding: 0; display: grid; gap: 8px; }
.toc a { text-decoration: none; color: var(--ink-soft); }
.toc a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }

/* small aside CTA card */
.aside-cta { background: var(--ink); color: #fff; border-radius: var(--radius-lg); padding: 24px; }
.aside-cta p { color: rgba(255, 255, 255, 0.75); font-size: 14.5px; margin: 8px 0 18px; }
.aside-cta b { font-size: 17px; }

/* ---------- prose ---------- */
.prose { max-width: 42em; color: var(--ink-soft); font-size: 17.5px; line-height: 1.7; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 {
  font-family: var(--serif); font-weight: 400; letter-spacing: -0.02em; color: var(--ink);
  font-size: clamp(30px, 3.2vw, 40px); line-height: 1.12; margin-top: 2.2em; scroll-margin-top: 24px;
}
.prose h3 { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); line-height: 1.3; margin-top: 1.9em; scroll-margin-top: 24px; }
.prose h2 + *, .prose h3 + * { margin-top: 0.6em; }
.prose > :first-child { margin-top: 0; }
.prose strong { color: var(--ink); font-weight: 600; }
.prose a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.prose a:hover { text-decoration-thickness: 2px; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li + li { margin-top: 0.45em; }
.prose li::marker { color: var(--muted); }
.prose blockquote {
  border-left: 3px solid var(--pink); padding: 4px 0 4px 22px;
  font-family: var(--serif); font-size: 23px; line-height: 1.45; color: var(--ink);
}
.prose code { font-size: 0.9em; background: var(--panel); padding: 1px 6px; border-radius: 6px; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 2.4em 0; }
.prose table { width: 100%; border-collapse: collapse; font-size: 15.5px; line-height: 1.5; }
.prose th, .prose td { text-align: left; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.prose th { font-weight: 500; color: var(--muted); font-size: 14px; }
.prose td { color: var(--ink); }
.prose caption { caption-side: bottom; text-align: left; font-size: 13.5px; color: var(--muted); padding-top: 10px; }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* source line under a rate or rule: "Source: Meta, pricing page (opened 26 Oct 2026)" */
.source { font-size: 13.5px; color: var(--muted); }
.source a { color: var(--muted); }

/* label for illustrative numbers in UI mocks */
.example-label { display: inline-block; font-size: 11.5px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 2px 9px; }

/* ---------- callouts ---------- */
.callout { border-radius: var(--radius-md); padding: 20px 24px; background: var(--panel); color: var(--ink-soft); font-size: 16px; line-height: 1.6; }
.callout > * + * { margin-top: 0.6em; }
.callout__title { display: block; font-weight: 700; color: var(--ink); margin-bottom: 4px; }
.callout--mint { background: var(--mint-soft); color: var(--mint-ink); }
.callout--mint .callout__title { color: var(--mint-ink); }
.callout--butter { background: #fff6cf; }
.callout--pink { background: var(--pink-soft); }
.callout--line { background: transparent; border: 1px solid var(--line); }

/* ---------- comparison table ---------- */
.compare { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px; line-height: 1.45; }
.compare th, .compare td { text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--line); vertical-align: top; }
.compare thead th { font-weight: 600; color: var(--ink); font-size: 14.5px; background: var(--panel); }
.compare thead th:first-child { border-top-left-radius: var(--radius-md); }
.compare thead th:last-child { border-top-right-radius: var(--radius-md); }
.compare tbody th { font-weight: 600; color: var(--ink); }
.compare td { color: var(--ink-soft); }
.compare .is-us { background: var(--mint-soft); color: var(--mint-ink); }
.compare thead .is-us { background: var(--mint); color: var(--ink); }
.compare .yes, .compare .no, .compare .partial { font-weight: 600; white-space: nowrap; }
.compare .yes { color: var(--mint-ink); }
.compare .no { color: #9b3a2a; }
.compare .partial { color: #8a6a00; }
.compare small { display: block; color: var(--muted); font-size: 12.5px; margin-top: 2px; }
.compare-note { margin-top: 12px; font-size: 13.5px; color: var(--muted); max-width: 52em; }

/* ---------- step lists ---------- */
/* .steps (from styles.css) has white cards for use on a panel.
   On a white page add .steps--panel for grey cards. */
.steps--panel li { background: var(--panel); }
/* plain numbered list inside prose */
.step-list { list-style: none; padding: 0 !important; counter-reset: s; display: grid; gap: 18px; }
.step-list > li { counter-increment: s; position: relative; padding-left: 52px; margin: 0 !important; }
.step-list > li::before {
  content: counter(s); position: absolute; left: 0; top: -2px; width: 34px; height: 34px; border-radius: 50%;
  border: 1.5px solid var(--ink); display: grid; place-items: center; font-family: var(--serif); font-size: 18px; color: var(--ink);
}
.step-list b { display: block; color: var(--ink); }

/* ---------- sections on inner pages ---------- */
.section { padding-block: 72px; }
.section--tight { padding-block: 40px; }
.section--panel { background: var(--panel); border-radius: var(--radius-xl); padding: 64px 56px; margin-block: 24px; }
.section__head { max-width: 40em; margin-bottom: 36px; }
.section__head .h2 { margin-top: 14px; }
.section__head p { margin-top: 14px; color: var(--ink-soft); font-size: 18px; }

/* ---------- card grids (use cases, integrations, guides) ---------- */
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; list-style: none; padding: 0; }
.card-grid--2 { grid-template-columns: repeat(2, 1fr); }
.card-grid--4 { grid-template-columns: repeat(4, 1fr); }

.card {
  position: relative; display: flex; flex-direction: column; gap: 10px;
  background: var(--panel); border-radius: var(--radius-lg); padding: 28px 26px 26px;
  text-decoration: none; color: var(--ink); transition: transform 0.2s, box-shadow 0.2s;
}
a.card:hover, .card:has(a.card__link:hover) { transform: translateY(-3px); box-shadow: var(--float-shadow); }
.card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.card__title { font-family: var(--serif); font-weight: 400; font-size: 26px; line-height: 1.15; letter-spacing: -0.01em; }
.card__text { color: var(--ink-soft); font-size: 15.5px; line-height: 1.55; }
.card__meta { margin-top: auto; padding-top: 10px; font-size: 13.5px; color: var(--muted); }
.card__link { font-weight: 600; text-decoration: none; }
.card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* whole card clickable */
.card__arrow { margin-top: auto; padding-top: 8px; font-weight: 600; font-size: 15px; }

/* use-case card: mini chat line above the title */
.usecase-card .usecase-card__chat { display: grid; gap: 6px; margin-bottom: 6px; font-size: 13px; line-height: 1.35; }
.usecase-card .msg { max-width: 92%; padding: 7px 11px; border-radius: 14px; }
.usecase-card .msg--in { background: #fff; }
.usecase-card__systems { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }

/* integration card: white with system name and build status */
.int-card { background: #fff; border: 1px solid var(--line); }
.int-card .card__title { font-family: var(--sans); font-weight: 700; font-size: 21px; letter-spacing: -0.02em; }
.int-status { align-self: flex-start; font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
.int-status--runs { background: var(--mint-soft); color: var(--mint-ink); }   /* already runs on our platform */
.int-status--build { background: var(--butter); color: var(--ink); }        /* custom build via its API */

/* filter chips above a grid (static links / anchors) */
.filter-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; list-style: none; padding: 0; }
.filter-chips a { display: inline-block; font-size: 14px; font-weight: 500; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); text-decoration: none; }
.filter-chips a:hover, .filter-chips a[aria-current="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

/* ---------- FAQ on inner pages (same look as .faq details on the landing page) ---------- */
.faq-list { max-width: 46em; }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list details:first-of-type { border-top: 1px solid var(--line); }
.faq-list summary {
  list-style: none; cursor: pointer; padding: 22px 40px 22px 0; position: relative;
  font-size: 19px; font-weight: 600; letter-spacing: -0.01em; color: var(--ink);
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 4px; top: 16px; font-size: 28px; font-weight: 300; }
.faq-list details[open] summary::after { content: "\2212"; }
.faq-list details > div, .faq-list details > p { padding: 0 0 24px; color: var(--ink-soft); max-width: 40em; }
.faq-list details > div > * + * { margin-top: 0.7em; }

/* ---------- related links ---------- */
.related { border-top: 1px solid var(--line); padding: 48px 0 24px; }
.related__title { font-family: var(--serif); font-weight: 400; font-size: 30px; letter-spacing: -0.01em; margin-bottom: 20px; }
.related ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; list-style: none; padding: 0; }
.related a {
  display: flex; justify-content: space-between; align-items: center; gap: 12px; height: 100%;
  padding: 18px 20px; border-radius: var(--radius-md); background: var(--panel);
  text-decoration: none; font-weight: 600; font-size: 15.5px;
}
.related a::after { content: "\2192"; font-weight: 400; }
.related a:hover { background: var(--ink); color: #fff; }

/* ---------- CTA band (maroon, one per page, near the end) ---------- */
.cta-band { background: var(--maroon); color: #fff; border-radius: var(--radius-xl); padding: 72px; margin-block: 48px 64px; display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: end; }
.cta-band .h2 { color: #fff; }
.cta-band p { color: rgba(255, 255, 255, 0.72); margin-top: 16px; max-width: 30em; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
.cta-band .btn--line { color: #fff; border-color: rgba(255, 255, 255, 0.6); }
.cta-band .btn--line:hover { background: #fff; color: var(--ink); border-color: #fff; }

/* ---------- big numeral fact row (inner pages) ---------- */
.fact-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.fact-row > div { background: var(--panel); border-radius: var(--radius-lg); padding: 32px 26px; }
.fact-row .num { font-size: 52px; line-height: 1; }
.fact-row p { margin-top: 12px; color: var(--muted); font-size: 15px; }

/* ---------- site footer (shared, from _partials.html) ---------- */
.site-footer { border-top: 1px solid var(--line); padding-block: 64px 40px; margin-top: 32px; font-size: 14.5px; }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 32px; }
.site-footer__brand p { color: var(--muted); margin-top: 14px; max-width: 22em; }
.site-footer__brand .btn { margin-top: 20px; }
.site-footer h2 { font: 700 14px/1.3 var(--sans); letter-spacing: 0.02em; margin-bottom: 14px; }
.site-footer ul { list-style: none; padding: 0; display: grid; gap: 9px; }
.site-footer ul a { text-decoration: none; color: var(--ink-soft); }
.site-footer ul a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.site-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13.5px; }
.site-footer__legal p { max-width: 52em; }
.site-footer__legal nav { display: flex; gap: 20px; }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .article { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .article__aside { position: static; }
  .page-hero--split, .cta-band { grid-template-columns: 1fr; }
  .cta-band__actions { justify-content: flex-start; }
  .card-grid, .card-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .related ul { grid-template-columns: repeat(2, 1fr); }
  .site-footer__grid { grid-template-columns: repeat(3, 1fr); }
  .site-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .page-hero { padding-block: 24px 40px; }
  .answer { padding: 22px; font-size: 17.5px; }
  .prose { font-size: 17px; }
  .card-grid, .card-grid--2, .card-grid--4, .related ul, .fact-row { grid-template-columns: 1fr; }
  .section--panel, .cta-band { padding: 40px 24px; border-radius: var(--radius-lg); }
  .site-footer__grid { grid-template-columns: repeat(2, 1fr); }
  .compare { font-size: 14px; }
  .compare th, .compare td { padding: 12px 10px; }
}

/* phone mock inside a page hero panel: the landing page positions .phone absolutely; on inner pages it sits in the flow */
.page-hero__visual .phone { position: relative; left: auto; top: auto; transform: none; height: auto; min-height: 420px; max-width: 100%; }

/* quotables inside .prose: undo the prose list indent and li spacing */
.prose .quotables { padding-left: 0; }
.prose .quotables li + li { margin-top: 0; }

/* ---------- pricing pages (/pricing/ and /whatsapp-api-pricing-south-africa/) ---------- */
/* calculators */
.calc { background: var(--panel); border-radius: var(--radius-lg); padding: 28px; margin-top: 1.4em; }
.calc fieldset { border: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.calc legend { font-weight: 700; color: var(--ink); margin-bottom: 14px; font-size: 17px; }
.calc fieldset + fieldset { margin-top: 30px; }
.calc label { display: grid; gap: 6px; font-size: 14.5px; color: var(--ink-soft); line-height: 1.35; }
.calc label small { color: var(--muted); font-size: 12.5px; }
.calc input[type="number"] {
  font: inherit; font-size: 17px; color: var(--ink); background: #fff;
  border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; width: 100%;
}
.calc input[type="number"]:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; }
.calc .calc__check { display: flex; align-items: center; gap: 10px; grid-column: 1 / -1; }
.calc__check input { width: 18px; height: 18px; accent-color: var(--ink); flex: none; }
.calc__out { margin-top: 24px; background: #fff; border-radius: var(--radius-md); padding: 8px 20px 18px; }
.calc__out table { font-size: 15px; }
.calc__out td:first-child { white-space: nowrap; }
.calc__out td:not(:first-child), .calc__out th:not(:first-child) { text-align: right; padding-right: 0; padding-left: 12px; white-space: nowrap; }
.calc__out tfoot td { font-weight: 700; border-bottom: 0; }
.calc__ours td:nth-child(2) { white-space: normal !important; color: var(--muted); font-size: 14px; }
.calc__oneoff { font-size: 14.5px; color: var(--ink-soft); margin-top: 12px; }
.calc__total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; margin-top: 14px; }
.calc__total .num { font-size: clamp(40px, 6vw, 56px); line-height: 1; color: var(--ink); }
.calc__total span { color: var(--muted); font-size: 14.5px; }
.calc__note { font-size: 13.5px; color: var(--muted); margin-top: 12px; }
@media (max-width: 700px) {
  .calc { padding: 18px 14px; }
  .calc fieldset { grid-template-columns: 1fr; }
  .calc__out { padding: 4px 12px 16px; }
  .calc__out table { font-size: 14px; }
  .calc__meta td:nth-child(2), .calc__meta th:nth-child(2) { display: none; }
  .calc__ours td:nth-child(2) { font-size: 13px; }
  .calc__out td:first-child { white-space: normal; }
  .calc__out td:not(:first-child), .calc__out th:not(:first-child) { padding-left: 8px; }
}

/* worked-example totals, tier tables, h4 inside prose */
.totals td:not(:first-child), .totals th:not(:first-child) { text-align: right; white-space: nowrap; padding-left: 12px; padding-right: 0; }
.totals tfoot td { font-weight: 700; border-bottom: 0; }
@media (max-width: 700px) { .totals { font-size: 14.5px; } }
.prose h4 { font-size: 17.5px; font-weight: 700; color: var(--ink); line-height: 1.35; margin-top: 1.7em; }
.prose h4 + * { margin-top: 0.5em; }
.tier-tables { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
@media (max-width: 700px) { .tier-tables { grid-template-columns: 1fr; } }

/* a prominent cross-link between the two pricing pages */
.crosslink {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px;
  border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 22px 26px; margin-top: 18px; max-width: 60em;
}
.crosslink p { color: var(--ink-soft); font-size: 16.5px; max-width: 34em; }
.crosslink p b { color: var(--ink); }

/* plan cards */
.page-hero--short { padding-block: 32px 36px; }
.page-hero--short .display { margin-bottom: 14px; }
.plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; list-style: none; padding: 0; align-items: stretch; }
.plan { display: flex; flex-direction: column; background: var(--panel); border: 1.5px solid transparent; border-radius: var(--radius-lg); padding: 30px 28px 28px; }
.plan--featured { background: #fff; border-color: var(--ink); box-shadow: var(--float-shadow); }
.plan__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; min-height: 30px; }
.plan__name { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; }
.plan__price { font-family: var(--serif); font-weight: 400; font-size: clamp(46px, 4.4vw, 58px); line-height: 1; letter-spacing: -0.03em; margin-top: 22px; }
.plan__per { color: var(--muted); font-size: 14.5px; margin-top: 8px; }
.plan__list { list-style: none; padding: 22px 0 0; margin: 22px 0 0; border-top: 1px solid var(--line); display: grid; gap: 11px; font-size: 15.5px; color: var(--ink-soft); }
.plan__list li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; }
.plan__list li::before { content: "\2713"; color: var(--mint-ink); font-weight: 700; }
.plan__list b { color: var(--ink); font-weight: 600; }
.plan__list { margin-bottom: 28px; }
.plan .btn { margin-top: auto; width: 100%; }
.plan-includes { background: var(--panel); border-radius: var(--radius-lg); padding: 28px 30px; margin-top: 18px; }
.plan-includes h2, .plan-includes h3 { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; }
.plan-includes ul { list-style: none; padding: 0; margin-top: 14px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 24px; font-size: 15px; color: var(--ink-soft); }
.plan-includes li { display: grid; grid-template-columns: 18px 1fr; gap: 8px; }
.plan-includes li::before { content: "\2713"; color: var(--mint-ink); font-weight: 700; }
.plan-note { margin-top: 14px; font-size: 14px; color: var(--muted); max-width: 60em; }
.plan-note a, .crosslink a:not(.btn) { color: var(--ink); text-underline-offset: 3px; }

/* four priced steps on one row */
.price-steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.price-steps > li { background: var(--panel); border-radius: var(--radius-lg); padding: 30px 26px; display: flex; flex-direction: column; }
.price-steps .num { font-size: 56px; line-height: 1; }
.price-steps h3 { font-size: 19px; letter-spacing: -0.01em; margin-top: 16px; }
.price-steps .price-steps__cost { font-family: var(--serif); font-size: 26px; line-height: 1.15; letter-spacing: -0.01em; margin-top: 6px; color: var(--ink); }
.price-steps p { color: var(--ink-soft); font-size: 15px; line-height: 1.55; margin-top: 10px; }
.price-steps a { color: var(--ink); text-underline-offset: 3px; }

/* overage list */
.overage { list-style: none; padding: 0 !important; border-top: 1px solid var(--line); }
.prose .overage li + li { margin-top: 0; }
.overage li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 24px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.overage .overage__what { color: var(--ink); font-weight: 600; }
.overage .overage__cost { color: var(--ink); font-weight: 600; text-align: right; white-space: nowrap; }
.overage .overage__detail { grid-column: 1 / -1; color: var(--ink-soft); font-size: 15.5px; }

@media (max-width: 900px) { .plan-grid { grid-template-columns: 1fr; max-width: 560px; } }
@media (max-width: 1080px) {
  .price-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan-includes ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .price-steps, .plan-includes ul { grid-template-columns: 1fr; }
  .plan { padding: 26px 22px 24px; }
  .plan-includes { padding: 22px; }
  .crosslink { padding: 20px; }
  .overage li { grid-template-columns: 1fr; }
  .overage .overage__cost { text-align: left; white-space: normal; }
}
