/* Generated by design-system-stage-1/scripts/build-design-css.cjs. Edit the source CSS and tokens. */
/* Prop firm directory. Desktop composition built directly on the design tokens.
   This file owns the directory and its interaction states; no legacy CSS layer. */
.pf-directory { padding-bottom:var(--space-section); color:var(--color-text); background:var(--color-surface-page); font:var(--font-weight-body) var(--font-body)/var(--line-height-body) var(--font-family); }
.pf-directory *, .pf-compare-dock * { box-sizing:border-box; }
.pf-directory>.container { width:calc(100% - var(--space-xl) * 2); max-width:var(--width-page); margin-inline:auto; padding:0; }
.pf-directory [id] { scroll-margin-top:calc(var(--prop-page-nav-reserve) + var(--space-xl)); }
:where(.pf-directory) :is(h1,h2,h3,p) { margin:0; }
.pf-directory h1 { color:var(--color-text); font:var(--font-weight-h1) var(--display-index)/var(--line-height-h1) var(--font-family); letter-spacing:var(--tracking-h1); text-wrap:balance; font-size:var(--display-chapter); }
.pf-directory h2 { color:var(--color-text); font:var(--font-weight-heading) var(--font-h2)/var(--line-height-heading) var(--font-family); letter-spacing:var(--tracking-heading); }
.pf-directory h3 { font:var(--font-weight-heading) var(--font-h4)/var(--line-height-heading) var(--font-family); }
.pf-directory p { color:var(--color-text-muted); font-size:var(--font-body-small); line-height:var(--line-height-reading); }
.pf-directory :is(em,i) { font-style:normal; }
.pf-directory svg,.pf-compare-dock svg { width:var(--primitive-size-16); height:var(--primitive-size-16); flex:none; }
.pf-directory .trust-eyebrow { display:flex; align-items:center; gap:var(--space-sm); margin-bottom:var(--space-lg); color:var(--color-accent); font:var(--font-weight-label) var(--font-label)/var(--line-height-caption) var(--font-family-data); letter-spacing:var(--tracking-label); text-transform:uppercase; }
.pf-directory .trust-section,.pf-directory .pf-country-checker { margin-top:var(--space-section); }
.pf-directory .ds-breadcrumbs { padding-top:var(--space-lg); color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-directory .ds-breadcrumbs ol { display:flex; gap:var(--space-sm); list-style:none; padding:0; margin:0; }
.pf-directory .ds-breadcrumbs li+li::before { content:'/'; margin-right:var(--space-sm); color:var(--color-text-decorative); }
.pf-directory a:not(.ds-button):hover { color:var(--color-accent); }
.pf-directory .pf-decision-hero { padding:var(--space-2xl) 0 var(--space-2xl); text-align:center; }
.pf-directory .pf-decision-hero-copy { display:grid; justify-items:center; gap:var(--space-lg); }
.pf-directory .pf-decision-hero .trust-eyebrow { margin:0; }
.pf-directory .trust-subtitle { max-width:calc(var(--width-reading-wide) + var(--space-section) * 2); font-size:var(--font-body); text-wrap:balance; }
.pf-directory .pf-decision-actions { display:flex; gap:var(--space-md); margin-top:var(--space-sm); }
.pf-directory .ds-button,.pf-compare-dock .ds-button { white-space:nowrap; }
.pf-directory .ds-entity-identity { align-items:flex-start; gap:var(--space-md); }
.pf-directory .ds-entity-identity small { margin-top:var(--space-xs); font-size:var(--font-caption); }
.pf-directory .ds-research-table { width:100%; table-layout:fixed; border-collapse:collapse; color:var(--color-text); font-size:var(--font-body-small); }
.pf-directory .ds-research-table :is(th,td) { padding:var(--space-lg); text-align:left; vertical-align:top; border-bottom:var(--stroke-width) solid var(--color-border); overflow-wrap:break-word; }
.pf-directory .ds-research-table thead th { color:var(--color-text-muted); border-top:var(--stroke-width) solid var(--color-border); font-weight:var(--font-weight-label); }
.pf-directory .ds-research-table tbody tr:hover { background:var(--color-surface-hover); }

/* Offers: one featured card and three compact rows, with the same code control. */
.pf-special-offers { margin-top:var(--space-xl); }
.pf-special-offers-head { margin-bottom:var(--space-lg); }
.pf-special-offers-title-row { display:flex; align-items:center; justify-content:space-between; gap:var(--space-lg); }
.pf-special-offers-head p { margin-top:var(--space-sm); }
.pf-special-offers-controls { display:flex; align-items:center; gap:var(--space-sm); }
.pf-special-offers-count { display:flex; gap:var(--space-xs); align-items:baseline; margin-right:var(--space-lg); color:var(--color-text-muted); font-family:var(--font-family-data); }
.pf-special-offers-count b { color:var(--color-accent); font-size:var(--font-h4); }
.pf-special-offer-grid { display:grid; grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr); grid-template-rows:repeat(3,minmax(var(--primitive-size-78),auto)); gap:var(--space-sm); }
.pf-special-offer { position:relative; min-width:0; border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); background:var(--color-surface-card); }
.pf-special-offer-primary { display:contents; }
.pf-special-offer-identity { display:flex; align-items:center; gap:var(--space-md); min-width:0; padding:0; border:0; background:transparent; color:var(--color-text); text-align:left; cursor:pointer; }
.pf-special-offer-copy { display:grid; gap:var(--space-xs); min-width:0; }
.pf-special-offer-copy strong { font-size:var(--font-body-small); line-height:var(--line-height-heading); }
.pf-special-offer-copy small { width:fit-content; color:var(--color-text-muted); font-size:var(--font-label); line-height:var(--line-height-caption); padding:var(--space-xs) var(--space-sm); border:var(--stroke-width) solid var(--color-border-strong); border-radius:var(--radius-pill); }
.pf-special-offer.is-sponsored .pf-special-offer-copy small { color:var(--color-accent); border-color:var(--offer-partner-border); text-transform:uppercase; font-family:var(--font-family-data); }
.pf-special-offer-deal { display:grid; min-width:0; gap:var(--space-xs); }
.pf-special-offer-deal>small { color:var(--color-text-muted); font:var(--font-weight-label) var(--font-label)/var(--line-height-caption) var(--font-family-data); text-transform:uppercase; }
.pf-special-offer-deal>strong { color:var(--color-accent); font-size:var(--font-body-small); line-height:var(--line-height-heading); }
.pf-special-offer-proof { display:flex; gap:var(--space-sm); align-items:center; color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-special-offer-proof b { color:var(--color-accent); font-family:var(--font-family-data); font-size:var(--font-label); }
.pf-special-offer-flag { display:none; }
.pf-special-offer.is-active { display:grid; grid-column:1; grid-row:1 / 4; grid-template-columns:1fr auto; align-content:stretch; gap:var(--space-md); padding:var(--space-lg); border-color:var(--offer-partner-border); grid-template-rows:1fr auto auto; background:var(--color-accent-soft); }
.pf-special-offer.is-active .pf-special-offer-primary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-lg); grid-column:1 / -1; padding-block:var(--space-lg) var(--space-sm); }
.pf-special-offer.is-active .pf-special-offer-copy strong { font-size:var(--font-h5); }
.pf-special-offer.is-active .pf-special-offer-deal { max-width:42%; padding-left:var(--space-lg); border-left:var(--stroke-width) solid var(--color-border); }
.pf-special-offer.is-active .pf-special-offer-deal>small { display:none; }
.pf-special-offer.is-active .pf-special-offer-deal>strong { font-size:var(--font-h2); letter-spacing:var(--tracking-heading); }
.pf-special-offer.is-active .pf-special-offer-deal>span { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-special-offer.is-active .pf-special-offer-proof { grid-column:1; }
.pf-special-offer.is-active .pf-special-offer-action { grid-column:2; grid-row:3; align-self:center; width:var(--record-action-min-width); }
.pf-special-offer.is-supporting { display:grid; grid-column:2; grid-template-columns:minmax(0,1.9fr) minmax(0,.9fr) minmax(0,1fr) auto auto; align-items:center; gap:var(--space-md); padding:var(--space-sm) var(--space-md); }
.pf-special-offer.is-supporting .tsb-prop-logo { --tsb-prop-logo-frame:var(--entity-logo-size); }
.pf-special-offer.is-supporting .pf-special-offer-deal>span { display:none; }
.pf-special-offer.is-supporting .pf-special-offer-action { padding-inline:var(--space-sm); padding:0; border:0; background:transparent; min-height:var(--button-compact-height); }
.pf-special-offers-progress { display:flex; justify-content:center; gap:var(--space-xs); margin-top:var(--space-md); }
.pf-special-offers-progress button { width:var(--space-xl); height:var(--space-lg); padding:var(--space-sm) 0; background:transparent; border:0; cursor:pointer; }
.pf-special-offers-progress button::before { content:''; display:block; height:var(--focus-width); background:var(--color-border-strong); }
.pf-special-offers-progress button[aria-current='true']::before { background:var(--color-accent); }
.pf-partner-inventory-slot { display:grid; min-width:0; grid-template-columns:var(--button-height) minmax(0,1fr) auto; align-items:center; gap:var(--space-md); margin-top:var(--space-lg); padding:var(--space-md) var(--space-lg); border:var(--stroke-width) dashed var(--offer-partner-border); border-radius:var(--radius-control); background:var(--color-accent-soft); }
.pf-partner-inventory-mark { display:inline-flex; width:var(--button-height); height:var(--button-height); align-items:center; justify-content:center; border:var(--stroke-width) solid var(--offer-partner-border); border-radius:var(--radius-control); background:var(--color-surface-card); color:var(--color-accent); font:var(--font-weight-label) var(--font-label)/1 var(--font-family-data); letter-spacing:var(--tracking-label); }
.pf-partner-inventory-copy { display:grid; min-width:0; gap:var(--space-xs); }
.pf-partner-inventory-copy small { color:var(--color-accent); font:var(--font-weight-label) var(--font-label)/var(--line-height-caption) var(--font-family-data); letter-spacing:var(--tracking-label); text-transform:uppercase; }
.pf-partner-inventory-copy strong { color:var(--color-text); font-size:var(--font-body-small); line-height:var(--line-height-heading); }
.pf-partner-inventory-copy>span { color:var(--color-text-muted); font-size:var(--font-caption); line-height:var(--line-height-reading); }
.pf-partner-inventory-action { min-width:var(--record-action-min-width); justify-content:center; text-decoration:none; }

/* Fit guidance: aligned row headers and numeric columns. */
.pf-fit-matrix-head { margin-bottom:var(--space-xl); }
.pf-fit-matrix-head p { margin-top:var(--space-md); }
.pf-fit-firm { display:flex; gap:var(--space-md); align-items:center; color:var(--color-text); }
.pf-fit-firm strong,.pf-fit-firm small,.pf-fit-pattern-copy strong,.pf-fit-pattern-copy small { display:block; }
.pf-fit-firm small,.pf-fit-pattern-copy small { margin-top:var(--space-xs); color:var(--color-text-muted); font-size:var(--font-caption); font-weight:var(--font-weight-body); }
.pf-fit-match-profile { display:none; }
.pf-fit-match-score { display:block; margin-bottom:var(--space-sm); color:var(--color-text-muted); font:var(--font-weight-heading) var(--font-metric)/var(--line-height-heading) var(--font-family-data); }
.pf-fit-match--strong .pf-fit-match-score { color:var(--color-accent); }
.pf-fit-match--compare .pf-fit-match-score { color:var(--color-text); }
.pf-fit-match-reason { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-fit-rules-link { display:inline-flex; align-items:center; gap:var(--space-sm); margin-top:var(--space-sm); color:var(--color-accent); font-size:var(--font-caption); }
.pf-fit-matrix-legend { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-md) var(--space-lg); margin-top:var(--space-lg); color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-fit-matrix-legend>span,.pf-fit-matrix-legend>small { display:flex; align-items:center; gap:var(--space-sm); }
.pf-fit-matrix-legend>small { flex-basis:100%; font-size:inherit; }
.pf-fit-matrix-legend span>i { width:var(--space-sm); height:var(--space-sm); background:var(--color-text-muted); border-radius:50%; }
.pf-fit-matrix-legend .is-strong { background:var(--color-accent); }
.pf-fit-matrix-legend .is-compare { background:var(--color-text); }
.pf-fit-matrix-legend .is-pending { background:transparent; border:var(--stroke-width) solid var(--color-text-muted); }

/* Directory controls. The same control component owns all actionable buttons. */
.pf-hub-directory-head { display:grid; grid-template-columns:1fr auto; align-items:end; gap:var(--space-xl); margin-bottom:var(--space-lg); }
.pf-hub-directory-title-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--space-md); }
.pf-hub-program-count { color:var(--color-text-muted); font-size:var(--font-caption); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-inner); padding:var(--space-xs) var(--space-sm); background:var(--color-surface-card); }
.pf-hub-directory-head p { margin-top:var(--space-md); }
.pf-hub-research-index { display:flex; flex-wrap:wrap; gap:var(--space-md); margin-top:var(--space-md); font-size:var(--font-caption); color:var(--color-text-muted); }
.pf-hub-research-index a { color:var(--color-accent); }
.pf-hub-directory-actions { display:grid; justify-items:end; gap:var(--space-md); }
.pf-hub-directory-links { display:flex; flex-wrap:wrap; gap:var(--space-md); font-size:var(--font-caption); color:var(--color-text-muted); }
.pf-hub-sort-control { display:flex; align-items:center; gap:var(--space-md); font-size:var(--font-caption); color:var(--color-text-muted); }
.pf-hub-sort-select { display:block; min-width:var(--offer-public-code-width); }
.pf-directory :is(select,input[type='search']) { width:100%; min-width:0; min-height:var(--button-height); padding:var(--space-sm) var(--space-md); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); color:var(--color-text); background:var(--color-surface-control); }
.pf-directory .pf-select select { appearance:none; -webkit-appearance:none; cursor:pointer; padding-inline-end:calc(var(--select-chevron-inset) + var(--select-chevron-size) + var(--space-md)); font:inherit; }
.pf-select { display:block; position:relative; min-width:0; width:100%; }
.pf-directory .pf-select>svg { position:absolute; inset-inline-end:var(--select-chevron-inset); top:50%; transform:translateY(-50%); width:var(--select-chevron-size); height:var(--select-chevron-size); stroke-width:var(--select-chevron-stroke); color:var(--color-text-muted); pointer-events:none; }
.pf-select:focus-within>svg { color:var(--color-accent); }
.pf-directory :is(select,input[type='search']):hover { border-color:var(--color-border-strong); }
.pf-hub-controls { display:flex; gap:var(--space-md); align-items:center; margin-bottom:var(--space-lg); }
.pf-workspace-search { position:relative; flex:1; }
.pf-workspace-search>svg { position:absolute; top:50%; left:var(--space-md); transform:translateY(-50%); color:var(--color-text-muted); }
.pf-directory input.pf-search { padding-left:var(--space-2xl); }
.pf-quick-filters,.pf-hub-secondary-filters { display:flex; gap:var(--space-xs); }
.pf-filter.is-active { color:var(--color-accent); border-color:var(--offer-partner-border); background:var(--color-accent-soft); }
.pf-mobile-filter-toggle-copy small { display:none; }
.pf-mobile-filter-toggle.is-open .pf-filter-toggle-chevron { transform:rotate(180deg); }
.pf-hub-offer-toggle[aria-pressed='true'] { color:var(--color-accent); border-color:var(--offer-partner-border); background:var(--color-accent-soft); }
.pf-advanced-filters { display:grid; grid-template-columns:1fr 1.5fr 1fr; gap:var(--space-xl); padding:var(--space-lg); margin-bottom:var(--space-lg); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); background:var(--color-surface-card); }
.pf-hub-filter-group-title { display:flex; align-items:center; gap:var(--space-sm); margin-bottom:var(--space-md); }
.pf-hub-filter-group-title strong { font-size:var(--font-body-small); }
.pf-clear-filters { margin-left:auto; }
.pf-hub-filter-fields { display:flex; gap:var(--space-md); margin-top:var(--space-md); }
.pf-hub-filter-fields label { display:grid; align-content:start; gap:var(--space-sm); flex:1; min-width:0; color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-hub-filter-group--availability .pf-hub-filter-fields { flex-direction:column; }
.pf-hub-filter-fields .pf-availability-toggle { display:flex; align-items:center; gap:var(--space-sm); }
.pf-availability-toggle input { width:var(--space-md); height:var(--space-md); margin:0; accent-color:var(--color-accent); }

/* Program ledger. One semantic table row renders as one independent decision card. */
.pf-directory #pfBoard { width:100%; border-collapse:separate; border-spacing:0 var(--space-sm); table-layout:fixed; }
.pf-directory #pfBoard .pf-hub-decision-cell { padding:0; border:0; }
.pf-directory .pf-board-row:is(.is-hidden,.is-board-page-hidden) { display:none; }
.pf-board-columns { display:none; }
.pf-board-wrap { min-width:0; overflow-x:auto; }
.pf-hub-decision-card { --pf-program-rank:var(--color-text-muted); --pf-program-rank-surface:var(--color-surface-raised); position:relative; margin:0; overflow:visible; border:var(--stroke-width) solid var(--record-border); border-radius:var(--radius-control); background:var(--record-surface); }
.pf-hub-decision-card:hover { border-color:var(--record-border-strong); background:var(--record-surface-hover); }
.pf-hub-decision-main { display:grid; grid-template-columns:var(--space-section) minmax(0,1fr); min-height:0; align-items:stretch; }
.pf-hub-identity-group { display:grid; grid-column:1 / -1; grid-template-columns:var(--space-section) minmax(0,1fr) calc(var(--ranking-fit-tile-size) + var(--space-xl)); align-items:stretch; min-width:0; }
.pf-hub-identity-group>* { min-width:0; padding:var(--space-md); }
.pf-hub-identity-group>*+* { border-left:var(--stroke-width) solid var(--color-border-soft); }
.pf-hub-decision-rank { display:grid; align-content:center; justify-items:center; gap:var(--space-sm); border-radius:calc(var(--radius-control) - var(--stroke-width)) 0 0 0; background:var(--pf-program-rank-surface); }
.pf-hub-decision-rank-position { display:grid; min-height:var(--space-2xl); place-items:center; gap:var(--space-xs); color:var(--pf-program-rank); font-family:var(--font-family-data); }
.pf-hub-decision-rank-position b { font-size:var(--font-h3); line-height:1; }
.pf-directory .pf-hub-decision-rank-position img { display:block; width:46px; height:46px; object-fit:contain; filter:drop-shadow(0 var(--space-xs) var(--space-sm) rgba(0,0,0,.36)); }
.pf-directory .pf-hub-row-select { display:grid; width:var(--space-lg); height:var(--space-lg); place-items:center; padding:0; border:var(--stroke-width) solid var(--color-border-strong); border-radius:var(--radius-inner); background:var(--color-surface-control); cursor:pointer; }
.pf-hub-row-select .pf-action-label { display:none; }
.pf-hub-row-select .pf-compare-checkmark { color:transparent; font-size:var(--font-caption); }
.pf-hub-row-select[aria-pressed='true'] { border-color:var(--button-primary-border); background:var(--button-primary-bg); }
.pf-hub-row-select[aria-pressed='true'] .pf-compare-checkmark { color:var(--button-primary-text); }
.pf-hub-row-select:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
.pf-directory .pf-hub-decision-firm { display:flex; align-items:center; min-width:0; overflow:hidden; }
.pf-hub-firm-lockup { display:flex; width:100%; min-width:0; align-items:flex-start; gap:var(--space-md); }
.pf-directory .pf-hub-firm-lockup>.pf-firm-mark { align-self:flex-start; }
.pf-hub-decision-copy { display:grid; flex:1; min-width:0; gap:var(--space-xs); }
.pf-hub-decision-copy strong { overflow:hidden; color:var(--color-text); font-size:var(--font-body); line-height:var(--line-height-heading); text-overflow:ellipsis; white-space:nowrap; }
.pf-hub-decision-copy small { overflow:hidden; color:var(--color-text-muted); font-size:var(--font-caption); text-overflow:ellipsis; white-space:nowrap; }
.pf-location-pill { display:block; margin-top:var(--space-xs); color:var(--color-warning); font-size:var(--font-caption); line-height:var(--line-height-caption); }
.pf-location-pill--blocked { color:var(--color-negative); }
.pf-hub-decision-fit { position:relative; display:grid; align-content:center; justify-items:center; min-width:0; text-align:center; }
.pf-directory .pf-hub-fit-trigger { display:grid; width:100%; justify-items:center; gap:var(--space-xs); padding:0; border:0; background:transparent; color:var(--color-accent); text-align:center; cursor:help; }
.pf-hub-fit-kicker { color:var(--color-text-muted); font:var(--font-weight-label) var(--font-label)/var(--line-height-caption) var(--font-family-data); letter-spacing:var(--tracking-label); }
.pf-hub-fit-score { position:relative; display:grid; width:calc(var(--ranking-fit-tile-size) + var(--space-sm)); height:calc(var(--ranking-fit-tile-size) + var(--space-sm)); place-items:center; padding:0; border:0; border-radius:50%; background:transparent; box-shadow:0 0 var(--space-xl) var(--color-accent-soft); }
.pf-hub-fit-score-ring { position:absolute; inset:0; border-radius:50%; background:conic-gradient(var(--color-accent) var(--pf-fit-score),var(--color-accent-soft) 0); }
.pf-hub-fit-score-ring::after { position:absolute; inset:var(--space-xs); border-radius:inherit; background:var(--record-surface); content:""; }
.pf-hub-fit-score b { position:relative; z-index:1; color:var(--color-accent); font:var(--font-weight-heading) var(--font-h3)/1 var(--font-family-data); }
.pf-hub-fit-trigger>strong { overflow:hidden; max-width:100%; color:var(--color-accent); font-size:var(--font-caption); font-weight:var(--font-weight-label); text-overflow:ellipsis; white-space:nowrap; }
.pf-hub-decision-rules { display:grid; grid-column:1 / -1; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; padding-block:var(--space-sm); border-top:var(--stroke-width) solid var(--color-border-soft); }
.pf-hub-rule { display:grid; min-width:0; align-content:start; gap:var(--space-xs); padding:var(--space-md); }
.pf-hub-rule:nth-child(even) { border-left:var(--stroke-width) solid var(--color-border-soft); }
.pf-hub-rule:nth-child(n+3) { border-top:var(--stroke-width) solid var(--color-border-soft); }
.pf-hub-decision-rules small,.pf-hub-decision-cost>small { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-hub-decision-rules strong { color:var(--color-text); font:var(--font-weight-heading) var(--font-body-small)/var(--line-height-heading) var(--font-family); overflow-wrap:break-word; }
.pf-hub-decision-rules em { color:var(--color-text-muted); font-size:var(--font-caption); line-height:var(--line-height-body); }
.pf-hub-decision-commercial { display:grid; grid-column:1 / -1; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; gap:var(--space-sm); padding:var(--space-md); border-top:var(--stroke-width) solid var(--color-border-soft); background:var(--color-surface-raised); }
.pf-hub-decision-cost { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:var(--space-sm); min-width:0; }
.pf-hub-decision-cost>small { font-family:var(--font-family-data); font-weight:var(--font-weight-label); letter-spacing:var(--tracking-label); text-transform:uppercase; }
.pf-hub-decision-cost>strong { font:var(--font-weight-heading) var(--font-h4)/var(--line-height-heading) var(--font-family-data); }
.pf-hub-decision-promo { display:grid; grid-column:1 / -1; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; min-width:0; gap:var(--space-sm); }
.pf-hub-decision-cost>:is(.pf-hub-price-pending,.pf-hub-decision-live-deal,.pf-hub-decision-no-deal) { grid-column:1 / -1; }
.pf-hub-decision-promo>a { min-width:0; overflow:hidden; color:var(--color-accent); font-size:var(--font-caption); line-height:var(--line-height-caption); text-overflow:ellipsis; white-space:nowrap; }
.pf-hub-decision-promo .ds-coupon-code { width:100%; min-width:0; padding-inline:var(--space-sm); }
.pf-hub-decision-live-deal { display:flex; min-height:var(--button-compact-height); align-items:center; justify-content:center; gap:var(--space-sm); padding:var(--space-sm); border:var(--stroke-width) solid var(--offer-partner-border); border-radius:var(--radius-control); background:var(--color-accent-soft); color:var(--color-accent); font-size:var(--font-caption); font-weight:var(--font-weight-label); text-decoration:none; }
.pf-hub-decision-no-deal { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-directory .pf-hub-decision-cta { isolation:isolate; width:100%; min-width:0; min-height:var(--button-height); justify-content:space-between; padding:var(--space-sm) var(--space-md); text-align:left; white-space:normal; cursor:pointer; transform:none; }
.pf-directory .pf-hub-decision-cta:is(:hover,:focus-visible,:active) { transform:none; }
.pf-directory .pf-hub-decision-cta>* { pointer-events:none; }
.pf-hub-decision-cta span { display:grid; min-width:0; gap:var(--space-xs); }
.pf-hub-decision-cta strong { font-size:var(--font-body-small); }
.pf-hub-decision-cta small { font-size:var(--font-caption); font-weight:var(--font-weight-body); }
.pf-hub-decision-evidence { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; padding:0; color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-hub-company-meta { display:flex; grid-column:1 / -1; align-items:center; gap:var(--space-lg); padding:var(--space-md); min-width:0; border-top:var(--stroke-width) solid var(--color-border-soft); }
.pf-hub-evidence-facts { display:grid; grid-column:1 / -1; grid-template-columns:repeat(2,minmax(0,1fr)); min-width:0; border-top:var(--stroke-width) solid var(--color-border-soft); }
.pf-hub-evidence-facts>* { display:grid; min-width:0; align-content:center; gap:var(--space-xs); padding:var(--space-md); }
.pf-hub-evidence-facts>*:nth-child(even) { border-left:var(--stroke-width) solid var(--color-border-soft); }
.pf-hub-evidence-facts>*:nth-child(n+3) { border-top:var(--stroke-width) solid var(--color-border-soft); }
.pf-hub-evidence-item { display:flex; align-items:center; gap:var(--space-sm); }
.pf-hub-evidence-item b { color:var(--color-text); font-weight:var(--font-weight-label); }
.pf-hub-country-fact b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pf-hub-evidence-labelled small { font-size:inherit; }
.pf-hub-country-flag img { width:var(--primitive-size-20); height:var(--primitive-size-16); object-fit:contain; }
.pf-hub-platform-logos { display:flex; align-items:center; gap:var(--space-xs); }
body.prop-hub-v3 .pf-directory :is(.pf-hub-evidence-platforms,.pf-compare-platform-list) .pf-hub-platform-logo { --tsb-source-mark-size:var(--primitive-size-28); --tsb-source-logo-size:var(--primitive-size-18); display:grid; width:var(--primitive-size-28); height:var(--primitive-size-28); place-items:center; flex:0 0 var(--primitive-size-28); padding:0; overflow:hidden; border:var(--stroke-width) solid var(--color-border-strong); border-radius:var(--radius-control); background:var(--color-surface-hover); box-shadow:none; transform:none; }
body.prop-hub-v3 .pf-directory :is(.pf-hub-evidence-platforms,.pf-compare-platform-list) .pf-hub-platform-logo[data-source="ctrader"] { background:#ff1020; }
body.prop-hub-v3 .pf-directory :is(.pf-hub-evidence-platforms,.pf-compare-platform-list) .pf-hub-platform-logo[data-source="tradovate"] { background:#257fff; }
body.prop-hub-v3 .pf-directory :is(.pf-hub-evidence-platforms,.pf-compare-platform-list) .pf-hub-platform-logo>img { display:block; width:var(--primitive-size-18); height:var(--primitive-size-18); max-width:var(--primitive-size-18); max-height:var(--primitive-size-18); margin:0; padding:0; object-fit:contain; border:0; border-radius:var(--radius-inner); background:transparent; box-shadow:none; }
body.prop-hub-v3 .pf-directory :is(.pf-hub-evidence-platforms,.pf-compare-platform-list) .pf-hub-platform-logo[data-logo-preset="embedded-tile"] { border:0; background:transparent; }
body.prop-hub-v3 .pf-directory :is(.pf-hub-evidence-platforms,.pf-compare-platform-list) .pf-hub-platform-logo[data-logo-preset="embedded-tile"]>img { width:100%; height:100%; max-width:none; max-height:none; border-radius:inherit; }
.pf-hub-platform-more { display:grid; min-width:var(--primitive-size-28); height:var(--primitive-size-28); place-items:center; color:var(--color-text-muted); font-size:var(--font-caption); }
body.prop-hub-v3 .pf-directory :is(.pf-hub-evidence-platforms,.pf-compare-platform-list) .pf-hub-platform-logo:is([data-source="ctrader"],[data-source="tradingview"],[data-logo-theme-ink="dark"])>img { filter:brightness(0) invert(1); }
body.prop-hub-v3 .pf-directory :is(.pf-hub-evidence-platforms,.pf-compare-platform-list) .pf-hub-platform-logo--fallback { width:auto; flex-basis:auto; padding-inline:var(--space-sm); font:var(--font-weight-label) var(--font-label)/var(--line-height-caption) var(--font-family-data); }
.pf-hub-decision-review { display:grid; align-content:center; gap:var(--space-xs); }
.pf-hub-decision-review>span { display:flex; align-items:center; gap:var(--space-xs); min-width:0; }
.pf-directory .pf-hub-review-star { color:var(--color-accent); fill:currentColor; }
.pf-hub-decision-review :is(b,small,em) { font-size:var(--font-caption); font-weight:var(--font-weight-body); }
.pf-hub-decision-secondary-actions { display:flex; grid-column:1 / -1; align-items:center; justify-content:space-between; gap:var(--space-md); padding:var(--space-md); border-top:var(--stroke-width) solid var(--color-border-soft); min-width:0; background:var(--color-surface-raised); }
.pf-hub-decision-secondary-actions>a { display:flex; align-items:center; gap:var(--space-sm); color:var(--color-accent); }
.pf-hub-decision-details { padding:var(--space-lg); border-top:var(--stroke-width) solid var(--color-border-soft); }
.pf-hub-details-toggle[aria-expanded='true'] svg { transform:rotate(180deg); }
.pf-board-pagination { display:flex; align-items:center; justify-content:space-between; padding-top:var(--space-lg); color:var(--color-text-muted); font-size:var(--font-caption); }

@media (min-width:1280px) {
  .pf-board-shell { --pf-ledger-columns:64px minmax(220px,1.3fr) minmax(152px,.86fr) minmax(532px,3.34fr) minmax(224px,1.05fr); }
  .pf-directory #pfBoard { min-width:1360px; }
  .pf-hub-decision-main { grid-template-columns:var(--pf-ledger-columns); min-height:136px; }
  .pf-hub-identity-group { grid-column:1 / span 3; grid-template-columns:64px minmax(220px,1.3fr) minmax(152px,.86fr); }
  .pf-hub-identity-group>* { padding:var(--space-md); }
  .pf-hub-decision-rank { padding-inline:var(--space-sm); }
  .pf-hub-decision-rank-position { min-height:var(--space-section); }
  .pf-directory .pf-hub-decision-firm { gap:var(--space-md); }
  .pf-hub-decision-copy strong { display:-webkit-box; overflow:hidden; font-size:var(--font-h4); white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .pf-hub-decision-copy small { display:-webkit-box; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .pf-hub-decision-fit { padding:var(--space-sm) var(--space-md); }
  .pf-hub-decision-rules { grid-column:4; grid-template-columns:repeat(4,minmax(0,1fr)); padding-block:var(--space-sm); border-top:0; border-left:var(--stroke-width) solid var(--color-border-soft); }
  .pf-hub-rule { padding:var(--space-sm) var(--space-md); border:0!important; }
  .pf-hub-decision-commercial { grid-column:5; grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr; align-content:center; gap:var(--space-sm); padding:var(--space-sm) var(--space-md); border-top:0; border-left:var(--stroke-width) solid var(--color-border-soft); }
  .pf-hub-decision-cost { grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; align-content:start; align-items:center; column-gap:var(--space-sm); row-gap:var(--space-xs); }
  .pf-hub-decision-cost>small { grid-column:1; grid-row:1; }
  .pf-hub-decision-cost>strong { grid-column:1; grid-row:2; }
  .pf-hub-decision-cost>:is(.pf-hub-decision-live-deal,.pf-hub-decision-no-deal) { grid-column:2; grid-row:1 / span 2; }
  .pf-hub-decision-promo { grid-column:1 / -1; grid-row:3; grid-template-columns:minmax(0,1fr) auto; gap:var(--space-xs); }
  .pf-hub-decision-cost.is-price-pending .pf-hub-decision-promo { grid-row:2; }
  body.prop-hub-v3 .pf-directory .pf-hub-decision-promo>a { display:-webkit-box; overflow:hidden; white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .pf-hub-decision-promo .ds-coupon-code { width:auto; max-width:100%; }
  .pf-directory .pf-hub-decision-cta { grid-column:1 / -1; align-self:end; }
  .pf-hub-decision-evidence { grid-template-columns:var(--pf-ledger-columns); min-height:48px; }
  .pf-hub-company-meta { grid-column:1 / span 3; padding:var(--space-sm) var(--space-md); padding-left:calc(64px + var(--space-md)); border-top:var(--stroke-width) solid var(--color-border-soft); }
  .pf-hub-evidence-facts { grid-column:4; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:var(--stroke-width) solid var(--color-border-soft); border-left:var(--stroke-width) solid var(--color-border-soft); }
  .pf-hub-evidence-facts>* { padding:var(--space-sm) var(--space-md); border:0!important; }
  body.prop-hub-v3 .pf-directory .pf-hub-decision-secondary-actions { grid-column:5; gap:var(--space-xs); padding:var(--space-sm); border-top:var(--stroke-width) solid var(--color-border-soft); border-left:var(--stroke-width) solid var(--color-border-soft); }
  body.prop-hub-v3 .pf-directory .pf-hub-decision-secondary-actions>a,
  body.prop-hub-v3 .pf-directory .pf-hub-details-toggle { min-width:0; min-height:var(--button-compact-height); padding:var(--space-sm); font-size:var(--font-caption); white-space:nowrap; }
  body.prop-hub-v3 .pf-directory .pf-hub-decision-secondary-actions>a { gap:var(--space-xs); }
  .pf-board-row.is-compare-selected .pf-hub-decision-card { background:var(--record-surface); border-color:var(--offer-partner-border); box-shadow:inset var(--focus-width) 0 0 var(--color-accent); }
}

@media (min-width:521px) and (max-width:1024px) {
  .pf-hub-identity-group { grid-template-columns:clamp(68px,10vw,80px) minmax(0,1fr) clamp(104px,16vw,128px); }
}

@media (max-width:760px) {
  .pf-hub-decision-copy strong { font-size:var(--font-body-small); }
  .pf-hub-rule,.pf-hub-evidence-facts>* { padding:var(--space-sm); }
  .pf-hub-decision-commercial { gap:var(--space-sm); padding:var(--space-sm); }
  .pf-hub-company-meta,.pf-hub-decision-secondary-actions { padding:var(--space-sm); }
  .pf-hub-decision-secondary-actions>a { flex:1; }
}

@media (max-width:520px) {
  .pf-hub-decision-commercial { grid-template-columns:1fr; }
  .pf-hub-decision-cost { min-height:var(--button-height); }
  .pf-hub-evidence-facts { grid-template-columns:1fr; }
  .pf-hub-evidence-facts>*:nth-child(even) { border-left:0; }
  .pf-hub-evidence-facts>*+* { border-top:var(--stroke-width) solid var(--color-border-soft); }
}

/* Score explanation is positioned by directory.js, never clipped by a record. */
.pf-hub-fit-popover { display:none; position:absolute; z-index:var(--award-layer); top:50%; left:calc(100% + var(--space-sm)); width:420px; padding:var(--space-lg); border:var(--stroke-width) solid var(--color-border-strong); border-radius:var(--radius-card); background:var(--color-surface-card); box-shadow:var(--shadow-card); color:var(--color-text); transform:translateY(-50%); }
.pf-hub-fit-popover.is-fit-popover-open { display:grid; gap:var(--space-lg); }
.pf-hub-fit-popover-summary { display:flex; align-items:baseline; gap:var(--space-sm); }
.pf-hub-fit-popover-summary>small { color:var(--color-text-muted); font-family:var(--font-family-data); }
.pf-hub-fit-popover-summary b { color:var(--color-accent); font-size:var(--font-h3); }
.pf-hub-fit-popover-summary em { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-hub-fit-popover-summary>strong { margin-left:auto; color:var(--color-accent); font-size:var(--font-caption); }
.pf-hub-fit-popover-heading { display:flex; justify-content:space-between; color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-hub-fit-popover-scale { display:grid; gap:var(--space-md); }
.pf-hub-fit-popover-metric { display:grid; grid-template-columns:minmax(72px,.8fr) minmax(0,2.4fr) var(--space-xl); align-items:center; gap:var(--space-md); font-size:var(--font-caption); }
.pf-hub-fit-popover-metric small { grid-column:1; grid-row:1; color:var(--color-text-muted); }
.pf-hub-fit-popover-metric>b { grid-column:3; grid-row:1; color:var(--color-text); font:var(--font-weight-label) var(--font-caption)/1 var(--font-family-data); text-align:right; }
.pf-hub-fit-popover-meter { display:block; grid-column:2; grid-row:1; width:100%; height:var(--space-sm); overflow:hidden; border-radius:var(--radius-pill); background:var(--color-surface-raised); }
.pf-hub-fit-popover-meter i { display:block; width:var(--pf-fit-component-score); height:100%; border-radius:inherit; background:var(--color-accent); }
.pf-hub-fit-model-trace { display:flex; justify-content:space-between; align-items:center; gap:var(--space-sm); }
.pf-hub-fit-model-trace>span { display:grid; gap:var(--space-xs); font-size:var(--font-caption); }
.pf-hub-fit-model-trace small { color:var(--color-accent); font-family:var(--font-family-data); }
.pf-hub-fit-model-signature { display:grid; gap:var(--space-xs); padding-top:var(--space-md); border-top:var(--stroke-width) solid var(--color-border); color:var(--color-text-muted); font-size:var(--font-caption); }

@media (min-width:1101px) {
  body.prop-hub-v3.has-fit-popover-positioning .pf-directory .pf-hub-fit-popover { position:fixed; top:-9999px; left:-9999px; transform:none; }
}

/* Country lookup and its expanded search/results states. */
.pf-country-checker { display:grid; grid-template-columns:2fr 1fr; gap:var(--space-xl); }
.pf-country-index-head { grid-column:1 / -1; }
.pf-country-index-head p { margin-top:var(--space-md); }
.pf-country-guide-title { margin-bottom:var(--space-lg); }
.pf-country-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-md); margin-top:var(--space-lg); }
.pf-country-guide-grid>a { display:flex; align-items:center; gap:var(--space-md); padding:var(--space-lg) 0; border-bottom:var(--stroke-width) solid var(--color-border); }
.pf-country-guide-grid>a>svg { margin-left:auto; color:var(--color-accent); }
.pf-country-guide-grid :is(strong,small) { display:block; }
.pf-country-guide-grid small { margin-top:var(--space-xs); color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-country-guide-flag img,.pf-country-index-flag img { width:var(--primitive-size-28); height:var(--primitive-size-20); object-fit:contain; }
.pf-country-index-all { margin-top:var(--space-lg); }
.pf-country-index-all summary { display:flex; justify-content:space-between; align-items:center; padding:var(--space-md); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); cursor:pointer; }
.pf-country-index-summary-copy { display:flex; align-items:center; gap:var(--space-md); }
.pf-country-index-summary-copy>span { display:grid; gap:var(--space-xs); }
.pf-country-index-summary-copy small { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-country-index-browser { display:none; margin-top:var(--space-lg); }
.pf-country-index-all[open]+.pf-country-index-browser { display:block; }
.pf-country-index-search { display:flex; align-items:center; gap:var(--space-md); }
.pf-country-index-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-sm); max-height:420px; overflow:auto; padding:0; margin:var(--space-lg) 0 0; list-style:none; }
.pf-directory .pf-country-index-list button { display:flex; align-items:center; gap:var(--space-md); width:100%; padding:var(--space-md); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); color:var(--color-text); background:transparent; text-align:left; cursor:pointer; }
.pf-country-index-list button>span:nth-child(2) { display:grid; gap:var(--space-xs); }
.pf-country-index-list button small { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-country-index-list button>svg { margin-left:auto; color:var(--color-accent); }
.pf-country-index-list button:is(:hover,.is-active) { border-color:var(--color-accent); background:var(--color-accent-soft); }
.pf-country-panel { padding:var(--space-lg); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); align-self:start; }
.pf-country-panel-kicker { color:var(--color-accent); font:var(--font-weight-label) var(--font-label)/var(--line-height-caption) var(--font-family-data); text-transform:uppercase; letter-spacing:var(--tracking-label); }
.pf-country-picker { display:block; margin-top:var(--space-md); }
body.prop-hub-v3 .pf-directory #leaderboard .pf-country-picker { display:block; width:100%; min-height:0; margin:var(--space-md) 0 0; padding:0; border:0; border-radius:0; background:transparent; }
body.prop-hub-v3 .pf-directory #leaderboard .pf-country-picker select { min-height:var(--button-height); padding:var(--space-sm) calc(var(--select-chevron-inset) + var(--select-chevron-size) + var(--space-md)) var(--space-sm) var(--space-md); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); background:var(--color-surface-control); color:var(--color-text); font:var(--font-weight-body) var(--font-body-small)/var(--line-height-body) var(--font-family); }
body.prop-hub-v3 .pf-directory #leaderboard .pf-country-picker:focus-within { border:0; outline:0; }
.pf-country-checker-copy { display:none; }
.pf-country-review-count { display:flex; gap:var(--space-md); align-items:baseline; margin-top:var(--space-lg); }
.pf-country-review-count>b { color:var(--color-accent); font:var(--font-weight-heading) var(--font-metric)/var(--line-height-heading) var(--font-family-data); }
.pf-country-status-grid { display:grid; gap:var(--space-md); margin-block:var(--space-lg); }
.pf-country-status { display:flex; gap:var(--space-sm); align-items:center; color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-country-status strong { font-weight:var(--font-weight-body); }
.pf-country-status i { width:var(--space-sm); height:var(--space-sm); border-radius:50%; background:var(--color-accent); }
.pf-country-status--verify i { background:var(--color-warning); }
.pf-country-status--blocked i { background:var(--color-negative); }
.pf-country-actions { display:flex; align-items:center; gap:var(--space-lg); }
.pf-country-guide-link { display:flex; align-items:center; gap:var(--space-sm); color:var(--color-accent); font-size:var(--font-caption); }
.pf-country-firms { grid-column:1 / -1; }
.pf-country-firms-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--space-lg); }
.pf-country-firms-head>div:first-child { display:grid; gap:var(--space-xs); }
.pf-country-firms-head strong { font-size:var(--font-caption); color:var(--color-text-muted); font-weight:var(--font-weight-body); }
.pf-country-firms-tabs { display:flex; gap:var(--space-sm); }
.pf-country-firms-tabs [aria-selected='true'] { background:var(--color-accent-soft); color:var(--color-accent); }
.pf-country-firms-list { display:grid; grid-template-columns:1fr 1fr; gap:0 var(--space-xl); }
.pf-country-firm-row { display:grid; grid-template-columns:var(--primitive-size-40) minmax(0,1fr) 1fr auto; align-items:center; gap:var(--space-md); padding:var(--space-lg) 0; border-top:var(--stroke-width) solid var(--color-border); }
.pf-country-firm-logo img { width:var(--primitive-size-40); height:var(--primitive-size-40); object-fit:contain; }
.pf-country-firm-identity { display:grid; gap:var(--space-xs); }
.pf-country-firm-identity small,.pf-country-firm-status { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-country-firm-fit { display:grid; gap:var(--space-xs); color:var(--color-accent); font-family:var(--font-family-data); }
.pf-country-firm-fit small { font-size:var(--font-label); color:var(--color-text-muted); }
.pf-country-firm-view { display:none; }
.pf-country-firms-footer { display:flex; align-items:center; gap:var(--space-lg); margin-top:var(--space-lg); color:var(--color-text-muted); }

/* Comparison selection and matrix. */
.pf-compare-head { display:flex; justify-content:space-between; gap:var(--space-xl); margin-bottom:var(--space-xl); }
.pf-compare-head p { margin-top:var(--space-md); }
.pf-compare-status { display:grid; align-content:center; text-align:right; color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-compare-status strong { color:var(--color-accent); font-size:var(--font-h3); font-family:var(--font-family-data); }
.pf-compare-matrix-wrap { max-height:min(72vh,calc(var(--space-section) * 12)); overflow:auto; overscroll-behavior:contain; border:var(--stroke-width) solid var(--record-border); border-radius:var(--radius-control); background:var(--record-surface); scrollbar-color:var(--color-border-strong) var(--record-surface); }
.pf-directory .pf-compare-matrix { border-collapse:separate; border-spacing:0; }
.pf-compare-label-column { width:var(--record-action-min-width); }
.pf-directory .pf-compare-matrix :is(th,td) { padding:var(--table-cell-block) var(--table-cell-inline); vertical-align:middle; line-height:var(--line-height-body); border-bottom-color:var(--color-border-soft); background:var(--record-surface); }
.pf-directory .pf-compare-matrix td { border-inline-start:var(--stroke-width) solid var(--color-border-soft); }
.pf-directory .pf-compare-matrix tr:last-child>* { border-bottom:0; }
.pf-directory .pf-compare-matrix tr:hover>* { background:var(--record-surface-hover); }
.pf-directory .pf-compare-matrix .pf-compare-firm-row>* { position:sticky; top:0; z-index:2; height:calc(var(--space-section) + var(--space-xl)); background:var(--color-surface-raised); border-bottom-color:var(--color-border-strong); }
.pf-directory .pf-compare-matrix .pf-compare-firm-row:hover>* { background:var(--color-surface-raised); }
.pf-directory .pf-compare-matrix .pf-compare-firm-row>th { z-index:3; color:var(--color-accent); font-family:var(--font-family-data); }
.pf-directory .pf-compare-matrix .is-group-start>* { border-top:var(--stroke-width) solid var(--color-border-strong); }
.pf-directory .pf-compare-matrix .is-score-row td>strong { color:var(--color-accent); font-family:var(--font-family-data); font-size:var(--font-h3); line-height:var(--line-height-heading); }
.pf-directory .pf-compare-matrix td.is-best { background:var(--color-accent-soft); }
.pf-directory .pf-compare-matrix .is-warning-row th { color:var(--color-warning); }
.pf-directory .pf-compare-matrix th { position:sticky; left:0; z-index:1; color:var(--color-text-muted); font-size:var(--font-caption); font-weight:var(--font-weight-label); }
.pf-compare-firm { display:flex; min-width:0; gap:var(--space-md); align-items:center; }
.pf-compare-firm>.pf-firm-mark { flex:none; }
.pf-compare-firm>.pf-firm-mark .pf-firm-award { --pf-award-size:var(--primitive-size-20); }
.pf-compare-firm-copy { display:grid; flex:1; min-width:0; gap:var(--space-xs); }
.pf-compare-firm-copy>a { font-weight:var(--font-weight-heading); font-size:var(--font-body); line-height:var(--line-height-heading); }
.pf-compare-firm-copy small { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-directory .pf-compare-firm button { display:grid; place-items:center; flex:none; padding:0; width:var(--primitive-size-28); height:var(--primitive-size-28); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-inner); background:var(--color-surface-control); color:var(--color-text-muted); font-size:var(--font-h4); line-height:1; cursor:pointer; }
.pf-directory .pf-compare-firm button:hover { color:var(--color-text); border-color:var(--color-border-strong); }
.pf-compare-dock-item button { display:grid; place-items:center; flex:none; padding:0; width:var(--space-lg); height:var(--space-lg); border:0; border-radius:var(--radius-inner); background:transparent; color:var(--color-text-muted); cursor:pointer; }
.pf-directory .pf-compare-matrix td>strong { display:block; margin-bottom:var(--space-xs); color:var(--color-text); font-size:var(--font-body-small); font-weight:var(--font-weight-heading); }
.pf-directory .pf-compare-matrix td>span { color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-compare-token-list { display:flex; flex-wrap:wrap; gap:var(--space-sm); }
.pf-compare-token { padding:var(--space-xs) var(--space-sm); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-inner); background:var(--color-surface-raised); color:var(--color-text-muted); font-size:var(--font-caption); }
.pf-compare-platform-list { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-sm); }
.pf-compare-offer { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-sm); }
.pf-compare-offer>strong { color:var(--color-accent); font-size:var(--font-body-small); }
.pf-compare-offer-code { display:inline-flex; align-items:center; gap:var(--space-xs); padding:var(--space-xs) var(--space-sm); border:var(--stroke-width) dashed var(--offer-partner-border); border-radius:var(--radius-inner); background:var(--color-accent-soft); color:var(--color-accent); }
.pf-compare-offer-code small { font-size:var(--font-label); text-transform:uppercase; }
.pf-compare-offer-code b { font-family:var(--font-family-data); font-size:var(--font-caption); letter-spacing:var(--tracking-label); }
.pf-compare-best { display:block; color:var(--color-accent); font-size:var(--font-caption); margin-top:var(--space-sm); }
.pf-compare-source-link { display:block; margin-top:var(--space-sm); color:var(--color-accent); font-size:var(--font-caption); }
.pf-trust-stars { display:flex; gap:var(--space-xs); }
.pf-trust-star { color:var(--color-accent); }
.pf-trust-star svg { fill:currentColor; }
.pf-compare-dock { position:fixed; z-index:50; bottom:0; left:0; width:100%; padding:var(--space-md) 0 calc(var(--space-md) + env(safe-area-inset-bottom)); border-top:var(--stroke-width) solid var(--color-border-strong); background:var(--color-surface-raised); box-shadow:0 calc(var(--space-md) * -1) var(--space-xl) rgba(0,0,0,.32); color:var(--color-text); }
.pf-compare-dock.is-at-matrix { visibility:hidden; }
.pf-compare-dock-inner { display:flex; align-items:center; gap:var(--space-lg); width:calc(100% - var(--space-xl) * 2); max-width:var(--width-page); margin-inline:auto; }
.pf-compare-dock-copy { display:flex; align-items:center; gap:var(--space-lg); }
.pf-compare-dock-summary { display:grid; font-size:var(--font-caption); color:var(--color-text-muted); }
.pf-compare-dock-summary strong { display:flex; align-items:baseline; gap:var(--space-xs); }
.pf-compare-dock-summary b { color:var(--color-accent); font:var(--font-weight-heading) var(--font-h3)/var(--line-height-heading) var(--font-family-data); }
.pf-compare-dock-summary i { font-style:normal; }
.pf-compare-dock .pf-compare-clear { border-color:var(--color-negative); background:var(--color-negative-surface); color:var(--color-negative); }
.pf-compare-dock-list { display:grid; grid-template-columns:repeat(var(--pf-compare-count),minmax(0,1fr)); flex:1; min-width:0; gap:var(--space-md); }
.pf-compare-dock-item { display:flex; min-width:0; align-items:center; gap:var(--space-sm); }
.pf-compare-dock-firm { display:grid; flex:1; min-width:0; gap:var(--space-xs); }
.pf-compare-dock-firm strong { font-size:var(--font-caption); }
.pf-compare-dock-firm small { color:var(--color-text-muted); font-size:var(--font-label); }
.pf-compare-dock-launch { display:grid; gap:var(--space-xs); text-align:center; }
.pf-compare-dock-launch small { font-size:var(--font-caption); color:var(--color-text-muted); }

/* Tools, FAQ and partner sidecar. */
.pf-toolkit-rail { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:var(--space-xl); border-block:var(--stroke-width) solid var(--color-border); }
.pf-toolkit-item { display:flex; gap:var(--space-lg); padding:var(--space-xl); }
.pf-toolkit-item+.pf-toolkit-item { border-left:var(--stroke-width) solid var(--color-border); }
.pf-toolkit-icon { color:var(--color-accent); }
.pf-toolkit-icon svg { width:var(--space-lg); height:var(--space-lg); }
.pf-toolkit-copy { display:grid; gap:var(--space-md); }
.pf-toolkit-copy>small { color:var(--color-accent); font-family:var(--font-family-data); }
.pf-toolkit-copy>strong { font-size:var(--font-h4); letter-spacing:var(--tracking-heading); }
.pf-toolkit-copy>span { color:var(--color-text-muted); font-size:var(--font-body-small); line-height:var(--line-height-reading); }
.pf-toolkit-copy>b { display:flex; align-items:center; gap:var(--space-sm); color:var(--color-accent); font-size:var(--font-body-small); }
@media (min-width:1041px) {
  body.prop-hub-v3 .pf-directory .pf-toolkit-item:first-child { padding-left:0; }
}
.pf-faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-xl); margin-top:var(--space-xl); }
.pf-faq-item { border-top:var(--stroke-width) solid var(--color-border); }
.pf-faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-lg); padding:var(--space-lg) 0; cursor:pointer; }
.pf-faq-item summary strong { font-size:var(--font-body); font-weight:var(--font-weight-heading); }
.pf-faq-item[open] summary svg { transform:rotate(180deg); }
.pf-directory .pf-faq-item p { padding-bottom:var(--space-lg); padding-right:var(--space-xl); }
/* Hidden is an explicit interaction state, independent of layout display rules. */
.pf-directory [hidden],.pf-compare-dock[hidden] { display:none !important; }
.pf-special-offer.is-active .pf-special-offer-copy { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-sm); }
.pf-special-offer.is-active .pf-special-offer-code { grid-column:1 / -1; width:100%; }
.pf-special-offer.is-active .pf-special-offer-code>span { text-align:center; }
.pf-special-offer.is-active .pf-special-offer-flag { display:grid; place-items:center; position:absolute; left:var(--space-lg); top:0; width:var(--primitive-size-28); height:var(--primitive-size-32); border-radius:0 0 var(--radius-inner) var(--radius-inner); color:var(--button-primary-text); background:var(--button-primary-bg); }
.pf-special-offer.is-supporting .pf-special-offer-proof { display:flex; font-family:var(--font-family-data); white-space:nowrap; }
.pf-special-offer.is-supporting .pf-special-offer-proof>:is(i,a) { display:none; }
.pf-special-offer.is-supporting .pf-special-offer-copy small { font-family:var(--font-family); font-size:var(--font-label); padding:var(--space-xs) var(--space-sm); }
.pf-quick-filters { display:flex; gap:var(--space-xs); border:var(--stroke-width) solid var(--color-border); padding:var(--space-xs); border-radius:var(--radius-control); background:var(--color-surface-card); }
.pf-quick-filters .pf-filter { border-color:transparent; min-height:var(--button-compact-height); padding-inline:var(--space-md); background:transparent; }
.pf-quick-filters .pf-filter.is-active { background:var(--button-primary-bg); color:var(--button-primary-text); }
.pf-hub-offer-toggle>i { position:relative; width:var(--primitive-size-40); height:var(--space-lg); border:var(--stroke-width) solid var(--color-border-strong); border-radius:var(--radius-pill); background:var(--color-surface-raised); }
.pf-hub-offer-toggle>i::before { content:''; position:absolute; left:var(--focus-width); top:var(--focus-width); width:var(--primitive-size-18); height:var(--primitive-size-18); border-radius:50%; background:var(--color-text-muted); transition:transform var(--duration-fast) var(--ease-out); }
.pf-hub-offer-toggle[aria-pressed="true"]>i::before { background:var(--color-accent); transform:translateX(var(--space-md)); }
.pf-board-row--rank-1 .pf-hub-decision-card { --pf-program-rank:var(--ranking-rank-first); --pf-program-rank-surface:color-mix(in srgb,var(--ranking-rank-first) 9%,transparent); }
.pf-board-row--rank-2 .pf-hub-decision-card { --pf-program-rank:var(--ranking-rank-second); --pf-program-rank-surface:color-mix(in srgb,var(--ranking-rank-second) 8%,transparent); }
.pf-board-row--rank-3 .pf-hub-decision-card { --pf-program-rank:var(--ranking-rank-third); --pf-program-rank-surface:color-mix(in srgb,var(--ranking-rank-third) 9%,transparent); }
.pf-hub-podium-label { color:var(--pf-program-rank); font:var(--font-weight-label) var(--font-label)/var(--line-height-caption) var(--font-family-data); letter-spacing:var(--tracking-label); text-transform:uppercase; }
.pf-hub-evidence-labelled { display:grid; align-content:center; justify-content:start; gap:var(--space-xs); }
.pf-directory .pf-hub-decision-secondary-actions>a { min-height:var(--button-compact-height); padding:var(--space-sm) var(--space-md); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); background:var(--color-surface-hover); color:var(--color-text); }
.pf-fit-pattern-copy { position:relative; z-index:1; }
.pf-directory .pf-fit-matrix thead th { position:relative; }
.pf-fit-pattern-code { display:flex; align-items:baseline; gap:var(--space-xs); position:absolute; right:var(--space-lg); top:var(--space-md); font-size:var(--font-h3); font-family:var(--font-family-data); color:var(--color-text-decorative); opacity:.45; }
.pf-fit-pattern-code>i { color:var(--color-accent); }
.pf-fit-match.is-selected { background:var(--color-accent-soft); box-shadow:inset 0 0 0 var(--stroke-width) var(--offer-partner-border); }
.pf-board-row.is-compare-selected .pf-hub-decision-card { background:var(--color-accent-soft); border-color:var(--offer-partner-border); }

