/* Editorial comparison: shared rows, configured packages, distinct custom offer. */
.pricing-section { padding-top: 48px; }
.pricing-comparison { color: var(--vis-navy-900); }
.pricing-comparison__viewport { overflow-x: auto; overscroll-behavior-x: contain; border-radius: 0; }
.pricing-comparison__viewport:focus-visible { outline: 3px solid var(--vis-cyan-deep); outline-offset: 3px; }
.pricing-matrix { border-collapse: collapse; width: 100%; table-layout: fixed; min-width: max(960px, calc(var(--pricing-columns) * 240px)); }
.pricing-matrix th, .pricing-matrix td { min-width: 0; padding: 14px 20px; border-bottom: 1px solid var(--vis-border); border-left: 1px solid var(--vis-border); font-size: 15px; line-height: 1.45; vertical-align: middle; text-align: center; overflow-wrap: anywhere; }
.pricing-matrix tr > :first-child { border-left: 0; text-align: left; }
.pricing-matrix__labels { width: 240px; }
.pricing-matrix th { font-weight: 500; }
.pricing-matrix thead th, .pricing-matrix thead td { vertical-align: top; padding-top: 0; padding-bottom: 32px; border-bottom: 0; }
.pricing-matrix .pricing-matrix__intro { padding-left: 0; padding-right: 28px; }
.pricing-matrix__intro h1 { font-size: clamp(28px, 3vw, 40px); line-height: 1.12; letter-spacing: -.035em; margin: 20px 0; }
.pricing-matrix__intro p { font-size: 17px; color: var(--vis-text-2); margin: 0 0 24px; }
.pricing-matrix__intro a { color: var(--vis-cyan-deep); text-decoration: underline; text-underline-offset: 3px; }
.pricing-matrix__package { border-top: 6px solid var(--vis-cyan-bright); padding-top: 20px; display: grid; grid-template-rows: 30px minmax(108px, auto) 64px 72px auto; text-align: left; }
.pricing-matrix__package .badge { justify-self: start; align-self: start; font-size: 12px; }
.pricing-matrix__package h2 { font-size: 23px; line-height: 1.22; letter-spacing: -.025em; margin: 16px 0; }
.pricing-matrix__price { font-family: var(--vis-font-mono); font-size: clamp(23px, 2.1vw, 31px); font-weight: 600; align-self: end; white-space: nowrap; }
.pricing-matrix__quote { font-size: 28px; line-height: 1.15; font-weight: 750; align-self: end; }
.pricing-matrix__meta { font-size: 14px; font-weight: 400; color: var(--vis-text-2); margin: 10px 0 20px; }
.pricing-matrix__package .btn { width: 100%; min-height: 48px; font-size: 15px; white-space: normal; padding: 12px; align-self: end; }
.pricing-matrix .pricing-matrix__enterprise { background: var(--vis-info-bg); }
.pricing-matrix__enterprise-label { font-weight: 750; font-size: 20px; }
.pricing-matrix__group th, .pricing-matrix__group td { padding-top: 34px; padding-bottom: 12px; border-left: 0; }
.pricing-matrix__group th { color: var(--vis-cyan-deep); font-family: var(--vis-font-mono); text-transform: uppercase; font-size: 13px; font-weight: 600; letter-spacing: .03em; }
.pricing-matrix__included { color: var(--vis-cyan-deep); font-weight: 600; }
.pricing-comparison__notes { max-width: 100ch; margin: 28px 0; color: var(--vis-slate-600); font-size: 14px; line-height: 1.6; }
.pricing-comparison__scroll { font-size: 14px; color: var(--vis-slate-600); margin: 0 0 16px; }
.pricing-comparison__details { margin: 32px 0; }
.pricing-comparison__details dl { display: grid; grid-template-columns: minmax(100px, 180px) 1fr; gap: 8px 20px; }
.pricing-comparison__details dd { margin: 0; }
.pricing-comparison__details h3 { font-size: 18px; margin-top: 20px; }
.pricing-comparison__free { display: flex; align-items: center; justify-content: space-between; gap: 28px; background: var(--vis-paper); padding: 28px; margin-top: 36px; border-radius: var(--vis-radius); }
.pricing-comparison__free h2 { font-size: 24px; line-height: 1.25; margin: 0 0 10px; }
.pricing-comparison__free p { margin: 0; }
.pricing-comparison__free .btn { flex-shrink: 0; max-width: 100%; white-space: normal; }
@media (max-width: 700px) {
 .pricing-section { padding-top: 28px; }
 .pricing-matrix { min-width: calc(var(--pricing-columns) * 230px); }
 .pricing-matrix__labels { width: 210px; }
 .pricing-matrix th, .pricing-matrix td { padding-left: 16px; padding-right: 16px; }
 .pricing-matrix__price { font-size: 25px; }
 .pricing-comparison__free { flex-direction: column; align-items: stretch; padding: 24px; }
}

.pricing-comparison__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.pricing-matrix__package .badge--warm { background: var(--vis-coral-soft); color: var(--vis-navy-900); }
.pricing-matrix__package .btn { box-shadow: none; color: var(--vis-navy-900); }
.pricing-matrix__package .btn--coral { background: var(--vis-coral); }
.pricing-matrix__package .btn--cyan { background: var(--vis-cyan-bright); }
@media (max-width: 700px) {
 .pricing-matrix__labels { width: 160px; }
 .pricing-matrix tbody tr > th:first-child { position: sticky; left: 0; background: var(--vis-white); z-index: 1; font-size: 14px; }
}

/* A checkout details link identifies the same product across every comparison row. */
.pricing-matrix .pricing-matrix__selected {
  background: var(--vis-info-bg);
  box-shadow: inset 2px 0 var(--vis-cyan-deep), inset -2px 0 var(--vis-cyan-deep);
}
.pricing-matrix thead .pricing-matrix__selected { border-top: 2px solid var(--vis-cyan-deep); }
.pricing-matrix tbody:last-of-type tr:last-child .pricing-matrix__selected { border-bottom: 2px solid var(--vis-cyan-deep); }
.pricing-matrix__package { scroll-margin-top: 100px; }
