/* Research desk: use the publication's paper, ink, red and type tokens. */
.pricing-page,.model-pricing {
 --pricing-xs:.75rem;
 --pricing-sm:.875rem;
 --pricing-base:1rem;
 --pricing-lg:clamp(1.125rem,1rem + .4vw,1.375rem);
 --pricing-value:clamp(1.375rem,1.2rem + .5vw,1.625rem);
 --pricing-title:clamp(1.875rem,1.5rem + 1.5vw,2.75rem);
 --pricing-1:.25rem;
 --pricing-2:.5rem;
 --pricing-3:.75rem;
 --pricing-4:1rem;
 --pricing-6:1.5rem;
 --pricing-8:2rem;
 --pricing-surface:color-mix(in srgb,var(--ink) 4%,var(--paper));
 color:var(--ink);
 min-width:0;
}
.pricing-page { max-width:90rem; margin:auto; }
.pricing-page .pricing-heading { max-width:none; padding:var(--pricing-6) 0 var(--pricing-3); }
.pricing-heading h1 { font-family:var(--serif); font-size:var(--pricing-title); letter-spacing:-.025em; margin-bottom:var(--pricing-2); }
.pricing-heading .eyebrow { margin-bottom:var(--pricing-2); }
.pricing-heading .standfirst { max-width:85ch; font-size:var(--pricing-base); line-height:1.5; margin-bottom:var(--pricing-2); color:var(--muted); }
.pricing-heading-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--pricing-2) var(--pricing-4); }
.pricing-heading-meta>p { font-size:var(--pricing-sm); margin:0; font-variant-numeric:tabular-nums; }
.pricing-nav { display:flex; flex-wrap:wrap; gap:0 var(--pricing-6); padding:var(--pricing-1) 0; border-block:1px solid var(--line); margin:0 0 var(--pricing-4); font-size:var(--pricing-sm); }
.pricing-nav a { display:inline-flex; align-items:center; min-height:44px; }
.pricing-controls { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,2.4fr) auto; align-items:end; gap:var(--pricing-3); margin:0 0 var(--pricing-3); }
.pricing-controls label { display:flex; flex-direction:column; gap:var(--pricing-2); min-width:0; font-size:var(--pricing-sm); font-weight:600; text-transform:none; letter-spacing:0; }
.pricing-controls input,.pricing-controls select,.pricing-controls button,
.pricing-pagination button,.pricing-view-controls button,.pricing-active-filters button {
 font:inherit; min-height:44px; min-width:0; max-width:100%;
 border:1px solid var(--line); border-radius:0;
 padding:var(--pricing-2) var(--pricing-3);
 color:var(--ink); background:var(--paper);
}
.pricing-controls input,.pricing-controls select { margin:0; font-size:var(--pricing-base); }
.pricing-controls button,.pricing-pagination button,.pricing-view-controls button,.pricing-active-filters button { cursor:pointer; font-size:var(--pricing-sm); }
.pricing-filter-panel { min-width:0; }
.pricing-filter-panel>summary { display:none; }
.pricing-filter-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--pricing-3); }
.pricing-result-tools { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--pricing-2) var(--pricing-4); margin-bottom:var(--pricing-2); }
.pricing-results-heading h2 { font:600 var(--pricing-base)/1.4 var(--sans); margin:0; }
.pricing-results-heading p { margin:0; font-size:var(--pricing-sm); font-variant-numeric:tabular-nums; }
.pricing-view-controls { display:flex; flex-wrap:wrap; gap:var(--pricing-1); }
.pricing-view-controls button[aria-pressed="true"] { border-color:var(--ink); font-weight:700; text-decoration:underline; text-underline-offset:4px; background:var(--pricing-surface); }
.pricing-active-filters { display:flex; flex-wrap:wrap; gap:var(--pricing-2); margin-bottom:var(--pricing-2); }
.pricing-active-filters button { white-space:normal; text-align:left; overflow-wrap:anywhere; }
.pricing-active-filters button span { color:var(--muted); }
.pricing-scope { margin:var(--pricing-2) 0 var(--pricing-4); padding:var(--pricing-3) var(--pricing-4); background:var(--pricing-surface); border:1px solid var(--line); }
.pricing-scope p,.pricing-private,.pricing-condition-scope { font-size:var(--pricing-sm); line-height:1.5; }
.pricing-scope p { max-width:100ch; margin:0 0 var(--pricing-2); }
.pricing-scope .pricing-private { font-weight:600; }
.pricing-private { color:var(--ink); margin-bottom:var(--pricing-3); }
.pricing-scope details { font-size:var(--pricing-sm); }
.pricing-scope summary { cursor:pointer; display:list-item; min-height:44px; padding:var(--pricing-2) 0; font-weight:600; }
.pricing-scope details>p:last-child { margin-bottom:0; }
.pricing-noscript { font-size:var(--pricing-sm); padding:var(--pricing-3); background:var(--pricing-surface); }
.pricing-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--pricing-6); }
.pricing-card {
 display:grid; grid-template-columns:minmax(0,1fr); gap:var(--pricing-3) var(--pricing-6);
 min-width:0; margin:0; padding:var(--pricing-4) 0;
 border-top:2px solid var(--ink); background:var(--paper); color:var(--ink);
 overflow-wrap:anywhere; scroll-margin-top:8rem; font-variant-numeric:tabular-nums;
}
.pricing-directory[data-pricing-view="rows"] .pricing-card { grid-template-columns:minmax(12rem,.8fr) minmax(0,2.5fr); }
.pricing-card .pricing-record-head { min-width:0; }
.pricing-card .eyebrow { font-size:var(--pricing-xs); margin:0 0 var(--pricing-2); }
.pricing-card h3 { font:700 var(--pricing-lg)/1.25 var(--sans); margin:0 0 var(--pricing-3); letter-spacing:0; }
.pricing-card h3 a { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.pricing-card h4 { font:600 var(--pricing-base)/1.4 var(--sans); margin:var(--pricing-3) 0; }
.pricing-card p { font-size:var(--pricing-sm); line-height:1.6; margin:0 0 var(--pricing-3); }
.pricing-card .pricing-value-label { font-size:var(--pricing-xs); color:var(--muted); margin-bottom:var(--pricing-1); }
.pricing-card .pricing-amount { font:600 var(--pricing-value)/1.25 var(--sans); margin-bottom:var(--pricing-2); }
.pricing-card .pricing-basis { font-size:var(--pricing-sm); margin-bottom:var(--pricing-3); }
.pricing-card .pricing-status { font-size:var(--pricing-base); font-weight:600; line-height:1.5; margin-bottom:0; }
.pricing-record-data { min-width:0; }
.pricing-facts { font-size:var(--pricing-sm); line-height:1.5; margin:0; }
.pricing-facts>div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:var(--pricing-2); padding:var(--pricing-2) 0; border-bottom:1px solid var(--line); min-width:0; }
.pricing-facts dt { color:var(--muted); font-size:var(--pricing-xs); font-weight:500; }
.pricing-facts dd { margin:0; min-width:0; }
.pricing-key-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(12rem,100%),1fr)); column-gap:var(--pricing-4); align-items:start; }
.pricing-key-facts>div { display:block; padding-top:0; padding-bottom:var(--pricing-2); margin-bottom:var(--pricing-2); }
.pricing-key-facts dt { margin-bottom:var(--pricing-1); }
.pricing-record-limits,.pricing-record-evidence { grid-column:1/-1; min-width:0; }
.pricing-record-limits { max-width:100%; }
.pricing-card .pricing-qualification { margin:0; max-width:110ch; }
.pricing-card .pricing-condition,.pricing-card .pricing-model-scope { padding:var(--pricing-3); background:var(--pricing-surface); font-weight:500; }
.pricing-card .pricing-terms { margin-bottom:var(--pricing-3); }
.pricing-terms>div { grid-template-columns:minmax(8rem,.7fr) minmax(0,3fr); }
.pricing-record-evidence { display:flex; flex-direction:column; border-top:1px solid var(--line); }
.pricing-card details { min-width:0; font-size:var(--pricing-sm); padding:0; }
.pricing-card summary { min-height:44px; padding:var(--pricing-2) 0; cursor:pointer; font-weight:600; }
.pricing-card details[open] { padding-bottom:var(--pricing-3); }
.pricing-card details .pricing-facts { margin-bottom:var(--pricing-3); }
.pricing-sources { display:flex; align-items:start; flex-wrap:wrap; gap:0 var(--pricing-4); font-size:var(--pricing-sm); }
.pricing-sources a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.pricing-sources>div { flex-basis:100%; }
.pricing-sources>div p { margin:0; font-size:var(--pricing-sm); }
.pricing-history { background:var(--pricing-surface); border-top:1px solid var(--line); }
.pricing-card .pricing-history { padding-inline:var(--pricing-3); }
.pricing-version-evidence { font-weight:600; }
.pricing-source-terms { border-top:1px solid var(--line); }
.pricing-source-terms blockquote { white-space:pre-line; margin:var(--pricing-3) 0; padding:var(--pricing-3); background:var(--pricing-surface); line-height:1.6; }
.pricing-card code { font-size:var(--pricing-xs); overflow-wrap:anywhere; word-break:break-word; }
.pricing-directory[data-pricing-view="cards"] .pricing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pricing-directory[data-pricing-view="cards"] .pricing-card { border:1px solid var(--line); border-top:2px solid var(--ink); padding:var(--pricing-4); align-content:start; }
.pricing-pagination { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:var(--pricing-3); margin:var(--pricing-6) 0; font-size:var(--pricing-sm); }
.pricing-pagination button:disabled { opacity:.5; cursor:default; }
.pricing-empty,.pricing-unavailable { border-block:1px solid var(--line); background:var(--pricing-surface); padding:var(--pricing-4); font-size:var(--pricing-base); }
.pricing-end-links { margin:var(--pricing-6) 0; font-size:var(--pricing-sm); }
.pricing-end-links a { display:inline-block; padding:var(--pricing-2) 0; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.model-pricing { margin:var(--pricing-8) 0; }
.model-pricing>p { font-size:var(--pricing-base); line-height:1.6; }
.model-pricing>h2 { font-family:var(--serif); font-size:var(--pricing-title); }
.model-pricing .pricing-model-section { container:pricing-model / inline-size; padding:var(--pricing-6) 0; border-top:1px solid var(--line); scroll-margin-top:8rem; }
.pricing-model-section>.pricing-card { margin-bottom:var(--pricing-4); }
.pricing-section-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:var(--pricing-2); margin-bottom:var(--pricing-4); }
.pricing-section-heading h2 { font:600 var(--pricing-lg)/1.3 var(--sans); margin:0!important; }
.pricing-section-heading p { font-size:var(--pricing-sm); margin:0; color:var(--muted); }
.pricing-page [hidden],.model-pricing [hidden] { display:none!important; }
.pricing-page :focus-visible,.model-pricing :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.pricing-card:target { outline:2px solid var(--accent); outline-offset:4px; }
.pricing-controls button:hover,.pricing-pagination button:not(:disabled):hover,
.pricing-view-controls button:hover,.pricing-active-filters button:hover { border-color:var(--ink); background:var(--pricing-surface); }
.pricing-page button:active { border-color:var(--accent); }
@container pricing-model (min-width:55rem) {
 .pricing-model-section>.pricing-card { grid-template-columns:minmax(12rem,.8fr) minmax(0,2.5fr); }
}
@media(max-width:55rem) {
 .pricing-controls { grid-template-columns:minmax(0,1fr) auto; }
 .pricing-query { grid-column:1/-1; }
 .pricing-filter-panel { grid-column:1/-1; }
 .pricing-filter-panel>summary { display:list-item; min-height:44px; padding:var(--pricing-2) 0; font-size:var(--pricing-sm); cursor:pointer; font-weight:600; }
 .pricing-filter-fields { padding:var(--pricing-2) 0 var(--pricing-3); }
 .pricing-controls>button { justify-self:start; }
 .pricing-directory[data-pricing-view="rows"] .pricing-card { grid-template-columns:minmax(0,1fr); }
 .pricing-directory[data-pricing-view="cards"] .pricing-grid { grid-template-columns:minmax(0,1fr); }
 .pricing-controls input { font-size:var(--pricing-base); }
}
@media(max-width:35rem) {
 .pricing-filter-fields { grid-template-columns:minmax(0,1fr); }
 .pricing-nav { gap:0 var(--pricing-4); }
 .pricing-key-facts { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--pricing-3); }
 .pricing-terms>div,.pricing-history .pricing-facts>div { grid-template-columns:minmax(0,1fr); gap:var(--pricing-1); }
 .pricing-scope { padding:var(--pricing-3); }
 .pricing-page .pricing-heading { padding-top:var(--pricing-4); }
}
@media(max-width:22rem) {
 .pricing-key-facts { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) {
 .pricing-page *,.model-pricing * { scroll-behavior:auto; transition:none; }
}
@media print {
 .pricing-controls,.pricing-view-controls,.pricing-active-filters,.pricing-pagination { display:none!important; }
 .pricing-directory .pricing-grid { display:block!important; }
 .pricing-card { break-inside:avoid; border-color:var(--line); }
}
.pricing-condition-group{margin-block:var(--pricing-6)}.pricing-condition-group>h3{font:600 var(--pricing-lg)/1.35 var(--sans);margin:0 0 var(--pricing-3)}.pricing-condition-group>.pricing-unavailable{margin:0}
