/* ───────────────────────────────────────────────────────────────────
   TNC Tools — design system
   Forest greens primary · light mode utility · Bricolage + Jakarta + DM Mono
   Every component reads only from the variables below.
   ─────────────────────────────────────────────────────────────────── */

:root {
	/* Brand greens */
	--grove:    #0A1A0E;
	--forest:   #0F2919;
	--canopy:   #14522A;
	--leaf:     #16A34A;
	--leaf-l:   #22C55E;
	--leaf-d:   #15803D;
	--leaf-p:   #DCFCE7;
	--leaf-b:   rgba(22, 163, 74, .3);

	/* Surfaces */
	--paper:    #FAFAF7;
	--white:    #FFFFFF;
	--stone-1:  #F4F4F2;
	--stone-2:  #E8E7E4;
	--stone-3:  #D1CFC9;

	/* Text */
	--ink:      #1A2B1E;
	--ink-2:    #3D4F41;
	--ink-3:    #6B7B6F;
	--ink-4:    #94A392;

	/* Ecosystem & accents */
	--crim:     #C41E3A;
	--crim-l:   #E8364F;
	--crim-p:   #FFF0F2;
	--amber:    #D97706;
	--amber-l:  #F59E0B;
	--amber-p:  #FEF3C7;

	/* Semantic states */
	--go:       #16A34A; --go-bg:   #DCFCE7; --go-b:   rgba(22,163,74,.3);
	--warn:     #D97706; --warn-bg: #FEF3C7; --warn-b: rgba(217,119,6,.3);
	--stop:     #DC2626; --stop-bg: #FEE2E2; --stop-b: rgba(220,38,38,.3);
	--info:     #2563EB; --info-bg: #EFF6FF; --info-b: rgba(37,99,235,.25);

	/* Category accents */
	--cat-tax:        var(--leaf);
	--cat-finance:    #0EA5E9;
	--cat-education:  var(--info);
	--cat-documents:  var(--amber);
	--cat-business:   var(--crim);
	--cat-career:     #8B5CF6;
	--cat-study-abroad: #14B8A6;

	/* Typography */
	--f-d: 'Bricolage Grotesque', system-ui, -apple-system, sans-serif;
	--f-b: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
	--f-m: 'DM Mono', ui-monospace, monospace;

	/* Spacing */
	--s-1: 4px; --s-2: 8px;  --s-3: 12px; --s-4: 16px;
	--s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;

	/* Radius */
	--r-sm: 4px; --r: 8px; --r-lg: 12px;
}

/* RESET */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
	font-family: var(--f-b);
	font-size: 15px;
	line-height: 1.7;
	background: var(--paper);
	color: var(--ink);
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; display: block; }
a { color: var(--leaf-d); text-decoration: none; }
a:hover { color: var(--leaf); }
button { font: inherit; cursor: pointer; }

.visually-hidden {
	position: absolute !important; width: 1px; height: 1px;
	padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0;
}
.skip {
	position: absolute; left: -9999px; top: 8px;
	background: var(--leaf); color: var(--white); padding: 8px 12px;
	border-radius: var(--r-sm); z-index: 9999;
}
.skip:focus { left: 8px; }

/* LAYOUT */
.container { max-width: 1140px; margin: 0 auto; padding: 0 var(--s-5); }
.section { padding: var(--s-7) 0; }
.section--alt { background: var(--stone-1); }
.section--center { text-align: center; padding: var(--s-8) 0; }
.section__head { margin-bottom: var(--s-5); }
.section__head--cat { border-left: 4px solid var(--leaf); padding-left: var(--s-4); }
.section__eye { font-family: var(--f-m); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--leaf); }
.section__h { font-family: var(--f-d); font-weight: 800; font-size: clamp(1.6rem, 3.5vw, 2.5rem); letter-spacing: -.02em; color: var(--ink); line-height: 1.1; margin: var(--s-2) 0; }
.section__h--md { font-size: clamp(1.3rem, 2.5vw, 1.8rem); }
.section__sub { color: var(--ink-2); max-width: 70ch; margin-top: var(--s-3); }

