/* Calculators module. Built on the theme tokens and tools.css. */
.yc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin: 8px 0 28px; }
.yc > * { margin: 0; }
.yc-form { display: grid; gap: 22px; }
.yc-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.yc-fieldset .yt-q { padding: 0; }
.yt-options--2 { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.yc-field { display: grid; gap: 8px; }
.yc-field[hidden] { display: none; }
.yc-label { font: 650 19px/1.35 var(--sans); color: var(--ink); }
.yc-help { font-size: 16px; line-height: 1.5; color: var(--muted); margin: -2px 0 2px; }
.yc-money { position: relative; max-width: 340px; }
.yc-money > span { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); font: 500 19px/1 var(--sans); color: var(--muted); pointer-events: none; }
.yc-money .yt-input { padding-left: 32px; font-size: 20px; font-variant-numeric: tabular-nums; }
.yc-age { max-width: 140px; font-size: 20px; }
.yc-stepper { display: flex; align-items: stretch; gap: 8px; max-width: 240px; }
.yc-step { flex: 0 0 56px; min-height: 52px; border: 1.5px solid #98a39d; border-radius: 8px; background: var(--paper); color: var(--ink); font: 600 26px/1 var(--sans); cursor: pointer; }
.yc-step:hover { background: var(--accent-wash); border-color: var(--accent); }
.yc-step:focus-visible, .yc .yt-option:focus-within, .yc a:focus-visible, .yc summary:focus-visible, .yc .yt-btn:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.yc-count { text-align: center; font-size: 22px; -moz-appearance: textfield; }
.yc-count::-webkit-inner-spin-button, .yc-count::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.yc-find { font-size: 18px; background: var(--wash); border-radius: 8px; padding: 0 16px; margin-top: -8px; }
.yc-find summary, .yc-how summary { cursor: pointer; font: 650 18px/1.3 var(--sans); color: var(--accent); min-height: 48px; display: flex; align-items: center; }
.yc-find[open] { padding-bottom: 12px; }
.yc-find ol { margin: 0 0 10px; padding-left: 1.3em; }
.yc-find p { margin: 0; }

.yc-result { border: 2px solid var(--accent); }
.yc .yc-result__h { font: 600 clamp(22px, 2.6vw, 26px)/1.2 var(--serif); color: var(--ink); margin: 0 0 12px; }
.yc-result p { margin: 0 0 12px; }
.yc-empty { color: var(--muted); }
.yc-biglabel { font: 600 16px/1.3 var(--sans); color: var(--muted); margin: 0 0 4px !important; text-transform: none; }
.yc-bignum { margin: 0 0 6px !important; font-variant-numeric: tabular-nums; }
.yc-sub { font-size: 18px; }
.yc-links { font-size: 18px; font-weight: 600; }
.yc-duo, .yc-trio { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 10px; }
.yc-trio { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.yc-trio .yc-bignum { font-size: clamp(26px, 3.6vw, 36px); }
.yc-duo > div, .yc-trio > div { background: var(--wash); border-radius: 8px; padding: 12px 14px; min-width: 0; }
.yc-trio .yc-sub { margin: 0 !important; font-size: 15px; color: var(--muted); }
.yc-prov { margin: 6px 0 14px; }
.yc-prov p { margin: 0 !important; font-size: 18px; }

.yc-how { margin-top: 8px; border-top: 1px solid var(--rule); }
.yc-how > div { font-size: 18px; }
.yc-steps { padding-left: 1.3em; margin: 4px 0 12px; }
.yc-steps li { margin-bottom: 8px; }

.yc-tablewrap { margin: 6px 0 12px; border: 1px solid var(--rule); border-radius: 8px; overflow-x: auto; }
.prose .yc-table, .yc-table { width: 100%; border-collapse: collapse; font-size: 17px; line-height: 1.35; font-variant-numeric: tabular-nums; margin: 0; }
.yc-table caption { text-align: left; font: 600 15px/1.35 var(--sans); color: var(--muted); padding: 10px 12px; caption-side: top; }
.prose .yc-table th, .prose .yc-table td, .yc-table th, .yc-table td { min-width: 0; padding: 9px 10px; border-bottom: 1px solid var(--rule); text-align: right; vertical-align: middle; }
.prose .yc-table thead th, .yc-table thead th { background: var(--wash); font: 650 14px/1.25 var(--sans); color: var(--ink); }
.yc-table th:first-child { text-align: left; }
.yc-table tbody th { font-weight: 650; color: var(--ink); }
.yc-table .yc-row65 { background: #fafbf8; }
.yc-table .yc-row65 th, .yc-table .yc-row65 td:nth-child(2) { font-weight: 700; }
.yc-table td.yc-best { background: var(--accent-wash); color: var(--ink); font-weight: 700; }
.yc-table .yc-life { color: var(--accent-strong); }
.yc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.yc-consider h2 { margin-top: 0; }
.yc-consider ul { padding-left: 1.2em; margin: 0; }
.yc-consider li { margin-bottom: 10px; font-size: 18px; }
.yc-consider p { margin: 0 0 12px; }

.yc-foot p, .yc-foot .yc-source { margin: 0 0 8px; }
.yc-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px !important; }

/* Hub */
.yc-cards { list-style: none; padding: 0 !important; margin: 8px 0 20px; display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.yc-cardlink { position: relative; margin: 0 !important; display: flex; flex-direction: column; gap: 8px; transition: border-color .15s; }
.yc-cardlink:hover { border-color: var(--accent); }
.yc-cardlink__h { font: 600 23px/1.2 var(--serif) !important; margin: 0 !important; }
.yc-cardlink__h a { color: var(--ink); text-decoration: none; }
.yc-cardlink__h a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); }
.yc-cardlink__h a:focus-visible { outline: none; }
.yc-cardlink:focus-within { outline: 3px solid var(--accent); outline-offset: 2px; }
.yc-cardlink p { margin: 0; font-size: 18px; }
.yc-cardlink__go { margin-top: auto; font: 650 17px/1.3 var(--sans); color: var(--accent); }

@media (max-width: 640px) {
	.yc-trio { grid-template-columns: 1fr; gap: 8px; }
	.yc-trio > div { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; }
	.yc-trio .yc-bignum { font-size: 28px; }
	.yc-trio .yc-sub { display: none; }
	.yc-duo .yc-bignum { font-size: 28px; }
	.yc-hide-sm { display: none; }
	.prose .yc-tablewrap { margin-inline: -14px; max-width: none; border-radius: 0; border-inline: 0; }
	.prose .yc-table th, .prose .yc-table td, .yc-table th, .yc-table td { padding: 8px 4px; font-size: 14.5px; letter-spacing: -0.01em; }
	.yc-table th:first-child { padding-left: 10px; }
	.yc-table td:last-child, .yc-table th:last-child { padding-right: 10px; }
	.yc-table caption { padding: 8px; }
	.prose .yc-table thead th, .yc-table thead th { font-size: 13px; }
	.yc-money { max-width: none; }
}
@media print {
	.yc-form .yc-help, .yc-find, .yc-step { display: none !important; }
	.yc-result { border-width: 1px; }
	.yc-how > summary { display: none; }
	.yc-tablewrap { overflow: visible; }
}
.yc-table td.yc-hide-sm { white-space: nowrap; }
