/* 1.3.78 Cosmo v3 document pages (.ccp3-doc in post content). */
.ccp3-ribbon { margin: 0; padding: 10px 18px; background: #f7f4ee; border-bottom: 1px solid var(--cch3-rule); font: 500 11px/1.4 var(--cch3-sans); letter-spacing: .12em; text-transform: uppercase; color: #6b5a40; text-align: center; }
.ccp3-doc { max-width: 720px; margin: 0 auto; padding: 48px 18px 72px; color: var(--cch3-ink-2); font: 400 16px/1.7 var(--cch3-serif); font-variation-settings: "opsz" 14; }
.ccp3-doc > * + * { margin-top: 1em; }
.ccp3-doc .ccp3-label { font: 500 11px/1.4 var(--cch3-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--cch3-tan-dark); margin: 0; }
.ccp3-doc h1 { font-family: var(--cch3-serif); font-weight: 370; font-variation-settings: "opsz" 48; font-size: 38px; line-height: 1.08; letter-spacing: -.01em; color: var(--cch3-ink); margin: 12px 0 0 !important; overflow-wrap: normal; word-break: normal; hyphens: manual; }
.ccp3-doc .ccp3-lede { font-size: 19px; line-height: 1.5; color: var(--cch3-ink); margin-top: 18px; }
.ccp3-doc .ccp3-lede strong { font-weight: 400; }
.ccp3-doc .ccp3-updated { font: 400 13px/1.5 var(--cch3-sans); color: var(--cch3-muted); }
.ccp3-doc h2 { font-family: var(--cch3-serif); font-weight: 400; font-variation-settings: "opsz" 36; font-size: 25px; line-height: 1.2; color: var(--cch3-ink); margin: 2.2em 0 0 !important; padding-top: 1.1em; border-top: 1px solid var(--cch3-rule); overflow-wrap: normal; hyphens: manual; }
.ccp3-doc h3 { font: 600 13px/1.4 var(--cch3-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--cch3-ink); margin: 1.8em 0 0 !important; }
.ccp3-doc p, .ccp3-doc li { overflow-wrap: break-word; }
.ccp3-doc ul, .ccp3-doc ol { padding-left: 1.2em; margin-left: 0; }
.ccp3-doc li + li { margin-top: .45em; }
.ccp3-doc a { color: var(--cch3-ink); text-decoration: underline; text-decoration-color: var(--cch3-tan); text-underline-offset: 3px; }
.ccp3-doc a:hover { text-decoration-color: currentColor; }
.ccp3-doc strong { font-weight: 600; color: var(--cch3-ink); }
.ccp3-doc code { font: 400 .88em/1 ui-monospace, Menlo, monospace; background: #f3efe7; padding: 2px 4px; border-radius: 2px; }
.ccp3-doc .ccp3-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 1.2em; border: 1px solid var(--cch3-rule); border-radius: 2px; }
.ccp3-doc table { width: 100%; border-collapse: collapse; font: 400 13px/1.5 var(--cch3-sans); min-width: 560px; }
.ccp3-doc th, .ccp3-doc td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--cch3-rule); }
.ccp3-doc th { font-weight: 600; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--cch3-ink); background: #f7f4ee; }
.ccp3-doc tr:last-child td { border-bottom: 0; }
.ccp3-doc mark.ccp3-ph { background: #fbefc9; color: inherit; padding: 0 3px; border-radius: 2px; }
.ccp3-doc blockquote { margin: 1.4em 0 0; padding: 4px 0 4px 18px; border-left: 2px solid var(--cch3-tan); font-style: italic; }
.ccp3-doc hr { border: 0; border-top: 1px solid var(--cch3-rule); margin: 2em 0; }
@media (min-width: 768px) {
	.ccp3-doc { padding: 72px 34px 96px; font-size: 17px; }
	.ccp3-doc h1 { font-size: 52px; }
	.ccp3-doc .ccp3-lede { font-size: 21px; }
	.ccp3-doc h2 { font-size: 28px; }
}
/* 1.3.81 tokens: forms (rendered disabled until D3) + card rows. */
.ccp3-doc .ccp3-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ccp3-doc form.ccp3-form { margin-top: 1.6em; padding: 24px 18px; border: 1px solid var(--cch3-rule); border-radius: 2px; background: #fff; font: 400 15px/1.5 var(--cch3-sans); }
.ccp3-doc .ccp3-f + .ccp3-f { margin-top: 18px; }
.ccp3-doc .ccp3-f label, .ccp3-doc .ccp3-f legend { display: block; font: 600 12px/1.4 var(--cch3-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--cch3-ink); margin-bottom: 6px; padding: 0; }
.ccp3-doc .ccp3-f fieldset { border: 0; margin: 0; padding: 0; }
.ccp3-doc .ccp3-f__opt { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--cch3-muted); }
.ccp3-doc .ccp3-f input[type=text], .ccp3-doc .ccp3-f input[type=email], .ccp3-doc .ccp3-f input[type=url], .ccp3-doc .ccp3-f select, .ccp3-doc .ccp3-f textarea { width: 100%; box-sizing: border-box; min-height: 46px; padding: 10px 12px; border: 1px solid #cfc7b8; border-radius: 2px; background: #fff; font: 400 16px/1.4 var(--cch3-sans); color: var(--cch3-ink); }
.ccp3-doc .ccp3-f textarea { min-height: 140px; }
.ccp3-doc .ccp3-f :focus-visible { outline: 2px solid var(--cch3-tan-dark); outline-offset: 1px; }
.ccp3-doc .ccp3-f__choices { display: grid; gap: 8px; }
.ccp3-doc .ccp3-f label.ccp3-f__choice { display: flex; gap: 10px; align-items: flex-start; font: 400 15px/1.45 var(--cch3-sans); letter-spacing: 0; text-transform: none; margin: 0; }
.ccp3-doc .ccp3-f__choice input { width: 18px; height: 18px; margin-top: 2px; flex: none; accent-color: var(--cch3-ink); }
.ccp3-doc .ccp3-f__help, .ccp3-doc .ccp3-f__note, .ccp3-doc .ccp3-f__off { font: 400 13px/1.5 var(--cch3-sans); color: var(--cch3-muted); margin: 6px 0 0; }
.ccp3-doc .ccp3-f__off { color: #6b5a40; }
.ccp3-doc .ccp3-btn, .ccp3-doc a.ccp3-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 22px; border: 1px solid var(--cch3-ink); border-radius: 2px; background: var(--cch3-ink); color: #fff; font: 600 12px/1 var(--cch3-sans); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer; }
.ccp3-doc .ccp3-btn[disabled] { opacity: .45; cursor: not-allowed; }
.ccp3-doc ul.cch3-feed { list-style: none; padding: 0; margin: 1.4em 0 0; display: grid; gap: 22px; grid-template-columns: 1fr; }
.ccp3-doc ul.cch3-feed li + li { margin-top: 0; }
@media (min-width: 768px) { .ccp3-doc ul.cch3-feed { grid-template-columns: repeat(2, 1fr); } .ccp3-doc form.ccp3-form { padding: 32px; } }
@media (min-width: 1100px) { .ccp3-doc ul.cch3-feed { grid-template-columns: repeat(3, 1fr); } }
/* 1.3.87+ Lead Machine 1.1.0 theme-mode forms (.ddlm-tform), mapped to the Cosmo tokens. Mirrors the ccp3-form look. */
.ccp3-doc { --ccp3-error: #9b2c1f; }
.ccp3-doc .ddlm-tform { --ddlm-t-gap: 18px; --ddlm-t-font: var(--cch3-sans); --ddlm-t-label-font: var(--cch3-sans); --ddlm-t-text: var(--cch3-ink); --ddlm-t-muted: var(--cch3-muted); --ddlm-t-border: var(--cch3-rule); --ddlm-t-bg: var(--cch3-page); --ddlm-t-focus: var(--cch3-tan-dark); --ddlm-t-error: var(--ccp3-error); --ddlm-t-input-height: 46px; --ddlm-t-radius: 2px; --ddlm-t-button-bg: var(--cch3-ink); --ddlm-t-button-text: var(--cch3-page); margin-top: 1.6em; padding: 24px 18px; border: 1px solid var(--cch3-rule); border-radius: 2px; background: var(--cch3-page); font: 400 15px/1.5 var(--cch3-sans); }
.ccp3-doc .ddlm-tf__label, .ccp3-doc .ddlm-tf__fieldset > legend { display: block; font: 600 12px/1.4 var(--cch3-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--cch3-ink); margin: 0 0 6px; padding: 0; }
.ccp3-doc .ddlm-tf__opt { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--cch3-muted); }
.ccp3-doc .ddlm-tf__input { font: 400 16px/1.4 var(--cch3-sans); color: var(--cch3-ink); }
.ccp3-doc .ddlm-tf__choice { font: 400 15px/1.45 var(--cch3-sans); letter-spacing: 0; text-transform: none; color: var(--cch3-ink-2); margin: 0; }
.ccp3-doc .ddlm-tf__check { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--cch3-ink); }
.ccp3-doc .ddlm-tf__help, .ccp3-doc .ddlm-tf__error, .ccp3-doc .ddlm-tform__summary { font: 400 13px/1.5 var(--cch3-sans); margin: 6px 0 0; }
.ccp3-doc .ddlm-tf__error, .ccp3-doc .ddlm-tform__summary, .ccp3-doc .ddlm-tform__message.is-error { color: var(--ccp3-error); }
.ccp3-doc .ddlm-tf__note p, .ccp3-doc .ddlm-tf__note { font: 400 14px/1.5 var(--cch3-sans); color: var(--cch3-ink-2); margin: 0; }
.ccp3-doc .ddlm-tform__button { background: var(--cch3-ink); color: var(--cch3-page); font: 600 12px/1 var(--cch3-sans); letter-spacing: .12em; text-transform: uppercase; border: 1px solid var(--cch3-ink); padding: 0 22px; }
.ccp3-doc .ddlm-tform__button:hover { background: var(--cch3-ink-2); }
.ccp3-doc .ddlm-tform__message { font: 400 16px/1.6 var(--cch3-serif); color: var(--cch3-ink); }
.ccp3-doc .ddlm-tform__message p { margin: 0; }
@media (min-width: 768px) { .ccp3-doc .ddlm-tform { padding: 32px; } .ccp3-doc .ddlm-tf--checkbox_group .ddlm-tf__choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* 24 Oct 2026 go-live QA (Gilbert + Hayley): vertical rhythm, single dividers, card rows, CTA, selects. Tokens only. */
.ccp3-doc { --ccp3-flow: .8em; --ccp3-flow-head: .6em; --ccp3-gap-lg: 32px; }
.ccp3-main .ccp3-doc > * + * { margin-top: var(--ccp3-flow); }
.ccp3-main .ccp3-doc > h2 + *, .ccp3-main .ccp3-doc > h3 + * { margin-top: var(--ccp3-flow-head); }
.ccp3-main .ccp3-doc blockquote p + p, .ccp3-main .ccp3-doc li > p + p { margin-top: var(--ccp3-flow); }
.ccp3-doc hr:has(+ h2), .ccp3-doc hr:has(+ .ccp3-label + h2) { display: none; }
.ccp3-doc ul.ccp3-cards { list-style: none; padding-left: 0; }
.ccp3-main .ccp3-doc > ul.ccp3-cards { margin-top: var(--ccp3-gap-lg); }
.ccp3-doc ul.ccp3-cards > li + li { margin-top: 0; }
.ccp3-doc ul.ccp3-cards .cch3-card__media { display: block; margin-top: 0; }
.ccp3-main .ccp3-doc > ul.ccp3-cards + * { margin-top: var(--ccp3-gap-lg); }
@media (max-width: 767px) { .ccp3-doc ul.ccp3-cards > li:nth-child(n+4) { display: none; } }
.ccp3-doc a.ccp3-btn[data-cch3-subscribe] { background: var(--cch3-tan); border-color: var(--cch3-tan); color: var(--cch3-page); font-weight: 500; letter-spacing: .16em; text-decoration: none; }
.ccp3-doc a.ccp3-btn[data-cch3-subscribe]:hover { background: var(--cch3-tan-dark); border-color: var(--cch3-tan-dark); }
.ccp3-doc select.ddlm-tf__input { -webkit-appearance: none; appearance: none; background-color: var(--cch3-page); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231d1a17' stroke-width='1.4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 12px 8px; padding-right: 40px; }
.ccp3-doc .publisher-nb, .ccp3-doc .ccp3-publisher { overflow-wrap: normal; }
.ccp3-doc .ccp3-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; }
.ccp3-doc .ccp3-links { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 28px; }
/* 24 Oct 2026 QA3 (Gilbert + Hayley): at 390, document tables stack each row as a labelled card (td data-label). Tokens only. */
@media (max-width: 767px) {
	.ccp3-doc .ccp3-table { overflow-x: visible; border: 0; border-radius: 0; }
	.ccp3-doc .ccp3-table table, .ccp3-doc .ccp3-table tbody, .ccp3-doc .ccp3-table tr, .ccp3-doc .ccp3-table td { display: block; width: auto; min-width: 0; }
	.ccp3-doc .ccp3-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.ccp3-doc .ccp3-table tr { border: 1px solid var(--cch3-rule); border-radius: 2px; padding: 4px 14px; background: var(--cch3-page); }
	.ccp3-doc .ccp3-table tr + tr { margin-top: 12px; }
	.ccp3-doc .ccp3-table td { position: relative; padding: 9px 0 9px calc(6.75em + 12px); border-bottom: 1px solid var(--cch3-rule); overflow-wrap: anywhere; }
	.ccp3-doc .ccp3-table tr td:last-child { border-bottom: 0; }
	.ccp3-doc .ccp3-table td::before { content: attr(data-label); position: absolute; left: 0; top: 10px; width: 6.75em; font: 600 11px/1.5 var(--cch3-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--cch3-ink); }
}