/* HEADER */
.site-header { background: var(--white); border-bottom: 1px solid var(--stone-2); position: sticky; top: 0; z-index: 50; }
.site-header__inner { display: flex; align-items: center; gap: var(--s-5); padding: var(--s-3) var(--s-5); }
.brand { display: flex; flex-direction: column; line-height: 1.05; font-family: var(--f-d); }
.brand__pri { font-size: 13px; font-weight: 700; color: var(--ink); letter-spacing: -.01em; }
.brand__sub { font-size: 18px; font-weight: 800; color: var(--leaf); letter-spacing: -.01em; }
.brand--dark .brand__pri { color: var(--white); }
.brand--dark .brand__sub { color: var(--leaf-l); }
.site-nav { flex: 1; }
.site-nav__list { display: flex; flex-wrap: wrap; gap: var(--s-4); list-style: none; }
.site-nav__list a { font-size: 14px; color: var(--ink-2); font-weight: 500; }
.site-nav__list a:hover { color: var(--leaf-d); }
.site-search { display: flex; gap: var(--s-2); }
.site-search input { width: 240px; padding: 8px 12px; border: 1px solid var(--stone-2); border-radius: var(--r-sm); font-family: var(--f-b); font-size: 14px; }
.site-search input:focus { outline: none; border-color: var(--leaf); box-shadow: 0 0 0 3px var(--leaf-b); }
.site-search button { background: var(--leaf); color: var(--white); border: 0; padding: 0 14px; border-radius: var(--r-sm); font-weight: 700; }
.site-nav__toggle { display: none; background: transparent; border: 1px solid var(--stone-2); border-radius: var(--r-sm); padding: 6px 12px; }

@media (max-width: 880px) {
	.site-nav, .site-search { display: none; }
	.site-nav.is-open, .site-search.is-open { display: flex; width: 100%; }
	.site-nav.is-open { order: 4; }
	.site-nav.is-open .site-nav__list { flex-direction: column; gap: var(--s-3); }
	.site-search.is-open { order: 5; }
	.site-search.is-open input { width: 100%; }
	.site-nav__toggle { display: block; margin-left: auto; }
}

/* HERO */
.hero { background: var(--grove); color: var(--white); padding: var(--s-8) 0 var(--s-7); position: relative; overflow: hidden; }
.hero::before, .hero::after { content: ''; position: absolute; inset: 0; pointer-events: none; }
.hero::before {
	background:
		radial-gradient(ellipse 700px 500px at 85% 10%, rgba(22,163,74,.18) 0%, transparent 60%),
		radial-gradient(ellipse 500px 500px at 5% 90%, rgba(34,197,94,.08) 0%, transparent 60%);
}
.hero::after {
	background-image:
		linear-gradient(rgba(22,163,74,.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(22,163,74,.04) 1px, transparent 1px);
	background-size: 56px 56px;
}
.hero > .container { position: relative; z-index: 2; }
.hero__eye { font-family: var(--f-m); font-size: 11px; letter-spacing: .18em; color: var(--leaf-l); text-transform: uppercase; margin-bottom: var(--s-4); }
.hero__h { font-family: var(--f-d); font-weight: 800; letter-spacing: -.02em; line-height: .92; }
.hero__line { display: block; font-size: clamp(2.5rem, 8vw, 6rem); }
.hero__line--accent { color: var(--leaf-l); }
.hero__line--muted { color: rgba(255,255,255,.12); }
.hero__sub { color: rgba(255,255,255,.6); max-width: 60ch; margin: var(--s-5) 0 var(--s-6); font-size: clamp(1rem, 1.6vw, 1.15rem); }

.hero-search { display: flex; gap: var(--s-2); max-width: 640px; background: var(--white); padding: 6px; border-radius: var(--r); position: relative; }
.hero-search input {
	flex: 1; padding: 14px 18px; border: 0; font-size: 16px; font-family: var(--f-b); color: var(--ink);
	border-radius: var(--r-sm); background: transparent;
}
.hero-search input:focus { outline: none; }
.hero-search button { background: var(--leaf); color: var(--white); border: 0; padding: 0 22px; border-radius: var(--r-sm); font-family: var(--f-d); font-weight: 700; font-size: 15px; }
.hero-search button:hover { background: var(--leaf-d); }
.hero-search__results {
	position: absolute; left: 0; right: 0; top: calc(100% + 6px);
	background: var(--white); border: 1px solid var(--stone-2); border-radius: var(--r);
	max-height: 360px; overflow: auto; z-index: 5;
	box-shadow: 0 8px 24px rgba(10,26,14,.18);
}
.hero-search__results a { display: flex; gap: var(--s-3); padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--stone-2); color: var(--ink); }
.hero-search__results a:last-child { border-bottom: 0; }
.hero-search__results a:hover { background: var(--leaf-p); }
.hero-search__results .icon { font-size: 22px; }
.hero-search__results .meta { display: block; font-size: 12px; color: var(--ink-3); font-family: var(--f-m); }

