.psf-finder {
	--psf-accent: #2563eb;
	--psf-accent-dark: #1d4ed8;
	--psf-border: #dfe3e8;
	--psf-muted: #5f6b7a;
	background: #fff;
	border: 1px solid var(--psf-border);
	border-radius: 14px;
	box-shadow: 0 8px 30px rgba(15, 23, 42, .06);
	color: #172033;
	font: inherit;
	margin: 1.5rem 0;
	overflow: hidden;
}

.psf-header { background: #f7f9fc; border-bottom: 1px solid var(--psf-border); padding: clamp(1.25rem, 3vw, 2rem); }
.psf-title { font-size: clamp(1.5rem, 3vw, 2.15rem); margin: 0; }
.psf-intro { color: var(--psf-muted); margin: .65rem 0 0; max-width: 70ch; }
.psf-avatar-disclaimer { background: #fff7df; border: 1px solid #e8c86a; border-radius: 8px; color: #5c4510; font-size: .88rem; margin-top: 1rem; padding: .75rem 1rem; }
.psf-body { padding: clamp(1.25rem, 3vw, 2rem); }
.psf-entry-title { font-size: 1.25rem; margin: 0 0 .35rem; }
.psf-mode-title { margin-top: 2rem; }
.psf-guide-grid { display: grid; gap: .85rem; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 1.25rem 0; }
.psf-guide-card, .psf-mode-card { background: #fff; border: 1px solid var(--psf-border); border-radius: 10px; color: inherit; cursor: pointer; display: flex; font: inherit; text-align: left; transition: border-color .15s, box-shadow .15s, transform .15s; }
.psf-guide-card { align-items: center; flex-direction: column; min-height: 205px; overflow: hidden; padding: 0 0 1rem; }
.psf-guide-card:hover, .psf-guide-card.is-selected, .psf-mode-card:hover { border-color: var(--psf-accent); box-shadow: 0 5px 18px rgba(37, 99, 235, .12); transform: translateY(-1px); }
.psf-guide-card.is-selected { background: #eff6ff; box-shadow: 0 0 0 2px var(--psf-accent); }
.psf-guide-card img { height: 116px; object-fit: contain; object-position: bottom center; width: 100%; }
.psf-guide-copy { display: flex; flex-direction: column; gap: .35rem; padding: .65rem .8rem 0; text-align: center; }
.psf-guide-copy small, .psf-mode-card small { color: var(--psf-muted); font-size: .82rem; font-weight: 400; line-height: 1.4; }
.psf-mode-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1rem; }
.psf-mode-card { flex-direction: column; gap: .35rem; padding: 1.15rem; }
.psf-mode-card strong { font-size: 1.05rem; }
.psf-progress { background: #e7ecf3; border-radius: 999px; height: 7px; overflow: hidden; }
.psf-progress-bar { background: var(--psf-accent); display: block; height: 100%; transition: width .2s ease; }
.psf-step { color: var(--psf-muted); font-size: .86rem; margin: .7rem 0 1.25rem; }
.psf-question { font-size: clamp(1.25rem, 2.5vw, 1.7rem); margin: 0 0 .4rem; }
.psf-question-block { border: 0; margin: 0 0 1.5rem; padding: 0; }
.psf-question-block + .psf-question-block { border-top: 1px solid var(--psf-border); padding-top: 1.25rem; }
.psf-help { color: var(--psf-muted); font-size: .94rem; margin: 0 0 1rem; }
.psf-choices { display: grid; gap: .75rem; margin-top: 1.25rem; }
.psf-choice { align-items: center; border: 1px solid var(--psf-border); border-radius: 9px; cursor: pointer; display: flex; gap: .75rem; padding: .9rem 1rem; transition: border-color .15s, background .15s; }
.psf-choice:hover, .psf-choice.is-selected { background: #eff6ff; border-color: var(--psf-accent); }
.psf-choice input { accent-color: var(--psf-accent); height: 1rem; margin: 0; width: 1rem; }
.psf-choice-copy { display: flex; flex-direction: column; gap: .2rem; }
.psf-choice-copy small { color: var(--psf-muted); font-size: .82rem; font-weight: 400; }
.psf-choice-has-image { align-items: center; display: grid; grid-template-columns: auto 86px 1fr; min-height: 106px; }
.psf-choice-avatar { height: 86px; object-fit: contain; object-position: bottom center; width: 86px; }
.psf-actions { display: flex; gap: .75rem; justify-content: flex-end; margin-top: 1.5rem; }
.psf-button, .psf-card-link { border: 0; border-radius: 7px; cursor: pointer; display: inline-block; font: inherit; font-weight: 650; line-height: 1.2; padding: .78rem 1.15rem; text-decoration: none; }
.psf-button-primary, .psf-card-link { background: var(--psf-accent); color: #fff; }
.psf-button-primary:hover, .psf-card-link:hover { background: var(--psf-accent-dark); color: #fff; }
.psf-button-secondary { background: #edf0f4; color: #253047; }
.psf-error, .psf-no-results { color: #a32929; }
.psf-results-header { align-items: baseline; display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; margin-bottom: 1rem; }
.psf-results-title { margin: 0; }
.psf-result-group { border-top: 1px solid var(--psf-border); margin-top: 1.5rem; padding-top: 1.25rem; }
.psf-group-title { font-size: 1.35rem; margin: 0 0 .3rem; }
.psf-group-intro { color: var(--psf-muted); margin: 0 0 1rem; max-width: 75ch; }
.psf-safety-group { background: #fff7ed; border: 1px solid #f0b477; border-radius: 10px; margin-top: 1rem; padding: 1rem; }
.psf-safety-group .psf-card { background: #fff; border-color: #e8a15d; }
.psf-result-count { color: var(--psf-muted); font-size: .9rem; }
.psf-results { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin-bottom: 1.25rem; }
.psf-card { border: 1px solid var(--psf-border); border-radius: 10px; display: flex; flex-direction: column; overflow: hidden; }
.psf-card-image { aspect-ratio: 16 / 9; height: auto; object-fit: cover; width: 100%; }
.psf-card-content { align-items: flex-start; display: flex; flex: 1; flex-direction: column; padding: 1rem; }
.psf-badge { background: #e7f7ed; border-radius: 999px; color: #17643a; font-size: .74rem; font-weight: 700; margin-bottom: .65rem; padding: .25rem .55rem; }
.psf-card-title { font-size: 1.12rem; margin: 0 0 .5rem; }
.psf-card-excerpt { color: var(--psf-muted); font-size: .92rem; margin: 0 0 1rem; }
.psf-basis { background: #f5f7fa; border-radius: 6px; color: #465267; font-size: .8rem; margin: 0 0 .8rem; padding: .55rem .65rem; }
.psf-reasons, .psf-cautions { font-size: .84rem; margin: 0 0 .9rem; width: 100%; }
.psf-reasons strong, .psf-cautions strong { display: block; margin-bottom: .25rem; }
.psf-reasons ul, .psf-cautions ul { margin: 0; padding-left: 1.1rem; }
.psf-cautions { background: #fff5f2; border-left: 3px solid #d2684d; padding: .6rem .7rem; }
.psf-card-link { font-size: .88rem; margin-top: auto; }
.psf-offers { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: auto; width: 100%; }
.psf-offers .psf-card-link { margin-top: 0; text-align: center; }
.psf-product-toggle { margin: 1.5rem 0 1rem; }
.psf-product-section { background: #f7f9fc; border-radius: 10px; padding: 1rem; }
.psf-products-note { color: var(--psf-muted); font-size: .85rem; }
.psf-disclaimer { border-top: 1px solid var(--psf-border); color: var(--psf-muted); font-size: .8rem; margin: 0; padding: 1rem clamp(1.25rem, 3vw, 2rem); }
.psf-status { height: 1px; overflow: hidden; position: absolute; width: 1px; clip: rect(0 0 0 0); }
.psf-filter-toolbar { align-items: center; background: #f7f9fc; border: 1px solid var(--psf-border); border-radius: 9px; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1.25rem; padding: .8rem 1rem; }
.psf-guide-filter { align-items: center; display: flex; flex-wrap: wrap; gap: .55rem; }
.psf-guide-select { background: #fff; border: 1px solid var(--psf-border); border-radius: 6px; font: inherit; padding: .48rem .65rem; }
.psf-filter-layout { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(220px, 300px) 1fr; }
.psf-filter-panel { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); margin-bottom: 1.25rem; }
.psf-filter-panel .psf-filter { border: 1px solid var(--psf-border); border-radius: 9px; margin: 0; padding: 1rem; }
.psf-filters { border-right: 1px solid var(--psf-border); padding-right: 1.25rem; }
.psf-filter { border: 0; margin: 0 0 1.4rem; padding: 0; }
.psf-filter-title { font-weight: 700; margin-bottom: .55rem; }
.psf-filter .psf-choice { border: 0; border-radius: 4px; padding: .38rem .45rem; }
.psf-filter .psf-choices { gap: .2rem; margin-top: .5rem; }
.psf-filter .psf-question { font-size: .96rem; }
.psf-filter .psf-help { font-size: .8rem; }
.psf-live-results { min-width: 0; }
.psf-live-results > .psf-results-title { margin-top: 0; }
.psf-clear { margin-bottom: 1rem; width: 100%; }

/* Decision-first results: one recommendation per approach. */
.psf-safety-panel { background: #fff7ed; border: 1px solid #f0b477; border-radius: 10px; margin-top: 1rem; padding: 1rem 1.1rem; }
.psf-safety-panel .psf-group-title { font-size: 1.15rem; }
.psf-safety-panel ul { margin: .65rem 0 0; padding-left: 1.2rem; }
.psf-track-tabs { margin-top: 1.25rem; }
.psf-tabs-label { color: var(--psf-muted); font-size: .86rem; font-weight: 700; margin: 0 0 .5rem; text-transform: uppercase; letter-spacing: .035em; }
.psf-tablist { border-bottom: 1px solid var(--psf-border); display: flex; gap: .3rem; overflow-x: auto; scrollbar-width: thin; }
.psf-tab { background: transparent; border: 0; border-bottom: 3px solid transparent; color: var(--psf-muted); cursor: pointer; flex: 0 0 auto; font: inherit; font-weight: 700; padding: .75rem 1rem .65rem; white-space: nowrap; }
.psf-tab:hover, .psf-tab.is-active { border-bottom-color: var(--psf-accent); color: #172033; }
.psf-tab-panel { padding-top: 1rem; }
.psf-track-intro { color: var(--psf-muted); font-size: .9rem; margin: 0 0 .9rem; }
.psf-plan { border: 1px solid var(--psf-border); border-radius: 12px; overflow: hidden; }
.psf-plan-summary { padding: clamp(1.15rem, 3vw, 1.75rem); }
.psf-plan-kicker { color: var(--psf-accent-dark); display: block; font-size: .78rem; font-weight: 800; letter-spacing: .04em; margin-bottom: .45rem; text-transform: uppercase; }
.psf-plan-title { font-size: clamp(1.3rem, 3vw, 1.75rem); margin: .1rem 0 .55rem; }
.psf-plan-excerpt { color: #465267; margin: 0 0 1rem; max-width: 70ch; }
.psf-solution-link { color: var(--psf-accent-dark); display: inline-block; font-weight: 700; margin-top: .55rem; text-underline-offset: 3px; }
.psf-guide-greeting, .psf-guide-results-intro { background: #f7f9fc; border-left: 3px solid var(--psf-accent); color: #344054; line-height: 1.55; margin: .8rem 0 1.1rem; padding: .75rem .9rem; }
.psf-plan .psf-badge { display: inline-block; margin: 0 0 .4rem; }
.psf-plan .psf-reasons, .psf-plan .psf-cautions { max-width: 70ch; }
.psf-bundle { background: #f7f9fc; border-top: 1px solid var(--psf-border); padding: clamp(1rem, 3vw, 1.4rem); }
.psf-bundle-title { font-size: 1.05rem; margin: 0 0 .8rem; }
.psf-product-row { align-items: center; background: #fff; border: 1px solid var(--psf-border); border-radius: 9px; display: grid; gap: .8rem; grid-template-columns: 64px minmax(0, 1fr) auto; margin-top: .65rem; padding: .65rem; }
.psf-product-image { border-radius: 6px; height: 64px; object-fit: contain; width: 64px; }
.psf-product-title { font-size: .96rem; margin: 0; }
.psf-product-summary { color: var(--psf-muted); font-size: .8rem; line-height: 1.35; margin: .2rem 0 0; }
.psf-product-offers { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; }
.psf-product-link { background: var(--psf-accent); border-radius: 6px; color: #fff; display: inline-block; font-size: .78rem; font-weight: 700; padding: .58rem .72rem; text-decoration: none; white-space: nowrap; }
.psf-product-link:hover { background: var(--psf-accent-dark); color: #fff; }
.psf-supplementary-products { border-top: 1px solid var(--psf-border); margin-top: 2rem; padding-top: 1.4rem; }
.psf-supplementary-group { margin-top: 1.2rem; }
.psf-supplementary-title { font-size: 1.05rem; margin: 0 0 .45rem; }
.psf-voice-direct .psf-plan-excerpt, .psf-voice-direct .psf-track-intro { max-width: 62ch; }
.psf-voice-gentle .psf-plan { border-radius: 14px; }
.psf-bundle-button { margin-top: 1rem; text-align: center; }
.psf-product-role + .psf-product-role { border-top: 1px solid var(--psf-border); margin-top: 1rem; padding-top: 1rem; }
.psf-product-role-title { color: #344054; font-size: .82rem; letter-spacing: .02em; margin: 0 0 .4rem; text-transform: capitalize; }
.psf-product-chooser { align-items: center; color: var(--psf-muted); display: flex; flex-wrap: wrap; font-size: .8rem; gap: .5rem; margin: .55rem 0 0; }
.psf-product-select { background: #fff; border: 1px solid var(--psf-border); border-radius: 6px; color: #172033; font: inherit; max-width: 100%; padding: .5rem .65rem; }
.psf-alternatives { border-top: 1px solid var(--psf-border); margin-top: 1rem; padding-top: .35rem; }
.psf-alternatives-summary { color: var(--psf-accent-dark); cursor: pointer; font-weight: 700; list-style-position: inside; padding: .75rem .2rem; }
.psf-alternatives-list { display: grid; gap: 1rem; padding-top: .4rem; }
.psf-alternative-reason { background: #f7f9fc; border-left: 3px solid #94a3b8; color: var(--psf-muted); font-size: .86rem; margin: 0 0 -.55rem; padding: .65rem .8rem; }
.psf-plan-alternative .psf-plan-kicker { color: #526176; }
.psf-plan-alternative .psf-plan-title { font-size: clamp(1.15rem, 2.5vw, 1.45rem); }

@media (max-width: 680px) {
	.psf-finder { border-left: 0; border-radius: 0; border-right: 0; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
	.psf-header, .psf-body, .psf-disclaimer { padding-left: 1rem; padding-right: 1rem; }
	.psf-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.psf-mode-grid { grid-template-columns: 1fr; }
	.psf-filter-toolbar { align-items: stretch; flex-direction: column; }
	.psf-choice-has-image { grid-template-columns: auto 68px 1fr; }
	.psf-choice-avatar { height: 68px; width: 68px; }
	.psf-filter-layout { grid-template-columns: 1fr; }
	.psf-filters { border-bottom: 1px solid var(--psf-border); border-right: 0; padding-bottom: .5rem; padding-right: 0; }
	.psf-actions .psf-button { flex: 1; }
	.psf-results-title { font-size: 1.25rem; }
	.psf-tablist { margin-left: -1rem; margin-right: -1rem; padding-left: .7rem; padding-right: .7rem; }
	.psf-tab { padding-left: .75rem; padding-right: .75rem; }
	.psf-plan { border-radius: 9px; }
	.psf-product-row { align-items: start; grid-template-columns: 52px minmax(0, 1fr); }
	.psf-product-image { height: 52px; width: 52px; }
	.psf-product-offers { grid-column: 1 / -1; justify-content: stretch; }
	.psf-product-link { flex: 1; text-align: center; }
	.psf-product-chooser { align-items: stretch; flex-direction: column; }
	.psf-product-select { width: 100%; }
	.psf-bundle-button { display: block; width: 100%; }
}

@media (max-width: 420px) {
	.psf-guide-grid { grid-template-columns: 1fr; }
	.psf-guide-card { min-height: 0; }
	.psf-guide-card img { height: 92px; }
	.psf-actions { flex-direction: column-reverse; }
	.psf-actions .psf-button { width: 100%; }
}