/* Responsive composition. Keep the desktop ledger dense, then progressively
   turn each research surface into a readable touch-first decision flow. */
@media (max-width:1180px) {
  .pf-directory>.container { width:calc(100% - var(--space-lg) * 2); }
  .pf-directory .trust-section,.pf-directory .pf-country-checker { margin-top:var(--space-2xl); }

  .pf-special-offer-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .pf-special-offer.is-active { grid-column:1; grid-row:auto; }
  .pf-special-offer.is-supporting { grid-column:1; grid-template-columns:minmax(0,1.4fr) minmax(120px,.65fr) minmax(112px,auto); grid-template-rows:auto auto; }
  .pf-special-offer.is-supporting .pf-special-offer-identity { grid-column:1; grid-row:1; }
  .pf-special-offer.is-supporting .pf-special-offer-deal { grid-column:2; grid-row:1; }
  .pf-special-offer.is-supporting .pf-special-offer-code { grid-column:3; grid-row:1; }
  .pf-special-offer.is-supporting .pf-special-offer-proof { grid-column:1 / 3; grid-row:2; }
  .pf-special-offer.is-supporting .pf-special-offer-action { grid-column:3; grid-row:2; }

  .pf-fit-matrix-shell { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-color:var(--color-border-strong) transparent; }
  .pf-directory .pf-fit-matrix { min-width:860px; }

  .pf-hub-directory-head { grid-template-columns:1fr; align-items:start; }
  .pf-hub-directory-actions { justify-items:start; }
  .pf-hub-controls { flex-wrap:wrap; }
  .pf-workspace-search { flex-basis:100%; }
  .pf-advanced-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-lg); }
  .pf-hub-filter-group--availability { grid-column:1 / -1; }
  .pf-hub-filter-group--availability .pf-hub-filter-fields { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; }

  .pf-country-checker { grid-template-columns:1fr; }
  .pf-country-index-head,.pf-country-firms { grid-column:1; }

  .pf-compare-dock-inner { gap:var(--space-md); width:calc(100% - var(--space-lg) * 2); }
  .pf-compare-dock-copy { gap:var(--space-md); }
  .pf-compare-dock-list { gap:var(--space-sm); }
  .pf-compare-dock-firm small { display:none; }
}