.hero__pills { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-5); }
.pill {
	font-family: var(--f-m); font-size: 12px; padding: 6px 14px;
	border: 1px solid rgba(255,255,255,.15); border-radius: 999px;
	color: rgba(255,255,255,.7); background: rgba(255,255,255,.03);
}
.pill:hover { background: var(--leaf); color: var(--white); border-color: var(--leaf); }

/* TOOL GRID + CARDS */
.tool-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--s-4); }
.tool-grid--4 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

.tool-card {
	display: flex; flex-direction: column; gap: var(--s-2);
	background: var(--white); border: 1px solid var(--stone-2); border-radius: var(--r-lg);
	padding: var(--s-4) var(--s-4) var(--s-3); position: relative; overflow: hidden;
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
	color: var(--ink);
}
.tool-card:hover {
	border-color: var(--leaf-b); transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(22,163,74,.08);
}
.tool-card__strip { position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--leaf); }
.tool-card.cat-finance     .tool-card__strip { background: var(--cat-finance); }
.tool-card.cat-education   .tool-card__strip { background: var(--cat-education); }
.tool-card.cat-documents   .tool-card__strip { background: var(--cat-documents); }
.tool-card.cat-business    .tool-card__strip { background: var(--cat-business); }
.tool-card.cat-career      .tool-card__strip { background: var(--cat-career); }
.tool-card.cat-study-abroad .tool-card__strip { background: var(--cat-study-abroad); }

