/* Shared by home page (pricing teaser) and /pricing/ (full comparison) */

.promo-ribbon {
  background: var(--dm-text);
  color: #fff;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.01em;
  padding: 10px 16px;
}
.promo-ribbon strong { color: var(--dm-mallow-soft); }
.promo-ribbon a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.promo-strike { color: var(--dm-muted-2); text-decoration: line-through; font-size: 18px; font-weight: 700; margin-right: 6px; }
.plan-then { margin-top: 4px; color: var(--dm-muted-2); font-size: 12px; font-weight: 600; }

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
  align-items: stretch;
}
.plan {
  position: relative;
  border: 1px solid var(--dm-border);
  border-radius: 22px;
  background: var(--dm-surface);
  padding: 20px;
  box-shadow: var(--dm-shadow-soft);
  display: flex;
  flex-direction: column;
}
.plan.featured {
  border-color: var(--dm-mallow-pink);
  box-shadow: 0 0 0 1px var(--dm-mallow-line), var(--dm-shadow-soft);
  background: linear-gradient(180deg, var(--dm-surface) 0%, var(--dm-surface-soft) 100%);
}
.plan-badge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: var(--dm-mallow-wash);
  border: 1px solid var(--dm-mallow-line);
  color: var(--dm-mallow-strong);
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 12px;
  width: fit-content;
}
.plan-name { font-size: 15px; font-weight: 750; letter-spacing: -0.035em; }
.plan-price { margin-top: 10px; font-size: 32px; line-height: 1; font-weight: 850; letter-spacing: -0.05em; }
.plan-price small { font-size: 13px; color: var(--dm-muted); font-weight: 650; letter-spacing: -0.02em; }
.plan-annual { margin-top: 4px; color: var(--dm-muted-2); font-size: 12px; font-weight: 600; }
.price-original { color: var(--dm-muted-2); text-decoration: line-through; text-decoration-thickness: 2px; }
.early { display: inline-flex; margin-top: 8px; color: var(--dm-success); font-size: 15px; font-weight: 750; }
.plan-desc { color: var(--dm-muted); font-size: 13px; line-height: 1.5; font-weight: 550; margin-top: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--dm-border); }
.plan ul { list-style: none; display: grid; gap: 10px; margin: 16px 0 20px; }
.plan li { color: var(--dm-muted); font-size: 13px; font-weight: 550; display: flex; gap: 9px; }
.plan li::before { content: ""; width: 7px; height: 7px; border-radius: 999px; background: var(--dm-mint); margin-top: 7px; flex: 0 0 auto; }
.plan > .btn-primary,
.plan > .btn-secondary { margin-top: auto; }
.pricing-compare-link { display: flex; justify-content: center; margin: 22px 0 6px; }

.final-cta {
  margin-top: 28px;
  border: 1px solid var(--dm-mallow-line);
  background: var(--dm-mallow-wash);
  border-radius: 28px;
  padding: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  flex-wrap: wrap;
}
.final-cta h3 { font-size: 24px; line-height: 1.15; letter-spacing: -0.05em; font-weight: 800; }
.final-cta p { margin-top: 8px; color: var(--dm-muted); font-weight: 550; }

@media (max-width: 980px) {
  .pricing-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .pricing-grid { grid-template-columns: repeat(2, 1fr); }
  .plan, .final-cta { padding: 20px; border-radius: 20px; }
}
@media (max-width: 520px) {
  .pricing-grid { grid-template-columns: 1fr; }
}
