/* CoinPayBank Core components. Uses theme custom properties with fallbacks. */

.cpb-tool,
.cpb-box,
.cpb-newsletter,
.cpb-network,
.cpb-progress,
.cpb-premium,
.cpb-faq {
	--_r: 14px;
	box-sizing: border-box;
	color: var(--cpb-ink, #0F172A);
	font-family: inherit;
}
.cpb-tool *,
.cpb-newsletter *,
.cpb-box * { box-sizing: border-box; }

.screen-reader-text:not(:focus) {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important;
	width: 1px; word-wrap: normal !important;
}

/* ---------- Tool shell ---------- */
.cpb-tool {
	background: var(--cpb-bg, #FFFFFF);
	border: 1px solid var(--cpb-line, #DCE3EC);
	border-radius: var(--_r);
	padding: clamp(16px, 3vw, 28px);
	margin: 2rem 0;
	box-shadow: 0 1px 2px rgba(11, 31, 58, .04), 0 8px 24px -12px rgba(11, 31, 58, .12);
	scroll-margin-top: 96px;
}
.cpb-tool__title {
	font-family: "Fraunces", Georgia, serif;
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
	line-height: 1.2;
	margin: 0 0 1rem;
	color: var(--cpb-ink, #0F172A);
}
.cpb-tool__title::before {
	content: "";
	display: inline-block;
	width: .6em; height: .6em;
	margin-right: .5em;
	border-radius: 3px;
	background: var(--cpb-mint, #3DDC97);
	vertical-align: .08em;
}
.cpb-tool__body { display: grid; gap: 1.25rem; }
@media (min-width: 860px) {
	.cpb-tool--loan-calculator .cpb-tool__body,
	.cpb-tool--liquidation-simulator .cpb-tool__body { grid-template-columns: 1.2fr 1fr; align-items: start; }
	.cpb-tool--loan-calculator .cpb-tool__note,
	.cpb-tool--liquidation-simulator .cpb-tool__note { grid-column: 1 / -1; }
}
.cpb-tool__note,
.cpb-rates__note,
.cpb-rates__meta {
	font-size: .875rem;
	color: var(--cpb-muted, #5B6B82);
	margin: .75rem 0 0;
}
.cpb-tool__foot {
	display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between;
	margin-top: 1.25rem; padding-top: 1rem;
	border-top: 1px solid var(--cpb-line, #DCE3EC);
}
.cpb-tool__foot .cpb-mini-disclaimer { margin: 0; }
.cpb-tool__sources { font-size: .875rem; font-weight: 600; }

.cpb-tool a,
.cpb-box a,
.cpb-network a,
.cpb-faq a { color: var(--cpb-mint-dark, #1F9E6A); }

/* ---------- Mini disclaimer ---------- */
.cpb-mini-disclaimer {
	display: flex; gap: .5em; align-items: flex-start;
	font-size: .8125rem; line-height: 1.45;
	color: var(--cpb-muted, #5B6B82);
	margin: 1rem 0;
}
.cpb-mini-disclaimer__icon {
	flex: none; width: 1.1em; height: 1.1em; margin-top: .1em;
	border-radius: 50%;
	border: 1.5px solid currentColor;
	position: relative;
}
.cpb-mini-disclaimer__icon::after {
	content: ""; position: absolute; left: 50%; top: 22%;
	width: 1.5px; height: 40%; background: currentColor; transform: translateX(-50%);
	box-shadow: 0 .3em 0 currentColor;
}

/* ---------- Forms ---------- */
.cpb-form { margin: 0; }
.cpb-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.cpb-filters { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin-bottom: 1rem; }
.cpb-field { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.cpb-field label { font-weight: 600; font-size: .875rem; color: var(--cpb-ink, #0F172A); }
.cpb-field__help { font-size: .8rem; color: var(--cpb-muted, #5B6B82); margin: 0; }
.cpb-input {
	display: flex; align-items: stretch;
	border: 1px solid var(--cpb-line, #DCE3EC);
	border-radius: 10px;
	background: var(--cpb-bg, #FFFFFF);
	overflow: hidden;
}
.cpb-input:focus-within { border-color: var(--cpb-mint-dark, #1F9E6A); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cpb-mint, #3DDC97) 35%, transparent); }
.cpb-input__affix {
	display: flex; align-items: center; padding: 0 .65rem;
	background: var(--cpb-bg-soft, #F4F7FB);
	color: var(--cpb-muted, #5B6B82); font-size: .875rem;
}
.cpb-input input { border: 0 !important; box-shadow: none !important; outline: none; flex: 1; min-width: 0; }
.cpb-tool input[type="number"],
.cpb-tool input[type="email"],
.cpb-tool input[type="text"],
.cpb-tool select,
.cpb-newsletter input[type="email"] {
	font: inherit; font-size: 1rem;
	padding: .6rem .75rem;
	color: var(--cpb-ink, #0F172A);
	background: var(--cpb-bg, #FFFFFF);
	border: 1px solid var(--cpb-line, #DCE3EC);
	border-radius: 10px;
	width: 100%;
	min-height: 44px;
}
.cpb-input--sm { max-width: 120px; }
.cpb-input--sm input { padding: .4rem .5rem; min-height: 38px; }
.cpb-tool select:focus-visible,
.cpb-tool input:focus-visible,
.cpb-newsletter input:focus-visible { outline: 3px solid var(--cpb-mint, #3DDC97); outline-offset: 1px; }

.cpb-field--range { margin-top: 1rem; }
.cpb-field--range label { display: flex; justify-content: space-between; }
.cpb-field--range output { font-variant-numeric: tabular-nums; color: var(--cpb-mint-dark, #1F9E6A); font-weight: 700; }
.cpb-tool input[type="range"] {
	-webkit-appearance: none; appearance: none;
	width: 100%; height: 8px; border-radius: 99px; margin: .75rem 0;
	background: linear-gradient(90deg, var(--cpb-mint, #3DDC97), var(--cpb-amber, #F2A93B) 50%, var(--cpb-red, #E5484D));
}
.cpb-tool input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none; width: 26px; height: 26px; border-radius: 50%;
	background: var(--cpb-bg, #FFFFFF); border: 3px solid var(--cpb-navy, #0B1F3A); cursor: pointer;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
}
.cpb-tool input[type="range"]::-moz-range-thumb {
	width: 22px; height: 22px; border-radius: 50%;
	background: var(--cpb-bg, #FFFFFF); border: 3px solid var(--cpb-navy, #0B1F3A); cursor: pointer;
}
.cpb-tool input[type="range"]:focus-visible { outline: 3px solid var(--cpb-mint, #3DDC97); outline-offset: 4px; }

/* ---------- Results ---------- */
.cpb-results {
	background: var(--cpb-bg-soft, #F4F7FB);
	border-radius: 12px;
	padding: 1rem 1.1rem;
}
.cpb-results__list { margin: 0; display: grid; gap: .1rem; }
.cpb-result {
	display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
	padding: .55rem 0; border-bottom: 1px dashed var(--cpb-line, #DCE3EC);
}
.cpb-result:last-child { border-bottom: 0; }
.cpb-result dt { color: var(--cpb-muted, #5B6B82); font-size: .9rem; }
.cpb-result dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }

.cpb-status {
	margin: .75rem 0 0; padding: .7rem .9rem .7rem 2.3rem;
	border-radius: 10px; font-size: .9rem; line-height: 1.45; position: relative;
	border: 1px solid transparent;
}
.cpb-status:empty { display: none; }
.cpb-status::before {
	content: ""; position: absolute; left: .85rem; top: .95rem;
	width: .8rem; height: .8rem; border-radius: 50%; background: currentColor;
}
.cpb-status--green { background: color-mix(in srgb, var(--cpb-mint, #3DDC97) 16%, var(--cpb-bg, #FFFFFF)); border-color: color-mix(in srgb, var(--cpb-mint, #3DDC97) 50%, transparent); }
.cpb-status--green::before { background: var(--cpb-mint-dark, #1F9E6A); }
.cpb-status--amber { background: color-mix(in srgb, var(--cpb-amber, #F2A93B) 16%, var(--cpb-bg, #FFFFFF)); border-color: color-mix(in srgb, var(--cpb-amber, #F2A93B) 55%, transparent); }
.cpb-status--amber::before { background: var(--cpb-amber, #F2A93B); border-radius: 2px; transform: rotate(45deg); }
.cpb-status--red { background: color-mix(in srgb, var(--cpb-red, #E5484D) 13%, var(--cpb-bg, #FFFFFF)); border-color: color-mix(in srgb, var(--cpb-red, #E5484D) 50%, transparent); }
.cpb-status--red::before { background: var(--cpb-red, #E5484D); border-radius: 2px; }
.cpb-status--muted { background: var(--cpb-bg, #FFFFFF); border-color: var(--cpb-line, #DCE3EC); color: var(--cpb-muted, #5B6B82); }

/* ---------- Tables ---------- */
.cpb-table-wrap {
	overflow-x: auto; -webkit-overflow-scrolling: touch;
	border: 1px solid var(--cpb-line, #DCE3EC);
	border-radius: 12px;
	max-width: 100%;
}
.cpb-table-wrap:focus-visible { outline: 3px solid var(--cpb-mint, #3DDC97); outline-offset: 2px; }
.cpb-table {
	width: 100%; border-collapse: collapse; min-width: 640px;
	font-size: .9rem; font-variant-numeric: tabular-nums; margin: 0;
}
.cpb-table th,
.cpb-table td {
	padding: .7rem .85rem; text-align: left; vertical-align: top;
	border-bottom: 1px solid var(--cpb-line, #DCE3EC);
}
.cpb-table thead th {
	background: var(--cpb-bg-soft, #F4F7FB);
	font-size: .78rem; text-transform: uppercase; letter-spacing: .04em;
	color: var(--cpb-muted, #5B6B82); white-space: nowrap;
	position: sticky; top: 0;
}
.cpb-table tbody tr:last-child > * { border-bottom: 0; }
.cpb-table tbody tr:hover { background: color-mix(in srgb, var(--cpb-mint, #3DDC97) 6%, transparent); }
.cpb-table tbody th { font-weight: 700; }
.cpb-sort {
	all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: .35em;
	font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit;
	border-radius: 4px;
}
.cpb-sort:focus-visible { outline: 2px solid var(--cpb-mint-dark, #1F9E6A); outline-offset: 2px; }
.cpb-sort__icon { width: 0; height: 0; border: 4px solid transparent; border-top-color: currentColor; opacity: .35; margin-top: 4px; }
th[aria-sort="ascending"] .cpb-sort__icon { border-top-color: transparent; border-bottom-color: currentColor; margin-top: -4px; opacity: 1; }
th[aria-sort="descending"] .cpb-sort__icon { opacity: 1; }
th[aria-sort="ascending"],
th[aria-sort="descending"] { color: var(--cpb-ink, #0F172A); }
.cpb-rates__empty { padding: 1rem; color: var(--cpb-muted, #5B6B82); }
.cpb-compare__table td { vertical-align: middle; }
.cpb-compare__risk { font-size: .85rem; color: var(--cpb-muted, #5B6B82); min-width: 220px; }

/* ---------- Pills ---------- */
.cpb-pill {
	display: inline-block; padding: .2em .65em; border-radius: 99px;
	font-size: .75rem; font-weight: 700; letter-spacing: .02em; line-height: 1.5;
	white-space: nowrap; border: 1px solid transparent;
}
.cpb-pill--green { background: color-mix(in srgb, var(--cpb-mint, #3DDC97) 22%, transparent); color: var(--cpb-ink, #0F172A); border-color: color-mix(in srgb, var(--cpb-mint, #3DDC97) 55%, transparent); }
.cpb-pill--green::before { content: "\25CF  "; color: var(--cpb-mint-dark, #1F9E6A); }
.cpb-pill--amber { background: color-mix(in srgb, var(--cpb-amber, #F2A93B) 22%, transparent); color: var(--cpb-ink, #0F172A); border-color: color-mix(in srgb, var(--cpb-amber, #F2A93B) 55%, transparent); }
.cpb-pill--red { background: color-mix(in srgb, var(--cpb-red, #E5484D) 16%, transparent); color: var(--cpb-ink, #0F172A); border-color: color-mix(in srgb, var(--cpb-red, #E5484D) 50%, transparent); }
.cpb-pill--red::before { content: "\00D7  "; color: var(--cpb-red, #E5484D); }
.cpb-pill--muted { background: var(--cpb-bg-soft, #F4F7FB); color: var(--cpb-muted, #5B6B82); border-color: var(--cpb-line, #DCE3EC); }
.cpb-pill--navy { background: var(--cpb-navy, #0B1F3A); color: #fff; }

/* ---------- Buttons ---------- */
.cpb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	font: inherit; font-weight: 700; font-size: .95rem;
	padding: .65rem 1.15rem; min-height: 44px;
	border-radius: 10px; border: 2px solid transparent; cursor: pointer;
	text-decoration: none; transition: transform .1s ease, background .15s ease;
}
.cpb-btn:focus-visible { outline: 3px solid var(--cpb-mint, #3DDC97); outline-offset: 2px; }
.cpb-btn:active { transform: translateY(1px); }
.cpb-btn--primary { background: var(--cpb-navy, #0B1F3A); color: #fff; }
.cpb-btn--primary:hover { background: var(--cpb-navy-2, #132C50); }
.cpb-btn--ghost { background: transparent; color: var(--cpb-ink, #0F172A); border-color: var(--cpb-line, #DCE3EC); }
.cpb-btn--ghost:hover { border-color: var(--cpb-mint-dark, #1F9E6A); }
.cpb-btn[disabled] { opacity: .6; cursor: progress; }

/* ---------- Content boxes ---------- */
.cpb-box {
	--_tint: var(--cpb-bg-soft, #F4F7FB);
	--_accent: var(--cpb-navy, #0B1F3A);
	margin: 1.75rem 0;
	padding: 1.1rem 1.25rem;
	border-radius: var(--_r);
	background: var(--_tint);
	border: 1px solid color-mix(in srgb, var(--_accent) 22%, transparent);
	border-left: 4px solid var(--_accent);
}
.cpb-box--summary { --_tint: color-mix(in srgb, #3B82F6 9%, var(--cpb-bg, #FFFFFF)); --_accent: #3B82F6; }
.cpb-box--yield { --_tint: color-mix(in srgb, var(--cpb-mint, #3DDC97) 12%, var(--cpb-bg, #FFFFFF)); --_accent: var(--cpb-mint-dark, #1F9E6A); }
.cpb-box--risk { --_tint: color-mix(in srgb, var(--cpb-amber, #F2A93B) 13%, var(--cpb-bg, #FFFFFF)); --_accent: var(--cpb-amber, #F2A93B); }
.cpb-box--steps { --_tint: var(--cpb-bg-soft, #F4F7FB); --_accent: var(--cpb-navy-2, #132C50); }
.cpb-box--sources { --_tint: var(--cpb-bg, #FFFFFF); --_accent: var(--cpb-muted, #5B6B82); font-size: .9rem; }
.cpb-box__title {
	display: flex; align-items: center; gap: .55rem;
	margin: 0 0 .6rem; font-weight: 800; font-size: .8rem;
	text-transform: uppercase; letter-spacing: .06em;
	color: var(--cpb-ink, #0F172A);
}
.cpb-box__icon {
	flex: none; width: 1.35rem; height: 1.35rem; border-radius: 6px;
	background: var(--_accent); position: relative;
}
.cpb-box__icon::after {
	content: ""; position: absolute; inset: 0; margin: auto;
	background: #fff;
}
/* summary: a single line */
.cpb-box--summary .cpb-box__icon::after { width: 55%; height: 2px; box-shadow: 0 -4px 0 #fff, 0 4px 0 #fff; }
/* yield: rising bar */
.cpb-box--yield .cpb-box__icon::after { width: 2px; height: 50%; box-shadow: -4px 2px 0 #fff, 4px -2px 0 #fff; }
/* risk: exclamation */
.cpb-box--risk .cpb-box__icon { border-radius: 50%; }
.cpb-box--risk .cpb-box__icon::after { width: 2px; height: 42%; transform: translateY(-12%); box-shadow: 0 6px 0 #fff; background: var(--cpb-ink, #0F172A); box-shadow: 0 6px 0 var(--cpb-ink, #0F172A); }
/* steps: check */
.cpb-box--steps .cpb-box__icon::after { width: 40%; height: 22%; background: transparent; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg) translate(1px, -1px); }
/* sources: book */
.cpb-box--sources .cpb-box__icon::after { width: 50%; height: 55%; background: transparent; border: 2px solid #fff; border-radius: 1px; }
.cpb-box__body > :first-child { margin-top: 0; }
.cpb-box__body > :last-child { margin-bottom: 0; }
.cpb-box--steps ol { counter-reset: cpbstep; list-style: none; padding-left: 0; }
.cpb-box--steps ol > li { counter-increment: cpbstep; position: relative; padding-left: 2.2rem; margin: .6rem 0; }
.cpb-box--steps ol > li::before {
	content: counter(cpbstep); position: absolute; left: 0; top: 0;
	width: 1.6rem; height: 1.6rem; border-radius: 50%;
	background: var(--cpb-navy, #0B1F3A); color: #fff;
	font-weight: 700; font-size: .8rem; display: grid; place-items: center;
}

/* ---------- Last reviewed, disclosure ---------- */
.cpb-last-reviewed {
	display: inline-flex; align-items: center; gap: .45em;
	font-size: .85rem; color: var(--cpb-muted, #5B6B82); margin: .5rem 0 1rem;
}
.cpb-last-reviewed__icon { width: .75em; height: .75em; border-radius: 50%; background: var(--cpb-mint, #3DDC97); }
.cpb-disclosure {
	margin: 2rem 0 0; padding: .8rem 1rem;
	font-size: .85rem; color: var(--cpb-muted, #5B6B82);
	background: var(--cpb-bg-soft, #F4F7FB); border-radius: 10px;
	border: 1px solid var(--cpb-line, #DCE3EC);
}

/* ---------- Quiz ---------- */
.cpb-quiz__meta { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; color: var(--cpb-muted, #5B6B82); font-size: .9rem; margin: 0 0 1rem; }
.cpb-quiz__q { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.cpb-quiz__legend { display: flex; flex-direction: column; gap: .35rem; padding: 0; margin-bottom: 1rem; }
.cpb-quiz__count { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--cpb-muted, #5B6B82); font-weight: 700; }
.cpb-quiz__text { font-family: "Fraunces", Georgia, serif; font-size: 1.2rem; line-height: 1.35; color: var(--cpb-ink, #0F172A); }
.cpb-quiz__options { display: grid; gap: .55rem; }
.cpb-quiz__opt { position: relative; }
.cpb-quiz__opt input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.cpb-quiz__opt label {
	display: block; padding: .8rem 1rem .8rem 2.6rem; border-radius: 10px;
	border: 1.5px solid var(--cpb-line, #DCE3EC);
	background: var(--cpb-bg, #FFFFFF); cursor: pointer; position: relative;
	transition: border-color .15s ease, background .15s ease;
}
.cpb-quiz__opt label::before {
	content: ""; position: absolute; left: .95rem; top: 50%; width: 1rem; height: 1rem;
	transform: translateY(-50%); border-radius: 50%;
	border: 2px solid var(--cpb-muted, #5B6B82); background: var(--cpb-bg, #FFFFFF);
}
.cpb-quiz__opt input:checked + label { border-color: var(--cpb-navy, #0B1F3A); background: var(--cpb-bg-soft, #F4F7FB); }
.cpb-quiz__opt input:checked + label::before { border-color: var(--cpb-navy, #0B1F3A); box-shadow: inset 0 0 0 3px var(--cpb-bg, #FFFFFF); background: var(--cpb-navy, #0B1F3A); }
.cpb-quiz__opt input:focus-visible + label { outline: 3px solid var(--cpb-mint, #3DDC97); outline-offset: 2px; }
.cpb-quiz__opt.is-correct label { border-color: var(--cpb-mint-dark, #1F9E6A); background: color-mix(in srgb, var(--cpb-mint, #3DDC97) 14%, var(--cpb-bg, #FFFFFF)); }
.cpb-quiz__opt.is-correct label::after { content: "Correct answer"; display: block; font-size: .75rem; font-weight: 700; color: var(--cpb-mint-dark, #1F9E6A); margin-top: .2rem; }
.cpb-quiz__opt.is-wrong label { border-color: var(--cpb-red, #E5484D); background: color-mix(in srgb, var(--cpb-red, #E5484D) 9%, var(--cpb-bg, #FFFFFF)); }
.cpb-quiz__opt.is-wrong label::after { content: "Your answer"; display: block; font-size: .75rem; font-weight: 700; color: var(--cpb-red, #E5484D); margin-top: .2rem; }
.cpb-quiz__opt input:disabled { cursor: default; }
.cpb-quiz__feedback:empty { display: none; }
.cpb-quiz__stage > .cpb-btn { margin-top: .25rem; }
.cpb-quiz__result { text-align: center; padding: 1rem 0; outline: none; }
.cpb-quiz__score { font-family: "Fraunces", Georgia, serif; font-size: 1.6rem; margin: 0 0 .5rem; }
.cpb-quiz__saving { color: var(--cpb-muted, #5B6B82); margin: 0 0 1rem; }

/* ---------- Badges ---------- */
.cpb-progress__points { font-size: 1.1rem; }
.cpb-badges { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.cpb-badge {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: .25rem;
	padding: 1rem .75rem; border-radius: var(--_r);
	border: 1px solid var(--cpb-line, #DCE3EC); background: var(--cpb-bg, #FFFFFF);
}
.cpb-badge__icon {
	width: 48px; height: 48px; border-radius: 50%; margin-bottom: .35rem;
	background: conic-gradient(from 210deg, var(--cpb-mint, #3DDC97), var(--cpb-mint-dark, #1F9E6A), var(--cpb-mint, #3DDC97));
	box-shadow: inset 0 0 0 6px var(--cpb-bg, #FFFFFF), 0 0 0 2px var(--cpb-mint-dark, #1F9E6A);
}
.cpb-badge.is-locked .cpb-badge__icon { background: var(--cpb-bg-soft, #F4F7FB); box-shadow: inset 0 0 0 6px var(--cpb-bg, #FFFFFF), 0 0 0 2px var(--cpb-line, #DCE3EC); }
.cpb-badge.is-locked { opacity: .8; }
.cpb-badge__name { font-weight: 700; }
.cpb-badge__track { font-size: .8rem; color: var(--cpb-muted, #5B6B82); }
.cpb-badge__state { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--cpb-muted, #5B6B82); }
.cpb-badge.is-earned .cpb-badge__state { color: var(--cpb-mint-dark, #1F9E6A); }
.cpb-progress__note { font-size: .85rem; color: var(--cpb-muted, #5B6B82); }

/* ---------- Newsletter ---------- */
.cpb-newsletter {
	margin: 2rem 0;
	border-radius: var(--_r);
}
.cpb-newsletter--card {
	padding: clamp(20px, 4vw, 36px);
	background: var(--cpb-navy, #0B1F3A);
	color: #E8EEF6;
	background-image: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--cpb-mint, #3DDC97) 22%, transparent) 0%, transparent 55%);
}
.cpb-newsletter--card .cpb-newsletter__title { color: #fff; }
.cpb-newsletter--card .cpb-newsletter__text,
.cpb-newsletter--card .cpb-newsletter__fine,
.cpb-newsletter--card .cpb-newsletter__label { color: #C9D6E6; }
.cpb-newsletter--card .cpb-btn--primary { background: var(--cpb-mint, #3DDC97); color: #0B1F3A; }
.cpb-newsletter--card .cpb-btn--primary:hover { background: #5EE6AB; }
.cpb-newsletter--inline { padding: 1rem 0; border-top: 1px solid var(--cpb-line, #DCE3EC); border-bottom: 1px solid var(--cpb-line, #DCE3EC); }
.cpb-newsletter__title { font-family: "Fraunces", Georgia, serif; font-size: 1.5rem; margin: 0 0 .4rem; color: var(--cpb-ink, #0F172A); }
.cpb-newsletter__text { margin: 0 0 1rem; color: var(--cpb-muted, #5B6B82); max-width: 60ch; }
.cpb-newsletter__row { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.cpb-newsletter__label { flex-basis: 100%; font-weight: 600; font-size: .875rem; }
.cpb-newsletter__row input[type="email"] { flex: 1 1 220px; }
.cpb-newsletter--card input[type="email"] { background: #fff; color: #0F172A; border-color: transparent; }
.cpb-newsletter__msg { min-height: 1.4em; margin: .6rem 0 0; font-size: .9rem; font-weight: 600; }
.cpb-newsletter__msg.is-error { color: var(--cpb-red, #E5484D); }
.cpb-newsletter--card .cpb-newsletter__msg.is-error { color: #FFB4B6; }
.cpb-newsletter__msg.is-success { color: var(--cpb-mint-dark, #1F9E6A); }
.cpb-newsletter--card .cpb-newsletter__msg.is-success { color: var(--cpb-mint, #3DDC97); }
.cpb-newsletter__fine { font-size: .8rem; margin: .4rem 0 0; color: var(--cpb-muted, #5B6B82); }
.cpb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Network ---------- */
.cpb-network { margin: 2rem 0; }
.cpb-network__title { font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--cpb-muted, #5B6B82); margin: 0 0 .75rem; }
.cpb-network__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.cpb-network__list a {
	display: flex; flex-direction: column; gap: .2rem; height: 100%;
	padding: .9rem 1rem; border-radius: 12px; text-decoration: none;
	border: 1px solid var(--cpb-line, #DCE3EC); background: var(--cpb-bg, #FFFFFF);
	transition: border-color .15s ease, transform .15s ease;
}
.cpb-network__list a:hover { border-color: var(--cpb-mint-dark, #1F9E6A); transform: translateY(-1px); }
.cpb-network__list a:focus-visible { outline: 3px solid var(--cpb-mint, #3DDC97); outline-offset: 2px; }
.cpb-network__name { font-weight: 700; color: var(--cpb-ink, #0F172A); }
.cpb-network__desc { font-size: .85rem; color: var(--cpb-muted, #5B6B82); }

/* ---------- Breadcrumbs ---------- */
.cpb-breadcrumbs { font-size: .85rem; color: var(--cpb-muted, #5B6B82); margin: 0 0 1rem; }
.cpb-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem; }
.cpb-breadcrumbs li { display: inline-flex; align-items: center; gap: .35rem; }
.cpb-breadcrumbs a { color: var(--cpb-muted, #5B6B82); text-decoration: underline; text-underline-offset: 2px; }
.cpb-breadcrumbs a:hover { color: var(--cpb-mint-dark, #1F9E6A); }
.cpb-breadcrumbs [aria-current] { color: var(--cpb-ink, #0F172A); }
.cpb-breadcrumbs__sep { opacity: .7; }

/* ---------- FAQ ---------- */
.cpb-faq { margin: 2rem 0; }
.cpb-faq__title { font-family: "Fraunces", Georgia, serif; }
.cpb-faq__item {
	border: 1px solid var(--cpb-line, #DCE3EC); border-radius: 12px;
	margin: .6rem 0; background: var(--cpb-bg, #FFFFFF);
}
.cpb-faq__item summary {
	cursor: pointer; padding: .9rem 2.75rem .9rem 1rem; font-weight: 700; position: relative; list-style: none;
}
.cpb-faq__item summary::-webkit-details-marker { display: none; }
.cpb-faq__item summary::after {
	content: ""; position: absolute; right: 1.1rem; top: 50%;
	width: .55rem; height: .55rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: translateY(-70%) rotate(45deg); transition: transform .15s ease;
}
.cpb-faq__item[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.cpb-faq__item summary:focus-visible { outline: 3px solid var(--cpb-mint, #3DDC97); outline-offset: 2px; border-radius: 12px; }
.cpb-faq__answer { padding: 0 1rem 1rem; color: var(--cpb-ink, #0F172A); }
.cpb-faq__answer > :first-child { margin-top: 0; }

/* ---------- Premium ---------- */
.cpb-premium--locked { position: relative; margin: 1.5rem 0; }
.cpb-premium__teaser { position: relative; max-height: 9em; overflow: hidden; }
.cpb-premium__teaser::after {
	content: ""; position: absolute; inset: auto 0 0 0; height: 5em;
	background: linear-gradient(to bottom, transparent, var(--cpb-bg, #FFFFFF));
}
.cpb-premium__gate {
	padding: 1.1rem 1.25rem; border-radius: var(--_r);
	border: 1px dashed var(--cpb-line, #DCE3EC); background: var(--cpb-bg-soft, #F4F7FB);
}
.cpb-premium__gate p { margin: .4rem 0; }

.cpb-notice { padding: .75rem 1rem; border-left: 4px solid var(--cpb-amber, #F2A93B); background: var(--cpb-bg-soft, #F4F7FB); }

@media (max-width: 600px) {
	.cpb-tool { padding: 16px; border-radius: 12px; }
	.cpb-result { flex-direction: column; gap: .15rem; }
	.cpb-result dd { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
	.cpb-btn, .cpb-network__list a, .cpb-faq__item summary::after, .cpb-quiz__opt label { transition: none; }
}
