.pricing-shell > .lead { max-width: 38ch; }

.pricing-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 120px; }
.pricing-plan { display: flex; min-width: 0; flex-direction: column; padding: 34px; border-radius: 28px; background: var(--resource-surface); }
.pricing-plan-featured { background: var(--resource-inverse); color: var(--resource-inverse-text); }
.plan-heading { display: flex; min-height: 32px; align-items: baseline; justify-content: space-between; gap: 20px; }
.plan-heading p, .plan-heading span { margin: 0; }
.plan-heading p { color: var(--orvia-text); font: 600 14px/1.2 "SF Pro Display Semibold", sans-serif; }
.plan-heading small { display: block; margin-top: 7px; color: var(--orvia-accent); font: 600 10px/1.2 "SF Pro Display Semibold", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.plan-heading span { color: var(--orvia-text-secondary); font-size: 14px; text-align: end; white-space: nowrap; }
.plan-heading strong { color: var(--orvia-text); font: 500 24px/1 "SF Pro Display Medium", sans-serif; letter-spacing: -.04em; }
.plan-heading .price-was {
  margin-right: 6px;
  color: var(--orvia-text-muted);
  font: 500 16px/1 "SF Pro Display Medium", sans-serif;
  letter-spacing: -.02em;
  text-decoration: line-through;
}
.pricing-plan-featured .plan-heading p, .pricing-plan-featured .plan-heading strong { color: var(--resource-inverse-text); }
.pricing-plan-featured .plan-heading span, .pricing-plan-featured .plan-copy, .pricing-plan-featured li, .pricing-plan-featured .price-note { color: var(--resource-inverse-secondary); }
.pricing-plan-featured .plan-heading .price-was { color: color-mix(in srgb, var(--resource-inverse-secondary) 80%, transparent); }
.pricing-plan h2 { margin: 76px 0 20px; color: var(--orvia-text); font: 500 clamp(28px, 2.4vw, 38px)/1.04 "SF Pro Display Medium", sans-serif; letter-spacing: -.05em; }
.pricing-plan-featured h2 { color: var(--resource-inverse-text); }
.plan-copy { min-height: 82px; margin: 0; color: var(--orvia-text-secondary); font-size: 16px; line-height: 1.52; }
.pricing-plan ul { display: grid; gap: 10px; margin: 30px 0 34px; padding: 0; color: var(--orvia-text-secondary); font-size: 14px; line-height: 1.4; list-style: none; }
.pricing-plan li { position: relative; padding-left: 20px; }
.pricing-plan li::before { position: absolute; left: 0; content: "✓"; color: var(--orvia-text); font-weight: 600; }
.pricing-plan-featured li::before { color: var(--resource-inverse-text); }
.price-note { margin: auto 0 12px; color: var(--orvia-text-muted); font-size: 12px; }
.plan-action { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; margin-top: auto; padding: 0 20px; border-radius: 999px; background: var(--resource-inverse-text); color: var(--resource-inverse) !important; font: 600 13px/1 "SF Pro Display Semibold", sans-serif; text-align: center; transition: transform 150ms ease-out, opacity 150ms ease-out; }
.plan-action-secondary { background: var(--orvia-text); color: var(--orvia-page) !important; }
.plan-action:hover { opacity: .82; transform: translateY(-1px); }
.plan-action:active { transform: scale(.96); }

.pricing-comparison { margin-bottom: 120px; }
.comparison-intro { display: grid; grid-template-columns: minmax(260px, .38fr) minmax(0, .62fr); column-gap: clamp(40px, 6vw, 112px); margin-bottom: 48px; }
.comparison-intro .page-kicker { grid-column: 1 / -1; }
.comparison-intro h2, .pricing-note h2 { margin: 0; color: var(--orvia-text); font: 500 clamp(32px, 3.8vw, 54px)/1.02 "SF Pro Display Medium", sans-serif; letter-spacing: -.055em; }
.comparison-intro > p:last-child, .pricing-note > p:last-child { max-width: 60ch; margin: 0; color: var(--orvia-text-secondary); line-height: 1.62; }
.comparison-table-wrap { overflow-x: auto; border-radius: 28px; background: var(--resource-surface); }
table { width: 100%; min-width: 760px; border-collapse: collapse; }
th, td { padding: 20px 24px; text-align: start; vertical-align: top; }
thead th { padding-top: 28px; color: var(--orvia-text-muted); font: 600 12px/1.2 "SF Pro Display Semibold", sans-serif; letter-spacing: .06em; text-transform: uppercase; }
tbody th { width: 24%; color: var(--orvia-text); font: 500 15px/1.4 "SF Pro Display Medium", sans-serif; }
tbody td { width: 25.33%; color: var(--orvia-text-secondary); font-size: 14px; line-height: 1.45; }
tbody tr:nth-child(odd) { background: color-mix(in srgb, var(--orvia-page) 32%, transparent); }
.pricing-note { display: grid; grid-template-columns: minmax(260px, .38fr) minmax(0, .62fr); column-gap: clamp(40px, 6vw, 112px); }
.pricing-note .page-kicker { grid-column: 1 / -1; }

@media (max-width: 1050px) { .pricing-plans { grid-template-columns: 1fr; } .pricing-plan { min-height: 430px; } .plan-copy { min-height: 0; max-width: 48ch; } }
@media (max-width: 760px) { .pricing-plans, .pricing-comparison { margin-bottom: 80px; } .pricing-plan { min-height: 0; padding: 28px 24px; border-radius: 24px; } .pricing-plan h2 { margin-top: 56px; } .comparison-intro, .pricing-note { grid-template-columns: 1fr; gap: 18px; } .comparison-intro .page-kicker, .pricing-note .page-kicker { grid-column: auto; } .comparison-table-wrap { margin-right: -18px; border-radius: 24px 0 0 24px; } }
@media (prefers-reduced-motion: reduce) { .plan-action { transition-duration: 0ms; } }
