/* Providers catalog, filter pages and provider detail — LLMAPI theme */
.prov {
  --blue: #3578ff;
  --ink: #13151a;
  --body: #4a4a4d;
  --grey: #7d7d7e;
  --muted: #a0a0a2;
  --line: #ebebeb;
  --cloud: #f4f5f7;
  --off: #fafafa;
  --ok: #16a34a;
  --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  background: #fff;
  color: var(--ink);
  padding: 40px 0 96px;
}
.prov .container { margin: 0 auto; max-width: 1328px; padding: 0 16px; }
.prov a { color: inherit; text-decoration: none; }
.prov .num { font-variant-numeric: tabular-nums; }
.prov .mono { font-family: var(--mono); font-size: 13px; }
.prov .t3 { color: var(--grey); }
.prov .small { font-size: 14px; }
.prov .na { color: var(--muted); }

.prov__eyebrow { color: var(--blue); font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 12px; }
.prov__crumbs { color: var(--grey); font-size: 14px; margin: 0 0 28px; }
.prov__crumbs a:hover { color: var(--ink); }
.prov__crumbs span.sep { margin: 0 8px; }
.prov__title { font-size: clamp(32px, 4.2vw, 52px); font-weight: 400; letter-spacing: -.015em; line-height: 1.08; margin: 0 0 18px; }
.prov__lead { color: var(--body); font-size: 18px; line-height: 1.5; margin: 0 0 26px; max-width: 640px; }
.prov__h2 { font-size: clamp(24px, 2.4vw, 32px); font-weight: 400; letter-spacing: -.01em; line-height: 1.18; margin: 0 0 8px; }
.prov__sub { color: var(--body); font-size: 16px; line-height: 1.55; margin: 0 0 24px; max-width: 660px; }
.prov__note { color: var(--grey); font-size: 13px; line-height: 1.5; margin: 14px 0 0; }