@media (max-width:900px) {
  .pf-toolkit-rail { grid-template-columns:1fr; }
  .pf-toolkit-item { padding:var(--space-lg) 0; }
  .pf-toolkit-item+.pf-toolkit-item { border-top:var(--stroke-width) solid var(--color-border); border-left:0; }
}

@media (max-width:760px) {
  body.public-prop-directory { overflow-x:clip; }
  .pf-directory .pf-prop-global-nav { scrollbar-width:none; }
  .pf-directory .pf-prop-global-nav::-webkit-scrollbar { display:none; }
  .pf-directory { padding-bottom:calc(var(--space-section) + env(safe-area-inset-bottom)); }
  .pf-directory>.container { width:calc(100% - var(--primitive-size-24)); }
  .pf-directory [id] { scroll-margin-top:calc(var(--prop-page-nav-reserve) + var(--space-lg)); }
  .pf-directory .trust-section,.pf-directory .pf-country-checker { margin-top:var(--space-2xl); }
  .pf-directory h1 { font-size:clamp(34px,10.5vw,46px); }
  .pf-directory h2 { font-size:clamp(26px,7.5vw,var(--font-h2)); }

  .pf-directory .pf-decision-hero { padding:var(--space-xl) 0 var(--space-2xl); }
  .pf-directory .pf-decision-hero-copy { gap:var(--space-md); }
  .pf-directory .trust-subtitle { font-size:var(--font-body-small); }
  .pf-directory .pf-decision-actions { display:grid; width:100%; grid-template-columns:1fr; gap:var(--space-sm); }
  .pf-directory .pf-decision-actions .ds-button { width:100%; justify-content:center; }

  .pf-special-offers-title-row { align-items:flex-start; flex-direction:column; gap:var(--space-md); }
  .pf-special-offers-controls { width:100%; justify-content:flex-end; }
  .pf-special-offers-count { margin-right:auto; }
  .pf-special-offer.is-supporting { display:none; }
  .pf-special-offer.is-active { grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto auto; gap:var(--space-md); padding:var(--space-lg); }
  .pf-special-offer.is-active .pf-special-offer-primary { display:grid; grid-template-columns:1fr; gap:var(--space-lg); padding-block:var(--space-md) 0; }
  .pf-special-offer.is-active .pf-special-offer-identity { width:100%; }
  .pf-special-offer.is-active .pf-special-offer-deal { max-width:none; padding:0; border-left:0; }
  .pf-special-offer.is-active .pf-special-offer-deal>strong { font-size:var(--font-h3); }
  .pf-special-offer.is-active .pf-special-offer-action { min-width:0; width:auto; }
  .pf-partner-inventory-slot { grid-template-columns:var(--button-compact-height) minmax(0,1fr); padding:var(--space-md); }
  .pf-partner-inventory-mark { width:var(--button-compact-height); height:var(--button-compact-height); }
  .pf-partner-inventory-action { width:100%; grid-column:1 / -1; }

  .pf-fit-matrix-shell { overflow:visible; }
  .pf-directory .pf-fit-matrix { display:block; min-width:0; width:100%; }
  .pf-directory .pf-fit-matrix thead { display:none; }
  .pf-directory .pf-fit-matrix tbody { display:grid; gap:var(--space-md); }
  .pf-directory .pf-fit-matrix tr { display:grid; overflow:hidden; border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); background:var(--color-surface-card); }
  .pf-directory .pf-fit-matrix :is(th,td) { display:block; width:100%; padding:var(--space-md); border:0; }
  .pf-directory .pf-fit-matrix tbody th { border-bottom:var(--stroke-width) solid var(--color-border); background:var(--color-surface-raised); }
  .pf-directory .pf-fit-matrix tbody td { display:grid; grid-template-columns:minmax(96px,.45fr) var(--primitive-size-40) minmax(0,1fr); align-items:center; gap:var(--space-sm); border-top:var(--stroke-width) solid var(--color-border-soft); }
  .pf-directory .pf-fit-matrix tbody th+td { border-top:0; }
  .pf-fit-match-profile { display:block; color:var(--color-text-muted); font-size:var(--font-caption); }
  .pf-fit-match-score { margin:0; font-size:var(--font-h4); }
  .pf-fit-rules-link { grid-column:3; margin-top:var(--space-xs); }
  .pf-fit-matrix-legend { gap:var(--space-sm) var(--space-md); }
  .pf-fit-matrix-legend>span { flex-basis:calc(50% - var(--space-md)); }

  .pf-hub-directory-head { gap:var(--space-lg); }
  .pf-hub-directory-title-row { align-items:flex-start; flex-direction:column; gap:var(--space-sm); }
  .pf-hub-directory-actions { width:100%; }
  .pf-hub-directory-links { flex-wrap:wrap; width:100%; gap:var(--space-sm) var(--space-md); overflow:visible; padding-bottom:0; }
  .pf-hub-directory-links a { white-space:nowrap; }
  .pf-hub-sort-control { display:grid; width:100%; grid-template-columns:auto minmax(0,1fr); }
  .pf-hub-sort-select { min-width:0; }
  .pf-hub-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-sm); }
  .pf-workspace-search,.pf-quick-filters,.pf-hub-offer-toggle { grid-column:1 / -1; }
  .pf-quick-filters { width:100%; }
  .pf-quick-filters .pf-filter { flex:1; min-width:0; padding-inline:var(--space-sm); }
  .pf-directory :is(.pf-mobile-filter-toggle,.pf-hub-compare-summary,.pf-hub-offer-toggle) { width:100%; min-width:0; justify-content:center; }
  .pf-advanced-filters { grid-template-columns:1fr; gap:var(--space-xl); padding:var(--space-md); }
  .pf-hub-filter-group--availability { grid-column:1; }
  .pf-hub-filter-fields,.pf-hub-filter-group--availability .pf-hub-filter-fields { display:grid; grid-template-columns:1fr; align-items:stretch; }
  .pf-hub-secondary-filters { flex-wrap:wrap; }
  .pf-hub-secondary-filters .pf-filter { flex:1; }
  .pf-availability-toggle { min-height:var(--button-compact-height); }

  .pf-board-wrap { overflow:visible; }
  .pf-directory #pfBoard { min-width:0; border-spacing:0 var(--space-sm); }
  .pf-hub-decision-card { overflow:visible; }
  .pf-hub-firm-lockup { gap:var(--space-sm); }
  .pf-hub-decision-copy :is(strong,small) { white-space:normal; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .pf-hub-company-meta { flex-wrap:wrap; gap:var(--space-sm) var(--space-lg); }
  .pf-hub-decision-secondary-actions { gap:var(--space-sm); }
  .pf-directory .pf-hub-decision-secondary-actions>a,.pf-directory .pf-hub-details-toggle { min-width:0; justify-content:center; text-align:center; }
  .pf-board-pagination { align-items:stretch; flex-direction:column; gap:var(--space-md); }
  .pf-board-pagination .ds-button { width:100%; justify-content:center; }

  .pf-country-guide-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--space-md); }
  .pf-country-guide-grid>a { min-width:0; gap:var(--space-sm); padding:var(--space-md) 0; }
  .pf-country-guide-grid>a>span:nth-child(2) { min-width:0; }
  .pf-country-guide-grid strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .pf-country-index-list { grid-template-columns:1fr; }
  .pf-country-panel { padding:var(--space-md); }
  .pf-country-actions { display:grid; grid-template-columns:1fr; gap:var(--space-md); }
  .pf-country-actions .ds-button { width:100%; justify-content:center; }
  .pf-country-guide-link { justify-content:center; min-height:var(--button-compact-height); }
  .pf-country-firms-head { align-items:flex-start; flex-direction:column; gap:var(--space-md); }
  .pf-country-firms-tabs { width:100%; overflow-x:auto; padding-bottom:var(--space-xs); scrollbar-width:none; }
  .pf-country-firms-tabs::-webkit-scrollbar { display:none; }
  .pf-country-firms-tabs .ds-button { flex:none; }
  .pf-country-firms-list { grid-template-columns:1fr; }
  .pf-country-firm-row { grid-template-columns:var(--primitive-size-40) minmax(0,1fr) auto; gap:var(--space-sm); }
  .pf-country-firm-status { grid-column:2 / -1; }
  .pf-country-firms-footer { align-items:flex-start; flex-direction:column; }

  .pf-compare-head { align-items:flex-start; flex-direction:column; gap:var(--space-md); }
  .pf-compare-status { text-align:left; }
  .pf-compare-matrix-wrap { width:100%; max-height:68vh; }
  .pf-directory .pf-compare-matrix { width:max-content; min-width:100%; }
  .pf-compare-label-column { width:112px; }
  .pf-directory .pf-compare-matrix :is(th,td) { padding:var(--space-md); }
  .pf-directory .pf-compare-matrix tr>*:not(:first-child) { min-width:210px; }
  .pf-directory .pf-compare-matrix .pf-compare-firm-row>* { height:auto; min-height:var(--space-section); }
  .pf-compare-firm-copy>a { font-size:var(--font-body-small); }

  .pf-compare-dock { padding:var(--space-sm) 0 calc(var(--space-sm) + env(safe-area-inset-bottom)); }
  .pf-compare-dock-inner { width:calc(100% - var(--primitive-size-24)); gap:var(--space-sm); }
  .pf-compare-dock-copy { gap:var(--space-sm); }
  .pf-compare-dock-list { display:none; }
  .pf-compare-dock-launch { margin-left:auto; }
  .pf-compare-dock-launch small { display:none; }
  .pf-compare-dock .ds-button { min-height:var(--button-compact-height); padding-inline:var(--space-md); }

  .pf-faq-grid { grid-template-columns:1fr; gap:0; }
  .pf-faq-column+.pf-faq-column { margin-top:0; }
  .pf-faq-item summary { min-height:var(--button-height); padding:var(--space-md) 0; }
  .pf-directory .pf-faq-item p { padding-right:0; }
}

