/* Content pages (licenses, terms, privacy, faq, about, contact). Loaded after main.css. */

.cp { --cp-toc: 232px; --cp-aside: 248px; --cp-gap: clamp(1.5rem, 3vw, 3rem); }
.cp-head { padding-bottom: var(--s-4); border-bottom: 1px solid var(--border); margin-bottom: var(--s-5); }
.cp-title { font-size: var(--fs-2xl); max-width: none; margin: 0; }
.cp-updated { margin: var(--s-1) 0 0; font-size: var(--fs-xs); color: var(--ink-soft); }

.cp-grid { display: grid; gap: var(--s-4); }
.cp-main { min-width: 0; }
.cp--short .cp-main { width: 100%; }
.cp--short .cp-grid { grid-template-columns: minmax(0, 1fr); }

/* Prose */
.cp-prose { font-size: var(--fs-base); line-height: 1.7; }
.cp-prose > * { max-width: none; }
.cp-prose > :first-child { margin-top: 0; }
.cp-prose h2 { font-size: 1.75rem; line-height: 1.25; margin: 48px 0 var(--s-2); scroll-margin-top: 96px; }
.cp-prose > h2:first-child { margin-top: 0; }
.cp-prose h3 { font-size: var(--fs-md); margin: var(--s-4) 0 var(--s-1); }
.cp-prose p, .cp-prose ul, .cp-prose ol { margin: 0 0 var(--s-2); }
.cp-prose ul, .cp-prose ol { padding-left: 1.25em; }
.cp-prose li + li { margin-top: 0.4em; }
.cp-prose a { color: var(--coral-dark); text-underline-offset: 3px; }
.cp-prose a:hover { text-decoration-thickness: 2px; }

.cp-table { overflow-x: auto; margin: var(--s-3) 0; border: 1px solid var(--border); }
.cp-table:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.cp-table table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); line-height: 1.5; min-width: 560px; }
.cp-table th { background: var(--sand); text-align: left; font-family: var(--font-head); font-weight: 800; }
.cp-table th, .cp-table td { padding: 0.75rem 1rem; border-bottom: 1px solid var(--border); vertical-align: top; }
.cp-table tbody tr:last-child td { border-bottom: 0; }
.cp-table td:first-child { font-weight: 700; }

.cp-note { margin: var(--s-5) 0 0; text-align: right; font-size: var(--fs-xs); font-style: italic; color: var(--ink-soft); }

/* TOC */
.cp-toc summary { font: 800 var(--fs-sm) / 1.3 var(--font-head); padding: 0.75rem 1rem; background: var(--sand); cursor: pointer; list-style: none; }
.cp-toc summary::-webkit-details-marker { display: none; }
.cp-toc summary::after { content: "+"; float: right; }
.cp-toc details[open] summary::after { content: "\2212"; }
.cp-toc ol { list-style: none; margin: 0; padding: 0.5rem 0 0.5rem; border: 1px solid var(--border); border-top: 0; }
.cp-toc a { display: block; padding: 0.4rem 1rem; font-size: var(--fs-sm); line-height: 1.4; color: var(--ink-soft); text-decoration: none; border-left: 3px solid transparent; }
.cp-toc a:hover { color: var(--ink); }
.cp-toc a[aria-current] { color: var(--ink); font-weight: 700; border-left-color: var(--coral); background: var(--ivory); }