.prov__btn { background: var(--ink); border: 1px solid var(--ink); border-radius: 8px; color: #fff; display: inline-flex; align-items: center; font-size: 15px; padding: 12px 20px; transition: opacity .2s ease; }
.prov__btn:hover { opacity: .88; color: #fff; }
.prov__btn--blue { background: var(--blue); border-color: var(--blue); }
.prov__btn--ghost { background: #fff; border-color: var(--line); color: var(--ink); }
.prov__ctas { display: flex; flex-wrap: wrap; gap: 10px; }

/* ---------- hero ---------- */
.prov__hero { border-bottom: 1px solid var(--line); padding-bottom: 44px; }
.prov__hero-grid { align-items: start; display: grid; gap: 56px; grid-template-columns: minmax(0, 1fr) 380px; }
.prov__meta { align-items: center; color: var(--grey); display: flex; flex-wrap: wrap; font-size: 14px; gap: 10px; margin-bottom: 16px; }
.prov__meta .tag { background: var(--cloud); border-radius: 5px; color: var(--ink); font-size: 12px; font-weight: 500; letter-spacing: .04em; padding: 3px 9px; text-transform: uppercase; }
.prov__meta .sep { background: var(--muted); border-radius: 50%; height: 3px; width: 3px; }
.prov__hero h1 { align-items: center; display: flex; gap: 16px; }
.prov__logo { background: #fff; border: 1px solid var(--line); border-radius: 10px; height: 52px; object-fit: contain; padding: 7px; width: 52px; }
.prov__glance { background: var(--off); border: 1px solid var(--line); border-radius: 12px; padding: 4px 0; }
.prov__glance .row { align-items: center; border-bottom: 1px solid var(--line); display: flex; font-size: 14px; gap: 16px; justify-content: space-between; padding: 12px 20px; }
.prov__glance .row:last-child { border-bottom: 0; }
.prov__glance .row span:first-child { color: var(--body); }
.prov__glance .row span:last-child { font-weight: 500; text-align: right; }
.prov__dot { background: var(--ok); border-radius: 50%; display: inline-block; height: 8px; margin-right: 7px; width: 8px; }
.prov__disc { background: #eaf7ef; border-radius: 5px; color: #166534; display: inline-block; font-size: 12px; font-weight: 500; padding: 2px 8px; }
/* compact two-across glance panel */
.prov__glance--grid { display: grid; grid-template-columns: 1fr 1fr; padding: 0; overflow: hidden; }
.prov__glance--grid .cell { border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 14px 18px; }
.prov__glance--grid .cell:nth-child(odd) { border-right: 1px solid var(--line); }
.prov__glance--grid .cell:nth-last-child(-n+2) { border-bottom: 0; }
.prov__glance--grid .k { color: var(--grey); font-size: 12px; letter-spacing: .03em; text-transform: uppercase; }
.prov__glance--grid .v { color: var(--ink); font-size: 15px; font-weight: 550; line-height: 1.3; }
.prov__glance--grid .v .prov__glance-link { font-weight: 400; }
@media (max-width: 980px) {
  .prov__glance--grid { grid-template-columns: 1fr; }
  .prov__glance--grid .cell:nth-child(odd) { border-right: 0; }
  .prov__glance--grid .cell:nth-last-child(2) { border-bottom: 1px solid var(--line); }
}

/* ---------- layout with TOC ---------- */
.prov__layout { display: grid; gap: 64px; grid-template-columns: 210px minmax(0, 1fr); padding-top: 48px; }
.prov__toc { align-self: start; font-size: 14px; position: sticky; top: 90px; }
.prov__toc .prov__eyebrow { color: var(--grey); margin-bottom: 12px; }
.prov__toc a { border-left: 1px solid var(--line); color: var(--grey); display: block; padding: 6px 0 6px 14px; }
.prov__toc a:hover, .prov__toc a.on { border-left-color: var(--ink); color: var(--ink); font-weight: 500; }
.prov__content { max-width: 900px; }
.prov__content > section { border-bottom: 1px solid var(--line); margin-bottom: 52px; padding-bottom: 52px; }
.prov__content > section:last-of-type { border-bottom: 0; }
.prov__section { margin-top: 56px; }

/* ---------- verdict ---------- */
.prov__verdict p { font-size: 18px; line-height: 1.5; margin: 0 0 26px; max-width: 700px; }
.prov__cols2 { display: grid; gap: 40px; grid-template-columns: 1fr 1fr; }
.prov__cols2 h3 { font-size: 15px; font-weight: 550; margin: 0 0 10px; }
.prov__cols2 ul { list-style: none; margin: 0; padding: 0; }
.prov__cols2 li { border-top: 1px solid var(--line); color: var(--body); font-size: 15px; padding: 9px 0; }
.prov__cols2 li:last-child { border-bottom: 1px solid var(--line); }

/* ---------- tables ---------- */
.prov__facts { border-collapse: collapse; font-size: 15px; width: 100%; }
.prov__facts td { border-top: 1px solid var(--line); padding: 12px 0; vertical-align: top; }
.prov__facts tr:last-child td { border-bottom: 1px solid var(--line); }
.prov__facts td.k { color: var(--body); padding-right: 24px; width: 230px; }
.prov__facts tr.g td { border-top: 0; padding: 30px 0 8px; }
.prov__facts tr.g:first-child td { padding-top: 0; }
.prov__facts tr.g td .prov__eyebrow { color: var(--ink); margin: 0; }

.prov__tablewrap { overflow-x: auto; }
.prov__models { border-collapse: collapse; font-size: 14px; width: 100%; }
.prov__models th { border-bottom: 1px solid var(--ink); color: var(--body); font-size: 12px; font-weight: 500; letter-spacing: .05em; padding: 0 12px 10px 0; text-align: left; text-transform: uppercase; white-space: nowrap; }
.prov__models td { border-bottom: 1px solid var(--line); padding: 13px 12px 13px 0; vertical-align: middle; white-space: nowrap; }
.prov__models th.r, .prov__models td.r { padding-left: 12px; padding-right: 0; text-align: right; }
.prov__models th.s { cursor: pointer; user-select: none; }
.prov__models th.s:after { color: var(--muted); content: "\2195"; display: inline-block; font-size: 11px; margin-left: 4px; width: 12px; }
.prov__models th.s.asc:after { color: var(--ink); content: "\2191"; }
.prov__models th.s.desc:after { color: var(--ink); content: "\2193"; }
.prov__models td.id { font-family: var(--mono); font-size: 13px; font-weight: 500; }

.prov__pill { background: var(--cloud); border-radius: 5px; color: var(--ink); display: inline-block; font-size: 12px; font-weight: 500; margin-right: 8px; padding: 2px 8px; }
.prov__caps { display: flex; flex-wrap: wrap; gap: 6px; }
.prov__caps span { border: 1px solid var(--line); border-radius: 6px; color: var(--ink); display: inline-flex; font-size: 13px; padding: 3px 9px; }

.prov__bullets { list-style: none; margin: 0; max-width: 760px; padding: 0; }
.prov__bullets li { border-top: 1px solid var(--line); color: var(--body); font-size: 15px; line-height: 1.5; padding: 12px 0 12px 26px; position: relative; }
.prov__bullets li:last-child { border-bottom: 1px solid var(--line); }
.prov__bullets li:before { background: var(--blue); border-radius: 50%; content: ""; height: 8px; left: 4px; position: absolute; top: 19px; width: 8px; }
.prov__bullets b { color: var(--ink); font-weight: 550; }

.prov__ev { margin-top: 34px; }
.prov__ev-head { align-items: baseline; display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; margin-bottom: 10px; }
.prov__ev-head h3 { font-size: 16px; font-weight: 550; margin: 0; }
.prov__bar { background: var(--cloud); border-radius: 3px; display: block; height: 6px; position: relative; width: 140px; }
.prov__bar i { background: var(--blue); border-radius: 3px; height: 100%; left: 0; position: absolute; top: 0; }

/* ---------- cards ---------- */
.prov__cards { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.prov__card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 22px; }
.prov__card-title { font-size: 15px; font-weight: 550; margin: 0 0 12px; }
.prov__rank { align-items: baseline; display: flex; font-size: 14px; gap: 12px; padding: 7px 0; }
.prov__rank-n { color: var(--muted); font-size: 12px; width: 22px; }
.prov__rank-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prov__rank-val { font-variant-numeric: tabular-nums; font-weight: 550; }
.prov__card-foot { border-top: 1px solid var(--line); color: var(--grey); font-size: 12px; margin: 14px 0 0; padding-top: 12px; }

/* ---------- calculator ---------- */
.prov__calc { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr) 320px; }
.prov__calc .in { border: 1px solid var(--line); border-radius: 14px; padding: 22px; }
.prov__calc .f { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
.prov__calc .f .full { grid-column: 1 / -1; }
.prov__calc label { color: var(--body); display: block; font-size: 13px; margin-bottom: 6px; }
.prov__calc select, .prov__calc input { background: #fff; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); font-family: inherit; font-size: 15px; padding: 10px 12px; width: 100%; }
.prov__calc .hint { color: var(--grey); font-size: 13px; margin: 16px 0 0; }
.prov__calc .out { background: var(--ink); border-radius: 14px; color: #fff; padding: 24px; }
.prov__calc .out .prov__eyebrow { color: #9fbaff; }
.prov__calc .big { font-size: 38px; font-weight: 400; letter-spacing: -.02em; margin: 4px 0 18px; }
.prov__calc .vs div { border-top: 1px solid rgba(255,255,255,.16); display: flex; font-size: 14px; justify-content: space-between; padding: 10px 0; }
.prov__calc .out .prov__btn { margin-top: 18px; width: 100%; justify-content: center; }

/* ---------- code + resources + faq ---------- */
.prov__code { background: #13151a; border-radius: 12px; color: #e9eaee; font-family: var(--mono); font-size: 13px; line-height: 1.65; margin: 0 0 24px; overflow-x: auto; padding: 20px 22px; white-space: pre; }
.prov__code .c { color: #8b97a8; }
.prov__code .k { color: #8ab4ff; }
.prov__code .s { color: #9be6a8; }
.prov__res { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.prov__res a { border: 1px solid var(--line); border-radius: 10px; display: block; font-size: 15px; padding: 14px 16px; transition: box-shadow .2s ease; }
.prov__res a:hover { box-shadow: 0 8px 22px rgba(19,21,26,.07); }
.prov__res small { color: var(--grey); display: block; font-size: 12px; margin-top: 3px; }
.prov details { border-bottom: 1px solid var(--line); padding: 14px 0; }
.prov details summary { cursor: pointer; font-size: 16px; font-weight: 500; list-style: none; }
.prov details summary::-webkit-details-marker { display: none; }
.prov details summary:before { color: var(--muted); content: "+"; display: inline-block; margin-right: 10px; }
.prov details[open] summary:before { content: "\2212"; }
.prov details p { color: var(--body); margin: 10px 0 0 24px; }

.prov__cta { align-items: center; background: var(--cloud); border-radius: 18px; display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; margin: 8px 0 52px; padding: 32px; }
.prov__cta h2 { font-size: 26px; font-weight: 400; margin: 0 0 6px; max-width: 560px; }
.prov__cta p { color: var(--body); margin: 0; }

.prov__related { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.prov__related-card { align-items: center; border: 1px solid var(--line); border-radius: 14px; display: flex; gap: 12px; padding: 14px 16px; transition: box-shadow .2s ease, transform .2s ease; }
.prov__related-card:hover { box-shadow: 0 10px 26px rgba(19,21,26,.08); transform: translateY(-2px); }
.prov__related-card img { border: 1px solid var(--line); border-radius: 8px; height: 32px; object-fit: contain; padding: 4px; width: 32px; }
.prov__related-card small { color: var(--grey); display: block; font-size: 12px; }

/* ---------- catalog + filters ---------- */
.prov__catalog { align-items: start; display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr) 280px; margin-top: 40px; }
.prov__filters { border: 1px solid var(--line); border-radius: 14px; padding: 20px; position: sticky; top: 90px; max-height: calc(100vh - 120px); overflow-y: auto; }
.prov__filters h2 { font-size: 15px; font-weight: 550; margin: 0 0 4px; }
.prov__filters .prov__note { margin: 0 0 14px; }
.prov__filters-group { border-top: 1px solid var(--line); padding: 14px 0 4px; }
.prov__filters-group:first-of-type { border-top: 0; padding-top: 0; }
.prov__filters-group > .prov__eyebrow { color: var(--grey); margin-bottom: 8px; }
.prov__filters a { border-radius: 8px; color: var(--body); display: block; font-size: 14px; line-height: 1.35; padding: 6px 10px; }
.prov__filters a:hover { background: var(--cloud); color: var(--ink); }
.prov__filters a.is-active { background: var(--ink); color: #fff; font-weight: 500; }
.prov__filters .prov__filters-reset { border: 1px solid var(--line); margin-bottom: 14px; text-align: center; }

.prov__index-logo { border: 1px solid var(--line); border-radius: 8px; height: 36px; object-fit: contain; padding: 4px; width: 36px; }
.prov__index-name { align-items: flex-start; display: flex; gap: 12px; }
.prov__index-name a { font-weight: 550; }
.prov__index-name a:hover { color: var(--blue); }
.prov__index-name p { color: var(--grey); font-size: 12px; margin: 4px 0 0; max-width: 260px; }
.prov__list-table { border: 1px solid var(--line); border-radius: 16px; overflow-x: auto; }
.prov__list-table table { border-collapse: collapse; font-size: 14px; width: 100%; }
.prov__list-table th { background: var(--off); border-bottom: 1px solid var(--line); color: var(--grey); font-weight: 500; padding: 14px 18px; text-align: left; }
.prov__list-table td { border-bottom: 1px solid var(--line); padding: 16px 18px; vertical-align: top; }
.prov__list-table tr:last-child td { border-bottom: 0; }
.prov__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.prov__tag { border: 1px solid var(--line); border-radius: 999px; color: var(--grey); font-size: 11px; font-weight: 500; padding: 2px 9px; }
.prov__tag--on { background: var(--ink); border-color: var(--ink); color: #fff; }
.prov__count { color: var(--grey); font-size: 14px; margin: 0 0 14px; }

@media (max-width: 1100px) {
  .prov__hero-grid, .prov__layout, .prov__catalog, .prov__calc { grid-template-columns: 1fr; gap: 32px; }
  .prov__toc, .prov__filters { position: static; max-height: none; }
  .prov__toc { display: none; }
}
@media (max-width: 768px) {
  .prov { padding: 24px 0 64px; }
  .prov__cards, .prov__related, .prov__res, .prov__cols2, .prov__calc .f { grid-template-columns: 1fr; }
}

.prov__calc .out .vs b.prov__strike{text-decoration:line-through;opacity:.6;}
.prov__calc .out .vs b.prov__save{color:#22c55e;}

.prov__models a.prov__mlink{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(120,120,140,.55);transition:color .15s ease,border-color .15s ease;}
.prov__models a.prov__mlink:hover{color:#6366f1;border-bottom-color:#6366f1;}

/* Glance + key-facts privacy details (parity with the reference layout) */
.prov__dot--warn { background: #f59e0b; }
.prov__glance-link { color: #3578ff; font-size: 12px; margin-left: 8px; text-decoration: none; }
.prov__glance-link:hover { text-decoration: underline; }
.prov__pill { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 4px; color: #15803d; display: inline-block; font-size: 12px; font-weight: 600; margin-right: 8px; padding: 2px 8px; }
.prov__pill--cond { background: #fff7ed; border-color: #fed7aa; color: #b45309; }
.prov__facts .na { color: #9ca3af; }

/* =====================================================================
   LLM.API UI Kit layer — scoped to pages marked with .prov--ds
   Tokens taken verbatim from the design system (v0.1).
   ===================================================================== */
.prov.prov--ds {
  --blue: #3b82f6;
  --sky: #68a0ff;
  --ice: #cce1ea;
  --light-blue: #aecbfa;
  --ink: #08090a;
  --slate: #1c2024;
  --navy: #0b1322;
  --body: #5e6573;
  --grey: #6b7280;
  --muted: #9ca3b0;
  --line: #dce1eb;
  --white: #fff;
  --off: #fafafa;
  --cloud: #f1f5f9;
  --ok: #14bb69;
  --warn: #f6c013;
  --err: #fa4340;
  font-family: "PP Neue Montreal", "Neue Montreal", var(--font, sans-serif), sans-serif;
  font-size: 16px;
  line-height: 1.45;
  padding: 40px 0 96px;
}
.prov--ds .container { max-width: 1240px; padding: 0 40px; }
.prov--ds b, .prov--ds strong { font-weight: 500; }

/* type scale: Web/H1 56, H2 32, Lead 18, Body 16, Small 14, Caption 12 */
.prov--ds .prov__title { font-size: 56px; font-weight: 500; letter-spacing: -.015em; line-height: 1.1; margin: 0 0 20px; }
.prov--ds .prov__lead { font-size: 18px; line-height: 1.45; margin: 0 0 28px; max-width: 600px; }
.prov--ds .prov__h2 { font-size: 32px; font-weight: 500; letter-spacing: -.01em; line-height: 1.2; margin: 0 0 8px; }
.prov--ds .prov__sub { margin: 0 0 28px; max-width: 640px; }
.prov--ds h3 { font-size: 15px; font-weight: 500; }
.prov--ds .prov__eyebrow { color: var(--grey); font-size: 12px; font-weight: 500; letter-spacing: .06em; }
.prov--ds .prov__note, .prov--ds .prov__card-foot { font-size: 12px; color: var(--grey); }

/* buttons */
.prov--ds .prov__btn { background: var(--ink); border-color: var(--ink); border-radius: 8px; font-size: 15px; font-weight: 500; gap: 8px; padding: 11px 18px; }
.prov--ds .prov__btn:hover { background: var(--slate); border-color: var(--slate); opacity: 1; }
.prov--ds .prov__btn--blue { background: var(--blue); border-color: var(--blue); }
.prov--ds .prov__btn--blue:hover { background: #2f6fe0; border-color: #2f6fe0; }
.prov--ds .prov__btn--ghost { background: transparent; border-color: var(--line); color: var(--ink); }
.prov--ds .prov__btn--ghost:hover { background: var(--off); color: var(--ink); }

/* hero + glance */
.prov--ds .prov__hero { padding-bottom: 56px; }
.prov--ds .prov__hero-grid { gap: 64px; grid-template-columns: minmax(0, 1fr) 400px; }
.prov--ds .prov__logo { border-radius: 10px; height: 48px; width: 48px; }
.prov--ds .prov__meta .tag { background: var(--cloud); color: var(--slate); }
.prov--ds .prov__glance { background: var(--off); border-radius: 12px; }
.prov--ds .prov__glance--grid .k { color: var(--body); font-size: 12px; font-weight: 500; letter-spacing: .06em; }
.prov--ds .prov__glance--grid .v { font-size: 15px; font-weight: 500; }
.prov--ds .prov__dot { background: var(--ok); }
.prov--ds .prov__dot--warn { background: var(--warn); }
.prov--ds .prov__disc { background: #e6f6eb; border-radius: 5px; color: #218358; }
.prov--ds .prov__glance-link { color: var(--blue); }

/* rhythm */
.prov--ds .prov__layout { gap: 80px; grid-template-columns: 200px minmax(0, 1fr); padding-top: 56px; }
.prov--ds .prov__content > section { margin-bottom: 56px; padding-bottom: 56px; }
.prov--ds .prov__toc a { color: var(--grey); }
.prov--ds .prov__toc a:hover, .prov--ds .prov__toc a.on { border-left-color: var(--ink); color: var(--ink); }

/* verdict + lists */
.prov--ds .prov__verdict p { font-size: 18px; max-width: 680px; }
.prov--ds .prov__cols2 li { color: var(--slate); }
.prov--ds .prov__bullets li { color: var(--slate); }
.prov--ds .prov__bullets li:before { background: var(--blue); }

/* facts + pills */
.prov--ds .prov__facts tr.g td .prov__eyebrow { color: var(--ink); font-size: 13px; }
.prov--ds .prov__pill { background: var(--cloud); border: 0; border-radius: 5px; color: var(--slate); font-weight: 500; }
.prov--ds .prov__pill--cond { background: #fef6e0; color: #92400e; }
.prov--ds .prov__caps span { border-radius: 6px; color: var(--slate); font-size: 13px; }
.prov--ds .na, .prov--ds .prov__facts .na { color: var(--muted); }

/* cards + ranking bars */
.prov--ds .prov__card { border-radius: 16px; }
.prov--ds .prov__bar { background: var(--cloud); }
.prov--ds .prov__bar i { background: var(--blue); }
.prov--ds .prov__rank-val { font-weight: 500; }

/* models table */
.prov--ds .prov__models th { border-bottom-color: var(--ink); color: var(--body); }
.prov--ds .prov__mlink { border-bottom-color: rgba(94, 101, 115, .45); }
.prov--ds .prov__mlink:hover { border-bottom-color: var(--blue); color: var(--blue); }

/* calculator — navy result panel with the kit's gradient */
.prov--ds .prov__calc { border: 1px solid var(--line); border-radius: 16px; gap: 0; grid-template-columns: minmax(0, 1fr) 340px; overflow: hidden; }
.prov--ds .prov__calc .in { border: 0; border-radius: 0; padding: 28px 32px; }
.prov--ds .prov__calc select, .prov--ds .prov__calc input { border-radius: 8px; height: 42px; padding: 0 12px; }
.prov--ds .prov__calc select:focus, .prov--ds .prov__calc input:focus { border-color: var(--blue); outline: 2px solid var(--light-blue); }
.prov--ds .prov__calc .out { background: var(--navy); border-radius: 0; overflow: hidden; padding: 28px 32px; position: relative; }
.prov--ds .prov__calc .out:before { background: linear-gradient(160deg, rgba(104, 160, 255, .18), rgba(6, 14, 34, 0) 60%); content: ""; inset: 0; position: absolute; }
.prov--ds .prov__calc .out > * { position: relative; }
.prov--ds .prov__calc .out .prov__eyebrow { color: var(--light-blue); }
.prov--ds .prov__calc .big { font-size: 44px; font-weight: 500; letter-spacing: -.02em; }
.prov--ds .prov__calc .vs div { border-top-color: rgba(255, 255, 255, .12); color: var(--ice); }
.prov--ds .prov__calc .vs div b { color: #fff; }
.prov--ds .prov__calc .out .prov__btn { background: var(--blue); border-color: var(--blue); }

/* code sample */
.prov--ds .prov__code { background: var(--navy); border-radius: 12px; color: var(--ice); font-size: 12.5px; line-height: 1.6; }
.prov--ds .prov__code .c { color: var(--muted); }
.prov--ds .prov__code .s { color: var(--light-blue); }
.prov--ds .prov__code .k { color: #fff; }

/* resources + faq */
.prov--ds .prov__res a { border-radius: 10px; font-weight: 500; }
.prov--ds .prov__res a:hover { box-shadow: 0 4px 12px -2px rgba(8, 9, 10, .1); color: var(--blue); }
.prov--ds details summary { font-weight: 500; }
.prov--ds details summary:before { color: var(--grey); }

/* dark CTA banner */
.prov--ds .prov__cta { background: var(--navy); border-radius: 16px; color: #fff; overflow: hidden; padding: 36px 40px; position: relative; }
.prov--ds .prov__cta:before { background: linear-gradient(160deg, rgba(104, 160, 255, .22), rgba(6, 14, 34, 0) 60%); content: ""; inset: 0; position: absolute; }
.prov--ds .prov__cta > * { position: relative; }
.prov--ds .prov__cta h2 { color: #fff; font-size: 26px; font-weight: 500; }
.prov--ds .prov__cta p { color: var(--ice); font-size: 15px; }
.prov--ds .prov__cta .prov__btn--ghost { border-color: rgba(255, 255, 255, .3); color: #fff; }
.prov--ds .prov__cta .prov__btn--ghost:hover { background: rgba(255, 255, 255, .08); color: #fff; }

/* related */
.prov--ds .prov__related-card { border-radius: 12px; }
.prov--ds .prov__related-card:hover { box-shadow: 0 8px 24px -4px rgba(8, 9, 10, .16); }

/* provider catalog (hub) */
.prov--ds .prov__catalog { padding-bottom: 56px; }
.prov--ds .prov__count { color: var(--grey); font-size: 13px; font-weight: 500; letter-spacing: .04em; margin-bottom: 16px; text-transform: uppercase; }
.prov--ds .prov__list-table { border-color: var(--line); border-radius: 16px; }
.prov--ds .prov__list-table table { font-size: 14px; table-layout: fixed; }
.prov--ds .prov__list-table th { background: var(--off); color: var(--body); font-size: 12px; font-weight: 500; letter-spacing: .06em; padding: 12px 18px; text-transform: uppercase; }
.prov--ds .prov__list-table td { padding: 16px 18px; vertical-align: top; }
.prov--ds .prov__list-table tr:hover td { background: rgba(241, 245, 249, .5); }
.prov--ds .prov__list-table th:nth-child(1), .prov--ds .prov__list-table td:nth-child(1) { width: 34%; }
.prov--ds .prov__list-table th:nth-child(2), .prov--ds .prov__list-table td:nth-child(2) { width: 8%; }
.prov--ds .prov__list-table th:nth-child(3), .prov--ds .prov__list-table td:nth-child(3) { width: 12%; }
.prov--ds .prov__list-table th:nth-child(4), .prov--ds .prov__list-table td:nth-child(4) { color: var(--body); font-size: 13px; line-height: 1.45; width: 32%; }
.prov--ds .prov__list-table th:nth-child(5), .prov--ds .prov__list-table td:nth-child(5) { text-align: right; width: 14%; }
.prov--ds .prov__list-table td:nth-child(5) a { color: var(--blue); font-weight: 500; white-space: nowrap; }
.prov--ds .prov__index-name a { font-size: 15px; font-weight: 500; }
.prov--ds .prov__index-name p { color: var(--grey); font-size: 12.5px; line-height: 1.45; max-width: 100%; }
.prov--ds .prov__index-logo { border-radius: 8px; height: 32px; width: 32px; }
.prov--ds .prov__tags { gap: 5px; margin-top: 10px; }
.prov--ds .prov__tag { background: var(--cloud); border: 0; border-radius: 5px; color: var(--slate); font-size: 11px; padding: 3px 8px; }
.prov--ds .prov__tag:hover { background: var(--light-blue, #e3edff); color: var(--blue); }
.prov--ds .prov__list-table td:nth-child(4) .prov__tag:nth-of-type(n+4) { display: none; }

@media (max-width: 980px) {
  .prov--ds .prov__title { font-size: 32px; }
  .prov--ds .prov__h2 { font-size: 28px; }
  .prov--ds .container { padding: 0 20px; }
  .prov--ds .prov__calc { grid-template-columns: 1fr; }
  .prov--ds .prov__list-table table { min-width: 760px; }
}

/* Source markers for nightly-refreshed figures */
.prov .prov__est{display:inline-block;margin-left:4px;padding:1px 5px;border:1px solid #dce1eb;border-radius:8px;background:#f1f5f9;color:#5e6573;font-size:10px;line-height:1.4;font-weight:500;vertical-align:middle;letter-spacing:.02em}
.prov .prov__srcnote{margin:10px 0 0;color:#5e6573;font-size:12px;line-height:1.6}
.prov .prov__na{color:#98a1b3}
.prov .prov__srcnote a{color:#3b82f6;text-decoration:none}
.prov .prov__srcnote a:hover{text-decoration:underline}