.tool-card__icon {
	width: 38px; height: 38px; border-radius: var(--r); background: var(--leaf-p);
	display: flex; align-items: center; justify-content: center; font-size: 20px;
	margin-top: var(--s-2);
}
.tool-card.cat-finance     .tool-card__icon { background: #E0F2FE; }
.tool-card.cat-education   .tool-card__icon { background: var(--info-bg); }
.tool-card.cat-documents   .tool-card__icon { background: var(--warn-bg); }
.tool-card.cat-business    .tool-card__icon { background: var(--crim-p); }
.tool-card.cat-career      .tool-card__icon { background: #F3E8FF; }
.tool-card.cat-study-abroad .tool-card__icon { background: #CCFBF1; }

.tool-card__name { font-family: var(--f-d); font-size: 1rem; font-weight: 700; color: var(--ink); line-height: 1.25; }
.tool-card__desc { font-size: 13px; color: var(--ink-3); line-height: 1.55; flex: 1; }
.tool-card__meta { display: flex; justify-content: space-between; align-items: center; }
.tool-card__updated { font-family: var(--f-m); font-size: 11px; color: var(--ink-4); }
.tool-card__tag {
	font-family: var(--f-m); font-size: 10px; text-transform: uppercase; letter-spacing: .06em;
	padding: 3px 8px; border-radius: 999px;
	background: var(--leaf-p); color: var(--leaf-d);
}
.tool-card__tag.cat-finance     { background: #E0F2FE; color: #0369A1; }
.tool-card__tag.cat-education   { background: var(--info-bg); color: #1E40AF; }
.tool-card__tag.cat-documents   { background: var(--warn-bg); color: #92400E; }
.tool-card__tag.cat-business    { background: var(--crim-p); color: var(--crim); }
.tool-card__tag.cat-career      { background: #F3E8FF; color: #6D28D9; }
.tool-card__tag.cat-study-abroad { background: #CCFBF1; color: #0F766E; }

/* CATEGORY GRID */
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--s-4); }
.cat-card {
	background: var(--white); border: 1px solid var(--stone-2); border-radius: var(--r-lg);
	padding: var(--s-5); position: relative; overflow: hidden; color: var(--ink);
}
.cat-card__strip { position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--leaf); }
.cat-card.cat-finance     .cat-card__strip { background: var(--cat-finance); }
.cat-card.cat-education   .cat-card__strip { background: var(--cat-education); }
.cat-card.cat-documents   .cat-card__strip { background: var(--cat-documents); }
.cat-card.cat-business    .cat-card__strip { background: var(--cat-business); }
.cat-card.cat-career      .cat-card__strip { background: var(--cat-career); }
.cat-card.cat-study-abroad .cat-card__strip { background: var(--cat-study-abroad); }
.cat-card h3 { font-family: var(--f-d); font-size: 1.1rem; font-weight: 700; margin-bottom: var(--s-2); }
.cat-card__count { font-family: var(--f-m); font-size: 12px; color: var(--ink-3); }
.cat-card:hover { border-color: var(--leaf-b); transform: translateY(-2px); transition: all .15s; }

/* TRUST GRID */
.trust-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s-4); }
.trust-card {
	background: var(--white); border: 1px solid var(--stone-2); border-radius: var(--r-lg);
	padding: var(--s-5); text-align: center;
}
.trust-card span { font-size: 28px; display: block; margin-bottom: var(--s-3); }
.trust-card h3 { font-family: var(--f-d); font-size: 1rem; font-weight: 700; margin-bottom: var(--s-2); }
.trust-card p { font-size: 13px; color: var(--ink-3); }

/* BREADCRUMBS */
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: var(--s-2); list-style: none; font-family: var(--f-m); font-size: 12px; color: var(--ink-3); margin-bottom: var(--s-4); }
.breadcrumbs li + li::before { content: '/'; margin-right: var(--s-2); color: var(--stone-3); }
.breadcrumbs a { color: var(--ink-3); }
.breadcrumbs a:hover { color: var(--leaf-d); }
.breadcrumbs [aria-current="page"] { color: var(--ink); }

/* TOOL HEADER */
.tool__header { background: var(--stone-1); padding: var(--s-6) 0 var(--s-5); border-bottom: 1px solid var(--stone-2); }
.tool__icon { font-size: 32px; margin-bottom: var(--s-3); }
.tool__title { font-family: var(--f-d); font-weight: 800; font-size: clamp(1.6rem, 4vw, 2.5rem); letter-spacing: -.02em; line-height: 1.1; color: var(--ink); }
.tool__sub { color: var(--ink-2); font-size: clamp(1rem, 1.6vw, 1.1rem); margin: var(--s-3) 0 var(--s-4); max-width: 70ch; }
.tool__meta { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.meta-badge { font-size: 12px; padding: 4px 10px; border-radius: 999px; background: var(--white); border: 1px solid var(--stone-2); color: var(--ink-2); }
.meta-badge--mono { font-family: var(--f-m); color: var(--ink-3); }

/* TOOL BODY — calculator shell */
.tool__body { padding-top: var(--s-6); }
.calc-shell { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-5); align-items: start; }
@media (max-width: 820px) { .calc-shell { grid-template-columns: 1fr; } }
.calc-shell__input { background: var(--white); border: 1px solid var(--stone-2); border-radius: var(--r-lg); padding: var(--s-5); }
.calc-shell__label { font-family: var(--f-m); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin-bottom: var(--s-4); }
.calc-shell__loading { color: var(--ink-3); font-size: 14px; }

.calc-form .field { margin-bottom: var(--s-3); }
.calc-form label { display: block; font-size: 13px; font-weight: 500; color: var(--ink-2); margin-bottom: var(--s-1); }
.calc-form .hint { font-size: 11px; color: var(--ink-4); margin-top: 2px; display: block; }
.calc-form input[type="text"],
.calc-form input[type="number"],
.calc-form input[type="email"],
.calc-form input[type="tel"],
.calc-form input[type="url"],
.calc-form input[type="search"],
.calc-form select, .calc-form textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--stone-2); border-radius: var(--r-sm);
	font-family: var(--f-b); font-size: 14px; color: var(--ink); background: var(--white);
}
.calc-form input:focus, .calc-form select:focus, .calc-form textarea:focus {
	outline: none; border-color: var(--leaf); box-shadow: 0 0 0 3px var(--leaf-b);
}
.calc-form .row--2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.calc-form .has-error input, .calc-form .has-error select { border-color: var(--stop); }
.calc-form .error-msg { color: var(--stop); font-size: 12px; margin-top: 2px; }
.calc-form__errors:empty { display: none; }
.calc-form__errors { background: var(--stop-bg); border-left: 4px solid var(--stop); padding: 10px 14px; border-radius: 0 var(--r-sm) var(--r-sm) 0; color: #991B1B; font-size: 13px; margin-bottom: var(--s-3); }

.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
	padding: 12px 22px; border-radius: var(--r-sm); border: 1px solid transparent;
	font-family: var(--f-d); font-weight: 700; font-size: 15px; letter-spacing: .01em;
	min-height: 44px; cursor: pointer; text-decoration: none;
}
.btn--primary { background: var(--leaf); color: var(--white); }
.btn--primary:hover { background: var(--leaf-d); color: var(--white); }
.btn--primary:active { transform: scale(.98); }
.btn--ghost { background: var(--white); color: var(--ink-2); border-color: var(--stone-2); }
.btn--ghost:hover { border-color: var(--leaf); color: var(--leaf-d); }
.btn[type="submit"] { width: 100%; margin-top: var(--s-3); }