/* Help aside */
.cp-aside { padding: var(--s-3); background: var(--ivory); border: 1px solid var(--border); font-size: var(--fs-sm); line-height: 1.55; }
.cp-aside h2 { font-size: var(--fs-md); margin: 0 0 var(--s-1); }
.cp-aside p { margin: 0 0 var(--s-2); }
.cp-aside__cta { display: inline-block; padding: 0.6rem 1.1rem; background: var(--coral-dark); color: #fff; font-weight: 700; text-decoration: none; border-radius: var(--radius); }
.cp-aside__cta:hover { background: var(--ink); }
.cp-aside__more a { color: var(--ink); }

@media (min-width: 1024px) {
	.cp--toc .cp-grid { grid-template-columns: var(--cp-toc) minmax(0, 1fr); column-gap: var(--cp-gap); align-items: start; }
	.cp-toc { position: sticky; top: 104px; max-height: calc(100vh - 128px); overflow: auto; }
	.cp-toc summary { pointer-events: none; }
	.cp-toc summary::after { content: none !important; }
	.cp-aside { grid-column: 1 / -1; }
}
@media (min-width: 1240px) {
	.cp--toc .cp-grid { grid-template-columns: minmax(0, var(--aside)) minmax(0, var(--measure)) minmax(0, var(--aside)); justify-content: space-between; }
	.cp-aside { grid-column: auto; position: sticky; top: 104px; }
}
@media (max-width: 1023px) {
	.cp-toc { order: -1; }
	.cp-aside { order: 3; }
}

/* Licenses: tier cards + compare */
.tiers { margin-bottom: var(--s-6); }
.tiers__grid { display: grid; gap: var(--s-3); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .tiers__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tier { display: flex; flex-direction: column; padding: var(--s-3); border: 1px solid var(--border); background: var(--paper); }
.tier:nth-child(2) { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.tier__name { font-size: var(--fs-lg); margin: 0; }
.tier__who { margin: var(--s-1) 0 var(--s-2); color: var(--ink-soft); font-size: var(--fs-sm); line-height: 1.5; min-height: 3em; }
.tier__price { margin: 0 0 var(--s-3); padding: 0.5rem 0.75rem; background: var(--sand); font: 700 var(--fs-sm) / 1.3 var(--font-head); }
.tier__sub { margin: 0 0 var(--s-1); font: 800 var(--fs-sm) / 1.3 var(--font-head); }
.tier__list { list-style: none; margin: 0 0 var(--s-3); padding: 0; font-size: var(--fs-sm); line-height: 1.5; }
.tier__list:last-child { margin-bottom: 0; }
.tier__list li { display: flex; gap: 0.6rem; align-items: flex-start; padding: 0.3rem 0; }
.tier__list svg { flex: none; margin-top: 0.2em; }
.tier__list--can svg { color: #2C6B4C; }
.tier__list--cant { color: var(--ink-soft); }
.tier__list--cant svg { color: var(--coral-dark); }
.cp-compare { margin-bottom: var(--s-5); }
.cp-compare h2 { font-size: 1.75rem; margin: 0 0 var(--s-2); }
.cp--licenses .cp-prose h2:first-child { margin-top: 0; }

/* FAQ */
.cp-faq + .cp-faq { margin-top: var(--s-5); }
.cp-faq h2 { margin-top: 0 !important; }
.cp-faq details { border-bottom: 1px solid var(--border); }
.cp-faq details:first-of-type { border-top: 1px solid var(--border); }
.cp-faq summary { cursor: pointer; padding: 1rem 2.5rem 1rem 0; font: 700 var(--fs-base) / 1.4 var(--font-head); list-style: none; position: relative; }
.cp-faq summary::-webkit-details-marker { display: none; }
.cp-faq summary::after { content: "+"; position: absolute; right: 0.5rem; top: 0.85rem; font-size: 1.4rem; line-height: 1; color: var(--coral-dark); }
.cp-faq details[open] summary::after { content: "\2212"; }
.cp-faq summary:hover { color: var(--coral-dark); }
.cp-faq__a { padding: 0 0 var(--s-2); max-width: 66ch; }
.cp-faq__a > :last-child { margin-bottom: 0; }

/* About */
.cp--about { display: grid; gap: var(--s-4); }
.cp--about .cp-head { grid-column: 1; }
.cp-about { display: grid; gap: var(--s-3); align-content: start; }
.cp-card { padding: var(--s-3); background: var(--ivory); border: 1px solid var(--border); font-size: var(--fs-sm); }
.cp-card h2 { font-size: var(--fs-md); margin: 0 0 var(--s-2); }
.cp-card dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 0.5rem var(--s-2); }
.cp-card dt { color: var(--ink-soft); }
.cp-card dd { margin: 0; font-weight: 700; }
.cp-card a { color: var(--coral-dark); }
@media (min-width: 960px) {
	.cp--about { grid-template-columns: 5fr 7fr; column-gap: var(--s-6); align-items: start; }
	.cp--about .cp-head { grid-column: 2; grid-row: 1; border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
	.cp--about .cp-about { grid-column: 1; grid-row: 1 / span 2; position: sticky; top: 104px; }
	.cp--about .cp-grid { grid-column: 2; grid-row: 2; }
}
@media (max-width: 959px) {
	.cp--about .cp-head { order: -1; }
}

@media (prefers-reduced-motion: no-preference) {
	.cp-toc a { transition: color var(--dur) var(--ease), background var(--dur) var(--ease); }
}
.cp-compare > *, .cp-prose > * { max-width: none; }
.cp .entry-content > * { max-width: none; }
.cp-prose > h2 { max-width: none; }
