/* Sequences: the offer page of the hosted service, after style.css. It uses only the colors and sizes defined
   there: the hero, sections, kicker labels and buttons come from style.css, and this file adds the figures under
   the hero, the outcome cards, the plan cards and the trial terms. */

.hero-offer { padding-bottom: 56px; }
@media (min-width: 768px) {
  .hero-offer { padding-bottom: 72px; }
}

/* The snapshot in four figures: two to a row on a phone, four across from 768 px. */
.offer-figures {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px;
  width: 100%; max-width: 48rem; margin: 40px 0 0; padding: 0;
}
@media (min-width: 768px) {
  .offer-figures { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 48px; }
}
.offer-figure {
  display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 4px; min-width: 0; padding: 16px 12px;
  border: 1px solid var(--line-faint); border-radius: var(--radius); background: color-mix(in srgb, var(--card) 72%, transparent);
}
.offer-figure dd {
  margin: 0; font-size: 24px; line-height: 1.15; font-weight: 600; letter-spacing: -0.015em;
  font-variant-numeric: tabular-nums; color: var(--brand-ink);
}
.offer-figure dt { font-size: 14px; line-height: 20px; color: var(--ink-2); }
.offer-sources { max-width: 40rem; margin-top: 16px; font-size: 13px; line-height: 20px; color: var(--ink-2); text-wrap: pretty; }

/* Outcome cards: flat, with a faint edge, one to a row on a phone, two from 640 px, four from 1024 px. */
.offer-outcomes, .offer-plans, .offer-features, .offer-terms { margin: 0; padding: 0; list-style: none; }
.offer-outcomes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
@media (min-width: 640px) {
  .offer-outcomes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .offer-outcomes { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.offer-card { display: grid; align-content: start; gap: 8px; padding: 20px; border: 1px solid var(--line-faint); border-radius: var(--radius); background: var(--card); }
.offer-card-title { font-size: 16px; line-height: 22px; font-weight: 600; color: var(--brand-ink); }
.offer-card p { font-size: 15px; line-height: 22px; color: var(--ink-2); }

/* Plan cards: one column up to 899 px, then one row with a column for each plan in offer.json, so the row fits
   however many plans the file lists. The button sits at the bottom of each card. */
.offer-plans { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: 32rem; margin-inline: auto; }
@media (min-width: 900px) {
  .offer-plans { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); max-width: 60rem; }
}
.offer-plan {
  display: flex; flex-direction: column; min-width: 0; padding: 24px;
  border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--card); box-shadow: var(--shadow);
}
.offer-plan-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.offer-plan-name { font-size: 18px; line-height: 24px; font-weight: 600; color: var(--brand-ink); }
.offer-badge {
  display: inline-flex; align-items: center; min-height: 24px; padding: 2px 10px; border-radius: 999px;
  background: var(--chip); font: 400 11px/1.3 var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-2);
}
.offer-plan-summary { margin-top: 8px; font-size: 15px; line-height: 22px; color: var(--ink-2); }
.offer-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin-top: 20px; }
.offer-amount { font-size: 36px; line-height: 1.1; font-weight: 600; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--brand-ink); }
.offer-per { font-size: 14px; line-height: 20px; color: var(--ink-2); }
.offer-price-alt { margin-top: 4px; font-size: 14px; line-height: 20px; color: var(--ink-2); }
.offer-features { display: grid; gap: 10px; margin: 20px 0 24px; padding-top: 20px; border-top: 1px solid var(--line-faint); }
.offer-features li { position: relative; padding-left: 26px; font-size: 15px; line-height: 22px; color: var(--ink); }
.offer-features li::before {
  content: '\2713'; position: absolute; left: 0; top: 0; width: 18px; text-align: center;
  font-weight: 600; color: var(--brand-link);
}
.offer-action { width: 100%; margin-top: auto; }

/* Trial terms: a short list under the heading, then where to write. */
.offer-terms { display: grid; gap: 12px; max-width: 34rem; margin-inline: auto; }
.offer-terms li {
  position: relative; padding: 14px 16px 14px 44px; border: 1px solid var(--line-faint); border-radius: var(--radius);
  background: var(--card); font-size: 15px; line-height: 22px; color: var(--ink);
}
.offer-terms li::before {
  content: '\2713'; position: absolute; left: 16px; top: 14px; width: 18px; text-align: center;
  font-weight: 600; color: var(--ok);
}
.offer-contact { max-width: 34rem; margin: 24px auto 0; font-size: 15px; line-height: 22px; text-align: center; color: var(--ink-2); }
.offer-contact a { color: var(--brand-link); text-underline-offset: 3px; }