/* RESULT BOX */
.calc-shell__result { position: relative; }
.result-empty {
	background: var(--white); border: 2px dashed var(--stone-2); border-radius: var(--r-lg);
	padding: var(--s-7) var(--s-5); text-align: center; color: var(--ink-3);
}
.result-empty span { font-size: 32px; display: block; margin-bottom: var(--s-3); }
.result-empty p { font-size: 14px; max-width: 28ch; margin: 0 auto; color: var(--ink-3); }

.result-box {
	background: var(--grove); color: var(--white); border-radius: var(--r-lg); padding: var(--s-5);
	position: relative; overflow: hidden;
}
.result-box::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(ellipse at top right, rgba(22,163,74,.15), transparent 60%);
}
.result-box > * { position: relative; z-index: 1; }
.result-box__label { font-family: var(--f-m); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--leaf-l); margin-bottom: var(--s-4); }
.result-row { display: flex; justify-content: space-between; align-items: baseline; padding: var(--s-2) 0; border-bottom: 1px solid rgba(255,255,255,.08); gap: var(--s-3); }
.result-row:last-of-type { border-bottom: 0; }
.result-row .label { font-size: 13px; color: rgba(255,255,255,.6); }
.result-row .value { font-family: var(--f-m); font-size: 14px; color: var(--leaf-l); font-weight: 500; }
.result-row.hero .label { color: rgba(255,255,255,.7); font-size: 14px; }
.result-row.hero .value { font-family: var(--f-d); font-weight: 800; font-size: 28px; color: var(--white); }
.result-row.muted .value { color: rgba(255,255,255,.55); }
.result-box__actions { display: flex; gap: var(--s-2); margin-top: var(--s-4); flex-wrap: wrap; }
.result-box__note { font-size: 12px; color: rgba(255,255,255,.55); margin-top: var(--s-3); line-height: 1.6; }