@media (max-width:520px) {
  .pf-hub-identity-group { grid-template-columns:52px minmax(0,1fr); }
  .pf-hub-identity-group>* { padding:var(--space-sm); }
  .pf-hub-decision-rank { grid-row:1 / span 2; }
  .pf-hub-decision-rank-position b { font-size:var(--font-h4); }
  .pf-directory .pf-hub-decision-rank-position img { width:var(--primitive-size-32); height:var(--primitive-size-32); }
  .pf-directory .pf-hub-decision-firm { grid-column:2; }
  .pf-hub-decision-fit { grid-column:2; border-top:var(--stroke-width) solid var(--color-border-soft); }
  .pf-directory .pf-hub-fit-trigger { grid-template-columns:auto var(--primitive-size-40) auto; align-items:center; justify-content:center; }
  .pf-hub-fit-score { width:var(--primitive-size-40); height:var(--primitive-size-40); }
  .pf-hub-fit-score-ring::after { inset:3px; }
  .pf-hub-fit-score b { font-size:var(--font-h4); }
}

@media (max-width:420px) {
  .pf-directory>.container { width:calc(100% - var(--primitive-size-16)); }
  .pf-hub-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pf-hub-compare-summary { grid-column:1 / -1; grid-row:4; }
  .pf-hub-offer-toggle { grid-column:2; grid-row:3; }
  .pf-mobile-filter-toggle { grid-column:1; grid-row:3; }

  .pf-hub-decision-rules { grid-template-columns:repeat(2,minmax(0,1fr)); }

  .pf-directory .pf-fit-matrix tbody td { grid-template-columns:minmax(0,1fr) auto; }
  .pf-fit-match-reason { grid-column:1 / -1; }
  .pf-fit-rules-link { grid-column:1 / -1; }
  .pf-fit-matrix-legend>span { flex-basis:100%; }

  .pf-country-guide-grid { grid-template-columns:1fr; }
  .pf-country-guide-grid strong { white-space:normal; }
  .pf-country-index-summary-copy { gap:var(--space-sm); }
  .pf-country-review-count { gap:var(--space-sm); }

  .pf-compare-label-column { width:96px; }
  .pf-directory .pf-compare-matrix tr>*:not(:first-child) { min-width:190px; }
  .pf-compare-dock-summary i { display:none; }
  .pf-compare-dock .pf-compare-clear { padding-inline:var(--space-sm); }
  .pf-compare-dock-launch .ds-button { padding-inline:var(--space-sm); }

  .pf-toolkit-item { gap:var(--space-md); }
  .pf-toolkit-copy { gap:var(--space-sm); }
}

@media (max-width:360px) {
  .pf-compare-dock-summary>span { display:none; }
  .pf-compare-dock-launch .ds-button>svg { display:none; }
}
