/* Certrak Governance Stacks: builds on regtracker.css (.ck-reg-*), adds only what stack and category pages need. */

/* Badges and chips */
.ckst-badge-cadence { background: #EFEFF8; border-color: #D8D8EE; color: #4343AF; }
.ckst-badge-delta   { background: #EFEFF8; border-color: #4343AF; color: #4343AF; }
.ckst-badge-null    { background: #fff; border-color: rgba(0,0,0,0.14); color: #6E6E7A; }
.ckst-level-high    { background: #FDF0EE; border-color: #F2CFC9; color: #9A2F22; }
.ckst-level-medium  { background: #FFF6E8; border-color: #F2E1C2; color: #8A6D1F; }
.ckst-level-low     { background: #EAF5EF; border-color: #CBE5D6; color: #2E6E4E; }

.ckst-chips { display: inline-flex; flex-wrap: wrap; gap: 6px; vertical-align: middle; }
.ckst-chip {
	display: inline-block;
	font-size: 12.5px;
	line-height: 1.2;
	padding: 4px 9px;
	border-radius: 99px;
	border: 1px solid rgba(0,0,0,0.10);
	background: #F7F7F9;
	color: #33323A;
	text-decoration: none;
}
.ckst-chip-theme { background: #EFEFF8; border-color: #D8D8EE; color: #3A3A9C; }
.ckst-chip { font-size: 13px; padding: 4px 10px; }
.ckst-chip-link:hover { border-color: #4343AF; color: #4343AF; }

.ckst-also { font-size: 14px; color: #6E6E7A; margin: -12px 0 20px; }
.ckst-also a { color: #4343AF; text-decoration: none; font-weight: 600; }
.ckst-also a:hover { text-decoration: underline; }

/* Cadence line under the summary */
.ckst-cadence-line { font-size: 14.5px; line-height: 1.5; color: #8A8A96; margin: -10px 0 34px; }
.ckst-single .ck-reg-crumbs { font-size: 14.5px; margin-bottom: 14px; }
.ckst-single h1 { margin-top: 0; }

/* Latest review line */
.ckst-latest {
	display: block;
	text-decoration: none;
	color: inherit;
	border: 1px solid rgba(0,0,0,0.08);
	border-left: 3px solid #4343AF;
	border-radius: 10px;
	background: #FAFAFC;
	padding: 12px 16px;
	margin: 0 0 28px;
	transition: box-shadow .18s ease;
}
.ckst-latest:hover { box-shadow: 0 6px 20px rgba(26,26,29,0.08); }
.ckst-latest-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.ckst-latest-head time { font-weight: 700; font-size: 14px; color: #1A1A1D; }
.ckst-latest-text { display: block; font-size: 15px; line-height: 1.55; color: #33323A; }
.ckst-latest-more { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 600; color: #4343AF; }

/* Retired notice */
.ckst-retired {
	background: #FFF6E8;
	border: 1px solid #F2E1C2;
	border-left: 3px solid #C99A2E;
	border-radius: 8px;
	padding: 12px 16px;
	font-size: 15px;
	line-height: 1.55;
	color: #5A4A1F;
	margin: 0 0 22px;
}
.ckst-retired-line { font-size: 14px; color: #8A8A96; margin: 18px 0 0; }
.ckst-retired-line a { color: #6E6E7A; }

/* Editorial paragraph */
.ckst-editorial { margin: 0 0 36px; padding: 0 0 0 18px; border-left: 3px solid #4343AF; }
.ckst-editorial p { font-size: 17px; line-height: 1.7; color: #1A1A1D; margin: 0 0 12px; }
.ckst-editorial p:last-child { margin-bottom: 0; }

/* Section headings */
.ckst-single h2 {
	font-family: 'Hanken Grotesk', system-ui, sans-serif;
	font-weight: 700;
	font-size: 26px;
	letter-spacing: -.01em;
	color: #1A1A1D;
	margin: 0 0 10px;
}
.ckst-lead { font-size: 16.5px; line-height: 1.65; color: #4A4A54; margin: 0 0 22px; }

/* Use-case cards */
.ckst-patterns { margin: 0 0 48px; }
.ckst-pattern-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
.ckst-pattern { border: 1px solid rgba(0,0,0,0.08); border-radius: 14px; background: #fff; padding: 20px 22px 18px; }
.ckst-pattern-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.ckst-pattern h3 { font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700; font-size: 19px; line-height: 1.3; color: #1A1A1D; margin: 0; }
.ckst-pattern-desc { font-size: 16px; line-height: 1.6; color: #4A4A54; margin: 8px 0 14px; }
.ckst-pattern-chips { display: flex; margin: 0 0 14px; }
.ckst-pattern-meta { border-top: 1px solid rgba(0,0,0,0.06); padding: 12px 0 0 18px; margin: 0; font-size: 14.5px; line-height: 1.6; color: #6E6E7A; list-style: disc; }
.ckst-pattern-meta li { margin: 0 0 4px; padding: 0; }
.ckst-pattern-meta li span { color: #4A4A54; font-weight: 600; }

/* Practice steps */
.ckst-steps { margin: 0 0 48px; }
.ckst-steps ol { margin: 0; padding-left: 0; list-style: none; counter-reset: ckst; }
.ckst-steps li {
	counter-increment: ckst;
	position: relative;
	padding: 0 0 0 46px;
	margin: 0 0 16px;
	font-size: 16.5px;
	line-height: 1.65;
	color: #33323A;
}
.ckst-steps li::before {
	content: counter(ckst);
	position: absolute;
	left: 0;
	top: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #EFEFF8;
	border: 1px solid #D8D8EE;
	color: #4343AF;
	font: 700 14px/26px 'Hanken Grotesk', sans-serif;
	text-align: center;
}

/* Guidance (Why these controls) */
.ckst-guidance { margin: 0 0 40px; }
.ckst-guidance h3 { font-family: 'Hanken Grotesk', system-ui, sans-serif; font-weight: 700; font-size: 24px; letter-spacing: -.01em; color: #1A1A1D; margin: 0 0 10px; }
.ckst-guidance h3 + h3, .ckst-guidance p + h3, .ckst-guidance ul + h3 { font-size: 20px; margin-top: 22px; }
.ckst-guidance h4 { font-size: 16.5px; font-weight: 700; color: #1A1A1D; margin: 16px 0 6px; }
.ckst-guidance p, .ckst-guidance li { font-size: 16px; line-height: 1.7; color: #33323A; }
.ckst-guidance ul { margin: 0 0 12px; padding-left: 22px; }
.ckst-guidance li { margin: 0 0 6px; padding: 0; }
.ckst-guidance a { color: #4343AF; }
.ckst-guidance-note { font-size: 13px; color: #8A8A96; border-top: 1px solid rgba(0,0,0,0.08); padding-top: 10px; margin-top: 16px; }

/* FAQ */
.ckst-faq { margin: 0 0 40px; }
.ckst-faq .ck-faq { margin-top: 6px; }

/* Changelog: the connecting line runs dot to dot, not from the top of the list */
.ckst-changelog { margin: 0 0 20px; scroll-margin-top: 90px; }
.ckst-tl { border-left: 0; }
.ckst-tl li::before { content: ''; position: absolute; left: -3px; top: 10px; bottom: -10px; width: 2px; background: rgba(0,0,0,0.10); }
.ckst-tl li:last-child::before { display: none; }
.ckst-tl .ck-reg-tl-head { flex-wrap: wrap; }
.ckst-tl .ck-reg-tl-title { font-size: 18px; }
.ckst-release-date { font-size: 13.5px; color: #8A8A96; margin: -6px 0 10px; }

/* Index: jump nav and category sections */
.ckst-jump { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 8px; }
.ckst-jump-label { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #8A8A96; margin-right: 4px; }
.ckst-jump a {
	font-size: 13.5px;
	font-weight: 600;
	color: #4343AF;
	text-decoration: none;
	padding: 6px 12px;
	border-radius: 99px;
	border: 1px solid #D8D8EE;
	background: #fff;
}
.ckst-jump a:hover { background: #EFEFF8; }
.ckst-group { scroll-margin-top: 90px; }
.ckst-group-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.ckst-group-head .ck-reg-group-title { margin-bottom: 14px; }
.ckst-group-link { white-space: nowrap; }

/* Category page */
.ckst-cat { max-width: 1100px; margin: 0 auto; padding: 48px 40px 70px; font-family: 'Inter', system-ui, sans-serif; color: #4A4A54; }
.ckst-cat-head { max-width: 760px; margin-bottom: 34px; }
.ckst-cat-head .ck-reg-crumbs { font-size: 14px; color: #8A8A96; margin-bottom: 20px; }
.ckst-cat-head .ck-reg-crumbs a { color: #4343AF; text-decoration: none; font-weight: 600; }
.ckst-kicker { font: 700 13px/1 'Inter', sans-serif; letter-spacing: .04em; color: #4343AF; margin: 0 0 14px; }
.ckst-cat-head h1 { font: 700 44px/1.08 'Hanken Grotesk', sans-serif; letter-spacing: -.025em; color: #1A1A1D; margin: 0 0 14px; text-wrap: balance; }
.ckst-cat-count { font-size: 17px; line-height: 1.6; color: #6E6E7A; margin: 0 0 22px; }
.ckst-framing p { font-size: 17px; line-height: 1.7; color: #33323A; margin: 0 0 14px; }
.ckst-framing h3 { font: 700 20px/1.3 'Hanken Grotesk', sans-serif; color: #1A1A1D; margin: 22px 0 8px; }
.ckst-framing ul { margin: 0 0 14px; padding-left: 22px; }
.ckst-framing li { font-size: 16px; line-height: 1.65; color: #33323A; margin: 0 0 6px; }
.ckst-framing a { color: #4343AF; }
.ckst-cat-grid .ck-reg-grid { margin-top: 0; }
.ckst-also-strip { margin: 36px 0 0; }
.ckst-also-strip h2 { font: 700 18px/1.3 'Hanken Grotesk', sans-serif; color: #1A1A1D; margin: 0 0 10px; }
.ckst-cat-nav { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 44px 0 0; padding-top: 24px; border-top: 1px solid rgba(0,0,0,0.08); }
.ckst-cat-nav-label { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #8A8A96; margin-right: 4px; }
.ckst-cat-nav a { font-size: 13.5px; font-weight: 600; color: #4343AF; text-decoration: none; padding: 6px 12px; border-radius: 99px; border: 1px solid #D8D8EE; background: #fff; }
.ckst-cat-nav a:hover { background: #EFEFF8; }

/* Mobile */
@media (max-width: 720px) {
	.ckst-cat { padding: 28px 20px 50px; }
	.ckst-cat-head h1 { font-size: 32px; }
}
@media (max-width: 480px) {
	.ck-reg-single.ckst-single { padding: 28px 18px 50px; }
	.ck-reg-single.ckst-single h1 { font-size: 28px; }
	.ckst-facts .ck-reg-frow { grid-template-columns: 1fr; gap: 4px; padding: 10px 0; }
	.ckst-facts dt { padding-top: 0; }
	.ckst-pattern { padding: 14px 14px 12px; }
	.ckst-pattern-top { flex-direction: column; }
	.ckst-latest-head { gap: 6px; }
	.ckst-steps li { padding-left: 40px; }
	.ck-reg-related-grid { grid-template-columns: 1fr; }
}

/* =========================================================================
 * Type scale: the blog-post scale, applied to the tool page.
 *   H1 46/1.08 · lede 21/1.55 · H2 28 · H3 20 · body 17.5/1.65 · small 14.5 · micro 13
 *   Greys by level: ink #1A1A1D · body #33323A · secondary #6E6E7A · meta #8A8A96
 *   Spacing on an 8px rhythm.
 * ====================================================================== */
.ck-reg-single.ckst-single { padding: 40px 40px 72px; }
.ckst-single .ck-reg-crumbs { font-size: 14.5px; color: #8A8A96; margin: 0 0 24px; }
.ck-reg-single.ckst-single h1 {
	font: 700 46px/1.08 'Hanken Grotesk', system-ui, sans-serif;
	letter-spacing: -.025em;
	color: #1A1A1D;
	margin: 0 0 16px;
	text-wrap: balance;
}
.ckst-single .ckst-lede { font: 400 21px/1.55 'Inter', system-ui, sans-serif; color: #4A4A54; margin: 0 0 12px; text-wrap: pretty; }
.ckst-cadence-line { font-size: 14.5px; line-height: 1.5; color: #8A8A96; margin: 0 0 32px; }
.ckst-also { font-size: 14.5px; color: #6E6E7A; margin: -20px 0 24px; }

.ckst-latest { padding: 16px 20px; margin: 0 0 48px; }
.ckst-latest-head time { font-size: 14.5px; }
.ckst-latest-text { font-size: 17.5px; line-height: 1.6; color: #33323A; }
.ckst-latest-more { font-size: 14.5px; }

.ckst-editorial { margin: 0 0 48px; }
.ckst-editorial p { font-size: 17.5px; line-height: 1.7; }

.ckst-single h2 { font-size: 28px; line-height: 1.2; letter-spacing: -.018em; margin: 0 0 16px; }
.ckst-patterns, .ckst-steps, .ckst-faq, .ckst-changelog { margin: 0 0 56px; }
.ckst-lead { font-size: 17.5px; line-height: 1.65; color: #33323A; margin: 0 0 24px; }

.ckst-pattern-grid { gap: 16px; }
.ckst-pattern { padding: 24px 24px 20px; }
.ckst-pattern h3 { font-size: 20px; line-height: 1.25; letter-spacing: -.012em; }
.ckst-pattern-desc { font-size: 17.5px; line-height: 1.6; color: #33323A; margin: 8px 0 16px; }
.ckst-chip { font-size: 13px; }
.ckst-pattern-chips { margin: 0 0 16px; }
.ckst-pattern-meta { font-size: 14.5px; line-height: 1.6; color: #6E6E7A; padding-top: 14px; }
.ckst-pattern-meta li { margin: 0 0 6px; }
.ckst-pattern-meta li span { color: #33323A; }

.ckst-steps h2 { margin-bottom: 24px; }
.ckst-steps li { font-size: 17.5px; line-height: 1.65; color: #33323A; padding-left: 48px; margin: 0 0 16px; }
.ckst-steps li::before { top: 0; width: 28px; height: 28px; font: 700 14.5px/26px 'Hanken Grotesk', sans-serif; }

.ckst-single .ck-faq-q { font-size: 17.5px; }
.ckst-single .ck-faq-a p { font-size: 16px; }

.ckst-tl .ck-reg-tl-head time { font-size: 14.5px; }
.ckst-tl .ck-reg-tl-source { font-size: 14.5px; color: #8A8A96; }
.ckst-tl .ck-reg-tl-title { font-size: 20px; line-height: 1.25; letter-spacing: -.012em; margin: 8px 0 4px; }
.ckst-release-date { font-size: 14.5px; color: #8A8A96; margin: 0 0 12px; }
.ckst-tl .ck-reg-what-changed { font-size: 17.5px; line-height: 1.65; color: #33323A; margin: 0 0 12px; }
.ckst-response { font-size: 17.5px; line-height: 1.65; color: #33323A; margin: 0 0 12px; padding: 12px 16px; background: #F7F7FB; border-left: 3px solid #4343AF; border-radius: 6px; }
.ckst-response strong { color: #1A1A1D; }
.ckst-tl .ck-reg-tl-body { padding: 20px 24px; }
.ckst-tl .ck-reg-source { font-size: 14.5px; }

.ck-reg-badge { font-size: 13px; }

@media (max-width: 720px) {
	.ck-reg-single.ckst-single h1 { font-size: 34px; }
	.ckst-single .ckst-lede { font-size: 18.5px; }
	.ckst-single h2 { font-size: 24px; }
}

/* Related categories note (category page) */
.ckst-related-note { max-width: 760px; margin: 44px 0 0; padding-top: 24px; border-top: 1px solid rgba(0,0,0,0.08); }
.ckst-related-note h2 { font: 700 20px/1.3 'Hanken Grotesk', sans-serif; color: #1A1A1D; margin: 0 0 10px; }
.ckst-related-note p { font-size: 17px; line-height: 1.65; color: #33323A; margin: 0 0 12px; }
.ckst-related-note a { color: #4343AF; font-weight: 600; text-decoration: none; }
.ckst-related-note a:hover { text-decoration: underline; }
.ckst-related-note + .ckst-cat-nav { margin-top: 20px; border-top: 0; padding-top: 0; }