/* AMORTIZATION TABLE */
.amort { margin-top: var(--s-4); border-top: 1px solid rgba(255,255,255,.08); padding-top: var(--s-4); }
.amort summary { font-family: var(--f-m); font-size: 12px; color: var(--leaf-l); cursor: pointer; }
.amort table { width: 100%; font-family: var(--f-m); font-size: 12px; margin-top: var(--s-3); border-collapse: collapse; }
.amort th, .amort td { padding: 6px 8px; text-align: right; color: rgba(255,255,255,.7); border-bottom: 1px solid rgba(255,255,255,.06); }
.amort th { color: rgba(255,255,255,.45); font-weight: 500; text-transform: uppercase; letter-spacing: .08em; font-size: 10px; }
.amort td:first-child, .amort th:first-child { text-align: left; }

/* DISCLAIMER STRIP */
.disclaimer-strip {
	margin-top: var(--s-5);
	background: var(--warn-bg); border-left: 4px solid var(--warn); padding: var(--s-3) var(--s-4);
	border-radius: 0 var(--r-sm) var(--r-sm) 0; display: flex; gap: var(--s-3); align-items: flex-start;
}
.disclaimer-strip__icon { color: var(--warn); font-size: 16px; flex-shrink: 0; }
.disclaimer-strip p { font-size: 13px; color: #78350F; margin: 0; line-height: 1.55; }

/* ALERTS */
.alert { padding: var(--s-3) var(--s-4); border-left: 4px solid; border-radius: 0 var(--r-sm) var(--r-sm) 0; margin-bottom: var(--s-4); font-size: 14px; }
.alert--warn { background: var(--warn-bg); border-color: var(--warn); color: #78350F; }
.alert--info { background: var(--info-bg); border-color: var(--info); color: #1E40AF; }
.alert--go   { background: var(--go-bg);   border-color: var(--go);   color: var(--leaf-d); }

/* CHECKLIST */
.checklist-shell { max-width: 760px; margin: 0 auto; }
.checklist-filters { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-bottom: var(--s-4); }
.checklist-filters .field { display: flex; flex-direction: column; gap: var(--s-1); }
.checklist-filters label { font-family: var(--f-m); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.checklist-filters select { padding: 8px 12px; border: 1px solid var(--stone-2); border-radius: var(--r-sm); font-family: var(--f-b); font-size: 14px; }
.checklist-card { background: var(--white); border: 1px solid var(--stone-2); border-radius: var(--r-lg); overflow: hidden; }
.checklist-card__head { display: flex; justify-content: space-between; align-items: center; padding: var(--s-3) var(--s-4); background: var(--stone-1); border-bottom: 1px solid var(--stone-2); }
.checklist-card__title { font-family: var(--f-d); font-size: 1rem; font-weight: 700; color: var(--ink); }
.checklist-card__progress { font-family: var(--f-m); font-size: 12px; color: var(--ink-3); }
.checklist-card__bar { height: 4px; background: var(--stone-2); }
.checklist-card__bar > div { height: 100%; background: var(--leaf); width: 0%; transition: width .25s ease; }
.checklist-card__items { padding: var(--s-2) 0; }
.cl-item { display: flex; gap: var(--s-3); align-items: center; padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--stone-2); cursor: pointer; }
.cl-item:last-child { border-bottom: 0; }
.cl-item:hover { background: var(--stone-1); }
.cl-item input { position: absolute; opacity: 0; pointer-events: none; }
.cl-check { width: 20px; height: 20px; border: 2px solid var(--stone-3); border-radius: var(--r-sm); flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: transparent; font-size: 13px; font-weight: 800; }
.cl-item.is-done .cl-check { background: var(--leaf); border-color: var(--leaf); color: var(--white); }
.cl-text { flex: 1; font-size: 14px; color: var(--ink); }
.cl-item.is-done .cl-text { text-decoration: line-through; color: var(--ink-4); }
.cl-note { display: block; font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.cl-badge { font-family: var(--f-m); font-size: 10px; padding: 2px 8px; border-radius: 999px; flex-shrink: 0; }
.cl-badge--required { background: var(--go-bg); color: var(--leaf-d); }
.cl-badge--optional { background: var(--info-bg); color: #1E40AF; }
.cl-badge--conditional { background: var(--warn-bg); color: #92400E; }
.checklist-card__steps { padding: var(--s-4); background: var(--stone-1); border-top: 1px solid var(--stone-2); }
.checklist-card__steps h3 { font-family: var(--f-d); font-size: 1rem; font-weight: 700; margin-bottom: var(--s-3); }
.checklist-card__steps ol { padding-left: var(--s-5); color: var(--ink-2); font-size: 14px; }
.checklist-card__steps li { margin-bottom: var(--s-2); }
.checklist-card__actions { display: flex; gap: var(--s-2); padding: var(--s-3) var(--s-4); border-top: 1px solid var(--stone-2); background: var(--white); flex-wrap: wrap; }

/* LEAD CARD */
.lead-card { background: var(--leaf-p); border: 1px solid var(--leaf-b); border-radius: var(--r-lg); padding: var(--s-5); display: grid; grid-template-columns: 1fr 1.2fr; gap: var(--s-5); align-items: center; }
@media (max-width: 820px) { .lead-card { grid-template-columns: 1fr; } }
.lead-card__pitch h3 { font-family: var(--f-d); font-size: 1.3rem; font-weight: 800; color: var(--ink); margin-bottom: var(--s-2); }
.lead-card__pitch p { color: var(--ink-2); font-size: 14px; }
.lead-form { display: grid; gap: var(--s-3); background: var(--white); padding: var(--s-4); border-radius: var(--r); }
.lead-form .row--2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.lead-form label { display: flex; flex-direction: column; gap: var(--s-1); font-size: 13px; color: var(--ink-2); font-weight: 500; }
.lead-form input, .lead-form textarea { padding: 9px 12px; border: 1px solid var(--stone-2); border-radius: var(--r-sm); font-family: var(--f-b); font-size: 14px; }
.lead-form input:focus, .lead-form textarea:focus { outline: none; border-color: var(--leaf); box-shadow: 0 0 0 3px var(--leaf-b); }
.lead-form__note { font-size: 12px; color: var(--ink-3); margin: 0; }
.lead-form__note.is-success { color: var(--leaf-d); font-weight: 500; }
.lead-form__note.is-error { color: var(--stop); }

/* CORRECTION MODAL */
.correction-link { text-align: center; margin: var(--s-5) 0 var(--s-7); font-size: 13px; color: var(--ink-3); }
.correction-link a { color: var(--ink-3); border-bottom: 1px dashed var(--ink-4); }
.correction-link a:hover { color: var(--leaf-d); border-color: var(--leaf); }

.modal { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: var(--s-4); }
.modal[hidden] { display: none; }
.modal__overlay { position: absolute; inset: 0; background: rgba(10,26,14,.6); backdrop-filter: blur(2px); }
.modal__panel { position: relative; background: var(--white); border-radius: var(--r-lg); padding: var(--s-6); max-width: 520px; width: 100%; box-shadow: 0 20px 60px rgba(0,0,0,.25); max-height: 90vh; overflow: auto; }
.modal__close { position: absolute; top: var(--s-3); right: var(--s-3); background: transparent; border: 0; font-size: 24px; color: var(--ink-3); cursor: pointer; }
.modal__panel h2 { font-family: var(--f-d); font-size: 1.3rem; font-weight: 800; margin-bottom: var(--s-2); }
.modal__panel p { color: var(--ink-2); font-size: 14px; margin-bottom: var(--s-4); }
.correction-form { display: grid; gap: var(--s-3); }
.correction-form label { display: flex; flex-direction: column; gap: var(--s-1); font-size: 13px; color: var(--ink-2); font-weight: 500; }
.correction-form input, .correction-form textarea { padding: 9px 12px; border: 1px solid var(--stone-2); border-radius: var(--r-sm); font-family: var(--f-b); font-size: 14px; }
.correction-form input:focus, .correction-form textarea:focus { outline: none; border-color: var(--leaf); box-shadow: 0 0 0 3px var(--leaf-b); }
.correction-form__note { font-size: 12px; color: var(--ink-3); margin: 0; }
.correction-form__note.is-success { color: var(--leaf-d); }
.correction-form__note.is-error { color: var(--stop); }

/* FAQ */
.faq details { background: var(--white); border: 1px solid var(--stone-2); border-radius: var(--r); margin-bottom: var(--s-2); }
.faq summary { cursor: pointer; padding: var(--s-4); font-family: var(--f-d); font-weight: 700; font-size: 1rem; color: var(--ink); list-style: none; display: flex; justify-content: space-between; align-items: center; }
.faq summary::after { content: '+'; color: var(--leaf); font-size: 20px; }
.faq details[open] summary::after { content: '−'; }
.faq summary::-webkit-details-marker { display: none; }
.faq details > div { padding: 0 var(--s-4) var(--s-4); color: var(--ink-2); }

/* PROSE */
.prose, .prose-page .prose { font-size: 15px; color: var(--ink-2); line-height: 1.75; max-width: 72ch; }
.prose p { margin-bottom: var(--s-3); }
.prose strong { color: var(--ink); }
.prose a { color: var(--leaf-d); text-decoration: underline; }
.prose ul, .prose ol { margin-left: var(--s-5); margin-bottom: var(--s-3); }
.prose h2, .prose h3 { font-family: var(--f-d); color: var(--ink); margin: var(--s-5) 0 var(--s-3); }
.prose__source { font-family: var(--f-m); font-size: 12px; color: var(--ink-3); margin-top: var(--s-4); }

/* ARCHIVE FILTERS */
.archive-filters { display: flex; gap: var(--s-2); flex-wrap: wrap; margin-bottom: var(--s-5); }
.archive-filters__chip {
	padding: 6px 14px; border: 1px solid var(--stone-2); border-radius: 999px;
	font-family: var(--f-m); font-size: 12px; color: var(--ink-2); background: var(--white);
}
.archive-filters__chip:hover { border-color: var(--leaf); color: var(--leaf-d); }
.archive-filters__chip.is-active { background: var(--leaf); color: var(--white); border-color: var(--leaf); }

/* POST CARD (blog index) */
.post-list { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.post-card { background: var(--white); border: 1px solid var(--stone-2); border-radius: var(--r); padding: var(--s-4); }
.post-card a { color: var(--ink); }
.post-card h2 { font-family: var(--f-d); font-size: 1.1rem; font-weight: 700; margin-bottom: var(--s-2); }

/* FOOTER */
.site-footer { background: var(--grove); color: rgba(255,255,255,.55); padding: var(--s-7) 0 var(--s-5); margin-top: var(--s-8); }
.site-footer__inner { display: grid; grid-template-columns: 1fr 2fr; gap: var(--s-7); }
@media (max-width: 720px) { .site-footer__inner { grid-template-columns: 1fr; } }
.site-footer__brand p { color: rgba(255,255,255,.45); margin-top: var(--s-3); font-size: 14px; max-width: 36ch; }
.site-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--s-5); }
.site-footer__cols h4 { font-family: var(--f-m); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.35); margin-bottom: var(--s-3); }
.site-footer__cols ul { list-style: none; display: grid; gap: var(--s-2); }
.site-footer__cols a { color: rgba(255,255,255,.65); font-size: 14px; }
.site-footer__cols a:hover { color: var(--leaf-l); }
.site-footer__bottom { display: flex; justify-content: space-between; padding-top: var(--s-5); margin-top: var(--s-5); border-top: 1px solid rgba(255,255,255,.08); font-family: var(--f-m); font-size: 12px; color: rgba(255,255,255,.35); flex-wrap: wrap; gap: var(--s-2); }
